Transcript
Page 1: Inteligenta Artificiala

Inteligenta ArtificialaInteligenta Artificiala

Universitatea Politehnica BucurestiAnul universitar 2008-2009

Adina Magda Floreahttp://turing.cs.pub.ro/ia_08 si

curs.cs.pub.ro

Page 2: Inteligenta Artificiala

Curs nr. 9

Planificare automata PA – caracteristici Planificare liniara in sistemul STRIPS Planificare neliniara – TWEAK Planificare ierarhica Planificare contingenta

2

Page 3: Inteligenta Artificiala

1. PA - caracteristiciRationament de bun simt: Problema cadrului, problema calificarii si problema

ramificariiDescompunerea problemelor in subproblemePlanificare: liniara neliniara ierarhica contingenta

3

Page 4: Inteligenta Artificiala

PA – caracteristici - cont Reprezentarea cunostintelor in problemele de

planificare Reprezentarea starilor cautarii

Operatori de plan Predicate Axiome

4

Page 5: Inteligenta Artificiala

2. Planificare liniara in sistemul STRIPS Operatori de plan

- Actiune care reprezinta actiunea asociata operatorului.- Lista Preconditiilor ce contine formulele care trebuie sa fie adevarate intr-o stare a problemei pentru ca operatorul sa poata fi aplicat - LP.- Lista Adaugarilor ce contine formulele care vor deveni adevarate dupa aplicarea operatorului - LA.- Lista Eliminarilor ce contine formulele care vor deveni false dupa aplicarea operatorului - LE.

5

Page 6: Inteligenta Artificiala

2.1 Reprezentarea STRIPS

Operatori de planSTACK(x,y), UNSTACK(x,y), PICKUP(x), PUTDOWN(x)

Predicate:ON(x,y), ONTABLE(x), CLEAR(x), HOLD(x), ARMEMTY

Axiome:

6

( x) (HOLD(x)) ~ ARMEMPTY

( x) (ONTABLE(x) ~ ( y) (ON(x,y)))

( x) (~ ( y) (ON(y,x)) CLEAR(x))

Page 7: Inteligenta Artificiala

Reprezentarea STRIPS - cont

Operatori de plan

7

LP:LE: CLEAR(y)HOLD(x)LA: ON(x,y)ARMEMPTY

LP:LE:LA:

PICKUP(x) LP:LE:LA:

PUTDOWN (x) LP:LE:LA:

STACK(x,y) CLEAR(y) HOLD(x)

UNSTACK (x,y) ON(x,y) CLEAR(x) ARMEMPTY ON(x,y) ARMEMPTY

HOLD(x) CLEAR(y)

CLEAR(x) ONTABLE (x) ARMEMPTY ONTABLE(x) ARMEMPTYHOLD(x)

HOLD(x)HOLD(x)

ONTABLE(x) ARMEMPTY

Page 8: Inteligenta Artificiala

2.2 Executia planului

8

AB

AS

B

S

B

AS i f

ON(A,B)

ONTABLE(B)

ONTABLE(B)

ONTABLE(B)UNSTACK (A, B)

CLEAR(A)PUTDOWN(A)

CLEAR(A) CLEAR(A) CLEAR(B)

CLEAR(B)

HOLD(A)

ONTABLE(A)

Page 9: Inteligenta Artificiala

2.3 Functionare STRIPS

9

C

B

A A

CS S

D

B

D

i f

ARMEMPTY

ON(B,A) ON(C,A) ONTABLE(A) ON(B,D)

ONTABLE(C) ONTABLE(A)

ONTABLE(D) ONTABLE(D)

Stiva 1 Stiva 2

ON(C,A)ON(B,D)

ON(B,D)ON(C,A)

ON(C,A) ON(B,D) OTAD ON(C,A) ON(B,D) OTAD

Page 10: Inteligenta Artificiala

Functionare STRIPS - cont

10

/* pentru realizarea scopului ON(C,A) */

