To illustrate this model, consider the following location problem: A city is reviewing the location of its fire stations. The city is made up of a number of neighborhoods, as illustrated in Figure 1.
A fire station can be placed in any neighborhood. It is able to handle the fires for both its neighborhood and any adjacent neighborhood (any neighborhood with a non-zero border with its home neighborhood). The objective is to minimize the number of fire stations used.
We can create one variable for each neighborhood j. This variable will be 1 if we place a station in the neighborhood, and will be 0 otherwise. This leads to the following formulation
The first constraint states that there must be a station either in neighborhood 1 or in some adjacent neighborhood. The next constraint is for neighborhood 2 and so on. Notice that the constraint coefficient is 1 if neighborhood i is adjacent to neighborhood j or if i=j and 0 otherwise. The jth column of the constraint matrix represents the set of neighborhoods that can be served by a fire station in neighborhood j. We are asked to find a set of such subsets j that covers the set of all neighborhoods in the sense that every neighborhood appears in the service subset associated with at least one fire station.
One optimal solution to this is and the rest equal to 0.
This is an example of the set covering problem. The set covering problem is characterized by having binary variables, constraints each with a right hand side of 1, and having simply sums of variables as constraints. In general, the objective function can have any coefficients, though here it is of a particularly simple form.