source: src/main/java/agents/anac/y2019/authenticagent/opponentmodeling/OpponentModelingByNNearestBids.java@ 204

Last change on this file since 204 was 204, checked in by Katsuhide Fujita, 6 years ago

Fixed errors of ANAC2019 agents

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1package agents.anac.y2019.authenticagent.opponentmodeling;
2
3import agents.anac.y2019.authenticagent.dataclasses.LastReceivedOffer;
4import agents.anac.y2019.authenticagent.serviceclasses.SafeBidUtilityService;
5import genius.core.Bid;
6import genius.core.uncertainty.UserModel;
7import genius.core.utility.UtilitySpace;
8
9import java.util.ArrayList;
10import java.util.HashMap;
11
12public class OpponentModelingByNNearestBids extends AbstractOpponentModeling {
13 private HashMap<String, NNearestBidsForOpponentParty> opponentParties;
14
15 public OpponentModelingByNNearestBids(UtilitySpace us, UserModel um){
16 super(us, um);
17 opponentParties = new HashMap<>();
18 }
19
20 @Override
21 public ArrayList<Bid> getRecommendedBids(){
22 if(LastReceivedOffer.bid == null)
23 return new ArrayList<>();
24 double utility = SafeBidUtilityService.getUtility(LastReceivedOffer.bid);
25 ArrayList<Bid> result;
26 NNearestBidsForOpponentParty NNearestBidsForOpponentParty = opponentParties.get(LastReceivedOffer.agentId);
27 if(NNearestBidsForOpponentParty == null)
28 {
29 return new ArrayList<>();
30 }
31 NNearestBidsForOpponentParty.insertReceivedBid(utility, LastReceivedOffer.bid);
32 result = NNearestBidsForOpponentParty.findBidsNear(utility);
33 return result;
34 }
35
36 @Override
37 public void addNewOpponentIfNotExists(String agentId){
38 if(opponentParties.containsKey(agentId))
39 return;
40 NNearestBidsForOpponentParty NNearestBidsForOpponentParty = new NNearestBidsForOpponentParty();
41 opponentParties.put(agentId, NNearestBidsForOpponentParty);
42 double utility = SafeBidUtilityService.getUtility(LastReceivedOffer.bid);
43 opponentParties.get(agentId).insertReceivedBid(utility,LastReceivedOffer.bid);
44 }
45}
Note: See TracBrowser for help on using the repository browser.