So far we only considered the case of a single attribute, which is the
fully indistinguishable case. What about multiple attributes? We
consider two important cases of distinguishability based on whether
attributes get mixed up or not. If attributes are not intertwined,
i.e., each
in (1) is a single attribute, it is
straightforward to see that for
attributes, all we need to do is
to run the algorithm for a single attribute
times, once for each
attribute. Additional computation can then be performed to calculate
more complicated combinations. For example, if we want the lower and
upper bounds on the number of all targets for a shadow, then we can
simply add up individual lower and upper bounds.
For the second case in which we have multiple attributes grouped
together, above approach does not work. Using the example from
Fig. 11, suppose that there are two teams, red
and blue, and the initial conditions of shadows at
are of
the form
. Suppose that we want to
get the lower and upper bound of the number of targets in
again. For lower bounds, four computations are needed: first we set
red capacities to 0
and blue capacities to
for all edges
starting from
. The capacities for each color for edges ending in
are set as before. Running two max-flow computations, one for red
and one for blue, gives us one possible lower bound
. Switching red and blue and repeat above procedure gives us
another lower bound
. We should have
. The lower bound on
is then
red or blue targets with between
and
red
targets. The upper bound can be obtained similarly.