public virtual void Enqueue(BWMessage message) { lock (MessageQueueLock) { messageQueue.Enqueue(message); } }
//他のエージェント(意見送信できるなにか)から意見をもらう OR センサーから値もらう public virtual void ReceiveOpinion(BWMessage message) { //一応、いっとく。DontReplyとかで使われる。 algorithm.ReceiveOpinion(message); //Queueに送信 messageQueue.Enqueue(message); }
//他のエージェントから意見をもらう OR センサーから値もらう public virtual void ReceiveOpinion(BWMessage message) { //自分のimportance levelを使う messageQueue.Enqueue(message); }
public override void ProcessMessage(BWMessage message) { //ここじゃだめかも。Receiveのところでもいっこ穴開けなきゃ行けないかもしれない。!!!!!!! if (message.From != null && message.From is AgentIO)//送信者がエージェントの場合のみ貯める { messageBox.Enqueue(message); } base.ProcessMessage(message); }
public override void ReceiveOpinion(BWMessage message) { /* */ if (message.From != null && message.From is Agent)//送信者がエージェントの場合のみ貯める { messageBox.Enqueue(message); } //*/ base.ReceiveOpinion(message); }
public override void ProcessMessage(BWMessage message) { //センサーからのメッセージならば、センサーの精度分信じる if (message.From != null && message.From.Accuracy != null) { UpdateOpinion(message.Subject, new BeliefUpdater(message.From.Accuracy.Value)); //センサーの精度をもとに新たなUpdaterを生成。Accuracy をdouble じゃなくてupdaterにしてもいいかもな } //それ以外は、自分のImportanceLevelを使う else { UpdateOpinion(message.Subject, candidateSelector.BeliefUpdater); } }
public virtual void ProcessMessage(BWMessage mes) { }
public override void ReceiveOpinion(BWMessage message) { base.ReceiveOpinion(message); receivedMessages.Enqueue(message); }
//ここだけ派生クラスで考えてね。 public abstract void ProcessMessage(BWMessage message);
//*** IOpinionSender *** //*** IAgent *** public virtual void ReceiveOpinion(BWMessage message) { }
public void Enqueue(BWMessage message) { messages.Enqueue(message); }
public override void ProcessMessage(BWMessage message) { //センサーからのメッセージならば、センサーの精度分信じる if (message.From != null && message.From.Accuracy != null) { UpdateOpinion(message.Subject, new BeliefUpdater( message.From.Accuracy.Value));//センサーの精度をもとに新たなUpdaterを生成。Accuracy をdouble じゃなくてupdaterにしてもいいかもな } //それ以外は、自分のImportanceLevelを使う else { UpdateOpinion(message.Subject, candidateSelector.BeliefUpdater); } }