基于MATLAB的设施选址0-1规划的实现
2015-10-11姚益新
姚益新
(华北电力大学,北京 102206)
基于MATLAB的设施选址0-1规划的实现
姚益新
(华北电力大学,北京 102206)
设施选址问题由于涉及的因素纷繁复杂,造成其求解的难度也一直很大。针对这个问题,本文使用matlab软件对采用0-1规划的设施选址问题进行了解答,并进行了实例的论证,结果表明在使用matlab对0-1规划的设施选址问题进行解答时,具有调用函数简单,求解方便等优点。
设施选址;0-1规划;matlab
一、前言
选址作为企业活动中最重要的长期决策之一,选址的好坏将对服务方式、服务质量、服务效率、服务成本等造成直接的影响,进而影响到企业利润及其市场竞争力。而设施选址作为众多选址问题的一个重要研究领域,更是关系到经济、政治、文化、社会、生态等各个社会方面,是一项综合的系统工程,在当前将建设资源节约型、环境友好型社会作为加快转变经济发展方式的重要着力点的时代背景下,其研究无疑具有重大现实意义[1]。设施选址规划的研究方法主要依靠运筹学、拓扑学、管理学等计量方法,这是设施选址与其他选址问题的重要区别[2]。在选址问题的讨论时,涉及到从多个地址中选择适当的个数和地点进行选址的问题,此时通常采用0-1规划来实现[3]。
二、选址0-1规划模型
0-1规划是决策变量仅取值0或1的一种特殊的整数规划。0-1变量可以数量化地描述诸如开与关、取与弃、有与无等现象所反映的离散变量间的逻辑关系、顺序关系以及互斥的约束条件,因此0-1规划非常适合用来解决如线路设计、工厂选址、生产计划安排等人们所关心的多种问题[4]。
0-1规划的基本数学模型为
(1)
三、0-1规划的MATLAB实现
在MATLAB中由于自变量的取值非常有限,因此如果自变量个数不多的话,完全可用穷举法得到最优解。对于自变量个数比较多的情况,可以用隐枚举法求得最优解。与穷举法不同的是,隐枚举法只检查自变量取值组合的一部分,它通过找到的可行解不断改进目标值,于是它只检查优于目标值的取值组合,因此在应用隐枚举法之前必须先给一个可行解。
在MATLAB中编程实现的枚举法法函数为:ZeroOneprog。功能为用枚举法(包括穷举法和隐枚举法)求解0-1规划。其调用格式为:
[intx,intf]=ZeroOneprog(c,A,b,x0)
其中,c:目标函数系数向量;
A:不等式约束右端向量;
x0:初始可行整数解;
intx:目标函数取最小值时的自变量值;
intf:目标函数的最小值。
四、实例分析
某地政府决定计划投资5000万在某地区建立物流配送中心。已知该区域有15个社区,并有7个位置可以建设物流配送中心,但是每个配送中心只能覆盖有限个社区,且由于地理位置、气候以及交通等因素,每个可选位置建设物流配送中心的费用及覆盖范围也各有差异。社区分布及物流配送中心建设点的位置示意图如图1所示,每个位置建设物流配送中心的费用以及可以覆盖的社区如表1所示,每个社区的人口数如表2所示。
表1 各位置建设物流配送中心的费用及所能覆盖的社区
表2 各社区的人口数量
问题:要求在建设费用不超过5000万的前提条件下,在7个位置中选择合适的位置建立物流配送中心,使得使覆盖的人口尽可能的多;
(一)模型的假设。
假设一:各社区人口数量不发生变化;
假设二:各社区内居民对物流配送中心的使用率相同,均为α;
假设三:若某社区在某物流配送中心的覆盖范围之内,那么该社区中所有客户均被改物流配送中心覆盖;
假设四:各物流配送中心不会重复建设;
假设五:各物流配送中心的重复覆盖不对配送服务的质量造成影响;
(二)符号说明。
xi:各物流配送中心的建设情况(xi=1表示第i个物流中心需要建设,xi=0表示第i个物流中心无需建设);