资源简介
是基于遗传算法的最短路径选择 选用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
相关资源
- Visual C++游戏编程基础 PDF+源码
- 计算器 VC++
- 教学设备管理系统C++课程设计
- 定义一个Date 类,数据成员有year,m
- MFC 快速导出数据至ExcelSaveToExcel组件
- C++模拟退火算法求二维函数极值
- c++医院病房管理系统
- C++对任意阶的实对称矩阵求特征值和
- 图书管理系统C++实现
- 李龙澍 C++ 程序设计课件
- 学籍信息管理系统 C++ 代码
- 遗传算法求解中国旅行商问题C语言
- C++机房机位预约管理
- VC++Spin(旋转)控件用法
- SHA1加密算法的c++实现
- 导引头模型仿真
- ROBOOP --机器人正逆解C++版本开源开源
- C++实现日志库
- 基于IE浏览器的源代码
- C++音视频即时通讯源代码
- VC++摄像头视频采集及回放源程序
- 模拟退火遗传算法的C++程序
- c语言五子棋代码
- C++实现mqtt协议
- 21天学通C++第8版源代码
- c++利用遗传算法求解函数优化问题
- TXT文本里关键字检索
- 基于C++的边缘检测算法
- C++ USB HID
- vs2013 VC++项目里的Windows窗体应用程序
评论
共有 条评论