public static void Main() { int? m; IGraph g0, g1, g2, g3, g4, g5, g6, g7; Edge[] c; RandomGraphGenerator gen = new RandomGraphGenerator(1); g0 = gen.UndirectedEuclidGraph(typeof(AdjacencyMatrixGraph), 5, 1.0, 0.0, 100.0, 0.0, 100.0); g1 = gen.UndirectedEuclidGraph(typeof(AdjacencyMatrixGraph), 100, 1.0, 0.0, 100.0, 0.0, 100.0); g2 = gen.UndirectedGraph(typeof(AdjacencyMatrixGraph), 100, 1.0, 1, 99); g3 = gen.DirectedGraph(typeof(AdjacencyMatrixGraph), 100, 1.0, 1, 99); g4 = gen.UndirectedGraph(typeof(AdjacencyMatrixGraph), 100, 0.9, 1, 99); g5 = gen.DirectedGraph(typeof(AdjacencyMatrixGraph), 100, 0.9, 1, 99); g6 = gen.UndirectedGraph(typeof(AdjacencyListsGraph), 100, 0.2, 1, 99); g7 = gen.DirectedGraph(typeof(AdjacencyListsGraph), 100, 0.2, 1, 99); Console.WriteLine("\nAlgorytm \"Kruskalopodobny\""); Console.Write(" maly graf euklidesowy - "); m = g0.TSP_Kruskal(out c); Test(g0, c, m); if (m == null) { Console.WriteLine(" Nie znaleziono cyklu Hamiltona"); } else { Console.Write(" "); for (int i = 0; i < g0.VerticesCount; ++i) { Console.Write(" {0}", c[i]); } Console.WriteLine(); } Console.Write(" graf pelny euklidesowy - "); m = g1.TSP_Kruskal(out c); Test(g1, c, m); Console.Write(" graf pelny nieskierowany - "); m = g2.TSP_Kruskal(out c); Test(g2, c, m); Console.Write(" graf pelny skierowany - "); m = g3.TSP_Kruskal(out c); Test(g3, c, m); Console.Write(" graf nieskierowany - "); m = g4.TSP_Kruskal(out c); Test(g4, c, m); Console.Write(" graf skierowany - "); m = g5.TSP_Kruskal(out c); Test(g5, c, m); Console.Write(" graf rzadki nieskierowany - "); m = g6.TSP_Kruskal(out c); Test(g6, c, m); Console.Write(" graf rzadki skierowany - "); m = g7.TSP_Kruskal(out c); Test(g7, c, m); Console.WriteLine("\nAlgorytm na podstawie drzewa"); Console.Write(" maly graf euklidesowy - "); m = g0.TSP_TreeBased(out c); Test(g0, c, m); if (m == null) { Console.WriteLine(" Nie znaleziono cyklu Hamiltona"); } else { Console.Write(" "); for (int i = 0; i < g0.VerticesCount; ++i) { Console.Write(" {0}", c[i]); } Console.WriteLine(); } Console.Write(" graf pelny euklidesowy - "); m = g1.TSP_TreeBased(out c); Test(g1, c, m); Console.Write(" graf pelny nieskierowany - "); m = g2.TSP_TreeBased(out c); Test(g2, c, m); Console.Write(" graf pelny skierowany - "); try { m = g3.TSP_TreeBased(out c); Console.WriteLine("BLAD 3 !!!"); } catch (ArgumentException) { Console.WriteLine("wyjatek (to dobrze)"); } Console.Write(" graf nieskierowany - "); m = g4.TSP_TreeBased(out c); Test(g4, c, m); Console.Write(" graf skierowany - "); try { m = g5.TSP_TreeBased(out c); Console.WriteLine("BLAD 3 !!!"); } catch (ArgumentException) { Console.WriteLine("wyjatek (to dobrze)"); } Console.Write(" graf rzadki nieskierowany - "); m = g6.TSP_TreeBased(out c); Test(g6, c, m); Console.Write(" graf rzadki skierowany - "); try { m = g7.TSP_TreeBased(out c); Console.WriteLine("BLAD 3 !!!"); } catch (ArgumentException) { Console.WriteLine("wyjatek (to dobrze)"); } }