SimulatedAnnealing(MetroGraphData metroGraphData, BundlingSettings bundlingSettings)
 {
     this.metroGraphData   = metroGraphData;
     this.bundlingSettings = bundlingSettings;
     costCalculator        = new CostCalculator(metroGraphData, bundlingSettings);
     cache = new IntersectionCache(metroGraphData, bundlingSettings, costCalculator, metroGraphData.Cdt);
 }
 SimulatedAnnealing(MetroGraphData metroGraphData, BundlingSettings bundlingSettings) {
     this.metroGraphData = metroGraphData;
     this.bundlingSettings = bundlingSettings;
     costCalculator = new CostCalculator(metroGraphData, bundlingSettings);
     cache = new IntersectionCache(metroGraphData, bundlingSettings, costCalculator, metroGraphData.Cdt);
 }