">} (((struct individuo *) ind2) -> aptitud <((struct individuo *) ind1) -> aptitud) {1;
} 0;
} (((struct individuo *) ind1) -> factible) {-1;
} (((struct individuo *) ind2) -> factible) {1;
} (((struct individuo *) ind2) -> viol> ((struct individuo *) ind1) -> viol) {-1;
} (((struct individuo *) ind2) -> viol <((struct individuo *) ind1) -> viol) {1;
} 0;
} generarHijos (struct individuo * pobl, struct creencias * esp) {i, j; x; (i = 0; i l [j] ) {[i + TAMPOBL]. variable [j] + = fabs (x * (esp-> u [j] - esp-> l [j]));
} if (pobl [i]. variable [j]> esp-> u [j]) {[i + TAMPOBL]. variable [j] - = fabs (x * (esp -> u [j] - esp-> l [j]));
} if (pobl [i]. celda == NULL) {[i + TAMPOBL]. variable [j] + = x * (esp-> u [j]-esp-> l [j]);
} if (pobl [i]. celda-> clase == NO_FACTIBLE) {(i, j, x, pobl, esp);
} {[i + TAMPOBL]. variable [j] + = x * (pobl [i]. celda-> unodo [j] - pobl [i]. celda-> lnodo [ j]);
} (pobl [i + TAMPOBL]. variable [j]> esp-> up [j]) {[i + TAMPOBL]. variable [j] = esp-> up [ j];
} if (pobl [i + TAMPOBL]. variable [j] lp [j]) {[i + TAMPOBL]. variable [j] = esp-> lp [j];
}
}
}
} mueve (int indiv, int dim, float x, struct individuo * pobl, struct creencias * esp) {celda * celdaNueva; = cercana (SEMIFACTIBLE, pobl [indiv]. celda); (celdaNueva == NULL) {= cercana (DESCONOCIDA, pobl [indiv]. celda);
} (celdaNueva == NULL) {[indiv + TAMPOBL]. variable [dim] + = x * (esp-> u [dim] - esp-> l [dim]);
} {[indiv + TAMPOBL]. variable [dim] = x * (celdaNueva-> unodo [dim] - celdaNueva-> lnodo [dim]) + (celdaNueva-> unodo [ dim] + celdaNueva-> lnodo [dim])/2;
}
} celda * cercana (int prioridad, struct celda * nodo) {i; celda * res; (; nodo-> padre! = NULL; nodo = nodo-> padre) {(i = 0; i padre-> hijo [i]) == nodo) {;
} = busca (prioridad, & (nodo-> padre-> hijo [i])); (res! = NULL) {res;
}
}
} NULL;
} celda * busca (int prioridad, struct celda * nodo) {i; celda * res; (nodo-> d [0] == -1) {(nodo-> clase < ; = prioridad) {nodo;
} {NULL;
}
} (i = 0; i hijo [i])); (res! = NULL) {res;
}