[30] | 1 | package geniusweb.opponentmodel;
|
---|
| 2 |
|
---|
| 3 | import geniusweb.actions.Action;
|
---|
| 4 | import geniusweb.issuevalue.Bid;
|
---|
| 5 | import geniusweb.issuevalue.Domain;
|
---|
| 6 | import geniusweb.profile.Profile;
|
---|
| 7 | import geniusweb.profile.utilityspace.UtilitySpace;
|
---|
| 8 | import 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 | */
|
---|
| 22 | public 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 | }
|
---|