public void reset_1() { combinaciones = null; padres = null; mejores = null; cant_obj = 0; }
public string imprimir_ganadores() { ElArca aux = mejores; if (aux != null) { double mejor = aux.aptitud; int m_x = 0; while (aux != null) { if (aux.aptitud >= mejor) { mejor = aux.aptitud; m_x = aux.x; } aux = aux.siguiente; } return(m_x + "\nf(x)=" + mejor); } else { return(""); } }
public ElArca(String _binario, int _x, double _aptitud) { siguiente = null; binario = _binario; x = _x; aptitud = _aptitud; }
public void reset_2() { objetos = null; combinaciones = null; padres = null; mejores = null; capacidad = 0; respuesta = ""; cant_obj = 0; }
private Mochila() { objetos = null; combinaciones = null; padres = null; mejores = null; capacidad = 0; respuesta = ""; cant_obj = 0; }
public void calcular_inicio() //calcular x y aptitud { double apti = 0, //varibale donde se almacenará la aptitud del individuo final = 0; int x = 0; String cuerpo = ""; Individuo aux = inicio; ElArca aux_a = mejores; if (aux != null) { apti = aux.aptitud; } while (aux.siguiente != null) { aux.x = calcular_x(aux.bites); aux.aptitud = calcular_aptitud(aux.x); if (aux.aptitud > apti) { cuerpo = aux.bites; x = aux.x; apti = aux.aptitud; } aux = aux.siguiente; } if (mejores == null) { mejores = new ElArca(cuerpo, x, apti); } else { aux_a = mejores; while (aux_a.siguiente != null) { aux_a = aux_a.siguiente; } aux_a.siguiente = new ElArca(cuerpo, x, apti); } }
public string imprimir_ganadores() { ElArca aux = mejores; double peso = 0; double ganancia = 0; if (aux != null) { double mejor = aux.ganancia; String final = ""; while (aux != null) { if (aux.ganancia >= mejor && aux.peso <= capacidad) { final = aux.binario; peso = aux.peso; ganancia = aux.ganancia; } aux = aux.siguiente; } if (final == respuesta) { return("Se encontro la solucion establecida"); } else { return("Mejor combinacion encontrada:\n\n " + final + "\n Peso: " + peso + "\n Ganancia: " + ganancia); } } else { return("Sin combinaciones"); } }
ElArca mejores; //variable que contendrá la lista de los resultados public Operaciones() //constructor para iniciar lista { inicio = null; padres = null; mejores = null; }
public void calculo_inicial() { double peso = 0; double ganancia = 0; double best_ganancia = 0; double p = 0; Opcion best = null; Opcion aux_o = combinaciones; Individuo objeto; ElArca aux_m = mejores; String aux = ""; while (aux_o != null) { aux = aux_o.combinacion; objeto = objetos; for (int i = 0; i < aux.Length - 1; i++) { peso += Int32.Parse("" + aux[i]) * objeto.peso; ganancia += Int32.Parse("" + aux[i]) * objeto.ganancia; objeto = objeto.siguiente; if ((objeto.peso / objeto.ganancia) >= p) { p = (objeto.peso / objeto.ganancia); } } aux_o.peso_total = peso; aux_o.ganancia_total = ganancia; aux_o.pmax = p; if (ganancia > best_ganancia && peso <= capacidad) { best_ganancia = ganancia; best = aux_o; } //reiniciar; ganancia = 0; peso = 0; p = 0; aux_o = aux_o.siguiente; } if (best != null) { if (mejores == null) { mejores = new ElArca(best.combinacion, best.ganancia_total, best.peso_total); } else { aux_m = mejores; while (aux_m.siguiente != null) { aux_m = aux_m.siguiente; } aux_m.siguiente = new ElArca(best.combinacion, best.ganancia_total, best.peso_total); } } }