Componentes bsicos para implementar un AG - PowerPoint PPT Presentation

1 / 28
About This Presentation
Title:

Componentes bsicos para implementar un AG

Description:

Una forma de crear una poblaci n inicial de soluciones potenciales. ... el valor de un bit puede suprimir las contribuciones de aptitud de otros bits en el cromosoma. ... – PowerPoint PPT presentation

Number of Views:40
Avg rating:3.0/5.0
Slides: 29
Provided by: Lau9341
Category:

less

Transcript and Presenter's Notes

Title: Componentes bsicos para implementar un AG


1
Componentes básicos para implementar un AG
  • Una representación de soluciones potenciales del
    problema.
  • Una forma de crear una población inicial de
    soluciones potenciales.
  • Una función de evaluación de aptitud.
  • Operadores genéticos que alteran la generación de
    los descendientes.
  • Valores de los parámetros Tamaño de la
    población, prob.de crossover, prob de mutación,
    nro.máximo de generaciones, etc).

2
Representación
  • Cada individuo de la población está representado
    por un cromosoma. Ej (b1, b2, ..., bm)
  • Los elementos que componen el cromosoma se
    denominan genes.
  • La posición física que ocupa cada gen dentro del
    cromosoma se denomina locus.
  • Las diferentes formas (valor) que puede tomar un
    gen se denomina alelo. Ej si la representación
    es binaria, los posibles valores son 0 y 1.

3
Representación
  • Holland dio una justificación teórica para el uso
    de la codificación binaria.
  • Comparó dos representaciones con la misma
    capacidad de representación.
  • Ej cadenas binarias de long. 80 y cadenas
    decimales de longitud 24 ? 280 ? 1024
  • Argumentó que una representación más larga y con
    menos alelos (binaria) permite más esquemas que
    otra representación más corta y con más alelos
    (decimal).

4
Representación
  • Se llama bloque constructor a la porción de un
    cromosoma que le produce una aptitud elevada a la
    cadena en la cual está presente.
  • El poder contar con más esquemas favorece la
    diversidad y ayuda a la generación de buenos
    bloques constructores mejorando el desempeño del
    AG con el paso del tiempo (según la teoría de los
    esquemas).

5
Desventajas de la representación binaria
  • Hay cierto tipo de problemas del mundo real que
    no se ajusta a la representación binaria
  • Ejemplo Optimización de una función con alta
    dimensionalidad (ej50 variables) con una buena
    precisión (ej 5 decimales)
  • El cromosoma puede ser muy largo.
  • Los operadores genéticos deberán ser adaptados
    para cada tipo de problema.

6
Desventajas de la representación binaria
  • Epistasis el valor de un bit puede suprimir las
    contribuciones de aptitud de otros bits en el
    cromosoma.
  • Representación natural problemas como el del
    viajero se prestan de manera natural para el uso
    de representaciones con mayor cardinalidad que la
    binaria (uso de permutaciones de nros. enteros
    decimales)
  • Soluciones ilegales producidas por los operadores
    genéticos aplicados sobre una representación
    binaria.

7
Códigos Gray
  • La representación binaria no mapea adecuadamente
    el espacio de búsqueda con el espacio de
    representación
  • Ejemplo Si codificamos en binario los números 5
    y 6, los cuales están adyacentes en el espacio de
    búsqueda, sus equivalentes en binario, 101 y 110,
    difieren en dos bits en el espacio de
    representación.

8
Códigos Gray
  • Buscan que la propiedad de adyacencia en el
    espacio de búsqueda se conserve en el espacio de
    representación.
  • Cualquier número binario se convierte a un código
    Gray haciendo XOR de sus bits consecutivos.
  • el último bit de la izquierda queda como está.

Binario
Gray
9
Conversión de Binario a Gray
  • Dado el cromosoma binario b(b1,..., bm), su
    conversión a Gray, g(g1,..., gm) se realiza de
    la siguiente forma
  • Procedure Binary_to_Gray
  • begin
  • g1 b1
  • for k 2 to m do
  • gk bk-1 XOR bk
  • end

10
Conversión de Gray a Binario
  • El dígito izquierdo el cromosoma gray conserva el
    valor de su original binario. A partir de allí
    hay que hacer la reconversión.
  • Veamos las combinaciones posibles
  • Gray Binario
  • 0 0 0 0
  • 1 0 1 1
  • 0 1 0 1
  • 1 1 1 0

11
Conversión de Gray a Binario
  • Procedure Gray_to_Binary
  • begin
  • value g1
  • b1 value
  • for k 2 to m do
  • begin
  • if gk 1 then value NOT value
  • bk value
  • end
  • end

12
Conversión de Gray a Binario
Gray
  • Procedure Gray_to_Binary
  • begin
  • value g1
  • b1 value
  • for k 2 to m do
  • begin
  • if gk 1 then value NOT value
  • bk value
  • end
  • end

