You are on page 1of 6

Modelarea i analiza sistemelor multiagent Laboratorul 6

Licitaii
1. 2. 2.1. 2.2. 2.3. 2.4. 3. 4. Aspecte generale .......................................................................................................................... 1 Descrierea licitaiilor .................................................................................................................... 1 Tipuri de evaluare a bunului licitat ...................................................................................... 1 Strategii in licitaii ................................................................................................................ 1 Tipuri de licitaie .................................................................................................................. 2 Coaliii.................................................................................................................................. 3 Exemplificare printr-o aplicaie....................................................................................................3 Aplicaii .......................................................................................................................................6

1. Aspecte generale
Licitaiile au loc ntre un agent numit licitator i mai muli ageni numii cumprtori. Scopul unei licitaii este ca licitatorul s aloce un bun unuia dintre cumprtori. De obicei interesul licitatorului este s maximizeze preul, n timp ce al licitatorului este s-l minimizeze. n practic, exist mai multe tipuri de licitaii. Printre cele mai frecvent ntalnite se numr: licitaia englezeasc, licitaia olandez i tipul de licitare nchis.

2. Descrierea licitaiilor
2.1. Tipuri de evaluare a bunului licitat
- valori private: valoarea bunului depinde doar de preferinele personale ale cumprtorului; acesta se presupune c tie valoarea bunului; - valori comune: valoarea unui produs pentru un cumprtor depinde de valoarea acelui produs pentru ali cumprtori; - valori corelate: valoarea unui produs pentru un cumprtor depinde parial de preferinele sale personale i parial de valoarea acelui produs pentru alii.

2.2. Strategii in licitaii


Strategia unui cumprtor n licitaii const n modul n care va licita i n aciunile pe care le va ntreprinde cu scopul de a obine profit ct mai mare. Strategia dominant este cea care genereaz cele mai bune rezultate din punctul de vedere al profitului. Cumprtorul va obine profitul maxim folosind strategia dominant.

Modelarea si analiza sistemelor multi-agent - Laborator http://florinleon.byethost24.com/lab_masma.htm

2.3. Tipuri de licitaie


English (first-price open cry) Aceasta este un tip de licitaie frecvent ntlnit, n cadrul cruia cel care liciteaz ncepe la preul de rezerv al obiectului i oferta nainteaz progresiv pn cnd nici un participant nu emite o ofert mai mare. n aceast licitaie, fiecare ofert ine cont de celelalte oferte citate. - licitaia pornete de la un pre stabilit; - cumprtorii pot anuna deschis preul pe care l liciteaz, care trebuie s fie mai mare dect preul licitat pn n acel moment; - ctig cumprtorul care a oferit cel mai mare pre. Observaii: - Strategie dominant: cumprtorul ofer puin mai mult dect ultimul pre i se oprete cnd ajunge la valoarea real a bunului. - Winners curse (ctigtorul licitaiei obine bunul licitat la un pre exagerat) n cazul incertitudinii referitoare la valoarea real a bunului licitat - Licitatorul poate plasa cumprtori fali pentru a crete artificial preul. First-price sealed-bid La acest tip de licitaie, cumprtorii emit oferte n mod secret. Nici un ofertant nu cunoate cota unei alte oferte. Cel mai mare ofertat este premiat cu obiectul corespunztor preului ofertei sale. - o singur rund de negociere; - fiecare cumprtor anun preul n plic nchis; - ctig cel cu pre maxim. Observaii: - Strategie dominant: cumprtorul face o ofert egal cel mult cu valoarea privat a bunului. Nu exist o soluie general pentru a determina ct de mic ar trebui s fie aceast ofert. Dutch (descending) n acest caz, licitatorul pornete de la un pre ridicat i solicit un set de oferte descendente pn cnd un cumprtor accept bunul la preul curent. O ofert suficient de mic propus chiar la nceputul licitaiei asigur faptul c bunul va fi vndut n cele din urm, dar exist posibilitatea ca licitatorul s nu obin profit. - licitaia pornete de la un pre stabilit - licitatorul scade preul pn cnd unul din participani accept preul. Observaii: - Susceptibil la winners curse (situaie n care ctigtorul ajunge s plateasc mai mult dect valoreaz obiectul pe care l-a ctigat prin licitaie) - Nu exist strategie dominant.
2

