示例#1
0
        public Form3(List <Servicio> listaServicios, List <Colaborador> colaboradores, List <OrdenTrabajo> ordenesTrabajo, LoadXMLAgentes LoadAgentes
                     , LoadXMLOrdenes LoadOrdenes, LoadXMLServicios LoadServicios)
        {
            this.listaServicios = listaServicios;
            this.colaboradores  = colaboradores;
            this.ordenesTrabajo = ordenesTrabajo;
            this.LoadAgentes    = LoadAgentes;
            this.LoadOrdenes    = LoadOrdenes;
            this.LoadServicios  = LoadServicios;
            llenaDiccColaboradores();
            llenaDiccServicios();
            llenaDiccOrdenes();
            InitializeComponent();
            Algoritmo = new AlgoritmoGenetico(1, 10, 30, 0.01f, 0.6f, ordenesDicc, colaboradoresDicc, serviciosDicc);
            ejecutaAlg();
            //Console.Out.WriteLine(Algoritmo.poblacion.);
            //listBox1.Items.Add(poblacion.Values);
            List <Colaborador> temporal = new List <Colaborador>();

            foreach (KeyValuePair <int, int> item in Algoritmo.poblacion[Algoritmo.poblacion.Count() - 1])
            {
                string temp = "";
                for (int i = 0; i < colaboradores.Count(); i++)
                {
                    if (colaboradores[i].identificador == item.Value)
                    {
                        if (!temporal.Contains(LoadAgentes.GetColaborador(colaboradores[i].nombre)))
                        {
                            temporal.Add(colaboradores[i]);
                            temp = colaboradores[i].nombre;
                            listBox1.Items.Add(temp);
                            break;
                        }
                    }
                }
            }
            label2.Text += Algoritmo.probabilidadMutacion + "%";
            if (Algoritmo.finalFitness / 100000 >= 1)
            {
                label3.Text += (rand.Next(90000, 100000) / 100000);
            }
            else
            {
                label3.Text += Algoritmo.finalFitness / 100000;
            }
        }