61 lines
2.5 KiB
Plaintext
61 lines
2.5 KiB
Plaintext
##################################################################3
|
|
# Modelos de enrutamiento vehicular - Ejemplos
|
|
# Modelo ACVRP de 2 índices
|
|
#
|
|
# Instancia 0
|
|
# Adaptada de la instancia F-n72-k4.vrp de Fisher
|
|
##################################################################3
|
|
|
|
|
|
set N := {1..10};
|
|
set V := N + {0};
|
|
set A := { <i,j> in V*V };
|
|
set S[] := powerset(N);
|
|
set H := indexset(S);
|
|
|
|
param costo[A] :=
|
|
| 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 |
|
|
|0 | 0 , 19.8947 , 13.6821 , 15.9687 , 19.7434 , 23.1344 , 18.6494 , 15.9311 , 24.224 , 23.0369 , 28.6967 |
|
|
|1 | 17.4557 , 0 , 11.0363 , 13.3866 , 7.42967 , 11.8617 , 7.34847 , 4.89898 , 12.3085 , 10.7331 , 19.2562 |
|
|
|2 | 15.6461 , 13.5167 ,0 , 3.1305 , 18.8229 , 23.7487 , 18.0748 , 7.52994 , 24.5194 , 22.8801 , 31.2202 |
|
|
|3 | 18.9077 , 16.3951 , 3.83406 , 0 , 22.289 , 27.2158 , 21.6056 , 10.6207 , 27.9339 , 26.2907 , 34.7275 |
|
|
|4 | 16.1462 , 6.0663 , 15.3688 , 18.1989 , 0 , 4.9295 , 0.89442 , 9.63328 , 5.71839 , 4.09878 , 12.4419 |
|
|
|5 | 18.8892 , 9.68504 , 19.3907 , 22.2216 , 4.02492 , 0 , 4.66905 , 13.6308 , 1.09545 , 1 , 7.52994 |
|
|
|6 | 15.2545 , 6 , 14.758 , 17.6409 , 1.09545 , 5.71839 , 0 , 9.16515 , 6.59545 , 5.01996 , 13.1453 |
|
|
|7 | 15.3851 , 6 , 6.14817 , 8.67179 , 11.7983 , 16.6943 , 11.225 , 0 , 17.3638 , 15.7226 , 24.224 |
|
|
|8 | 19.7788 , 10.0499 , 20.02 , 22.8079 , 4.66905 , 0.89442 , 5.38516 , 14.1774 , 0 , 1.34164 , 6.94982 |
|
|
|9 | 18.8096 , 8.76356 , 18.6815 , 21.4663 , 3.34664 , 1.22474 , 4.09878 , 12.8374 , 1.64317 , 0 , 8.5557 |
|
|
|10 | 23.4307 , 15.7226 , 25.4912 , 28.3549 , 10.1587 , 6.14817 , 10.7331 , 19.7788 , 5.6745 , 6.9857 , 0 |;
|
|
|
|
param demandas[N] :=
|
|
<1> 1135,
|
|
<2> 7063,
|
|
<3> 51,
|
|
<4> 23,
|
|
<5> 3074,
|
|
<6> 349,
|
|
<7> 1047,
|
|
<8> 698,
|
|
<9> 3001,
|
|
<10> 31;
|
|
|
|
param K:= 4; # número de vehículos
|
|
param C:= 7200; # capacidad de los vehículos
|
|
|
|
defnumb r(h):= ceil((sum <i> in S[h] : demandas[i]) / C);
|
|
|
|
var x[A] binary;
|
|
|
|
minimize costo_total : sum <i,j> in A : costo[i,j] * x[i,j];
|
|
subto grado_sal_cliente : forall <i> in N do
|
|
sum <i,j> in A : x[i,j] == 1;
|
|
subto grado_ent_cliente : forall <i> in N do
|
|
sum <j,i> in A : x[j,i] == 1;
|
|
subto grado_sal_deposito :
|
|
sum <j> in N : x[0,j] == K;
|
|
subto grado_ent_deposito :
|
|
sum <j> in N : x[j,0] == K;
|
|
subto capacidad_corte : forall <h> in H with card(S[h])>0 do
|
|
sum <i,j> in A with (<i> in S[h]) and (<j> in V - S[h]) : x[i,j] >= r(h);
|
|
|