lingo建模问题,我是新手求教

lingo建模问题,我是新手求教
原题是所得税交纳点选址
所得税管理部门计划对某个地区中的所得税交纳点网络进行重新设计.图B.1是对此地区内的城市和主要道路的示意图.城市旁边的黑体数字表示城市的居民数目,单位为千人.在连接城市之间的弧上标出了它们之间的距离,单位为千米(斜体字).为覆盖各个城市,所得税管理部门决定在三个城市中设置纳税点.应在哪三个城市中设置纳税点才能够使居民与最近的纳税点之间平均距离最小?
我现在不知道怎么选三个点,然后从每一个点到三个点的距离取最小,然后取最小,累加十二个点值要求最小.
约束条件怎么列
距离矩阵我数过了
v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12
v1 0 15 37 45 24 60 18 33 48 40 58 67
v2 15 0 22 40 38 52 33 48 42 55 61 61
v3 37 22 0 18 16 30 43 28 20 58 39 39
v4 45 40 18 0 34 12 61 46 24 62 43 34
v5 24 38 16 34 0 36 27 12 24 49 43 43
v6 60 52 30 12 36 0 57 42 12 50 31 22
v7 18 33 43 61 27 57 0 15 45 22 40 61
v8 33 48 28 46 12 42 15 0 30 37 25 46
v9 48 42 20 24 24 12 45 30 0 38 19 19
v10 40 55 58 62 49 50 22 37 38 0 19 40
v11 58 61 39 43 43 31 40 25 19 19 0 21
v12 67 61 39 34 43 22 61 46 19 40 21 0
先成人数(权)还是后乘?
0 225 555 675 360 900 270 495 720 600 870 1005
150 0 220 400 380 520 330 480 420 550 610 610
444 264 0 216 192 360 516 336 240 696 468 468
810 720 324 0 612 216 1098 828 432 1116 774 612
120 190 80 170 0 180 135 60 120 245 215 215
1440 1248 720 288 864 0 1368 1008 288 1200 744 528
198 363 473 671 297 627 0 165 495 242 440 671
528 768 448 736 192 672 240 0 480 592 400 736
624 546 260 312 312 156 585 390 0 494 247 247
880 1210 1276 1364 1078 1100 484 814 836 0 418 880
1102 1159 741 817 817 589 760 475 361 361 0 399
1340 1220 780 680 860 440 1220 920 380 800 420 0
chenjun44 1年前 已收到2个回答 举报

缺缺 幼苗

共回答了15个问题采纳率:80% 举报

model:
sets:
r/1..12/:x,num;
link(r,r):d;
endsets
data:
d=
0 15 37 45 24 60 18 33 48 40 58 67
15 0 22 40 38 52 33 48 42 55 61 61
37 22 0 18 16 30 43 28 20 58 39 39
45 40 18 0 34 12 61 46 24 62 43 34
24 38 16 34 0 36 27 12 24 49 43 43
60 52 30 12 36 0 57 42 12 50 31 22
18 33 43 61 27 57 0 15 45 22 40 61
33 48 28 46 12 42 15 0 30 37 25 46
48 42 20 24 24 12 45 30 0 38 19 19
40 55 58 62 49 50 22 37 38 0 19 40
58 61 39 43 43 31 40 25 19 19 0 21
67 61 39 34 43 22 61 46 19 40 21 0
;
num=
15
10
12
18
5
24
11
16
13
22
19
20
;
enddata
min=@sum(r(i):x(i)*@sum(r( j) |j#gt#i: num(i)*d(i,j)));
@for(r : @bin(x));
@sum(r:x)=3;

1年前

3

八廓 幼苗

共回答了153个问题 举报

这样计算才是正确的 人数什么时候乘的问题不存在 只是去乘上距离最近的一个点的距离而已 每个点只乘一次 有问题可以百度hi找我 如果你在请你处理一下问题好吗
model:
sets:
point/1..12/:p,x;
way(point,point):d,c;
endsets
data:
d=
0 15 37 45 24 60 18 ...

1年前

2
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.021 s. - webmaster@yulucn.com