source: src/main/java/agents/anac/y2018/fullagent/AcceptanceStrategy_lgsmi.java@ 345

Last change on this file since 345 was 343, checked in by Tim Baarslag, 4 years ago

Fixed all errors in all 2018 agents

File size: 2.9 KB
Line 
1
2package agents.anac.y2018.fullagent;
3
4import java.util.HashMap;
5import java.util.HashSet;
6import java.util.Map;
7import java.util.Set;
8
9import genius.core.boaframework.AcceptanceStrategy;
10import genius.core.boaframework.Actions;
11import genius.core.boaframework.BOAparameter;
12import genius.core.boaframework.NegotiationSession;
13import genius.core.boaframework.OfferingStrategy;
14import genius.core.boaframework.OpponentModel;
15
16/**
17 * This Acceptance Condition will accept an opponent bid if the utility is
18 * higher than the bid the agent is ready to present
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 */
24
25public class AcceptanceStrategy_lgsmi extends AcceptanceStrategy {
26
27
28 private double a;
29 private double b;
30
31 /**
32 * Empty constructor for the BOA framework.
33 */
34
35 public AcceptanceStrategy_lgsmi() {
36 }
37
38// public AcceptanceStrategy_lgsmi(NegotiationSession negoSession, OfferingStrategy strat, double alpha, double beta) //{
39// this.negotiationSession = negoSession;
40// this.offeringStrategy = strat;
41// this.a = alpha;
42// this.b = beta;
43// }
44
45
46 @Override
47 public void init(NegotiationSession negoSession, OfferingStrategy strat, OpponentModel opponentModel,
48 Map<String, Double> parameters) throws Exception {
49 this.negotiationSession = negoSession;
50 this.offeringStrategy = strat;
51
52 if (parameters.get("a") != null || parameters.get("b") != null) {
53 a = parameters.get("a");
54 b = parameters.get("b");
55 } else {
56 a = 1;
57 b = 0;
58 }
59 }
60
61 @Override
62 public String printParameters() {
63 String str = "[a: " + a + " b: " + b + "]";
64 return str;
65 }
66
67 @Override
68 public Actions determineAcceptability() {
69 double nextMyBidUtil = offeringStrategy.getNextBid().getMyUndiscountedUtil();
70 double lastOpponentBidUtil = negotiationSession.getOpponentBidHistory().getLastBidDetails()
71 .getMyUndiscountedUtil();
72
73 if (a * lastOpponentBidUtil + b >= nextMyBidUtil) {
74 return Actions.Accept;
75 }
76 return Actions.Reject;
77 }
78
79 @Override
80
81 public Set<BOAparameter> getParameterSpec(){
82
83 Set<BOAparameter> set = new HashSet<BOAparameter>();
84 set.add(new BOAparameter("a", 1.0,
85 "Accept when the opponent's utility * a + b is greater than the utility of our current bid"));
86 set.add(new BOAparameter("b", 0.0,
87 "Accept when the opponent's utility * a + b is greater than the utility of our current bid"));
88
89
90 return set;
91 }
92
93
94
95 public Map<String, Double> getParameters() {
96 Map<String, Double> map = new HashMap<String, Double>();
97 //Accept when the opponent's utility * a + b is greater than the utility of our current bid
98 map.put("a", 1.0);
99 map.put("b", 0.0);
100 return map;
101 }
102
103 @Override
104 public String getName() {
105 return "AcceptanceStrategy_lgsmi";
106
107 }
108}
Note: See TracBrowser for help on using the repository browser.