Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Inteligencia Artificial
Computación evolutiva
Índice Pág.
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.
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.
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).
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.
Figura 12.3 Algoritmo básico de la PE. Fuente: Guía de Inteligencia Artificial, M. Almache
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 )
¿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?
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?
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.
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.
(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
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í:
C es el número de ciudades
bi es el bit i-ésimo
Fitness(I)=Fitness1(I) – 0.1*Fitness2(I)
Selección
10
y 0.45, mismos que permiten escoger a los individuos padres I1 e I3 (011001 y
010111)
Cruce
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.
12