• No results found

Summary of Future Work

In document Search Based Testing (Page 184-200)

En la d´ecada de 1970, de la mano de John Holland surgi´o una de las l´ıneas m´as pro- metedoras de la inteligencia artificial, la de los algoritmos gen´eticos. Son llamados as´ı porque se inspiran en la evoluci´on biol´ogica y su base gen´etico-molecular.

Dado un problema espec´ıfico a resolver, la entrada del GA es un conjunto de solu- ciones potenciales a ese problema,codificadas de alguna manera, y una m´etrica llamada

funci´on de aptitud que permite evaluar cuantitativamente a cada soluci´on. Estas solu-

ciones (individuos) se sabe que funcionan aunque no de manera ´optima, con el objetivo de que el GA las mejore, las cuales se suelen generar aleatoriamente.

Despu´es, el GA eval´ua cada soluci´on de acuerdo con la funci´on de aptitud. En un conjunto de soluciones (poblaci´on) generadas aleatoriamente, por supuesto, la mayor´ıa no funcionar´an en absoluto, y ser´an eliminadas. Sin embargo, por puro azar, unas pocas pueden ser prometedoras, pueden mostrar actividad, aunque s´olo sea actividad d´ebil e imperfecta, hacia la soluci´on del problema.

Estas soluciones prometedoras se conservan y se les permite reproducirse (cruza-

miento). Se realizan m´ultiples copias de ellas, pero las copias no son perfectas; se

introducen cambios aleatorios (mutaci´on) durante el proceso de copia. Luego, esta des- cendencia prosigue con la siguiente generaci´on, formando un nuevo conjunto de solu- ciones candidatas, y son sometidas a una ronda de evaluaci´on de aptitud. Las soluciones que han empeorado o no han mejorado con los cambios en su c´odigo son eliminadas; pero, de nuevo, por puro azar, las variaciones aleatorias introducidas en la poblaci´on pueden haber mejorado a algunos individuos, convirti´endolos en mejores soluciones del problema, m´as completas o m´as eficientes. De nuevo, se selecionan y copian estos indi- viduos vencedores hacia la siguiente generaci´on con cambios aleatorios, y el proceso se repite. Las expectativas son que la aptitud media de la poblaci´on se incrementar´a en cada ronda y, por tanto, repitiendo este proceso cientos o miles de veces (generaciones),

pueden descubrirse soluciones muy buenas del problema.

Esquema general del algoritmo

A continuaci´on se presenta el esquema general de un algoritmo gen´etico (ver Figura 16):

1. Generar aleatoriamente una poblaci´on de soluciones a un problema, representadas por una estructura de datos adecuada.

2. Evaluar cada una de las soluciones, y asignarle una puntuaci´on o aptitud seg´un lo bien que lo hayan hecho.

3. Seleccionar de la poblaci´on las soluciones que tengan una aptitud mayor.

4. Cruzar y mutar las diferentes soluciones seleccionadas para reconstruir la po- blaci´on.

5. Repetir un n´umero determinado de veces, o hasta que se haya encontrado la soluci´on deseada.

M´etodos de representaci´on

Antes de que un GA pueda ponerse a trabajar en un problema, se necesita un m´etodo para codificar las soluciones potenciales del problema de forma que una computadora pueda procesarlas. Un enfoque com´un es codificar las soluciones como cadenas binarias: secuencias de 1s y 0s, donde el d´ıgito de cada posici´on representa el valor de alg´un aspecto de la soluci´on. Otro m´etodo similar consiste en codificar las soluciones como cadenas de enteros o n´umeros decimales, donde cada posici´on, de nuevo, representa alg´un aspecto particular de la soluci´on. Este m´etodo permite una mayor precisi´on y complejidad que el m´etodo restringido de utilizar s´olo n´umeros binarios, y a menudo

Inicio población Generar Evaluación Selección Reproducción de paro Criterio Fin si no

Figura 16: Esquema general de un algoritmo gen´etico.

est´a, intuitivamente, m´as cerca del espacio de problemas. Un tercer m´etodo consiste en representar a los individuos de un GA como cadenas de letras, donde cada letra representa un aspecto espec´ıfico de la soluci´on.

La virtud de estos tres m´etodos es que facilitan la definici´on de operadores que causen los cambios aleatorios en las candidatas seleccionadas: cambiar un 0 por un 1 o viceversa, sumar o restar al valor de un n´umero una cantidad elegida al azar, o cambiar una letra por otra.

M´etodos de selecci´on

Existen diferentes t´ecnicas para seleccionar a los individuos que deben copiarse hacia la siguiente generaci´on. Algunos de estos m´etodos son mutuamente exclusivos, pero otros pueden utilizarse en combinaci´on. Los m´as usados son:

