Originally posted by: labrecheMustapha
Hi,
i have this code in my .mod file :
tuple Structures {
int i;
float failure_probability_threshold;
int failure_probability_value_category;
string h;
int consequence_economic;
string consequence_category;
string risk_category;
}
float scales_failure[1..2][l in Inspection_technic] = ...;
{Structures} structure = ...;
int consequence_economic[i in Cities] = sum(s in structure : s.i == i) s.consequence_economic;
float failure_probability_threshold[i in Cities]= sum(s in structure : s.i == i) s.failure_probability_threshold;
int prec[i in Cities][j in Cities] = consequence_economic[i] >= consequence_economic[j] ? 1 : 0;
int bes[i in Cities][l in Inspection_technic] = scales_failure[1][l] <= failure_probability_threshold[i] <= scales_failure[2][l] ? 1 : 0;
and my .dat:
n= 30;
m= 4;
p=4;
Inspection_technic = {"Visuelle" , "Technique", "Approfondie", "Reparation"};
State_health = {"Classe 0", "Classe 1" , "Classe 2", "Classe 2E", "Classe 3", "Classe 3U"};
subtours = {};
c_distance=0.01;
scales_failure=[[0.05, 0.2,0.5,0.7],[0.2, 0.5,0.7,0.9]];
c_inspection=[100, 300, 500, 2000];
structure = {
<1,0,0,"CLASSE 0",0,A,"Faible">
<2,0.549,3,"CLASSE 2U",5399672,E,"Élevé">
<3,0.237,2,"CLASSE 2",1844971,E,"Moyennement élevé">
<4,0.520,3,"CLASSE 2U",67445,E,"Élevé">
<5,0.187,1,"CLASSE 1",7040844,E,"Moyennement élevé">
<6,0.560,3,"CLASSE 2U",135904,E,"Élevé">
<7,0.674,4,"CLASSE 3",3418454,E,"Élevé">
<8,0.301,2,"CLASSE 2",9091194,E,"Moyennement élevé">
<9,0.699,4,"CLASSE 3",2870781,E,"Élevé">
<10,0.719,4,"CLASSE 3",4715930,E,"Élevé">
<11,0.467,3,"CLASSE 2U",544605,E,"Élevé">
<12,0.212,2,"CLASSE 2",4098,E,"Moyennement élevé">
<13,0.326,2,"CLASSE 2",374880,E,"Moyennement élevé">
<14,0.582,3,"CLASSE 2U",5379487,E,"Élevé">
<15,0.105,1,"CLASSE 1",7054188,E,"Moyennement élevé">
<16,0.703,4,"CLASSE 3",33695,E,"Élevé">
<17,0.457,3,"CLASSE 2U",6062818,E,"Élevé">
<18,0.641,4,"CLASSE 3",956381,E,"Élevé">
<19,0.295,2,"CLASSE 2",2003578,E,"Moyennement élevé">
<20,0.420,3,"CLASSE 2U",482416,E,"Élevé">
<21,0.512,3,"CLASSE 2U",1010892,E,"Élevé">
<22,0.681,4,"CLASSE 3",1992696,E,"Élevé">
<23,0.651,4,"CLASSE 3",131125,E,"Élevé">
<24,0.467,3,"CLASSE 2U",899181,E,"Élevé">
<25,0.540,3,"CLASSE 2U",8044070,E,"Élevé">
<26,0.748,4,"CLASSE 3",360487,E,"Élevé">
<27,0.720,4,"CLASSE 3",9885913,E,"Élevé">
<28,0.659,4,"CLASSE 3",602125,E,"Élevé">
<29,0.104,1,"CLASSE 1",131017,E,"Moyennement élevé">
<30,0.614,4,"CLASSE 3",3117981,E,"Élevé">};
I want to create array of tuple "structure", each tuple correspond to a periode cause in each periode there is an evolution of the parameters for exemple this is the set of all tuples that i want to get :
structure = {
<1,0,0,"CLASSE 0",0,A,"Faible">
<2,0.549,3,"CLASSE 2U",5399672,E,"Élevé">
<3,0.237,2,"CLASSE 2",1844971,E,"Moyennement élevé">
<4,0.520,3,"CLASSE 2U",67445,E,"Élevé">
<5,0.187,1,"CLASSE 1",7040844,E,"Moyennement élevé">
<6,0.560,3,"CLASSE 2U",135904,E,"Élevé">
<7,0.674,4,"CLASSE 3",3418454,E,"Élevé">
<8,0.301,2,"CLASSE 2",9091194,E,"Moyennement élevé">
<9,0.699,4,"CLASSE 3",2870781,E,"Élevé">
<10,0.719,4,"CLASSE 3",4715930,E,"Élevé">
<11,0.467,3,"CLASSE 2U",544605,E,"Élevé">
<12,0.212,2,"CLASSE 2",4098,E,"Moyennement élevé">
<13,0.326,2,"CLASSE 2",374880,E,"Moyennement élevé">
<14,0.582,3,"CLASSE 2U",5379487,E,"Élevé">
<15,0.105,1,"CLASSE 1",7054188,E,"Moyennement élevé">
<16,0.703,4,"CLASSE 3",33695,E,"Élevé">
<17,0.457,3,"CLASSE 2U",6062818,E,"Élevé">
<18,0.641,4,"CLASSE 3",956381,E,"Élevé">
<19,0.295,2,"CLASSE 2",2003578,E,"Moyennement élevé">
<20,0.420,3,"CLASSE 2U",482416,E,"Élevé">
<21,0.512,3,"CLASSE 2U",1010892,E,"Élevé">
<22,0.681,4,"CLASSE 3",1992696,E,"Élevé">
<23,0.651,4,"CLASSE 3",131125,E,"Élevé">
<24,0.467,3,"CLASSE 2U",899181,E,"Élevé">
<25,0.540,3,"CLASSE 2U",8044070,E,"Élevé">
<26,0.748,4,"CLASSE 3",360487,E,"Élevé">
<27,0.720,4,"CLASSE 3",9885913,E,"Élevé">
<28,0.659,4,"CLASSE 3",602125,E,"Élevé">
<29,0.104,1,"CLASSE 1",131017,E,"Moyennement élevé">
<30,0.614,4,"CLASSE 3",3117981,E,"Élevé">,
<1,0,0,"CLASSE 0",0,A,"Faible">
<2,0.579,3,"CLASSE 2U",5831645,E,"Élevé">
<3,0.257,2,"CLASSE 2",1955669,D,"Moyen">
<4,0.574,3,"CLASSE 2U",71492,B,"Faible">
<5,0.208,2,"CLASSE 2",7604111,E,"Moyennement élevé">
<6,0.599,3,"CLASSE 2U",142699,C,"Moyen">
<7,0.721,4,"CLASSE 3",3726115,D,"Moyennement élevé">
<8,0.325,2,"CLASSE 2",9545754,E,"Moyennement élevé">
<9,0.756,4,"CLASSE 3",3129151,D,"Moyennement élevé">
<10,0.785,4,"CLASSE 3",4951727,D,"Moyennement élevé">
<11,0.504,3,"CLASSE 2U",571835,C,"Moyen">
<12,0.226,2,"CLASSE 2",4385,A,"Faible">
<13,0.368,2,"CLASSE 2",397373,C,"Moyen">
<14,0.623,4,"CLASSE 3",5648461,E,"Élevé">
<15,0.115,1,"CLASSE 1",7406898,E,"Moyennement élevé">
<16,0.797,4,"CLASSE 3",36391,B,"Moyen">
<17,0.487,3,"CLASSE 2U",6487215,E,"Élevé">
<18,0.675,4,"CLASSE 3",1023327,D,"Moyennement élevé">
<19,0.313,2,"CLASSE 2",2163864,D,"Moyen">
<20,0.462,3,"CLASSE 2U",511361,C,"Moyen">
<21,0.544,3,"CLASSE 2U",1091764,D,"Moyennement élevé">
<22,0.736,4,"CLASSE 3",2152111,D,"Moyennement élevé">
<23,0.737,4,"CLASSE 3",141615,C,"Moyennement élevé">
<24,0.529,3,"CLASSE 2U",980107,C,"Moyen">
<25,0.609,4,"CLASSE 3",8768037,E,"Élevé">
<26,0.852,5,"CLASSE 3E",385722,C,"Moyennement élevé">
<27,0.779,4,"CLASSE 3",1038020,E,"Élevé">
<28,0.723,4,"CLASSE 3",644274,C,"Moyennement élevé">
<29,0.117,1,"CLASSE 1",138878,C,"Moyen">
<30,0.675,4,"CLASSE 3",3305059,D,"Moyennement élevé">,
<1,0,0,"CLASSE 0",0,A,"Faible">
<2,0.643,4,"CLASSE 3",5993636,E,"Élevé">
<3,0.300,2,"CLASSE 2",2047918,D,"Moyen">
<4,0.635,4,"CLASSE 3",72166,B,"Moyen">
<5,0.224,2,"CLASSE 2",7674520,E,"Moyennement élevé">
<6,0.719,4,"CLASSE 3",149495,C,"Moyennement élevé">
<7,0.803,5,"CLASSE 3E",3657746,D,"Élevé">
<8,0.357,2,"CLASSE 2",9727578,E,"Moyennement élevé">
<9,0.902,5,"CLASSE 3E",3157859,D,"Élevé">
<10,0.804,5,"CLASSE 3E",5093204,E,"Élevé">
<11,0.542,3,"CLASSE 2U",582727,C,"Moyen">
<12,0.272,2,"CLASSE 2",4426,A,"Faible">
<13,0.373,2,"CLASSE 2",412368,C,"Moyen">
<14,0.699,4,"CLASSE 3",5863641,E,"Élevé">
<15,0.127,1,"CLASSE 1",7759607,E,"Moyennement élevé">
<16,0.888,5,"CLASSE 3E",36728,B,"Moyennement élevé">
<17,0.555,3,"CLASSE 2U",6487215,E,"Élevé">
<18,0.756,4,"CLASSE 3",1042455,D,"Moyennement élevé">
<19,0.352,2,"CLASSE 2",2163864,D,"Moyen">
<20,0.517,3,"CLASSE 2U",516185,C,"Moyen">
<21,0.624,4,"CLASSE 3",1091764,D,"Moyennement élevé">
<22,0.840,5,"CLASSE 3E",2172038,D,"Élevé">
<23,0.762,4,"CLASSE 3",144237,C,"Moyennement élevé">
<24,0.530,3,"CLASSE 2U",971115,C,"Moyen">
<25,0.612,4,"CLASSE 3",8607155,E,"Élevé">
<26,0.912,5,"CLASSE 3E",385722,C,"Moyennement élevé">
<27,0.912,5,"CLASSE 3E",1067678,E,"Élevé">
<28,0.773,4,"CLASSE 3",662337,C,"Moyennement élevé">
<29,0.129,1,"CLASSE 1",141499,C,"Moyen">
<30,0.747,4,"CLASSE 3",3429779,D,"Moyennement élevé">,
<1,0,0,"CLASSE 0",0,A,"Faible">
<2,0.757,4,"CLASSE 3",5939639,E,"Élevé">
<3,0.318,2,"CLASSE 2",2047918,D,"Moyen">
<4,0.662,4,"CLASSE 3",74190,B,"Moyen">
<5,0.249,2,"CLASSE 2",7674520,E,"Moyennement élevé">
<6,0.738,4,"CLASSE 3",152213,C,"Moyennement élevé">
<7,0.874,5,"CLASSE 3E",3794484,D,"Élevé">
<8,0.383,2,"CLASSE 2",1009122,E,"Moyennement élevé">
<9,0.948,5,"CLASSE 3E",3215275,D,"Élevé">
<10,0.985,5,"CLASSE 3E",5281842,E,"Élevé">
<11,0.579,3,"CLASSE 2U",593619,C,"Moyen">
<12,0.276,2,"CLASSE 2",4467,A,"Faible">
<13,0.452,3,"CLASSE 2U",416117,C,"Moyen">
<14,0.775,4,"CLASSE 3",5863641,E,"Élevé">
<15,0.140,1,"CLASSE 1",7900691,E,"Moyennement élevé">
<16,0.918,5,"CLASSE 3E",36391,B,"Moyennement élevé">
<17,0.611,4,"CLASSE 3",6729728,E,"Élevé">
<18,0.821,5,"CLASSE 3E",1052019,D,"Élevé">
<19,0.389,2,"CLASSE 2",2183900,D,"Moyen">
<20,0.517,3,"CLASSE 2U",540306,C,"Moyen">
<21,0.683,4,"CLASSE 3",1122090,D,"Moyennement élevé">
<22,0.837,5,"CLASSE 3E",2191965,D,"Élevé">
<23,0.859,5,"CLASSE 3E",144237,C,"Moyennement élevé">
<24,0.657,4,"CLASSE 3",989099,C,"Moyennement élevé">
<25,0.703,4,"CLASSE 3",8687596,E,"Élevé">
<26,0.958,5,"CLASSE 3E",396536,C,"Moyennement élevé">
<27,0.904,5,"CLASSE 3E",1087450,E,"Élevé">
<28,0.868,5,"CLASSE 3E",662337,C,"Moyennement élevé">
<29,0.135,1,"CLASSE 1",142809,C,"Moyen">
<30,0.784,4,"CLASSE 3",3460958,D,"Moyennement élevé">
};
And i want to insert the periode in this parametrs
int consequence_economic[i in Cities] = sum(s in structure : s.i == i) s.consequence_economic;
float failure_probability_threshold[i in Cities]= sum(s in structure : s.i == i) s.failure_probability_threshold;
int prec[i in Cities][j in Cities] = consequence_economic[i] >= consequence_economic[j] ? 1 : 0;
int bes[i in Cities][l in Inspection_technic] = scales_failure[1][l] <= failure_probability_threshold[i] <= scales_failure[2][l] ? 1 : 0;
#CPLEXOptimizers#DecisionOptimization