public void Initialize(NegotiationDomain domain, SideConfig strategyConfig, String opponentSide, INegotiationClient client) { Client = client; client.OfferReceivedEvent += client_OfferReceivedEvent; client.NegotiationEndedEvent += client_NegotiationEndedEvent; }
public override void Initialize(Negotiation.Models.NegotiationDomain domain, Negotiation.Models.SideConfig strategyConfig, string opponentSide, Negotiation.Models.INegotiationClient client) { base.Initialize(domain, strategyConfig, opponentSide, client); m_BestCombinedUtilityOffers = new Dictionary <string, OfferUtility>(BestCombinedUtilityOffers); m_BestFScoreUtilityOffers = new Dictionary <string, OfferUtility>(BestFScoreUtilityOffers); m_typeUtilities = Domain.OwnerVariantDict[OpponentSide].Keys.ToDictionary(k => k, k => 0.0); }
private static void LoadDomain() { NegotiationDomain domain = new NegotiationDomain() { RoundLength = RoundLength, NumberOfRounds = TotalRounds }; XmlDocument doc = new XmlDocument(); doc.LoadXml(GameDomain.DomainXML); domain.Extract(doc.ChildNodes[0]); Domain = domain; }
public virtual void Initialize(NegotiationDomain domain, SideConfig strategyConfig, String opponentSide, INegotiationClient client) { Domain = domain; StrategyConfig = strategyConfig; Client = client; OpponentSide = opponentSide; Client.NegotiationStartedEvent += OnNegotiationStartedEvent; Client.NegotiationEndedEvent += OnNegotiationEndedEvent; Client.OfferReceivedEvent += OnOfferReceivedEventInner; Client.TimePassedEvent += OnTimePassedEventInner; Client.OpponentAcceptedOfferEvent += OnOpponentAcceptedOfferEvent; CalculateOffers(); }
public override void Initialize(Negotiation.Models.NegotiationDomain domain, Negotiation.Models.SideConfig strategyConfig, string opponentSide, Negotiation.Models.INegotiationClient client) { base.Initialize(domain, strategyConfig, opponentSide, client); m_BestCombinedUtilityOffers = new Dictionary <string, OfferUtility>(BestCombinedUtilityOffers); m_BestFScoreUtilityOffers = new Dictionary <string, OfferUtility>(BestFScoreUtilityOffers); var opponentTypes = domain.OwnerVariantDict[opponentSide].Keys; m_typeProbabilites = opponentTypes.ToDictionary(k => k, x => (1.0 / opponentTypes.Count)); var utilitySums = opponentTypes.ToDictionary(k => k, k => AllOptions.Values.Sum(x => x.UtilityDataDict[k].OpponentUtility)); m_offerProbabilities = AllOptions.ToDictionary(kvp => kvp.Key, kvp => kvp.Value.UtilityDataDict.ToDictionary(kvp2 => kvp2.Key, kvp2 => kvp2.Value.OpponentUtility / utilitySums[kvp2.Key])); }
public NegotiationEngine( String negotiationId, NegotiationDomain domain, PreNegotiationQuestionnaireViewModel userData, SideConfig humanConfig, AiConfig aiConfig) { NegotiationId = negotiationId; Domain = domain; HumanChannel = new LocalNegotiationChannel(); AiChannel = new LocalNegotiationChannel(); HumanConfig = humanConfig; AiConfig = aiConfig; Status = new NegotiationStatus() { RemainingTime = TimeSpan.FromSeconds(domain.NumberOfRounds * domain.RoundLength.TotalSeconds), HumanStatus = new SideStatus() { Offer = EmptyOffer() }, AiStatus = new SideStatus() { Offer = EmptyOffer() }, LastAcceptedOffer = EmptyOffer() }; Actions = new List <NegotiationActionModel>(); String strategyName; IAgentStrategy strat = NegotiationManager.GetStrategy(aiConfig.StrategyId, out strategyName); strat.Initialize(domain, aiConfig, humanConfig.Side, AiChannel); TimeSpan defaultInterval = TimeSpan.FromSeconds(1); UpdateInterval = defaultInterval < strat.MinimumUpdateTime ? defaultInterval : strat.MinimumUpdateTime; StrategyName = strategyName; RegisterChannel(HumanChannel); RegisterChannel(AiChannel); }