Ejemplo n.º 1
0
        /// <summary>
        ///     Send message in this environment
        /// </summary>
        /// <param name="message"></param>
        public void SendAgent(Message message)
        {
            if (message?.Receiver == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            if (AgentNetwork.ExistsAgent(message.Receiver))
            // Log is done within Agent.Post
            {
                AgentNetwork.GetAgent(message.Receiver).Post(message);
            }
            else
            {
                Messages.EnqueueLostMessage(message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Be influenced beliefId from agentAgentId
        /// </summary>
        /// <param name="beliefId"></param>
        /// <param name="beliefBits">from agentAgentId beliefBits</param>
        /// <param name="agentId"></param>
        /// <param name="beliefLevel"></param>
        public void BeInfluenced(IAgentId beliefId, Bits beliefBits, IAgentId agentId, BeliefLevel beliefLevel)
        {
            if (!On || beliefBits == null)
            {
                return;
            }

            // Learning From agent
            if (!_whitePages.ExistsAgent(agentId))
            {
                return;
            }

            var influentialness = _whitePages.GetAgent <CognitiveAgent>(agentId).InfluenceModel.Influentialness;

            // to Learner
            // Learner learn beliefId from agentAgentId with a weight of influenceability * influentialness
            _beliefsModel.Learn(beliefId, beliefBits, Influenceability * influentialness, beliefLevel);
        }