自来水管道铺设问题——数学建模

这是我们学校作为校赛的一道题目,我来说一下我做这道题的基本思路和用到的方法。
第一题:从中心供水站A出发,自来水管道应该如何铺设才能使管道的总里程最少?以图形给出铺设方案,并给出I型管道和II型管道总里程数。
首先,可以看成是两部分。中心供水站到12个一级供水站,还有就是12个一级供水站d到168个二级供水站。这里我用的最小生成树的算法。可以用任何语言来算。我用的是MATLAB。因为,他有一个图论工具箱可以直接调用算法,不需要你自己在编写。只需要带入参数即可。先是计算各个供水站之间的距离。这个就用l两点z之间的距离公式计算即可。第一步,让中心供水站和12个一级供水站组成一个最小生成树。运行结果就是最短的距离之和,也就是总的里程数。第二步,有多个一级点,也就是有多个源头。我们只需要再设一个点,让这个点与12个一级供水站的距离为0。这样,就转化为了,一个源头的问题。继续调用最小生成树算法。即可算出。第一问就这样解完了。
第二题:由于II型管道市场供应不足,急需减少从一级供水站出发铺设的II型管道总里程,初步方案是将其中两个二级供水站升级为一级供水站。问选取哪两个二级供水站,自来水管道应该如何铺设才能使铺设的II型管道总里程最少?相对问题1的方案,II型管道的总里程减少了多少公里?
将一个二级点转化为一级点,这样只需重复上一题,将这个要升级的点与设的点的距离设为0,再次调用最小生成树算法,就可算出总里程数。依次,算出全部的点。然后,取最小的两个点。这两个点就是要升级的点。然后与原来的做差即可得出。
第三题:在问题1基础上,假如现实中由于功率的影响,从一级供水站出发铺设的管道最多只能供水40公里(按从该一级供水站管道输送的总里程计算),但从中心供水站A出发铺设的管道供水不受此距离限制。为实现对所有供水站供水,需要将若干个二级供水站升级为一级供水站,但升级后从该供水站出发铺设的管道也最多只能供水40公里。问最少升级几个二级供水站,可实现对所有的供水站供水?在这种配置下铺设管道的总里程数最少是多少公里?
第三问:多次利用最小生成树算法,算出不可能的点。然后再用循环,求得距离最短。
等我比赛结束,会把论文发出来供大家参考。之后我会详细的更新如何找资料,如何学习,如何入门。

猜你喜欢

转载自blog.csdn.net/qq_45816034/article/details/106959629