So I'm pretty sure that its not possible to set up a linear-program that has non-binary mutually exclusive variables (but would love to be wrong here).
It seems like it would be possible to solve the problem through "brute force" and create a bunch of "sub-linear-programs" by removing all exclusive variables except one, and iterating until you've gone through each combination.
However, this seems wasteful and prone to combinatorial explosion.
For example, say you're solving a problem where you have the mutually exclusive variables of :
Set A: [dog, cat]
Set B: [diet-coke, Mentos]
This approach would require me to build 4 linear programs; and take the best result.
Is there a better way to tackle this problem?
Let $y_{dog}$ and $y_{cat}$ be binary variables that take value $1$ if and only if the dog and cat are selected, respectively. Let $x_{dog}$ and $x_{cat}$ be the number of dogs, cats that are selected.
You cannot select a cat and a dog : $$ y_{dog}+y_{cat} = 1 $$
If the number of dogs/cats that are selected is larger than $1$, then the corresonding binary variables takes value $1$: $$ x_{dog} \le M y_{dog} \\ x_{cat} \le M y_{cat} $$
$M$ is a large constant. This way, if $x_{dog} \ge 1$, then $y_{dog}$ must take value $1$. And if $y_{dog}=0$, then necessarily $x_{dog}=0$. Likewise for $x_{cat}$.