欢迎来到天天文库
浏览记录
ID:15873670
大小:58.00 KB
页数:7页
时间:2018-08-06
《用元胞自动机研究蚂蚁行走的有关问题》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、用元胞自动机研究蚂蚁行走的有关问题基本思想:蚂蚁行走时,会沿路分泌费洛蒙,构成一条气味走廊.如果这条气味走廊隔一段时间都没有蚂蚁行走,费洛蒙就会慢慢蒸发掉. 本文模型:(0)、确定随机件速概率:p=(1)、确定性加速: (2)、确定性减速: (3)、随机减速: 以概率p(4)、位置更新: 其中:(5)、费洛蒙的产生:if()then(6)、费洛蒙的蒸发:if()模拟程序中的参数可自行调节:其中;不可调节P3的值一般较小,因为费洛蒙可以保存较长的时间.P3:00.00050.0050.050.51观察到奇异现象请仔细研究.随时在网上讨论
2、交流.模拟程序是用NaSch模型做的,也可以改成Noise-First模型,或SDNS模型,但在更改的过程中请注意一下,不是简单的交换一下次序.如果你能在这方面做些解析工作就更好.模拟程序://///////////////////////////////////基本图//////////////////////////////////////////////#include#include#include#include#defineL1000#define
3、Vmax1#defineP30.05#defineP10.25#defineP20.75inlineintmax(intx,inty)7{intz;z=x>y?x:y;returnz;}inlineintmin(intx,inty){intz;z=x4、array[i]=t;}}inlineintgap(intu,intw){intz;z=(w-u-1+L)%L;returnz;}voidrules(intu[],intw[],boolflag[],boolloop[],intk){inti,d;floatp,P0,g;inta[L],c[L];for(i=0;i5、at)rand()/(RAND_MAX);if(p<=P0)c[i]=max(c[i]-1,0);7a[i]=(u[i]+c[i])%L;}for(i=0;i6、idmain(){inti,n,rando;intx[L],v[L],tim;doubler,flow;boolS[L],B[L];srand(time(NULL));for(r=0.00;r<1.01;r=r+0.01){flow=0.00;n=int(r*L);for(i=0;i7、()%L;x[i]=rando;S[rando]=1;B[rando]=1;for(intj=0;j8、.05.txt",0x04,0);file2<
4、array[i]=t;}}inlineintgap(intu,intw){intz;z=(w-u-1+L)%L;returnz;}voidrules(intu[],intw[],boolflag[],boolloop[],intk){inti,d;floatp,P0,g;inta[L],c[L];for(i=0;i5、at)rand()/(RAND_MAX);if(p<=P0)c[i]=max(c[i]-1,0);7a[i]=(u[i]+c[i])%L;}for(i=0;i6、idmain(){inti,n,rando;intx[L],v[L],tim;doubler,flow;boolS[L],B[L];srand(time(NULL));for(r=0.00;r<1.01;r=r+0.01){flow=0.00;n=int(r*L);for(i=0;i7、()%L;x[i]=rando;S[rando]=1;B[rando]=1;for(intj=0;j8、.05.txt",0x04,0);file2<
5、at)rand()/(RAND_MAX);if(p<=P0)c[i]=max(c[i]-1,0);7a[i]=(u[i]+c[i])%L;}for(i=0;i6、idmain(){inti,n,rando;intx[L],v[L],tim;doubler,flow;boolS[L],B[L];srand(time(NULL));for(r=0.00;r<1.01;r=r+0.01){flow=0.00;n=int(r*L);for(i=0;i7、()%L;x[i]=rando;S[rando]=1;B[rando]=1;for(intj=0;j8、.05.txt",0x04,0);file2<
6、idmain(){inti,n,rando;intx[L],v[L],tim;doubler,flow;boolS[L],B[L];srand(time(NULL));for(r=0.00;r<1.01;r=r+0.01){flow=0.00;n=int(r*L);for(i=0;i7、()%L;x[i]=rando;S[rando]=1;B[rando]=1;for(intj=0;j8、.05.txt",0x04,0);file2<
7、()%L;x[i]=rando;S[rando]=1;B[rando]=1;for(intj=0;j
8、.05.txt",0x04,0);file2<
此文档下载收益归作者所有