工具供货,而8个连锁店每周销售量为5的倍数,求行驶路线时可以转化为固定起点到其余顶点的最短路问题,采用Dijkstra算法1求解;用Dijkstra算法求解u0到v的最短路的思路为:(1)赋初值:另Su0lu00v∈SVSlvWu0vzvu0u←u0(2)更新lv,zvv∈SVS若luluWuv则令lvluWuvzvu(3)设v是使lv取最小值的S中的顶点,则令SS∪vu←v(4)若S≠,转(2);否则,停止见图1
u0
lv
lu
Wuv
图1用上述算法的lv就是u0到v的最短路的权,从v的父亲点标记zv追溯到
u0,就得到u0到v的最短路的路线。
512若每个连锁店每周销售量增加4,前六周的销售量分别如表1:各连锁店前六周的销售量表1各连锁店前六周的销售量
连锁店第一周销售量第二周销v120
208
v210
104
v35
52
v410
104
4
v520
208
v615
156
v725
26
v820
208
f售量第三周销售量第四周销售量第五周销售量第六周销售量
2163222497282339717124333058
1081611248641169858612166529
54085624325849292860832645
1081611248641169858612166529
2163222497282339717124333058
1622416872961754787818249794
27042812162924646430416323
2163222497282339717124333058
第一周的运输路线即为Dijkstra算法所得到的路线;对于第二周的运输路线,通过计算得第二周与第一周相比增加的销售量为5桶,又因为小型运输车的运输量也为5桶,所以运输路线分两部分:第一周销售量部分以及增加的销售量部分,对于第一周销售量部分采用第一周的运输路线;而对增加的销售量部分,设计运输路线可以转化为推销员问题;推销员问题是NP完备问题,我们采用TPS近似算法中的改进型算法:二次逐次修正法。二次逐次修正法的思路为:(1)任取初始H圈:C0v1v2vivjv
v1(2)对所有的ij1i1j
,若wvivjwvi1vj1wvivi1wvjvj1,则在C0中删去边
vivi1和vjvj1而加入边vivj和vi1vj1,形成新的H圈C,
即Cv1v2vivjvj1vi1vj1v
v1见图2、图3
图2
图3
(3)对C重复步骤(2),直到条件不满足为止,最后得到的C即为所求;第三周与第一周相比增加的销售量为102桶,对增加的销售量至少要三辆运输车运输或经过三次运输,所以需对运输路线进行重新分配:
5
f运输路线分两部分:第一周销售量部分以及增加的销售量部r