美文网首页
The asynchronous backtracking al

The asynchronous backtracking al

作者: 学习编程王同学 | 来源:发表于2019-12-15 23:12 被阅读0次

    Asynchronous backtracking (ABT) 算法假设所有智能体(agent)都有各自的优先级(priority)。网络中每个智能体都知道自己的“上级”和“下级”都是哪些agent。

    智能体知道他们自己的值,并且将这些值发送给自己的下一级智能体。所有的智能体都在等待消息,并回复消息。智能体每次更改自己的值后,都把自己的新值发送给自己的下一级智能体。每个智能体收到消息后,都要做出相应的反应。

    下面是ABT算法的伪代码:

    ABT算法伪代码
    • 收到Ok?信号。当智能体收到Ok?信号时,该智能体会将信号内容添加到自己的记录表agent_view中。并检查自己的值(check_agent_view)。
    • 收到Nogood信号。把Nogood信号内容添加到Nogood表中。如果发给自己Nogood信号的智能体不是自己的领居,就把该Nogood信号内容添加到记录表agent_view中,并将其作为自己的领居。检查自己的值(check_agent_view)。
    • 检查值过程(check_agent_view)。当智能体目前的值与记录表agent_view中的值无法一致(consistent)时,为自己选一个可以一致的值,并将新值已Ok?信号的方式发送到下级;如果无法找到这种值,就进入回溯(backtrack)过程。
    • 回溯过程(backtrack)。如果Nogood表是空的,那么广播通知其他智能体无解,然后终止程序;否则,从Nogood表中选择优先级最低的智能体,发送Nogood信号给它,将此Nogood从agent_view表中移除,检查自己的值(check_agent_view)。

    相关文章

      网友评论

          本文标题:The asynchronous backtracking al

          本文链接:https://www.haomeiwen.com/subject/kezlnctx.html