STACK(C, A)ON(B,D)ON(C,A) ON(B,D) OTAD

/* preconditiile operatorului STAC(C,A)*/

CLEAR(A)

HOLD(C)

CLEAR(A) HOLD(C)STACK(C, A)

ON(B,D)

ON(C,A) ON(B,D) OTAD

S S : ONTABLE(A) ONTABLE (C) ONTABLE(D) ON (B,D) ARMEMPTY1 2

Plan = (UNSTACK(B,A),STACK(B,D))

S : ONTABLE (A) ONTABLE (D) ON(B,D) ON(C,A) ARMEMPTY4

Plan = (UNSTACK(B,A),STACK(B,D),PICKUP(C),STACK(C,A))

Page 11: Inteligenta Artificiala

2.4 Algoritm STRIPS

Variabila S - memoreaza descrierea starii curente a universului problemei;

Stiva - memoreaza stiva de scopuri satisfacute pe calea curenta de cautare;

Scopuri - pastreaza lista scopurilor nesatisfacute pe calea curenta;

Structura Operator avand campurile: Actiune, Preconditii, ListaAdaugari si ListaEliminari

(Operator.Preconditii)

11

Page 12: Inteligenta Artificiala

2.4 Algoritm STRIPS

Algoritm: Planificare liniara in STRIPSSatisfacereScopuri (Scopuri, S, Stiva)1. pentru fiecare Scop din Scopuri executa

1.1. StareNoua RealizezaScop(Scop, S, Stiva)1.2. daca StareNoua = INSUCCES

atunci intoarce INSUCCES2. daca toate scopurile din Scopuri sunt satisfacute in starea

StareNouaatunci intoarce StareNoua

3. altfel intoarce INSUCCESsfarsit.

12

Page 13: Inteligenta Artificiala

Algoritm STRIPS - contRealizeazaScop (Scop, S, Stiva)1. daca Scop este marcat satisfacut in starea S

atunci intoarce S2. daca Scop apartine Stiva

atunci intoarce INSUCCES3. OperatoriValizi {O | O poate satisface scopul Scop}4. pentru fiecare operator O din OperatoriValizi executa

4.1. StareNoua AplicaOperator(O, S, Stiva {Scop})4.2. daca StareNoua <> INSUCCES atunci4.2.1. Marcheaza scopul Scop satisfacut in starea StareNoua4.2.2. intoarce StareNoua

5. intoarce INSUCCESsfarsit.

13

Page 14: Inteligenta Artificiala

Algoritm STRIPS - cont

AplicaOperator (Operator, Stare, Stiva)1. StareNouaSatisfacereScopuri(Operator.Preconditii, Stare, Stiva)2. daca StareNoua <> INSUCCES

atunci2.1. adauga Operator.Actiune la Plan2.2. StareNoua StareNoua – Operator.ListaEliminari

2.3. intoarce StareNoua Operator.ListaAdaugari3. altfel intoarce INSUCCESsfarsit.

14

Page 15: Inteligenta Artificiala

2.5 Anomalia lui Sussman

15

C

BA C

S S B

A

i f

ARMEMPTY

ON(C,A) ON(A,B) ONTABLE(A) ON(B,C)

ONTABLE(B)

Stiva 1 Stiva 2

ON(A,B)ON(B,C)

ON(B,C)

ON(A,B)

ON(A,B) ON(B,C) ON(A,B) ON(B,C)

Page 16: Inteligenta Artificiala

Anomalia lui Sussman - cont

16

C

BA

S

C B

AS i k

Stiva 1

S S : ONTABLE(B) ON(A,B) ONTABLE(C) ARMEMPTYi k

Plan = (UNSTACK (C,A),PUTDOWN(C),PICKUP(A),STACK (A,B))S Si k

C B

AS k

C

B

A

S t

S S : ON(B,C) ONTABLE(A) ONTABLE(C) ARMEMPTYk t

