Está en la página 1de 12

Tema 12

Inteligencia Artificial
Computación evolutiva
Índice Pág.

12.1 Principios biológicos 3


12.2 Programación evolutiva 5
12.3 Algoritmos genéticos 7
Recursos complementarios 12
Bibliografía 12

2
12.1. Principios biológicos
La Computación Evolutiva (CE) es una de las áreas más activas y relevantes
de la Inteligencia Artificial, que utiliza los principios de la Teoría Evolutiva de
Charles Darwin, en el desarrollo de algoritmos para la solución de problemas,
principalmente de optimización combinatoria. A diferencia de las técnicas
formales de ingeniería, encaminadas a encontrar la mejor solución, la CE aporta
una forma de generar automáticamente soluciones nuevas que, a menudo, son
demasiado complejas o raras para que las personas las descubran.

En consecuencia, en la CE es necesario definir cómo se mide la calidad de


las soluciones (idoneidad) y qué tipo de soluciones son posibles (espacio de
búsqueda). El amplio espectro de aplicaciones de la CE incluye la construcción
de: arquitecturas neuronales artificiales especiales, fórmulas que relacionan
variables en la economía y finanzas, circuitos eléctricos, horarios con varios
parámetros de control en organizaciones públicas o privadas, etc. Las técnicas
evolutivas son adecuadas para cualquier análisis complejo en el que las
personas son incapaces de evaluar todas las interacciones de las variables.
(https://www.cognizant.com/es/es/glossary/evolutionary-computation)

El proceso comienza planteando posibles soluciones muy diferentes entre sí.


Se evalúa cada opción y se clasifica. Las soluciones menos útiles se eliminan y
se sustituyen con una selección de las más útiles, tras cambiarlas y combinarlas
entre sí. El ciclo de evaluación, selección y recombinación se repite, creando
cada vez mejores opciones hasta que se encuentran soluciones óptimas o
aceptables. En la Figura 12.1 se muestra la metáfora de la CE.

Figura 12.1 Analogía entre la Evolución Natural y la CERNN básica. Fuente:


https://jarroba.com/computacion-evolutiva-ejemplo-con-un-algoritmo-genetico/

Como se aprecia en la figura anterior, la generación de soluciones iniciales


(soluciones candidatas) y la evaluación de las soluciones (calidad) son aspectos
críticos que inciden en la CE.

Terminología utilizada en la CE

3
Cromosoma: Representación de una solución. Cada cromosoma está formado
por un conjunto de parámetros (llamados genes). Todos los cromosomas tienen
los mismos genes y en el mismo orden. Cada gen puede tomar distintos valores
llamados alelos.

Genotipo: Es el conjunto de genes que forman un cromosoma; el fenotipo son


todas las características observables y en ellas influyen tanto el genotipo como
el ambiente. La Figura 12.2 muestra la relación entre genotipo y fenotipo.

Figura 12.2 Representación de un genotipo y un fenotipo. Fuente: Guía de Inteligencia Artificial,


M. Almache

Población: Conjunto de cromosomas. A su vez, cada cromosoma está formado


por un conjunto de parámetros (genes). Todos los cromosomas tienen los
mismos genes y en el mismo orden, y cada gen puede tomar distintos valores
(alelos). En la CE, los cromosomas también suelen denominarse individuos o
“soluciones candidatas”.

Aptitud o Fitness: Función que mide la calidad de un individuo para solucionar


un determinado problema. El objetivo principal de la CE es encontrar a los
individuos más aptos (soluciones).

Selección: Mecanismo que permite escoger a los individuos más aptos en una
población. Puede ser elitista (siempre se escogen los mejores) o probabilista
(selección por sorteo según la aptitud).

Cruce o recombinación: Operación que combina la genética de los padres para


generar vástagos.

Mutación: Operación que modifica los valores de los genes en un cromosoma.

Reemplazo: Proceso que permite insertar a los nuevos individuos en la


población, al tiempo que se eliminan otros (generalmente los de peor aptitud).

12.2. Programación Evolutiva

4
La Programación Evolutiva (PE) fue propuesta originalmente por Lawrence
Fogel (Brooklyn, 1928) a principios de los sesenta cuando realizaba
investigación básica en torno a la IA para la National Science Foundation en
Estados Unidos. En esa época, la mayor parte de los intentos existentes para
generar comportamientos inteligentes usaban al humano como modelo. Sin
embargo, Fogel consideró que, puesto que la evolución fue capaz de crear a los
humanos y a otras criaturas inteligentes, su simulación podría conducir a
comportamientos inteligentes.

La PE enfatiza los nexos de comportamiento entre padres e hijos, en vez de


buscar emular operadores genéticos específicos (como en el caso de los
Algoritmos Genéticos). El algoritmo básico de la Programación Evolutiva es el
siguiente (Figura 12.3):

Figura 12.3 Algoritmo básico de la PE. Fuente: Guía de Inteligencia Artificial, M. Almache

En consecuencia, la PE es una abstracción de la evolución al nivel de las


especies, por lo que no se requiere el uso de un operador de recombinación
(diferentes especies no se pueden cruzar entre sí); más bien se utiliza el
operador de mutación, como se muestra en el ejemplo de la Figura 12.4.
Asimismo, usa selección probabilística basada en la aptitud de cada individuo
que forma parte de la población.

5
Figura 12.4 Generación de un hijo mediante mutación de un cromosoma (seleccionado al azar)
del padre. Fuente:
(https://libros.univalle.edu.co/index.php/programaeditorial/catalog/download/150/72/1359?inline
=1 )

Resulta un tanto más fácil entender la PE analizando el siguiente ejemplo.


Suponga que se desea maximizar los ingresos en una cadena de 4 salas de cine;
para tal efecto se harán las siguientes consideraciones:

 ¿El precio de la entrada debería ser 2000, 3000, 5000, 8000 o 12 000?,
ya que eso es lo que se ha visto que cobran otros cines.
 ¿Debería haber películas comerciales, subtituladas o en blanco y negro?
 ¿El horario debería ser en la mañana, en la tarde o en la noche?

En este caso, cada sala es un cromosoma, y cada una de las preguntas es un


gen. Se observa que se puede implementar salas con cualquiera de las
características enunciadas. La población es muy reducida, pues solo tiene 4
cromosomas; esto no es lo habitual, es una limitación física del problema. Cada
cromosoma tiene 3 genes con los alelos; lo anterior se muestra en la Tabla 12.1.

Tabla 12.1 a) Estructura de cada cromosoma para ejemplo de las películas. b) Población inicial
con las aptitudes correspondientes. Fuente:
(https://libros.univalle.edu.co/index.php/programaeditorial/catalog/download/150/72/1359?inline
=1 )

