设为首页收藏本站

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

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10673|回复: 3

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

  [复制链接]
发表于 2008-11-28 09:26:19 | 显示全部楼层 |阅读模式
5仿真币
最近做流行病模型,需要在一个网格里面放多个Agent,我查了一下API,使用OrderedMultiGrid类来构造,里面提供了一些putObjectAt(int, int, index);之类的东西。似乎可以用。但是当我编程调试的时候发现在同一位置只能获取一个对象。这是很令人纳闷的事情。我想问一下Repast有提供什么好方法处理吗,不仅要能存进去,还要能方便的拿出来。1 `+ I" K  A" C
private boolean findPotentialPartner(){* N7 m9 @0 g5 {
  boolean value = false;
+ h9 c/ K8 \- `    }. d+ |0 {2 y  a- q& [
  OrderedMulti2DGrid grid = space.getCurrentAgentSpace();
; J0 u+ `2 ]% p  m' o% e  Iterator iterator = grid.getIteratorAt(x, y);9 \1 A8 m# g% x. `+ M
  SexAgent ag1 = null;  
7 N4 @5 g* A: U+ N) }* _  SexAgent [] potenAgent = new SexAgent[20];$ ^) E: U3 k9 K8 K( Y: S# ?6 d
  int goodNumber = 0;; A! B& `- |3 s1 n) C8 ~. S9 K
  while(iterator.hasNext()){; V0 u& z5 \7 R6 ?! c" n
   System.out.println("XXXXXXXXXXXXXXXXXXXXX");7 c6 Q4 T& _* S
   ag1 = (SexAgent)iterator.next();5 ?- p# n; B7 r
   if((ag1.sex == FEMALE)   l( ]$ U4 k& ~! ]( F
     &&(!ag1.isCoupled())){
/ e. [% w+ P  m0 D/ G1 e    System.out.println("YYYYYYYYYYYYYYYYYYYY");
; C! t$ R3 B, m& ^) I# a    potenAgent[goodNumber] = ag1;
# C+ U( m$ r( G1 l! i    goodNumber ++;
2 W' q; a7 z+ p* U# |   }
  L, n6 [! O, k# C8 b# }  }
: E# J  w5 _& I* u5 K8 f6 l  9 K/ B2 g7 Z) K7 e6 d
  if(goodNumber >0){
% I3 |$ r' {" g! ?1 L     System.out.println("ZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"); - Q' l/ w# _  g* R) z
     Random rd1 = new Random();+ I1 \; d1 k: U" v
     int select = rd1.nextInt(goodNumber);
5 m# `% q4 q. E1 s$ t6 s     potentialParterner = potenAgent[select];
8 x, s' d4 O& U  ]- J$ [     value = true;
" P7 p9 l" s0 p  }# w9 W1 |- p2 O! P+ `' o
    return value;
  c1 Z$ L: m' S! V9 g+ u- K }5 D6 l5 V; @* t( X& q% M
始终只能打印出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, 2026-8-2 19:54 , Processed in 0.020847 second(s), 12 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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