• 大小: 9.22MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-08
  • 语言: 其他
  • 标签: 连续域  蚁群算法  

资源简介

这是一个连续域的蚁群算法,界面友好,便于操作,里面有逆波兰转换代码。

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论