anylogic 使用

anylogic 使用,第1张

anylogic 使用

1.智能体群的用法
有人会问:
请问怎么给生成的两个对象赋予属性,比如在分叉的时候一个进入sink1,另一个进入sink2?我想source生成不同的实体,而且各个实体都有不同的属性,请问应该怎么设置呢?
答:智能体群可以完美解决相关问题,智能体群里的属性可以单独设置,使其具有独立性,数据可以从数据库或Excel中读取


关于如何读取,后面再讲。



流程中将source改为enter.然后将智能体群中的数据放入流程图。



方法为:
for(int i=0;i<agents.size;i++){
      enter.take(agents.get(i));
}

2.数据库和Excel中的数据读取
2.1数据库读取
首先打开连接库,拖入数据库和查询,选中项目,添加jdbc的jar包,这个和java连接mysql数据库时用的jar是一样的。



在查询中的查询属性中写入你要查询的表名,数据填充在每一行添加选择智能体,参数/字段写你项目智能体群中的变量名,注意参数类型要和数据库中字段一致。


这样就可查询出相关的数据了。


当然也可以用SQL语句进行关联查询,这个就是写SQL语句,不再赘述。



如果你想要写入数据库数据,可以用main.database.modify("SQL语句");
2.2Excel读取
拖入一个Excel元素,选择文件路径,写一个读取文件的函数:、
for(int i=0;i<s.size();i++){
s.get(i).A=excelFile.getCellNumericValue("Staff!B"+(i+2));
s.get(i).P=excelFile.getCellNumericValue("Staff!C"+(i+2));
s.get(i).F1=excelFile.getCellNumericValue("Staff!D"+(i+2));
}
Staff为Excel中的Sheet名,B,C,D为所在列,(i+2)表示第一行有效数据。


s为智能体群名称。



当然s的长度可以用定值可以用变量来表示,如果你不知道数据的条数,就可以把智能体群的个数写成一个变量。



写一个函数agentSize:
return excelFile.getLastRowNum(tableName);
在智能体群的个数中写入:agentSize("Staff")-1;

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/588868.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-12
下一篇 2022-04-12

发表评论

登录后才能评论

评论列表(0条)

保存