1 | package geniusweb.boa.acceptancestrategy;
|
---|
2 |
|
---|
3 | import geniusweb.actions.Action;
|
---|
4 | import geniusweb.boa.BoaParty;
|
---|
5 | import geniusweb.boa.BoaState;
|
---|
6 | import geniusweb.boa.biddingstrategy.BiddingStrategy;
|
---|
7 |
|
---|
8 | /**
|
---|
9 | * Determines in which states a bid is acceptable. Typically used as one of the
|
---|
10 | * components of a {@link BoaParty}. The protocol to be supported is SAOP.
|
---|
11 | * <p>
|
---|
12 | * <em>MUST</em> have an empty constructor.
|
---|
13 | *
|
---|
14 | * <h2>More info</h2> Baarslag T., Hindriks K.V., Hendrikx M., Dirkzwager A.,
|
---|
15 | * Jonker C.M. Decoupling Negotiating Agents to Explore the Space of Negotiation
|
---|
16 | * Strategies. Proceedings of The Fifth International Workshop on Agent-based
|
---|
17 | * Complex Automated Negotiations (ACAN 2012), 2012.
|
---|
18 | * https://homepages.cwi.nl/~baarslag/pub/Decoupling_Negotiating_Agents_to_Explore_the_Space_of_Negotiation_Strategies_ACAN_2012.pdf
|
---|
19 | */
|
---|
20 | public interface AcceptanceStrategy {
|
---|
21 |
|
---|
22 | /**
|
---|
23 | * given a candidate action, update the action considering its fitness and
|
---|
24 | * adjust if Accept would be a better choice. This normally is used to "fix"
|
---|
25 | * the Offers coming from the {@link BiddingStrategy}.
|
---|
26 | *
|
---|
27 | * <p>
|
---|
28 | * <b>Note</b> for implementors: Previous offers that were done can be
|
---|
29 | * extracted from the negoState. configuration parameters can be extracted
|
---|
30 | * from {@link BoaState#getSettings()}. Generally we recommend to write
|
---|
31 | * implementations such that they can also be hard-configured, for easier
|
---|
32 | * use of the components in hard-coded settings.
|
---|
33 | *
|
---|
34 | * @param proposedAction an action that is proposed (usually by the
|
---|
35 | * {@link BiddingStrategy} as the next action.
|
---|
36 | * @param boaState the current {@link BoaState}.
|
---|
37 | *
|
---|
38 | *
|
---|
39 | * @return a filtered version of the action. For example, the
|
---|
40 | * AcceptanceStrategy may deem an Accept better than a given Offer.
|
---|
41 | */
|
---|
42 | Action filter(Action proposedAction, BoaState boaState);
|
---|
43 | }
|
---|