Está en la página 1de 35

+

OPTIMIZACIÓN Y
COMPUTACIÓN
INTELIGENTE

Rocío Romero Zaliz


rocio@decsai.ugr.es

MASTER DE ESTRUCTURAS
+
PROGRAMACIÓN GENÉTICA
INTRODUCCIÓN

2
+
Programación Genética (PG)

■ Podemos definir la Programación Genética como un caso particular de


AG usados para inducir programas de ordenador de un modo automático.

■ La disciplina data de 1985, aunque el gran difusor ha sido John Koza a


principios de la década de los 90.

■ La diferencia principal entre AGs y PGs es la representación de las


soluciones. Los cromosomas codifican, de algún modo, programas de
ordenador.

■ Naturalmente, los operadores genéticos han de adaptarse a la


representación empleada.

J.R. Koza, Genetic Programming. MIT Press, 1992.


+
Ejemplo
+
Ejemplo
+
Programación Genética

■ Características:

■ Cromosomas no lineales: árboles, grafos, etc.

■ Cruce muy destructivo, que genera mucha diversidad

■ Mutación posible, pero no necesaria


+
Programación Genética

■ Representación: Estructuras de tipo árbol o similar

■ Cruce: Intercambio de sub-árboles

■ Mutación: Cambios aleatorios en los árboles

■ Selección de padres: Proporcional al fitness

■ Selección de supervivientes: Reemplazo generacional


+
Función de fitness

■ Debe especificar una medida de la calidad del programa codificado en


la resolución del problema planteado.

■ Evaluación recursiva, consistente en dar valor a los atributos de las


hojas e ir subiendo en el árbol hasta devolver el valor asociado a la
raíz.
+
Población inicial

■ Se basa en una generación aleatoria de distintos árboles:

■ El tamaño de los árboles ha de ser menor que un tope máximo


permitido.

■ Para introducir diversidad, se puede:

■ Generar un porcentaje de árboles de cada tamaño válido.

■ Generar programas puramente aleatorios o que hagan uso de todas


las entradas.
+
Operadores

■ Existen dos bloques de operadores:

■ Operadores primarios: Selección, Cruce, Mutación

■ Operadores secundarios:

■ Permutación

■ Edición

■ Encapsulación

■ Decimación
+
Selección
+
Cruce
+
Cruce

■ El cruce de PG de dos individuos iguales no genera dos descendientes


iguales como el de AG.

■ Esto provoca que el cruce de dos árboles muy parecidos con buen
fitness (cuando el algoritmo está próximo a converger) no
necesariamente produzca descendientes adecuados.

■ En PG es necesario considerar tamaños de población mucho mayores


que en los AGs.
+
Mutación

■ Existen distintas posibilidades, que producen una mayor o menor


alteración en el descendiente:

■ Mutación en un punto: Se escoge un nodo y se cambia su valor por


otro del mismo tipo.

■ Mutación por subárbol aleatorio: Se escoge una arista y se


substituye el subárbol conectado a ella por otro generado
aleatoriamente.

■ Tiene menor importancia que en AGs puesto que el operador de cruce


PG se basta para mantener la diversidad.
+
Mutación en un punto
+
Mutación por sub-árbol aleatorio
+
Permutación

■ Se reemplaza una lista de argumentos a una función por una


permutación de los mismos.
+
Edición

■ Simplifica una expresión, reemplazándola por otra más sencilla.


+
Encapsulación

■ Consiste en dar un nombre a un sub-árbol, convirtiendo en una nueva


función que puede intervenir en otros árboles.
+
Decimación

■ Eliminación de un porcentaje de individuos de la población en función


de su fitness, para evitar tener que evaluar soluciones que se
desecharán en generaciones posteriores.

■ En cierto modo, es una aproximación a las poblaciones de tamaño


variable de los AGs.
+
Ejemplos
appletviewer

■ http://www.cim.mcgill.ca/~jer/courses/ai/
applets/GP/
+
TEMAS AVANZADOS

22
+
Diversidad

■ Diversidad genética
■ Asociada a las diferencias entre los cromosomas en la población
■ Falta de diversidad genética = todos los individuos en la población son parecidos

Falta de diversidad convergencia al vecino más cercano

Alta presión selectiva falta de diversidad

■ En la práctica es irreversible. Soluciones:


■ Inclusión de mecanismos de diversidad en la evolución
■ Reinicialización cuando se produce convergencia prematura
+
Exploración vs Explotación

■ EXPLORACIÓN
■ Exploración = muestrear regiones desconocidas
■ Excesiva exploración = búsqueda aleatoria, no convergencia

■ EXPLOTACIÓN
■ Explotación = trata de mejorar el mejor individuo
■ Excesiva explotación = solo búsqueda local … convergencia a un óptimo
local
+
Algoritmos genéticos multiobjetivo

