The cardinality-constrained paths problem: Multicast data routing in heterogeneous communication networks