source: ANL2022/learning_agent/NegotiationData.py

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

#6 added ANAC2022 parties

File size: 2.3 KB
Line 
1class NegotiationData:
2 """The class hold the negotiation data that is obtain during a negotiation
3 session.It will be saved to disk after the negotiation has finished.
4 this negotiation used to update the learning data of the agent.
5 """
6 __tSplit = 40
7
8 def __init__(self):
9 self.__maxReceivedUtil: float = 0.0
10 self.__agreementUtil: float = 0.0
11 self.__opponentName: str = None
12 self.__opponentUtil: float = 0.0
13 self.__opponentMaxReject: list = [0.0] * self.__tSplit
14 self.__opponentUtilByTime: list = [0.0] * self.__tSplit
15
16 def encode(self, paramList: list):
17 """ This function get deserialize json
18 """
19 self.__maxReceivedUtil = paramList[0]
20 self.__agreementUtil = paramList[1]
21 self.__opponentName = paramList[2]
22 self.__opponentUtil = paramList[3]
23 self.__opponentMaxReject = paramList[4]
24 self.__opponentUtilByTime = paramList[5]
25
26 def addAgreementUtil(self, agreementUtil: float):
27 self.__agreementUtil = agreementUtil
28 if (agreementUtil > self.__maxReceivedUtil):
29 self.__maxReceivedUtil = agreementUtil
30
31 def addBidUtil(self, bidUtil: float):
32 if (bidUtil > self.__maxReceivedUtil):
33 self.__maxReceivedUtil = bidUtil
34
35 def addRejectUtil(self, index: int, bidUtil: float):
36 if (bidUtil > self.__opponentMaxReject[index]):
37 self.__opponentMaxReject[index] = bidUtil
38
39 def updateOpponentOffers(self, opSum: list, opCounts: list):
40 for i in range(self.__tSplit):
41 self.__opponentUtilByTime[i] = opSum[i] / opCounts[i] if opCounts[i] > 0 else 0.0
42
43 def setOpponentName(self, opponentName: str):
44 self.__opponentName = opponentName
45
46 def setOpponentUtil(self, oppUtil: float):
47 self.__opponentUtil = oppUtil
48
49 def getOpponentName(self):
50 return self.__opponentName
51
52 def getMaxReceivedUtil(self):
53 return self.__maxReceivedUtil
54
55 def getAgreementUtil(self):
56 return self.__agreementUtil
57
58 def getOpponentUtil(self):
59 return self.__opponentUtil
60
61 def getOpponentUtilByTime(self):
62 return self.__opponentUtilByTime
63
64 def getOpponentMaxReject(self):
65 return self.__opponentMaxReject
Note: See TracBrowser for help on using the repository browser.