static void Main(string[] args) { Next("Транспортная задача"); TransportTask.Test(); Next("Задача о максимальном потоке"); MaxFlow.FordFulkersonMethod.Test(); Next("Динамическое программирование"); DynamicProgramming.Test(); Next("Теория игр"); GameTheory.Test(); Next("Теория игр"); GameTheory.Test(); Console.WriteLine("----------------- Нажмите клавишу, чтобы выйти ----------------------------------------"); Console.ReadKey(); }
public static void Test() { int[] a, b; int[,] cVals; //a = new int[] { 140, 180, 160 }; //b = new int[] { 60, 70, 120, 130, 100 }; //cVals = new int[,] { { 2, 3, 4, 2, 4 }, { 3, 4, 1, 4, 1 }, { 9, 7, 3, 7, 2 } }; a = new int[] { 225, 250, 125, 100 }; b = new int[] { 120, 150, 110, 235, 85 }; cVals = new int[, ] { { 7, 20, 3, 15, 0 }, { 3, 14, 10, 20, 0 }, { 15, 25, 11, 19, 0 }, { 11, 12, 18, 6, 0 } }; //u = 0 -6 -7 -20 //v = 7 20 16 Console.WriteLine("Потребности потребителей: {0}", arr_to_string(a)); Console.WriteLine("Возможности поставщиков: {0}", arr_to_string(b)); // действуем по алгоритму //Северозападный var matrix = (new NorthWestMethod()).RunAlgoritm(a, b); //var optCr = Transport.GetOptCriteria(matrix, cVals); Console.WriteLine("Цена перевозок: {0}", matrix_to_string(cVals)); Console.WriteLine("\n" + "Начальный опорный план методом северозаподного угла: {0}", matrix_to_string(matrix)); /*Console.WriteLine("\n" + "Критерий оптимальности:", optCr);*/ TransportTask.CheckPlan(matrix, cVals, a, b); }