Binario
Value 0
13
Conversión de Gray a Binario
Gray
  • Procedure Gray_to_Binary
  • begin
  • value g1
  • b1 value
  • for k 2 to m do
  • begin
  • if gk 1 then value NOT value
  • bk value
  • end
  • end

Binario
Value 1
14
Conversión de Gray a Binario
Gray
  • Procedure Gray_to_Binary
  • begin
  • value g1
  • b1 value
  • for k 2 to m do
  • begin
  • if gk 1 then value NOT value
  • bk value
  • end
  • end

Binario
Value 0
15
Conversión de Gray a Binario
Gray
  • Procedure Gray_to_Binary
  • begin
  • value g1
  • b1 value
  • for k 2 to m do
  • begin
  • if gk 1 then value NOT value
  • bk value
  • end
  • end

Binario
Value 1
16
Códigos Gray
  • La representación Gray tiene la propiedad de que
    dos números consecutivos sólo difieren en 1 bit
    en el espacio de representación.
  • Se ha demostrado empíricamente que el uso de
    códigos Gray mejora el desempeño del AG al
    aplicarse a las funciones de prueba clásica de De
    Jong.

17
Ejercicio
  • Implemente en MatLab
  • function g BinToGray(b)
  • function b GrayToBin(g)
  • Verifique que dos números consecutivos sólo
    difieren en 1 bit.

18
  • function b GrayToBin(g)
  • m length(g)
  • value g(1)
  • b(1) value
  • for k 21m,
  • if g(k) 1, value value end
  • b(k) value
  • end

19
Codificando número reales
  • Los códigos de Gray son muy útiles para codificar
    números enteros.
  • Qué ocurre cuando se quiere codificar números
    reales mapeando correctamente el espacio de
    búsqueda en el espacio de representación?

20
Codificando números reales
  • Para representar un número real tradicionalmente
    se usa un número binario definiendo límites
    inferiores y superiores para cada variable junto
    con la precisión deseada.
  • Ejemplo
  • Una variable entre 0.35 y 1.40 con una precisión
    de 2 decimales requiere log2(140-35)7 bits para
    representar cualquier real en ese rango,

21
Codificando números reales
  • Note que el problema continúa porque el número
    0.38 se representaría como 0000011 mientras que
    el número 0.39 sería 0000101.
  • Aunque se utilicen códigos Gray, si se tienen
    demasiadas variables y se busca una buena
    precisión, la dimensión del cromosoma será alta y
    el AG tenderá a tener un desempeño pobre.

22
Codificando números reales
  • Una alternativa podría ser el uso de un formato
    binario estándar para representar números reales.
    Esto permite representar un rango grande de
    números reales usando una cantidad fija de bits.
  • Ejemplo IEEE para precisión simple (32 bits)

23
Codificando números reales
  • El uso de un formato binario estándar para
    representar números reales tiene las siguientes
    desventajas
  • El proceso de decodificación en
    computacionalmente más costoso.
  • Pequeñas modificaciones en el exponente producen
    grandes saltos en el espacio de búsqueda y los
    cambios en la mantisa podrían no modificar
    significativamente el número codificado.

24
Codificando números reales
  • El uso de números reales en el cromosoma ha sido
    más común en otras técnicas de computación
    evolutiva basadas en mutación.
  • Su uso en AG ha sido criticado ya que no puede
    predecirse su comportamiento. Por esto se ha
    tratado de diseñar operadores que emulen el
    efecto de cruza y mutación en alfabetos binarios.
  • El uso de AG con codificación real sigue siendo
    una elección que se deja al usuario.

25
Otras representaciones de reales
  • Se usa un entero para cada dígito asumiendo una
    posición fija para el punto. Ej el número
    1.45679
  • La precisión está limitada por la long.de la
    cadena.
  • Los operadores de cruza pueden aplicarse
    directamente.
  • La mutación podría cambiar un dígito o hacer un
    cambio menor (ej suma 1)

26
Recomendaciones para el diseño de una buena
representación
  • Una codificación
  • Debe ser capaz de representar todos los fenotipos
    posibles.
  • Debe ser carente de sesgo.
  • NO debiera codificar soluciones no factibles.
  • Debe ser fácil de decodificar.
  • Debe poseer localidad pequeños cambios en el
    genotipo producen pequeños cambios en el fenotipo.

27
Recomendaciones para el diseño de una buena
representación
  • Las codificaciones deben ajustarse a operadores
    genéticos que preserven los buenos bloques
    constructores.
  • Las codificaciones deben minimizar la epistasis.
  • Deben evitarse codificar el fenotipo de un
    individuo por más de un genotipo.

28
Ejercicio
  • Modificar el AG básico utilizado la clase
    anterior para hallar el mínimo de la función
  • f(x) x2 en -10,50
  • utilizando una representación decimal con
    posición fija para el punto y una precisión de 4
    decimales.
Write a Comment
User Comments (0)
About PowerShow.com