ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:218.09KB ,
资源ID:7404479      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7404479.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Dijkstra算法求最短路径C#版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Dijkstra算法求最短路径C#版.docx

1、Dijkstra算法求最短路径C#版Dijkstra算法求最短路径(C#版) 行如下图的路径,(V0是中心):经过该算法后转化为下图using System;using System.Collections;using System.Text;namespace Greedy class Marx private int distance; private int row; private ArrayList ways = new ArrayList(); public Marx(int n,params int d) this.row = n; distance = new introw *

2、 row; for (int i = 0; i row * row; i+) this.distancei = di; for (int i = 0; i this.row; i+) /有row个点,则从中心到各点的路有row-1条 ArrayList w = new ArrayList(); int j = 0; w.Add(j); ways.Add(w); /- public void Find_way() ArrayList S = new ArrayList(1); ArrayList Sr = new ArrayList(1); int Indexof_distance=new in

3、tthis.row; for(int i=0; i row; i+) Indexof_distancei=i; S.Add( Indexof_distance0 ); for (int i = 0; i 0) /假定中心点的编号是0的贪吃法求路径 for (int i = 0; i row; i+) Di = this.distancei; int min_num = (int)Sr0; /距中心点的最小距离点编号 foreach (int s in Sr) if (Ds Dmin_num) min_num = s; /以上可以排序优化 S.Add(min_num); Sr.Remove(mi

4、n_num); /-把最新包含进来的点也加到路径中- (ArrayList)waysmin_num).Add(min_num); /- foreach (int element in Sr) int position = element * (this.row) + min_num; bool exchange = false; /有交换标志 if (Delement Dmin_num + this.distanceposition) Delement = Delement; else Delement = this.distanceposition + Dmin_num; exchange

5、= true; /修改距离矩阵 this.distanceelement = Delement; position = element * this.row; this.distanceposition = Delement; /修改路径- if (exchange = true) (ArrayList)wayselement).Clear(); foreach (int point in (ArrayList)waysmin_num) (ArrayList)wayselement).Add(point); -Count; /- public void Display() /-中心到各点的最短

6、路径- Console.WriteLine(中心到各点的最短路径如下: nn); int sum_d_index = 0; foreach(ArrayList mother in ways) foreach (int child in mother) Console.Write(V0 - , child+1); Console.WriteLine( 路径长 0,distancesum_d_index+); class MainEnterPoint static void Main(string args) int r; /列数 Console.Write(请输入点个数(含配送中心点): );

7、Int32.TryParse(Console.ReadLine(), out r); Console.WriteLine(各点分别为: n); for (int i = 0; i r; i+) Console.Write(V0 , i); Console.Write( 假定第一个点是配送中心); Console.WriteLine(nn输入各点之间的距离(无通径的用个大整数表示)n); int a = new intr * r; int da; for (int i = 0; i r; i+) for (int j = i + 1; j r; j+) Console.Write(V0 到 V1

8、的距离是: ,i,j); Int32.TryParse(Console.ReadLine(), out da); ai * r + j = da; Console.WriteLine(); /-完善距离矩阵(距离矩阵其实可以是个上三角矩阵, /-但为了处理方便,还是将其完整成一个对称阵)- for (int i = 0; i r; i+) for (int j = 0; j Ul+1,lPh)过程2:模型生成过程基于过程1的数据驱动,将NPh 转化成为“剩余装载量”极小化为目标,以Ph和FFh为配载约束且仅以关于车辆选择变量thl 为决策变量的0-1规划模型。(0-1)h :min St. F

9、Fh thl0,1,lPn 过程3:求解过程Step1:对(0-1)h求解,并基于“最优解”生成的“优选车辆集”Ph,计算优先级最低车辆的“剩余装载量”FlhStep2:基于需求矩阵Cih和满载要求,先按第三级优先准则,再按第四能优先准则,以数据驱动方式对“优先车辆集”Ph 中的车辆进行配载,生成xhlk 的“最优解”。(2)值得说明的n个问题:关于0-1规划的求解比较成熟,后面讨论对优先级最低车辆的剩余装载量的继续配载5基于对分搜索(0-1)h的求解过程:(如图所示)基于上述优化模型,NP问题已经转化为基于优先级循环调用折半查找(对分搜索)的过程,各类的实现已经编译成 .dll, 该程序中包括一个通用排序类,寻找最优上界的折半查找方法,和Dijkstra算法找配送中心到各配送点最短路径以形成配送路径网络的类.是测试代码:class MainEnterPoint public void Default_Input() int r; /列数

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1