1、1论文题目:缴费选址问题摘要本文根据社区的公路网络图,求解不同条件下的选址问题,及分组巡视问题。文中首先将网络图转换为赋权连通图。对于问题一,本文首先通过赋权连通图求出社区间的邻接矩阵,通过 Floyd算法求出任意两点间的的最短距离,通过 matlab 编程利用枚举法,在 24 个社区中任意求出三点,求出这种情况下居民与最近煤气站的平均距离,再找寻满足平均距离最小的三点,即可求解,三点为 M、Q、W 社区。对于问题二,首先假设派出所对某个社区的覆盖度是二元的,引入决策变量,建立了 0-1 整数规划模型,以确保 24 个社区均被覆盖,同时要满足警察局在 3 分钟之内赶到事发社区。考虑到派出所的成
2、本,显然设置个数越少越好,在任意两社区的最短距离已知的情况下,则此问题转换为非线性规划问题,目标函数即为派出所个数。通过 Lingo 编程,可快速求出派出所的个数为 3,设置在 D、K、W 社区。对于问题三,为分组巡查问题,实质为多旅行商问题,首先将社区的赋权连通图简化为生成树,其中各顶点到 W 点的权值最小,再以树干为基础分为三组,分组后依据分组情况画出最佳旅行商路径并在 Lingo 中编程求出每组最小权值,选出最优路径如下图表一:表一组号 巡视路线 总路程 路线总长度 平衡度1 W-L-Y-H-K-M-N-J-U-E-F-W 1102 W-G-I-P-I-B-W 1133 W-X-A-S-
3、D-Q-R-V-T-C-W 117340 5.98%关键词: Floyd 算法 枚举法 0-1 规划 非线性规划 多旅行商问题2一、问题重述某城市共有 24 个社区,各社区的人口(单位:千人)如下表编号 A B C D E F G H I J K L人口 10 12 18 6 10 15 4 8 7 11 13 11编号 M N P Q R S T U V W X Y人口 11 8 9 22 14 8 7 10 15 28 18 13各社区的的道路连接如下图VCDGUFEIQSRATWXBJYLHNKMP1 0 1 587971 41 061 11 2892 02 41 61 51 82 21
4、 1661 22 381 01 181 11 51 02 51 51 992 881 091 181 9(注:横线上的数据表示相邻社区之间的距离,单位:百米)(1) 为了方便社区居民缴纳煤气费,煤气公司现拟建三个煤气缴费站,问煤气缴费站怎样选址才能使得居民与最近煤气站之间的平均距离最小。(2) 市公安局拟在该城区建立若干个派出所,请为派出所分配管辖范围,使其在所管辖的范围内出现突发事件时,尽量能在 3 分钟内有警察(警车的时速为 50km/h)到达事发地,问设置多少个派出所比较合理,位置选在哪?(3) 社区 W 是市政府所在地,市领导从 W 出发巡视,分三组巡视所有社区,为了尽快完成巡视,请问
5、如何安排巡视路线。二、假设说明假设 1:各社区没有人数的迁入迁出;假设 2:同一社区的居民到同一缴费点交费;3假设 3:每个派出所有足够的时间去处理管辖范围内的突发事件;假设 4:每个社区只能被一个派出所管辖;假设 5:派出所接到报警后能立即出警,中间没有延误;假设 6:每组从县政府同时出发,且行驶速度相同;假设 7:行驶过程中汽车不会出现故障;假设 8:市领导从市政府出发巡视完后回到市政府。三、符号说明符号 符号说明ij、1-24 个社区a24 个社区所给数据构成的距离矩阵d24 个社区两两之间的最短距离矩阵iR社区的人数iG所有居民到缴费站的总距离xyz、 、24 个社区中任意 3 个社区
6、jP社区派出所的个数j()kwc分组后第 K 组的 TSP 回路路程a均衡度iG第 个加权网络图iiV第 个顶点集ijD社区 i 与社区 j 之间的最短距离ib第 i 个分组巡视的社区个数Soi(n) 从 点到城镇 的第 n 种路径的权值oki 访问某镇或村一次所用的时间Ki 从 O 点径直访问第 点往返所用的时间iKi 从 O 点径直访问第 点附加访问其它城镇所用的时间imaxKi 从 O 点径直访问第 点往返所用的最大时间四、问题分析此题研究的是在各社区人数、社区之间的距离已知的情况下,寻找合理的路径,确定缴费站、派出所的位置使结果最优。在市领导巡视路线的问题中,要求市领导从市政府出发巡视
7、完后回到市政府,可以利用图论中的最佳旅行商回路方法来解决。针对问题一:本题主要求三个煤气缴费站怎样选址时使居民与最近煤气站之间平均距离最小,而居民的总人数已知,即要使所有居民到煤气站的总距离最小。假设每4个社区的居民到同一个缴费站交费,则每个社区的居民到煤气站的总距离等于该社区的人数与该社区到缴费站的距离之积。只有每个社区到缴费站的总距离都最小,才能使目标函数最优。所以先确定 24 个社区两两相互间的最短距离,设任意三社区 x、y、z 为所设的三个缴费站,则每个社区到缴费站的最小总距离为该社区的人数乘以该社区到 x、y、z 三个缴费站中的最小距离,所有居民到煤气站的总距离为 24 个社区到缴费
8、站的最小总距离之和。而 x、y、z 三个缴费站是 24 个社区中任意三个地点,具体是哪三个社区不确定,有 种情况,324C所以用穷举的方法来确定社区的位置使所有居民到煤气站的总距离最小。针对问题二:社区发生突发事件时要有派出所出来管辖,首先假设每个社区要么被其中一个派出所完全管辖,要么被完全不管辖,即覆盖度是二元的,所以考虑到用0-1 整数规划模型。当派出所所管辖的范围内出现突发事件时,尽量能在 3 分钟内有警察(警车的时速为 50km/h)到达事发地,即派出所距发生突发事件的地方的最大距离为 25 百米。而且当每个社区有突发事件发生时,都只有一个派出所到达现场处理事件。建立派出所需要投入成本
9、和警务资源,要使派出所的个数比较合理,所以建立的派出所个数越少时成本越少,结果为最优,即目标函数为派出所的个数。既而确定派出所的位置。针对问题三:由于问题要求分三组巡视,且要尽快完成巡视,即要使巡视总路程最短且各组的巡视路线尽可能均衡。为了解决此问题,我们先画出各个点到 W 点的最短路径图(如图一),此图有 5 个分支,为使巡视路线均衡,我们较为均匀地分为三组路线, (见附录 6),分别计算两种分法的最短巡视路线和均衡度,然后取最优。五、数据分析5.1 猜想一个城市有 i个社区, n个缴费站,则将缴费站设立在社区可使得居民与最近缴费站之间的平均距离最小。证明:假设在任意两个相邻两社区 iR和
10、j之间的道路上设立缴费站,则居民必须经过 iR或 j缴费。设:经过社区 i缴费的人数和其与 iR的最小距离加权后的值为 if,经过社区 j缴费的加权值为 jf,社区 i和 j之间的距离为ijD,缴费站与社区 i的距离为 x。则,居民人数与其到缴费站最小距离加权后的和值为: ij=+-=()+ijijjijfxfffD( )若 i= j,则 f为定值,缴费站设立在社区 iR和 j、或者两社区之间道5路上的任意一点,缴费人数与其到缴费站相应最小距离加权后的和值均可达到最小。若 if j,则当 =0x时, f最小,即缴费站应设立在社区 iR。若 i=x(i,j); !同样保证社区j派出所个数大于等于
11、决策变量;end部分运行结果:Global optimal solution found.Objective value: 3.000000Objective bound: 3.000000Infeasibilities: 0.000000Extended solver steps: 0Total solver iterations: 632Variable Value Reduced CostP( 1) 0.000000 1.000000P( 2) 0.000000 1.000000P( 3) 0.000000 1.000000P( 4) 1.000000 1.000000P( 5) 0.0
12、00000 1.000000P( 6) 0.000000 1.000000P( 7) 0.000000 1.000000P( 8) 0.000000 1.000000P( 9) 0.000000 1.000000P( 10) 0.000000 1.000000P( 11) 1.000000 1.000000P( 12) 0.000000 1.00000024P( 13) 0.000000 1.000000P( 14) 0.000000 1.000000P( 15) 0.000000 1.000000P( 16) 0.000000 1.000000P( 17) 0.000000 1.000000
13、P( 18) 0.000000 1.000000P( 19) 0.000000 1.000000P( 20) 0.000000 1.000000P( 21) 0.000000 1.000000P( 22) 1.000000 1.000000P( 23) 0.000000 1.000000P( 24) 0.000000 1.000000附录五模型三的 Lingo 程序model: sets: shenqu / 1 11/: u; link( shenqu, shenqu): dist, x; !定义决策变量;endsets n = size(shenqu); !返回shenqu数组的大小;dat
14、a: dist = !数据矩阵可自行调整;0 41 30 22 21 30 35 29 25 19 11 41 0 11 19 21 12 18 24 32 38 3030 11 0 8 18 15 21 26 33 27 19 22 19 8 0 10 19 24 18 25 19 1121 21 18 10 0 9 14 8 16 18 1030 12 15 19 9 0 6 12 20 27 1935 18 21 24 14 6 0 6 14 23 2429 24 26 18 8 12 6 0 8 17 18 25 32 33 25 16 20 14 8 0 9 1419 38 27 1
15、9 18 27 23 17 9 0 811 30 19 11 10 19 24 18 14 8 0; enddata !目标函数; min = sum( link: dist * x); !总路程最小;FOR( shenqu( K): !进入城市K; sum( shenqu( I)| I #ne# K: x( I, K) = 1; !离开城市K; 25sum( shenqu( J)| J #ne# K: x( K, J) = 1; ); !保证不出现子圈; for(shenqu(I)|I #gt# 1: for( shenqu( J)| J#gt#1 #and# I #ne# J: u(I)-u(J)+n*x(I,J)=n-1); ); !限制u的范围以加速模型的求解,保证所加限制并不排除掉TSP问题的最优解; for(shenqu(I) | I #gt# 1: u(I)=n-2 ); !定义X为01变量; for( link: bin( x); 附录六模型三中三组巡视的区域划分图:VCDGUFEIQSRATWXBJYLHNKMP7971 41 01 181 61 52 21 1681 181 51 081 091 181 9