Appendice 3
3.1 L’operativo voli di martedì 16 Gennaio
FLIGH
STND GATE
STA
STD
FREQ
A/M
FROM
TO
ADH-AP 0105
4
0205
23456
734-162
FCO
SOS
RYR-FR 9311
2
3
0615
0615
246
738-189
SOS
TRF
RYR-FR 0587
5
24
0635
0635
DAILY
738-189
SOS
STN
AZA-AZ 1650
45
6
0650
0650
DAILY
A72-066
SOS
MXP
ADH-AP 6165
4
4
0700
0700
DAILY
734-162
SOS
ROM
FDX-FX 8045
30
0710
2345
AT7-PL0
CDG
SOS
AZA-AZ 1662
7
1
0720
0720
DAILY
A72-066
SOS
FCO
DHL-ER 7482
1
0750
2345
AB3-PL0
BGY
SOS
DLH-LH 4049
6
5
0755
0755
DAILY
A72-064
SOS
MUC
AFR-AF 1566/1567
2
1
0920
0955
DAILY
CRJ-050
CDG
CDG
RYR-FR 9987/0563
4
21
0930
0955
246
738-189
TPS
BOH
ADH-AP 6164/6890
6
6
0935
1010
DAILY
CRJ-090
FCO
CTA
RYR-FR 0584/0585
3
22
0945
1010
DAILY
738-189
STN
STN
AZA-AZ 1665/1666
2
1
1040
1115
DAILY
A72-066
FCO
FCO
DLH-LH 4044
45
1045
DAILY
A72-064
MUC
SOS
IBE-IB 8676/8677
6
5
1110
1145
12345
CRJ-050
BCN
BCN
RYR-FR 0586/9926
4
3
1130
1155
DAILY
738-189
STN
AHO
AZA-AZ 1653/1656
2
6
1135
1210
DAILY
A72-066
MXP
MXP
RYR-FR 9312/9923
3
1
1210
1235
246
738-189
TRF
EIN
IBE-IB 8824/8823
6
4
1215
1245
12345
CRJ-050
MAD
MAD
BAW-BA 2600/2601
4
8
1215
1300
DAILY
73J-140
LGW
LGW
EEZ-GJ 7822/7822
1240
1330
2
32E-180
SSH AOI
SSH
JET-IV 0542/0541
4
3
1315
1415
23467
320-180
CTA
CTA
AZA-AZ 1667/1668
2
6
1425
1500
DAILY
EM4-048
FCO
FCO
RYR-FR 9927/9325
3
1
1435
1525
DAILY
738-189
AHO
VLC
RYR-FR 0564/9992
4
21
1440
1530
24
738-189
BOH
MLA
AFR-AF 2166/2167
6
5
1520
1605
12345
CRJ-050
PAR
PAR
AZA-AZ 1655/1658
7
6
1605
1710
DAILY
A72-066
MXP
MXP
RYR-FR 1234/1235
4
3
1640
1705
246
738-189
HHN
HHN
ADH-AP 6156/6157
6
5
1645
1730
DAILY
CRJ-090
NAP
NAP
RYR-FR 9924/9341
3
1
1645
1735
246
738-189
EIN
SVQ
BAW-BA 2602/2603
4
8
1725
1810
DAILY
73J-140
LGW
LGW
DLH-LH 4047
45
5
1830
1830
DAILY
A72-064
SOS
MUC
ADH-AP 6891/6171
6
6
1840
1915
DAILY
CRJ-090
CTA
FCO
AZA-AZ 1669/1670
2
4
1900
1940
12345
M80-141
FCO
FCO
RYR-FR 9993/9931
4
3
1920
1945
24
738-189
MLA
CAG
RYR-FR 9326/9242
3
1
1950
2015
DAILY
738-189
VLC
GRO
AFR-AF 1066/1067
6
6
2015
2045
DAILY
CRJ-050
CDG
CDG
EZY-U2 4213/4214
4
4
2025
2050
2345
319-156
ORY
ORY
RYR-FR 3745/3746
3
1
2035
2100
24
738-189
CRL
CRL
DHL-ER 7413
1
2050
2050
2345
AB3-PL0
SOS
BGY
FDX-FX 7045
30
2115
2115
1234
AT7-PL0
SOS
MXP
ADH-AP 6170
6
2150
DAILY
734-162
ROM
SOS
RYR-FR 0588/0589
3
22
2150
2215
246
738-189
STN
STN
AZA-AZ 1659
2155
DAILY
A72-066
MXP
SOS
AZA-AZ 1673
2220
DAILY
A72-066
FCO
SOS
DLH-LH 4048
2
2235
DAILY
A72-064
MUC
SOS
RYR-FR 9932
2300
24
738-189
CAG
SOS
RYR-FR 9342
2330
246
738-189
SVQ
SOS
RYR-FR 9241
2330
DAILY
738-189
GRO
SOS
3.2 Il modello e i dati nell’organizzazione con i turni
turni_con_x.mod
#DICHIARAZIONE DEGLI INSIEMI
set voli;
set stand;
set timeslot;
set operai;
set op_spec within operai;
set op_com within operai;
set op_bus within operai;
set turni;
#DICHIARAZIONE DEI PARAMETRI
param costi{operai};
param DS{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori specializzati
param DC{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori comuni
param BS{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori bus per sbarcare
param BI{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori bus per imbarcare
param CNT{v in voli, t in timeslot};
#indica in quali timeslot del turnaround ci possono essere op specializzati per controlli
param tscnt{v in voli};
#indica per ogni volo quanti timeslot sono dedicati al controllo
param accogl_stand{v in voli, s in stand};
#matrice che indica quali stand possono accogliere quali voli
param num_op{v in voli};
#indica quanti operatori devo associare per ogni volo
param sim{vi in voli, vj in voli}; #indica quali voli sono simultanei
param cond{si in stand, sj in stand};
#indica quali stand possono condividere uno stesso operatore
param bussb{s in stand};
#indica quali stand necessitano di bus per lo sbarco passeggeri
param busimb{s in stand};
#indica quali stand necessitano di bus per l'imbarco passeggeri
param copertura{tur in turni,t in timeslot};
#indica, su tutti i turni, quali timeslot sono coperti da un turno
#DICHIARAZIONE DELLE VARIABILI
var x{o in op_spec union op_com, v in voli},>=0, binary; #vale 1 se un operaio o è assegnato ad un volo v, 0 altrimenti
var z{s in stand, v in voli},>=0, binary;
var yc{o in op_com, v in voli, t in timeslot: DC[v,t]>=1},>=0, binary;
#vale 1 se un operaio comune o è occupato in un timeslot t per un volo v, 0 altrimenti
var ys{o in op_spec, v in voli, t in timeslot: DC[v,t]+DS[v,t]+CNT[v,t]>=1},>=0, binary; #vale 1 se un operaio specializzato o è occupato in un timeslot t per un volo v, 0
altrimenti
var yb{o in op_bus, v in voli, t in timeslot: BS[v,t]+BI[v,t]>=1},>=0, binary; #vale 1 se un operaio bus o è occupato in un timeslot t per un volo v, 0 altrimenti
var f{o in operai, tur in turni},>=0, binary;
#vale 1 se l'operio o è stato assegnato ad un turno tur, 0 altrimenti
#DICHIARAZIONE DELLA FUNZIONE OBIETTIVO
minimize numero_operai_in_turno: sum{o in operai,tur in turni} f[o,tur]*costi[o] + sum{o in op_com, v in voli, t in timeslot: DC[v,t]>=1} yc[o,v,t]
+ sum{o in op_spec, v in voli, t in timeslot: DC[v,t]+DS[v,t]+CNT[v,t]>=1} ys[o,v,t] + sum{o in op_bus, v in voli, t in timeslot: BS[v,t]+BI[v,t]>=1} yb[o,v,t]
+ sum{o in op_spec union op_com, v in voli} x[o,v] ;
#DICHIARAZIONE DEI VINCOLI
#(1)
subject to occupazione_assegnamento_c{o in op_com, v in voli}: sum{t in timeslot: DC[v,t]>=1} yc[o,v,t] <= 12*x[o,v] ;
subject to occupazione_assegnamento_s{o in op_spec, v in voli}:
sum{t in timeslot: DC[v,t]+DS[v,t]+CNT[v,t]>=1} ys[o,v,t] <= 12*x[o,v] ;
#(2)
subject to occupazione_un_timeslot_c{t in timeslot, o in op_com}:
sum{v in voli: DC[v,t]>=1} yc[o,v,t] <= sum{tur in turni : copertura[tur,t]=1} f[o,tur] ;
subject to occupazione_un_timeslot_s{t in timeslot, o in op_spec}:
sum{v in voli: DC[v,t]+DS[v,t]+CNT[v,t]>=1} ys[o,v,t] <= sum{tur in turni : copertura[tur,t]=1} f[o,tur];
subject to occupazione_un_timeslot_b{t in timeslot, o in op_bus}:
sum{v in voli: BS[v,t]+BI[v,t]>=1} yb[o,v,t] <= sum{tur in turni : copertura[tur,t]=1} f[o,tur];
#(3)
subject to num_op_spec{v in voli, t in timeslot: DS[v,t]>=1}: sum{o in op_spec} ys[o,v,t] >= DS[v,t];
#(4)
subject to num_op_com{v in voli, t in timeslot: DC[v,t]>=1}:
sum{o in op_com} yc[o,v,t] + sum{o in op_spec} ys[o,v,t] >= DC[v,t]+DS[v,t];
#(5)
subject to op_bus_sbarco{v in voli, t in timeslot, s in stand: (BS[v,t]=1 and bussb[s]=1)}: sum{o in op_bus} yb[o,v,t] >= z[s,v];
#(6)
subject to op_bus_imbarco{v in voli, t in timeslot, s in stand: (BI[v,t]=1 and busimb[s]=1)}:
sum{o in op_bus} yb[o,v,t] >= z[s,v];
#(7)
subject to assegnamento_controlli{v in voli}:
sum{t in timeslot, o in op_spec: CNT[v,t]>=1} ys[o,v,t] >= tscnt[v] ;
#(8)
subject to assegnamento_voli_stand{v in voli}: sum{s in stand} accogl_stand[v,s]*z[s,v] = 1 ;
#(9)
subject to condivisione{o in op_spec union op_com, vi in voli, vj in voli, si in stand, sj in stand:
(vi <> vj and sim[vi,vj]=1 and si <> sj and cond[si,sj]=0)}: x[o,vi] + x[o,vj] + z[si,vi] + z[sj,vj] <= 3 ;
#(10)
subject to assegn_stand{s in stand, vi in voli, vj in voli: vi <> vj and sim[vi,vj]=1}: z[s,vi] + z[s,vj] <= 1 ;
#(11)
subject to un_op_un_turno{o in operai}: sum{tur in turni} f[o,tur] <= 1 ;
turni_senza_x.mod
#DICHIARAZIONE DEGLI INSIEMI
set voli;
set stand;
set timeslot;
set operai;
set op_spec within operai;
set op_com within operai;
set op_bus within operai;
set turni;
#DICHIARAZIONE DEI PARAMETRI
param costi{operai};
param DS{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori specializzati
param DC{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori comuni
param BS{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori bus per sbarcare
param BI{v in voli, t in timeslot};
#indica in quali timeslot del turnaround c'è richiesta di operatori bus per imbarcare
param CNT{v in voli, t in timeslot};
#indica in quali timeslot del turnaround ci possono essere operatori specializzati per i controlli
param tscnt{v in voli};
#indica per ogni volo quanti timeslot sono dedicati al controllo
param accogl_stand{v in voli, s in stand};
#matrice che indica quali stand possono accogliere quali voli
param num_op{v in voli};
#indica quanti operatori devo associare per ogni volo
param sim{vi in voli, vj in voli}; #indica quali voli sono simultanei
param cond{si in stand, sj in stand};
#indica quali stand possono condividere uno stesso operatore
param bussb{s in stand};
#indica quali stand necessitano di bus per lo sbarco passeggeri
param busimb{s in stand};
param copertura{tur in turni,t in timeslot};
#indica, su tutti i turni, quali timeslot sono coperti da un turno
#DICHIARAZIONE DELLE VARIABILI
var z{s in stand, v in voli},>=0, binary;
#vale 1 se un volo v è assegnato ad uno stand s, 0 altrimenti
var yc{o in op_com, v in voli, t in timeslot: DC[v,t]>=1},>=0, binary;
#vale 1 se un operaio comune o è occupato in un timeslot t per un volo v, 0 altrimenti
var ys{o in op_spec, v in voli, t in timeslot: DC[v,t]+DS[v,t]+CNT[v,t]>=1},>=0,binary; #vale 1 se un operaio specializzato o è occupato in un timeslot t per un volo v, 0 altrimenti
var yb{o in op_bus, v in voli, t in timeslot: BS[v,t]+BI[v,t]>=1},>=0, binary; #vale 1 se un operaio bus o è occupato in un timeslot t per un volo v, 0 altrimenti
var f{o in operai, tur in turni},>=0, binary;
#vale 1 se l'operio o è stato assegnato ad un turno tur, 0 altrimenti
#DICHIARAZIONE DELLA FUNZIONE OBIETTIVO
minimize numero_operai_in_turno: sum{o in operai,tur in turni} f[o,tur]*costi[o]
+ sum{o in op_com, v in voli, t in timeslot: DC[v,t]>=1} yc[o,v,t]
+ sum{o in op_spec, v in voli, t in timeslot: DC[v,t]+DS[v,t]+CNT[v,t]>=1} ys[o,v,t]
+ sum{o in op_bus, v in voli, t in timeslot: BS[v,t]+BI[v,t]>=1} yb[o,v,t] ;
#DICHIARAZIONE DEI VINCOLI
#(1)
subject to occupazione_un_timeslot_c{t in timeslot, o in op_com}:
sum{v in voli: DC[v,t]>=1} yc[o,v,t] <= sum{tur in turni : copertura[tur,t]=1} f[o,tur] ;
subject to occupazione_un_timeslot_s{t in timeslot, o in op_spec}:
sum{v in voli: DC[v,t]+DS[v,t]+CNT[v,t]>=1} ys[o,v,t] <= sum{tur in turni : copertura[tur,t]=1} f[o,tur] ;
subject to occupazione_un_timeslot_b{t in timeslot, o in op_bus}:
sum{v in voli: BS[v,t]+BI[v,t]>=1} yb[o,v,t] <= sum{tur in turni : copertura[tur,t]=1} f[o,tur] ;
#(2)
subject to num_op_spec{v in voli, t in timeslot: DS[v,t]>=1}: sum{o in op_spec} ys[o,v,t] >= DS[v,t];
#(3)
subject to num_op_com{v in voli, t in timeslot: DC[v,t]>=1}:
sum{o in op_com} yc[o,v,t] + sum{o in op_spec} ys[o,v,t] >= DC[v,t]+DS[v,t];
#(4)
subject to op_bus_sbarco{v in voli, t in timeslot, s in stand: (BS[v,t]=1 and bussb[s]=1)}: sum{o in op_bus} yb[o,v,t] >= z[s,v];
#(5)
subject to op_bus_imbarco{v in voli, t in timeslot, s in stand: (BI[v,t]=1 and busimb[s]=1)}:
sum{o in op_bus} yb[o,v,t] >= z[s,v];
#(6)
subject to assegnamento_controlli{v in voli}:
sum{t in timeslot, o in op_spec: CNT[v,t]>=1} ys[o,v,t] >= tscnt[v] ;
#(7)
subject to assegnamento_voli_stand{v in voli}: sum{s in stand} accogl_stand[v,s]*z[s,v] = 1 ;
#(8)
subject to condivisione_s{o in op_spec, vi in voli, vj in voli, si in stand, sj in stand, ti in timeslot, tj in timeslot: (vi <> vj and sim[vi,vj]=1 and si <> sj and cond[si,sj]=0 and ti <> tj and DC[vi,ti]+DS[vi,ti]+CNT[vi,ti]>=1 and DC[vj,tj]+DS[vj,tj]+CNT[vj,tj]>=1)}: ys[o,vi,ti] + ys[o,vj,tj] + z[si,vi] + z[sj,vj] <= 3 ;
subject to condivisione_c{o in op_com, vi in voli, vj in voli, si in stand, sj in stand, ti in timeslot, tj in timeslot: (vi <> vj and sim[vi,vj]=1 and si <> sj and cond[si,sj]=0 and ti <> tj and DC[vi,ti]>=1 and DC[vj,tj]>=1)}:
yc[o,vi,ti] + yc[o,vj,tj] + z[si,vi] + z[sj,vj] <= 3 ;
#(9)
subject to assegn_stand{s in stand, vi in voli, vj in voli: vi <> vj and sim[vi,vj]=1}: z[s,vi] + z[s,vj] <= 1 ;
#(10)
subject to un_op_un_turno{o in operai}: sum{tur in turni} f[o,tur] <= 1 ;
3voli_squadre.dat
set voli:= v31, v32, v33; set stand:= s2, s3, s4, s5;
set timeslot:= 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172;
set operai:= oc1, oc2, oc3, oc4, oc5, oc6, oc7, oc8, oc9, oc10, os1, os2, os3, os4, os5, os6, os7, os8, os9, os10, ob1, ob2, ob3;
set op_spec:= os1, os2, os3, os4, os5, os6, os7, os8, os9, os10; set op_com:= oc1, oc2, oc3, oc4, oc5, oc6, oc7, oc8, oc9, oc10; set op_bus:= ob1, ob2, ob3;
set turni:=tur1, tur2;
param costi:= oc1 1 oc2 1 oc3 1 oc4 1 oc5 1 oc6 1 oc7 1 oc8 1 oc9 1 oc10 1 os1 1.5 os2 1.5 os3 1.5 os4 1.5 os5 1.5 os6 1.5 os7 1.5 os8 1.5 os9 1.5 os10 1.5 ob1 1 ob2 1 ob3 1;
param: tscnt num_op:= v31 1 2 v32 2 3 v33 1 2;
param: bussb busimb:= s2 0 1 s3 0 0 s4 0 0 s5 1 1; param accogl_stand: s2 s3 s4 s5 := v31 1 1 1 1 v32 1 1 1 1 v33 1 1 1 1; param sim: v31 v32 v33 := v31 1 1 1 v32 1 1 1 v33 1 1 1; param cond: s2 s3 s4 s5:= s2 0 1 0 0 s3 1 0 1 0 s4 0 1 0 1 s5 0 0 1 0; param DC: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 := v31 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 v32 0 0 0 0 2 2 0 0 0 0 0 0 0 2 0 0 v33 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0; param DS: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 := v31 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 v32 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 v33 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1; param BS: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172:= v31 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 v32 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 v33 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0; param BI: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 := v31 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 v32 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 v33 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0; param CNT: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 := v31 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 v32 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 v33 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0;
param copertura: 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 := tur1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 tur2 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1;
3voli_attuale.dat
Il file di dati che descrive l’organiizazione attuale è uguale al file precedente (che
descrive l’organizzazione a squadre), con sola la differenza nella matrice cond;
in questo caso è la seguente:
param cond: s2 s3 s4 s5:= s2 0 0 0 0 s3 0 0 0 0 s4 0 0 0 0 s5 0 0 0 0;
9voli_squadre.dat
set voli:= v22, v23, v24, v25, v26, v27, v28, v29, v30; set stand:= s2, s3, s4, s5, s6, s7; set timeslot:= 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153;set operai:= oc1, oc2, oc3, oc4, oc5, oc6, oc7, oc8, oc9, oc10, oc11,
oc12,oc13,oc14,oc15,oc16,oc17,oc18,oc19,oc20,os1, os2, os3, os4, os5, os6,os7,os8,os9,os10,os11, os12, os13, os14, os15, os16, os17, os18, os19,os20, ob1, ob2, ob3, ob4;
set op_spec:= os1, os2, os3, os4, os5, os6,os7,os8,os9,os10,os11, os12, os13, os14, os15, os16, os17, os18, os19,os20;
set op_com:= oc1, oc2, oc3, oc4, oc5,oc6, oc7, oc8, oc9, oc10, oc11, oc12,oc13,oc14,oc15,oc16,oc17,oc18,oc19,oc20;
set op_bus:= ob1, ob2, ob3, ob4; set turni:= tur1, tur2;
param costi:= oc1 1 oc2 1 oc3 1 oc4 1 oc5 1 oc6 1 oc7 1 oc8 1 oc9 1 oc10 1 oc11 1 oc12 1 oc13 1 oc14 1 oc15 1 oc16 1 oc17 1 oc18 1 oc19 1 oc20 1 os1 1.5 os2 1.5 os3 1.5 os4 1.5 os5 1.5 os6 1.5 os7 1.5 os8 1.5 os9 1.5 os10 1.5 os11 1.5 os12 1.5 os13 1.5 os14 1.5 os15 1.5 os16 1.5 os17 1.5 os18 1.5 os19 1.5 os20 1.5 ob1 1 ob2 1 ob3 1 ob4 1;
param: tscnt num_op:= v22 1 2 v23 1 2 v24 1 2 v25 1 2 v26 1 2 v27 1 2 v28 1 2 v29 1 2 v30 2 3;
param: bussb busimb:= s2 0 1 s3 0 0 s4 0 0 s5 1 1 s6 1 1 s7 1 1; param accogl_stand: s2 s3 s4 s5 s6 s7:= v22 1 1 1 1 1 1 v23 1 1 1 1 1 1 v24 1 1 1 1 1 1 v25 1 1 1 1 1 1 v26 1 1 1 1 1 1 v27 1 1 1 1 1 1 v28 1 1 1 1 1 1 v29 1 1 1 1 1 1 v30 1 1 1 1 1 1 ; param sim: v22 v23 v24 v25 v26 v27 v28 v29 v30:= v22 1 1 1 0 0 0 0 0 0 v23 1 1 1 0 0 0 0 0 0 v24 1 1 1 0 0 0 0 0 0 v25 0 0 0 1 1 0 0 0 0 v26 0 0 0 1 1 1 0 0 0 v27 0 0 0 0 1 1 1 1 0 v28 0 0 0 0 0 1 1 1 1 v29 0 0 0 0 0 1 1 1 0 v30 0 0 0 0 0 0 1 0 1; param cond: s2 s3 s4 s5 s6 s7:= s2 0 1 0 0 0 0 s3 1 0 1 0 0 0 s4 0 1 0 1 0 0 s5 0 0 1 0 0 0 s6 0 0 0 0 0 1 s7 0 0 0 0 1 0;
param DC: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153:= v22 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v23 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v24 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v25 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 v29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 0 0 0 0 0 0 0 2 0 0 ; param DS: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153:= v22 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v23 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v24 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v25 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 v28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 v29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 v30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1;
param BI: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153:= v22 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v23 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v24 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 v29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0; param BS: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153:= v22 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v23 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v24 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v25 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0;
param CNT: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153:= v22 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v23 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v24 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v25 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v26 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v27 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v28 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v29 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 v30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0; param copertura:106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153:= tur1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 tur2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1;