Changes between Version 399 and Version 400 of WikiStart


Ignore:
Timestamp:
04/13/21 09:22:11 (3 years ago)
Author:
wouter
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WikiStart

    v399 v400  
    481481== Protocol
    482482The protocol module contains the functionality to define and execute a negotiation protocol.
    483 There are session protocols and tournament protocols. The following protocols are available:
     483
     484The tables in the next sections give a very short description of the protocol. The javadoc of each protocol contains all details. Javadoc is available on the [http://artifactory.ewi.tudelft.nl/artifactory/webapp/#/artifacts/browse/tree/General/libs-release/geniusweb/protocol artifactory]. See [wiki:WikiStart#DownloadingJavaDoc downloading javadoc].
     485
     486The basic classes defining a protocol are:
     487* The [source:/protocol/src/main/java/geniusweb/protocol/NegoSettings.java NegoSettings]: these define the settings for the protocol, such as the deadline, the participants and the profile
     488* The [source:/protocol/src/main/java/geniusweb/protocol/NegoState.java NegoState]: this contains the current state of execution of the protocol. To give some example states: "waiting for bid from party 2", "ended with agreement", "ended because party 1 broke the protocol". A state also has various {{{with()}}} functions defining the new state from an old state and a party doing an action.
     489* The [source:/protocol/src/main/java/geniusweb/protocol/NegoProtocol.java NegoProtocol]: this defines what happens when a negotiation starts, when a participant enters halfway the session, what are the allowed actions, what happens if a participant breaks the protocol, etc.   
     490
     491There are session protocols and tournament protocols.
     492
     493=== Tournament Protocol
     494The tournament protocols can run a tournament containing multiple sessions. The following tournament protocols are available:
     495
     496||= protocol (abbreviated) =||= full name =||= short description =||
     497||AllPermutations||tournament, with generated sessions||Generates a set of SAOP sessions from a set of parties and profiles. This is a tournament protocol, not used for single sessions||
     498||AllPermutationsWithLearn||AllPermutations with Learning||As AllPermutations, but after the tournament a Learn session is done.
     499
     500
     501=== Session Protocol
     502Sessino protocols are protocols that run a single session. The following session protocols are available:
    484503
    485504||= protocol (abbreviated) =||= full name =||= short description =||
     
    489508||MOPAC||Multiple Offers Partial Consensus||All active parties receive a YourTurn after which they put an offer on the table. Then everyone receives a Voting message containing all offers on the table. Now all parties place a conditional vote on the offers. All parties receive these conditional votes in the Opt-In message. The parties must now all place their votes again, but they can extend their votes by adding new ones or extending the previous conditions. A [#VotingEvaluator] is now called to determine the agreements from  the last votes, and to determine if the negotiation is complete.||
    490509||Learn||Learning phase||All parties receive a Settings object. with a LEARN protocol. Additonally they receive the parameters "persistentstate" and "negotiationdata". Refer to LearnSettings on how to use these. They can immediately start learning, respecting the deadline in the progress field. When done they should send a LearningDone action.||
    491 ||AllPermutations||tournament, with generated sessions||Generates a set of SAOP sessions from a set of parties and profiles. This is a tournament protocol, not used for single sessions||
    492 ||AllPermutationsWithLearn||AllPermutations with Learning||As AllPermutations, but after the tournament a Learn session is done.
    493 
    494 
    495 Above gives a very short description of the protocol. The javadoc of each protocol contains all details. Javadoc is available on the [http://artifactory.ewi.tudelft.nl/artifactory/webapp/#/artifacts/browse/tree/General/libs-release/geniusweb/protocol artifactory]. See [wiki:WikiStart#DownloadingJavaDoc downloading javadoc].
    496 
    497 
    498 The basic classes defining a protocol are:
    499 * The [source:/protocol/src/main/java/geniusweb/protocol/NegoSettings.java NegoSettings]: these define the settings for the protocol, such as the deadline, the participants and the profile
    500 * The [source:/protocol/src/main/java/geniusweb/protocol/NegoState.java NegoState]: this contains the current state of execution of the protocol. To give some example states: "waiting for bid from party 2", "ended with agreement", "ended because party 1 broke the protocol". A state also has various {{{with()}}} functions defining the new state from an old state and a party doing an action.
    501 * The [source:/protocol/src/main/java/geniusweb/protocol/NegoProtocol.java NegoProtocol]: this defines what happens when a negotiation starts, when a participant enters halfway the session, what are the allowed actions, what happens if a participant breaks the protocol, etc.   
     510
     511The Learn protocol is special, it does not really run a negotiation. Instead, parties can learn during the time of this session. Then can not do any actions apart from saying that they finished the learning.
    502512
    503513=== Protocol Party Parameters
     
    523533
    524534=== NegoSettings
     535All protocols start with a description of the details of the protocol to be run: which parties, which profiles should they use, what is the deadline, etc. This description is the [source:protocol/src/main/java/geniusweb/protocol/NegoSettings.java] class.
     536
    525537We discuss a few common NegoSettings in more detail, with some examples.
    526538