0

I like to have your ideas how I can prioritize variables in integer programming using a constraint (not changing the objective function). Consider following proble

Min x1+x2+x3+x4+5*x5+6*x6
subject to
x1+x2+x3+x4+x5+x6>=2
xi is {0,1}

The solution is clear, two arbitrary variables

xj (j in{1,2,3,4}) should be 1.

Now, consider I have a priority function to be simultaneously maximized, like this one:

1*x1+2*x2+3*x3+4*x4+5*x5+6*x6.

With this, the solution is unique:

x3=x4=1

How I can force this priority to my LP through constraints (not the objective function)?

1 Answers1

2

This is essentially a multi-objective problem. A standard method is:

Step 1: Solve

Min z = x1+x2+x3+x4+5*x5+6*x6
x1+x2+x3+x4+x5+x6>=2
x in {0,1}

Let z* be the optimal objective.

Step 2: Now solve

min 1*x1+2*x2+3*x3+4*x4+5*x5+6*x6
x1+x2+x3+x4+5*x5+6*x6 = z*
x1+x2+x3+x4+x5+x6>=2
x in {0,1}
Erwin Kalvelagen
  • 15,677
  • 2
  • 14
  • 39