source: javadoc/genius/core/protocol/AlternatingMajorityConsensusProtocol.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: 20.0 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>AlternatingMajorityConsensusProtocol (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="AlternatingMajorityConsensusProtocol (Genius Core Documentation)";
16 }
17 }
18 catch(err) {
19 }
20//-->
21var methods = {"i0":10,"i1":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/AlternatingMajorityConsensusProtocol.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>Prev&nbsp;Class</li>
53<li><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.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/AlternatingMajorityConsensusProtocol.html" target="_top">Frames</a></li>
57<li><a href="AlternatingMajorityConsensusProtocol.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 AlternatingMajorityConsensusProtocol" class="title">Class AlternatingMajorityConsensusProtocol</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><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol">genius.core.protocol.AlternatingMultipleOffersProtocol</a></li>
107<li>
108<ul class="inheritance">
109<li>genius.core.protocol.AlternatingMajorityConsensusProtocol</li>
110</ul>
111</li>
112</ul>
113</li>
114</ul>
115</li>
116</ul>
117<div class="description">
118<ul class="blockList">
119<li class="blockList">
120<dl>
121<dt>All Implemented Interfaces:</dt>
122<dd><a href="../../../genius/core/protocol/MultilateralProtocol.html" title="interface in genius.core.protocol">MultilateralProtocol</a></dd>
123</dl>
124<hr>
125<br>
126<pre>public class <span class="typeNameLabel">AlternatingMajorityConsensusProtocol</span>
127extends <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol">AlternatingMultipleOffersProtocol</a></pre>
128<div class="block">Implementation of an alternating offer protocol using majority voting. This
129 is essentially equal to the <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol"><code>AlternatingMultipleOffersProtocol</code></a> but now
130 an offer is accepted if the majority (instead of all) accept.
131 <p/>
132 Protocol:
133
134 <pre>
135 Round 1 (offers): Each agent makes an offer
136 Round 2 (voting): Each agent votes for each offer on the table
137
138 The offer that is supported by the most parties, will stay on the table.
139 If a new offer has more supporting parties, it overwrites the old offer.
140 This protocol always has some agreement.
141
142 When deadline reached, the most recent agreement will be considered the final agreement.
143 </pre></div>
144<dl>
145<dt><span class="simpleTagLabel">Author:</span></dt>
146<dd>David Festen, Reyhan, W.Pasman removed all code except acceptedOffer and extend existing
147 AMOP</dd>
148</dl>
149</li>
150</ul>
151</div>
152<div class="summary">
153<ul class="blockList">
154<li class="blockList">
155<!-- =========== FIELD SUMMARY =========== -->
156<ul class="blockList">
157<li class="blockList"><a name="field.summary">
158<!-- -->
159</a>
160<h3>Field Summary</h3>
161<ul class="blockList">
162<li class="blockList"><a name="fields.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">
163<!-- -->
164</a>
165<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>
166<code><a href="../../../genius/core/protocol/DefaultMultilateralProtocol.html#isAborted">isAborted</a></code></li>
167</ul>
168</li>
169</ul>
170<!-- ======== CONSTRUCTOR SUMMARY ======== -->
171<ul class="blockList">
172<li class="blockList"><a name="constructor.summary">
173<!-- -->
174</a>
175<h3>Constructor Summary</h3>
176<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
177<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
178<tr>
179<th class="colOne" scope="col">Constructor and Description</th>
180</tr>
181<tr class="altColor">
182<td class="colOne"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMajorityConsensusProtocol.html#AlternatingMajorityConsensusProtocol--">AlternatingMajorityConsensusProtocol</a></span>()</code>&nbsp;</td>
183</tr>
184</table>
185</li>
186</ul>
187<!-- ========== METHOD SUMMARY =========== -->
188<ul class="blockList">
189<li class="blockList"><a name="method.summary">
190<!-- -->
191</a>
192<h3>Method Summary</h3>
193<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
194<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>
195<tr>
196<th class="colFirst" scope="col">Modifier and Type</th>
197<th class="colLast" scope="col">Method and Description</th>
198</tr>
199<tr id="i0" class="altColor">
200<td class="colFirst"><code>protected <a href="../../../genius/core/actions/Offer.html" title="class in genius.core.actions">Offer</a></code></td>
201<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMajorityConsensusProtocol.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,
202 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;offerRound)</code>
203<div class="block">returns the first offer with more support than the current one, or null
204 if no such offer.</div>
205</td>
206</tr>
207<tr id="i1" class="rowColor">
208<td class="colFirst"><code>boolean</code></td>
209<td class="colLast"><code><span class="memberNameLink"><a href="../../../genius/core/protocol/AlternatingMajorityConsensusProtocol.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,
210 java.util.List&lt;<a href="../../../genius/core/parties/NegotiationParty.html" title="interface in genius.core.parties">NegotiationParty</a>&gt;&nbsp;parties)</code>
211<div class="block">Check if the protocol is done or still busy.</div>
212</td>
213</tr>
214</table>
215<ul class="blockList">
216<li class="blockList"><a name="methods.inherited.from.class.genius.core.protocol.AlternatingMultipleOffersProtocol">
217<!-- -->
218</a>
219<h3>Methods inherited from class&nbsp;genius.core.protocol.<a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol">AlternatingMultipleOffersProtocol</a></h3>
220<code><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#allActionsAreOffers-genius.core.session.Round-">allActionsAreOffers</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#createRound--">createRound</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#createTurn-genius.core.parties.NegotiationParty-java.lang.Class-">createTurn</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#createTurn-genius.core.parties.NegotiationParty-java.util.Collection-">createTurn</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getActionListeners-java.util.List-">getActionListeners</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getCurrentAgreement-genius.core.session.Session-java.util.List-">getCurrentAgreement</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getNumberOfAgreeingParties-genius.core.session.Session-java.util.List-">getNumberOfAgreeingParties</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#getRoundStructure-java.util.List-genius.core.session.Session-">getRoundStructure</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#isVotingRound-genius.core.session.Session-">isVotingRound</a>, <a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#nrOfVotes-int-java.util.List-int-">nrOfVotes</a></code></li>
221</ul>
222<ul class="blockList">
223<li class="blockList"><a name="methods.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">
224<!-- -->
225</a>
226<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>
227<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>
228</ul>
229<ul class="blockList">
230<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
231<!-- -->
232</a>
233<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
234<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
235</ul>
236</li>
237</ul>
238</li>
239</ul>
240</div>
241<div class="details">
242<ul class="blockList">
243<li class="blockList">
244<!-- ========= CONSTRUCTOR DETAIL ======== -->
245<ul class="blockList">
246<li class="blockList"><a name="constructor.detail">
247<!-- -->
248</a>
249<h3>Constructor Detail</h3>
250<a name="AlternatingMajorityConsensusProtocol--">
251<!-- -->
252</a>
253<ul class="blockListLast">
254<li class="blockList">
255<h4>AlternatingMajorityConsensusProtocol</h4>
256<pre>public&nbsp;AlternatingMajorityConsensusProtocol()</pre>
257</li>
258</ul>
259</li>
260</ul>
261<!-- ============ METHOD DETAIL ========== -->
262<ul class="blockList">
263<li class="blockList"><a name="method.detail">
264<!-- -->
265</a>
266<h3>Method Detail</h3>
267<a name="isFinished-genius.core.session.Session-java.util.List-">
268<!-- -->
269</a>
270<ul class="blockList">
271<li class="blockList">
272<h4>isFinished</h4>
273<pre>public&nbsp;boolean&nbsp;isFinished(<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)</pre>
275<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>
276<div class="block">Check if the protocol is done or still busy. If this method returns true,
277 the <a href="../../../genius/core/session/SessionManager.html" title="class in genius.core.session"><code>SessionManager</code></a> will not start a new
278 <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
279 described in the
280 <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>
281 method.</div>
282<dl>
283<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
284<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>
285<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
286<dd><code><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#isFinished-genius.core.session.Session-java.util.List-">isFinished</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol">AlternatingMultipleOffersProtocol</a></code></dd>
287<dt><span class="paramLabel">Parameters:</span></dt>
288<dd><code>session</code> - the current state of this session</dd>
289<dd><code>parties</code> - all the parties involved in the negotiation</dd>
290<dt><span class="returnLabel">Returns:</span></dt>
291<dd>true if the protocol is finished</dd>
292</dl>
293</li>
294</ul>
295<a name="acceptedOffer-genius.core.session.Round-genius.core.session.Round-">
296<!-- -->
297</a>
298<ul class="blockListLast">
299<li class="blockList">
300<h4>acceptedOffer</h4>
301<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,
302 <a href="../../../genius/core/session/Round.html" title="class in genius.core.session">Round</a>&nbsp;offerRound)</pre>
303<div class="block">returns the first offer with more support than the current one, or null
304 if no such offer.</div>
305<dl>
306<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
307<dd><code><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html#acceptedOffer-genius.core.session.Round-genius.core.session.Round-">acceptedOffer</a></code>&nbsp;in class&nbsp;<code><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol">AlternatingMultipleOffersProtocol</a></code></dd>
308<dt><span class="paramLabel">Parameters:</span></dt>
309<dd><code>votingRound</code> - the round with the voting (expected number of turns is agent#
310 * agent#)</dd>
311<dd><code>offerRound</code> - the round with the offers (expected number of turns is agent#)</dd>
312<dt><span class="returnLabel">Returns:</span></dt>
313<dd>The best offer on the table</dd>
314</dl>
315</li>
316</ul>
317</li>
318</ul>
319</li>
320</ul>
321</div>
322</div>
323<!-- ========= END OF CLASS DATA ========= -->
324<!-- ======= START OF BOTTOM NAVBAR ====== -->
325<div class="bottomNav"><a name="navbar.bottom">
326<!-- -->
327</a>
328<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
329<a name="navbar.bottom.firstrow">
330<!-- -->
331</a>
332<ul class="navList" title="Navigation">
333<li><a href="../../../overview-summary.html">Overview</a></li>
334<li><a href="package-summary.html">Package</a></li>
335<li class="navBarCell1Rev">Class</li>
336<li><a href="class-use/AlternatingMajorityConsensusProtocol.html">Use</a></li>
337<li><a href="package-tree.html">Tree</a></li>
338<li><a href="../../../deprecated-list.html">Deprecated</a></li>
339<li><a href="../../../index-all.html">Index</a></li>
340<li><a href="../../../help-doc.html">Help</a></li>
341</ul>
342</div>
343<div class="subNav">
344<ul class="navList">
345<li>Prev&nbsp;Class</li>
346<li><a href="../../../genius/core/protocol/AlternatingMultipleOffersProtocol.html" title="class in genius.core.protocol"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
347</ul>
348<ul class="navList">
349<li><a href="../../../index.html?genius/core/protocol/AlternatingMajorityConsensusProtocol.html" target="_top">Frames</a></li>
350<li><a href="AlternatingMajorityConsensusProtocol.html" target="_top">No&nbsp;Frames</a></li>
351</ul>
352<ul class="navList" id="allclasses_navbar_bottom">
353<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
354</ul>
355<div>
356<script type="text/javascript"><!--
357 allClassesLink = document.getElementById("allclasses_navbar_bottom");
358 if(window==top) {
359 allClassesLink.style.display = "block";
360 }
361 else {
362 allClassesLink.style.display = "none";
363 }
364 //-->
365</script>
366</div>
367<div>
368<ul class="subNavList">
369<li>Summary:&nbsp;</li>
370<li>Nested&nbsp;|&nbsp;</li>
371<li><a href="#fields.inherited.from.class.genius.core.protocol.DefaultMultilateralProtocol">Field</a>&nbsp;|&nbsp;</li>
372<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
373<li><a href="#method.summary">Method</a></li>
374</ul>
375<ul class="subNavList">
376<li>Detail:&nbsp;</li>
377<li>Field&nbsp;|&nbsp;</li>
378<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
379<li><a href="#method.detail">Method</a></li>
380</ul>
381</div>
382<a name="skip.navbar.bottom">
383<!-- -->
384</a></div>
385<!-- ======== END OF BOTTOM NAVBAR ======= -->
386</body>
387</html>
Note: See TracBrowser for help on using the repository browser.