资源简介
是基于遗传算法的最短路径选择 选用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
相关资源
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
川公网安备 51152502000135号
评论
共有 条评论