model "cvicenie 3" !pr 4 Dopravna uloha / obmenz dopravnej ulohy

uses "mmxprs"

declarations
skl=(1..3)
zak=(1..4)
a : array(skl) of real;
b : array(zak) of real;
c : array(1..3, 1..4) of real;
x : array(skl, zak) of mpvar;
y : mpvar; !zadanie 2), 3), 5)
z : mpvar !zadanie 4)
end-declarations

a := [100, 150, 200]
b := [80, 80, 140, 80]
c := [4, 8, 9, 5, 7, 6, 6, 4, 8, 6, 9, 6]

NAKL := sum (i in skl, j in zak)c(i,j)*x(i,j) !+ 2000*y + 1000*z!ucelova fcia

forall(i in skl) sum(j in zak) x(i,j) <= a(i)
forall(j in zak) sum(i in skl) x(i,j)  = b(j)
! zadanie 1) x(2,3)<=50

!Zadanie 2) a sucasne 1)
!y is_binary
!x(2,3)<=50*y

!zadanie 3)
!y is_binary
!x(2,3)-50<=90*y

!zadanie 4)
!y is_binary
!x(2,3)-30<=110*y
!x(2,3)-50<=90*z

!Zadanie 5)
y >= 0 
forall(i in 1..3,j in 1..4) x (i,j) <=y


!prikaz optimalizacie
minimize(y);

!Vypis Riesenia

writeln("Naklady = ", strfmt(getobjval,6,1))
writeln
forall(i in skl) do
  forall(j in zak|getsol(x(i,j))>0) do
     write("X(", i, ",", j, ") =", strfmt(getsol(x(i,j)), 5, 1), " ");
  end-do
  writeln;
  end-do 

end-model
