标号法(label-setting algorithm)求解带时间窗的最短路问题(ESPPRC)

以下文章来源于数据魔术师 ,作者邓发珩、周航

前言

哈罗大家好~!

想必大家在刚开始学习运筹学模型时,会觉得有些茫然不知所措吧?比如一大堆神奇的名词,各种各样的约束。。。反正我一开始是很懵的状态。

那么我们这次带来一个比较基础的带时间窗的最短路问题(Shortest Path Problem with Time Windows,简称SPPTW),使用一个基础的精确算法,即label-setting算法,来求解它。由于参考文献年代比较久远,这种方法现在已经有了很大的优化。当然,只有先从基础开始,一步步攀登才能不断解决更困难的问题。(说白了就是小编也还不会辣么难的问题啦)

话不多说,开始这篇文章吧!

欲下载本文相关的代码及算例,请关注公众号【程序猿声】,后台回复【SPPTWCPP】不包括【】即可

目录

一. SPPTW简介
二. Label-setting算法简介
三. 占优剪枝:dominate
四. 标记处理的顺序:字典排序
五. 算法流程与例子
六. C++源代码分享

SPPTW简介

先来简单介绍要处理的问题。

最短路问题(Shortest Path Problem,简称SPP)

在一个图中,每条边都有与它相关的数字,我们将这样的数字称为。对下图G=(N,A)而言,每条边都只有一个权表示花费(cost)(可以理解为该边的长度)。给定起点p,求出p到达其余各点花费最小的路径。

例如上面这张图。每条边上都有一个权用来表示花费。传统的最短路问题要求我们求出起点(例如v_0)到其余各点的最小成本的路径。比如v_0到v_4的最短路径是v_0→v_2→v_3→v_4,其总花费是19;而v_0→v_4这条路径,总花费为30,因此不是v_0到v_4的最短路径。

注意,在经典的最短路问题中,边上的权重一般为正值

在SPPTW中:

图中每条边有两个权重

  • 5
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值