Free cookie consent management tool by TermsFeed Policy Generator

source: branches/OptimizationNetworks/HeuristicLab.Problems.FacilityLocation.CplexSolver/3.3/FLP_2.mod @ 14646

Last change on this file since 14646 was 14646, checked in by abeham, 7 years ago

#2205: Added version of FLP that minimizes opening costs only

File size: 1.2 KB
Line 
1//Capacitated Facility Location Problem:
2 
3int I = ...;
4int J = ...;
5float f[0..(I-1)] = ...;        //Kosten Depot i
6float s[0..(I-1)] = ...;        //KAP Depot i
7float d[0..(J-1)] = ...;        //Bedarf Kunde j
8float c[0..(I-1)][0..(J-1)] = ...;    //Wegkosten von i nach j
9
10range RI = 0..(I-1);
11range RJ = 0..(J-1);
12 
13dvar float+ x[0..(I-1)][0..(J-1)];    //Transportmenge
14dvar boolean y[0..(I-1)];       //Eröffnung Depot i
15dvar boolean z[0..(I-1)][0..(J-1)];   //Depot i beliefert Kunde j
16
17minimize
18( sum ( i in 0..(I-1) ) ( f[i] * y[i] ) );
19
20
21subject to
22{
23  //Für jedes Depot gilt: Ausliefermenge x kann maximal so groß sein wie Depot-KAP y
24  forall ( i in 0..(I-1) )
25    sum ( j in 0..(J-1) ) ( x[i][j] ) <= s[i] * y[i];
26 
27  //Die Ausliefermenge x kann maximal so groß sein wie der Bedarf des Kunden und es kann nur ausgeliefert werden, wenn das Depot eröffnet wird
28  forall ( i in 0..(I-1), j in 0..(J-1) )
29    ( x[i][j] ) == ( d[j] * z[i][j] );
30 
31  //Jeder Kunde muss insgesamt genau den Bedarf d geliefert bekommen:
32  forall ( j in 0..(J-1) )
33    sum ( i in 0..(I-1) )  ( x[i][j] ) == d[j];
34 
35  forall ( j in 0..(J-1) )
36    sum ( i in 0..(I-1) ) ( z[i][j] ) == 1;   
37
38  forall ( i in 0..(I-1) )
39    sum ( j in 0..(J-1) ) z[i][j] <= J * y[i];
40}
Note: See TracBrowser for help on using the repository browser.