Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Agentspeak中获取文本的值_Java_Artificial Intelligence_Agent - Fatal编程技术网

Java 如何在Agentspeak中获取文本的值

Java 如何在Agentspeak中获取文本的值,java,artificial-intelligence,agent,Java,Artificial Intelligence,Agent,A有3个工作代理,以书面形式使用agentspeak。其中两个有一个信念+数(someNumber),第三个试图计算这两个中的最小值。我现在看到的是中间代理从两个代理接收两个文本,但由于这两个都是文本,这里不能使用普通的math.min()操作: +!test: iam(root) <- .send("agent14", askOne, number(RE), L); .send("agent15", askOne, number(RE2), R); .print(

A有3个工作代理,以书面形式使用agentspeak。其中两个有一个信念+数(someNumber),第三个试图计算这两个中的最小值。我现在看到的是中间代理从两个代理接收两个文本,但由于这两个都是文本,这里不能使用普通的math.min()操作:

+!test: iam(root) <-
    .send("agent14", askOne, number(RE), L);
    .send("agent15", askOne, number(RE2), R);
    .print("Both got numbers: ", L, " ", R);
    +number(math.min(L, R));
    .print("DONE").

有没有办法比较这两个值?

问题的根源是askOne的答案:一个与用于提问的文本类型相同的文本。因此,L与编号(65)相结合,R与编号()相结合。由于它们是文字(而不是数字),因此
math.min
不能使用它们

解决方案是利用
的第四个参数中的统一。send

.send(“agent14”、askOne、数字(RE)、数字(L))
.send(“agent15”、askOne、number(RE2)、number(R))

现在L和R用数字和数学统一起来。min将起作用

[ArithFunctionTerm] Error in 'math.min(L,R)' (agent.asl:36) -- error in evaluate!
jason.JasonException: math.min is not implemented for type 'number(65)[source(agent14)]'.