logo资料库

2009年西北工大校车安排问题论文.doc

第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
资料共22页,剩余部分请下载后查看
第 1 页 共 22 页 一、问题重述 许多学校都建有新校区,常常需要将老校区的教师和工作人员用校车送到新 校区。由于每天到新校区的教师和工作人员很多,往往需要安排许多车辆。根据 附录表一、二的数据,合理、有效的设置乘车点,安排车辆。让教师和工作人员 尽量满意。 问题 1:如要建立n个乘车点,为使各区人员到最近乘车点的距离最小,该将 校车乘车点应建立在哪n个点。建立一般模型,并给出 2,3 n  时的结果。 问题 2:若考虑每个区的乘车人数,为使教师和工作人员满意度最大,该将 校车乘车点应建立在哪n个点。建立一般模型,并给出 2,3 n  时的结果。 问题 3: 若建立 3 个乘车点,为使教师和工作人员尽量满意,至少需要安排 多少辆车?给出每个乘车点的位置和车辆数。设每辆车最多载客 47 人(假定车 只在起始站点载人)。 问题 4:关于校车安排问题,你还有什么好的建议和考虑。可以提高乘车人 员的满意度,又可节省运行成本。 二、基本假设 1.假设未给出距离的两个区可以通过其他区间接到达。 2.每位教师及工作人员均选择最短路径乘车。 3.乘车点均建在各区内,不考虑区与区之间。 4. 教师及工作人员到各站点乘车的满意度与到该站点的距离有关系,距离近则 满意度高,距离远则满意度低。 5. 假设任意时刻任意站点均有车,不考虑教师及工作人员的等车时间。 6. 在乘车点区内的人员乘车距离为零。 7. 根据实际情况,我们假设所设置的乘车点数不大于 50。 8. 假设所有人员均乘车。 三、符号的说明 表示意义 第 i 个区域 i=1,2,3,...50 第 i 个区域 i=1,2,3,...50 第 i 区与第 j 区的最短距离 i=1,2,3,...50 j=1,2,3,...50 任意两区的最短距离矩阵 符号 ni Vi dij D 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
第 2 页 共 22 页 表示意义 含义是从 Vi 到 Vj 的最短路要经过点号为 rij的点. 任意两区最短距离路径矩阵 表示 t 区教师和工作人员到最近乘车点的距离 表示 t 区的乘车人数, 表示 nt 乘车点应安排的车辆数。t=1,2,3 表示 t 区人数 Pt 乘以距离 St 符号 rij R St Pt Bt Wt 四、问题分析 许多学校都建有新校区,常常需要将老校区的教师和工作人员用校车送到新 校区。由于每天到新校区的教师和工作人员很多,往往需要安排许多车辆。因此 有必要合理设置乘车点并安排各站点的车辆数目,以便最大程度上满足教师及工 作人员的需要。 我们假设教师和工作人员去乘车时都去最近的乘车点。这样,他们走的路程 越短,就越满意。在我们设置好乘车点后,每个人走的路程相加所得的和最小时, 教师和工作人员乘车的总体满意度就最高。 若考虑各区人数的差异,则在前一问题的基础上给路程之和乘以各区人数, 所得值越小则满意程度越高。 五、模型建立与求解 问题一模型的建立及求解: 第一步:用 Floyd 算法求出距离矩阵 D=(dij)v×v . 1. 算法的基本思想 直接在图的带权邻接矩阵中用插入顶点的方法依次构造出个矩阵 D(1)、 D(2)、… 、D( ),使最后得到的矩阵 D()成为图的距离矩阵,同时也求出 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
第 3 页 共 22 页 插入点矩阵以便得到两点间的最短路径. 2.算法原理 (1)求距离矩阵的方法 把带权邻接矩阵 W 作为距离矩阵的初值, ) 根据题目所给各区距离表列出 D(0)= 即 D(0)= )0( ijd ( ( )0( ijd ) 50×50 距离矩阵 ○1 D(1)= 其中 ( )1( d ij )1( ijd  , ) min{ d )0( ij , d )0( 1 i 1 jd })0( )1( ijd 是从 Vi 到 Vj 的只允许以 V1 作为中间点的路径中最短路的长度. ○2 D(2)= 其中 ( d )2( ijd )2( ij , ) min{ d  )1( ij , d )1( 2 i })1( 2 jd )2( ijd 是从 Vi 到 Vj 的只允许以 V1 、 V2 作为中间点的路径中最短路的长 度. …………… …………… ○V D(V)= )(  ij 其中 d ( ) (  ijd  ) ,  min{ d ( )1   ij , d ( )1   i  (    jd })1 )( ijd 是从 Vi 到 Vj 的只允许以 V1、V2、…VV 作为中间点的路径中最短路 的长度.即是从 Vi 到 Vj 中间可插入任何顶点的路径中最短路的长,因此 D( )即是距离矩阵. (2)求路径矩阵的方法 在建立距离矩阵的同时可建立路径矩阵 R,R= ( ijr ) ,rij的含义 是 Vi 到 Vj 的最短路要经过点号为 rij的点. )0( R  ( )0( ijr )  , rij )0( j 每求得一个 D(k) 时,按下列方式产生相应的新的 R(k) 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
第 4 页 共 22 页 k )1 k  k )1  d 若 ( ij )1   d ( k kj )1  ( k ik d  否则 )( k r ij    ( r  ij 即当 Vk 被插入任何两点间的最短路径时,被记录在 R(k) 时求得 R(v) ,可由 R(v) (3)查找最短路径的方法 来查找任何点对之间最短路的路径. 中,依次求 D(v) )( rij  p 1 若 ,则点p1是点 i到点 j的最短路的中间点. 然后用同样的 方法再分头查找.若: (1) 向点 i追朔得: (2) 向点 j追朔得: 则由点 i到 j的最短路的路径为: ) p 3 2 , ,…, ( rip  p 1 )( r jp  q , 1 1 , pi k )( rip  ) ( r k ip 2 )( r jqm j )( r jq  q 1 , , , , , , jq qqpp   2 2 m ,…, 2 , 1,1 p k 3.算法步骤 Floyd 算法:求任意两点间的最短路 D(i,j):i到 j的距离. R(i,j):i到 j之间的插入点. 输入: 带权邻接矩阵 w(i,j) (1) 赋初值: 对所有 i,j, d(i,j)w(i,j), r(i,j)j, k1 (2) 更新 d(i,j), r(i,j) 对 所 有 i,j , 若 d(i,k)+d(k,j)
第 5 页 共 22 页 D(50)=(dij)50×50矩阵如下: 1 0 400 450 700 910 1140 1110 2 400 0 850 300 510 740 710 1280 880 3 450 850 0 600 810 1040 1010 1180 1480 1080 1380 4 700 300 600 0 210 440 410 580 780 5 910 510 810 210 0 230 200 370 570 6 7 8 9 …… 48 49 50 1140 1110 1280 1480 …… 1110 1310 1510 740 710 880 1080 …… 710 910 1110 1040 1010 1180 1380 …… 1560 1760 1875 440 230 0 320 340 540 410 200 320 0 170 370 580 370 340 170 0 780 …… 1010 1210 1275 570 …… 1220 1420 1485 540 …… 1450 1650 1620 370 …… 1164 1364 1300 200 …… 1334 1534 1470 200 0 …… 1534 1734 1640 1 2 3 4 5 6 7 8 9 …… …… …… …… …… …… …… …… …… …… …… …… …… …… 48 49 50 1640 …… 1100 1734 …… 200 1534 …… 0 1560 1010 1760 1210 1875 1275 1220 1450 1420 1650 1485 1620 1510 1110 1164 1334 1364 1534 1300 1470 710 910 1100 1300 1110 1310 200 0 1300 0 第二步:设置 n 个乘车点时的取点情况 算法思路:我们假设教师和工作人员去乘车时都去最近的乘车点。这样,他们走 的路程越短,就越满意。在我们设置好乘车点后,由于不考虑每个区的乘车人数, 每个区人员到最近乘车点乘车,乘车所走最短距离相加所得的总和最小时,教师 和工作人员乘车的总体满意度就最高。 步骤如下: dit 表示 t 区到 i 区的最短距离, 当 N=2 时,以 n1, n2 区为乘车点时,St 表示 t 区教师和工作人员到最近乘车点 的距离,即 min{dn1t , dn2t}。 S 总 {dn1t,dn2t}, 因为有 50 个区,这样就有 种选择乘车点位置的方法,S 总共有 个,用 C 语言编程选出最小值的 S 总,此时 S 总值对应的 n1, n2 值即为乘车点应选择 的区。 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
第 6 页 共 22 页 当 N=3 时,以 n1,n2,n3 区为乘车点时,St 表示 t 区教师和工作人员到最近乘车 点的距离,即 min{dn1t , dn2t ,dn3t}。 S 总 {dn1t,dn2t,dn3t}, 因为有 50 个区,这样就有 种选择乘车点位置的方法,S 总共有 个,用 C 语言编程选出最小值的 S 总,此时 S 总值对应的 n1, n2,n3 值即为乘车点应选 择的区。 当 N<=50 时,以 n1, n2, n3 … nn 区为乘车点时,St 表示 t 区教师和工作人员到 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
第 7 页 共 22 页 最近乘车点的距离,即 min{dn1t , d n2t,dn3t……dnnt}。 S 总= (dit,djt…dpt), 因为有 50 个区,这样就有 种选择乘车点位置的方法,S 总共有 个,用 C 语言编程选出最小值的 S 总,此时 S 总值对应的 n1, n2,n3 … nn 值即为乘车 点应选择的区。 问题二模型的建立及求解 算法思路:我们假设教师和工作人员去乘车时都去最近的乘车点。这样,他们走 的路程越短,就越满意。在我们设置好乘车点后,考虑到每个区的人数不同。这 样,每个人到最近乘车点乘车,乘车所走最短距离相加所得的总和最小时,教师 和工作人员乘车的总体满意度就最高。 步骤如下: Pt 表示 t 区的乘车人数, dij 表示 i 区与 j 区的最短路径值, 当 N=2 时,以 n1, n2 区为乘车点时,St 表示 t 区教师和工作人员到最近乘车点 的距离,即 min{dn1t , dn2t}。 我们以 t 区人数 Pt 乘以距离 S 作为 Wt 值,即 Wt=Pt*St= Pt*min{dn1t , dn2t} W 总= = *St W 总值可作为所有教师和工作人员乘车满意度 H 的衡量标准,即当 W 总越小,满 意度 H 越高。W 总越大,满意度 H 越低。 因为有 50 个区,这样就有 种选择乘车点位置的方法,即有 个 W 总值。 用 C 语言编程选出最小值的 W 总值,此时 W 总值对应的 n1, n2 值即为乘车点应 选择的区。 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
第 8 页 共 22 页 当 N=3 时,以 n1,n2,n3 区为乘车点时,St 表示 t 区教师和工作人员到最近乘车 点的距离,即 min{dn1t , dn2t ,dn3t}。 我们以 t 区人数 Pt 乘以距离 S 作为 Wt 值,即 Wt=Pt*St= Pt*min{dn1t ,dn2t ,dn3t} W 总= = *St W 总值可作为所有教师和工作人员乘车满意度 H 的衡量标准,即当 W 总越小,满 意度 H 越高。W 总越大,满意度 H 越低。 因为有 50 个区,这样就有 种选择乘车点位置的方法,即有 个 W 总值。 用 C 语言编程选出最小值的 W 总值,此时 W 总值对应的 n1,n2,n3 值即为乘车点 应选择的区。 2009 年西北工大“工大正禾杯”校车安排问题论文 作者王景
分享到:
收藏