public void RandomTest() { for (int i = 0; i < 5; i++) { AdjacencyMatrix testMatrix = new AdjacencyMatrix(8); BranchAndBound solver = new BranchAndBound(); testMatrix.GenerateRandomMatrix(); DynamicTSP dynamicSolver = new DynamicTSP(testMatrix, 0); dynamicSolver.SetVariables(testMatrix); dynamicSolver.Solve(); solver.SetVariables(testMatrix); solver.Solve(); if (((int)dynamicSolver.minTourCost != solver.max)) { testMatrix.print(); } Assert.AreEqual((int)dynamicSolver.minTourCost, solver.max); } }
public void FirstBoundTest() { AdjacencyMatrix testMatrix = new AdjacencyMatrix(4); for (int i = 0; i < 100000; i++) { BranchAndBound solver = new BranchAndBound(); testMatrix.GenerateRandomMatrix(); DynamicTSP dynamicSolver = new DynamicTSP(testMatrix, 0); solver.SetVariables(testMatrix); dynamicSolver.Solve(); solver.Solve(); if (dynamicSolver.minTourCost < solver.firstBound) { Console.WriteLine("BestTour :" + dynamicSolver.minTourCost + "<= To bound" + solver.firstBound); testMatrix.print(); dynamicSolver.printTour(); Assert.Fail(); } } }