1. A method of determining a communications network structure, comprising the steps of: iteratively performing the steps of: generating a cost value for a network architecture; performing an availability analysis to identify which traffic-carrying paths, if any, have availability values below a predetermined threshold; and improving the network architecture responsive to the identified traffic-carrying paths.