Dijkstra算法解决新旧设备选择的最短路径问题
作者:互联网
西电2021暑假数模培训作业
本人初步学习,
与大家一同进步,
本文与大家分析我的建模过程。
题目如下
题干给出各个年份的新设备费用以及旧设备对应使用年份的维修费用,需要求出五年中需要的最小总费用。
由题可知五年的设备使用是连续的,我们必须在一年中使用某一新设备或旧设备,使得总费用最少,对于新一年的到来,要么选择新设备,要么选择支付多于前一年设备一年的已使用年份的维修费用。题干给出信息不全且对表格进行分析,我们假设第一年只能使用新设备或用使用过一年的旧设备。
对此,建立了22个节点,对于第一年到来,只能选择新设备或已使用过1年的旧设备;第二年只能选择新设备或使用过1、2年的设备;第三年只能选择新设备或使用过1、2、3年的设备……
5年中,共有2+3+4+5+6=20个节点,同时设置头尾两节点,进行标号,并对其可能发生的路径进行连线,赋设备费用到入节点的路径上,以计算从头节点到尾节点的最短路径,由于必然最终到达尾节点,所以在尾节点的入节点路径上均赋值为1
对此,我们利用Dijkstra算法得出以下结果,代码可在csdn中自行查找,较简单。
由结果可得,第一、二年使用旧设备,第三年购买新设备,第四、五年使用旧设备时,花费最少,为35-1=34.
在此基础上,我们假设第一年必须购买新设备,在代码中,将v1到v3的路径截断,这样第一年就只能购买新设备。得出以下结果:
由结果可得,第一年购买新设备,第二、三使用旧设备,第四年购买新设备,五年使用旧设备时,花费最少,为40-1=39.
有问题欢迎大家交流。
标签:路径,Dijkstra,选择,算法,新旧,使用,第一年,节点,设备 来源: https://blog.csdn.net/shenanyng/article/details/118531868