source: ANL2022/super_agent/utils/negotiation_data.py

Last change on this file was 75, checked in by wouter, 21 months ago

#6 added ANAC2022 parties

File size: 1.7 KB
Line 
1from typing import List
2
3
4class NegotiationData:
5 tSplit: int = 40
6
7 def __init__(self, max_received_util=0.0, agreement_util=0.0, opponent_name='', opponent_util=0.0,
8 opponent_util_by_time=None):
9 self._max_received_util: float = max_received_util
10 self._agreement_util: float = agreement_util
11 self._opponent_name: str = opponent_name
12 self._opponent_util: float = opponent_util
13 if opponent_util_by_time is None:
14 self._opponent_util_by_time: List[float] = [0.0] * NegotiationData.tSplit
15 else:
16 self._opponent_util_by_time: List[float] = opponent_util_by_time
17
18 def add_agreement_util(self, agreement_util: float):
19 self._agreement_util = agreement_util
20 if agreement_util > self._max_received_util:
21 self._max_received_util = agreement_util
22
23 def add_bid_util(self, bid_util: float):
24 if bid_util > self._max_received_util:
25 self._max_received_util = bid_util
26
27 def update_opponent_offers(self, op_sum: List[float], op_counts: List[int]):
28 for i in range(NegotiationData.tSplit):
29 self._opponent_util_by_time[i] = op_sum[i] / op_counts[i] if op_counts[i] > 0 else 0.0
30
31 def set_opponent_name(self, opponent_name: str):
32 self._opponent_name = opponent_name
33
34 def set_opponent_util(self, opp_util: float):
35 self._opponent_util = opp_util
36
37 def get_opponent_name(self):
38 return self._opponent_name
39
40 def get_max_received_util(self):
41 return self._max_received_util
42
43 def get_agreement_util(self):
44 return self._agreement_util
45
46 def get_opponent_util(self):
47 return self._opponent_util
48
49 def get_opponent_util_by_time(self):
50 return self._opponent_util_by_time
Note: See TracBrowser for help on using the repository browser.