Some tips about ILP transformaion using binary variables.
- Logic
- Conjunction, A and B, A∩B => a+b = 2
- Disjunction, A or B, A∪B => a+b ≥ 1
- if A then B, A→B, ~A∪B => a ≤ b
- A if only if B, A↔B => a = b
- A = ~B => a+b = 1
- C = A∩B => c ≤ a, c ≤ b, c ≥ a+b-1
- C = A∪B => c ≥ a, c ≥ b, c ≤ a+b