0

I want to write a minimum function in OPL.

forall(p in P) sum(n in N)Q6[n][p]==(Max_Rema[p]*Dem[p])

forall(n in N)sum(p in P)Q6[n][p]<=sum(m in M)Q4[m][n];

I want that Q6 should be equal to minimum ofMax_Rema[p]*Dem[p] and sum(m in M)Q4[m][n], where Max_Rema and Dem[p] are parameters.

How to write this?

cokeman19
  • 2,405
  • 1
  • 25
  • 40
Manjot
  • 9
  • 4

1 Answers1

0

minl will do that

int minofs1=minl(1, 2 ,5 ,10, 7 ,8);
float minofs2=minl(2.5 ,1.522e2, -10.2);

dvar int x;
dvar int y;
dvar int z;

subject to
{
  x==4;
  y==7;
  z==minl(x,y);
}



execute
{
   writeln("minl(1, 2 ,5 ,10, 7 ,8) gives ",minofs1);
   writeln("minll(2.5 ,1.522e2, -10.2) gives ",minofs2);
   writeln(z);
}  

gives

minl(1, 2 ,5 ,10, 7 ,8) gives 1
minll(2.5 ,1.522e2, -10.2) gives -10.2
4
Alex Fleischer
  • 9,276
  • 2
  • 12
  • 15