1 | class 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
|
---|