[75] | 1 | from typing import List
|
---|
| 2 |
|
---|
| 3 |
|
---|
| 4 | class 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
|
---|