Plan = (UNSTACK (A,B),PUTDOWN(A),PICKUP(B),STACK (B,C))S Sk t

S S : ON(A,B) ON(B,C)t f

Plan = (PICKUP(A),STACK(A,B))S St f

Plan = (UNSTACK(C,A),PUTDOWN(C),PICKUP(A),STACK(A,B),UNSTACK(A,B)

PUTDOWN(A),PICKUP(B),STACK(B,C),PICKUP(A),STACK(A,B))

Page 17: Inteligenta Artificiala

3. Planificare neliniara - TWEAK

Inregistrarea restrictiilor(temporale, unificare/codesemnare)

Nivelul de reprezentare a planului; Nivelul de modificare a planului pentru a obtine

un plan care realizeaza scopul problemei;

17

Page 18: Inteligenta Artificiala

3.1 Reprezentarea TWEAK

18

ActiunePreconditii:Postconditii:

Actiune: PICKUP(x)Preconditii:Postconditii:

STACK(x,y)

CLEAR(y) HOLD(x)ARMEMPTY ON(x,y) CLEAR(y) HOLD(x) ~ ~

CLEAR(x) ONTABLE (x) ARMEMPTY HOLD(x) ONTABLE (x) ARMEMPTY ~ ~

Page 19: Inteligenta Artificiala

3.2 Sinteza planului

19

Operatii de modificare a planului:(1) adaugarea de pasi este operatia prin care se creaza noi pasi care se adauga la plan;(2) promovarea este operatia de stabilire a unei ordonari (temporale) intre doi pasi de plan;(3) legarea simpla este operatia de atribuire de valori variabilelor pentru a valida preconditiile unui pas de plan;(4) separarea este operatia de impiedicare a atribuirii anumitor valori unei variabile;(5) eliminarea destructivitatii este operatia de introducere a unui pas S3 (un pas deja existent in plan sau un pas nou) intre pasii S1 si S2, in scopul de a adauga un fapt invalidat de pasul S1 si necesar in pasul S2 (S1 amenintare pt S2).

Page 20: Inteligenta Artificiala

Sinteza planului - cont

20

C

BA C

S S B

A

i f

ARMEMPTY

ON(C,A) ON(A,B) ONTABLE(A) ON(B,C)

ONTABLE(B)

CLEAR(B) CLEAR(C)

*HOLD(A) *HOLD(B)

STACK(A,B) STACK(B,C)

ON(A,B) ON(B,C)

~ CLEAR(B) ~ CLEAR(C)~ HOLD(A) ~ HOLD(B)

Plan = {STACK(A,B),STACK(B,C)}

ARMEMTY

Page 21: Inteligenta Artificiala

Sinteza planului - cont

21

*CLEAR(A) *CLEAR(B)ONTABLE(A) ONTABLE(B)

PICKUP(A) PICKUP(B)

~ ONTABLE(A) ~ ONTABLE(B)~ ARMEMPTY

HOLD(A) HOLD(B)

Plan = {STACK(A,B),STACK(B,C),PICKUP(A),PICKUP(B)}

*ARMEMTY *ARMEMTY

~ ARMEMPTY

PICKUP(A) < STACK(A,B)

PICKUP(B) < STACK(B,C)

PICKUP(B) < STACK(A,B)

PICKUP(B) < PICKUP(A)

PICKUP(B) < STACK(B,C) < PICKUP(A)

1. UNSTACK (C,A)2. PUTDOWN (C)3. PICKUP (B)4. STACK (B,C)5. PICKUP (A)6. STACK (A,B) }

