资源简介
这是一个连续域的蚁群算法,界面友好,便于操作,里面有逆波兰转换代码。
代码片段和文件信息
#include “StdAfx.h“
#include “.\ant.h“
CAnt::CAnt(void)
{
}
CAnt::~CAnt(void)
{
}
void CAnt::Init()
{
//清空蚂蚁走的路径
memset(m_nPath0sizeof(m_nPath));
//设置评估值为0
m_dbVal=0.0;
//已经去过的节点数量设置为0
m_nMovedNodeCount=0;
}
//选择下一个节点
//返回值 为节点编号
int CAnt::ChooseNextNode()
{
int nSelectedNode=-1; //返回结果,先暂时把其设置为-1
//==============================================================================
//计算所在列总的信息素
double dbTotal=0.0;
for (int i=0;i<=N_SPLIT_COUNT;i++)
{
dbTotal=dbTotal+ g_Trial[m_nMovedNodeCount][i];
}
//==============================================================================
//轮盘选择
double dbTemp=0.0;
if (dbTotal > 0.0) //总的信息素值大于0
{
dbTemp=rnd(0.0dbTotal); //取一个随机数
for (int i=0;i<=N_SPLIT_COUNT;i++)
{
dbTemp=dbTemp-g_Trial[m_nMovedNodeCount][i]; //这个操作相当于转动轮盘,如果对轮盘选择不熟悉,仔细考虑一下
if (dbTemp < 0.0) //轮盘停止转动,记下节点编号,直接跳出循环
{
nSelectedNode=i;
break;
}
}
}
//==============================================================================
//返回结果
return nSelectedNode;
}
void CAnt::Move()
{
int nCityNo=ChooseNextNode(); //选择下一个节点
m_nPath[m_nMovedNodeCount]=nCityNo; //蚂蚁走的路径
m_nMovedNodeCount++; //已经去过的节点数量
}
//搜索一次
void CAnt::Search()
{
Init();
while (m_nMovedNodeCount < N_X_COUNT)
{
Move();
}
Eval();
}
//评估蚂蚁求得的方程解
void CAnt::Eval()
{
int i=0;
m_dbVal=0.0;
//根据选择的路径,计算各个变量的值
double dbX[N_MAX_X_COUNT];
for (i=0;i {
dbX[i]=g_XAry[i].dbLow+(g_XAry[i].dbUpper-g_XAry[i].dbLow)*((double)m_nPath[i])/((double)N_SPLIT_COUNT);
}
//得到函数值
CString strX=““;
CString strXValue=““;
CString strExp=““;
strExp.Format(“%s“g_cFunExp);
for (i=N_X_COUNT;i>=1;i--)
{
strX.Format(“x%d“i);
strXValue.Format(“%.10f“dbX[i-1]);
strXValue.Replace(“-““!“);
strExp.Replace(strXstrXValue);
}
m_dbVal=g_fun.Cal(strExp);
//m_dbVal=func(dbX);
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2168 2011-10-20 19:54 antfunc\Ant.cpp
文件 448 2011-10-20 19:54 antfunc\Ant.h
文件 1540 2011-10-20 19:54 antfunc\antfunc.clw
文件 2077 2011-10-20 19:54 antfunc\antfunc.cpp
文件 454 2011-10-20 19:54 antfunc\antfunc.dep
文件 4580 2011-10-20 19:54 antfunc\antfunc.dsp
文件 520 2011-10-20 19:54 antfunc\antfunc.dsw
文件 1335 2011-10-20 19:54 antfunc\antfunc.h
文件 8352 2011-10-20 19:54 antfunc\antfunc.mak
文件 50688 2011-10-20 19:54 antfunc\antfunc.opt
文件 2396 2011-10-20 19:54 antfunc\antfunc.plg
文件 879 2011-10-20 19:54 antfunc\antfunc.sln
..A..H. 32256 2011-10-20 20:05 antfunc\antfunc.suo
文件 8900 2011-10-20 19:54 antfunc\antfunc.vcproj
文件 1821 2011-10-20 19:54 antfunc\Common.cpp
文件 6872 2011-10-20 19:54 antfunc\Fun.cpp
文件 2724 2011-10-20 19:54 antfunc\Fun.h
文件 3597 2011-10-20 19:54 antfunc\ReadMe.txt
文件 1078 2011-10-20 19:54 antfunc\res\antfunc.ico
文件 399 2011-10-20 19:54 antfunc\res\antfunc.rc2
文件 1093 2011-10-20 19:54 antfunc\resource.h
文件 209 2011-10-20 19:54 antfunc\StdAfx.cpp
文件 1073 2011-10-20 19:54 antfunc\StdAfx.h
文件 6018 2011-10-20 19:54 antfunc\Tsp.cpp
文件 708 2011-10-20 19:54 antfunc\Tsp.h
文件 8784 2011-10-20 20:01 antfunc\Release\BuildLog.htm
文件 28114944 2011-10-20 20:01 antfunc\Release\antfunc.pch
文件 527360 2011-10-20 20:01 antfunc\Release\vc90.idb
文件 16552 2011-10-20 19:54 antfunc\Release\StdAfx.obj
文件 25545 2011-10-20 20:01 antfunc\Release\Ant.obj
............此处省略22个文件信息
相关资源
- 智能优化算法蚁群算法、狼群算法、
- 蚁群算法在机器人路径规划中的应用
- 蚁群算法.ppt蚁群算法.ppt
- 蚁群算法-车辆路径问题
- 线程池实现蚁群算法的简单并行
- 数学建模方法:蚁群算法
- Ant Colony Optimization书籍-英文版中文版
- 蚁群算法原理及其应用+2005[1].pdf,4
- 蚁群算法原理和应用段海滨版.pdf
- 蚁群算法原理及其应用.pdf
- 蚁群算法原理及其应用(完整版.高清
- 蚁群算法在配电网重构中的应用 书籍
- 蚁群算法原理及应用_段海滨_高清
- 车辆路径问题蚁群算法
- 蚁群算法研究综述 发展历史和特点
- 基于蚁群算法的二维路径规划算法5
- 蚁群算法-TSP旅行商
- 基于蚁群算法的三维路径规划算法
- 蚁群算法的三维路径寻优
- 各种智能算法程序以求函数最值为例
- 多约束下多车场车辆路径问题的蚁群
- eil51.tsp.txt
- 蚁群算法路径规划
- 蚁群算法(得到最佳路径)
- 求解TSP量子蚁群算法
- 适应蚁群算法的最短路径搜索方法研
- 人工智能期末报告——浅谈蚁群算法
- 禁忌搜索算法禁忌算法+蚁群算法
- 蚁群算法路径规划蚁群算法路径规划
- 蚁群算法 Ant_clony_of_alogrithm
评论
共有 条评论