Código C:
Ver original//IMPLEMENTACIÓN DE UN ALGORITMO GENÉTICO
//Felipe Rebolledo Castro
#include <stdio.h>
#include <stdlib.h> //incluye srand() y rand()
#include <conio.h>
#include <time.h> //incluye time()
//los printf colocados, son para guiarme entre las lineas
main()
{
FILE *fin,*fout; //para entrar y configurar el archivo
//Inicialización de variables
int tm, tg, gen, g=0, individuo;
float pmut;
int i, j, k, h;
int mat[tm][tg], P_I, P_NEW;
int cont1, cont2, cont3, cont4;
int eleccion;
int *cromosoma;
fin
=fopen("ag.in","r"); //abre y lee el archivo completo fout
=fopen("ag.out","w"); //abre y escribe en el archivo ag.out
if(fin==NULL){ //para verificar que el archivo exista
}
//para leer los diferentes parámetros en el archivo ag.in
//contadores para almacenar datos
cont1=0; //fitnes par acada individuo
cont2=0;//maximo fitnes
cont3=0;//suma total fitnes
//creación matriz
for(i=0;i<tm;i++){ //genera elementos horizontalez
//printf("Individuo %d: ", (i+1));
for (j=0;j<tg;j++){ //genera elementos verticales
P_I=mat[i][j];
//printf("%d", P_I);
individuo=1;
if(mat[i][j]==1){ //para verificar si es un 1 o un 0
cont1++;
}
if(mat[i][j]==1){
cont3++;
}
}
//printf("\n");
if(cont1==0){ //en el caso de que el fitnes sea 0
//printf("Fitnes individuo= %d\n",cont1+1);
if(cont1>cont2){ //para hacer prevalecer el mayor número
cont2=cont1;
//printf("g:%d\n", cont2);
cont1=0;
}
}
else{
//printf("Fitnes individuo= %d\n\n", cont1);
if(cont1>cont2){ //para hacer prevalecer el mayor número
cont2=cont1;
}
//printf("g:%d\n", cont2);
cont1=0;
}
//printf("\n\n");
}
//printf("\nFitnes Total: %d", cont3);
eleccion
=rand()&1+cont3
; //para elegir en forma aleatoria //...
//while (g<gen){
//for (i=0;i<tm;i++){
//for (j=0;j<tg;j++){
//cromosoma[i]=k;
//}
// fprintf(fout,"%d",cromosoma[i]);
//}
//g++;
//}
fprintf(fout
, "Parámetros: %d %d %.1f %d\n", tm
, tg
, pmut
, gen
); //impresión de en el archivo de salida for(k=1;k<gen;k++){ //para generar los numeros de las generaciones: g1, g2, g3, etc.
fprintf(fout
, "g%d:%d\n", k
, cont2
); }
fclose(fout
); //cierre del archivo
}
esto llegue a hacer.