a)

b)

6
La Tabla 12.1 b muestra una población inicial generada al azar, misma que,
una vez programada un día, nos ha dado las recaudaciones mostradas. Se
observa que las mayores ganancias se han obtenido con el cromosoma 2 (sala
2); de este modo, podríamos limitarnos a explotar esa combinación,
programando todas las salas con entradas a 3000, películas comerciales y
horario en la tarde. Aparentemente, explotando esta solución conocida se
obtendrán ganancias muy altas, pero ¿no será que existen otras combinaciones
que pueden dar más dinero? Es decir, ¿conviene explorar más?

El proceso que viene ahora es hacer una selección de los mejores


cromosomas (en nuestro caso C2 tiene la mayor aptitud), mutar el contenido de
algunos de sus genes (por ejemplo, cambiar el precio de 3000 a 2000 con nuevo
horario nocturno), dándonos por resultado un nuevo cromosoma C5 (2000,
comercial, nocturno), mismo que será insertado en la población, al tiempo que
eliminamos de la población al peor cromosoma (C4). Luego, probamos un día
la nueva programación que incorpora a C5, y obtenemos nuevamente las
aptitudes de cada cromosoma, para seleccionar al mejor, mutarlo, y eliminar el
peor. Este proceso tendrá que repetirse hasta encontrar la mejor configuración
de cromosomas, es decir aquella que maximice las ganancias. La selección del
mejor cromosoma podría realizarse de manera probabilista, respetando las
aptitudes; es decir, los cromosomas entran en un proceso de competición o
sorteo.

12.3. Algoritmos genéticos


