Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.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 梅森代理的step方法何时执行?_Java_Schedule_Agent_Mason - Fatal编程技术网

Java 梅森代理的step方法何时执行?

Java 梅森代理的step方法何时执行?,java,schedule,agent,mason,Java,Schedule,Agent,Mason,我正在做一个蚁群算法的实现。我应该使用mason将蚂蚁建模为一个多代理系统。我想我已经准备好了所有的工作,但是我的日程安排有问题。现在所有的蚂蚁都被添加到计划中,然后所有其他的都被执行,然后计划被处理。 我如何让10只蚂蚁完成它们的工作,然后更新一个数组,然后再让10只蚂蚁完成它们的工作(依此类推) 在将蚂蚁加入日程后,我尝试了一些忙碌的等待(真丢脸): while(!schedule.scheduleComplete()){ 但我认为这并没有起到预期的作用,因为只有在SimulationSt

我正在做一个蚁群算法的实现。我应该使用mason将蚂蚁建模为一个多代理系统。我想我已经准备好了所有的工作,但是我的日程安排有问题。现在所有的蚂蚁都被添加到计划中,然后所有其他的都被执行,然后计划被处理。 我如何让10只蚂蚁完成它们的工作,然后更新一个数组,然后再让10只蚂蚁完成它们的工作(依此类推)

在将蚂蚁加入日程后,我尝试了一些忙碌的等待(真丢脸):

while(!schedule.scheduleComplete()){
但我认为这并没有起到预期的作用,因为只有在SimulationState.start()方法完成后,才会执行调度

这就是我的模拟状态课程现在的样子。如果需要任何其他课程的信息,我也会与大家分享


公共类SimulationState扩展了SimState{
公共模拟状态(长种子){
超级(种子);
}
AntColonyOptimization AntColonyOptimization=新的AntColonyOptimization();
公共静态void main(字符串[]args){
doLoop(SimulationState.class,args);
系统出口(0);
}
@凌驾
公开作废开始(){
super.start();
List Ants=new ArrayList();
日程
对于(int c=0;c<2;c++){
对于(int i=0;i<10;i++){
添加(新的蚂蚁(antColonyOptimization.信息素));
}
对于(int i=0;i<10;i++){
schedule.scheduleOnce(Ants.get(i));
}
antColonyOptimization.decayPheromones();
}
System.out.println(schedule.scheduleplete());
}
@凌驾
公共空间整理(){
super.finish();
System.out.println(“模拟完成”);
}
}
也许我至少应该添加ant的步骤方法:

@覆盖
公共无效步骤(模拟状态状态){
SimulationState SimulationState=(SimulationState)状态;
芬杜洛特();
路线。打印路线(takenRoute);
计算站();
//if(antColonyOptimization.AntsCenter==9){
//添加信息素();
//antColonyOptimization.decayPheromones();
//        }
添加信息素();
System.out.println(“Ant完成了!”);
}
我希望添加并执行十个Ant,然后调用DecyPheromones()方法,然后再次执行相同的过程

相反,添加了10个蚂蚁,然后被10个新蚂蚁覆盖,decayPheromones方法在蚂蚁执行之前执行两次