design and implementation of a multiagent system for auctioning and ...

3 downloads 0 Views 318KB Size Report
implementation using the JADE framework, which complies with the FIPA specifications for the interoperability of heterogeneous agents, the system can be.
BULETINUL INSTITUTULUI POLITEHNIC DIN IAŞI Publicat de Universitatea Tehnică „Gheorghe Asachi” din Iaşi Tomul LVII (LXI), Fasc. 1, 2011 SecŃia AUTOMATICĂ şi CALCULATOARE

DESIGN AND IMPLEMENTATION OF A MULTIAGENT SYSTEM FOR AUCTIONING AND VOTING BY

ALIN-IONUł PANDICHI and FLORIN LEON∗ “Gheorghe Asachi” Technical University of Iaşi, Faculty of Automatic Control and Computer Engineering

Received: January 5, 2011 Accepted for publication: March 11, 2011

Abstract. Auctioning and voting are important capabilities for agents acting in open environments. This paper presents the design and implementation of a multiagent system capable of executing some of the most important auctioning and voting protocols. The experiments prove the possibility of using such a system on a large scale, with the benefits of reduced costs and flexibility to participate in auctions or elections organized in different settings. Due to its implementation using the JADE framework, which complies with the FIPA specifications for the interoperability of heterogeneous agents, the system can be easily integrated with other multiagent software. Key words: multiagent systems, auctions, voting, JADE framework. 2000 Mathematics Subject Classification: 68T99, 68N19.

1. Introduction An agent can be considered an autonomous entity capable of interacting with its environment of execution and with other similar agents. It can also reach predetermined goals and solve specific problems. A system comprised of many ∗

Corresponding author; e-mail: [email protected]

88

Alin-IonuŃ Pandichi and Florin Leon

