消防站的选址问题 lingo软件要求消防站的选址某市有6个区,每个区都可建消防站,为了节省开支,市政府希望设置的消防站最少,但必须保证在该市任何地区发生火警时,消防车能在15分钟内赶到
来源:学生作业帮助网 编辑:六六作业网 时间:2024/11/27 05:17:56
消防站的选址问题 lingo软件要求消防站的选址某市有6个区,每个区都可建消防站,为了节省开支,市政府希望设置的消防站最少,但必须保证在该市任何地区发生火警时,消防车能在15分钟内赶到
消防站的选址问题 lingo软件要求
消防站的选址
某市有6个区,每个区都可建消防站,为了节省开支,市政府希望设置的消防站最少,但必须保证在该市任何地区发生火警时,消防车能在15分钟内赶到现场.假定各区的消防站要建的话,就建在区的中心,根据实地测量,各区之间消防车行使的最长时间如下表:(单位:分钟)
1区 2区 3区 4区 5区 6区
1区 4 10 16 28 27 20
2区 10 5 24 32 17 10
3区 16 24 4 12 27 21
4区 28 32 12 5 15 25
5区 27 17 27 15 3 14
6区 20 10 21 25 14 6
请为该市制定一个设置消防站的最节省的计划.建模并求解.
提示:分别假设1、2、3、4、5、6区发生火警而考虑设置消防站点的位置,可得出所需约束条件.
消防站的选址问题 lingo软件要求消防站的选址某市有6个区,每个区都可建消防站,为了节省开支,市政府希望设置的消防站最少,但必须保证在该市任何地区发生火警时,消防车能在15分钟内赶到
x表示是否在某区建消防站 c表示两区之间是否15分钟内可以到达 结果是在二四区建消防站就可以
model:
sets:
area/1..6/:x;
link(area,area):t,c;
endsets
data:
t=
4 10 16 28 27 20
10 5 24 32 17 10
16 24 4 12 27 21
28 32 12 5 15 25
27 17 27 15 3 14
20 10 21 25 14 6;
enddata
calc:
@for(link:c=@if(t#le#15,1,0));
endcalc
min=@sum(area:x);
@for(area:@bin(x));
@for(area(i):@sum(area(j):c(i,j)*x*(i))>=1);
end