Divide and Conquer in Multi-agent Planning Multi-Agent Planning as the Process of Merging Distributed Sub-plans Eithan Ephrati and Jeffrey S. Rosenschein Samuel Gerssen David Solinger
Inleiding Multi-agent planning Een globaal doel splitsen in meerdere subdoelen en de meerdere plannen daarvoor weer samenvoegen Dóór meedere agents Vóór meerdere agents
Overzicht Complexiteit Subdoelen Algoritme Voorbeeld Beschouwingen
Complexiteit b = branch factor, d = probleemdiepte 1 voor 1:O(b d ) 1 voor n: O(n b) d 1 voor n, subgoals:Σ i ((n b i ) d i ), b i b/n, d i d/n n voor n:max i (n b i ) d i
Subdoelen Het algoritme gaat ervan uit dat het probleem al in grounded subdoelen opgedeeld is. Soms is dit splitsen erg makkelijk, maar soms helemaal niet.
Subdoelen ba c ba 34f d g e h ij f gh ij b j h ih c de acf jh ebd
Subdoelen Stap 1: Iteratief zoeken naar coherente instanties van subdoelen bcfgh ij
Subdoelen Stap 2: Zoeken naar de beste interface punten bcf gh ij bcfgh ij
Het Algoritme Stap 1 Stap 2 Stap 3 Stap 4 Stap 5 Stap 6 Stap 7 Agents maken eigen constraints + plan Elke agent dient lijst met constraints in Alle consistente combinaties worden bepaald Van elke mogelijkheid wordt de cost berekend... …en h’ De mogelijkheid met de laagste h’ wordt definitief De constraintlijst bevat nu alle subgoals
Definities ê 1 (g 1 ) is de verzameling constraints die nodig is voor een plan om tot subgoal g 1 te komen. ê 1 (g 1 ) is onderverdeeld in de subsets E 1 j, bestaande uit de verzameling constraints die realiseerbaar zijn na j stappen. P(E) is de optimale verzameling acties om tot constraint-set E te komen A k is de geaggregeerde set van constraints (alle opties), bestaande uit A j k voor alle j, A k+ is de meest optimale volgend de heuristiek.
Stap 1: elke agent maakt ê i (g i ),een lijst van constraints voor zijn eigen goal g i Stap 2: bij iteratie k declareert elke agent E k * (de gewenste extensie van constraints volgens ê i (g i ) die relevant is en nog niet geaccepteerd door de groep) Stap 3: de maximale consistente extensies van A k+ worden gegenereerd (alle mogelijke combinaties van constraints uit stap 2). De vereniging van de extensies met A k-1 vormen A j k-1. Stap 4: voor elke A j k (elk alternatief) worden de kosten van de extra operations berekend. Stap 5: voor elke A j k (elk alternatief) wordt de h j ’ (de heuristiek) berekend volgens A *. Stap 6: A k+ is de A j k met de beste (=laagste) h’. Terug naar stap 2 tenzij.. Stap 7: Alle ‘best plans’ zijn gevonden.
Het Voorbeeld ba c2 Initial state c b a Goal state b a c 1 c b a 2 Plan 1Plan 2 g1 = {A(a,16), A(b,16), O(a,b,H)} g2 = {A(b,16), A(c,16), O(b,c,H)}
ê 1 (g 1 ) en ê 2 (g 2 ) zijn gedefinieerd E g1 1 = E g2 1 = [C(c), C(b)] E x1 = A 1 1 = [C(c), C(b)] g(A 1 1 ) = 0 (initial state) f’(A 1 1 ) = 99 (individual estimate cost) A 1+ = A 1 1 = [C(c), C(b)] K=0K=1
K= E 1 * = E g1 2 = [A(a i,r(b)), C(c), C(b)] E 2 * = E g2 2 = [A(a i,r(c)), C(c), C(b)] E x1 = A 1 2 = [A(a i,r(b)), A(a i,r(c)), C(c), C(b)] E g1 1 = E g2 1 = [C(c), C(b)] E x1 = A 1 1 = [C(c), C(b)] g(A 1 1 ) = 0 (initial state) f’(A 1 1 ) = 99 (individual estimate cost) A 1+ = A 1 1 = [C(c), C(b)] g(A 1 2 ) = 7 f’(A 1 1 ) = 99 (agents bezig met eigen plan) A 2+ = A 1 2 = [A(a i,r(b)), A(a i,r(c)), C(c), C(b)]
K=2K= E 1 * = E g1 2 = [A(a i,r(b)), C(c), C(b)] E 2 * = E g2 2 = [A(a i,r(c)), C(c), C(b)] E x1 = A 1 2 = [A(a i,r(b)), A(a i,r(c)), C(c), C(b)] g(A 1 2 ) = 7 f’(A 1 1 ) = 99 (agents bezig met eigen plan) A 2+ = A 1 2 = [A(a i,r(b)), A(a i,r(c)), C(c), C(b)] E 1 * = E g1 3 = [A(b,16), C(c), C(b)] E 2 * = E g2 3 = [A(c,16), C(c), C(b)] E x1 = [A(b,16), C(c), C(b)] E x2 = [A(c,16), C(c), C(b)] E x3 = [A(c,16), A(b,16), C(b)] E x4 = [A(c,16), A(b,16), C(c)] g(A 1 3 ) = 31, g(A 2 3 ) = 15 g(A 3 3 ) = 39, g(A 4 3 ) = 39 f’(A 1 3 ) = 71, f’(A 2 3 ) = 83 f’(A 3 3 ) = 49 (=best), f’(A 4 3 ) = 73 A 3+ = A 3 3 = [A(b,16), A(c,16), C(b)]
K=3K= E 1 * = E g1 3 = [A(b,16), C(c), C(b)] E 2 * = E g2 3 = [A(c,16), C(c), C(b)] E x1 = [A(b,16), C(c), C(b)] E x2 = [A(c,16), C(c), C(b)] E x3 = [A(c,16), A(b,16), C(b)] E x4 = [A(c,16), A(b,16), C(c)] g(A 1 3 ) = 31, g(A 2 3 ) = 15 g(A 3 3 ) = 39, g(A 4 3 ) = 39 f’(A 1 3 ) = 71, f’(A 2 3 ) = 83 f’(A 3 3 ) = 49 (=best), f’(A 4 3 ) = 73 A 3+ = A 3 3 = [A(b,16), A(c,16), C(b)] E 1 * = E g1 6 = [A(b,16), C(a), C(b), A(a i,r(a))] E 2 * = E g2 5 = [A(c,16), A(b,16), O(b,c,H)] E x1 = A 1 4 = [A(b,16), C(a), C(b), A(a i,r(a)), A(c,16), O(b,c,H)] g(A 1 4 ) = 41 f’(A 1 4 ) = 60 (rigid policy) f’(A 1 4 ) = 42 (interactive policy) A 4+ = A 1 4 = [A(b,16), C(a), C(b), A(a i,r(a)), A(c,16), O(b,c,H)]
K=4K= E 1 * = E g1 6 = [A(b,16), C(a), C(b), A(a i,r(a))] E 2 * = E g2 5 = [A(c,16), A(b,16), O(b,c,H)] E x1 = A 1 4 = [A(b,16), C(a), C(b), A(a i,r(a)),A(c,16), O(b,c,H)] g(A 1 4 ) = 41 f’(A 1 4 ) = 60 (rigid policy) f’(A 1 4 ) = 42 (interactive policy) A 4+ = A 1 4 = [A(b,16), C(a), C(b), A(a i,r(a)), A(c,16), O(b,c,H)] E 1 * = [A(a,16), A(b,16), O(a,b,H)] = goal E 2 * = [A(b,16), A(c,16), O(b,c,H)] = goal E x1 = A 1 5 = [A(a,16), A(b,16), A(c,16), O(a,b,H), O(b,c,H)] g(A 1 5 ) = 45 Goal achieved Stop
A * Search Kostenfunctie f’ = g + h’ g zijn de tot nu toe gemaakte kosten bijvoorbeeld na stap 1: constraints worden satisfied door M 1 (0,4) kost 4, M 2 (9,12) kost 3, totale kosten 7, dus in stap 2 is g = 7
A * Search Kostenfunctie f’ = g + h’ h’ zijn de verwachte resterende kosten. Aan de hand van de nog niet satisfied constraints worden de kosten van de resterende plannen uitgerekend. Bijvoorbeeld, aan het begin is g = 0 en h’ = kosten van plan 1 + kosten van plan 2 h’ is een goede schatting (gebaseerd op de individuele plannen van a 1 en a 2 )
‘Rigid’ vs. ‘Interactive’ Bij ‘rigid’ policy wordt heel strikt gekeken welke sets van constraints al vervuld zijn, en de kosten van de rest van het originele plan wordt h’. Bij ‘interactive’ policy wordt aan de hand van de reeds vervulde constraints een nieuw optimaal plan gezocht en die kosten worden h’. Bij interactive policy is h’ dus beter dan bij rigid policy, maar het is langzamer.
Optimaliteit Vier zaken die bijdragen aan niet-optimaliteit: Het splitsen op zichzelf Instantiatie van subdoelen Binding van interface punten Zoekalgoritme bij mergen
Optimaliteit kosten iteraties P* P(S)* P(S)
Dynamisch Het algoritme werkt goed in een dynamische omgeving. Bij verandering van het globale doel. Bij tegelijkertijd plannen en uitvoeren.
Dutch auction Wanneer agents liegen De agent met het laagste bod mag de operatie uitvoeren en krijgt daarvoor betaald het één na laagste bod
Dutch auction Werkelijke kosten X Stel agent A bied X- om te ‘winnen’: –Als de andere agent (B) lager dan X biedt, dan maakt A verlies. –Als B hoger dan X, of X biedt, dan had A net zo goed X kunnen bieden.
Dutch auction Stel agent A bied X+ om meer te ‘verdienen: –Als B lager dan X biedt, dan maakt het voor A niets uit. –Als B hoger dan X, of X biedt en lager dan X+ , dan heeft A onnodig verlies. –Als B hoger dan X+ biedt, dan had A net zo goed X kunnen bieden
Einde Bedankt voor de aandacht. Zijn er nog Vragen ?