Inteligență artificială

8. Metode de planificare

Florin Leon

Universitatea Tehnică „Gheorghe Asachi” din Iași
Facultatea de Automatică și Calculatoare

http://florinleon.byethost24.com/curs_ia.htm
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 2
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 3
Metoda analizei
mijloace-scopuri
 Planificarea reprezintă alegerea unei succesiuni de acțiuni
pentru atingerea unui scop
 Una din primele metode de planificare a fost metoda analizei
mijloace-scopuri
 Presupune mai întâi identificarea scopurilor
 Apoi identificarea mijloacelor care permit atingerea scopurilor
 Acestă tehnică este deseori folosită de oameni pentru rezolvarea
problemelor
 Primul program de inteligență artificială care a implementat
procedura a fost “General Problem Solver”, realizat de Allen
Newell și Herbert Simon în 1963 la Universitatea Carnegie
Mellon

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 4
Metoda analizei mijloace-scopuri
 Se bazează pe o mulțime de reguli care pot
transforma o stare a problemei în alta
 Regulile se reprezintă sub forma unei părți stângi,
care descrie precondițiile (condițiile de aplicare) și o
parte dreaptă care descrie schimbările din starea
problemei ca urmare a aplicării regulii
 În acest scop se elaborează o așa-numită tabelă de
diferențe, în care se precizează ce operație este
aplicabilă pentru fiecare stare a problemei

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 5
Exemplu
 Să considerăm modul în care poate călători cineva:
 Dacă distanța care trebuie parcursă este mai mare de
20 km, ia trenul
 Dacă distanța este între 2 și 20 km, ia autobuzul
 Dacă distanța este mai mică de 2 km, merge pe jos
 Tabela de diferențe este următoarea:

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 6
Exemplu
 Să presupunem că o persoană X din Iași vrea să-și viziteze un
prieten Y din București

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 7
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 8
Căutarea și planificarea
 Planificarea are o natură similară cu
rezolvarea problemelor prin căutare
 La căutare, funcția succesor este o „cutie neagră”:
trebuie mai întâi aplicată asupra unei stări pentru
a ști ce acțiuni sunt posibile în acea stare și care
sunt efectele
 Planificarea este un caz particular de
raționament

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 9
Căutarea și planificarea
 Pentru probleme „reale”, algoritmii de căutare eșuează din cauza
complexității; de ex. scop:

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 10
Reprezentarea în planificare
 Planificarea deschide cutia neagră folosind logica
pentru a reprezenta:
 Stările
 Scopurile
 Acțiunile
 Utilizează stategia „divide et impera” pentru a
descompune problema în subscopuri

Rezolvarea problemelor Reprezentarea logică

Planificarea
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 11
Limbaje de reprezentare
 STRIPS (STanford Research
Institute Problem Solver)
 R. Fikes, N. Nilsson, 1971

 Robotul Shakey și blocurile

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 12
Reprezentarea stărilor
 O stare este o conjuncție de termeni pozitivi,
propoziționali sau de ordin întâi
 Valide:

 Invalide:

 Presupunerea lumii închise
(engl. “closed-world assumption”)
 Orice condiție care nu este menționată într-o stare
este considerată falsă

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 13
Reprezentarea scopurilor
 O conjuncție de termeni pozitivi
 De exemplu

 O stare propozițională s satisface scopul g dacă
ea conține toți atomii din g (și posibil alții)

 Starea
satisface scopul

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 14
Reprezentarea acțiunilor
 Scheme de acțiuni
 Precondiții
 Postcondiții (efecte)

lista de ștergere lista de adăugare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 15
Exemplu
 Starea curentă

 satisface precondiția acțiunii Fly (acțiunea este aplicabilă):

 cu substituțiile

 Acțiunea concretă

 Rezultat (starea următoare)
.

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 16
Presupunerea STRIPS
 Problema cadrului (engl. “frame problem”)
 Reprezentarea logică a numărului mare de non-efecte
obișnuite, implicite, ale unei acțiuni
 Exemplu:

 Trebuie adăugate explicit unele axiome de cadru:

 Presupunerea STRIPS (engl. “STRIPS assumption”)
