资源简介

是基于遗传算法的最短路径选择 选用c++语言进行编写程序

资源截图

代码片段和文件信息

#include “stdafx.h“
#include “stdio.h“     //标准输入输出库
#include “stdlib.h“    //标准函数库
#include “time.h“    
#include “iostream.h“
#include “iomanip.h“
#include “math.h“   //数学函数库

#define  MAX   1               //设定求最大适应值
#define  MIN   2
#define  CHROMLENGTH  13       //染色体长度,注意编码变化时,要随时修改
#define  MAXNUM       1000
#define  Cmax  30               //估计最大值
#define  Cmin  0                //估计最小值

int      PopSize = 150;              //每代最大个体数
int      FunctionMode = MIN;
double   m_fPc = 0.9;                   //交叉概率
double   m_fPm = 0.009;                 //变异概率
int      MaxGeneration = 20;            //最大世代数
int      d[150][13];                    //找到染色体并拷贝到这个数组中
int      s[150][13];
int      generation;                       //世代数
int      Best_Index;                      //最好个体下标
int      Worst_Index;                      //最坏个体下标

struct individual      //定义个体数据结构
{
double chrom[CHROMLENGTH+1];         //染色体
double value;                         //函数值
double fitness;                    //适应度  
};  

struct individual
          BestIndividual;              //当代最佳个体
struct individual
          WorstIndividual;
struct individual 
          Group[150];                 //种群

double Random(double Low double High)//本函数实现随机产生Low-High之间的实数 .意思:随机
{  
return((double)rand()/RAND_MAX)*(High-Low)+Low;
}

double Max(double a double b)
{
if(a>=b) return a;
else return b;
}


void GenerateInitialPopulation()//种群初始化,二进制编码初始化其中‘1‘表示路径顶点在最短路径中‘0‘则反之
{
int ij;
    
for(i = 0; i < PopSize; i++)
{
for(j = 1; j < CHROMLENGTH-2; j++)
{    
Group[i].chrom[j] = (int)(Random(110)<6)?‘\0‘:‘\1‘;
}
Group[i].chrom[CHROMLENGTH-1] = ‘\1‘;
Group[i].chrom[0] = ‘\1‘;
}
}

void CalculateobjectValue()  //计算个体值
{
int ijl;
  
int a[13][13]=
{{0     3    5     4     MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM}
{MAXNUM0     MAXNUMMAXNUM9     5     MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM}
{MAXNUMMAXNUM0     MAXNUM4     3     5     MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM}
{MAXNUMMAXNUMMAXNUM0     MAXNUM1     7     MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUM0     MAXNUMMAXNUM1     5     MAXNUMMAXNUMMAXNUMMAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     MAXNUM8     4     6     MAXNUMMAXNUMMAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     4     4     2     MAXNUMMAXNUMMAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     MAXNUMMAXNUM4     2     MAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     MAXNUM6     9     MAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     7     5     MAXNUM}
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     MAXNUM1     }
{MAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUMMAXNUM0     2     }
{MAXNUM

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       1220  2008-06-02 10:27  基于遗传算法的最短路径计算C++\Debug\StdAfx.obj

     文件      74752  2010-06-06 12:06  基于遗传算法的最短路径计算C++\Debug\vc60.idb

     文件      61440  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug\vc60.pdb

     文件     229500  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug\ycsf_zdlj.exe

     文件     245516  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug\ycsf_zdlj.ilk

     文件      25090  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug\ycsf_zdlj.obj

     文件     328792  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug\ycsf_zdlj.pch

     文件     533504  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug\ycsf_zdlj.pdb

     文件        667  2005-03-20 10:39  基于遗传算法的最短路径计算C++\StdAfx.h

     文件       9046  2008-06-02 11:45  基于遗传算法的最短路径计算C++\ycsf_zdlj.cpp

     文件       3437  2010-06-06 12:06  基于遗传算法的最短路径计算C++\ycsf_zdlj.dsp

     文件        526  2010-06-06 12:08  基于遗传算法的最短路径计算C++\ycsf_zdlj.dsw

     文件      58368  2010-06-06 12:08  基于遗传算法的最短路径计算C++\ycsf_zdlj.ncb

     文件      48640  2010-06-06 12:08  基于遗传算法的最短路径计算C++\ycsf_zdlj.opt

     文件        252  2010-06-06 12:06  基于遗传算法的最短路径计算C++\ycsf_zdlj.plg

     文件         64  2009-06-01 13:51  基于遗传算法的最短路径计算C++\说明.txt

     文件     293098  2008-06-02 11:20  基于遗传算法的最短路径计算C++\路径图.bmp

     目录          0  2010-05-17 16:21  基于遗传算法的最短路径计算C++\Debug

     目录          0  2010-06-06 12:08  基于遗传算法的最短路径计算C++

----------- ---------  ---------- -----  ----

              1913912                    19


评论

共有 条评论