Without the z(i, j) = y(i, j) constraints, the objective would decompose into the separate maximizations z * = argmax z∈Z f (z), and y * = argmax y∈Y h(y), which can be easily solved using dynamic programming and MST, respectively.
it is these constraints that complicate the optimization.