Network coding theory is the most general study of transmission of information in networks whose vertices may perform nontrivial encoding and decoding operations on data as it passes through the network. A solution to a network coding problem is a specification of a coding function on each edge of the network. This specification is subject to constraints that ensure the existence of a protocol by which the messages on each vertex's outgoing edges can be computed from the data it received on its incoming edges. In directed acyclic graphs it is clear how to verify these causality constraints, but in graphs with cycles this becomes more subtle because of the possibility of cyclic dependencies among the coding functions. Sometimes the system of coding functions is serializable -- meaning that the cyclic dependencies (if any) can be "unraveled" by a protocol in which a vertex sends a few bits of its outgoing messages, waits to receive more information, then send a few more bits, and so on -- but in other cases, there is no way to eliminate a cyclic dependency by an appropriate sequencing of partial messages. How can we decide whether a given system of coding functions is serializable? When it is not serializable, how much extra information must be transmitted in order to permit a serialization? Our work addresses both of these questions. We show that the first one is decidable in polynomial time, whereas the second one is NP-hard, and in fact it is logarithmically inapproximable.
['Anna Blasiak', 'Robert Kleinberg']
The serializability of network codes