- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在尝试为 8 个数字实现树排序。我创建了 15 个树节点代理和一个管理代理。我想要实现的是同步树中的叶子并将它们生成的数字发送到管理器节点。我的问题是在我的 for 循环中,叶子没有同步,所以经理正在等待下一个叶子,但那个叶子可能已经发送了它的编号。有没有办法同步这些叶子,以便经理等待每个叶子,然后打印出收到的数字?
以下是代理:
treeSort.mas2j
MAS treeSort {
infrastructure: Centralised
agents:
manager;
agent#15;
}
!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").
!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/
我想做以下事情: 我有一个初始目标,将论证作为信念,我想将其反转,使信念的论证成为新的信念,而论证成为信念名称。 像这样的东西: //Agent asker in project Test.mas2j
A 有 3 个以代理语言书写的工作代理。其中两个有一个信念 +number(someNumber),第三个试图计算这两个中的最小值。我现在所拥有的是中间代理从两个代理接收两个文字,但由于两者都是文字,
您好,我正在尝试为 8 个数字实现树排序。我创建了 15 个树节点代理和一个管理代理。我想要实现的是同步树中的叶子并将它们生成的数字发送到管理器节点。我的问题是在我的 for 循环中,叶子没有同步,所
我知道如何定义一个原子的外部操作(必须有参数),例如“sitDown”,然后在执行操作方法内的环境 Java 文件中手动对其进行编码。 但是,如果我定义一个外部操作,有没有办法让它接受参数?假设我想定
我是 Jason(Agentspeak) 的初学者,在 Jason 中使用多代理模拟从事社会模拟项目。我刚开始使用 Jason,所以是这种声明式语言的初学者。我想模拟随时间变化的人的行为。 // th
我正在尝试通过以下方式将计划从 Agent1 发送到 Agent2: @c2[atomic] +giveRule[source(A)]: planGiven(B) 2){ -+res(num1(X,
我是一名优秀的程序员,十分优秀!