public void GraphQueen5_5_CalculateGlobalCostFunction_Success() { var loaderMock = new Mock <IDataLoader>(); loaderMock.Setup(m => m.LoadData()).Returns(_queen55Metis); var randomMock = new StubRandom() { NextInt32Int32 = (a, b) => 1 }; var graph = new MetisUnweightedGraph(loaderMock.Object, randomMock); graph.InitializeGraph(); graph.Vertices[0].Color = 2; graph.Vertices[1].Color = 2; graph.Vertices[2].Color = 1; graph.Vertices[3].Color = 1; graph.Vertices[4].Color = 1; graph.Vertices[5].Color = 2; graph.Vertices[6].Color = 2; graph.Vertices[7].Color = 1; graph.Vertices[8].Color = 2; graph.Vertices[9].Color = 2; graph.Vertices[10].Color = 1; graph.Vertices[11].Color = 1; graph.Vertices[12].Color = 2; graph.Vertices[13].Color = 2; graph.Vertices[14].Color = 2; graph.Vertices[15].Color = 2; graph.Vertices[16].Color = 1; graph.Vertices[17].Color = 1; graph.Vertices[18].Color = 2; graph.Vertices[19].Color = 2; graph.Vertices[20].Color = 2; graph.Vertices[21].Color = 1; graph.Vertices[22].Color = 1; graph.Vertices[23].Color = 1; graph.Vertices[24].Color = 1; var globalCost = graph.GetGlobalCostFunction(); Assert.AreEqual(84, globalCost); }
// part -t 0 -i "Graphs\DIMACS\myciel3.col" -a 1 -p 2 -c 0.9 -m 0.85 -s 6 -d 100 // part -t 0 -i "Graphs\DIMACS\le450_15b.col" -a 5 -p 29 -c 0.9 -m 0.85 -s 6 -d 1 // part -t 1 -i "Graphs\manual.txt" -a 1 -p 2 -c 0.9 -m 0.85 -s 4 -d 100 static int Main(string[] args) { XmlConfigurator.Configure(); Func <PartitionGraphOptions, int> partitionFunc = options => { var rnd = new Random(Environment.TickCount); var fileWriter = new FileWriter("graph.json"); var exportGraph = new GephiFileExport(fileWriter, Path.GetFileNameWithoutExtension(options.InputGraphFilePath)); var fileLoader = new FileLoader(options.InputGraphFilePath); BaseGraph graph; switch (options.ImportGraphFileType) { case GraphInputFileType.Dimacs: graph = new DimacsGraph(fileLoader, rnd); break; case GraphInputFileType.Metis: graph = new MetisGraph(fileLoader, rnd); break; case GraphInputFileType.MetisUnweighted: graph = new MetisUnweightedGraph(fileLoader, rnd); break; default: throw new ApplicationException("Graph file format is not suppoted."); } var graphOptions = new Options(options.NumberOfAnts, options.NumberOfPartitions, options.ColoringProbability, options.MovingProbability, options.NumberOfVerticesForBalance, options.NumberOfIterations); ResultData resultData = Algorithm.Run(graph, graphOptions, rnd, exportGraph); return(resultData.BestCost); }; var result = Parser.Default.ParseArguments <PartitionGraphOptions>(args); var exitCode = result.MapResult(options => { if (options.Verbose) { Console.WriteLine("Write additional information."); } else { Console.WriteLine("Processing..."); var stopwatch = new Stopwatch(); stopwatch.Start(); var bestCost = partitionFunc(options); stopwatch.Stop(); Log.Warn($"Algoritham run time: {stopwatch.ElapsedMilliseconds}"); Log.Warn($"Best cost: {bestCost}"); Console.WriteLine($"{args[0]} | {bestCost}"); } return(0); }, errors => 1); return(exitCode); }