- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法第二次大作业
TSP问题算法分析
021251 班王昱
一?问题描述
“TSP问题”常被称为“旅行商问题”,是指一名推销员要拜访多个地点时,如 何找到在拜访每个地点一次后再回到起点的最短路径。
TSP问题在本实验中的具体化:从A城市出发,到达每个城市并且-?个城市只允 许访问一次,最后乂冋到原來的城市,寻找一条最短距离的路径。
算法描述
2.1分支界限法
2. 1. 1算法思想
分支限界法常以广度优先或以最小耗费(最大效益)优先的方式 搜索问题的解空间树。
在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点 一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点 中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点 被加入活结点表屮。
此后,从活结点表中取下一结点成为当前扩展结点,并重复上述 结点扩展过程。这个过程一直持续到找到所需的解或活结点表为空吋 为止。
2.1.2算法设计说明
设求解最大化问题,解向量为X二(xl,…,xn), xi的取值范围为 Si, |Si|=rio在使用分支限界搜索问题的解空间树时,先根据限界 函数估算目标函数的界[down, up],然后从根结点出发,扩展根结点
的rl个孩子结点,从而构成分量xl的rl种可能的取值方式。
对这rl个孩子结点分别估算可能的目标函数bound(xl),其含义: 以该结点为根的子树所有可能的取值不人于bound(xl),即:
bound(xl) Abound(xl, x2) $???2 bound (xl,…,xn)
若某孩子结点的目标函数值超出目标函数的下界,则将该孩子结 点丢弃;否则,将该孩子结点保存在待处理结点表PT中。
再取PT表屮目标函数极大值结点作为扩展的根结点,重复上述。 直到一个叶子结点时的可行解X=(xl,-,xn),及口标函数值 bound(xl, ???, xn)。
2. 2 A*算法
算法思想
对于某一己到达的现行状态,如己到达图中的n节点,它是否可能成为最 佳路径上的一点的估价,应由估价函数f(n)值来决定。假设g*(n)函数值表示从 起始节点s到任意一个节点n的一条最佳路径上的实际耗散值°h*(n)函数值表 示从任意节点n到口标节点ti的最佳路径的实际耗散值。其屮ti是一个可能 的目标节点。f*(n)函数值表示从起始s,通过某一指定的n到达目标节点ti 的一条最佳路径的实际耗散值,并有f*(n)=g*(n)+h*(n)。
假设f函数是对f*函数的一种估计,并f (n)=g(n)+h(n),其中g函数 是对g*的估计,h函数是对h*的一种估计。f(n)包括两个部分,其中g(n) 表示到达n节点时,已付岀代价的估计;而h(n)表示从n节点到达口标节点ti 将要付出代价的佔计。
按f(n)=g*(n)+h*(n)的值來排序ff表的节点,f值小者优先。通常称这种算法 为A算法。在A算法的基础上,进一步限制h(n)函数,使得搜索图屮的每一个 节点n,能满足h(n)〈二h*(n)、称h函数取h*的下界。这种算法叫A*算法。 对ff里的每一个节点做评估函数F分为两部分G和H:
假设从A城市走到X城市,又走到Y城市,所以G可表示为:
G = A到X的距离+ X到Y的距离;
未走的的城市数二(总城市数+1) -目前城市的层数。为什得加1,因为最后得走
回初始城市,所以总路径的城市数为总城市数+1。
H =未走的城市数X目前的最小距离;
F = G + II ;
计算ff表里每个节点的F值,F值最小的节点作为活路径,把它加到bestpath 中。
三.算法代码
3.1分支界限法
#inelude stdio. h
ttinclude malloc- h
^define NoEdge 1000
struct MinIleapNode
{
int lcost; //子树费用的下界
int cc; 〃当前费用
int rcost; //x[s:n-l]中顶点最小出边费用和
int s; //根节点到当前节点的路径为x[0:s] int *x; 〃需要进一步搜索的顶点是//x[s+l:n-l] struct MinHeapNode *next;
};
int n; 〃图G的顶点数
int **a; 〃图G的邻接矩阵
//int NoEdge; //图G的无边标记
int co; 〃当前费用
int bestc; //当前最小费用
MinHeapNode* head = 0; /*堆头*/
MinHeapNode* lq = 0; /*堆第一个元素*/
MinlleapNode* fq = 0; /*堆最后一个元素*/
int DeleteMin(MinHeapNode*E)
{
MinHeapNode* tmp = N
您可能关注的文档
最近下载
- 普外科围手术期的人文关怀.pptx VIP
- AQT 3001-2021 加油(气)站油(气)储存罐体阻隔防爆技术要求.pdf
- 农业种植主张绿色环保培训.pptx VIP
- 2025重庆明德融资租赁有限公司招聘2人笔试参考题库附答案解析.docx VIP
- 《华为铁三角工作法》笔记.pptx VIP
- 消防设备投标方案【供货、货物】.doc VIP
- 5 Kynetec-全球农业生物市场洞察(按作物和国别),及聚焦澳大利亚市场(主要应用作物、主要产品和农户认知).pdf VIP
- 备战2026高考--电化学及其应用高考真题集.pdf
- 生物农药的研发与田间防治效果测试.pptx VIP
- 4 全球化视野下的作物健康与可持续发展:拜耳产品开发和德来品牌运营策略.pdf VIP
原创力文档


文档评论(0)