source: opponentmodel/src/main/java/geniusweb/opponentmodel/OpponentModel.java@ 33

Last change on this file since 33 was 33, checked in by bart, 3 years ago

Major update. Changes in json serialization, maven dependencies and BOA. Fix in stand-alone runner.

File size: 1.7 KB
Line 
1package geniusweb.opponentmodel;
2
3import geniusweb.actions.Action;
4import geniusweb.issuevalue.Bid;
5import geniusweb.issuevalue.Domain;
6import geniusweb.profile.Profile;
7import geniusweb.profile.utilityspace.UtilitySpace;
8import geniusweb.progress.Progress;
9
10/**
11 * An opponentmodel estimates a {@link UtilitySpace} from received opponent
12 * actions.
13 * <h2>Requirement</h2> A OpponentModel must have a constructor that takes the
14 * Domain as argument. unfortunately this can not be enforced in a java
15 * interface
16 *
17 * <p>
18 * <em>MUST</em> have an empty constructor as these are also used as part of the
19 * BOA framework.
20 *
21 */
22public interface OpponentModel extends Profile {
23
24 /**
25 * Initializes the model. This function must be called first after
26 * constructing an instance. It can also be called later, if there is a
27 * change in the domain or resBid.
28 * <p>
29 * This late-initialization is to support boa models that have late
30 * initialization.
31 *
32 * @param domain the domain to work with. Must be not null.
33 * @param resBid the reservation bid, or null if no reservationbid is
34 * available.
35 * @return OpponentModel that uses given domain and reservationbid.
36 *
37 */
38 OpponentModel with(Domain domain, Bid resBid);
39
40 /**
41 * Update this with a new action that was done by the opponent that this
42 * model is modeling. {@link #with(Domain, Bid)} must be called before
43 * calling this.
44 *
45 * @param action the new incoming action.
46 * @param progress the current progress of the negotiation. Calls to this
47 * must be done with increasing progress.
48 * @return the updated {@link OpponentModel}
49 */
50 OpponentModel with(Action action, Progress progress);
51
52}
Note: See TracBrowser for help on using the repository browser.