source: src/main/java/negotiator/parties/MediatorHumanNegotiationParty.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.Vote;
11import genius.core.actions.Action;
12import genius.core.actions.InformVotingResult;
13import genius.core.actions.OfferForVoting;
14import genius.core.parties.AbstractNegotiationParty;
15import genius.core.parties.Mediator;
16import genius.core.parties.NegotiationInfo;
17import genius.core.utility.AdditiveUtilitySpace;
18
19/**
20 * modified version of W.Pasman's modified version of Dmytro's UIAgent
21 *
22 * @author David Festen
23 */
24public class MediatorHumanNegotiationParty extends AbstractNegotiationParty implements Mediator {
25 private Action opponentAction = null;
26 private EnterBidDialogAcceptance ui = null;
27 private Bid mostRecentAgreement = null;
28 private Bid mostRecentOffer = null;
29
30 /**
31 * One agent will be kept alive over multiple sessions. Init will be called
32 * at the start of each nego session.
33 */
34 @Override
35 public void init(NegotiationInfo info) {
36 super.init(info);
37 System.out.println("init UIAgent");
38
39 System.out.println("closing old dialog of ");
40 if (ui != null) {
41 ui.dispose();
42 ui = null;
43 }
44 System.out.println("old dialog closed. Trying to open new dialog. ");
45 try {
46 ui = new EnterBidDialogAcceptance(this, null, true, (AdditiveUtilitySpace) utilitySpace);
47 } catch (Exception e) {
48 System.out.println("Problem in UIAgent2.init:" + e.getMessage());
49 e.printStackTrace();
50 }
51 System.out.println("finished init of UIAgent2");
52
53 }
54
55 @Override
56 public void receiveMessage(AgentID sender, Action arguments) {
57 this.opponentAction = arguments;
58
59 if (opponentAction instanceof OfferForVoting) {
60 mostRecentOffer = ((OfferForVoting) opponentAction).getBid();
61 }
62
63 if (opponentAction instanceof InformVotingResult
64 && ((InformVotingResult) opponentAction).getVotingResult().equals(Vote.ACCEPT)) {
65 mostRecentAgreement = mostRecentOffer;
66 System.out.println("mostRecentAgreement = " + mostRecentAgreement);
67 JOptionPane.showMessageDialog(null, "The offer is accepted. You can continue to "
68 + "accept/reject new offers to find a better agreement.");
69 }
70 }
71
72 @Override
73 public Action chooseAction(List<Class<? extends Action>> possibleActions) {
74 return ui.askUserForAction(opponentAction, mostRecentOffer, mostRecentAgreement);
75 }
76
77 public SupportedNegotiationSetting getSupportedNegotiationSetting() {
78 return SupportedNegotiationSetting.getLinearUtilitySpaceInstance();
79 }
80
81 @Override
82 public String getDescription() {
83 return "Mediator GUI";
84 }
85}
Note: See TracBrowser for help on using the repository browser.