Я использую эти ограничения: И использую модель Миллера Такера Землина для удаления субциклов. Я не знаю, почему минимальное расстояние равно 0.
Одна вещь, которую я заметил, это то, что в журнале R3 прыгает «h», когда h = i или h = j. Может быть, именно это заставляет ответ переходить из города 1 в город 1. Но я не знаю, почему программа делает это.
Это мои переменные
Binary variable X(i,j,k) ;
Integer variable u(i,k) ;
u.fx('0',k) = 0;
Этиявляются уравнениями и ограничениями:
Z =e= SUM((i,j,k) $(ord(j) ne ord(i) and ord(i) ne card(i) and ord(j) ne 1), dist(i,j)*X(i,j,k)) ;
R1(i) $(ord(i) ne 1 and ord(i) ne card(i)) ..
SUM((j,k), X(i,j,k)) =E= 1 ;
restr_carga(k) ..
SUM(i $(ord(i) ne 1 and ord(i) ne card(i)), d(i) * SUM(j, X(i,j,k))) =L= q ;
R2(k) ..
SUM(j, X("0",j,k)) =E= 1;
R3(k,h) $(ord(h) ne 1 and ord(h) ne 10) ..
(SUM(i, X(i,h,k)) - SUM(j, X(h,j,k))) =E= 0 ;
R4(k) ..
SUM(i $(ord(i) ne card(i)), X(i,"10",k)) =E= 1 ;
restr_subtour(i,j,k) $(ord(j) ne ord(i) and ord(j) ne 1 and ord(i) ne card(i) and ord(j) ne card(j)) ..
u(j,k) =G= u(i,k) + X(i,j,k) - card(i)*(1 - X(i,j,k)) ;
k - количество транспортных средств, едущих с 1 по 3, Set i - от 0 до 10, при этом 0 и 10 совпадают. В учебнике N - полный диапазон, от 0 до 10, а C - от 1 до 9, не считая города происхождения.
Это ответ, который я получаю, с Z = 0:
1 2 3
0 .10 1.000 1.000 1.000
1 .1 1.000
2 .2 1.000
3 .0 1.000
4 .0 1.000
5 .5 1.000
6 .6 1.000
7 .7 1.000
8 .0 1.000
9 .0 1.000
10.3 1.000
10.4 1.000
10.8 1.000
Но в ответе не должны быть города, идущие к самим себе или маршруты, начинающиеся с точки 10 (конечная точка) или заканчивающиеся в точке 0 (начальная точка).