La mayor´ıa no utilizan elitismo puro, sino que usan una forma modificada en la que el mejor individuo, o algunos de los mejores, son copiados hacia la siguiente generaci´on en caso de que no surja nada mejor.

Proporcional a la aptitud: Los individuos m´as aptos tienen m´as probabilidad

de ser seleccionados, pero no existe certeza.

Ruleta: Una forma de selecci´on proporcional a la aptitud en la que la probabili-

dad de que un individuo sea seleccionado es proporcional a la diferencia entre su aptitud y la de sus competidores.

Torneo: Se eligen subgrupos de individuos de la poblaci´on, y los miembros de

cada subgrupo compiten entre ellos. S´olo se elige a un individuo de cada subgrupo para la reproducci´on.

Por rango: A cada individuo de la poblaci´on se le asigna un rango num´erico

basado en su aptitud, y la selecci´on se basa en esta asignaci´on, en lugar de las diferencias absolutas en aptitud. La ventaja de este m´etodo es que puede evitar que individuos muy aptos ganen dominancia al principio a expensas de los menos aptos, lo que reducir´ıa la diversidad gen´etica de la poblaci´on y podr´ıa obstaculizar la b´usqueda de una soluci´on aceptable.

Generacional: Sustituir todos los individuos de una generaci´on para obtener la

siguiente.

M´etodos de cruzamiento

El cruzamiento implica seleccionar a dos individuos para que intercambien segmentos de su c´odigo, produciendo unadescendencia cuyos individuos son combinaciones de sus padres. Las formas comunes de cruzamiento son:

En un punto: Se establece un punto de intercambio en un lugar aleatorio del genoma de los dos individuos. El individuo a contribuye todo su c´odigo anterior a ese punto y el individuob contribuye todo su c´odigo a partir de ese punto para producir una descendencia. Se repite el proceso intercambiando los individuos para crear a la segunda descendencia, ver Figura 17.

Hijos: Padres:

Figura 17: Cruzamiento de un punto.

En dos puntos: Se establecen dos puntos de intercambio en dos lugares aleatorios

del genoma de los individuos, intercambiando sus c´odigos para producir dos hijos, ver Figura 18.

Hijos: Padres:

Figura 18: Cruzamiento de dos punto.

bits de los dos cromosomas que coincidan donde hay un 1 en el individuo. O bien se genera un n´umero aleatorio para cada bit, y si supera una determinada probabilidad se intercambia ese bit entre los dos cromosomas.

M´etodos de mutaci´on

La mutaci´on es un operador gen´etico utilizado para mantener la diversidad gen´etica de una poblaci´on de individuos en el cambio de una generaci´on a la siguiente. Es an´alogo a la mutaci´on biol´ogica.

El ejemplo cl´asico de un operador de mutaci´on involucra una probabilidad donde un bit arbitrario en una secuencia gen´etica ser´a modificado de su estado original. Un m´etodo com´un para la implementaci´on de un operador de mutaci´on es generar una variable aleatoria para cada bit que conforma al individuo. Esta variable aleatoria indica si un bit en particular ser´a o no modificado.

El prop´osito de la mutaci´on es evitar los m´ınimos locales previniendo las poblaciones de individuos muy similares entre s´ı, lo cual vuelve lenta o incluso detiene la evoluci´on.

Criterio de paro

El proceso generacional se repite hasta que se encuentre un criterio de paro. Los criterios de paro m´as comunes son:

Se encuentra una soluci´on que satistace un criterio m´ınimo.

Se alcanza un n´umero de generaciones dado.

No se producen mejores individuos despu´es de un n´umero determinado de gene- raciones.

Revisi´on manual.

En resumen, estos algoritmos hacen evolucionar una poblaci´on de individuos so- meti´endola a acciones aleatorias semejantes a las que act´uan en la evoluci´on biol´ogica (mutaciones y cruzamiento gen´etico). As´ı como tambi´en a una selecci´on de acuerdo con alg´un criterio, en funci´on del cual se decide cu´ales son los individuos m´as aptos, que sobreviven, y cu´ales, los menos aptos, son descartados.

Ventajas de los GAs

