11.07.2015 Views

enriquecimiento del conocimiento previo en programación lógica ...

enriquecimiento del conocimiento previo en programación lógica ...

enriquecimiento del conocimiento previo en programación lógica ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3. Revisión de métodos 93.2 Programación lógica con restriccionesLa Constraint Logic Programming (CLP) es un paradigma de programación <strong>en</strong> el cual un problema desatisfacción de restricciones - CSP es planteado con un l<strong>en</strong>guaje lógico. Combina a su vez dos paradigmasdeclarativos: la programación lógica y la programación de restricciones [17]. Una de las v<strong>en</strong>tajas de la CLPsobre la programación lógica es su capacidad de manejar valores numéricos <strong>en</strong> distintos dominios: N, Z, R;y precisam<strong>en</strong>te esta v<strong>en</strong>taja es la que ha sido aprovechada <strong>en</strong> algunos sistemas ILP.Algoritmo NUMEn [1], se define a priori la forma de las literales numéricas con el metapredicado usage/1, cuyo únicoargum<strong>en</strong>to es una literal numérica. Cada literal numérica puede t<strong>en</strong>er tres tipos de términos: +, indica que<strong>en</strong> dicha posición debe haber un símbolo de variable ya pres<strong>en</strong>te <strong>en</strong> la cláusula a especializar; ⊥, indica que<strong>en</strong> esa posición puede haber cualquier símbolo de variable; #, indica que <strong>en</strong> esa posición debe haber unsímbolo de constante.Si queremos que se cre<strong>en</strong> literales de la forma: Y = C 1 • X + C 2 , donde C i es una constante, y X, Yson variables, <strong>en</strong>tonces el usuario debe declarar: usage ((+real) = (#real) • (+real) + (#real)). Así,cuando el operador de refinami<strong>en</strong>to elija esta literal, el algoritmo llamado NUM realiza lo sigui<strong>en</strong>te:Se plantean sistemas de n ecuaciones con n incógnitas, donde n es el número de términos declaradoscon el símbolo #. Por ejemplo si el usuario declara la restricción lineal Y = C 1 X + C 2 , donde C 1 y C 2son términos declarados con #; X, Y son términos declarados con el símbolo +. Entonces NUM planteasistemas de 2 ecuaciones con 2 incógnitas, donde C 1 y C 2 se vuelv<strong>en</strong> variables y las variables X, Y sonreemplazadas por valores cont<strong>en</strong>idos <strong>en</strong> el conjunto de ejemplos y <strong>en</strong> el <strong>conocimi<strong>en</strong>to</strong> <strong>previo</strong>. Así t<strong>en</strong>dríamossistemas con dos ecuaciones, p.e. 1)5 = 7C 1 + C 2 , 2)3 = 2C 2 + C 2Después un sistema CLP es usado para resolver cada sistema de ecuaciones planteado. Por cada sistemaresuelto se <strong>en</strong>cu<strong>en</strong>tra un conjunto de valores numéricos. En el caso de nuestro ejemplo cada sistema devuelvedos valores: para C 1 y C 2 . Por ejemplo si C 1 = 0.5, C 2 = −1, <strong>en</strong>tonces se crea la literal numéricaY = 0.5X − 1. Esta literal será usada para especializar la cláusula correspondi<strong>en</strong>te.3.3 Algoritmos g<strong>en</strong>éticosLos Algoritmos G<strong>en</strong>éticos - GA (John Holland [14]) están basados <strong>en</strong> la evolución natural, y son usados parabuscar y optimizar soluciones a problemas específicos.Hay varios aspectos a tomar <strong>en</strong> cu<strong>en</strong>ta d<strong>en</strong>tro <strong>del</strong> proceso g<strong>en</strong>eral de un GA. El primero es la repres<strong>en</strong>taciónde cada individuo (cromosoma), g<strong>en</strong>eralm<strong>en</strong>te se repres<strong>en</strong>tan como cad<strong>en</strong>as binarias, aunque <strong>en</strong> ell<strong>en</strong>guaje lógico este aspecto no es trivial. También se debe tomar <strong>en</strong> cu<strong>en</strong>ta la función de aptitud para evaluarsi un cromosoma es mejor que otro. La definición de los operadores g<strong>en</strong>éticos es es<strong>en</strong>cial. Por un lado elcruzami<strong>en</strong>to <strong>en</strong>tre dos cromosomas (padres), permite crear dos individuos (hijos) que idealm<strong>en</strong>te heredanlas mejores características de los padres. Por otro lado el operador de mutación permite la introducción d<strong>en</strong>ueva información a la población. En ILP se han creado varios sistemas que toman <strong>en</strong> cu<strong>en</strong>ta estos aspectoscon el objetivo de buscar al mejor individuo: la teoría lo más precisa y expresiva posible.SIA01En el algoritmo SIA01 [2], los cromosomas se repres<strong>en</strong>tan usando directam<strong>en</strong>te un formato lógico. Cadacláusula es un cromosoma, y los predicados y sus argum<strong>en</strong>tos son g<strong>en</strong>es. Así, la cláusula p (X, Y ) ←

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!