Los principios básicos de los Algoritmos Genéticos (AG) fueron establecidos
por John Holland (1975), y son métodos adaptativos que pueden usarse para
resolver problemas de búsqueda y optimización. Están basados en el proceso
genético de los organismos vivos. A lo largo de las generaciones, las poblaciones
evolucionan en la naturaleza acorde con los principios de la selección natural y
la supervivencia de los más fuertes, postulados por Darwin (1859). Por imitación
de este proceso, los AG son capaces de ir creando soluciones para problemas
del mundo real. La evolución de dichas soluciones hacia valores óptimos del
problema depende en buena medida de una adecuada codificación
cromosómica.

En la naturaleza los individuos de una población compiten entre sí en la


búsqueda de recursos tales como comida, agua y refugio. Incluso los miembros
de una misma especie compiten a menudo en la búsqueda de un compañero.
Aquellos individuos que tienen más éxito en sobrevivir y en atraer compañeros
tienen mayor probabilidad de generar un gran número de descendientes. Por el
contrario, individuos poco aptos producirán un menor número de descendientes.

7
Esto significa que los genes de los individuos mejor adaptados se propagarán en
sucesivas generaciones hacia un número creciente de individuos. La
combinación de buenas características provenientes de diferentes ancestros,
puede a veces producir descendientes “superiores”, cuya adaptación es mayor
que la de cualquiera de sus ancestros. De esta manera, las especies evolucionan
logrando unas características cada vez mejor adaptadas al entorno en el que
viven.

Los AG usan una analogía directa con el comportamiento natural. Trabajan


con una población de individuos, cada uno de los cuales representa una solución
factible a un problema dado. A cada individuo se le asigna un valor o puntuación
(aptitud), relacionado con la bondad de dicha solución. En la naturaleza esto
equivaldría al grado de efectividad de un organismo para competir por unos
determinados recursos. Cuanto mayor sea la adaptación de un individuo al
problema, mayor será la probabilidad de que el mismo sea seleccionado para
reproducirse, cruzando su material genético con otro individuo seleccionado de
igual forma. Este cruce producirá nuevos individuos – descendientes de los
anteriores – los cuales comparten algunas de las características de sus padres.
Cuanto menor sea la adaptación de un individuo, menor será la probabilidad de
que dicho individuo sea seleccionado para la reproducción (cruce), y por tanto
de que su material genético se propague en sucesivas generaciones.

A continuación, se muestra el “esquema general” de un algoritmo genético:

1. Crear una población inicial

2. Evaluar los cromosomas de la población inicial

3. Repetir hasta que se cumpla la condición de parada

3.1 Selección de los cromosomas más aptos en la nueva población

3.2 Cruzamiento de los cromosomas de la población (nuevos vástagos)

3.3 Mutación de los (nuevos) cromosomas de la población

3.4 Evaluación de los cromosomas de la población

3.5 Reemplazo de individuos en la población

4. Devolver la mejor solución (la más apta) en la población

Métodos de representación

8
Antes de que un algoritmo genético pueda ponerse a trabajar en un problema,
se necesita un método para codificar las soluciones potenciales del problema de
forma que el propio algoritmo pueda procesarlas aplicando las operaciones que
le permiten evolucionar. Un enfoque común es codificar las soluciones como
cadenas binarias: secuencias de 1's y 0's, donde el dígito de cada posición
representa el valor de algún aspecto de la solución. Otro método consiste en
codificar las soluciones como cadenas de enteros o números decimales
(inclusive strings), donde cada posición, de nuevo, representa algún aspecto
particular de la solución. Este método permite una mayor precisión y complejidad
que el método comparativamente restringido de utilizar sólo números binarios, y
a menudo está intuitivamente más cerca del espacio de soluciones del problema.

Suponga el problema trivial del “agente viajero” para 4 ciudades


interconectadas (Figura 12.5), y las distancias correspondientes. Considere
como ciudad inicial A. La representación cromosómica (cadena binaria de 6 bits),
permitirá crear individuos que solucionarán el problema; un bit puesto a “1” indica
conexión entre las ciudades, un bit puesto a “0” denota desconexión. Por
ejemplo, el individuo 111100 (AB=1, BC=1, CD=1, DA=1, AC=0, BD=0) es una
solución del referido problema.

