我正在开始关于代理和智能对象交互的论文,我想知道Java代理框架JADE将来会发生什么.我发现代理,可编程行为,联合的整个概念以及它们在解决人工智能问题方面的帮助非常有趣,但它总是像Haskell一样是一个学术领域吗?JADE做了什么?
我在Java程序中运行JADE,即没有 java jade.Boot ...
.现在我想停止JADE系统,但我找不到好办法.我可以使用System.exit()退出整个程序,但这不是我想要做的.
我尝试了几个不同的东西,我成功地停止了我的代理行为,但是一些线程继续运行:AMS,DF,Web服务器,JADE Timer调度程序,几个Deliverer线程等.
这是我当前的关闭方法的样子:
@Override
public void shutdown() {
// TODO This does not work yet..
try {
for (WeakReference<AgentController> acr : agents) {
AgentController ac = acr.get(); // jade.wrapper.AgentController
if ( ac != null ) ac.kill();
}
container.kill(); // jade.wrapper.AgentContainer
Runtime.instance().shutDown(); // jade.core.Runtime
} catch ( StaleProxyException e ) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
我想这样做的原因是我的代理系统有一些JUnit测试.
任何想法如何实现?
来自mutli-agent系统的学术背景(使用JADE在Java中开发)我只是在外围意识到Actor并发范例.现在我已经开始探索Scala,我忍不住被Agent和Actor方法之间的相似性所打动.
我非常想在我的下一个研究项目中使用Scala的Actor库而不是简单地调用JADE库,因为这会迫使我更深入地掌握语言.此外,JADE专注于根据行为定义所有内容并不适合我的问题.
高度自主的演员和我失踪的特工之间是否存在根本不同的东西?
Akka演员和Jade特工的概念有什么实质性的区别吗?
据我所知,通过创建独立实体(具有系统逻辑块)可以通过在它们之间发送消息进行通信来实现系统分发.
还有其他因素使它们不同(如表现或预期目的)?
嗨我正在研究玉石下的论文
我使用ams来发现主容器上的所有jade代理,但是当我尝试制作一些代理容器时,我无法搜索所有容器以获取所有代理
请帮我修复我的代码,他们只发现当前容器的ams代理
我用来在容器下创建代理的代码.
Runtime rt= Runtime.instance();
Profile p=new ProfileImpl();
AgentContainer AgentContainere = rt.createMainContainer(p);
AgentController[] tab=new AgentController[N];
try {
int k=0;
for (int i = 0; i < N; i++) {
if (i % 100 == 0) {
p=new ProfileImpl();
AgentContainere = rt.createMainContainer(p);
}
if ((i+1)%(N/NbrC)==0) {
tab[i] = AgentContainere.createNewAgent(psoeudo+" - "+i, "Agents.KmeanAgent", new Object[]{K,NbrC,true,k});
k++;
}else
tab[i] = AgentContainere.createNewAgent(psoeudo+" - "+i, "Agents.KmeanAgent", new Object[]{K,NbrC,false,N});
}
for (AgentController tab1 : tab) {
tab1.start();
}
Run Code Online (Sandbox Code Playgroud)
我的代理人需要播放一个aclmessage:
try {
currentCluster = new …
Run Code Online (Sandbox Code Playgroud) 这是我在StackOverflow上的第一个问题(抱歉我的英文).我会尽力解释这个问题.
我有一个带有前景玉应用程序的swt应用程序,其中我有一个进度条来通知应用程序的持续时间.要刷新此进度条,我使用:
if(Display.getCurrent() != null) {
progress.run();
}
else {
sShell.getDisplay().syncExec(progress);
}
Run Code Online (Sandbox Code Playgroud)
进展是:
Runnable progress = new Runnable() {
public void run () {
if (progressBar.isDisposed ())
return;
int percentage= (numStep*100)/maxSteps;
progressBar.setSelection(percentage);
if (numStep >= maxSteps){
label1.setText("The simulation has been completed.");
button.setEnabled(true);
}
}
};
Run Code Online (Sandbox Code Playgroud)
我试着分析这个Runnable所花费的时间并且它是恒定的,但是当我分析这条线sSehll.getDisplay().syncExec(progress)
需要不同的时间(从0ms到XXXXms)
我读过这个
syncExec(Runnable runnable)导致当前线程(如果它与显示器的用户界面线程不同)等待runnable完成.
但是Runnable是时间常数......
有人可以指导我吗?我不明白为什么有时需要3分钟和其他时间.
谢谢
当我在ubuntu linux的终端中运行以下命令时,我也正确设置了ClassPath但是我没有成功.
java jade.Boot -gui
Run Code Online (Sandbox Code Playgroud)
我在终端窗口中遇到以下错误:
15 Jun, 2011 6:33:10 PM jade.core.Runtime beginContainer
INFO: ----------------------------------
This is JADE snapshot - revision 6357 of 2010/07/06 16:27:34
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
----------------------------------------
Retrieving CommandDispatcher for platform null
15 Jun, 2011 6:33:11 PM jade.imtp.leap.CommandDispatcher addICP
WARNING: Error adding ICP jade.imtp.leap.JICP.JICPPeer@ae506e[Error: Not possible to launch JADE on a remote host (127.0.1.1). Check the -host and -local-host options.].
15 Jun, 2011 6:33:11 PM jade.core.AgentContainerImpl joinPlatform
SEVERE: Communication failure while joining …
Run Code Online (Sandbox Code Playgroud) 我是JADE的新手,在加载代理时遇到了一些麻烦.
我创建了一个新的IntelliJ项目并在"Dependencies"中添加了"jade.jar"和"commons-codec-1.3.jar"(我使用的是JADE 4.1.1)并勾选了导出框(我也试过没有它们打勾).然后我将示例中的"HelloWorldAgent.java"添加到src中.我将运行配置设置为:
当我使用这个配置运行时,JADE的人确实启动但它找不到"HelloWorldAgent".输出是:
14-Feb-2012 21:43:08 jade.core.Runtime beginContainer
INFO: ----------------------------------
This is JADE 4.1.1 - revision 6532 of 2011/11/18 16:21:34
downloaded in Open Source, under LGPL restrictions,
at http://jade.tilab.com/
----------------------------------------
Retrieving CommandDispatcher for platform null
14-Feb-2012 21:43:08 jade.imtp.leap.LEAPIMTPManager initialize
INFO: Listening for intra-platform commands on address:
- jicp://192.168.1.66:1099
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.management.AgentManagement initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.messaging.Messaging initialized
14-Feb-2012 21:43:08 jade.core.BaseService init
INFO: Service jade.core.resource.ResourceManagement initialized
14-Feb-2012 21:43:08 jade.core.BaseService init …
Run Code Online (Sandbox Code Playgroud) 我是Java新手.它只有六个月,但我确实理解Java.
在阅读有关它的同时,我遇到了这些术语 - Groovy,Grails,Hibernate,JBoss,Jade等等.
我知道我可以单独阅读所有关于他们的内容.但有人能给我一个关于这里发生的事情的树梢视图吗? 这是什么?我们有Java,这些都是基于Java的?为什么这么多东西?我们为什么需要它们?
我只是JADE的初学者。我想知道如何创建除主容器之外的其他容器,并向其中添加多个代理。完整的创建代码将不胜感激。
谢谢!