1 | package geniusweb.boa.biddingstrategy;
|
---|
2 |
|
---|
3 | import geniusweb.actions.Accept;
|
---|
4 | import geniusweb.actions.Action;
|
---|
5 | import geniusweb.actions.EndNegotiation;
|
---|
6 | import geniusweb.actions.Offer;
|
---|
7 | import geniusweb.boa.BoaParty;
|
---|
8 | import geniusweb.boa.BoaState;
|
---|
9 | import geniusweb.boa.acceptancestrategy.AcceptanceStrategy;
|
---|
10 | import geniusweb.inform.Settings;
|
---|
11 |
|
---|
12 | /**
|
---|
13 | * Determines what action to take in which state. The protocol to be supported
|
---|
14 | * is SAOP.
|
---|
15 | * <p>
|
---|
16 | * Assumed part of a {@link BoaParty}.
|
---|
17 | *
|
---|
18 | * <p>
|
---|
19 | * <em>MUST</em> have an empty constructor.
|
---|
20 | * <h2>More info</h2> Baarslag T., Hindriks K.V., Hendrikx M., Dirkzwager A.,
|
---|
21 | * Jonker C.M. Decoupling Negotiating Agents to Explore the Space of Negotiation
|
---|
22 | * Strategies. Proceedings of The Fifth International Workshop on Agent-based
|
---|
23 | * Complex Automated Negotiations (ACAN 2012), 2012.
|
---|
24 | * https://homepages.cwi.nl/~baarslag/pub/Decoupling_Negotiating_Agents_to_Explore_the_Space_of_Negotiation_Strategies_ACAN_2012.pdf
|
---|
25 | */
|
---|
26 | public interface BiddingStrategy {
|
---|
27 |
|
---|
28 | /**
|
---|
29 | * Recommend a next action.
|
---|
30 | * <p>
|
---|
31 | * <b>Note</b> for implementors: This can extract configuration parameters
|
---|
32 | * from {@link Settings#getParameters} using {@link BoaState#getSettings()}.
|
---|
33 | * Generally we recommend to write implementations such that they can also
|
---|
34 | * be hard-configured, for easier use of the components in hard-coded
|
---|
35 | * settings.
|
---|
36 | *
|
---|
37 | * @param state the current {@link BoaState}
|
---|
38 | *
|
---|
39 | * @return the suggested next Action. Should always return a valid action,
|
---|
40 | * not null. Typically this generates only {@link Offer}s (and maybe
|
---|
41 | * {@link EndNegotiation}. The subsequent {@link AcceptanceStrategy}
|
---|
42 | * will replace {@link Offer}s with {@link Accept}s as needed.
|
---|
43 | *
|
---|
44 | */
|
---|
45 | Action getAction(BoaState state);
|
---|
46 |
|
---|
47 | }
|
---|