evită această problemă
 Orice termen care nu este menționat în efect rămâne
neschimbat

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 17
Expresivitate și extensibilitate

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 18
STRIPS și ADL

10 avioane, 5 aeroporturi  10 x 5 x 5 = 250 acțiuni propoziționale
Orice schemă de acțiune STRIPS poate fi propoziționalizată

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 19
Exemplul 1:
Transport aerian de mărfuri

Reprezentarea STRIPS
permite ca un avion să
zboare de pe / pe
același aeroport
Soluție:
Inegalitățile din ADL
previn acest lucru

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 20
Exemplul 2:
Roata de rezervă

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 21
Exemplul 3:
Lumea blocurilor
 On(b,x)  Clear(x)
 Move(b,x,y)  Block(b)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 22
Exemplul 3:
Lumea blocurilor

Nu este STRIPS

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 23
PDDL
 “Planning Domain Definition Language”
(McDermott, 1998)
 Dezvoltat inițial pentru Competițiile
Internaționale de Planificare (1998/2000)
 Ultima versiune: PDDL 3.1 (2008)
 Standardul actual de facto pentru
reprezentarea problemelor de planificare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 24
Exemplu: domeniul blocurilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 25
Exemplu: domeniul blocurilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 26
Exemplu: domeniul blocurilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 27
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 28
Căutarea în spațiul stărilor
 Planificarea prin progresie
 Căutare înainte
 Ia în calcul efectele tuturor acțiunilor posibile
într-o stare dată
 Planificarea prin regresie
 Căutare înapoi
 Pentru atingerea unui scop, se caută ce ar fi putut
fi adevărat într-o stare anterioară

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 29
Căutarea înainte

 Problema acțiunilor irelevante
 De exemplu: 10 aeroporturi, fiecare cu 5 avioane și cu
20 de containere
 Scop: mutarea containerelor de pe aeroportul A pe aeroportul B
 Factorul de ramificare: 10 x 5 x 20  b = 1000
 Adâncimea soluției: 20 de încărcări + 1 zbor + 20 de descărcări  d = 41
 100041 (10123) noduri

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 30
Căutarea înapoi

 20 de acțiuni din starea inițială în loc de 1000

 Pot exista și aici acțiuni irelevante
 Zborul unui avion gol când scopul este deja atins
 Metoda este greu de aplicat dacă scopul nu este exprimat
explicit, ci ca o mulțime de constrângeri

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 31
Euristici
 Nici progresia nici regresia nu sunt foarte eficiente fără o
euristică potrivită
 Abordări pentru găsirea unor euristici admisibile: soluții optime
la probleme relaxate
 No delete list: eliminarea efectelor negative (a listei de ștergere),
fără a elimina precondițiile – una din cele mai utilizate euristici
 Eliminarea tuturor precondițiilor acțiunilor
 Presupunerea independenței subscopurilor: costul rezolvării unei
conjuncții de subscopuri este aproximativ egal cu suma costurilor
de rezolvare independentă a subproblemelor
 Euristicile presupun rezolvarea efectivă a unor probleme
simplificate de planificare. În practică, aceste costuri sunt
neglijabile

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 32
Anomalia Sussman
 Algoritmii de planificare neintercalată (engl. “noninterleaved”) produc
pentru două subscopuri G1 și G2 un plan pentru G1 concatenat cu un
plan pentru G2 sau viceversa
 Există situații în care acești algoritmi nu pot găsi planul cel mai scurt
 În exemplul de mai jos, există două ordonări posibile ale subscopurilor:
On(A,B) și On(B,C) sau On(B,C) și On(A,B)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 33
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 34
http://aispace.org/planning/
Anomalia Sussman

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 35
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 36
Planificarea cu ordine parțială
 Tipurile de planificare prin progresie și regresie
sunt forme de planificare cu ordine totală
 Nu pot profita de descompunerea problemei
 Trebuie luate decizii de găsire a tuturor secvențelor de
acțiuni pentru toate subproblemele simultan
 Este mai eficientă rezolvarea independentă a
