1. 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
2. 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. 3
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
4. 4
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
5. 5
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
6. 6
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
7. 7
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
8. 8
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
9. 9
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
10. 10
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
11. 11
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
12. 12
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
13. 13
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
14. 14
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
15. 15
Reprezentarea acțiunilor
Scheme de acțiuni
Precondiții
Postcondiții (efecte)
lista de adăugarelista de ștergere
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
16. 16
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
17. 17
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
19. 19
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
20. 20
Exemplul 1:
Transport aerian de mărfuri
Soluție:
Reprezentarea STRIPS
permite ca un avion să
zboare de pe / pe
același aeroport
Inegalitățile din ADL
previn acest lucru
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
21. 21
Exemplul 2:
Roata de rezervă
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
22. 22
Exemplul 3:
Lumea blocurilor
On(b,x)
Move(b,x,y)
Clear(x)
Block(b)
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
24. 24
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
28. 28
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
29. 29
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
30. 30
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
31. 31
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
32. 32
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
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
Eliminarea efectelor negative (a listei de ștergere), fără a elimina
precondițiile; “no delete list”, una din cele mai utilizate euristici
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
33. 33
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
36. 36
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
37. 37
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
39. 39
Planuri cu ordine parțială și
planuri cu ordine totală
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
40. 40
Reprezentarea POP
Acțiuni + Start, Finish
Constrângeri de ordonare
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ă
BA
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
41. 41
Exemplu de POP
Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
43. 43
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
44. 44
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
51. 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
52. 52
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
53. 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
54. 54
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ătoareFlorin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
55. 55
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
56. 56
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
57. 57
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
58. 58
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
59. 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
59Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
69. 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
70. 70
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
71. 71
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
72. 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
72Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
73. 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ă
73Florin Leon, Inteligenta artificiala, http://florinleon.byethost24.com/curs_ia.htm
74. 74
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