Экспериментальное исследование средней трудоемкости алгоритма
}(sumMin[numArbol][3] >= sumMin[numArbol][2]) {[numArbol][3]++; } }{(sumMin[numArbol][3] >= sumMin[numArbol][2]) {[numArbol][3]++; }(sumMin[numArbol][3] >= sumMin[numArbol][1]) {[numArbol][3]++; } }(i = 0; i < TAMPOBL; i++) {= 0;(j = 0; j < VARIABLES; j++) {(pobl[i].variable[j] < nodoAct->lnodo[j] ||[i].variable[j] > nodoAct->unodo[j]) {= -1;; } }(numHijo == -1) {; }= 1;(j = 0; j < TREEDIMS; j++) {= sumMin[numArbol][j + 1];(pobl[i].variable[dim] > (nodoAct->lnodo[dim] + nodoAct->unodo[dim])/2) {+= sumando; }+= sumando; }(pobl[i].factible) {>hijo[numHijo].factibles++; }{>hijo[numHijo].noFactibles++; } }[numArbol][0] = 0;(i = 0; i < TREENODES; i++) {[numArbol][0] += (nodoAct->hijo[i].factibles < nodoAct->hijo[i].noFactibles)? nodoAct->hijo[i].factibles: nodoAct->hijo[i].noFactibles; } }= sumMin[0][0];= 0;(i = 1; i < PRUEBAS_ARBOL; i++) {(sumMin[i][0] < min) {= sumMin[i][0];= i; } }(i = 0; i < TREEDIMS; i++) {>d[i] = sumMin[numArbol][i + 1]; } }{(i = 0; i < VARIABLES; i++) {>d[i] = i; } }(i = 0; i < TAMPOBL; i++) {= 0;(j = 0; j < VARIABLES; j++) {(pobl[i].variable[j] < nodoAct->lnodo[j] ||[i].variable[j] > nodoAct->unodo[j]) {= -1;; } }(numHijo == -1) {; }= 1;(j = 0; j < TREEDIMS; j++) {= nodoAct->d[j];(pobl[i].variable[dim] > (nodoAct->lnodo[dim] + nodoAct->unodo[dim])/2) {+= sumando; }+= sumando; }(pobl[i].factible) {>hijo[numHijo].factibles++; }{>hijo[numHijo].noFactibles++; } }(i = 0; i < TREENODES; i++) {(j = 0; j < VARIABLES; j++) {>hijo[i].lnodo[j] = nodoAct->lnodo[j];>hijo[i].unodo[j] = nodoAct->unodo[j]; }= i;= 1;(j = 0; j < TREEDIMS; j++) {= (nodoAct->lnodo[nodoAct->d[j]] + nodoAct->unodo[nodoAct->d[j]]) / 2;(numHijo % (2*sumando)) {>hijo[i].lnodo[nodoAct->d[j]] = tmp;-= sumando; }{>hijo[i].unodo[nodoAct->d[j]] = tmp; }+= sumando; } }(i = 0; i < TREENODES; i++) {(nodoAct->hijo[i].factibles > 0) {(nodoAct->hijo[i].noFactibles > 0) {>hijo[i].clase = SEMIFACTIBLE; }{>hijo[i].clase = FACTIBLE; } }{(nodoAct->hijo[i].noFactibles > 0) {>hijo[i].clase = NO_FACTIBLE; }{>hijo[i].clase = DESCONOCIDA; } } }(nodoAct->profundidad > 1) {(i = 0; i < TREENODES; i++) {(nodoAct->hijo[i].clase == SEMIFACTIBLE) {(&(nodoAct->hijo[i]), pobl, esp); } } } }aceptar(struct individuo *pobl) {(pobl, TAMPOBL, sizeof(struct individuo), &compVictorias); }compAptitud(const void *ind1, const void *ind2) {dif;( ((struct individuo *)ind2)->factible && ((struct individuo *)ind1)->factible ) {(((struct individuo *)ind2)->aptitud > ((struct individuo *)ind1)->aptitud) {-1; }(((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 < TAMPOBL; i++) {(j = 0; j < VARIABLES; j++) {[i+TAMPOBL].variable[j] = pobl[i].variable[j];= randomnormaldeviate();(pobl[i].variable[j] < esp->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] < esp->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); |