Modelarea si analiza sistemelor multi-agent - Laborator http://florinleon.byethost24.com/lab_masma.htm

Vickrey (second-price sealed-bid) auction Cumprtorii fac oferte n mod secret. Ctig autorul celei mai mari oferte, care va primi bunul corespunztor la preul dat de a doua ofert. La aceast licitaie, cel mai mare ofertant obine ntotdeauna profit dac oferta acestuia este raional. - o singur rund de negociere; - ofertele sunt secrete fa de ceilali cumprtori - ctig cel care a fcut cea mai mare ofert, dar pltete al doilea pre. Observaii: - Strategia dominant: se liciteaz valoarea real a bunului. - Avantajul acestui tip de licitaie este faptul c ncurajeaz cumprtorii s fie sinceri - Ctigtorul licitaiei nu poate ti ct a licitat cel care a pierdut (locul al doilea), deci nu tie dac preul pltit (al doilea pre) este corect. O soluie ar fi folosirea de semnturi digitale sau a unei tere pri de ncredere. - Se poate dezvolta un comportament antisocial: dac un cumprtor tie c va pierde, poate crete intenionat preul pentru a-i face pe alii s plteasc mai mult.

2.4. Coaliii (collusion)


Ori de cte ori la o licitaie ofertanii cunosc identitatea celorlaltor participani, exist riscul ca acetia s se asocieze n scopul manipulrii rezultatului licitaiei, o practic cunoscut sub numele de collusion (ntelegere secret, coaliie). - Nici un tip de licitaie nu este imun la coaliii - Se pot forma coaliii care s menin preul sczut - Ctigtorul obiectului (care trebuie s fac parte din coaliie) mparte profitul cu ceilali. O alt practic ilegal prin care se poate a crete pretul unui bun licitat este urmtoarea: proprietarul bunului particip la licitaie, crescnd astfel concurena, licitnd fictiv i ieind din licitaie chiar nainte de valoarea licitat final. n cazul licitaiilor cu plic nchis (oferte secrete), dac un cumprtor reuete s afle ofertele celorlaltor participani la licitaie, el poate s: - liciteze direct un pre care l va face s ctige; - se retrag, tiind de la nceput c nu poate ctiga.

3. Exemplificare printr-o aplicaie


Aplicaia AgentAuction implementeaz o variant simplificat de licitaie English. Se presupune c exist un singur bun licitat, nespecificat. Licitaia este gestionat de un managerAgent. Acesta nregistreaz serviciul AuctionService corespunztor licitaiei, apoi ateapt solicitri de nregistrare i oferte de pre de la agenii cumprtori, n cadrul comportamentului de tip ciclic ManagerReceive. n sistem apar trei ageni cumprtori, care se solicit managerAgent-ului nregistrarea la licitaie, prin comportamentul BuyerRegister de tip oneshot:
3

Modelarea si analiza sistemelor multi-agent - Laborator http://florinleon.byethost24.com/lab_masma.htm

