private void btnCapacidadMochila_Click(object sender, EventArgs e) { if (ofdAbrirArchivo.ShowDialog() == DialogResult.OK) { using (StreamReader sr = new StreamReader(ofdAbrirArchivo.FileName)) { Mochila mochila = Mochila.getInstante(); Double capacidad = Double.Parse(sr.ReadLine()); mochila.set_capacidad(capacidad); if (mochila.check_capacidad()) { MessageBox.Show("Capacidad cargada con exito!"); btnCapacidadMochila.Visible = false; btnResOpt.Visible = true; } else { MessageBox.Show("Error, intente mas tarde"); } } } }
private void btnGanancias_Click(object sender, EventArgs e) { if (ofdAbrirArchivo.ShowDialog() == DialogResult.OK) { using (StreamReader sr = new StreamReader(ofdAbrirArchivo.FileName)) { Mochila mochila = Mochila.getInstante(); String[] solution = sr.ReadToEnd().Split('\n'); for (int i = 0; i < solution.Length; i++) { if (solution[i] != String.Empty) { mochila.set_ganancias(solution[i]); } } if (mochila.check_inicio()) { MessageBox.Show("Ganancias cargadas con exito!"); btnGanancias.Visible = false; btnPesos.Visible = true; } else { MessageBox.Show("Error, intente mas tarde"); } } } }
private void btnGenetico_Click(object sender, EventArgs e) { gbxMochila.Visible = false; lblFunción.Visible = true; btnTitulo.Text = "ALGORITMO GENÉTICO PURO"; tipoAlgoritmo = 0; btnCalcular.Visible = true; lblX.Text = ""; Mochila.getInstante().reset_2(); }
private void btnResOpt_Click(object sender, EventArgs e) { if (ofdAbrirArchivo.ShowDialog() == DialogResult.OK) { using (StreamReader sr = new StreamReader(ofdAbrirArchivo.FileName)) { Mochila mochila = Mochila.getInstante(); String opcion = sr.ReadLine(); mochila.set_respuesta(opcion); if (mochila.check_respuesta()) { MessageBox.Show("Respuesta " + opcion + " cargada con exito!"); btnGanancias.Visible = true; btnResOpt.Visible = false; } else { MessageBox.Show("Error, intente mas tarde"); } } } }
public void mochila_1() { String poblacion_s, //numero introducido por el usuario probabilidad_cruce, //numero introducido por el usuario probabilidad_mutacion, //numero introducido por el usuario gen; //numero introducido por el usuario double numero_decimal = 0.0, //variable para comparar con digito decimal probabilidad_c, //variable para almacenar la probabilidad de cruce probabilidad_m; //variable para almacenar la probabilidad de mutacion int numero_entero = 0, //variable para compara con digito entero poblacion_i, //numero de la poblacion en numero entero generaciones, //numero de generaciones con_gen = 1; //contador de generaciones if ((tbxCruce.Text != "" && tbxGeneraciones.Text != "") && tbxPoblacion.Text != "") { poblacion_s = tbxPoblacion.Text; //Console.ReadLine(); if (Int32.TryParse(poblacion_s, out numero_entero)) //validar población { poblacion_i = Int32.Parse(poblacion_s); //convertir String a int base 32 if (poblacion_i % 2 == 0) { probabilidad_cruce = tbxCruce.Text; if (Double.TryParse(probabilidad_cruce, out numero_decimal)) //validar cruce { probabilidad_c = Double.Parse(probabilidad_cruce); if (probabilidad_c <= 0.80 && probabilidad_c >= 0.65) { probabilidad_mutacion = tbxMutacion.Text; if (Double.TryParse(probabilidad_mutacion, out numero_decimal)) //validar cruce { probabilidad_m = Double.Parse(probabilidad_mutacion); if (probabilidad_m <= 0.01 && probabilidad_m >= 0.001) { gen = tbxGeneraciones.Text; if (Int32.TryParse(gen, out numero_entero)) //validar las generaciones { generaciones = Int32.Parse(gen); if (generaciones > 0) { Mochila mochila = Mochila.getInstante(); mochila.iniciar_poblacion(poblacion_i); do { con_gen++; mochila.calculo_inicial(); mochila.cal_final(); switch (cbOpciones.SelectedIndex) { case 0: mochila.validar_ceros(); break; case 1: mochila.validar_uno(); break; default: break; } mochila.generarLosNuevosPadresDeLaPatria(poblacion_i); mochila.cruze(probabilidad_c, poblacion_i); mochila.mute(probabilidad_m); } while (con_gen <= generaciones); lblX.Text = ""; string aux = mochila.imprimir_ganadores(); if (aux != "") { lblX.Text = aux; } } else { MessageBox.Show("Se debe introducir un numero entero positivo"); } } else { MessageBox.Show("Se debe introducir un numero entero positivo"); } } else { MessageBox.Show("Se debe introducir un numero entero positivo"); } } } else { MessageBox.Show("Se debe introducir un numero entre esos rangos"); } } else { MessageBox.Show("Se debe introducir un numero entre esos rangos"); } } else { MessageBox.Show("El tamaño de la poblacion debe ser par"); } } else { MessageBox.Show("El tamaño de la poblacion debe ser un número entero y par"); } } else { MessageBox.Show("Favor de llenar todos los campos con la información necesaria"); } }