Plan = {

HOLD(A)HOLD(B)

PICKUP(A) < STACK(A,B)

C

BA C

S S B

A

i f

Page 22: Inteligenta Artificiala

3.3 Algoritm TWEAK

Algoritm: Planificare neliniara in TWEAK1. Initializeaza Plan {}2. Initializeaza S cu multimea formulelor care definesc starea

scop3. cat timp S <> {} executa

3.1. Alege si elimina o formula F din S3.2. daca F nu este satisfacuta in starea curenta

atunci3.2.1. Alege o operatie de modificare a planului3.2.2. Aplica operatia si adauga efectul ei in Plan

22

Page 23: Inteligenta Artificiala

Algoritm TWEAK - cont

3.3. Verifica pentru toti pasii din Plan satisfacerea preconditiilor

3.4. pentru fiecare preconditie nesatisfacuta a unui pas din Plan executaAdauga preconditia la S

4. Genereaza ordinea totala a elmentelor din Plan pe baza relatiilor de ordine individuale

5. daca planul Plan este partialatunci5.1. Instantiaza variabilele planului5.2. Transforma arbitrar ordinea partiala in ordine totala

sfarsit.

23

Page 24: Inteligenta Artificiala

3.4 Modelul formal al planificarii

O formula este adevarata intr-o stare daca unifica cu o formula care face parte din stare respectiva.

Un pas de plan afirma o formula in starea sa de iesire daca formula unfica cu o postconditie a pasului.

Un pas de plan infirma o formula in starea sa de iesire daca afirma negarea acelei formule.

Un pas de plan poate fi executat numai daca toate preconditiile sale sunt adevarate in starea sa de intrare.

Starea de iesire a pasului de plan este starea de intrare din care se sterg formulele infirmate de catre pasul de plan si se adauga formulele afirmate de pasul de plan.

Ordinea de efectuare a operatiilor de stergere si adaugare este importanta.

24

Page 25: Inteligenta Artificiala

Modelul formal al planificarii - cont

Criteriul adevarului necesarO formula P este necesar adevarata intr-o stare S daca si numai

daca se indeplinesc urmatoarele doua conditii:(1) exista o stare T egala cu/sau necesar anterioara lui S in care P este necesar afirmata (adaugata);(2) pentru fiecare pas C posibil de executat inaintea lui S si pentru fiecare formula Q care poate unifica cu P pe care C o infirma, exista un pas W necesar intre C si S care afirma R, R fiind o formula pentru care R si P unifica ori de cite ori P si Q unifica.

25

Page 26: Inteligenta Artificiala

Modelul formal al planificarii - cont

Criteriul adevarului necesar

26

T S

C W

P

~Q

R

Page 27: Inteligenta Artificiala

Modelul formal al planificarii - cont

Criteriului adevarului necesar cu operatiilede modificare a planului

27

AND

ORT vechi

T nouAND

T < S

P UU

CQ

S < C

OR

P Q

W vechi

W nouAND

C < W

W < SR P Q P R

legaresimplã

adãugarede paºi

eliminaredestructivitate

separarepromovare

OR OR

Page 28: Inteligenta Artificiala

28

Planuri pe mai multe niveluri de abstractizare Planuri abstracte Operatori abstracti Scrie lucrare

Biblio Org. idei

Editeazacontinut

Gasesteeditor

Edit.text

Edit.figuri

Verificaerori

…..

4. Planificare ierarhica

Page 29: Inteligenta Artificiala

5. Planificare contingenta

29

StartFinishEste(Roata1)

Dez(Roata1)Umf(Rezerva) Este(Roata1)

Umf(Roata1)Umf(Rezerva)Dez(Roata1)

Bun(Roata1)Umfla(Roata1)

Page 30: Inteligenta Artificiala

Planificare contingenta - cont

30

StartFinishEste(Roata1)

Dez(Roata1)Umf(Rezerva) Este(Roata1)

Umf(Roata1)Umf(Rezerva)Dez(Roata1)

Bun(Roata1)Umfla(Roata1)

Elim(Roata1) Pune(Rezerva)

Finish

Este(Rezerva)Umf(Rezerva)~Bun(Roata1)

~Bun(Roata1) ~Bun(Roata1)

Bun(Roata1)

Verif(Roata1)

~Bun(Roata1)

Bun(Roata1)


Top Related