La primera y m´as importante es que los algoritmos gen´eticos son intr´ınsecamente paralelos. La mayor´ıa de los otros algoritmos son en serie y s´olo pueden explorar el espacio de soluciones hacia una soluci´on en una direcci´on al mismo tiempo, y si la soluci´on que descubren resulta sub´optima, no se puede hacer otra cosa que abandonar el trabajo hecho y empezar de nuevo. Sin embargo, ya que los GAs tienen descendencia m´ultiple, pueden explorar el espacio de soluciones en m´ultiples direcciones a la vez. Si un camino resulta no ser satisfactorio, puede ser eliminado f´acilmente y continuar el trabajo en caminos m´as prometedores, d´andoles una mayor probabilidad de encontrar la soluci´on en cada ejecuci´on.

Debido al paralelismo que les permite evaluar impl´ıcitamente muchos esquemas a la vez, los algoritmos gen´eticos funcionan particularmente bien resolviendo pro- blemas cuyo espacio de soluciones potenciales es realmente grande (demasiado vasto para hacer una b´usqueda exhaustiva en un tiempo razonable). La mayor´ıa de los problemas que caen dentro de esta categor´ıa se conocen como no lineales. En un problema no lineal, la aptitud de cada componente es independiente, por lo que cualquier mejora en alguna parte dar´a como resultado una mejora en el sistema completo.

Otra ventaja notable de los algoritmos gen´eticos es que se desenvuelven bien en problemas con un paisaje adaptativo complejo (aquellos en los que la funci´on de

aptitud es discontinua, ruidosa, que cambia con el tiempo, o que tiene muchos ´optimos locales).

Otra ´area en la que destacan los algoritmos gen´eticos es en su habilidad para ma- nipular muchos par´ametros simult´aneamente. Muchos problemas de la vida real no pueden definirse en t´erminos de un ´unico valor que hay que minimizar o maxi- mizar, sino que deben expresarse en t´erminos de m´ultiples objetivos, a menudo involucrando contrapartidas: uno s´olo puede mejorar a expensas de otro. Los GAs son muy buenos resolviendo estos problemas: en particular, su uso del pa- ralelismo les permite producir m´ultiples soluciones, igualmente buenas, al mismo problema, donde posiblemente una soluci´on candidata optimiza un par´ametro y otra candidata optimiza uno distinto, y luego un supervisor puede seleccionar una de esas candidatas para su utilizaci´on.

Finalmente, una de las cualidades de los algoritmos gen´eticos que, a primera vista, puede parecer un desastre, resulta ser una de sus ventajas: a saber, los GAs no saben nada de los problemas que deben resolver. En lugar de utilizar informaci´on espec´ıfica conocidaa priori para guiar cada paso, realizan cambios aleatorios en sus soluciones candidatas y luego utilizan la funci´on de aptitud para determinar si esos cambios producen una mejora.

II.6

Clasificaci´on

Como se mencion´o en la introducci´on, el problema de clasificaci´on es mucho m´as amplio que el concerniente a la visi´on por computadora por no decir al reconocimiento de objetos. La idea b´asica en clasificaci´on es reconocer objetos basado en caracter´ısticas.

Las formas de clasificaci´on de objetos son susceptibles a dividirse seg´un el esquema de la Figura 19.

intrínsecas extrínsecas

clasificaciones

no exclusivas exclusivas

Figura 19: Esquema de clasificaci´on.

No exclusivas: Un mismo objeto puede pertenecer a varias clases.

Exclusivas: Cada objeto pertenece solamente a una clase.

Intr´ınsecas (no supervisadas): la clasificaci´on se realiza en base a las carac-

ter´ısticas propias de los objetos, sin conocimiento previo sobre las clases a las que pertenecen.

Extr´ınsecas (supervisadas): Las clases a las que pertenecen los objetos est´an pre-

definidas y se conocen ejemplos de cada una, o algunos de los objetos ya est´an clasificados y son utilizados por el mismo algoritmo para aprender a clasificar a los dem´as.

La clasificaci´on utiliza habitualmente uno de los siguientes procedimientos: clasifi-

caci´on estad´ıstica (o teor´ıa de decisi´on), clasificaci´on sint´actica (o estructural). El re-

conocimiento estad´ıstico de patrones est´a basado en las caracter´ısticas de los patrones, asumiendo que han sido generados por un sistema probabil´ıstico. El reconocimiento estructural de patrones est´a basado en las relaciones estructurales de las caracter´ısticas. Para la clasificaci´on se puede utilizar un conjunto de aprendizaje, del cual ya se conoce la clasificaci´on de la informaci´on a priori y se usa para entrenar al sistema, siendo la estrategia resultante conocida como aprendizaje supervisado. El aprendizaje

puede ser tambi´enno supervisado, donde el sistema no tiene un conjunto para aprender a clasificar la informaci´ona priori, sino que se basa en c´alculos estad´ısticos para clasificar los patrones.

In document Search Based Testing (Page 184-200)