In the Constraint Aggregation method we replace several constraints by a single one

Constraint Aggregation Example

assume 0-1 problem

0-1 Problem

  • objective function:
    max Z = c1x1 + c1x1 + … + cnxn
  • linear constraints:
    a11x1 + a12x2 + … + a1nxn b1
    a21x1 + a22x2 + … + a2nxn b2
  • 0-1 variables:
    x1 ∈ {0,1}
    x2 ∈ {0,1}

    xn ∈ {0,1}

first convert the inequality constraints into equations, by introducing slack variables xn+1and xn+2

Augmented 0-1 Problem

  • objective function:
    max Z = c1x1 + c1x1 + … + cnxn
  • linear constraints:
    a11x1 + a12x2 + … + a1nxn+ a1n+1xn+1 + a1n+2xn+2= b1
    a21x1 + a22x2 + … + a2nxn+ a2n+1xn+1+ a1n+2xn+2= b2
  • 0-1 variables:
    x1 ∈ {0,1}
    x2 ∈ {0,1}

    xn ∈ {0,1}
  • integer slack variables:
    xn+1 ∈ {0, 1, …, b1}
    xn+2 ∈ {0, 1, …, b2}

where:

  • a1n+1 = 1
  • a1n+2 = 0
  • a2n+1 = 0
  • a2n+2 = 1

and:

  • xn+1is an integer value between 0 and b1
  • xn+2is an integer value between 0 and b2

it is clear that the 2 linear constraints:

  • (1) Σi=1n+2 [a1ixi] = b1
  • (2) Σi=1n+2 [a2ixi] = b2

imply the new one:

  • (3) Σi=1n+2 [(a1i+ ma2i)xi] = b1 + mb2

the question is how can we choose m such that the implication also holds in the opposite direction, that is, such that the aggregated constraint (3) implies (1) and (2)

aggregate constraint (3) implies:

  • (4) Σi=1n+2 [a1ixi] - b1+ m { Σi=1n+2 [a2ixi] - b2 } = 0

now observe that the value of Y:

  • Y = Σi=1n+2 [a1ixi] - b1

the following cases must hold about Y:

  • Y ≥ -b1
    • this is because both:
      • Σi=1n+2 [a1i] (i.e. summation of coefficients) may equal 0
      • b1 may be its maximum integer value b1
  • Y ≤ Σi=1n+2 [a1i]
    • this is because both:
      • Σi=1n+2 [a1i] may be some non-negative value
      • b1 may be its minimum integer value 0

so we have a bound on Y:

  • |Y| ≤ b1’ = max(b1, Σi=1n+2 [a1i])

now observe value Z:

  • Z = Σi=1n+2 [a2ixi] - b2

then using Y, Z, and equation (4) we get:

  • (5) Y + mZ = 0

how can this equality (5) hold?

possible cases:

  • if Y = Z = 0
    • obviously (1) and (2) are satisfied
  • if Z ≠ 0
    • then |Z| ≥ 1, being an integer
    • then Y must make the left hand side 0 in (5)
    • if, however, we choose m = b1’ + 1,

thus, with the choice of m = b1’ + 1, we can achieve that whenever the aggregated constraint (3) is satisfiable, both original constraints (1) and (2) will also be satisfiable. Of course, this is only guaranteed when the variables take their values from the allowed ranges

remark: we can assume that b1 ≤ Σi=1n [a1i] since otherwise the original constraint Σi=1n [a1ixi] ≤ b1 would always be satisfied, so we could simply leave it out. With this assumption the choice for the constant m becomes

  • m = 1 + Σi=1n [a1i]