public MedirTiempos(QAP qap)
        {
            mejoresSoluciones = new List <int>()
            {
                6156, 6194, 3796, 64, 6922, 2520135, 7763962, 5166, 90998, 115534, 152002, 149036, 21052466, 1185996137, 498896643, 44759294, 240516, 8133398, 48816, 273038
            };


            qap.ResolverBL();
            tiemposBL.Add(qap.GetTiempoEjecucion());
            solucionesBL.Add(qap.GetLocalizacionesEnUnidades());
            costesBL.Add(qap.CalcularCoste());



            qap.ResolverGreedy();
            tiemposGreedy.Add(qap.GetTiempoEjecucion());
            solucionesGreedy.Add(qap.GetLocalizacionesEnUnidades());
            costesGreedy.Add(qap.CalcularCoste());

            if (solucionesBL.Count == mejoresSoluciones.Count)
            {
                CalcularDesviaciones();
            }
            CalcularTiempos();
        }
예제 #2
0
 public QAP(QAP copia)
 {
     tamProblema = copia.tamProblema;
     localizacionesEnUnidades.AddRange(copia.localizacionesEnUnidades);
     flujosUnidades.AddRange(copia.flujosUnidades);
     distanciasLocalizaciones.AddRange(copia.distanciasLocalizaciones);
     coste = copia.coste;
 }
예제 #3
0
        public bool IsEquals(QAP qap)
        {
            bool iguales = true;

            for (int i = 0; i < localizacionesEnUnidades.Capacity; i++)
            {
                if (localizacionesEnUnidades[i] != qap.GetLocalizacionesEnUnidades()[i])
                {
                    iguales = false;
                }
            }

            return(iguales);
        }
예제 #4
0
        static void Main(string[] args)
        {
            string ruta = "./" + args[0];

            Console.WriteLine(ruta);

            QAP qap = new QAP(ruta);

            MedirTiempos mt = new MedirTiempos(qap);

            Console.WriteLine();


            Console.WriteLine("Tiempo Greedy: " + mt.GetTiemposGreedy()[0]);

            Console.WriteLine("Coste Greedy: " + mt.GetCostesGreedy()[0]);

            Console.WriteLine("Solución Greedy: ");

            foreach (int i in mt.GetSolucionesGreedy()[0])
            {
                Console.Write(i + " ");
            }

            Console.WriteLine();


            Console.WriteLine("Tiempo BL: " + mt.GetTiemposBL()[0]);

            Console.WriteLine("Coste BL: " + mt.GetCostesBL()[0]);

            Console.WriteLine("Solución BL: ");

            foreach (int i in mt.GetSolucionesBL()[0])
            {
                Console.Write(i + " ");
            }

            Console.WriteLine();
        }