Sisteme multiagent Curs 11 Universitatea Politehnica Bucuresti 2007
Sisteme multi-agent Curs 11 Universitatea Politehnica Bucuresti 2007 - 2008 Adina Magda Florea adina@cs. pub. ro http: //turing. cs. pub. ro/blia_08 curs. cs. pub. ro
Programarea orientata agent (AOP) Cuprins 1 Principii AOP 2 Un scenariu cu agenti 3 Sistem AOP 4 AGENT-0 5 Un exemplu de program
1 Principii AOP n n Interactiuni Stari mentale Semantica Agent-0 3
1. 1 OOP versus AOP 4
2 Un scenariu cu agenti Rezervare bilete avion Agenti: · P – pasager · C - program pe post de agent vanzari · S supervizor C n Confirma rezervarea – angajament pt eliberare ticket de imbarcare (boarding pass) n 5
Airline reservation March n P to C: Please inform me what flights you have from San Francisco to New York on April 18. n C to P: Flight #354 departs at 08: 30. flight #293 departs at 10: 00, flight #441 departs at noon, ¼ n P to C: Please book me on #354. n C to P: That is sold out. n P to C: Please book me on #293. n C to P: That is confirmed: your reservation number is 112358. 6
Airline reservation n n n P to C: Please book me also on #441. C to P: That conflicts with #293: I am not allowed to double book a passenger. P to C: Please get permission to do so. C to S: I request permission for the fallowing double booking: ¼ S to C: Permission denied. C to P: Sorry, I cannot get approval. April 18, at the airport n P to C: My name is P; I have a reservation for flight =293. n C to P: Here is your boarding pass. 7
3 Sistem AOP Un sistem AOP complet: o Un limbaj formal (logic) pt definire stari mentale o Un limbaj de programare pt definire si programare agenti; o Teoria actelor de comunicare (speech-act theory); o Semantica limbajului – stari mentale o Un proces de "agentificare" 8
4 Agent-0 4. 1 Componentele starii mentale n Convingeri (beliefs) n Actiuni agenti n Capabilitati sau Abilitati (capabilities sau abilities) n Angajamente sau Obligatii (obligation sau commitment) n Decizii – angajament catre sine. 9
4. 2 Reprezentarea convingerilor, angajamentelor si capabilitatilor Timp Limbaj logic temporal cu timp discret holding(robot, cup)t Actiune Nu se face distinctie intre actiuni si fapte Executia unei actiuni – faptul corespunzator raise-arm(robot)t este adevarat Actiuni instantanee 10
Convingeri Operator modal B, B ta j “At time t agent a believes that “, - - convingere B 3 a B 10 b like(a, b)7 “At time 3 agent a believes that at time 10 agent b will believe that at time 7 a liked b. ” Obligatii (angajamente) OBLta, b j “At time t agent a is obligated (committed) to agent b about . ” Decizii (alegeri) Obligatie catre sine DECta j =def OBLta, a j 11
Capabilitati CANtaj “At time t agent a is capable of . ” CAN 5 robotopen(door)8 “At time 5 the robot can ensure that the door is open at time 8. ” ABLE este versiunea imediata a lui CAN. time( ) –time(open(door)t)=t ABLEa j = def CANtime(j)aj 12
Rezumat categorii mentale in AGENT 0 n n n Timp liniar discret Convingeri B at Actiuni raise_arm(robot)t Obligatii (angajamente) OBLa, bt (CMTa, bt ) Decizii (alegeri) DECat = OBLa, at Capabilitati CANat Proprietati ale categoriilor mentale • Consistenta interna a convingerilor si obligatiilor l Buna credinta l Persistenta convingeri, obligatii, decizii 13
4. 3 Interpretor Bucla de baza Fiecare agent executa pasii 1. Citeste mesajul curent si actualizeaza starea mentala, inclusiv convingeri si angajamente 2. Executa angajamentele la momentul de timp t 14
Interpretor - cont Actiuni: n private actions n communicative actions n conditional actions Conditional action - mental condition n Agentul se poate angaja pentru actiuni private sau pentru actiuni de comunicare 15
Interpretor - cont Ipoteze transmitere mesaje n Platforma poate transmite mesaje altor agenti - nume n Interpretorul poate afla cand se trimite un mesaj Ipoteze despre ceas n Ceasul initiaza cei doi pasi la intervale regulate n Lungimea intervalelor - timegrain. n O iteratie a buclei < timegrain 16
Control Data Ceas Initializeaza stari mentale si capabilitati Defineste reguli pentru angajamente Mesaje primite Actualizare stari mentale Executa angajament la momentul de timp curent Reprezentare stari mentale si capabilitati Mesaje trimise Diagrama de flux a interpretorului
4. 4 Limbajul agent Instructiuni tip fapte n Fact statements : fapte, actiuni (t (employee smith acm)) (NOT (t (employee jones acm))) <fact> : : = (<time> (<predicate> <arg>*)) <time> : : = <integer> | now | <time-constant> | (+ <time>) | (- <time>) | (´ <time>) ; <time> poate fi <variable> daca ; apare intr-o regula de angajare <time-constant> : : = m|h|d|y ; m (minute) =60, h (hour) 3600, etc. 18
Instructiuni actiuni Private actions n (DO t p-action) Communicative actions n (INFORM t a fact) n fact – fact statement (REQUEST t a action) action - action statement (REQUEST 1 a (DO 10 update-database)) (REQUEST 1 a (REQUEST 5 b (INFORM 10 a fact))) 19
n n (UNREQUEST t a action) (REFRAIN action) <action> : : = (DO <time> <privateaction>) | (INFORM <time> <agent> <fact>) | (REQUEST <time> <agent> <action>) | (UNREQUEST <time> <agent> <action>) | (REFRAIN <action>) | (IF <mental-cond> <action>) 20
Instructiuni conditionale pentru actiuni Cand se ajunge la momentul t se examineaza starea mentala a agentului Agentul si timpul sunt considerate implicit in instructiune – se omit (IF (B (t 1 (employee smith ibm))) (INFORM t a (t 1 (employee smith ibm)))) (IF <mental-cond> <action>) 21
<action> : : = (IF <mental-cond> <action>) < mental-cond > : : = < mental- conj> | (OR < mental- conj>*) < mental- conj> : : = < mental- pattern> | (AND < mental- pattern>*) < mental- pattern> : : = (B <fact>) | ((CMT <agent>) <action>) | (NOT < mental- pattern>) 22
n Variabile ? x ( ) ? !x ( ) Ex: (IF (NOT ((CMT ? x) (REFRAIN sing))) (DO ? !t sing)) (IF (B (t (emp ? x ibm))) (INFORM a (t (emp ? x ibm)))) <variable> : : = ? <alphanumeric_string> | ? !<alphanumeric_string> <agent> : : = <alphanumeric_string> | <variable> <predicate> : : = <alphanumeric_string> <arg> : : = <alphanumeric_string> | <variable> 23
n Reguli de angajare OR AND < mental- pattern> : : = (B <fact>) | ((CMT <agent>) <action>) | (NOT < mental- pattern>) Conditii pt a face un angajament n Conditii mentale <mental-cond> n Conditii mesaj <message-cond> Conditii mesaj = o combinatie de message pattern Message pattern (<sender> <type> <content>) <type>: INFORM, REQUEST, UNREQUEST, REFRAIN <content>: <fact statement> sau <action statement>, depinde de tip Regula de angajare (COMMIT <message-cond> <mental-cond> (<agent> <action>)*) Ex: (COMMIT (? a REQUEST ? action) (B (now (myfriend ? a))) (? a ? action)) 24
Reguli de angajare <commitrule> : : = (COMMIT <message-cond> <mental-cond> (<agent> <action>)*) < message-cond> : : = < message-conj> | (OR <message-conj>*) < message-conj> : : = < message-pattern> | (AND < message-pattern>*) < message-pattern> : : = (<agent> INFORM <fact>) | (<agent> REQUEST <action>) | (<agent> UNREQUEST <action>) | (<agent> REFRAIN <action>) | (NOT < message-pattern>) 25
O regula de angajare adauga un angajament pt a executa o actiune (COMMIT <message-cond> <mental-cond> (<agenti> <actioni>)*) daca: n <message-cond> este adevarata pt mesajul primit n <mental-cond> este adevarata pt starea mentala curenta n agentul poate face toate actioni n agentul nu este angajat la REFRAIN actioni n daca actioni = REFRAIN action 1 agentul nu este angajat la action 1 atunci, pt toti i, agentul face angajamentul catre agenti pt a executa actioni. 26
Program agent n Stabileste timegrain n Defineste capabilitati n Defineste convingeri initiale n Scrie regulile de angajare <program> : : = timegrain : = <time> CAPABILITIES : = (<action> <mentalcond>)* INITIAL BELIEFS : = <fact>* COMMITMENT RULES : = <commitrule>* 27
Bucla de baza AGENT 0 1. Citeste mesajul curent si actualizeaza starea mentala, (1 a) Actualizeaza convingeri (1 b) Actualizeaza angajamente 2. Executa angajamentele la momentul de timp t (1 a) Convingerile sunt actualizate: n Ca rezultat al primirii unui mesaj INFORM n Ca rezultat al executarii unei actiuni private - Un agent BD ajunge sa creada ca John lucreaza la Intel ca rezultat al unei actiuni private retrieve - Un agent ajunge sa creada ca John lucreaza la Intel ca rezultat al unui INFORM 28
Bucla de baza AGENT 0 (1 b) Actualizeaza angajamente BC n Angajamente (agent action) si timp in BC (a 1 (rotate wheelbase ? degrees)) n Capabilitati (privateaction mental-cond). ((rotate wheelbase ? degrees) (NOT(CMT ? a (REFRAIN rotate)))) Conditia mentala impiedica angajamente pt actiuni incompatibile 29
Strategia de angajare (cand se elimina angajamente) Angajamentele existente sunt eliminate: n Ca rezultat al unui mesaj UNREQUEST sau n Ca rezultat al modificarii convingerilor La actualizarea convingerilor, interpretorul verifica angajamentele catre actiuni private si elimina angajamentele pt care mental-cond a capabilitatii nu mai este indeplinita - Ar trebui sa trimita mesaj – AGENT 0 nu obliga - Eliminare – independenta de program agent - Adaugare – depinde de regulile de angajare 30
Conditiile in care un agent este capabil de executia unei actiuni n REQUEST sau UNREQUEST catre orice alt agent n Poate informa pe oricine n Un agent se poate informa pe el n Actiune privata - daca mental-cond este indeplinita la t n Un agent poate sa nu execute o actiune cu conditia sa nu se fi angajat la aceasta n Actiune conditionala (IF mental-cond action) 31
(2) Executarea angajamentelor n In BC fiecare angajament - t n In (2) agentul “executa” toate angajamentele (now - timegrain, now]. n “executa” depinde de tipul actiunii · INFORM, REQUEST, UNREQUEST – trimite mesaj · REFRAIN – nici un efect · DO, IF – convingeri, angajamente, mentalcond 32
5 Exemplu de program n Un program AGENT-0 pt scenariul initial n Activitatea relevanta – eliberare ticket de ambarcare n Confirmarea rezervarii este un angajament pentru eliberare ticket de ambarcare 33
5. 1 Macro definitii (issue_bp pass flightnum time) Þ (IF (AND (B ((- time h) (present pass))) (B (time (flight ? from ? to flightnum)))) (DO time – h (physical_issue_bp Private action pass flightnum time))) (query_which t asker askee q) Þ (REQUEST t askee (IF (B q) (INFORM (+ t 1) asker q))) (query_whether t asker askee q) Þ (REQUEST t askee (IF (B q) (INFORM (+ t 1) asker q))) (REQUEST t askee (IF (B (NOT q)) (INFORM (+ t 1) asker (NOT q)))) 34
5. 2 Convingeri initiale Zboruri (time (flight from to number)) Locuri disponibile (time (remaining_seats time 1 flight_number seats) 5. 3 Capabilitati Eliberare tichete si actualizare numar de locuri disponibile ((issue_bp ? a ? flight ? time) true) ((DO ? time (update_remaining_seats ? time 1 ? flight_number ? additional_seats)) (AND (B (? time (remaining_seats ? time 1 ? flight_number ? current_seats))) (? current_seats >= |? additional_seats|))) 35
(COMMIT <message-cond> <mental-cond> (<agent> <action>)*) 5. 4 Regula de angajare (COMMIT (? cust REQUEST (issue_bp ? pass ? flight ? time)) (AND (B (? time (remaining_seats ? flight ? n) (? n > 0) (NOT ((CMT ? anyone) (issue_bp ? pass ? anyflight ? time)))) (myself (DO (+ now 1) (update_remaining_seats ? time ? flight -1))) (? cust (issue_bp ? pass ? flight ? time))) 36
5. 5 Dialog pasager - agent smith (query_which lmarch/l: 00 smith airline (18 april/? !time (flight sf ny ? !num))) airline (INFORM lmarch/2: 00 smith (18 april/8: 30 (flight sf ny #354))) airline (INFORM lmarch/2: 00 smith (18 april/10: 00 (flight sf ny #293))) airline (INFORM lmarch/2: 00 smith (18 april/ ¼ smith (REQUEST lmarch/3: 00 airline (issue_bp smith #354 18 april/8: 30)) smith (query_whether lmarch/4: 00 smith airline ((CMT smith) (issue-bp smith #354 18 april/8: 30))) 37
airline (INFORM lmarch/5: 00 smith (NOT ((CMT smith) (issue-bp smith #354 18 april/8: 30)))) smith (REQUEST lmarch/6: 00 airline (issue-bp smith #293 18 april/10, . 00)) smith (query-whether lmarch/7: 00 smith airline ((CMT smith) (issue-bp smith #293 18 april/10: 00))) airline (INFORM lmarch/8: 00 smith ((CMT smith) (issue-bp smith #293 18 april/10: 00))) ¼ smith (INFORM 18 april/9: 00 airline (present smith)) airline (DO 18 april/9: 00 (issue-bp smith #293 18 april/10: 00)) 38
- Slides: 38