source: javadoc/genius/core/protocol/AlternatingMultipleOffersProtocol.html@ 1

Last change on this file since 1 was 1, checked in by Wouter Pasman, 7 years ago

Initial import : Genius 9.0.0

File size: 39.3 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2<!-- NewPage -->
3<html lang="en">
4<head>
5<!-- Generated by javadoc (1.8.0_112) on Thu Jun 21 12:05:57 CEST 2018 -->
6<title>AlternatingMultipleOffersProtocol (Genius Core Documentation)</title>
7<meta name="date" content="2018-06-21">
8<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
9<script type="text/javascript" src="../../../script.js"></script>
10</head>
11<body>
12<script type="text/javascript"><!--
13 try {
14 if (location.href.indexOf('is-external=true') == -1) {
15 parent.document.title="AlternatingMultipleOffersProtocol (Genius Core Documentation)";
16 }
17 }
18 catch(err) {
19 }
20//-->
21var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10};
22var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
23var altColor = "altColor";
24var rowColor = "rowColor";
25var tableTab = "tableTab";
26var activeTableTab = "activeTableTab";
27</script>
28<noscript>
29<div>JavaScript is disabled on your browser.</div>
30</noscript>
31<!-- ========= START OF TOP NAVBAR ======= -->
32<div class="topNav"><a name="navbar.top">
33<!-- -->
34</a>
35<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
36<a name="navbar.top.firstrow">
37<!-- -->
38</a>
39<ul class="navList" title="Navigation">
40<li><a href="../../../overview-summary.html">Overview</a></li>
41<li><a href="package-summary.html">Package</a></li>
42<li class="navBarCell1Rev">Class</li>
43<li><a href="class-use/AlternatingMultipleOffersProtocol.html">Use</a></li>
44<li><a href="package-tree.html">Tree</a></li>
45<li><a href="../../../deprecated-list.html">Deprecated</a></li>
46<li><a href="../../../index-all.html">Index</a></li>
47<li><a href="../../../help-doc.html">Help</a></li>
48</ul>
49</div>
50<div class="subNav">
51<ul class="navList">
52<li><a href="../../../genius/core/protocol/AlternatingMajorityConsensusProtocol.html" title="class in genius.core.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
53<li><a href="../../../genius/core/protocol/BilateralAtomicNegotiationSession.html" title="class in genius.core.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
54</ul>
55<ul class="navList">
56<li><a href="../../../index.html?genius/core/protocol/AlternatingMultipleOffersProtocol.html" target="_top">Frames</a></li>
57<li><a href="AlternatingMultipleOffersProtocol.html" target="_top">No&nbsp;Frames</a></li>
58</ul>
59<ul class="navList" id="allclasses_navbar_top">
60<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
61</ul>
62<div>
63<script type="text/javascript"><!--
64 allClassesLink = document.getElementById("allclasses_navbar_top");
65 if(window==top) {
66 allClassesLink.style.display = "block";
67 }
68 else {
69 allClassesLink.style.display = "none";
70 }
71 //-->
72</script>
73</div>
74<div>
75<ul class="subNavList">
76<li>Summary:&nbsp;</li>
77<li>Nested&nbsp;|&nbsp;</li>
78<li><a href="#fields.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">Field</a>&nbsp;|&nbsp;</li>
79<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
80<li><a href="#method.summary">Method</a></li>
81</ul>
82<ul class="subNavList">
83<li>Detail:&nbsp;</li>
84<li>Field&nbsp;|&nbsp;</li>
85<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
86<li><a href="#method.detail">Method</a></li>
87</ul>
88</div>
89<a name="skip.navbar.top">
90<!-- -->
91</a></div>
92<!-- ========= END OF TOP NAVBAR ========= -->
93<!-- ======== START OF CLASS DATA ======== -->
94<div class="header">
95<div class="subTitle">genius.core.protocol</div>
96<h2 title="Class AlternatingMultipleOffersProtocol" class="title">Class AlternatingMultipleOffersProtocol</h2>
97</div>
98<div class="contentContainer">
99<ul class="inheritance">
100<li>java.lang.Object</li>
101<li>
102<ul class="inheritance">
103<li><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">genius.core.protocol.DefaultMultilateralProtocol</a></li>
104<li>
105<ul class="inheritance">
106<li>genius.core.protocol.AlternatingMultipleOffersProtocol</li>
107</ul>
108</li>
109</ul>
110</li>
111</ul>
112<div class="description">
113<ul class="blockList">
114<li class="blockList">
115<dl>
116<dt>All Implemented Interfaces:</dt>
117<dd><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></dd>
118</dl>
119<dl>
120<dt>Direct Known Subclasses:</dt>
121<dd><a href="../../../genius/core/protocol/AlternatingMajorityConsensusProtocol.html" title="class in genius.core.protocol">AlternatingMajorityConsensusProtocol</a></dd>
122</dl>
123<hr>
124<br>
125<pre>public class <span class="typeNameLabel">AlternatingMultipleOffersProtocol</span>
126extends <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></pre>
127<div class="block">Implementation of an alternating offer protocol using voting consensus.
128 <p/>
129 Protocol in short:
130
131 <pre>
132 Round 1: Each agent makes their own offer.
133 Round 2: Each agent votes (accept/reject) for each offer on the table.
134
135 If there is one offer that everyone accepts, the negotiation ends with this offer.
136 Otherwise, the process continues until reaching deadline or agreement.
137 </pre>
138
139 <h1>Detailed description</h1>
140 <p>
141
142
143 The AMOP protocol is an alternating offers protocol in which all players get
144 the same opportunities. That is, every bid that is made in a round is
145 available to all agents before they vote on these bids. This implemented in
146 the following way: The AMOP protocol has a bidding phase followed by voting
147 phases. In the bidding phase all negotiators put their offer on the table. In
148 the voting phases all participants vote on all of the bids on the negotiation
149 table. If one of the bids on the negotiation table is accepted by all of the
150 parties, then the negotiation ends with this bid. This is an iterative
151 process continuing until reaching an agreement or reaching the deadline. The
152 essential difference with the SAOP protocol is that the players do not
153 override the offers made by others and the agents can take all offers into
154 account before they vote on the proposals.
155 </p></div>
156<dl>
157<dt><span class="simpleTagLabel">Author:</span></dt>
158<dd>David Festen, Reyhan Aydogan, Catholijn Jonker, W.Pasman modification to improve testability</dd>
159</dl>
160</li>
161</ul>
162</div>
163<div class="summary">
164<ul class="blockList">
165<li class="blockList">
166<!-- =========== FIELD SUMMARY =========== -->
167<ul class="blockList">
168<li class="blockList"><a name="field.summary">
169<!-- -->
170</a>
171<h3>Field Summary</h3>
172<ul class="blockList">
173<li class="blockList"><a name="fields.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">
174<!-- -->
175</a>
176<h3>Fields inherited from class&nbsp;genius.core.protocol.<a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></h3>
177<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#isAborted">isAborted</a></code></li>
178</ul>
179</li>
180</ul>
181<!-- ======== CONSTRUCTOR SUMMARY ======== -->
182<ul class="blockList">
183<li class="blockList"><a name="constructor.summary">
184<!-- -->
185</a>
186<h3>Constructor Summary</h3>
187<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
188<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
189<tr>
190<th class="colOne" scope="col">Constructor and Description</th>
191</tr>
192<tr class="altColor">
193<td class="colOne"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#AlternatingMultipleOffersProtocol--">AlternatingMultipleOffersProtocol</a></span>()</code>&nbsp;</td>
194</tr>
195</table>
196</li>
197</ul>
198<!-- ========== METHOD SUMMARY =========== -->
199<ul class="blockList">
200<li class="blockList"><a name="method.summary">
201<!-- -->
202</a>
203<h3>Method Summary</h3>
204<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
205<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
206<tr>
207<th class="colFirst" scope="col">Modifier and Type</th>
208<th class="colLast" scope="col">Method and Description</th>
209</tr>
210<tr id="i0" class="altColor">
211<td class="colFirst"><code>protected <a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions">Offer</a></code></td>
212<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#acceptedOffer-genius.core.session.Round-genius.core.session.Round-">acceptedOffer</a></span>(<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;votingRound,
213 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;offerRound)</code>
214<div class="block">returns the first offer in the given <a href="../../../genius/core/session/Round.html" title="class in genius.core.session"><code>Round</code></a> that everyone
215 accepted, or null if no such offer.</div>
216</td>
217</tr>
218<tr id="i1" class="rowColor">
219<td class="colFirst"><code>protected void</code></td>
220<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#allActionsAreOffers-genius.core.session.Round-">allActionsAreOffers</a></span>(<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;offerRound)</code>
221<div class="block">Checks if all actions are offers.</div>
222</td>
223</tr>
224<tr id="i2" class="altColor">
225<td class="colFirst"><code><a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a></code></td>
226<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#createRound--">createRound</a></span>()</code>
227<div class="block">factory function.</div>
228</td>
229</tr>
230<tr id="i3" class="rowColor">
231<td class="colFirst"><code><a href="../../../genius/core/session/Turn.html" title="class in genius.core.session">Turn</a></code></td>
232<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#createTurn-genius.core.parties.NegotiationParty-java.lang.Class-">createTurn</a></span>(<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&nbsp;party,
233 java.lang.Class&lt;? extends <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&nbsp;allowedAction)</code>
234<div class="block">create factory function.</div>
235</td>
236</tr>
237<tr id="i4" class="altColor">
238<td class="colFirst"><code><a href="../../../genius/core/session/Turn.html" title="class in genius.core.session">Turn</a></code></td>
239<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#createTurn-genius.core.parties.NegotiationParty-java.util.Collection-">createTurn</a></span>(<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&nbsp;votingParty,
240 java.util.Collection&lt;java.lang.Class&lt;? extends <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&gt;&nbsp;allowedActions)</code>
241<div class="block">factory function.</div>
242</td>
243</tr>
244<tr id="i5" class="rowColor">
245<td class="colFirst"><code>java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;</code></td>
246<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getActionListeners-java.util.List-">getActionListeners</a></span>(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
247<div class="block">Get a map of parties that are listening to each other's response</div>
248</td>
249</tr>
250<tr id="i6" class="altColor">
251<td class="colFirst"><code><a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a></code></td>
252<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getCurrentAgreement-genius.core.session.Session-java.util.List-">getCurrentAgreement</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
253 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
254<div class="block">Gets the current agreement if any.</div>
255</td>
256</tr>
257<tr id="i7" class="rowColor">
258<td class="colFirst"><code>int</code></td>
259<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">getNumberOfAgreeingParties</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
260 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
261<div class="block">Gets the maximum number of vote this protocol found.</div>
262</td>
263</tr>
264<tr id="i8" class="altColor">
265<td class="colFirst"><code><a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a></code></td>
266<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">getRoundStructure</a></span>(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties,
267 <a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</code>
268<div class="block">Get the round structure used by this algorithm.</div>
269</td>
270</tr>
271<tr id="i9" class="rowColor">
272<td class="colFirst"><code>boolean</code></td>
273<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#isFinished-genius.core.session.Session-java.util.List-">isFinished</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
274 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
275<div class="block">Check if the protocol is done or still busy.</div>
276</td>
277</tr>
278<tr id="i10" class="altColor">
279<td class="colFirst"><code>protected boolean</code></td>
280<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#isVotingRound-genius.core.session.Session-">isVotingRound</a></span>(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</code>
281<div class="block">Returns whether this is a voting round.</div>
282</td>
283</tr>
284<tr id="i11" class="rowColor">
285<td class="colFirst"><code>protected int</code></td>
286<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#nrOfVotes-int-java.util.List-int-">nrOfVotes</a></span>(int&nbsp;numOffers,
287 java.util.List&lt;<a href="../../../genius/core/session/Turn.html" title="class in genius.core.session">Turn</a>&gt;&nbsp;turns,
288 int&nbsp;offerNumber)</code>&nbsp;</td>
289</tr>
290</table>
291<ul class="blockList">
292<li class="blockList"><a name="methods.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">
293<!-- -->
294</a>
295<h3>Methods inherited from class&nbsp;genius.core.protocol.<a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></h3>
296<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#afterSession-genius.core.session.Session-java.util.List-">afterSession</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#applyAction-genius.core.actions.Action-genius.core.session.Session-">applyAction</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#beforeSession-genius.core.session.Session-java.util.List-">beforeSession</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#checkOffer-genius.core.actions.Offer-">checkOffer</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#endNegotiation--">endNegotiation</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#endNegotiation-java.lang.String-">endNegotiation</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#exclude-java.util.Collection-java.lang.Class-">exclude</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#includeOnly-java.util.Collection-java.lang.Class-">includeOnly</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#listenToAll-java.util.List-">listenToAll</a>, <a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#listenToNone-java.util.List-">listenToNone</a></code></li>
297</ul>
298<ul class="blockList">
299<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
300<!-- -->
301</a>
302<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
303<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
304</ul>
305</li>
306</ul>
307</li>
308</ul>
309</div>
310<div class="details">
311<ul class="blockList">
312<li class="blockList">
313<!-- ========= CONSTRUCTOR DETAIL ======== -->
314<ul class="blockList">
315<li class="blockList"><a name="constructor.detail">
316<!-- -->
317</a>
318<h3>Constructor Detail</h3>
319<a name="AlternatingMultipleOffersProtocol--">
320<!-- -->
321</a>
322<ul class="blockListLast">
323<li class="blockList">
324<h4>AlternatingMultipleOffersProtocol</h4>
325<pre>public&nbsp;AlternatingMultipleOffersProtocol()</pre>
326</li>
327</ul>
328</li>
329</ul>
330<!-- ============ METHOD DETAIL ========== -->
331<ul class="blockList">
332<li class="blockList"><a name="method.detail">
333<!-- -->
334</a>
335<h3>Method Detail</h3>
336<a name="getRoundStructure-java.util.List-genius.core.session.Session-">
337<!-- -->
338</a>
339<ul class="blockList">
340<li class="blockList">
341<h4>getRoundStructure</h4>
342<pre>public&nbsp;<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;getRoundStructure(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties,
343 <a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</pre>
344<div class="block">Get the round structure used by this algorithm.
345 <p/>
346 Structure:
347
348 <pre>
349 Round 1: Each agent makes their own offer.
350 Round 2: Each agent votes (accept/reject) for each offer on the table.
351 </pre></div>
352<dl>
353<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
354<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">getRoundStructure</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
355<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
356<dd><code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">getRoundStructure</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></code></dd>
357<dt><span class="paramLabel">Parameters:</span></dt>
358<dd><code>parties</code> - The parties currently participating</dd>
359<dd><code>session</code> - The complete session history</dd>
360<dt><span class="returnLabel">Returns:</span></dt>
361<dd>A list of possible actions</dd>
362</dl>
363</li>
364</ul>
365<a name="isFinished-genius.core.session.Session-java.util.List-">
366<!-- -->
367</a>
368<ul class="blockList">
369<li class="blockList">
370<h4>isFinished</h4>
371<pre>public&nbsp;boolean&nbsp;isFinished(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
372 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
373<div class="block"><span class="descfrmTypeLabel">Description copied from interface:&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html#isFinished-genius.core.session.Session-java.util.List-">MultilateralProtocol</a></code></span></div>
374<div class="block">Check if the protocol is done or still busy. If this method returns true,
375 the <a href="../../../genius/core/session/SessionManager.html" title="class in genius.core.session"><code>SessionManager</code></a> will not start a new
376 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session"><code>Round</code></a> after the current one. It will however finish all the turns
377 described in the
378 <a href="../../../genius/core/protocol/MultilateralProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-"><code>MultilateralProtocol.getRoundStructure(java.util.List, genius.core.session.Session)</code></a>
379 method.</div>
380<dl>
381<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
382<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#isFinished-genius.core.session.Session-java.util.List-">isFinished</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
383<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
384<dd><code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#isFinished-genius.core.session.Session-java.util.List-">isFinished</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></code></dd>
385<dt><span class="paramLabel">Parameters:</span></dt>
386<dd><code>session</code> - the current state of this session</dd>
387<dd><code>parties</code> - all the parties involved in the negotiation</dd>
388<dt><span class="returnLabel">Returns:</span></dt>
389<dd>true if the protocol is finished</dd>
390</dl>
391</li>
392</ul>
393<a name="getCurrentAgreement-genius.core.session.Session-java.util.List-">
394<!-- -->
395</a>
396<ul class="blockList">
397<li class="blockList">
398<h4>getCurrentAgreement</h4>
399<pre>public&nbsp;<a href="../../../genius/core/Bid.html" title="class in genius.core">Bid</a>&nbsp;getCurrentAgreement(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
400 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
401<div class="block">Gets the current agreement if any. This assumes that the session contains
402 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session"><code>Round</code></a>s containing offer, votes, offer, votes, etc in this order.
403 An agreement consists an <a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions"><code>Offer</code></a> that was <a href="../../../genius/core/actions/Accept.html" title="class in genius.core.actions"><code>Accept</code></a>ed by all
404 the votes. See also <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#acceptedOffer-genius.core.session.Round-genius.core.session.Round-"><code>acceptedOffer(Round, Round)</code></a>.</div>
405<dl>
406<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
407<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getCurrentAgreement-genius.core.session.Session-java.util.List-">getCurrentAgreement</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
408<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
409<dd><code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getCurrentAgreement-genius.core.session.Session-java.util.List-">getCurrentAgreement</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></code></dd>
410<dt><span class="paramLabel">Parameters:</span></dt>
411<dd><code>session</code> - The complete session history up to this point</dd>
412<dd><code>parties</code> - The parties involved in the current negotiation</dd>
413<dt><span class="returnLabel">Returns:</span></dt>
414<dd>The agreement bid or null if none</dd>
415</dl>
416</li>
417</ul>
418<a name="acceptedOffer-genius.core.session.Round-genius.core.session.Round-">
419<!-- -->
420</a>
421<ul class="blockList">
422<li class="blockList">
423<h4>acceptedOffer</h4>
424<pre>protected&nbsp;<a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions">Offer</a>&nbsp;acceptedOffer(<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;votingRound,
425 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;offerRound)</pre>
426<div class="block">returns the first offer in the given <a href="../../../genius/core/session/Round.html" title="class in genius.core.session"><code>Round</code></a> that everyone
427 accepted, or null if no such offer.</div>
428<dl>
429<dt><span class="paramLabel">Parameters:</span></dt>
430<dd><code>votingRound</code> - the round with the voting (<a href="../../../genius/core/actions/Accept.html" title="class in genius.core.actions"><code>Accept</code></a> or <a href="../../../genius/core/actions/Reject.html" title="class in genius.core.actions"><code>Reject</code></a>)
431 actions. The turns in votingRound must contain the following:
432 (N is the number of turns in the offer round)
433 <p>
434 vote(party1,offer1), vote(party2, offer1), ..., vote(partyN,
435 offer1), vote(party1, offer2), ......, vote(party1, offerN),
436 ... , vote(partyN, offerN)
437 </p>
438 We only consider offers that ALL N parties have voted on.</dd>
439<dd><code>offerRound</code> - the round with the offers (one for each party is expected).</dd>
440<dt><span class="returnLabel">Returns:</span></dt>
441<dd>The first accepted offer (all parties accepted the offer) if such
442 an offer exists, null otherwise.</dd>
443<dt><span class="throwsLabel">Throws:</span></dt>
444<dd><code>java.lang.IllegalArgumentException</code> - if the offerRound contains <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions"><code>Action</code></a>(s) not extending
445 <a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions"><code>Offer</code></a></dd>
446</dl>
447</li>
448</ul>
449<a name="nrOfVotes-int-java.util.List-int-">
450<!-- -->
451</a>
452<ul class="blockList">
453<li class="blockList">
454<h4>nrOfVotes</h4>
455<pre>protected&nbsp;int&nbsp;nrOfVotes(int&nbsp;numOffers,
456 java.util.List&lt;<a href="../../../genius/core/session/Turn.html" title="class in genius.core.session">Turn</a>&gt;&nbsp;turns,
457 int&nbsp;offerNumber)</pre>
458<dl>
459<dt><span class="paramLabel">Parameters:</span></dt>
460<dd><code>numOffers</code> - the number of offers on the table (in each turn)</dd>
461<dd><code>turns</code> - all the voting turns</dd>
462<dd><code>offerNumber</code> - the offer number that is being checked.</dd>
463<dt><span class="returnLabel">Returns:</span></dt>
464<dd>number of <a href="../../../genius/core/actions/Accept.html" title="class in genius.core.actions"><code>Accept</code></a>s for given offer number</dd>
465</dl>
466</li>
467</ul>
468<a name="allActionsAreOffers-genius.core.session.Round-">
469<!-- -->
470</a>
471<ul class="blockList">
472<li class="blockList">
473<h4>allActionsAreOffers</h4>
474<pre>protected&nbsp;void&nbsp;allActionsAreOffers(<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;offerRound)</pre>
475<div class="block">Checks if all actions are offers.</div>
476<dl>
477<dt><span class="paramLabel">Parameters:</span></dt>
478<dd><code>offerRound</code> - </dd>
479<dt><span class="throwsLabel">Throws:</span></dt>
480<dd><code>java.lang.IllegalArgumentException</code> - if not.</dd>
481</dl>
482</li>
483</ul>
484<a name="isVotingRound-genius.core.session.Session-">
485<!-- -->
486</a>
487<ul class="blockList">
488<li class="blockList">
489<h4>isVotingRound</h4>
490<pre>protected&nbsp;boolean&nbsp;isVotingRound(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session)</pre>
491<div class="block">Returns whether this is a voting round. First voting round is even round
492 and >= 2.</div>
493<dl>
494<dt><span class="paramLabel">Parameters:</span></dt>
495<dd><code>session</code> - the current state of this session</dd>
496<dt><span class="returnLabel">Returns:</span></dt>
497<dd>true is this is an even round > 0.</dd>
498</dl>
499</li>
500</ul>
501<a name="getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">
502<!-- -->
503</a>
504<ul class="blockList">
505<li class="blockList">
506<h4>getNumberOfAgreeingParties</h4>
507<pre>public&nbsp;int&nbsp;getNumberOfAgreeingParties(<a href="../../../genius/core/session/Session.html" title="class in genius.core.session">Session</a>&nbsp;session,
508 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
509<div class="block">Gets the maximum number of vote this protocol found.</div>
510<dl>
511<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
512<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">getNumberOfAgreeingParties</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
513<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
514<dd><code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">getNumberOfAgreeingParties</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></code></dd>
515<dt><span class="paramLabel">Parameters:</span></dt>
516<dd><code>session</code> - the current state of this session</dd>
517<dd><code>parties</code> - The parties currently participating</dd>
518<dt><span class="returnLabel">Returns:</span></dt>
519<dd>the number of parties agreeing to the current agreement</dd>
520</dl>
521</li>
522</ul>
523<a name="getActionListeners-java.util.List-">
524<!-- -->
525</a>
526<ul class="blockList">
527<li class="blockList">
528<h4>getActionListeners</h4>
529<pre>public&nbsp;java.util.Map&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>,java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&gt;&nbsp;getActionListeners(java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</pre>
530<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getActionListeners-java.util.List-">DefaultMultilateralProtocol</a></code></span></div>
531<div class="block">Get a map of parties that are listening to each other's response</div>
532<dl>
533<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
534<dd><code><a href="../../../genius/core/protocol/MultilateralProtocol.html#getActionListeners-java.util.List-">getActionListeners</a></code>&nbsp;in interface&nbsp;<code><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></code></dd>
535<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
536<dd><code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#getActionListeners-java.util.List-">getActionListeners</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html" title="class in genius.core.protocol">DefaultMultilateralProtocol</a></code></dd>
537<dt><span class="paramLabel">Parameters:</span></dt>
538<dd><code>parties</code> - The parties involved in the current negotiation</dd>
539<dt><span class="returnLabel">Returns:</span></dt>
540<dd>A map where the key is a
541 <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> that is responding to
542 a <a href="../../../genius/core/parties/NegotiationParty.html#chooseAction-java.util.List-"><code>NegotiationParty.chooseAction(java.util.List)</code></a> event,
543 and the value is a list of <a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties"><code>NegotiationParty</code></a> that are
544 listening to that key party's response.</dd>
545</dl>
546</li>
547</ul>
548<a name="createTurn-genius.core.parties.NegotiationParty-java.util.Collection-">
549<!-- -->
550</a>
551<ul class="blockList">
552<li class="blockList">
553<h4>createTurn</h4>
554<pre>public&nbsp;<a href="../../../genius/core/session/Turn.html" title="class in genius.core.session">Turn</a>&nbsp;createTurn(<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&nbsp;votingParty,
555 java.util.Collection&lt;java.lang.Class&lt;? extends <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&gt;&nbsp;allowedActions)</pre>
556<div class="block">factory function. To support testing.</div>
557<dl>
558<dt><span class="paramLabel">Parameters:</span></dt>
559<dd><code>votingParty</code> - </dd>
560<dd><code>allowedActions</code> - list of allowed action classes</dd>
561<dt><span class="returnLabel">Returns:</span></dt>
562<dd>a new <a href="../../../genius/core/session/Turn.html" title="class in genius.core.session"><code>Turn</code></a> with given actions as possible actions.</dd>
563</dl>
564</li>
565</ul>
566<a name="createTurn-genius.core.parties.NegotiationParty-java.lang.Class-">
567<!-- -->
568</a>
569<ul class="blockList">
570<li class="blockList">
571<h4>createTurn</h4>
572<pre>public&nbsp;<a href="../../../genius/core/session/Turn.html" title="class in genius.core.session">Turn</a>&nbsp;createTurn(<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&nbsp;party,
573 java.lang.Class&lt;? extends <a href="../../../genius/core/actions/Action.html" title="interface in genius.core.actions">Action</a>&gt;&nbsp;allowedAction)</pre>
574<div class="block">create factory function. To support testing.</div>
575<dl>
576<dt><span class="paramLabel">Parameters:</span></dt>
577<dd><code>party</code> - </dd>
578<dd><code>allowedAction</code> - the class of action that is possible.</dd>
579<dt><span class="returnLabel">Returns:</span></dt>
580<dd>a new <a href="../../../genius/core/session/Turn.html" title="class in genius.core.session"><code>Turn</code></a> with given action as possible actions.</dd>
581</dl>
582</li>
583</ul>
584<a name="createRound--">
585<!-- -->
586</a>
587<ul class="blockListLast">
588<li class="blockList">
589<h4>createRound</h4>
590<pre>public&nbsp;<a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;createRound()</pre>
591<div class="block">factory function. To support testing.</div>
592<dl>
593<dt><span class="returnLabel">Returns:</span></dt>
594<dd>round</dd>
595</dl>
596</li>
597</ul>
598</li>
599</ul>
600</li>
601</ul>
602</div>
603</div>
604<!-- ========= END OF CLASS DATA ========= -->
605<!-- ======= START OF BOTTOM NAVBAR ====== -->
606<div class="bottomNav"><a name="navbar.bottom">
607<!-- -->
608</a>
609<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
610<a name="navbar.bottom.firstrow">
611<!-- -->
612</a>
613<ul class="navList" title="Navigation">
614<li><a href="../../../overview-summary.html">Overview</a></li>
615<li><a href="package-summary.html">Package</a></li>
616<li class="navBarCell1Rev">Class</li>
617<li><a href="class-use/AlternatingMultipleOffersProtocol.html">Use</a></li>
618<li><a href="package-tree.html">Tree</a></li>
619<li><a href="../../../deprecated-list.html">Deprecated</a></li>
620<li><a href="../../../index-all.html">Index</a></li>
621<li><a href="../../../help-doc.html">Help</a></li>
622</ul>
623</div>
624<div class="subNav">
625<ul class="navList">
626<li><a href="../../../genius/core/protocol/AlternatingMajorityConsensusProtocol.html" title="class in genius.core.protocol"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
627<li><a href="../../../genius/core/protocol/BilateralAtomicNegotiationSession.html" title="class in genius.core.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
628</ul>
629<ul class="navList">
630<li><a href="../../../index.html?genius/core/protocol/AlternatingMultipleOffersProtocol.html" target="_top">Frames</a></li>
631<li><a href="AlternatingMultipleOffersProtocol.html" target="_top">No&nbsp;Frames</a></li>
632</ul>
633<ul class="navList" id="allclasses_navbar_bottom">
634<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
635</ul>
636<div>
637<script type="text/javascript"><!--
638 allClassesLink = document.getElementById("allclasses_navbar_bottom");
639 if(window==top) {
640 allClassesLink.style.display = "block";
641 }
642 else {
643 allClassesLink.style.display = "none";
644 }
645 //-->
646</script>
647</div>
648<div>
649<ul class="subNavList">
650<li>Summary:&nbsp;</li>
651<li>Nested&nbsp;|&nbsp;</li>
652<li><a href="#fields.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">Field</a>&nbsp;|&nbsp;</li>
653<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
654<li><a href="#method.summary">Method</a></li>
655</ul>
656<ul class="subNavList">
657<li>Detail:&nbsp;</li>
658<li>Field&nbsp;|&nbsp;</li>
659<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
660<li><a href="#method.detail">Method</a></li>
661</ul>
662</div>
663<a name="skip.navbar.bottom">
664<!-- -->
665</a></div>
666<!-- ======== END OF BOTTOM NAVBAR ======= -->
667</body>
668</html>
Note: See TracBrowser for help on using the repository browser.