public class AlternatingMajorityConsensusProtocol extends AlternatingMultipleOffersProtocol
AlternatingMultipleOffersProtocol
but now
an offer is accepted if the majority (instead of all) accept.
Protocol:
Round 1 (offers): Each agent makes an offer Round 2 (voting): Each agent votes for each offer on the table The offer that is supported by the most parties, will stay on the table. If a new offer has more supporting parties, it overwrites the old offer. This protocol always has some agreement. When deadline reached, the most recent agreement will be considered the final agreement.
isAborted
Constructor and Description |
---|
AlternatingMajorityConsensusProtocol() |
Modifier and Type | Method and Description |
---|---|
protected Offer |
acceptedOffer(Round votingRound,
Round offerRound)
returns the first offer with more support than the current one, or null
if no such offer.
|
boolean |
isFinished(Session session,
java.util.List<NegotiationParty> parties)
Check if the protocol is done or still busy.
|
allActionsAreOffers, createRound, createTurn, createTurn, getActionListeners, getCurrentAgreement, getNumberOfAgreeingParties, getRoundStructure, isVotingRound, nrOfVotes
afterSession, applyAction, beforeSession, checkOffer, endNegotiation, endNegotiation, exclude, includeOnly, listenToAll, listenToNone
public AlternatingMajorityConsensusProtocol()
public boolean isFinished(Session session, java.util.List<NegotiationParty> parties)
MultilateralProtocol
SessionManager
will not start a new
Round
after the current one. It will however finish all the turns
described in the
MultilateralProtocol.getRoundStructure(java.util.List, genius.core.session.Session)
method.isFinished
in interface MultilateralProtocol
isFinished
in class AlternatingMultipleOffersProtocol
session
- the current state of this sessionparties
- all the parties involved in the negotiationprotected Offer acceptedOffer(Round votingRound, Round offerRound)
acceptedOffer
in class AlternatingMultipleOffersProtocol
votingRound
- the round with the voting (expected number of turns is agent#
* agent#)offerRound
- the round with the offers (expected number of turns is agent#)