1. A computer-implemented method for identifying fiber paths in a communications network, the computer implemented method comprising: identifying existing paths and nodes in the communications network; identifying potential customer nodes in the communications network, wherein each potential customer node is associated with a respective revenue value, each potential customer further requiring at least one of: a first working path; and a second working path and a protection path; identifying potential paths and nodes between the existing paths and nodes of the communications network and the potential customer nodes, wherein each potential path comprises at least one of a potential working path and a potential protection path; determining a cost for each potential working path in the communications network; determining a cost for each potential protection path in the communications network; providing one or more constraints to prohibit the existence of a potential working path and a potential protection path between two given nodes in the communications network if the potential working path and the potential protection path are traversing the nodes in the same direction; applying a mixed linear-integer algorithm to the existing paths and nodes, the potential customer nodes and respective revenue values, the potential working paths and respective costs, the potential protection paths and costs, and the one or more constraints; and identifying, from the algorithm, the potential customers and the potential paths necessary to maximize the net present value of the communications network.