The LP and MPS input formats do not require that all variable upper and lower bounds be given explicitly. The QSopt parser assumes by default that variables are greater than or equal to zero and have no upper bound. Integer variables are assumed to be binary, that is, they have a lower bound of 0 and an upper bound of 1. The bounds sections in LP and MPS files are used to define different variable bounds. When defining variable bounds keep the following rules in mind.

  1. A variable's upper bound must be greater than or equal to its lower bound.
  2. Negative infinity may not be used as an upper bound and positive infinity may not be used as lower bound.
  3. If a variable's upper bound is defined either as a nonnegative number or as positive infinity, then its lower bound defaults to zero. Thus defining a zero upper bound without defining a lower bound fixes a variable to zero.
  4. If a variable's upper bound is defined as negative number its lower bound defaults to negative infinity.
  5. If a variable's lower bound is defined either as a negative number or as negative infinity, then its upper bound defaults to zero.
  6. If a variable's lower bound is defined either as zero or as a positive number, then its upper bound is assumed to be positive infinity.