42
Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica Bucuresti Anul universitar 2007-2008, Master Adina Magda Florea http://turing.cs.pub.ro/webs_07

Curs 6 Negociere

Embed Size (px)

DESCRIPTION

h

Citation preview

  • Aplicatii Web bazate pe semantica, agenti si servicii

    Universitatea Politehnica BucurestiAnul universitar 2007-2008, MasterAdina Magda Floreahttp://turing.cs.pub.ro/webs_07

    Service-Oriented Computing: Semantics, Processes, Agents

  • Curs 6Negociere in SMANegociere bazata pe teoria jocurilorNegociere pentru alocarea taskurilorNegociere euristica

    Service-Oriented Computing: Semantics, Processes, Agents

  • 1. Despre negociereAgenti motivati colectiv = cooperareAgenti motivati individual = competitieNegociere = interactiune -> contractNegocierea include:un limbaj de comunicareun protocol de negociereun proces de decizie: concesii, criterii de acceptare/refuzSingle party or multi-party negotiation: one to many or many to many (eBay http://www.ebay.com )Tehnici de negociereNegociere bazata pe teoria jocurilorNegociere euristicaNegociere bazata pe argumentare*

    Service-Oriented Computing: Semantics, Processes, Agents

  • 2. Negociere bazata pe teoria jocurilorCriterii de evaluare protocol negociereAgentii se comporta rationalComportare rationala = un agent prefera o utilitate / plata (utility / payoff) mai mare fata de una mai micaFuncta de utilitateui: R = {s1, s2, }ui(s) ui(s) (s s) ordonarea preferintelor asupra rezultatelor*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Doi agenti au 2 actiuni posibile: D si C ( Ac={C,D} )Mediul se comporta astfel:t: Ac x Ac t(D,D)=s1 t(D,C)=s2 t(C,D)=s3 t(C,C)=s4saut(D,D)=s1 t(D,C)=s1 t(C,D)=s1 t(C,C)=s1u1(s1)=4, u1(s2)=4, u1(s3)=1, u1(s4)=1u2(s1)=4, u2(s2)=1, u2(s3)=4, u2(s4)=1u1(D,D)=4, u1(D,C)=4, u1(C,D)=1, u1(C,C)=1u2(D,D)=4, u2(D,C)=1, u2(C,D)=4, u2(C,C)=1Agent1 D,D D,C C,D C,C*

    Service-Oriented Computing: Semantics, Processes, Agents

  • u1(D,D)=4, u1(D,C)=4, u1(C,D)=1, u1(C,C)=1u2(D,D)=4, u2(D,C)=1, u2(C,D)=4, u2(C,C)=1Agent1 D,D D,C C,D C,CMatricea de plata (utilitate)*

    Service-Oriented Computing: Semantics, Processes, Agents

    J1

    Player

    D

    C

    J2

    D

    4, 4

    4, 1

    Player

    C

    1, 4

    1, 1

  • 2.1 Criterii in negociereComportare rationala = utilitate (payoff) mai mare preferata fata de una mai micaMaximizarea platii: plata individuala, plata de grup, sau bunastare socialaBunastare socialaSuma utilitatii agentilor pentru o anumita situatie/solutieMasoara binele generalProblema: cum compar utilitatile

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • Eficienta ParetoEficienta ParetoO solutie x, i.e., un vector de plata p(x1, , xn), este eficient Pareto (Pareto optimal) daca nu exista alta solutie x' a.i. cel putin un agent are o utilitate mai mare in x' decat in x si nici un agent nu are o utilitate mai mica in x' decat in x.Masoara bunastarea globala dar nu necesita compararea utilitatilorBunastarea sociala eficienta ParetoRationalitate individuala (IR)IR a participarii unui agent = Plata agentului in urma participarii la negociere nu este mai mica decat plata lui daca nu ar participa la negociereO negociere este IR daca este IR pentru toti agentii

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • Strategie dominantaStabilitateun protocol este stabil daca o data ce agentii au ajuns la o solutie ei nu deviaza de la aceastaStrategie dominanta = agentul are o utilitate mai mare folosind aceasta strategie indiferent de ce strategii folosesc ceilati agentit: Ac x Ac s = t(ActA, ActB) rezultatul (starea) actiunilor ActA a agentului A si ActB a agentului B.

    O strategie S1 = {s11, s12, , s1n} domina o alta strategie S2 = {s21, s22, , s2n} daca orice rezultat sS1 este preferat (este mai bun) oricarui rezultat s'S2.*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Echilibru NashEchilibru NashDoua strategii, S1 a agentului A si S2 a agentului B sunt in echilibru Nash :daca agentul A urmeaza S1 atunci agentul B nu poate obtine un castig mai mare decat acela obtinut daca urmeaza S2 sidaca agent B urmeaza S2 atunci agentul A nu poate obtine un castig mai mare decat acela obtinut daca urmeaza S1.Multime de strategii {S1, , Sk} folosite de agentii A1, ..., Ak sunt in echilibru Nash daca, penru orice agent Ai, strategia Si este cea mai buna strategie a lui Ai daca ceilalti agenti folosesc { S1, S2, , Si-1, Si+1,, Sk.}.Probleme:nici un echilibru Nashmultiple echilibre Nash*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Dilema prizonierului*Alt exemplu

    Service-Oriented Computing: Semantics, Processes, Agents

    J2

    player

    Defect

    Cooperate

    J1

    Defect

    2, 2

    5, 0

    player

    Cooperate

    0, 5

    3, 3

    J2

    player

    I

    A

    J1

    I

    2, 1

    0, 0

    player

    A

    0, 0

    1, 2

  • Strategii in jocuri repetateTurneul AxelrodStrategiiALL-D D tot timpulRANDOM C sau D cu probabilitate egalaTIT-FOR-TAT- C in primul tur- In turul t>1 ce a ales oponentul in t-1TESTER- D in primul tur- Daca oponentul a ales D atunci TIT-FOR-TAT- Altfel joaca 2 tururi C si 1 tur DJOSS- TIT-FOR-TAT dar cu 10% D*

    Service-Oriented Computing: Semantics, Processes, Agents

  • 2.2 Vot regula de alegere sociala

    Ordoneaza iesirile posibile (rezultatele posibile) pe baza preferintelor individuale ale agentilorA - set de n agenti - set de m rezultate posibileFiecare agent i A are o relatie de preferinat stricta

  • Proprietati de dorit pentru o regula de preferinta sociala:Ordonarea
  • Protocoale de votare

    Protocol pluralist protocol de votare majoritara toate alternativele sunt comparate simultan; castiga cea care are cel mai mare numar de voturiProblema alternative irelevante

    Protocol binar alternativele votate in perechi, cea care pierde este eliminata, cea care castiga intra in competitie cu restulProblema agende diferite*

    Service-Oriented Computing: Semantics, Processes, Agents

  • - 35% agenti c>d>b>a- 33% agenti a>c>d>b- 32% agenti b>a>c>d

    Agenda 1: (b,d), d, (d,a) a, (c,a) a Agenda 2: (c,a) a, (d,a) a, (a,b) b Agenda 3: (a,b) b, (b,c) c (c,d) c Agenda 4: (c,a) a (a,b) b, (b,d) d

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • Protocolul BordaMulte alternative protocolul binar este lentBorda Contoare atribuite alternativelor = | | puncte pentru cea mai mare preferinta, | |-1 puncte pt urmatoarea, etc.Contoarele se insumeaza pt fiecare alternativa si castiga cea cu punctaj maximProblema: nu acelasi castigator daca cea mai proasta alternativa este eliminata*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Protocol Borda - exemplu AgentPreferintaAgentPreferinta1 a>b>c>d1 a>b>c2 b>c>d>a2 b>c>a3 c>d>a>b3 c>a>b4 a>b>c>d4 a>b>c5 b>c>d>a5 b>c>a6 c>d>a>b6 c>a>b7 a>b>c>d7 a>b>c

    c obtine 20, b 19, a 18, d 13elimin d a 15, b 14, c 13

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • 2.3 LicitatiiProtocoale simpleCentralizateLicitatii cu valoare privataLiciatii cu valoare comunaLicitatii cu valoare corelata*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Protocoale de licitatiiEnglish (first-price open cry) auction fiecare participant anunta deschis pretul pe care il liciteaza. Cel mai mare pret castigaStrategie dominanta: putin mai mult decat ultimul pret, ma opresc cand ajung la valoarea privata in licitatii cu valoare privataIn licitatii cu valoare corelata; creste constant pretul pana decizie stopFirst-price sealed-bid auction fiecare participant anunta pretul in plic inchis. Castiga cel cu pret maximNu exista stragie dominanta; ofera cel mult pana la valoare lui privata*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Dutch (descending) auction - the auctioneer continuously lowers the price until one of the bidders takes the item at the current price.Echivalenta cu licitatia first-price sealed-bidVickrey (second-price sealed-bid) auction trimite oferta in plic inchis. Castiga cel care a facut cea mai mare oferta dar plateste al doilea pretStrategia dominanta: valoarea lui privataProbleme in licitatii*

    Service-Oriented Computing: Semantics, Processes, Agents

  • 2.4 Echilibrul pietein bunuri g, g = 1,n, in cantitati nelimitatepreturi p=[p1, , pn], unde pg R este pretul bunului g

    2 tipuri de agenti: producatori si consumatoriConsumatori:vector de consum xi=[xi1,,xin], xig R+ este cantitatea de bunuri g alocata consumatorului i.functie de utilitate ui(xi) preferinta consumatorului i asupra vectorului de consumrepartitia initiala de bunuri ei=[ei1,,ein], eig este cantitatea din g repartiazata initial consumatorului iProducatori:vector de productie yj=[yj1,,yjn], yjg este cantitatea din bunul g pe care producatorul j o produceMultime de productii posibile Yj vectori cu cantitatile posibil de produs*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Profitul producatorului j = p . yj, cu yj Yj.ij procentul din productia lui j detinuta de consmatorul iProfitul producatorilor este impartit intre consumatori in functie de aceste procentePiata evolueazaPreturile se schimbaPlanurile de productie si de consum se schimba (tentativ) pana:se ajunge la echilibru are loc productia si consumul efectiv*

    Service-Oriented Computing: Semantics, Processes, Agents

  • (p*, x*, y*) este in echilibru Walras daca:se consuma cat se produce

    fiecare consumator i isi maximimizeaza preferintele cu preturile stabilite

    fiecare producator j isi maximizeaza profitul cu preturile stabilite

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • Algoritmul "Distributed price tatonnement"Algoritm pentru facilitator:- pg=1 pentru orice g[1..n]- g un numar pozitiv pentru g [1..n]repeat- anunta p consumatorilor si producatorilor- primeste un plan de productie yj de la fiecare producator j- anunta planurile yj consumatorilor- primeste un plan de consum xi de la fiecare consumator i- for g=1 to n dopg = pg + g(i(xig - eig) - jyjg)until |i(xig-eig)- jyjg| < pt oricare g [1..n]- Anunta producatorii si consumatorii ca s-a ajuns la echilibru

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • Algoritm pentru consumatorul i:- repeat- primeste p de la facilitator- primeste un plan de productie yj pt fiecare j de la facilitator- anunta facilitatorului un plan de consum xi Rn+ care maximizeaza ui(xi) tinand cont de constrangerile de bugetp.xi p.ei + jijp.yj until facilitatorul anunta echilibrul- schimba si consuma

    Algoritm pentru producatorul j:repeat- primeste p de la facilitator- anunta facilitatorului un plan de productie yj Yj care maximizeaza p.yjuntil facilitatorul anunta echilibrul- schimba si consuma

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • 3. Alocarea taskurilor prin negociereAlocare prin redistribuirea taskurilorAlocare prin retea de contracte- Contract Net- Iterated Contract Net

    Se afla intre negociere teoretica si euristica*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Domeniu orientat task = un triplet undeT o multime de taskuri;Ag = {1, . . . ,n} multimea de agenti care participa la negociere;c:P(T) R+ - functie de cost definita pentru orice submultime de taskuri din TFunctia de cost trebuie sa satisfaca 2 restrictii:monotonacostul unui task trebuie sa fie diferit de 0O intalnire intr-un domeniu orientat task are loc atunci cand agentilor din Ag li se atribuie taskuri de executat din TAtribuire taskuri R = {E1, . . ., En}, Ei T, i Ag

    *3.1 Redistribuirea taskurilor

    Service-Oriented Computing: Semantics, Processes, Agents

  • Intrebare: intr-o intalnire, poate un agent sa obtina o utilitate mai mare prin redistribuirea taskurilor?Fie:Ag = {a1, a2, a3} T = {t1, t2, t3, t4, t5}IntalnireR = {E1, E2, E3} cu E1 = {t1, t3}, E2 = {t2}, E3 = {t4, t5} Afacere (redistribuire) = {D1, D2, D3} cu D1 = {t1, t2}, D2 = {t3, t4}, D3 = {t5}

    Costul unei afaceri costul pt a1 c(D1)costul pt a2 c(D2)costul pt a3 c(D3)Utilitatea unei afaceri = cat castiga agentul din afacereutilityi() = c(Ei) c(Di), i = 1, 2, 3

    *

    Service-Oriented Computing: Semantics, Processes, Agents

  • O afacere 1 domina o afacere 2 daca si numai daca:(1) Afacerea 1 este cel putin la fel de buna ca 2 pentru orice agent i {1,2} utilityi(1 ) utilityi( 2 )(2) 1 este mai buna decat 2 pentru cel putin un agent i {1,2} utilityi(1 ) > utilityi( 2 )

    O afacere domina slab o alta afacere daca (1) este adevarataO afacere este individual rationala (IR) daca domina afacerea conflictualaO afacere care nu este dominata de nici o alta afacere este Pareto optimalaRedistribuirea taskurilor = gasirea unei afaceri Pareto optimala*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Protocolul de concesiune monotonaNegociere in mai multe runde1. In prima runda (u=1), a1 si a2 propun afaceri din multimea de negociere: 1 si 2 2. daca a1 propune 1 si a2 propune 2 a.i:(i) utility1(2 ) utility1( 1 )sau(ii) utility2(1 ) utility2( 2 )atunci s-a realizat contractul si stop3. altfel u u+14. daca a1 propune 1 si a2 propune 2 a.i.:utility1(2u ) utility1( 2u-1 ) siutility2(1u ) utility1( 1u-1 )5. atunci executa pasul 26. altfel negocierea se termina cu conflict stopgarantat sa se termine*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Problema: alocarea taskurilor ajunge intr-un maxim local

    Agenti nesinceriAgentii pot minti despre taskurile pe care le au:taskuri fantomaascund taskuri

    Diferente fata de negocierea bazata pe teoria jocurilorUn agent poate refuza un contract IRUn agent poate accepta un contract care nu este IR*

    Service-Oriented Computing: Semantics, Processes, Agents

  • *3.2 Contract NetInitiator si licitatori/contractori

    Service-Oriented Computing: Semantics, Processes, Agents

  • FIPA - Contract net* Initiatorul solicita propuneri cfp: specifica taskul si conditii asupra lui,de la n participanti (contractori) Cei n participanti genereaza raspunsuri:- i refuza (refuse)- j=n-i propun (propose), inclusiv conditii cfp include un deadline pt raspunsuri(apoi sunt automat excluse) Initiatorul evalueaza propunerile si selecteaza l (intre 1 si j) agenti li se trimite mesaj de accept-proposal si mesaj de reject-proposal la k=j-l agenti Propunerile angajeaza participantii Un participant trebuie sa raspunda cu:- inform-done sau inform-result (daca a executat taskul) sau failure.Interactiunea este identificata printr-un unic parametru conversation-id

    Service-Oriented Computing: Semantics, Processes, Agents

  • Exemplu(cfp :sender (agent-identifier :name j) :receiver (set (agent-identifier :name i)) :content "((action (agent-identifier :name i) (sell plum 50)) (any ?x (and (= (price plum) ?x) (< ?x 10))))" :ontology fruit-market :language fipa-sl)Agentul j ii cere lui i propuneri de vanzarea 50 cutii de prune si conditii de pret

    Service-Oriented Computing: Semantics, Processes, Agents

  • Exemplu(propose :sender (agent-identifier :name j) :receiver (set (agent-identifier :name i)) :content "((action j (sell plum 50)) (= (any ?x (and (= (price plum) ?x) (< ?x 10))) 5)" :ontology fruit-market :in-reply-to proposal2 :language fipa-sl)Agentul j propune lui i sa-i vanda 50 cutii prune la pret de 5

    Service-Oriented Computing: Semantics, Processes, Agents

  • Exemplu(accept-proposal :sender (agent-identifier :name i) :receiver (set (agent-identifier :name j)) :in-reply-to bid089 :content " ((action (agent-identifier :name j)(sell plum 50)) (= (price plum) 5))) " :language fipa-sl)Agentul i accepta pe j

    Service-Oriented Computing: Semantics, Processes, Agents

  • Exemplu(reject-proposal :sender (agent-identifier :name i) :receiver (set (agent-identifier :name k)) :content "((action (agent-identifier :name k) (sell plum 50)) (= (price plum) 20) (price-too-high 20))" :in-reply-to bid080)Agentul i il refuza pe k

    Service-Oriented Computing: Semantics, Processes, Agents

  • FIPA Iterated Contract net*

    Service-Oriented Computing: Semantics, Processes, Agentsadina

  • 4. Negociere euristicaProduce o solutie buna dar nu optima (de obicei)Modele de negociere informaleNu exista un mediator centralProtocolul trebuie sa fie cunoscut de agenti (nu exista protocoale predefinite)Nu exista un curs optim de urmat prescrisAccent pe procesul de decizie al agentului*

    Service-Oriented Computing: Semantics, Processes, Agents

  • Obiectul negocierii (NO): aspectele asupra carora trebuie ajuns la un contractNO: obiect, actiune, serviciuNO03: NOName: Paint_HouseCost: Value:100, Type: integer, Modif=Yes;Deadline: Value: May_12, Type: date, Modif=No;Quality: Value: high, Type: one of (low, average, high), Modif=Yes(Request NO) cere un obiect de negociere (Accept name(NO)) accepta cererea pentru NO(Reject name(NO)) refuza cererea pentru NO(ModReq name(NO) value(NO,X,V1)) modifica cererea prin modificarea atributului X al NO la o valoare V1Necesita definirea unui limbaj si a unui protocol*

    Service-Oriented Computing: Semantics, Processes, Agents

  • *Protocol pentru primitivele definite

    Service-Oriented Computing: Semantics, Processes, Agents

    Service-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, Agents Singh & HuhnsService-Oriented Computing: Semantics, Processes, AgentsAs with the FIPA Contract Net IP, the Initiator issues m initial call for proposals with the cfp act (see [FIPA00037]). Of the n Participants that respond, k are propose messages (see [FIPA00037]) from Participants that are willing and able to do the task under the proposed conditions and the remaining j are from Participants that refuse.Of the k proposals, the Initiator may decide this is the final iteration and accept p of the bids (0 p k), and reject the others. Alternatively the Initiator may decide to iterate the process by issuing a revised cfp to l of the Participants and rejecting the remaining k-l Participants. The intent is that the Initiator seeks to get better bids from the Participants by modifying the call and requesting new (equivalently, revised) bids. The process terminates when the Initiator refuses all proposals and does not issue a new cfp, the Initiator accepts one or more of the bids or the Participants all refuse to bid.Any interaction using this interaction protocol is identified by a globally unique, non-null conversation-id parameter, assigned by the Initiator. The agents involved in the interaction must tag all of its ACL messages with this conversation identifier. This enables each agent to manage its communication strategies and activities, for example, it allows an agent to identify individual conversations and to reason across historical records of conversations. In the case of 1:N interaction protocols or sub-protocols the Initiator is free to decide if the same conversation-id parameter should be used or a new one should be issued. Additionally, the messages may specify other interaction-related information such as a timeout in the reply-by parameter that denotes the latest time by which the sending agent would like to have received the next message in the protocol flow. Singh & Huhns