亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ant.cpp

?? 螞蟻算法又稱蟻群算法
?? CPP
字號:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include "a.h"

void main()
{ 
 int i,j;
  srand((unsigned)time( NULL ));
  network();                             // generate a random network
  
a:printf("Set the source node:");        // set source node and destation node 
  scanf("%d",&sour_n);
  printf("\n");
  printf("Set the destation node:");
  scanf("%d",&dest_n);
  printf("\n");
  if(sour_n>=n||dest_n>=n||sour_n==dest_n)
	 {printf("Input error!\nInput again please:\n");
      goto a;
	 }
  
  if(dv[dest_n]>Jw)                       //  pass over the problem of delay jitter  
     {printf("system error!/n");
	  return;
     }
  
  for(i=1;i<n;i++)                       // delete the link whose bandwidth is not enough 
	  for(j=1;j<n;j++)
         if(bw[i][j]<Bw)
			{link[i][j]=0;
             cost[i][j]=0;
             ldl[i][j]=0;
             bw[i][j]=0;
			}

   for(i=1;i<n;i++)                       // initialization  of pheromone 
	  for(j=1;j<n;j++)
         if(link[i][j]==1)
            phero[i][j]=constant;
         else  phero[i][j]=0;
   printf("The initialization  of pheromone are:\n");
   for(i=1;i<n;i++)
		{for(j=1;j<n;j++)
		     printf("%-7.4f  ",phero[i][j]);
	     printf("\n");
		}
   
   rout();
}



void network()              // randomly generate a network
{int i,j,m;

 n=rand()%(N-7)+8;          // set the number of node range from  8 to N
 printf("The number of nodes is%4d\n",n-1);
 for(i=1;i<n;i++)
	{ndl[i]=rand()%2+1;    //the delay of nodes range from 1 to 2
     dv[i]=rand()%4;       //the delay variration of nodes range from 0 to 3
     m=rand()%6+1;          
     lr[i]=exp(m);         //the loss rate of nodes range from 1e-1 to 1e-6
	}
 printf("The delay of nodes are:\n");
 for(i=1;i<n;i++)
	 printf("%4d",ndl[i]);
 printf("\n");
 printf("The delay variration of nodes are:\n");
 for(i=1;i<n;i++)
	 printf("%4d",dv[i]);
 printf("\n"); 
 printf("The loss rate of nodes are:\n");
 for(i=1;i<n;i++)
	 printf("%7.6f  ",lr[i]);
 printf("\n");
 
 for(i=1;i<n;i++)
	 for(j=i;j<n;j++)
         if(i!=j) 
			{link[i][j]=rand()%2;
		     cost[i][j]=(rand()%3+1)*link[i][j];   //the cost of links range from 1 to 3
			 bw[i][j]=(rand()%8+8)*10*link[i][j];  //the bandwidth of links range from 80 to 150
             ldl[i][j]=(rand()%3+1)*link[i][j];    //the delay of links range from 1 to 3
			}
         else link[i][j]=0;
 for(i=1;i<n;i++)
	 for(j=1;j<i;j++)
		{link[i][j]=link[j][i];
         cost[i][j]=cost[j][i];
		 bw[i][j]=bw[j][i];
		 ldl[i][j]=ldl[j][i];
		}
 printf("\nThe links of network are:\n");
 for(i=1;i<n;i++)
	{for(j=1;j<n;j++)
        printf("%6d",link[i][j]);
	    printf("\n");
	}
 printf("\nThe cost of links are:\n");
 for(i=1;i<n;i++)
	{for(j=1;j<n;j++)
        printf("%6d",cost[i][j]);
	 printf("\n");
	}
 printf("\nThe bandwidth of links are:\n");
 for(i=1;i<n;i++)
	{for(j=1;j<n;j++)
        printf("%6d",bw[i][j]);
	 printf("\n");
	}
 printf("\nThe delay of links are:\n");
 for(i=1;i<n;i++)
	{for(j=1;j<n;j++)
        printf("%6d",ldl[i][j]);
	 printf("\n");
	}
} 
double exp(int x)             // exp -- index is x
{int i;
 double a=1.0;
 for(i=0;i<x;i++)
     a=(double)(a*0.1);
 return(a); 
}		 