subscopurilor și apoi combinarea subplanurilor

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 37
Exemplu

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 38
Planuri cu ordine parțială și
planuri cu ordine totală

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 39
Reprezentarea POP
 Acțiuni + Start, Finish
 Constrângeri de ordonare
 A  B A trebuie executată înaintea lui B
 Legături cauzale
 A îndeplinește p pentru B

 Precondiții deschise
 Precondiții care nu sunt îndeplinite de nicio acțiune
 Scopul este reducerea acestei mulțimi la mulţimea
vidă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 40
Exemplu de POP

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 41
Exemplu

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 42
Exemplu

 Conflict: LeaveOverNight are efectul ¬ At(Spare, Ground),
care este în conflict cu
Remove(Spare, Trunk) →At(Spare, Ground) PutOn(Spare, Axle)
 Pentru rezolvare, se adaugă constrângerea:
LeaveOverNight ≺ Remove(Spare, Trunk)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 43
Exemplu

 Se alege o precondiție deschisă: At(Spare, Trunk)
 Doar Start este aplicabil
 Se adaugă legătura cauzală: Start →At(Spare, Trunk) Remove(Spare, Trunk)
 Conflict: legătura cauzală cu efectul ¬At(Spare, Trunk) în
LeaveOverNight
 Nu mai există nicio soluție de reordonare
 Este necesar backtracking-ul

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 44
Exemplu

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 45
Anomalia Sussman

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 46
Anomalia Sussman

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 47
Anomalia Sussman

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 48
Anomalia Sussman

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 49
Anomalia Sussman

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 50
Euristici pentru POP
 Întrucât nu reprezintă stările direct, este greu
de estimat cât de departe este un POP de
atingerea scopului
 Euristici:
 Numărul de precondiții deschise distincte
 Cea mai constrânsă variabilă: selectarea condiției
deschise care poate fi satisfăcută în cele mai
puține moduri

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 52
Ideea de bază
 Se construiește un graf care codează
constrângerile asupra planurilor posibile
 Acest graf de planificare va restrânge spațiul de
căutare
 Dacă există un plan valid, atunci acesta este un
subgraf al grafului de planificare
 Un graf de planificare poate fi construit în timp
polinomial pentru orice problemă

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Graf de planificare
 O secvență de niveluri care corespund cu pașii planului
 Nivelul 0 este starea inițială
 Fiecare nivel conține o mulțime de termeni și o mulțime de
acțiuni
 Termenii incluși sunt cei care ar putea fi adevărați la un pas
 Acțiunile incluse sunt cele ale căror precondiții ar putea fi
satisfăcute la un pas
 Poate fi utilizat doar pentru planificare propozițională

explicații în slide-urile următoare
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 54
Reprezentare
 Acțiuni de persistență: pătratele reprezintă „inacțiuni”
(axiome de cadru)
 Excluziunile mutuale (mutex) apar între termeni și acțiuni
 Reprezintă imposibilitatea unor combinații
 Algoritmul continuă până când două niveluri succesive
sunt identice (graful se stabilizează)
 Nu se alege ordinea acțiunilor, deci nu avem o căutare
combinatorică
 Complexitatea generării grafului este polinomială
 O(n ∙ (a + t)2), unde t este numărul de termeni, a numărul de
acțiuni, n numărul de niveluri al grafului

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 55
Relațiile mutex
 Între 2 acțiuni de pe același nivel există o relație
mutex dacă și numai dacă există cel puțin una din
următoarele situații:
 Efecte inconsecvente (E-E): o acțiune neagă efectul alteia
 Eat(Cake), Have(Cake)
 Interferență (E-P): unul din efectele unei acțiuni este
negarea unei precondiții a alteia
 Eat(Cake), Have(Cake)
 Necesități concurente (P-P): una din precondițiile unei
acțiuni este mutual exclusivă cu o precondiție a alteia
 Bake(Cake) și Eat(Cake) concurează pentru valoarea
precondiției lui Have(Cake)

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 56
Relațiile mutex
 Între 2 termeni există o relație mutex dacă și numai
dacă:
 Unul este negarea celuilalt sau
 Toate perechile de acțiuni care realizează cei doi termeni
