资源简介
这是利用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#进销存系统
- C#winform实现钢琴7音
- C#生成和解析二维码及调用摄像头识别
- C#考勤管理系统完整源码
- C#窗体猜数小程序源码
- C#WinForm使用CefSharp内嵌
- zw_C#人力资源管理系统源代码.zip
- C#定坐标快捷截图工具及源代码可双屏
- C#手写识别程序源码(完整版)
- C#软件授权源码(亲测可用)
- Winform可视化打印模板设计(完整版)
- C#自定义控件--美化ComboBox源码(十分
- C#实现socket通讯
- ASP微信支付接口
- 特别全面的DbHelper
- unity旋转,缩放,移动控制脚本
- C#制作的小游戏
- C#图书馆管理系统
- C#编写的hex转bin工程
- 代码.zip(用C#语言完成简单的学生选
- C#窗体绘制动态曲线
- c#文档编辑器
- C#七参数坐标转换布尔莎七参数计算,
- TLSharp 在 C# 中,电报客户端库.zip
- ASP.NET中用healthMonitor属性用法
- C#实现EXCEL数据到TXT文档的转换
- C# 字符串多行显示/文本换行以textbo
- c# chart控件实时显示曲线
- 基于C#编写的剪刀石头布的小游戏
- 操作系统进程管理系统课程设计C#
评论
共有 条评论