源码地址 https://secure.ecs.soton.ac.uk/notes/comp6203/genius/doc/
不会排版,建议复制到编辑器里看
AbstractNegotiationParty 抽象谈判组
.init(NegotiationInfo ) 初始化 传入谈判信息info
.estimateUtilitySpace 返回utilitySpace的估计值,默认是defaultUtilitySpaceEstimator()函数
.defaultUtilitySpaceEstimator(Domain domain, UserModel um)
.getDomain() Domain 获取域信息
.getUtility(Bid bid) double [0,1]的值,bid的utility
.getUtilityWithDiscount(Bid bid) 应该没用,算discount的
.getUtilitySpace() utility space
.getTimeline() TimeLineInfo 获取时间
.receiveMessage(AgentID sender,Action act) 接受信息(让另一个agent发出Action)
.getLastReceivedAction() 获取最新的action(就是receiveMessage的action)
.hasPreferenceUncertainty() 偏好是否不确定(是否有userModel)
.getProtocol() 协议类型
.negotiationEnded(Bid acceptedBid) 谈判结束,记录结果
.getData() 获取存入container中的数据
.getPartyId() 获取agent的id(???)
.generateRandomBid() 随机生成一个bid(文档里没写,源码里有)
.getRandomValue() 随机生成一个对应issue的值(文档里没写)
NegotiationInfo 谈判信息类
.getAgentID() String 获取ID
.getDeadline() Deadline 截止日期
.getPersistentData() PersistentDataType 之前的session
.getTimeline() TimeLineInfo 获取时间
.getUser() User 用户记录,偏好不确定
.getUserModel() UserModel 存储用户模型
.getUtilitySpace() AbstractUtilitySpace 如果有UserModel返回null,
UtilitySpace 将bids "map"到utilities的类
AbstractUtilitySpace implements UtilitySpace
discount 保留值随时间变化的底数
.getDomain() Domain 获取域信息
.setReservationValue(double newRV) 设置保留值
.getReservationValue() 获取保留值(如果有设置discount,用getReservationValueWithDiscount(TimeLineInfo).)
.getReservationValueWithDiscount(TimeLineInfo/double) 保留值随时间变化,默认计算方式是 util*pow(discount,time))
.isDiscounted() 是否设置了discount
.getDiscountFactor() discount数值
.getFileName() 文件名
.getMaxUtilityBid() 返回utilitySpace的最大utility的bid(暴力搜索)
.getMinUtilityBid() 最小utility对应bid
AdditiveUtilitySpace extend AbstractUtilitySpace (用于临时处理utility space)
AdditiveUtilitySpace() 空
AdditiveUtilitySpace(AdditiveUtilitySpace us) 直接复制
AdditiveUtilitySpace(Domain domain) 从domin生成
.getEvaluation(int pIssueIndex, Bid bid) 计算bid中一个issue的utility
.getEvaluator(int index) 获取一个issue的evaluator
.getIssue(int) 不推荐使用
.getUtility(Bid bid) 获取一个bid的utilitiy
.getWeight(int issueID) issue的权重
set类函数最好不要用
Evaluator 评估器,用于计算utility
.getWeight() 对应的权重
.getEvaluation(AdditiveUtilitySpace uspace, Bid bid, int index) 没有算权重的utility
EvaluatorDiscrete implements Evaluator
这里的结构是value:evaluator,对应于key:value,别搞混
离散值的评估器
.getEvalMax() 最大的evaluator
.getMaxValue() 最大的evaluator对应的value
.getMinValue() 最小的evaluator对应的value
.getValue(ValueDiscrete value) 传入value,返回对应的evaluator(真恶心,绕圈子)
.getValues() 所有的value集合
.getEvaluation(ValueDiscrete value) 传入value,获取归一化后的eval(相对于最大evaluator的百分比)
.getEvaluationNotNormalized(ValueDiscrete value) 未归一化的evaluator
Domain 域 记录谈判的物品信息
.getObjectives() List 所有信息
.getIssues() List 所有的issue,已排序
.getRandomBid() Bid 随机生成bid
.getNumberOfPossibleBids 可生成的bid总数
Issue 条目/问题 每条issue有index对应(number)
作为 List
.getNumber() issude的序号
public class MyAgent extends AbstractNegotiationParty
public void init(NegotiationInfo info) 初始化
public Action chooseAction(List
public void receiveMessage(AgentID sender, Action action) 获取对方的offer(对方action)
public String getDescription() 在genius软件里现实的策略描述
public AbstractUtilitySpace estimateUtilitySpace() 期望不确定时的估算方法
User
.elicitRank(Bid bid, UserModel userModel) 更新usermodel
.getElicitationCost() 获取成本数字
.getTotalBother() 已用的打扰成本
BidRaking 排序bid
BidRanking(java.util.List
.getMinimalBid() 最小bid
.getLowUtility() 最小bid对应的utility
.getHighUtility() 最大bid对应的utility
.getMaximalBid() 最大bid
.indexOf(Bid b) bid在list对应的序号
.getBidOrder() bid序列
.getSize() list大小
UserModel
.getBidRanking()
.getDomain()
AdditiveUtilitySpaceFactory
AdditiveUtilitySpaceFactory(Domain d)
.estimateUsingBidRanks(BidRanking r) 根据bid的排序简单计算utilitysapce