public override void action() { //inform managerAgent that I want to register for the auction ACLMessage m = new ACLMessage(ACLMessage.INFORM); AID receiverAID = new AID("managerAgent", AID.ISLOCALNAME); m.addReceiver(receiverAID); m.setContent("registering"); myAgent.send(m); myAgent.windowsForm.AddTextLine("Registering for auction ..."); }

managerAgent-ul adaug ntr-o structur de date proprie AID-urile agenilor cumprtori care solicit nregistrarea, i le confirm faptul c au fost nregistrai cu succes (n comportamentul ManagerReceive):
if(received.Contains("registering")) { //sender wants to register for auction myAgent.participantList.Add(sender); //reply to sender that registration was successful ACLMessage reply = new ACLMessage(ACLMessage.INFORM); reply.setContent("registered"); reply.addReceiver(sender); myAgent.send(reply); myAgent.windowsForm.AddTextLine("New participant: " + sender.getLocalName()); }

Licitaia se desfoar pe runde. Acestea sunt iniiate i ncheiate periodic de ctre managerAgent n comportamentul ManagerSend de tip TickerBehavior. O rund const n primirea i evaluarea ofertelor de pre de la agenii cumprtori. La nceput, managerAgent-ul trimite cumprtorilor un pre iniial al produsului, pentru ca apoi, n fiecare rund, s le trimit cel mai mare pre primit pn n acel moment:
public override void onTick() { int nParticipants = myAgent.participantList.Count; if (nParticipants > 1) // still more than 1 agent making offers { /* New auction round: * send calls to the participants inform them on current auction price ask them to send new offers */ ACLMessage toSend = new ACLMessage(ACLMessage.INFORM); toSend.setContent("current_price" + myAgent.currentPrice); foreach (AID a in myAgent.participantList) toSend.addReceiver(a); myAgent.send(toSend);

Modelarea si analiza sistemelor multi-agent - Laborator http://florinleon.byethost24.com/lab_masma.htm

myAgent.windowsForm.AddTextLine(Environment.NewLine + "New Round: current price is " + myAgent.currentPrice); } else if (nParticipants == 1) //only one agent left, the winner { AID winner = myAgent.currentWinner; myAgent.windowsForm.AddTextLine(Environment.NewLine + "Auction over. Winner is " + winner.getLocalName() + " with price: " + myAgent.currentPrice); this.stop(); } else // no participants left { myAgent.windowsForm.AddTextLine(Environment.NewLine + "Auction over. All participants retreated."); this.stop(); } }

La primirea informaiilor legate de preul maxim din licitaie (n cadrul comportamentului BuyerReceive), agenii cumprtori decid, cu o anumit probabilitate, dac fac o ofert de pre mai mare, sau dac se retrag din licitaie. Ei trimit managerAgent-ului rspunul corespunztor:
if(received.Contains("current_price")) { // received new call from managerAgent //the highest current price is: int currentPrice = Convert.ToInt32(received.Remove(0, 13)); myAgent.windowsForm.AddTextLine("Received current price: " + currentPrice); // probability to make offer decreases with each price increase myAgent.probabilityToBid *= myAgent.probabilityDecreaseFactor; ACLMessage toSend = new ACLMessage(ACLMessage.INFORM); toSend.addReceiver(m.getSender()); //use agent name to generate unique seed for random numbers int seed = 1234 * Convert.ToInt32(myAgent.getLocalName().Remove(0, 5)); //decide if to send new offer or retreat if (myAgent.probabilityToBid > new Random(seed).NextDouble()) { //make an offer which is higher than the current price seed = 4321 * Convert.ToInt32(myAgent.getLocalName().Remove(0, 5)); int newPrice = currentPrice + new Random(seed).Next(1, myAgent.maxOfferIncrease); toSend.setContent("offer" + newPrice); myAgent.windowsForm.AddTextLine("Sent new offer: " + newPrice); } else { //price is too high, retreat from auction toSend.setContent("retreat"); myAgent.windowsForm.AddTextLine("Retreated from auction."); } myAgent.send(toSend); }

Licitaia se ncheie cnd fie rmne un singur cumprtor (care va fi si ctigtorul), fie se retrag toi cumprtorii (comportamentul ManagerSend).

Modelarea si analiza sistemelor multi-agent - Laborator http://florinleon.byethost24.com/lab_masma.htm

4. Aplicaie
4.1. S se implementeze protocolul de licitaie Vickrey prezentat mai sus. Caracteristici: Licitatorul va avea o list de produse; Cumprtorii vor avea un pre (valoare privat) care va varia +/- 10% de la un agent la altul pentru fiecare produs; Cumprtorii se vor nregistra ca participani la licitaie; Licitatorul va comunica startul, informnd asupra obiectului scos la licitaie: produs, caracteristici, perioada de ateptare a ofertelor; Cumprtorii vor trimite cte o ofert de pre; Dup ce perioada de ateptare a ofertelor a expirat, licitatorul va analiza ofertele primite i va trimite: o mesaje celor care vor pierde licitaia, ce vor conine informaii despre preul dat de ctigtorul licitaiei i preul care l va plti acesta pentru produs; o un mesaj ctigtorului licitaiei, ce va conine informaii despre preul oferit de acesta i preul ce va trebui pltit (al doilea pre).

Modelarea si analiza sistemelor multi-agent - Laborator http://florinleon.byethost24.com/lab_masma.htm

You might also like