【离散优化】覆盖问题
覆盖问题
我们知道设施选址问题有两类基础问题,分别是中值问题和覆盖问题,下面要介绍的就是覆盖问题。
什么是覆盖问题?
覆盖问题是以所期望的服务范围满足大多数或者所有用户需求为前提,确定设施的位置。覆盖模型的思想是离服务设施较近的用户越多,则服务越好。
覆盖问题的分类
覆盖问题主要分为两类:
- 集合覆盖问题(Location Set Covering Problem,LSCP)
- 最大覆盖问题(Maximum Covering Location Problem,MCLP)
覆盖模型常用于哪些场景?
由于 P-中值模型常以总距离或者总时间作为测度指标,使得其并不适用于一些特殊的场景,比如消防中心和救护车等应急设施的区位选址问题,而覆盖模型则比较适用于这些场景。
如何定义覆盖?
如果需求点 \(i\) 到备选设施点 \(j\) 的距离或者时间小于临界值 \(D_c\),那么称需求点 \(i\) 被候选设施点 \(j\) 覆盖。、
下面介绍两类覆盖问题的数学模型表达
集合覆盖问题 (Location Set Covering Problem,LSCP)
目标函数:
约束:
其中,
- \(N_i = \{j:a_{ij}=1\}\) 是覆盖需求点 \(i\) 的候选设施点的集合,变量 \(a_{ij}\) 用来判断需求点 \(i\) 是否被候选设施点 \(j\) 覆盖,若是,则 \(a_{ij}=1\),否则 \(a_{ij}=0\)
- 目标函数旨在寻求设施总量最小
- 约束 \(c-1\) 保证每个需求点至少被一个设施服务范围所覆盖
- 约束 \(c-2\) 是决策变量的取值范围
在某些场景中,集合覆盖问题有以下两个缺点:
- 为了保证所有需求点均被覆盖而引入过多的设施,以至于超出预算
- 模型无法区分需求点的需求强度
现实生活中,常常由于预算或者资源的约束,有限的设施不能保证空间中所有需求点都被覆盖,此时,优先考虑需求强度大的需求点是十分必要的,下面要介绍的最大覆盖模型就是为了解决这个问题而被提出。
最大覆盖问题(Maximum Covering Location Problem,MCLP)
目标函数
约束
其中,
-
\(\omega_i\) 为需求点 \(i\) 的需求强度
-
\(z_i\) 用来判断需求点 \(i\) 是否被覆盖,若覆盖,则为 1,否则为 0
-
目标函数旨在寻求有限设施(\(p\) 个)覆盖的需求最多
-
约束 \(c-1\) 要求除非在备选设施点中已定位一个设施可以覆盖需求点 \(i\),否则需求点 \(i\) 将不被记作被覆盖
-
约束 \(c-2\) 限制设施的总数为 \(p\)
-
约束 \(c-3, c-4\) 是决策变量的取值范围
更多种类的选址问题
以上介绍的覆盖问题的基础模型框架,然而具体问题一般是较为复杂的设施选址问题,这就需要我们对基础模型设置不同的条件从而进行扩展,比如:
- 用于环境污染防治的邻避型设施选址问题
- 用于不同服务等级的层次型设置选址问题
- 用于商业竞争的竞争型设施选址问题
- 选址问题也开始考虑动态、不确定性等因素
总结
总结以上两类问题,我们可以发现最大覆盖模型和集合覆盖模型的主要区别在于对设施数量和需求强度的关注不同,前者一般适用于建设经费充足或者设施成本相同的情况,后者则适用于有设施成本约束的选址决策。
参考文献
本文内容主要从论文《设施选址问题中的基础模型与求解方法比较》总结而来。