资源简介
这是利用C#开发的蚁群算法求解TSP问题,算法已经成功的实现,是蚁群算法的初学者很好的资料

代码片段和文件信息
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
ColdRolling cr = new ColdRolling();//定义对象
string cn = ConfigurationManager.ConnectionStrings[“OraConnString“].ToString();//定义数据库连接字符串
protected void Page_Load(object sender EventArgs e)
{
}
protected void opt_Click(object sender EventArgs e)
{
/*-------------------------------------------第一步变量初始化--------------------------------------------------*/
int n = 31;//定义城市个数
int m = 31;//定义蚂蚁个数
//double[] coordinate = new double[31 2];//定义一个N个城市的坐标数组
int NC = 0;
int NC_max =10;//定义一个最大迭代的次数
int alpha = 1;//信息启发式因子,表征信息素重要程度的参数
int beta = 5;//期望启发式因子,表征启发式因子重要程度的参数
double Rho = 0.1;//信息素蒸发的参数
int Q = 100;//信息素增加强度系数
int[] Ant = new int[m];
double[] Tau = new double[n n];//定义信息素矩阵
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
Tau[i j] = 1;
}
}
int[][] Tabu;//定义禁忌表,存储并记录路径的生成
int[][] R_best;//各代最佳路线
R_best = new int[NC_max][];
for (int i = 0; i < NC_max; i++)
{
R_best[i] = new int[n];
}
double[] L_best = new double[NC_max 1];//各代最佳路线的长度
double[] L_aver = new double[NC_max 1];//各代最佳路线的平均长度
double[] coordinate = new double[n + 1 2];
string select = “select * from \“tsp31\““;
DataSet ds = cr.GetDataSet(select “distance“);
int k = 1;
foreach (DataRow myrow in ds.Tables[“distance“].Rows)
{
coordinate[k 0] = Convert.ToDouble(myrow[“COL001“]);
coordinate[k 1] = Convert.ToDouble(myrow[“COL002“]);
k++;
}
/*--------------------------------------------------大循环----------------------------------------------------*/
while (NC < NC_max)
{
/*-----------------------第二步将m只蚂蚁随机放在n个城市中的m个---------------------------------*/
int M = 32;
int A = 13;
int C = 5;
int[] S = new int[M + 1];
S[0] = 1;
Ant[0] = S[0];
Tabu = new int[m][];
for (int i = 0; i < m; i++)
{
Tabu[i] = new int[n];
}
Tabu[0][0] = Ant[0];
for (int i = 0; i < 10; i++)
{
S[i + 1] = (A * S[i] + C) % M;
Ant[i + 1] = S[i + 1];
Tabu[i + 1][0] = Ant[i + 1];
}
S[11] = 0;
for (int i = 11; i < 31; i++)
{
S[i + 1] = (A * S[i]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1498 2009-06-04 15:20 ACA\ACA.sln
..A..H. 8704 2009-06-07 18:23 ACA\ACA.suo
文件 683 2009-06-04 15:20 ACA\ant.aspx
文件 13561 2009-04-06 17:04 ACA\ant.aspx.cs
文件 194 2009-03-16 15:20 ACA\App_Code\AdjustStructs.cs
文件 1216 2008-05-20 20:35 ACA\App_Code\ColdRolling.cs
文件 1858 2009-03-18 14:47 ACA\Web.config
目录 0 2009-06-09 22:08 ACA\App_Code
目录 0 2009-06-09 22:08 ACA\App_Data
目录 0 2009-06-09 22:08 ACA\Bin
目录 0 2009-06-09 22:08 ACA
----------- --------- ---------- ----- ----
27714 11
- 上一篇:C#winform实现钢琴7音
- 下一篇:C#进销存系统
相关资源
- C# OCR数字识别实例,采用TessnetOcr,对
- 考试管理系统 - C#源码
- Asp.net学生信息管理系统源码
- asp.net C#购物车源代码
- C#实时网络流量监听源码
- ASP.NET实验室预约管理系统
- C#百度地图源码
- Visual C#.2010从入门到精通配套源程序
- C# 软件版本更新
- C#屏幕软键盘源码,可以自己定制界面
- 020ASP.NET车辆综合管理系统.zip
- 智慧城市 智能家居 C# 源代码
- c#获取mobile手机的IMEI和IMSI
- C#实现简单QQ聊天程序
- 操作系统 模拟的 欢迎下载 C#版
- C#写的计算机性能监控程序
- 用C#实现邮件发送,有点类似于outlo
- MVC model层代码生成器 C#
- c#小型图书销售系统
- C# Socket Server Client 通讯应用 完整的服
- c# winform 自动登录 百度账户 源代码
- C#编写的16进制计算器
- C#TCP通信协议
- C# 数据表(Dataset)操作 合并 查询一
- C#语音识别系统speechsdk51,SpeechSDK51L
- 数据库备份还原工具1.0 C# 源码
-
[免费]xm
lDocument 节点遍历C# - EQ2008LEDc#开发实例
- DirectX.Capturec# winform 操作摄像头录像附
- c# 实现的最大最小距离方法对鸢尾花
评论
共有 条评论