(https://dialnet.unirioja.es/servlet/articulo?codigo=132166)

Figura 12.5 Representación del cromosoma para el problema del agente viajero con 4
ciudades. Fuente: Guía de Inteligencia Artificial, M. Almache

Función de aptitud (fitness)

Para cumplir con los requerimientos del problema, es necesario definir una
función que permita cuantificar la aptitud de cada individuo o cromosoma I. Por
ejemplo, en el caso del agente viajero, podemos combinar dos funciones:
Fitness1(I) evaluará la calidad de los individuos en términos de las ciudades
visitadas, y Fitness2(I) medirá la calidad en términos de la menor distancia

9
recorrida. Por lo tanto, la evaluación final Fitness(I) deberá cuantificar la visita
exclusivamente a 4 ciudades con el menor recorrido, así:

|𝐶 − ∑𝐿𝑖=1 𝑏𝑖| ∑𝐿𝑖=1 𝑏𝑖𝑇𝑖


𝐹𝑖𝑡𝑛𝑒𝑠𝑠1(𝐼 ) = 1 − 𝐹𝑖𝑡𝑛𝑒𝑠𝑠2(𝐼) = 𝐿
𝐶 ∑𝑖=1 𝑏𝑖

C es el número de ciudades

L es la longitud del cromosoma

bi es el bit i-ésimo

Ti es la distancia del tramo i-ésimo

Entonces, la fórmula final combinada será:

Fitness(I)=Fitness1(I) – 0.1*Fitness2(I)

En donde se puede apreciar que la distancia recorrida tendrá


menos peso que el número de ciudades visitadas

En la Tabla 12.2 se muestra un ejemplo de evaluación de desempeño para


algunos individuos. Allí se observa que, los individuos con más alta calificación,
son aquellos que visitan solamente 4 ciudades (restricción del problema)
Tabla 12.2 Desempeño de algunos individuos en el problema del agente viajero con 4
ciudades. Fuente: Guía de Inteligencia Artificial, M. Almache

Individuo Representación Fitness Valor relativo Valor acumulado


I1 011001 0.636193 0.147246 0.147246
I2 011011 0.889645 0.205907 0.353153
I3 010111 0.889645 0.205907 0.559061
I4 011101 0.889645 0.205907 0.764968
I5 011000 0.379290 0.087786 0.852754
I6 010110 0.636193 0.147246 1.000000

Selección

Una vez evaluados los individuos se procede a seleccionar a aquellos que


harán el papel de “padres”. Esta selección puede realizarse de manera
probabilista en función de los fitness correspondientes. Recuerde que, los
individuos más aptos tendrán mejores oportunidades (no absolutas) para
reproducirse. En nuestro caso generamos 2 números aleatorios (uno para cada
padre) en el intervalo [0; 1]; supongamos que los números generados son 0.13

10
y 0.45, mismos que permiten escoger a los individuos padres I1 e I3 (011001 y
010111)

Cruce

Una vez escogidos los padres, procedemos con el proceso de reproducción.


Establecemos como punto de cruce el gen 3, y generamos dos hijos como se
muestra a continuación:

I1: 011001 I2: 010111

Entonces los hijos serán:

h1: 011111 h2: 010001

En el presente caso, si evaluamos el desempeño de h1 y h2 con la función


Fitness, veremos que los nuevos descendientes tienen menos calidad que sus
padres (y otros miembros de la población), razón por la que podemos optar por
no incorporarlos a la población.

El AG se detiene cuando se haya encontrado algún individuo de calidad


(solución), es decir, aquel que satisfaga los requerimientos de recorrer todas las
ciudades con la menor trayectoria.

11
Recursos complementarios
 El problema del ciclista con algoritmos genéticos

https://www.youtube.com/watch?v=bNRPk8mX5SA

Bibliografía
Russell, S. (2021). Artificial Intelligence: A Modern Approach. Pearson Global
Editions.

García, A. (2013). Inteligencia Artificial: fundamentos, práctica y aplicaciones.


Editorial Alfaomega.

12

También podría gustarte