Está en la página 1de 15

COMPUTACIÓN EVOLUTIVA

(CE)
SISTEMAS CLASIFICADORES

Angel García Baños


Escuela de Ingeniería de Sistemas y Computación
Universidad del Valle

04 de febrero de 2008
OTROS ALGORITMOS
EVOLUTIVOS
SISTEMAS CLASIFICADORES
LCS
■ LCS (Learning Classifier Systems) ideados por
Holland. También llamados CS o CFS.
■ Se emplea cuando se desea controlar un entorno
caracterizado por:
– Cambios constantes, eventos importantes mezclados con
ruido.
– Requerimiento de actuar sobre él en tiempo real.
– Objetivos implícitos o mal definidos.
■ Es similar a un sistema experto, pero el
conocimiento lo va adquiriendo sobre la marcha:
– No necesita un experto humano.
– Sirve una para multitud de entornos distintos.
AGB 4
LCS
■ Hoy día ha sufrido muchas modificaciones respecto
a la formulación original. Ha asumido conceptos de
“Aprendizaje evolutivamente reforzado” (ERL) y de
“Q-learning” (aunque este último no es realmente
evolutivo), y por ello también lo llaman Q-CS, Q-
LCS, etc. Recientemente Holland lo nombra
“sistema de agentes adaptativos”.
■ La idea inicial era construir ANIMATs
(Animal+roboT) que pudieran evolucionar en un
entorno (entorno ECHO de Holland). Pero no solo
sirve para robots sino en cualquier tarea software
que requiera autoaprendizaje.

AGB 5
LCS
■ El LCS está basado en una población de reglas de
aprendizaje sencillas, también llamadas clasificadores:
IF <condicion> THEN <mensaje>
■ A ello se le llama “sistema de producción”, que es
computacionalmente completo.
■ Tanto las condiciones como los mensajes utilizan un
código binario {0,1,#}. Siendo # = “no importa”.
■ Constituido por cuatro módulos principales:
– Módulo de reglas clasificadoras
– Módulo de selección
– Módulo de algoritmo genético
– Módulo de crédito (o recompensa o fuerza o aptitud)
AGB 6
LCS

■ Diagrama de bloques:

DECODIFICADOR
CODIFICADOR

MENSAJES

SELECCIÓN
REGLAS Salida
Entrada 101101
CLASIFICADORAS
#000#1
000111
IF 100#0# THEN 110101
1100#0
IF ###0## THEN 101101
111100

ALGORITMO
GENÉTICO
CRÉDITO

ENTORNO

AGB 7
LCS
■ Cada clasificador tiene asociada una aptitud.
■ Las entradas procedentes del entorno se codifican en una o
mas cadenas binarias, que se inyectan a un tablón de
mensajes.
■ Los clasificadores chequean el tablón de mensajes. Si hay
alguna cadena que coincida con su respectiva condición IF,
entonces se activa el respectivo clasificador.
■ A continuación, el tablón de mensajes se vacía.
■ Los clasificadores activos compiten por ser seleccionados
(ruleta, torneo...), en función de su aptitud. Los que sean
seleccionados, generan su respectivo mensaje, que se inyecta
al tablón de mensajes y puede ser decodificado para producir
una salida hacia el entorno.

AGB 8
LCS
■ Todas las reglas activadas deben pagar un “impuesto”,
que se les descuenta de la aptitud.
■ El entorno debe ofrecer una recompensa a las reglas que
generaron salidas buenas (se suma a la aptitud). Esa
recompensa se distribuye a todas las reglas que
contribuyeron a producir esa salida.
■ Hay varios algoritmos de distribución, pero uno muy
usado (y también muy criticado) es el “bucket brigade”
(brigada de baldes).

AGB 9
LCS
■ Algoritmo de reparto de recompensa “bucket brigade”:
– La regla que envió al entorno la salida, recibe una
recompensa.
– Una parte proporcional de esa recompensa la cede a la
regla que produjo el mensaje anterior que la activó.
– Y así hacia atrás, siguiendo la trayectoria inversa que
generó el mensaje de salida.

Mensaje C Mensaje H Mensaje U

ENTORNO
Etc. Regla 5 Regla 9
p5 p9
RECOMPENSA
R

AGB 10
LCS
■ Usualmente:
p ← p + β (R − p )
■ con p=aptitud, R=recompensa del entorno y β=tasa
de aprendizaje con 0 < β ≤ 1
■ El principal problema del LCS es que cuando los
mensajes de salida son producidos por cadenas
muy largas de reglas clasificadoras, el reparto de la
recompensa hace que a cada una le toque muy
poco.
■ Entonces, el sistema aprende muy despacio o no
aprende.
AGB 11
LCS
■ En cuanto a la evolución del LCS, el objetivo es generar
nuevas reglas con el paso del tiempo, por medio de un
GA.
■ Hay dos variantes:
– Michigan (Holland): cada una de las reglas clasificadoras
es un cromosoma de la población en el GA.
– Pittisburg (Smith): todo el conjunto de reglas
clasificadoras es un cromosoma de la población en el
GA.

AGB 12
LCS
■ Ejemplo: una rana-robot. Las reglas serían:
IF objeto pequeño volador a la izquierda THEN @
IF objeto pequeño volador a la derecha THEN %
IF objeto pequeño volador al centro THEN $
IF objeto grande amenazador THEN !
IF no es un objeto grande amenazador THEN *
IF * AND @ THEN moverse 15 grados a la izquierda
IF * AND % THEN moverse 15 grados a la derecha
IF * AND $ THEN moverse en esa dirección
IF ! THEN moverse rápido en dirección contraria

AGB 13
LCS
■ Y su codificación binaria sería:
Tamaño objeto: Posición objeto y mi dirección movimiento:
0000=pequeño 00=izquierda
1111=grande 01=derecha
10=hacia el objeto
Aspecto objeto: 11=en dirección contraria al objeto
00=volador
01=amenazador Símbolos internos:
0000=@
Mi acción: 0001=%
00=quieto 0010=$
11=moverme 1111=!
1000=*

AGB 14
LCS
■ Los clasificadores codificados serían:
Aspecto objeto Posición objeto
Tamaño
objeto 0 0000 00 00 0000
0 0000 00 01 0001
Símbolos
Negación 0 0000 00 10 0010 internos
0 1111 01 ## 1111
1 1111 01 ## 1000
0 1000 0000 11 00
Símbolos
0 1000 0001 11 01 Mi dirección
internos
0 1000 0010 11 10 movimiento

0 1111 #### 11 11

Símbolos
internos Mi acción

AGB 15