SAS: нужно оптимизировать для Z. Пожалуйста, исправьте это
Проблема в том, что при запуске этот код не дает результатов. Я учусь, но не могу понять, где это неправильно. Утверждение таково: фургонов, которые могут работать на маршрутах (от постоянного тока до укрытия), не хватает, поэтому мы хотим выбрать местоположение DC (от DC1 до DC5), чтобы минимизировать транспортную работу (общее количество пройденных км-миль) в сеть. Обратите внимание, что транспортировка на комплект пропорциональна расстоянию. Спрос и предложение не в наборе. Расстояние матрицы` в милях.
Какое из пяти мест постоянного тока мы должны выбрать, чтобы минимизировать работу транспорта в сети?
proc optmodel;
set shelter={"S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8"};
set dc={"D1", "D2","D3","D4", "D5"};
number demand{shelter}=[14000 8000 25000 22000 20000 17000 18500 23000];
number supply{dc}=[150000 150000 150000 150000 150000];
number distance{dc,shelter}=[
0.61 3.32 9.5 6.52 7.77 1.92 8.52 9.75
6.04 0.51 1.34 6.06 0.22 6.33 4.61 3.28
4.99 2.41 2.33 3.95 8.84 7.94 7.87 0.94
5.58 8.8 6.32 8.54 5.15 6.06 9.42 2.16
7.87 9.64 0.7 5.92 2.7 0.26 0.5 3.4];
number C=1;
var x{dc, shelter} integer>=0;
var b{dc} binary;
minimize Z=sum{d in dc, s in shelter} (x[d,s]*C*distance[d,s]*300000*b[d]);
con demandcon{s in shelter}:sum{d in dc} x[d,s]=demand[s];
con supplycon{d in dc}:sum{s in shelter} x[d,s]<=supply[d];
con bincon:sum{d in dc} b[d]<=5;
con bincon2:sum{d in dc} b[d]>=1;
con bindingcon{d in dc}: sum{s in shelter} x[d,s] <= b[d]*10000000;
solve;
print Z b x;
quit;
журнал
1 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
70
71 proc optmodel;
72
73 set shelter={"S1", "S2", "S3", "S4", "S5", "S6", "S7", "S8"};
74 set dc={"D1", "D2","D3","D4", "D5"};
75
76 number demand{shelter}=[14000 8000 25000 22000 20000 17000 18500 23000];
77 number supply{dc}=[150000 150000 150000 150000 150000];
78
79 number distance{dc,shelter}=[
80 0.61 3.32 9.5 6.52 7.771.92 8.52 9.75
81 6.04 0.51 1.34 6.06 0.22 6.33 4.61 3.28
82 4.99 2.41 2.33 3.95 8.84 7.94 7.87 0.94
83 5.58 8.8 6.32 8.54 5.15 6.06 9.42 2.16
84 7.87 9.64 0.7 5.92 2.7 0.260.5 3.4];
85
86 number C=1;
87
88 var x{dc, shelter} integer>=0;
89 var b{dc} binary;
90
91 minimize Z=sum{d in dc, s in shelter} (x[d,s]*C*distance[d,s]*300000*b[d]);
92
93 con demandcon{s in shelter}:sum{d in dc} x[d,s]=demand[s];
94 con supplycon{d in dc}:sum{s in shelter} x[d,s]<=supply[d];
95 con bincon:sum{d in dc} b[d]<=5;
96 con bincon2:sum{d in dc} b[d]>=1;
97 con bindingcon{d in dc}: sum{s in shelter} x[d,s] <= b[d]*10000000;
98
99 solve;
NOTE: Problem generation will use 2 threads.
NOTE: The problem has 45 variables (0 free, 0 fixed).
NOTE: The problem has 5 binary and 40 integer variables.
NOTE: The problem has 20 linear constraints (11 LE, 8 EQ, 1 GE, 0 range).
NOTE: The problem has 135 linear constraint coefficients.
NOTE: The problem has 0 nonlinear constraints (0 LE, 0 EQ, 0 GE, 0 range).
NOTE: The OPTMODEL presolver removed 0 variables, 6 linear constraints, and 0 nonlinear constraints.
NOTE: The OPTMODEL presolved problem has 45 variables, 14 linear constraints, and 0 nonlinear constraints.
NOTE: The OPTMODEL presolver removed 45 linear constraint coefficients, leaving 90.
ERROR: The QP solver does not allow integer variables.
100
101 print Z b x;
102
103 quit;
NOTE: PROCEDURE OPTMODEL used (Total process time):
real time 0.05 seconds
user cpu time 0.05 seconds
system cpu time 0.00 seconds
memory 2377.03k
OS Memory 28836.00k
Timestamp 04/17/2018 05:13:19 PM
Step Count 119 Switch Count 3
Page Faults 0
Page Reclaims 565
Page Swaps 0
Voluntary Context Switches 27
Involuntary Context Switches 1
Block Input Operations 0
Block Output Operations 344
104
105 OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK;
117