1 | package negotiator.boaframework.acceptanceconditions.other;
|
---|
2 |
|
---|
3 | import java.util.ArrayList;
|
---|
4 | import java.util.Map;
|
---|
5 |
|
---|
6 | import genius.core.boaframework.AcceptanceStrategy;
|
---|
7 | import genius.core.boaframework.Multi_AcceptanceCondition;
|
---|
8 | import genius.core.boaframework.NegotiationSession;
|
---|
9 | import genius.core.boaframework.OfferingStrategy;
|
---|
10 | import genius.core.boaframework.OpponentModel;
|
---|
11 | import genius.core.boaframework.OutcomeTuple;
|
---|
12 |
|
---|
13 | /**
|
---|
14 | * The MAC is a tool which allows to test many acceptance strategies in the same
|
---|
15 | * negotiation trace. Each AC generates an outcome, which is saved separately.
|
---|
16 | * Note that while this tool allows to test a large amount of AC's in the same
|
---|
17 | * trace, there is a computational cost. Therefore we recommend to use at most
|
---|
18 | * 50 AC's.
|
---|
19 | *
|
---|
20 | * Decoupling Negotiating Agents to Explore the Space of Negotiation Strategies
|
---|
21 | * T. Baarslag, K. Hindriks, M. Hendrikx, A. Dirkzwager, C.M. Jonker
|
---|
22 | *
|
---|
23 | * @author Alex Dirkzwager
|
---|
24 | */
|
---|
25 | public class AC_MAC extends Multi_AcceptanceCondition {
|
---|
26 |
|
---|
27 | /**
|
---|
28 | * Empty constructor for the BOA framework.
|
---|
29 | */
|
---|
30 | public AC_MAC() {
|
---|
31 | }
|
---|
32 |
|
---|
33 | @Override
|
---|
34 | public void init(NegotiationSession negoSession, OfferingStrategy strat, OpponentModel opponentModel,
|
---|
35 | Map<String, Double> parameters) throws Exception {
|
---|
36 | this.negotiationSession = negoSession;
|
---|
37 | this.offeringStrategy = strat;
|
---|
38 | outcomes = new ArrayList<OutcomeTuple>();
|
---|
39 | ACList = new ArrayList<AcceptanceStrategy>();
|
---|
40 |
|
---|
41 | for (int a = 0; a < 2; a++) {
|
---|
42 | for (int b = 0; b < 3; b++) {
|
---|
43 | for (int c = 0; c < 3; c++) {
|
---|
44 | for (int d = 0; d < 4; d++) {
|
---|
45 | ACList.add(new AC_CombiV4(negotiationSession, offeringStrategy, 1.0 + 0.05 * a, 0.0 + 0.05 * b,
|
---|
46 | 1.0 + 0.05 * c, 0.0 + 0.05 * d, 0.95));
|
---|
47 | }
|
---|
48 | }
|
---|
49 | }
|
---|
50 | }
|
---|
51 | for (int e = 0; e < 5; e++) {
|
---|
52 | ACList.add(new AC_CombiMaxInWindow(negotiationSession, offeringStrategy, 0.95 + e * 0.01));
|
---|
53 | }
|
---|
54 | }
|
---|
55 | } |
---|