Ir a Inicio

Colaboración entre individuos

Programa 4. Primeras comparativas

Se comparan los dos algoritmos genéticos:

1. El tradicional que genera una población de individuos y empiezan a competir entre sí.

2. El mejorado que genera los individuos, ajusta uno a uno con respecto a los datos y luego de ese proceso empiezan a competir entre sí.

Se reescribieron los algoritmos para que usaran la misma cantidad de tiempo y así comparar cuál es más eficiente.

Por ahora se compara generando una sola ecuación que cubra todo el conjunto de datos.


Código fuente

Descargar el código fuente desarrollado en C#. Probado en Microsoft Visual Studio 2022 Community Edition


Resultados

Se hicieron 50 pruebas. Cada prueba genera un conjunto de datos de 200 registros (nacidos de una ecuación creada en forma aleatoria). En cada prueba, cada algoritmo tuvo 10 segundos para operar.

Cada valor de la tabla es la mejor aproximación que tuvo el mejor individuo en la población al conjunto de datos. Entre más cercano a cero es mejor.

Algoritmo genético tradicionalAlgoritmo genético mejorando primero los individuos
0,112356809 0,113902201
0,004018192 0,003988888
0,171860404 0,224462477
0,749216092 0,755401885
0,224678296 0,168578357
10,44519713 10,4470579
0,071480332 0,071982642
0,003683789 0,00624047
0,092466522 0,07055508
11,80712958 0,005320647
0,00668634 0,006467529
0,628305931 0,62365621
4,907378425 4,9062972
0,089978938 0,091673322
0,006413992 0,007768863
0,017892188 0,006408427
0,004842247 0,0048075
0,030858523 0,035970852
0,011459774 0,01409065
0,070830362 0,070574882
0,037896507 0,046917114
0,07318647 0,073699098
0,08807556 0,07562125
0,611387059 0,625284445
0,727130058 0,736545066
0,070725103 0,092011958
0,079420479 0,082313096
0,076809273 0,112705632
0,097651101 0,098873957
0,068472975 0,071703906
0,00584686 0,008210509
0,008111813 0,012003597
0,08822281 0,086124614
0,754598671 0,785475144
0,073492494 0,079136698
0,070039735 0,06810102
0,276771409 0,202307862
0,068467952 0,068627372
0,072400406 0,072089332
0,003397804 0,004779138
0,96466488 0,965404871
10,17623817 0,005678782
3,233479927 3,23411386
0,072026287 0,011091365
0,078384772 0,071856379
0,079766651 0,04742713
0,846828439 0,849463372
0,071423251 0,0905593
0,072049845 0,073752141



Conclusiones

Hacer que primero los individuos mejoren frente al conjunto de datos fue consistentemente mejor que el algoritmo tradicional