agents is called a multi-agent system. The purpose of a multi-agent system is to interconnect agents that were developed separately, allowing the system to achieve functionality beyond the one of a single agent. In order to obtain this, the system must have a solution to at least some of the usual problems, such as information discovery, communication, ontology, integrating with existing software, reasoning capability, coordination and monitoring (Wooldridge, 2002). A multiagent system is said to be “open” when there is no guarantee of benevolent behavior and there is no access to an agent’s internal state. Electronic markets, virtual organizations, and digital right management applications are examples of such systems (Artikis & Sergot, 2010). The processes of bidding and voting in the context of the World Wide Web have offered an opportunity to the multi-agent systems to be used on large scale. The agents are fit for such tasks because they can be self-interested, trying to maximize their owner’s goals, and they can also reason within certain limits, acting optimally in an ideal scenario. An auction is a process of buying and selling goods or services by offering them up for bid, taking bids, and then selling the item to the highest bidder (http://en.wikipedia.org/wiki/Auction). The purpose of voting in a multiagent setting is to combine the decisions of the agents in order to select a strategy that will be followed by all the agents (Partalas et al., 2007). A concise way of comparing auctions and voting is the following: the goal of auctions is to maximize profit for the buyer and seller involved or affected, while the goal of voting is to maximize social good for everyone involved or affected (Stone, 2001). 2. Description of Auction Protocols The multiagent system presented in this work includes the following auction protocols: English auction, Dutch auction, first-price sealed-bid auction, and second-price sealed-bid auction. In the following, we shortly describe the characteristics of each protocol (Vidal, 2007; Weiss, 2000; Wooldridge, 2002). English auction is also known as open-bid ascending price auction, or first-price open-cry. It is the most popular and well known form of auctioning. With this protocol, the price of the auctioned good is gradually raised. When no participant to the auction wishes to offer a higher price than the current one, the good is sold to the highest bidder up to that point. He will receive the good in exchange for the price he used for bidding. Dutch auction is also known as open-bid ascending price. The auctioning process in this case develops in an opposite manner than the English auction: the auctioned good starts at a high price which is gradually lowered. When the price reaches a convenient threshold for one of the participants to the auction, he will call out and receive the good in exchange for the current price.

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

89

In the first-price sealed-bid auction, each bidder will submit a secret price offer, using a sealed envelope for example. In this way, no bidder will be able to know what offers are made by the others. The one that made the highest price offer will win the auction and pay that price in exchange for the good. The second-price sealed-bid auction, also known as the Vickrey auction, named after it’s creator, William Vickrey. His goal was to devise an auction protocol in which the dominant strategy for bidders is to reveal their true values (Vickrey, 1961). The auction process is very similar with the firstprice sealed-bid auction, except that the price being paid by the winner is not his own price, but the second highest price (McAfee & McMillan, 1987). 3. Description of Voting Protocols The following voting protocols were included in the multiagent system: first-past-the-post voting, block voting, two-round voting, alternative voting, and d’Hondt method (http://en.wikipedia.org/wiki/Voting_system). In first-past-the-post voting, the name is an analogy to racing events where whoever reaches the finish line first is the winner. Each voter is allowed to cast his vote once to a single candidate. The candidate that obtains the most votes is declared the winner of the election, regardless of whether he obtained the majority or not. Therefore, in order for a candidate to win, he must have support from voters in higher numbers than any other candidate. Block voting allows declaring more than one winner. Each voter is allowed to cast a number of votes equal to the number of the available seats. After counting the votes, the seats are offered in order to those candidates who obtained the most votes. Two-round voting requires two rounds in order to designate a single winner. It is also known as runoff voting. During the first round, the voter is allowed to cast only one vote to the candidate that is on top of his preferential list. After counting the votes, the winner is designated only if he obtained an absolute majority, calculated with the formula (n + 1)/2, where n is the number of voters including those who did not participate in voting and those whose vote was invalidated. If none of the candidates obtained an absolute majority, a second round of voting is held where the number of candidates is reduced to the two who obtained the most votes. The voters will be allowed to cast again a single vote. The method of deciding the winner of this round can vary: in some cases the rule of the absolute majority is applied, in other cases the rule of plurality is applied. Alternative voting is normally used to designate a single winner. It is also known as instant-runoff voting, because it simulates the rounds of a runoff voting system without the need to actually organize multiple rounds of voting. In order to win, a candidate must obtain at least a majority quota calculated with the formula quota = (n + 1)/2, where n is the number of all the votes that were

90

Alin-IonuŃ Pandichi and Florin Leon

cast. A voter has to describe his preferential list by marking with 1 the candidate at the top of his list, and with increasing numbers the rest of his preferred candidates. The winner is decided by applying an algorithm of counting and redistributing the votes. In d’Hondt method voting, the number of votes obtained by each party is divided by a series of divisors, usually 1, 2, 3, 4 and so on. The results of this division are sorted in a descending order. One seat is allocated to each party that obtained the highest divided results, until all the seats have been assigned (Bellifemine et al., 2007b). Let us consider the following example (http://en.wikipedia.org/wiki/ D%27Hondt_method). There are 8 seats to be allocated to 4 parties. Each party's total votes are divided by 1, then by 2, 3, up to 8. Each party’s divided total number of votes are the numbers below, called “distribution figures” The 8 highest distribution figures are starred, ranging from *100000 to *25000. For each distribution figure belonging to it, the party receives a seat. Party A: *100000 *50000 *33333 *25000 20000 16666 14286 12500 → **** = 4 seats won Party B: *80000 *40000 *26666 20000 16000 13333 11428 10000 → *** = 3 seats won Party C: *30000 15000 10000 7500 6000 5000 4286 3750 → * = 1 seat won Party D: 20000 10000 6666 5000 4000 3333 2857 2500 → No * = no seats won

D'Hondt method does not produce absolute proportionality. In relation to their total number of votes, the larger parties are slightly favored. However, as the number of seats awarded increases, the number of seats awarded to each party is roughly proportional to their number of votes. 4. Design and Implemention of the Auction and Voting Protocols Using Jade In order to achieve the purpose of this project of building the basis of a distributed multi-agent system that implements the auction and voting protocols described in the previous section, we used the Java Agent DEvelopment Framework, also known as JADE. Given the fact that the system needs to interact with its users, a graphical user interface was required, by combining the one-thread-per-agent concurrency model of JADE with the Swing concurrency model. Because a graphical user interface is a common thing, JADE already supplies a class tailored for such a task: jade.gui.GuiAgent (Bellifemine et al., 2007a; Bellifemine et al., 2007b). The multiagent system containing the protocols described above can be used so that the users can organize auctioning of goods (referred to as “items”), can organize elections where one or more winners can be declared from a range of candidates, and can participate in actions or elections that were already created.

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

91

The structure of the application comprises several packages. The package auctions contains a single class named Item, which represents the auctioned goods. The properties of an object of this type are: the name and the price. The subpackages auctions.english, auctions.dutch, auctions.fpsb and auctions.spsb contain the implementations of the following auction protocols: English, Dutch, first-price sealed-bid, and second-price sealed-bid, respectively. Each of these subpackages contains two jade.gui.GuiAgent classes: Master, which is responsible with initiating an auction, and Bidder which represents a participant in an auction process. The package voting contains a single class named Stats, which represents the results that an election candidate has obtained. The most important properties are: option of type java.lang.String representing the name of the candidate, and noVotes of integer type representing the number of votes obtained by the candidate up to a moment. The subpackages voting.smp, voting.mmp, voting.trv, voting.av and voting.ham contain the implementations of the following voting protocols: first-past-the-post, block, two-round, alternative, and d’Hondt method, respectively. Each of these subpackages contains two jade.gui.GuiAgent classes: Master, which is responsible with initiating an election, and Voter which represents a participant in an election process.

Fig. 1 − MasterFrame, acting as a factory, creates Master agents for auctioning and voting.

92

Alin-IonuŃ Pandichi and Florin Leon

Fig. 2 − SecondaryFrame, acting as a factory, creates Bidder and Voter agents.

The GUI package contains the classes that are used to create the graphical user interface of the application. The most important classes in this package are MasterFrame and SecondaryFrame. Each of these two classes act as agent factories (Figs. 1 and 2), given the fact that MasterFrame is capable of creating and launching different Master agents for each type of auction and voting protocol, while SecondaryFrame is able to create and launch different Bidder and Voter agents for each type of auction and voting protocol. 5. Case Studies In what follows, we describe several case studies of the implemented protocols. 5.1. English Auction

Let us consider an English auction where the auctioneer X will auction the item A, starting from a price of 5 units. To organize such an auction, he needs to launch an auctions.english.Master agent, to add the item in its list of

93

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

items and start the auction when there are enough bidders that are interested in buying the item. Supposing there are two such bidders, Y and Z. Bidder Y has 10 units available for spending and he is willing to raise the offer in steps of 2 units. Bidder Z has 15 units available for spending and he is willing to raise in steps of 1 unit. Both bidders need to launch an auctions.english.Bidder agent, and configure it according to their preferences. The output of each agent after running the auction is described in Table 1. As we can see, the item was won by agent Z, because he had more money available for spending than its competitor. Agent Y lost the auction even if his price step was larger. It stopped making offers at the moment the price exceeded his available amount. We can observe that the most important thing in an English auction is the amount of cash available to the agent. Table 1 Agents’ Output in an English Auction Agent Master X Propose price A/5 Received offer A/6 Propose price A/6 Received offer A/7 Propose price A/7 Received offer A/8 Propose price A/8 Received offer A/10 Propose price A/10 Received offer A/11 Propose price A/11 Item name = A won by agent English.Bidder.Z Sending win message A/11

Agent Bidder Y Received proposal A/5 Sending offer A/7 Received proposal A/6 Received proposal A/8 Sending offer A/10 Received proposal A/11

Agent Bidder Z Received proposal A/5 Sending offer A/6 Received proposal A/7 Sending offer A/8 Received proposal A/10 Sending offer A/11 Received win message A/11 I won item name = A at price 11

There can be cases when the auctioneer will not be able to obtain any offer for his item. Consider the item B priced at 12 units. The bidders are the same, except agent Z has only 4 units left, after he spent 11 out of 15 units to win item A in the previous auction. The output of this second auction is described in Table 2. Table 2 Agents’ Output when no Offer is Made in an English Auction Agent Master X Propose price B/12

Agent Bidder Y Received proposal B/12

Agent Bidder Z Received proposal B/12

As we can see, the starting price is too high for both bidders. None of them makes an offer, so item B is not sold. After 3 sec, the user of agent X will be notified by a dialog window that no offer has been received for that item.

94

Alin-IonuŃ Pandichi and Florin Leon

5.2. Dutch Auction

Let us consider a Dutch auction where the same auctioneer X needs to sell the same item A starting from a price of 20 units. The bidder agents are the same, Y and Z, and their amounts of cash available are 10 and 15, respectively. The auctioneer will launch an auctions.dutch.Master agent, while each bidder will launch an auctions.dutch.Bidder agent. All agents need to be configured accordingly. The agents’ output after running the auction is presented in Table 3. At each passing second, the Master agent lowers the price by a default step of 5 units. When one of the bidder agents considers that it can pay the asked price, it makes an offer and wins the item instantly. Here, the auction was won by agent Z because the asked price was lowered until it became a reasonable price for him, but not for Y. Table 3 Agents’ Output in a Dutch Auction Agent Master X

Agent Bidder Y

Anybody buying for 20? Anybody buying for 15? Item A sold for 15 to Dutch.Bidder.Z

Agent Bidder Z I, Dutch.Bidder.Z, will buy the item for 15 I, Dutch.Bidder.Z, won item name = A at price 15

The only possible scenario when the auctioneer will not receive any offers for the item is when every participant agent has the amount of cash equal to 0. 5.3. First-Price Sealed-Bid Auction

Let us consider a first-price sealed-bid auction where auctioneer X needs to sell item A starting from a price of 5 units. The bidder agents are Y and Z, and their available amounts are 20 and 35, respectively. The auctioneer needs to launch an auctions.fpsb.Master agent, and the bidders each need to launch an auctions.fpsb.Bidder agent. The agents’ output after running the auction is described in Table 4. Table 4 Agents’ Output in a First-Price Sealed-Bid Auction Agent Master X

Agent Bidder Y

Agent Bidder Z

Item name = A was won by agent Fpsb.Bidder.Z

I, Fpsb.Bidder.Y, will bid 10

I, Fpsb.Bidder.Z, will bid 17 I, Fpsb.Bidder.Z, won item name = A at price 17

Agent Z wins the auction by offering 17 units and paying this price. If auctioneer X sets a starting price too high, e.g. 30 units, he doesn’t receive convenient offers, so he does not sell the item.

95

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

In this case, the agents’ output is displayed in Table 5. Table 5 Agents’ Output when the Starting Price is Too High in a First-Price Sealed-Bid Auction Agent Master X

Agent Bidder Y

Nobody won item A

Agent Bidder Z I, Fpsb.Bidder.Z, will bid 26

As we can see, agent Y did not even make an offer because the starting price was already exceeding its available amount of cash. 5.4. Second-Price Sealed-Bid Auction

Let us consider a second-price sealed-bid auction where auctioneer X needs to sell item A starting from a price of 5 units. Bidder agents are W, Y and Z, and their available amounts are 15, 20 and 35, respectively. The auctioneer needs to launch an auctions.spsb.Master agent, and the bidders each need to launch an auctions.spsb.Bidder agent. The agents’ output after running the auction is described in Table 6. Table 6 Agents’ Output in a Second-Price Sealed-Bid Auction Agent Master X

Agent Bidder W

Agent Bidder Y

Agent Bidder Z

Item name = A was won by agent Spsb.Bidder.Z

I, Spsb.Bidder.W, will bid 15

I, Spsb.Bidder.Y, will bid 20

I, Spsb.Bidder.Z, will bid 35 I, Spsb.Bidder.Z, won item name = A at price 20

Each agent made an offer with the exact amount of their available amount of cash. Agent Z won the auction offering 35 units, but paying the price offered by agent Y, the second price in a descending order, namely 20 units. This happens because of the rules of this auction protocol. Just like in the first-price sealed-bid auction, if auctioneer X sets a starting price that is too high, e.g. 40 units, he will not receive any convenient offers, thus not being able to sell the item. 5.5. First-Past-The-Post Election

In this section, we will consider a first-past-the-post election, where four candidates, named a, b, c, and d, compete for winning one available seat. Also, we will consider two different groups of voters whose preferential lists are presented in Table 7. Group 1 is comprised of agents Q, P, H, and G, while group 2 is comprised of agents T, R, and U. The results of this kind of election are illustrated by a screenshot of the MasterFrame, in Fig. 3.

96

Alin-IonuŃ Pandichi and Florin Leon

Obviously, the declared winner is candidate d who was on the top of the preferential list for most of the voters. 5.6. Block Election

Let us consider a block election where the same four candidates a, b, c, and d compete to win 1 seat out of 2 seats available. Also, consider the same two groups of voters participating in the election. They have the same preferential lists. We will add a third group of voters having a preferential list as described in Table 8. Group number 3 is comprised of agents M and K. The results of the election held under these conditions are illustrated in Fig. 4. Table 7 The Preferential Lists of the Two Groups of Voters Group 1 (4 members) d b a c

Group 2 (3 members) a b d c

Fig. 3 − The results of a first-past-the-post election. Table 8 The Preferential List of the Third Group of Voters Group 3 (2 members) c a b d

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

97

Fig. 4 − The results of a block election.

As we can see, the winners are candidate b with 7 votes and candidate a with 5 votes. The total number of votes (18) is larger than the number of voters, (9) because each voter has 2 votes that he can cast to his preferred candidates, equal to the number of available seats. Because these 2 votes are equivalent in this voting protocol, it was possible for candidate b to win the first seat, even if he was in the second position in the preferential list of groups 1 and 2. 5.7. Two-Round Election

Let us further consider a two-round election where the same four candidates a, b, c, and d compete to win one available seat. The same three groups of voters participate in the election, with the same preferential lists. The results of the election held using this voting protocol are displayed in Fig. 5.

Fig. 5 − The results of the first round of a two-round election.

98

Alin-IonuŃ Pandichi and Florin Leon

Fig. 6 − The results of the second round of a two-round election.

As one can see, the results reflect the preferential lists of the three groups of voters, taking into account only the first option of each voter. Candidate d has the most votes (4), but these do not represent an absolute majority, which is at least 5. Therefore, a second round must be held, where candidate d continues to compete. The other candidate for the second round is candidate a, with 3 votes. The results of the second round are illustrated in Fig. 6. The winner of the second round is candidate a. According to the preferential lists, he was preferred to candidate d by the members of groups 2 and 3, totaling the 5 votes required to win the election. 5.8. Alternative Election

Let us consider an alternative election where the same four candidates a, b, c, and d compete for one seat. The same three groups of voters participate in the election, with the same preferential lists. The output of the agent voting.av.Master that organizes such an election is the following: 9 agents voted. Option a has 3 votes Option b has 0 votes Option c has 2 votes Option d has 4 votes Majority not reached yet. Removing option b; redistributing its votes… Option a has 3 votes Option c has 2 votes Option d has 4 votes Majority not reached yet. Removing option c; redistributing its votes… Option a has 5 votes Option d has 4 votes Option a is declared winner, with 5 votes

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

99

One can clearly see that the result is identical to the one of the tworound election. The reason for this is the fact that the alternative election is simulating the runoff protocol, without needing to actually organize a second round of voting. The only difference is that, in this case, the rank of each candidate is computed, instead of the number of his votes. A lower rank indicates that the candidate is highly preferred by the voters. The ranks of candidates a, b and d are very close, with values of 10, 11 and 12 respectively. This indicates a tied competition between the three candidates. By comparison, the rank of candidate c is 21, much higher than the ranks of the others. This indicates that this candidate is unpopular with the voters. 5.9. D’Hondt Method Election

Finally, we will consider an election where the d’Hondt method is applied. The same four candidates a, b, c, and d compete to win 1 seat out of 2 available. In this case, we will refer to them as “parties”. We will consider the same three groups of voters, with the same preferential lists. The output of the agent voting.ham.Master that organizes such an election is the following: Party a has 3 votes. Party b has 0 votes. Party c has 2 votes. Party d has 4 votes. Distribution for party a: 3.0 1.5 Distribution for party b: 0.0 0.0 Distribution for party a: 2.0 1.0 Distribution for party a: 4.0 2.0 One seat one by party d with distribution 4.0 One seat one by party a with distribution 3.0 Seats won by each party: Party a = 1 seats Party b = 0 seats Party c = 0 seats Party d = 1 seats

After running the election, candidates d and a win 1 seat each, because they have the highest results (4.0 and 3.0, respectively) after the number of votes have been divided by 1 and 2. We can observe that the results are different from the ones obtained at the block election. The reason for this is the fact that the d’Hondt protocol takes into account only the first option from the preferential list, and it ignores the rest. Therefore, candidate b is disadvantaged, even if he is the second option preferred by 7 out of 9 voters.

100

Alin-IonuŃ Pandichi and Florin Leon

6. Conclusions This paper describes the design and implementation of a multi-agent system that can execute several auctioning and voting protocols. The experiments prove the possibility of using such a system on a large scale, with the benefits of reduced costs and flexibility to participate in an auction or an election organized in different settings. The results obtained after running several auctions using this system easily point out the differences between various types of auctions. Choosing a specific type of auction can influence the price the seller will obtain for its auctioned goods. The results of some of the voting protocols were identical (such as the alternative and two-round protocols), while the results of other protocols under the same circumstances were entirely different (such as the block voting compared to the d’Hondt method). The user can decide which is the optimal protocol for the election he wishes to organize. The use of the distributed multi-agent platform JADE proved to be a good choice for developing such a system. Because the platform is compliant with FIPA specifications for the interoperability of heterogeneous agent-based systems (http://www.fipa.org/repository/standardspecs.html), many of the usual problems in developing such a system already have an integrated solution. Thus, the information discovery problem was solved by using the dedicated agent named Directory Facilitator. The communication was done using the Message Transport System (MTS) and the Agent Communication Language (ACL). Reasoning and coordination were achieved by using the auctioning and voting protocols. JADE standard compliance also enables a straightforward integration of this system with other multiagent software. Acknowledgements. This work was supported by CNCSIS-UEFISCSU, project number PNII-IDEI 316/2008, Behavioural Patterns Library for Intelligent Agents Used in Engineering and Management.

REFERENCES * * * * * *

ACE project, The Electoral Knowledge Network, http://aceproject.org, 2011. FIPA, Foundation for Intelligent Physical Agents, Standard FIPA Specifications. http://www.fipa.org/repository/standardspecs.html, 2002. * * * Wikipedia, Auction. The Free Encyclopedia, http://en.wikipedia.org/wiki/Auction, 2011. * * * Wikipedia, D’Hondt Method. The Free Encyclopedia, http://en.wikipedia.org/wiki/ D%27Hondt_method, 2011. * * * Wikipedia, Voting System. The Free Encyclopedia, http://en.wikipedia.org/wiki/ Voting_system, 2011.

Bul. Inst. Polit. Iaşi, t. LVII (LXI), f. 1, 2011

101

Artikis A., Sergot M., Executable Specication of Open Multi-Agent Systems, Logic Journal of the IGPL / Bulletin of the IGPL, Vol. 18, 1, 31−65, 2010. Bellifemine F., Caire G., Greenwood D., Developing Multi-Agent Systems with JADE. Wiley Series in Agent Technology, Wiley, 2007a. Bellifemine F., Caire G., Trucco T., Rimassa G., Jade Programmer’s Guide. Telecom Italia S.p.A., 2007b. McAfee R.P., McMillan J., Auctions and Bidding. Journal of Economic Literature, Vol. 25, 2, 1987. Partalas I., Feneris I., Vlahavas I., Multi-Agent Reinforcement Learning Using Strategies and Voting. IEEE International Conference on Tools with Artificial Intelligence, 2007. Stone P., Autonomous Multiagent Systems. Course Week 10, http://cs.nyu.edu/courses/ fall01/G22.3033-012, 2001. Vickrey W., Counterspeculation, Auctions, and Competitive Sealed Tenders. Journal of Finance, 16, 8−37, 1961. Vidal J.M., Fundamentals of Multiagent Systems. http://jmvidal.cse.sc.edu/papers/ mas.pdf, 2007. Weiss G. (Ed.), Multiagent Systems – A Modern Approach to Distributed Artificial Intelligence. The MIT Press, Cambridge, Massachusetts, 2000. Wooldridge M. J., An Introduction to MultiAgent Systems. John Wiley & Sons, 1st edition, 2002.

PROIECTAREA ŞI IMPLEMENTAREA UNUI SISTEM MULTI-AGENT PENTRU LICITARE ŞI VOTARE (Rezumat) Licitarea şi votarea sunt capacităŃi importante pentru agenŃii care operează în medii deschise. Această lucrare prezintă proiectarea şi implementarea unui sistem multiagent capabil de a executa câteva dintre cele mai importante protocoale de licitare şi votare. Experimentele realizate indică posibilitatea de a utiliza un astfel de sistem la o scară largă, prezentând beneficiile unor costuri reduse şi a flexibilităŃii de a participa la licitaŃii sau alegeri organizate în diferite moduri. Datorită implementării pe baza platformei JADE, care se conformează specificaŃiilor FIPA pentru asigurarea interoperabilităŃii agenŃilor eterogeni, sistemul poate fi uşor integrat cu alte produse software multi-agent.