set StartObiekty; 
set Obiekty; 
set Elektrownie; 
 
param c{i in StartObiekty, j in Obiekty}; 
param u{i in StartObiekty, j in Obiekty}; 
param Z{p in Elektrownie}; 
 
var f{i in StartObiekty, j in Obiekty}, >= 0; 
 
minimize Q: sum {i in Obiekty, j in Obiekty} c[i,j] * f[i,j]; 
 
subject to 
  Ogr_1{i in StartObiekty, j in Obiekty}: 
    f[i,j] >= 0; 
  Ogr_2{i in StartObiekty, j in Obiekty}: 
    f[i,j] <= u[i,j]; 
  Ogr_3{p in Elektrownie}: 
      sum {n in StartObiekty} f[n,p] >= Z[p]; 
  Ogr_4{n in Obiekty}: 
    sum {i in Obiekty} f[n,i] <= sum {j in StartObiekty} f[j,n]; 
 
solve; 
display {i in Obiekty, j in Obiekty: f[i,j] > 0}: f[i,j]; 
data; 
 
set StartObiekty := s, A, B, C, D, E, F, G, H; 
set Obiekty := A, B, C, D, E, F, G, H; 
set Elektrownie := F, G, H; 
 
param c := 
s A 0 s B 0 s C 0 A D 3 B D 6 B E 2 C D 4 C H 5 D E 3 D F 5 D G 7 D H 3 
E D 3 E F 2 E G 4 s D 0 s E 0 s F 0 s G 0 s H 0 A A 0 A B 0 A C 0 A E 0 
A F 0 A G 0 A H 0 B A 0 B B 0 B C 0 B F 0 B G 0 B H 0 C A 0 C B 0 C C 0 
C E 0 C F 0 C G 0 D A 0 D B 0 D C 0 D D 0 E A 0 E B 0 E C 0 E E 0 E H 0 
F A 0 F B 0 F C 0 F D 0 F E 0 F F 0 F G 0 F H 0 G A 0 G B 0 G C 0 G D 0 
G E 0 G F 0 G G 0 G H 0 H A 0 H B 0 H C 0 H D 0 H E 0 H F 0 H G 0 H H 0; 
 
param u := 
s A 10 s B 13 s C 17 A D 9  B D 5  B E 13 C D 6  C H 7  D E 15 D F 11 D G 7 D H 4 
E D 15 E F 10 E G 14 s D 0  s E 0  s F 0  s G 0  s H 0  A A 0  A B 0  A C 0 A E 0 
A F 0  A G 0  A H 0  B A 0  B B 0  B C 0  B F 0  B G 0  B H 0  C A 0  C B 0 C C 0 
C E 0  C F 0  C G 0  D A 0  D B 0  D C 0  D D 0  E A 0  E B 0  E C 0  E E 0 E H 0 
F A 0  F B 0  F C 0  F D 0  F E 0  F F 0  F G 0  F H 0  G A 0  G B 0  G C 0 G D 0 
G E 0  G F 0  G G 0  G H 0  H A 0  H B 0  H C 0  H D 0  H E 0  H F 0  H G 0 H H 0; 
 
param Z := F 15 G 12 H 8; 
 
end; 