1. Network simulation system for determining routes across a multi-layer system, the network simulation system comprising: an adaptor module configured to convert a multi-layer system into a multi-layer network of nodes and links; a first routing engine configured to determine a plurality of populations of paths, each population of paths corresponding to a route across a layer of the multi-layer network; a second routing engine configured to determine a plurality of multi-layer populations of paths, each multi-layer population of paths corresponding to a route across the multi-layer network and comprising populations of paths for at least two different layers of the multi-layer network selected from the plurality of populations of paths determined by the first routing engine; and an evolving module configured to mate at least two multi-layer populations of paths from the plurality of multi-layer populations of paths to create a third multi-layer population of paths.