规划路径中的子问题——子圈消去的DFJ和MTZ约束

2023-11-03 05:59

本文主要是介绍规划路径中的子问题——子圈消去的DFJ和MTZ约束,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

规划路径中的子回路

转自知乎:https://zhuanlan.zhihu.com/p/159270139

TSP问题包含两个重要的约束。约束1:进入点i的次数与从点i出发的次数相等,且次数为1;约束2:消除子回路约束。

对于TSP问题,图1和图2所示路径都满足约束条件1,但只有图1是正确的路径(仅仅有一个回路,TSP问题的特点);而像图2将一个回路拆成了两个及两个以上的回路情况,将每个回路称为子回路,需要建立合适的约束条件来消除此种情况,即约束条件2。

VRP问题本身存在多条回路,但是对于每一辆车所服务的需求点,也不允许出现子回路现象。
图1
图2

目前,网络上消除子回路的方法有两种。方法一由Dantzig,Fulkerson and Johnson提出,称之为DFJ方法;方法二由Miller Tucker and Zemlin提出,称之为MTZ方法。

1、DFJ方法:

在这里插入图片描述

刚刚其中V表示顶点集合;S表示集合V的真子集(即集合S≠V),|S|表示集合S中顶点的数量。上式其含义是:对于任意顶点集合的真子集S来讲,顶点间连通的边数之和小于等于顶点数减1.若路径含有子回路,如图2所示,对于顶点集合V的真子集{1,2,4},其连通的边数之和等于3,顶点数也等于3,违背了上面的式子。从而证明了上式能有效避免子回路。

2、MTZ方法:

在这里插入图片描述
新增变量u,其值不具有任何物理意义(只谈大小)。若经过边(i,j),则xij=1,上式可化成:
在这里插入图片描述
即:
在这里插入图片描述

因此,上式可确保经过的节点的u值保持增长趋势。对于图2中顶点集合{1,2,4}就有u1<u2<u4<u1,产生了矛盾,因此,可有效避免出现子回路。

3、两种方法优劣比较:

对于方法一来讲,顶点集合的真子集包含了N种组合,从而约束条件的数量随着n的增加而成指数式增加。

对于方法二来讲,新增n个变量,约束条件增加n-1的平方个。

综上,规模越大,方法二的优势越明显。

这篇关于规划路径中的子问题——子圈消去的DFJ和MTZ约束的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/336085

相关文章

SQL中的外键约束

外键约束用于表示两张表中的指标连接关系。外键约束的作用主要有以下三点: 1.确保子表中的某个字段(外键)只能引用父表中的有效记录2.主表中的列被删除时,子表中的关联列也会被删除3.主表中的列更新时,子表中的关联元素也会被更新 子表中的元素指向主表 以下是一个外键约束的实例展示

好题——hdu2522(小数问题:求1/n的第一个循环节)

好喜欢这题,第一次做小数问题,一开始真心没思路,然后参考了网上的一些资料。 知识点***********************************无限不循环小数即无理数,不能写作两整数之比*****************************(一开始没想到,小学没学好) 此题1/n肯定是一个有限循环小数,了解这些后就能做此题了。 按照除法的机制,用一个函数表示出来就可以了,代码如下

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

hdu2544(单源最短路径)

模板题: //题意:求1到n的最短路径,模板题#include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#i

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

购买磨轮平衡机时应该注意什么问题和技巧

在购买磨轮平衡机时,您应该注意以下几个关键点: 平衡精度 平衡精度是衡量平衡机性能的核心指标,直接影响到不平衡量的检测与校准的准确性,从而决定磨轮的振动和噪声水平。高精度的平衡机能显著减少振动和噪声,提高磨削加工的精度。 转速范围 宽广的转速范围意味着平衡机能够处理更多种类的磨轮,适应不同的工作条件和规格要求。 振动监测能力 振动监测能力是评估平衡机性能的重要因素。通过传感器实时监

缓存雪崩问题

缓存雪崩是缓存中大量key失效后当高并发到来时导致大量请求到数据库,瞬间耗尽数据库资源,导致数据库无法使用。 解决方案: 1、使用锁进行控制 2、对同一类型信息的key设置不同的过期时间 3、缓存预热 1. 什么是缓存雪崩 缓存雪崩是指在短时间内,大量缓存数据同时失效,导致所有请求直接涌向数据库,瞬间增加数据库的负载压力,可能导致数据库性能下降甚至崩溃。这种情况往往发生在缓存中大量 k

poj 3159 (spfa差分约束最短路) poj 1201

poj 3159: 题意: 每次给出b比a多不多于c个糖果,求n最多比1多多少个糖果。 解析: 差分约束。 这个博客讲差分约束讲的比较好: http://www.cnblogs.com/void/archive/2011/08/26/2153928.html 套个spfa。 代码: #include <iostream>#include <cstdio>#i

poj 1734 (floyd求最小环并打印路径)

题意: 求图中的一个最小环,并打印路径。 解析: ans 保存最小环长度。 一直wa,最后终于找到原因,inf开太大爆掉了。。。 虽然0x3f3f3f3f用memset好用,但是还是有局限性。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#incl

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同