① Problemas multiobjetivo

② Evolución en problemas multiobjetivo

③ Elitismo en la búsqueda evolutiva multiobjetivo

④ NSGA-II

⑤ Métricas de comparación

K. Deb, Multi-Objective Optimization using Evolutionary Algorithms. John Wiley & Sons,
2001.

C.A. Coello, D.A. Van Veldhuizen, G.B. Lamont, Evolutionary Algorithms for Solving
Multi-Objective Problems. Kluwer Academic Pub., 2002.
+
Problemas multiobjetivo


■ Muchos problemas reales se caracterizan por la existencia de múltiples


medidas de actuación, las cuales deberían ser optimizadas, o al menos
ser satisfechas simultáneamente

■ Ejemplo: Diseño de un sistema control de aire acondicionado,


optimizando el conjunto de parámetros de un sistema de control:
■ Minimizar el consumo de energía
■ Maximizar el confort de los usuarios
■ Maximizar la estabilidad del sistema de control, etc.
+
Problemas multiobjetivo


■ Un Problema Multiobjetivo consiste en:

Max o Min z = f(x) = (f1(x), f2(x), ..., fn(x))  

■ Soluciones pareto-optimales o no-dominadas: Se dice que un vector


a domina a otro b si, y sólo si:

∀i∈{1,2,...,n} ⎜ fi(a) ≥ fi(b) ∧ ∃ j ∈{1,2,...,n} ⎜ fi(a) > fi(b)

■ Es decir, una solución domina a otra si es mejor o igual en todos los


objetivos y al menos mejor en uno de ellos.

■ Todos los vectores de decisión que no son dominados por ningún otro
vector se llaman pareto-optimales o no-dominados.
+
Problemas multiobjetivo


■ No suele existir una única solución optimal, existe un conjunto (a


veces infinito) de soluciones No-Dominadas que forma la Frontera del
Pareto

■ Ejemplo: Identificar la frontera del Pareto para [Max Q(x), Max T(x)]

x : vector solución
Objetivo T(x)

Frontera del Pareto


Soluciones No-Dominadas
(Puntos de la Frontera
del Pareto)
Soluciones Dominadas
(punto interior)

Objetivo Q(x)
+
Problemas multiobjetivo


■ ¿Qué necesitamos para resolver este problema?:


■ Un método de búsqueda basado en los múltiples objetivos.
■ Una política de equilibrio entre los objetivos.
■ Un orden para este proceso de optimización.

■ Vamos a considerar 2 posibilidades: a) Agregación + búsqueda

■ Primero se agregan los objetivos dando lugar a una función de fitness para el
AG que se aplica a continuación.
+
Problemas multiobjetivo


■ Vamos a considerar 2 posibilidades: b) Búsqueda + agregar/decidir

Soluciones no
dominadas

■ Nota: Se puede considerar una tercera posibilidad híbrida, combinando búsqueda en


alta dimensión con búsquedas en dimensiones menores vía agregación parcial de
objetivos, como modelos interactivos.
+
Evolución en Problemas Multiobjetivo

■ Se evoluciona una población de soluciones al problema.

■ Se aplican mecanismos que mantengan diversidad en la población para


conseguir un conjunto de soluciones no dominadas lo más grande
posible.

■ Dos tipos de modelos de acuerdo a las tipologías a) y b):


■ Modelos evolutivos utilizando pesos para la agregación de los objetivos.
■ Modelos evolutivos que generan poblaciones de soluciones no dominadas.
+
Modelos Evolutivos utilizando pesos

■ La agregación de los objetivos conduce a la obtención de un único


punto de equilibrio en la frontera.

■ Ejemplo: [Max Q(x), Max T(x)]


■ Dar a T(x) dos veces la importancia de Q(x), ej: T(x) = 2*Q(x)

T(x) = 2Q(x) La línea T(x) = 2*Q(y)


Frontera de corresponde al vector de
Pareto pesos W: [1 , 2], cuando se
utiliza una función que
combina ambos objetivos
T(x)

F = W * [Q(x), T(X)]
F = [1, 2] * [Q(x), T(X)]
F = Q(x) + 2*T(x)
Q(x)
+
Áreas de Aplicación

■ La aplicación de las
técnicas de inteligencia
computacional es una
realidad cada vez más
próxima en nuestro
entorno y en todas las
áreas de la ingeniería y
las ciencias
experimentales
+
Áreas de Aplicación

■ Optimización
■ Ingeniería
■ Diseño
■ Planificación

■ Clasificación y descubrimiento de información en


bases de datos
+
¡Gracias por vuestra atención!
¿Preguntas? ¿Comentarios?

También podría gustarte