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

Last change on this file since 28 was 28, checked in by bart, 4 years ago

minor fixes to improve extendability

File size: 1.6 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 * <h1>Requirement</h1> 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 *
29 * @param domain the domain to work with
30 * @param resBid the reservation bid, or null if no reservationbid is
31 * available.
32 * @return OpponentModel that uses given domain and reservationbid.
33 *
34 */
35 OpponentModel with(Domain domain, Bid resBid);
36
37 /**
38 * Update this with a new action that was done by the opponent that this
39 * model is modeling. {@link #with(Domain, Bid)} must be called before
40 * calling this.
41 *
42 * @param action the new incoming action.
43 * @param progress the current progress of the negotiation. Calls to this
44 * must be done with increasing progress.
45 * @return the updated {@link OpponentModel}
46 */
47 OpponentModel with(Action action, Progress progress);
48
49}
Note: See TracBrowser for help on using the repository browser.