设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 5565|回复: 3

[求助] Repast建模时,怎么在一个网格里面放多个对象?

  [复制链接]
发表于 2008-11-28 09:26:19 | 显示全部楼层 |阅读模式
5仿真币
最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。/ W. Y9 E) K6 i
private boolean findPotentialPartner(){
. C: g. g, z# L  boolean value = false;$ E, d1 o/ _3 `3 d( ^/ }
  + T& B# z$ `# n
  OrderedMulti2DGrid grid = space.getCurrentAgentSpace();
3 R& |! q0 h' A2 i( O  Iterator iterator = grid.getIteratorAt(x, y);3 \8 q7 h# }" @. {9 j
  SexAgent ag1 = null;  ; ~7 T% S& {4 G! m( u$ P
  SexAgent [] potenAgent = new SexAgent[20];
( C0 t! b) y" S- V  int goodNumber = 0;) [- K8 \  U5 }5 Z+ b* B
  while(iterator.hasNext()){1 z: t: z6 P0 d. c! G: Y1 U+ `5 O
   System.out.println("XXXXXXXXXXXXXXXXXXXXX");0 J' A6 D0 K" y" @7 ]. `
   ag1 = (SexAgent)iterator.next();! u* p$ {2 p, C; W. Y0 o
   if((ag1.sex == FEMALE)
4 P/ Y" S2 ^& ~     &&(!ag1.isCoupled())){
- C$ f, @6 |% r; |5 A    System.out.println("YYYYYYYYYYYYYYYYYYYY");+ E2 Z+ S( h' F' b! w
    potenAgent[goodNumber] = ag1;: `" C9 O! ]' A
    goodNumber ++;
. F3 n' X# b/ p, K% T7 X. v   }/ \/ D* `: y: Z
  }, c2 w" X# D  c5 Y2 W3 d; k2 j: G
  0 s5 K- S/ q& ]; T: q# `3 G: U
  if(goodNumber >0){
# s+ ?* _( E& ]5 a+ S     System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ");
+ z) Q2 {1 s( n  c; O" m; V0 m     Random rd1 = new Random();
4 Z" E/ p, W) C- c1 G     int select = rd1.nextInt(goodNumber);
( A% E# ?& u3 A& g     potentialParterner = potenAgent[select];
9 b- H5 j* [9 c* \( t     value = true;$ r2 J* L4 p. g, }+ K9 w# p6 e8 N
  }2 L: x; ]% F6 i% F3 h. x
    return value;# M+ x9 F0 Y+ S/ s
}
2 V' I' y( m$ J/ Z. q& O始终只能打印出XXXXXXXXXXXXXXXXXXXX,请各位帮帮忙。

发表于 2008-11-28 17:44:57 | 显示全部楼层
我想问下你这个打印的XXXXXX打印了几遍,还有你是否已经把agent添加进去了
发表于 2010-7-8 18:15:38 | 显示全部楼层
囧。。。这么久都没人回
发表于 2012-4-14 14:56:01 | 显示全部楼层
08年提出的问题到现在都没有人解决啊,真是够可以的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2024-5-17 14:25 , Processed in 0.011257 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表