source: src/main/java/negotiator/parties/CounterOfferHumanNegotiationParty.java@ 126

Last change on this file since 126 was 126, checked in by Aron Hammond, 6 years ago

Added function to calculate opposition to MultiLateralAnalysis.java

Moved code to add RLBOA listeners to RLBOAUtils is misc package

Added input for strategyParameters to SessionPanel (gui)

!! close SessionInfo after tournament; this caused /tmp/ to fill up with GeniusData files

Our own package:

  • Added opponents and strategies that are mentioned in the report
  • Change class hierarchy, agents can now extend from RLBOAagentBilateral to inherit RL functionality.
  • States extend from AbstractState
File size: 2.6 KB
Line 
1package negotiator.parties;
2
3import java.util.List;
4
5import javax.swing.JOptionPane;
6
7import genius.core.AgentID;
8import genius.core.Bid;
9import genius.core.SupportedNegotiationSetting;
10import genius.core.actions.Accept;
11import genius.core.actions.Action;
12import genius.core.actions.EndNegotiation;
13import genius.core.actions.Offer;
14import genius.core.parties.AbstractNegotiationParty;
15import genius.core.parties.NegotiationInfo;
16import genius.core.utility.AdditiveUtilitySpace;
17
18/**
19 * @author W.Pasman, modified version of Dmytro's UIAgent
20 */
21public class CounterOfferHumanNegotiationParty
22 extends AbstractNegotiationParty {
23 private Action opponentAction = null;
24 private EnterBidDialog2 ui = null;
25 private Bid myPreviousBid = null;
26 private Bid mostRecentOffer;
27
28 /**
29 * One agent will be kept alive over multiple sessions. Init will be called
30 * at the start of each negotiation session.
31 */
32 @Override
33 public void init(NegotiationInfo info) {
34 super.init(info);
35 System.out.println("init UIAgent");
36
37 System.out.println("closing old dialog of ");
38 if (ui != null) {
39 ui.dispose();
40 ui = null;
41 }
42 }
43
44 @Override
45 public void receiveMessage(AgentID sender, Action arguments) {
46 this.opponentAction = arguments;
47
48 if (opponentAction instanceof Offer) {
49 mostRecentOffer = ((Offer) opponentAction).getBid();
50 }
51
52 if (opponentAction instanceof Accept && sender != this.getPartyId()) {
53 JOptionPane.showMessageDialog(null,
54 "" + sender + " accepted the last offer.");
55 }
56
57 if (opponentAction instanceof EndNegotiation) {
58 JOptionPane.showMessageDialog(null,
59 "" + sender + " canceled the negotiation session");
60 }
61 }
62
63 @Override
64 public Action chooseAction(List<Class<? extends Action>> possibleActions) {
65 if (ui != null) {
66 ui.dispose();
67 ui = null;
68 }
69 try {
70 ui = new EnterBidDialog2(this, getPartyId(), null, true,
71 (AdditiveUtilitySpace) utilitySpace,
72 possibleActions.contains(Accept.class) ? mostRecentOffer
73 : null);
74
75 } catch (Exception e) {
76 System.out.println("Problem in UIAgent2.init:" + e.getMessage());
77 e.printStackTrace();
78 }
79 Action action = ui.askUserForAction(opponentAction, myPreviousBid,
80 mostRecentOffer);
81 System.out.println("action = " + action);
82 if ((action != null) && (action instanceof Offer)) {
83 myPreviousBid = ((Offer) action).getBid();
84 }
85 return action;
86 }
87
88 public SupportedNegotiationSetting getSupportedNegotiationSetting() {
89 return SupportedNegotiationSetting.getLinearUtilitySpaceInstance();
90 }
91
92 @Override
93 public String getDescription() {
94 return "Simple Human user interface to place bids";
95 }
96}
Note: See TracBrowser for help on using the repository browser.