After solving the problem, have a look at the left and right sides of "sum{e in DSTRCTS} y[d,e] <= U":
ampl: display {d in DSTRCTS} (sum{e in DSTRCTS} y[d,e]), U;
sum{e in DSTRCTS} y[d,e] [*] :=
A 2
B 0
C 0
D 0
E 3
;
U = 2850
You can see that this constraint is not having any effect, because the value of param U is much larger than the optimal values of sum{e in DSTRCTS} y[d,e]. To make any difference to the solution, you will need to set U to be smaller than at least one of the values of sum{e in DSTRCTS} y[d,e].
The two "display" statements at the end of firehouse.mod and SAHC-hw7.mod are only displaying the values of x[d] and y[d,e] that are > 0 -- so necessarily the output is all 1's. If instead you write "display x, y;" then you will see both 0 and 1 values.
We're switching to a new, enhanced user forum.