Exemplo n.º 1
0
        static void Main(string[] args)
        {
            List <int> numeros = new List <int>();

            Data.createScenariosOfMovie();
            Data.createScenario1(5, 40, 0);  // location ,actors, posicion del escenario
            Data.createScenario2(6, 60, 1);  // location ,actors, posicion del escenario
            Data.createScenario3(7, 100, 2); // location ,actors, posicion del escenario
            Data.createScenario4(8, 80, 3);  // location ,actors, posicion del escenario
            Data.printScenarios();

            Data.createDays();
            Data.assignScenesToDay();
            Data.assignLocationsToDay();



            Data.performPmxInAllScenarios();
            Pmx.clearLists();
            Pmx.performOxInAllScenarios();



            Console.WriteLine("\n\n\n\n");
            Console.WriteLine("_____________________________________________ BRANCH AND BOUND ALGORITHM _____________________________________________\n");
            BranchAndBound BB = new BranchAndBound(movie.Scenarios, movie);

            BB.RunBB();

            Console.ReadKey();
        }
Exemplo n.º 2
0
        public static void performPmxInAllScenarios()
        {
            Console.WriteLine("---------------------------------------------------------------------------------------------------------------------------------------------------------------------");
            Console.WriteLine("                                                                        Algoritmo genetico PMX");
            Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------------------------------");
            for (int i = 0; i < 4; i++)
            {
                Pmx.performCrossingPMX(i);                                  // posicion del escenario
                int        numberOfScenario = i + 1;
                List <Day> days             = Pmx.chooseTheBestCalendar(i); // posición del escenario
                int        costo1           = Data.calculatePriceOfCalendar(i, movie.Scenarios[i].Days);
                int        costo2           = Data.calculatePriceOfCalendar(i, days);
                Console.WriteLine("                                                                      Escenario numero " + numberOfScenario);
                Console.WriteLine("                                                            Calendario original: " + costo1 + " Calendario mutado: " + costo2);
                Console.WriteLine("                                                          \n" +
                                  "                                                      Asignaciones: " + Pmx.countA + "     Comparaciones: " + Pmx.countC + "     Lineas ejecutadas: " + Pmx.countL + "\n");
                Pmx.countA = 0; Pmx.countL = 0; Pmx.countC = 0;

                /*Console.WriteLine("    CALENDARIO INICIAL");
                 * Pmx.printDays(movie.Scenarios[i].Days);
                 * Console.WriteLine("\n    CALENDARIO CRUZADO");
                 * Pmx.printDays(days);*/
            }
        }