sunt mutual exclusive (suport inconsecvent)
 Grafurile de planificare sunt relaxări ale problemei
 Reprezentarea mutex-urilor pentru mai mult de 2 elemente
nu se justifică din punct de vedere al costurilor
computaționale

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 57
Exemplu: A avea o prăjitură și
a mânca o prăjitură
“Have cake and eat cake too”

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 58
Algoritmul Graphplan
 Blum & Furst, 1997
 Are ca scop extragerea unui plan direct din graful de
planificare
 Este mult mai rapid decât algoritmii anteriori precum
POP
 Ideea de bază: verifică dacă toți termenii scopului
sunt prezenți în nivelul curent fără relații mutex între
ei
 Dacă da, se încearcă extragerea soluției
 Dacă nu, se expandează graful

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 59
Exemplu

Toți termenii problemei,
pozitivi cei din Init și
negativi ceilalți
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 60
Exemplu
 Convenție de notație pentru relațiile mutex:
 Între acțiuni
 EE – efecte inconsecvente (E1 = ¬E2)
 EP – interferență (E1 = ¬P2)
 PP – necesități concurente (P1 = ¬P2)
 Între termeni
 N – negarea termenilor
 S – suport inconsecvent

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 61
Construirea grafului

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 62
Construirea grafului

Scopul
At(Spare, Axle)
nu apare pozitiv

Nu s-au mai
reprezentat
relațiile N

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 63
Construirea grafului

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 64
Construirea grafului

Nu s-au mai reprezentat relațiile N
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 65
Găsirea soluției

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 66
Găsirea soluției

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 67
Soluția

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 68
Plan valid
 Un plan valid este un subgraf al grafului de
planificare unde:
 Acțiunile de pe același nivel nu sunt mutex
 Toate precondițiile acțiunilor sunt adevărate
 Scopurile sunt satisfăcute

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
Euristici pentru căutarea
înapoi în graf
 Complexitatea problemei este exponențială, complexitatea
construirii grafului este polinomială
 În timpul căutării înapoi, se folosește o euristică greedy pe
baza costurilor de nivel ale termenilor
 Costul de nivel al unui termen este numărul primului nivel pe
care apare acel termen
 Pentru orice mulțime de scopuri:
 Se alege mai întâi termenul cu cel mai mare cost de nivel
 Pentru realizarea termenului, se alege acțiunea cu cele mai
ușoare precondiții, de exemplu pe baza maximului costurilor
de nivel ale termenilor din precondiție

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 70
Metode de planificare
1. Analiza mijloace-scopuri
2. Reprezentări: STRIPS, ADL, PDDL
3. Planificarea prin căutare în spațiul stărilor
4. Planificarea cu ordine parțială
5. Algoritmul Graphplan
6. Algoritmul FF (Fast-Forward)
7. Concluzii

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 71
Algoritmul FF (Fast-Forward)
 Algoritmul Graphplan este optim
 Pentru numeroase probleme de planificare
optimalitatea nu este foarte importantă
 Deși euristicile favorizează planurile mai scurte
 Algoritmul FF (Hoffmann, 2001) tratează planificarea
ca pe o căutare înainte, folosind o serie de euristici
 A câștigat competiția de planificare AIPS-2000

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 72
Strategia de căutare FF
 Folosește euristica no delete list ca estimare a
apropierii de scop
 Se rezolvă problema de planificare considerând că acțiunile
au doar liste de adăugare
 Este o problemă relaxată, mai simplă
 Mai întâi folosește o strategie greedy, fără
backtracking, înspre scop
 Pe platouri utilizează căutarea în lățime
 Dacă nu găsește o soluție, aplică o căutare A* din
starea inițială

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 73
Concluzii
 Sistemele de planificare sunt algoritmi de rezolvare a
problemelor care operează cu reprezentări explicite
ale stărilor și acțiunilor
 Algoritmii de planificare cu ordine parțială sunt
eficienți pentru problemele care pot fi descompuse
 Grafurile de planificare pot fi utilizate atât ca euristici
cât și ca suport pentru extragerea directă a soluțiilor
de către algoritmi precum Graphplan
 Algoritmul FF folosește o abordare euristică pentru
planificare

Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm 74