贪心算法 动态规划算法 实验报告 程序

贪心算法 动态规划算法 实验报告 程序

ID:38685591

大小:73.31 KB

页数:15页

时间:2019-06-17

贪心算法 动态规划算法 实验报告 程序_第1页
贪心算法 动态规划算法 实验报告 程序_第2页
贪心算法 动态规划算法 实验报告 程序_第3页
贪心算法 动态规划算法 实验报告 程序_第4页
贪心算法 动态规划算法 实验报告 程序_第5页
资源描述:

《贪心算法 动态规划算法 实验报告 程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机算法课程实验报告每对结点间最短路径院系:计算机科学与技术班级:姓名:学号:U200814470Partone贪心法实现最短路径一、实验目的设计一个C程序,实现求解单源点最短路径问题。二、实验要求本实验要求输出最短路径值以及最短路径三、实验内容与原理单源点最短路径问题,即,已知一个n结点有向图G=(V,E)和边的权函数c(e),求由某指定结点V0到其他各个结点的最短路径,这里还假定所有的权都是正的。为了制定产生最短路径的贪心算法,对于这个问题应该想出一个多级解决办法和一种最优的量度标准。方法之一是逐条构造这些最短路径,可以使用迄今已生成的所有路径长度之

2、和作为一种量度,为了使这一量度达到最小,其单独的每一条路径都必须具有最小长度。使用这一量度标准时,假定已经构造了i条最短路径,则下面要构造的路径应该是下一条最短的最小长度路径。首先,生成从V0到所有其它结点的最短路径。然后生成一条到第二近结点的最短路径等等。四、程序流程图关键思想阐述:从v0开始,只通过S中的结点并且在S外的结点w初结束的最短路径可能会减小,即DIST(w)的值可能改变。如果长度改变了,则它必定是由一条从v0开始,经过u然后到w的跟段的路径所造成的。v0到y的路径以及u到w的路径上的中间结点应全部在S中。而且,v0到u的路径必定是这样一条最

3、短的路径,否则就不符合DIST(w)的定义英雌,可以得出结论,如果DIST(w)会减少,那是由于有一条从v0静u到w的更短的路,而从u到w的路径是边.这条路径的长度是DIST(U)+C(u,w)。分析得到程序流程图如下:五、算法及程序说明本算法使用贪心法设计,生成从v0到所有其它结点的最短路径的贪心方法就是按照路径长度的非降次序生成这些路径。六、源程序/*单源点最短路径*/#includeintsearch(int*,int,int,int*,int);main(){/*生成单源点最短路径的贪心算法*/intCOST[7][7]

4、={{0,20,50,30,200,200,200},{200,0,25,200,200,70,200},{200,200,0,40,25,50,200},{200,200,200,0,55,200,200},{200,200,200,200,0,10,70},{200,200,200,200,200,0,50},{200,200,200,200,200,200,0}};/*COST[i][j]表示成本邻接矩阵,200表示无穷大*/intfront_point[7]={0,0,0,0,0,0,0};/*用来存放各结点的最短路径上的前一结点*/intDIST

5、[7];/*DIST[i]表示第i个结点到源结点的路径长度*/intS[7];/*S中表示对其已经生成了最短路径的那些结点,S[i]=1表示第i个结点在S中,否则不在*/intu,num,i,w,j,k;for(k=0;k<7;k++){/*j对应到其他所有点的最短距离*/for(i=0;i<7;i++){front_point[i]=k;}for(i=0;i<7;i++){S[i]=0;/*初始状态时,所有结点均不在S中*/DIST[i]=COST[k][i];/*各结点到源结点的最短路径的初始长度为它们的直接距离*/}S[k]=1;/*将源结点放入S中

6、*/DIST[k]=0;/*自身到自身的路径为0*/for(num=2;num<=6;num++){/*加入五个结点到S中,最后一个不需要*/intmin=32767;for(w=0;w<=6;w++){/*找出不在S的结点中到源结点直接距离最短的结点*/if(!S[w]){if(DIST[w]

7、w])

8、*输出结果*/printf("v%d",search(front_

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。