Linear Programming unbounded status problem

996 Views Asked by At

I have set up a mixed-integer linear programming to solve in python. The (very) general form of the objective function is

minZ = costs1(i,j,k,l) + costs2(i,j,k,l) - profits(i,j,k,l)

There are 8 constraints, some that are related only to cost variables, some to cost and profits and some to profit variables only. I know the problem is feasible since when I run it for the objective set to 0 it reaches an optimal, but I get the message that it is unbounded.

Since we are talking about a minimization problem, is it correct to assume that some of the last 2 types of constraints (costs & profits or profits only) are the ones that are unbounded, causing the objective function to tend towards negative infinity within the feasibility set?

Should I focus on them or should I also look at the objective function?

The mathematical formulation can be found here: https://github.com/gdafn/factoryOptimization

1

There are 1 best solutions below

6
On

Since we are talking about a minimization problem,

Unboundedness isn’t related to whether we’re minimizing or maximizing, as you can always change a minimization to a maximization (and vice versa) by multiplying the objective by $-1$.

is it correct to assume that some of the last 2 types of constraints (costs & profits or profits only) are the ones that are unbounded,

It doesn’t really make sense to say that a constraint is unbounded. Any linear constraint $a^\text{T}x\leqslant{b}$ defines a closed halfspace—i.e. an unbounded region in $\mathbb{R}^n$. Constraints don’t cause unboundedness—they prevent it.

causing the objective function to tend towards negative infinity within the feasibility set? Should I focus on them or should I also look at the objective function?

This really depends on what you’re modeling! It could be that you’re missing some important constraints on your model (non-negative variables is a common one), or that your objective is incorrect (or both). Figuring out which one is the problem depends on the situation.

To get a more complete answer, it would be helpful if you provided the complete model.