void rout()
{ int i,j,k,t,a,b;
  int current_n=0;
  int next_n=0;

  int temp[N][N]={0};
  double m[N]={0};
  double p[N]={0};
  double sum_ph=0;
  double F[M+1]={0};
  
  
  for(t=0;t<=T;t++)
	{for(i=1;i<=M;i++)
b:		{path[i][1]=sour_n;
		 current_n=sour_n;
		 
		 for(j=1;j<n;j++)                            // intitalize optional path 
		    for(k=1;k<n;k++)
				temp[j][k]=link[j][k];

			
		  for(j=2;j<n;j++)
			{		
			  for(k=1;k<n;k++)
				{
			     if(temp[current_n][k]==1)
				   m[k]=phero[current_n][k];    // adjust of pheromone 
				 else m[k]=0;
				
				}
             sum_ph=SUM(m);                      // sum of pheromone 
			 if(sum_ph==0) 
				{ 
				 goto b;
				}                               // if no path,how to deal with 
			 for(k=1;k<n;k++)
				{p[k]=m[k]/sum_ph;          	// select propability 
				}  
			 next_n=CHOOSE(p);
			 for(k=1;k<n;k++)                   // avoid cycle
				{temp[current_n][k]=0;
			     temp[k][current_n]=0;
				}
             current_n=next_n;
             path[i][j]=current_n;
			 if(path[i][j]==dest_n) break;
		    }
	
		path[i][j]=dest_n;
		j++;

        for(;j<n;j++)
			 path[i][j]=0;       	                  // if no situable path,send another ant 
	    COST_F(path[i]);
        
		if((path[i][n-1]==0||path[i][n-1]==dest_n)&&s1>0&&s2>0)
			{ F[i]=COST_F(path[i]);
			   for(j=1;j<n-1;j++)
					{a=path[i][j];
					 b=path[i][j+1];
					 if(a!=0&&b!=0)
					    phero[a][b]=L_UPDATE(phero[a][b]);        // local update 
					}
			 }
        else i--; 
	}
   
  
  
    for(i=1;i<n;i++)
		for(j=1;j<n;j++)
			 phero[i][j]=phero[i][j]*(1-a1);

	i=OPTIMIZATION(F);
	for(j=1;j<n-1;j++)
		{ a=path[i][j];
		  b=path[i][j+1];
		  if(a!=0&&b!=0)
			  phero[a][b]=G_UPDATE(phero[a][b],F[i]);         // global update
		}

    printf("The pheromone of every paths are:\n");
         for(i=1;i<n;i++)
			{for(j=1;j<n;j++)
			    printf("%-7.4f  ",phero[i][j]);
		     printf("\n");
			}
		 getchar();
	     printf("The number %d is:\n",t+1);	
	     for(i=1;i<=M;i++)
			{for(j=1;j<n;j++)
				 if(path[i][j]!=0)
					{printf("%d",path[i][j]);
					 printf("---");
					}
				else break;
		     printf("\n");
			}
		 getchar();
	}
}
double SUM(double x[N])       // double array summing 
{ int i;
  double t=0;
  for(i=1;i<n;i++)
      t=x[i]+t;
  return(t);
}
int CHOOSE(double x[N])      // choose the next node 
{ int k=1,s;
  double e,d,r[N];
  d=0.0;
  r[0]=0.0;
  do
	 {d=d+x[k];
	  r[k]=d;
	  k++;
	 }while (k<n);
  
  e=(double)rand()/(double)RAND_MAX;
  for(k=1;k<n;k++)
	  if(r[k-1]<e&&e<=r[k]&&x[k]!=0)
		{s=k;
		 break;
		}
	  else s=1;
	  return(s);
}
double L_UPDATE(double x)     // local update  
{
  x=(1-a0)*x+a0*cons;
  return(x);
}
double G_UPDATE(double x, double z)    // global update 
{
  x=x+a1*z;
  return(x);
}
double COST_F(int x[N])           // cost function 
{ int i,a,b;
  int cos=0;
  int z1=0;
  int z2l=0;
  int z2n=0;
  double s=1.0;
  double z3=1.0;
  for(i=1;i<n-1;i++)
	  { a=x[i];
		 b=x[i+1];
		 if(a!=0&&b!=0)
			{cos=cos+cost[a][b];
			 z1=z1+bw[a][b]-Bw;
			 z2l=z2l+ldl[a][b];
			}
	  }
  for(i=2;i<n;i++)
	  { a=x[i];
		 if(a!=dest_n)
			{ z2n=z2n+ndl[a];
			  z3=z3*(1-lr[a]);
			}
	  }
  s1=Dw-z2l-z2n;         
  s2=z3-(1-Lw);          
  s=cos/(A*z1+B*s1+C*s2);
  return(s);
}
int OPTIMIZATION(double x[M+1])   // select the shortest path 
{ int i,j=0;
  double y;
  y=x[1];
  for(i=1;i<=M;i++)
	 if(y<=x[i])
		{y=x[i];
	   	 j=i;
		}
  return(j);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丁香亚洲综合激情啪啪综合| 日本道精品一区二区三区| 久久午夜老司机| 欧美一级理论片| 99久久免费精品高清特色大片| 亚洲成人自拍网| 亚洲精品乱码久久久久久久久| 国产福利视频一区二区三区| 视频一区二区不卡| 国产精品每日更新| 亚洲激情av在线| 亚洲另类一区二区| 欧美国产激情一区二区三区蜜月| 国产片一区二区| 6080yy午夜一二三区久久| 7777精品伊人久久久大香线蕉最新版 | 狠狠色丁香久久婷婷综合丁香| 天天综合日日夜夜精品| 国产精品久久久久毛片软件| 中文一区二区在线观看| 久久亚洲综合色一区二区三区| 欧美人牲a欧美精品| 日韩欧美一区在线| 欧美日本不卡视频| 国产色产综合色产在线视频| 日韩欧美你懂的| 在线区一区二视频| 91精品国产欧美一区二区| 色哟哟欧美精品| 欧美一级久久久久久久大片| 精品一区二区在线观看| 日本欧美加勒比视频| 自拍偷在线精品自拍偷无码专区| 成人免费视频在线观看| 国产精品久久久久aaaa| 亚洲不卡一区二区三区| 亚洲国产日韩av| 美女在线视频一区| 日韩av中文字幕一区二区三区| 一区二区三区91| 久久国产欧美日韩精品| 国产精品一二三四| 欧美视频你懂的| 欧美高清精品3d| 一本大道久久a久久综合婷婷| 99久久久精品| 在线观看免费成人| 国产午夜精品在线观看| 久久久久久久国产精品影院| 日韩综合小视频| 久久99精品国产91久久来源| 伊人性伊人情综合网| 国产一区二区三区在线观看精品 | 精品视频一区 二区 三区| 欧美少妇性性性| 日韩欧美一二三| 91精品国产综合久久久久久| 精品国产乱码久久| 中文字幕一区av| 日韩亚洲欧美高清| 日本一区二区三区久久久久久久久不 | 亚洲综合另类小说| 欧美在线观看视频在线| 欧美精品乱码久久久久久按摩| 91精品国产91久久久久久最新毛片 | 色视频一区二区| 日韩一二三区视频| 国产欧美日韩卡一| 国产一区在线看| 91啪亚洲精品| 色婷婷国产精品综合在线观看| 欧美一区二区美女| 国产亚洲一区二区三区四区| 国产乱人伦偷精品视频免下载 | 国产一区二区三区四区在线观看| 97精品视频在线观看自产线路二| 国产日韩欧美在线一区| 亚洲一区在线视频观看| 婷婷丁香久久五月婷婷| 欧美色电影在线| 国产精品污污网站在线观看| 国产福利91精品| 欧美一区欧美二区| 免费成人在线观看| 色婷婷综合久久久中文一区二区| 国产精品久久久久久久久久免费看 | 国产精品美女久久久久久久久| 久久91精品久久久久久秒播 | 成人网男人的天堂| 欧美精品一区二区三区蜜臀| 亚洲影视在线观看| 欧美午夜片在线看| 国产精品美日韩| 亚洲一区二区三区视频在线播放| 在线免费观看日本一区| 久久久久久99久久久精品网站| 国产成人午夜精品5599| 日韩女优电影在线观看| 国产成人免费视频一区| 欧美一级二级三级乱码| 国模一区二区三区白浆| 欧美日韩aaa| 亚洲一区二区五区| 97超碰欧美中文字幕| 欧美国产激情二区三区| 午夜影院久久久| 成人在线视频首页| 国产日韩欧美精品综合| 亚洲一级电影视频| 在线观看av一区| 综合色中文字幕| 制服丝袜国产精品| 日韩精品一级中文字幕精品视频免费观看 | 欧美综合色免费| 亚洲狠狠丁香婷婷综合久久久| 91女厕偷拍女厕偷拍高清| 亚洲视频在线一区二区| 91免费看片在线观看| 美女视频免费一区| 精品久久人人做人人爱| 色综合久久精品| 一区二区三区鲁丝不卡| xvideos.蜜桃一区二区| 国产激情一区二区三区桃花岛亚洲| 日韩理论片一区二区| 色国产综合视频| 国产日产欧美一区二区三区| 欧美人牲a欧美精品| 美国精品在线观看| 亚洲欧美日韩国产综合在线 | 亚洲欧美日本在线| 日韩欧美www| 国产91精品久久久久久久网曝门 | 色综合久久久久综合| 九色综合狠狠综合久久| 久久久五月婷婷| 欧美一区二区大片| 国产丶欧美丶日本不卡视频| 日本中文在线一区| 久久久久九九视频| www.综合网.com| 国产成人亚洲综合a∨猫咪| 国产精品麻豆视频| 久久久综合视频| 色综合天天狠狠| 不卡一区二区三区四区| 亚洲妇女屁股眼交7| 亚洲乱码国产乱码精品精小说 | 蜜桃av一区二区在线观看| 夜夜揉揉日日人人青青一国产精品 | 91麻豆精品国产| 国产成人午夜视频| 国产成人综合亚洲网站| 一区二区三区在线观看欧美 | 精品嫩草影院久久| 91小视频免费观看| 精品一区二区三区免费毛片爱| 中文字幕一区二区不卡| 18涩涩午夜精品.www| 精品少妇一区二区三区免费观看| 97久久超碰国产精品电影| 国产一区二三区| 午夜激情一区二区| 国产欧美一区二区精品性| 欧美久久久久久蜜桃| 精品一区二区在线免费观看| 亚洲成人在线免费| 欧美极品xxx| 精品日韩99亚洲| 亚洲国产日韩在线一区模特| 亚洲国产aⅴ成人精品无吗| 欧美精品在线视频| 欧美mv日韩mv国产网站app| 欧美日韩国产一二三| 日韩精品一区二区三区在线 | 亚洲欧美日韩精品久久久久| 一区二区三区久久久| 亚洲人成亚洲人成在线观看图片 | 91精品国产入口| 久久久99免费| 日韩欧美123| 久久女同精品一区二区| 日韩欧美国产系列| 97久久久精品综合88久久| 欧美三区免费完整视频在线观看| 成人亚洲一区二区一| 欧美日韩一区不卡| 欧美无人高清视频在线观看| 日韩免费观看高清完整版| 欧美一区二区三区免费大片 | 国产午夜精品福利| 亚洲三级久久久| 亚洲一区二区欧美日韩 | 日韩av电影一区| 成人丝袜视频网| 欧美日韩国产另类一区| 久久丝袜美腿综合| 欧美电视剧在线看免费| 亚洲免费伊人电影| 亚洲精品中文在线|