1 | /**
|
---|
2 | * package onetomany.bargainingchipsgame.interactions;
|
---|
3 | */
|
---|
4 | /**
|
---|
5 | * BCG rules are based on a non-alternating offer protocol in each bilateral negotiation thread.
|
---|
6 | *
|
---|
7 | * The negotiating agents at both sides can send offers to each other at any time without taking any turn and they can repeat any offers previously submitted by either sides at any time.
|
---|
8 | * This interaction ends successfully if both agents send the same proposal to each other consecutively and mutually confirm the proposal by exchanging an accept.
|
---|
9 | * The agent who first sent the proposal, Accepts this proposal which was just previously resent by the other agent.
|
---|
10 | * This will be finalized by an Accept from the other agent to the first agent.
|
---|
11 | * Also, any agent can end the negotiation at any time. That is, if not Ended, they can go through several rounds of exchanging proposals until one side,
|
---|
12 | * e.g. the seller agent, sends a proposal repeating the proposal received from the other side, e.g. the buyer agent.
|
---|
13 | * In response, if the buyer agent sends an Accept message to the seller agent, this is like a pre-accept requiring to be finally-accepted by the seller agent, as well.
|
---|
14 | * It outcomes successfully, if the same proposal be exchanged consecutively by both parties and mutually confirmed by exchanging an Accept}.
|
---|
15 | * When both parties exchange Accept offers, the deal is legally binding and forcing the parties to commit.
|
---|
16 | *
|
---|
17 | * This interactions are based on some concepts including: offer, action, thread, deadline, validation, outcome, ...
|
---|
18 | *
|
---|
19 | * Interaction between players is via exchanging offers. An offer has two parts: (1) a bundle or null, (2) message code: `bid', `accept', `end'.
|
---|
20 | * [It is worth to mention that when the code is 'bid', so the first part is checked by the players; for the two latter codes, the first part of the offer is null (would not be considered)].
|
---|
21 | *
|
---|
22 | * Offers are being exchanged as actions which also describe the sender and receiver of the offer.
|
---|
23 | * Offers are exchanged in a negotiation thread, a bilateral negotiation, under deadline.
|
---|
24 | * The negotiation is one-to-many including parallel negotiation threads.
|
---|
25 | * Each thread follows a non-alternating offer protocol, and conclude a deal or fails.
|
---|
26 | * Outcome of one-to-many negotiation is aggregation of multiple deals gained by concurrent negotiation threads.
|
---|
27 | *
|
---|
28 | *
|
---|
29 | * @author Faria Nassiri-Mofakham
|
---|
30 | *
|
---|
31 | */
|
---|
32 | package onetomany.bargainingchipsgame.interactions; |
---|