一步一步学Repast 第一章 概要

第一章 概要

REPAST —— 一个多Agent仿真平台  对于国内做AGENT研究的学子来说,是一个不错的开源框架。本人也是研究AGENT的,希望和大家多多探讨。废话少说,我们开始吧。

注明:这个教程是我从  A RePast Tutorial by John T. Murphy, University of Arizona & Arizona State University   翻译过来,再按照自己的理解所写,希望对大家有所帮助。


开发环境  

用RePast做AGENT模拟需要  repast包,大家可以从sourceforge上去得到,我用的是Repast J版本,后缀是.exe可执行程序。安装好之后,有 api lib src demos how-to等文件夹,当然还有 Repast.exe主程序,和repast.jar包。


开发工具用的是eclipse,jdk版本6.0 ,当然5.0就可以了,除了repast之外还要把lib文件夹里的包导入。classpath如下


     < classpathentry  kind ="lib"  path ="lib/repast.jar" />


     < classpathentry  kind ="lib"  path ="lib/asm.jar" />
    
< classpathentry  kind ="lib"  path ="lib/beanbowl.jar" />
    
< classpathentry  kind ="lib"  path ="lib/colt.jar" />
    
< classpathentry  kind ="lib"  path ="lib/commons-collections.jar" />
    
< classpathentry  kind ="lib"  path ="lib/commons-logging.jar" />
    
< classpathentry  kind ="lib"  path ="lib/geotools_repast.jar" />
    
< classpathentry  kind ="lib"  path ="lib/ibis.jar" />
    
< classpathentry  kind ="lib"  path ="lib/jakarta-poi.jar" />
    
< classpathentry  kind ="lib"  path ="lib/jep-2.24.jar" />
    
< classpathentry  kind ="lib"  path ="lib/jgap.jar" />
    
< classpathentry  kind ="lib"  path ="lib/jh.jar" />
    
< classpathentry  kind ="lib"  path ="lib/jmf.jar" />
    
< classpathentry  kind ="lib"  path ="lib/jode-1.1.2-pre1.jar" />
    
< classpathentry  kind ="lib"  path ="lib/joone.jar" />
    
< classpathentry  kind ="lib"  path ="lib/JTS.jar" />
    
< classpathentry  kind ="lib"  path ="lib/junit.jar" />
    
< classpathentry  kind ="lib"  path ="lib/log4j-1.2.8.jar" />
    
< classpathentry  kind ="lib"  path ="lib/OpenForecast-0.4.0.jar" />
    
< classpathentry  kind ="lib"  path ="lib/openmap.jar" />
    
< classpathentry  kind ="lib"  path ="lib/plot.jar" />
    
< classpathentry  kind ="lib"  path ="lib/ProActive.jar" />
    
< classpathentry  kind ="lib"  path ="lib/trove.jar" />
    
< classpathentry  kind ="lib"  path ="lib/violinstrings-1.0.2.jar" />

 


不太会用eclipse的朋友去网上找些相关资料吧。

接下来,让我们写一个可执行的模拟程序来入门吧。

1.新建一个包  demo。

2.在这个包下,新建一个类,CarryDropModel。

3.把下面代码拷进去。

package demo;

import uchicago.src.sim.engine.Schedule;
import uchicago.src.sim.engine.SimInit;
import uchicago.src.sim.engine.SimModelImpl;

public class CarryDropModel extends SimModelImpl {

  
private int numAgents;
  
private int worldXSize;
  
private int worldYSize;  

  
private Schedule schedule;

  
public String getName(){
    
return "Carry And Drop";  
  }


  
public void setup(){
  }


  
public void begin(){
    buildModel();
    buildSchedule();
    buildDisplay();
  }


  
public void buildModel(){
  }


  
public void buildSchedule(){
  }


  
public void buildDisplay(){
  }


  
public Schedule getSchedule(){
    
return schedule;
  }


  
public String[] getInitParam(){
    String[] initParams 
= "NumAgents" , "WorldXSize""WorldYSize" };
    
return initParams;
  }


  
public int getNumAgents(){
    
return numAgents;
  }


  
public void setNumAgents(int na){
    numAgents 
= na;
  }


  
public int getWorldXSize(){
    
return worldXSize;
  }


  
public void setWorldXSize(int wxs){
    worldXSize 
= wxs;
  }


  
public int getWorldYSize(){
    
return worldYSize;
  }


  
public void setWorldYSize(int wys){
    worldYSize 
= wys;
  }


  
public static void main(String[] args) {
    SimInit init 
= new SimInit();
    CarryDropModel model 
= new CarryDropModel();
    init.loadModel(model, 
""false);
  }


}


  private int numAgents;
  
private int worldXSize;
  
private int worldYSize;  

这3个值,是我们自己定制的参数,在模拟程序中叫做  Model Parameters   当然还有一个就是RePast Parameters。



上面几个方法系统会自动调用,是父类一些接口定义的,具体以后再说。



上面6个是 setter和getter方法,供模拟器调用。

这是RePast最简单的可执行的雏形,运行后界面如下:



一步一步学Repast 第一章 概要_第1张图片

任何事情九十步半百步,对于初学者,能做出hello world就算入门了,呵呵

更多repast资料查阅
repast-tool

你可能感兴趣的:(JAVA)