gpt4 book ai didi

artificial-intelligence - Jason/AgentSpeak 试图同步代理

转载 作者:行者123 更新时间:2023-12-04 22:27:33 32 4
gpt4 key购买 nike

您好,我正在尝试为 8 个数字实现树排序。我创建了 15 个树节点代理和一个管理代理。我想要实现的是同步树中的叶子并将它们生成的数字发送到管理器节点。我的问题是在我的 for 循环中,叶子没有同步,所以经理正在等待下一个叶子,但那个叶子可能已经发送了它的编号。有没有办法同步这些叶子,以便经理等待每个叶子,然后打印出收到的数字?

以下是代理:

treeSort.mas2j

MAS treeSort {
infrastructure: Centralised
agents:
manager;
agent#15;
}

经理.asl:
!start.
+!start : true <-
for ( .range(I,8,15) ) {
.concat("agent",I,TempAgent);
.print("waiting from ",TempAgent);
.wait(recievedNum(Y,X) & Y=TempAgent);
.print("from ",Y," recvd ",X);
};
.println(" done").

代理.asl
!start.

@p1 +!start : .my_name(agent8) | .my_name(agent9)| .my_name(agent10)|.my_name(agent11)
| .my_name(agent12) | .my_name(agent13) | .my_name(agent14) |my_name(agent15) <- +myNum(math.round(math.random(100)));
?myNum(X);
+iam(leaf);
.my_name(Y);
.send(manager, tell, recievedNum(Y,X)).

@p2 +!start : .my_name(agent7) | .my_name(agent6)| .my_name(agent5) |.my_name(agent4)
| .my_name(agent3) | .my_name(agent2) <- +iam(node).

@p3 +!start : .my_name(agent1) <- +iam(root).

最佳答案

.concat 产生一个字符串(因此 TempAgent 是一个字符串),但 receivedNum 的第一个参数是一个原子,两者都没有统一。解决方案:

!start.
+!start : true <-
for ( .range(I,8,15) ) {
.concat("agent",I,TempAgent);
.print("waiting from ",TempAgent);
.term2string(YT,TempAgent);
.wait(recievedNum(YT,X));
.print("from ",YT," recvd ",X);
};
.println(" done").

关于artificial-intelligence - Jason/AgentSpeak 试图同步代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49896288/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com