The problem of constructing networks that are "survivable" with respect to branch damage is considered. A square redundancy matrix
![R = [r_{i,j}]](/images/tex/10966.gif)
is specified. Algorithms are given to construct a graph with minimum number of branches so that for all

there are 1) at least

undirected branch disjoint paths between the ith and the

th vertices, or 2) there are exactly

undirected branch disjoint paths between the ith and the jth vertices. These algorithms are closely related to the optimal realization of terminal capacity matrices. Two of the algorithms are extended to the optimal realization of terminal capacity matrices for symmetric or pseudosymmetric graphs.