赞
踩
如果: 那么 会有
(至少让能取到的最小值,满足条件? 至少存在一个?)
如果存在 ,那么约束是冗余条件(redundant) (利用x的取值范围,可以得到 π x 在松弛下的最小值,如果这个值依旧小于π0,那么约束没意义)
实际中,生成的不等式数量过大,必须保证LP松弛规模尽量小或者牺牲效率(sacrififice effiffifficiency)
两种方式:
;
目标:
所选边的代价最小
对于同一点,在两个不同方向流上经过了两次消 耗,每次消耗 qi
从初始点“0”到每个顾客点“i”的流量和,就是每个顾客点的容量之和
(从空载出发,只经过一个点)
相反,每个顾客点“i”到的初始点“0”的流量和,为M辆汽车 减掉每个顾客点的容量(满载汽车容量为“Q”,最后访问的顾客点容量为qi)
任何一条边会包含来回两个方向
两个不同方向的流量(负载)和 为车的最大负载容量“Q”
经过LP松弛,可以用变量进行改写:
目标:
相当于最小化 cij之和?
从第“n+1”个点(反向第一个点)出发时,此时每个流容量是“Q”
对于顾客节点“i”,只与两个其他节点相连,因此即便 访问所有节点V,也只有两组(4条流,且两两相加为“Q”)
初始化线性松弛实例 E- n22 - k4 (n=21, M =4, Q=60):
或者,同样地:
经过变换,将其中一个yij换成 Q- yji,化简可得,上式两边均乘Q,意义不变
加入上述约束后 ,结果变为
考虑集合 ,其中 (与外界相连的部分的总和)
并且,
于是,下面的约束成立:
(i , j 分别属于集合S及其补集)
左式表示,S与S补集之间的连接流数; 右式表示, 至少需要几辆车
要想覆盖S区域,一定要足够的车(容量)来满足流量要求,车进入S后,再离开,往返至少需要两条通路
设计启发式算法来求得初解:
第一个将由顾客点的子集随机产生
在加入142个 容量约束后,下界等于3750.00,并且此时的结果是整数解
如果结果是非整数,那么分支(branching)将用来解决最优性
分支规则如下:
选择一个集合,产生两个子问题:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。