CVRP в GAMS не работает, следуя примеру учебника для уравнений - PullRequest
0 голосов
/ 04 октября 2019

Я использую эти ограничения: restrictions И использую модель Миллера Такера Землина для удаления субциклов. Я не знаю, почему минимальное расстояние равно 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 (начальная точка).

...