You are on page 1of 6

Tendencias en Ingeniera de Software e Inteligencia Articial

La programaci n l gico-funcional inductiva: un paradigma de la programaci n o o o declarativa


Edwin Camilo Cubides Garz n o Universidad Nacional de Colombia Facultad de Ciencias, Bogot a Departamento de Matem ticas a eccubidesg@unal.edu.co Jonatan G mez Perdomo o Universidad Nacional de Colombia Facultad de Ingeniera, Bogot a Departamento de Ingeniera de Sistemas jgomezpe@unal.edu.co

Resumen
La programaci n declarativa es un estilo de programao ci n en el cual el programador especica qu debe compuo e tarse en lugar de c mo debe realizarse el c mputo, esto meo o diante el uso de relaciones entre los datos. Un ejemplo es la programaci n l gica inductiva, un modelo de aprendizaje o o maquinal que permite describir el proceso para inducir programas l gicos a partir de f rmulas l gicas instanciadas; o o o una extension funcional del modelo anterior es la programaci n l gico-funcional inductiva, en la cual dados ejemo o plos de igualdades concretas se desea obtener un programa l gico-funcional que permita deducir dichos ejemplos. o

del lenguaje, adem s se citan algunos ejemplos de paradiga mas considerados de tipo declarativo; especialmente se enfatiza y se describen en la secciones 3 y 4 la programaci n o l gica inductiva y la l gico-funcional inductiva, esta ultima o o se ilustra a trav s de un ejemplo basado en la suma de nue meros naturales. Por ultimo en la secci n 6 se presenta el o criterio MDL como un modelo de comparaci n y selecci n o o de programas l gicos y l gico-funcionales. o o

2. Programaci n Declarativa o
Un lenguaje declarativo es tal que sus sentencias describen relaciones entre los datos, ocultando los algoritmos dentro de la sem ntica del lenguaje. Informalmente, la Proa gramaci n Declarativa (PD) establece qu debe ser compuo e tado, pero no necesariamente c mo computarlo. En el ambio to de la programaci n, el t rmino declarativa se suele introo e ducir contraponi ndolo al t rmino imperativa (o procedie e mental). En esta las estructuras de control del lenguaje de programaci n permiten seguir perfectamente las acciones o que debe realizar un programa. La ausencia de este tipo de estructuras de control es lo que caracteriza a los lenguajes declarativos. De esta forma, la PD facilita la labor del programador, permiti ndole concentrarse en dar una formulae ci n del problema, liber ndolo tanto del control de la ejecuo a ci n del algoritmo como de la m quina. Puede decirse que o a en la aproximaci n imperativa la construcci n de un proo o grama consiste en estudiar las secuencias de instrucciones que debe dar al computador para buscar la soluci n, mieno tras que la aproximaci n declarativa viene caracterizada por o una actitud muy diferente: c mo expresar la descripci n o o del problema para que el computador pueda buscar las soluciones?. El primero de los estilos describe las acciones a realizar, mientras que el segundo describe el conocimiento acerca del problema. Asi, en la PD un algoritmo aparece descompuesto a trav s de la famosa ecuaci n [7]: e o Algoritmo = L gica + Control o 1

Abstract
The declarative programming is a style of programming where the programmer species what it should be computed instead of how it should do the computation, this by means of the use of relationship among the data. An example is the inductive logic programming, a model of machine learning that allows to describe the process to induce logic programs starting from logic formulas instanced; an functional extension of previous model is the inductive functional logic programming, where given examples of concrete equations are wish to obtain a logic functional program that allows to deduce those examples. June 13, 2007

1. Introducci n o
En la secci n 2 se presenta la descripci n acerca de los o o conceptos fundamentales de la programaci n declarativa, o haciendo enfasis en las caractersticas y requisitos que debe poseer la teora sobre la cual se fundamenta la l gica utiliza o da para realizar la deducci n de metas u objetivos por parte o

La programaci n l gico-funcional inductiva: un paradigma de la programaci n declarativa, Cubides, Gomez o o o que indica que la componente esencial de un algoritmo es la componente l gica o la especicaci n de un problema en o o t rminos de cierta l gica. e o Los dos principales paradigmas de la PD son la Programaci n L gica (PL) y la Programaci n Funcional (PF). o o o Hist ricamente el t rmino declarativo ha sido acu ado para o e n cubrir la PL y la PF pero en la ultimas d cadas han apa e recido nuevos ejemplares de paradigmas que pueden ubicarse en el area de la PD, algunos de estos son: La Pro gramaci n con Restricciones, La Programaci n Algebraica, o o La Programaci n Concurrente con Restricciones y La Proo gramaci n L gico-Funcional, La Programaci n L gica Ino o o o ductiva y la La Programaci n L gico-Funcional Inductiva, o o principalmente. La sem ntica de un lenguaje programaci n da signicaa o do a los programas y permite describir formalmente lo que calculan; dada la losofa de la PD los programas son vis tos como f rmulas y desde esta perspectiva, un programa o tiene dos lecturas. La primera es ver la f rmula como un o programa desde el punto de vista operacional, con un modelo de reducci n que permite realizar un proceso de infeo rencia utilizado para probar que un objetivo puede ser derivado del programa, esto se encuentra especicado por una sem ntica operacional. La segunda es ver un programa coa mo una f rmula de una l gica a la que se le exige tambi n o o e una sem ntica declarativa, el t rmino declarativa indica que a e se utiliza un dominio matem tico conocido en el cual intera pretar los objetos sint cticos. a La posible ventaja de esta visi n viene dada cuando la o interpretaci n sem ntica es sencilla, y de esta forma los o a programas son f ciles de manejar, transformar y vericar. a As, si se lee un programa como una f rmula se puede razo o nar sobre su correcci n centrando la atenci n en un an lisis o o a l gico de la f rmula, a trav s de un formalismo que permita o o e probar que el programa satisface la especicaci n; teniendo o presente que tanto la especicaci n como el programa son o expresados mediante f rmulas. o Por lo anterior se observa que la principal caracterstica que dene la PD es la l gica, por lo tanto las caractersticas o y requisitos apropiados que debe poseer la l gica para ser o utilizada como modelo deductivo son: i) un modelo te rico o (sem ntica declarativa), ii) un mecanismo de deducci n o a o c mputo (sem ntica operacional), y iii) un teorema de coo a rrecci n (los c mputos o respuestas calculadas deben ser o o correctos). Con respecto a los mecanismos de c mputo asociados se o puede citar la resoluci n para los lenguajes l gicos y la reeso o critura para los funcionales, estos son los estilos m s reprea sentativos de la PD; una nueva tendencia de lenguaje declarativo consiste en unicar los paradigmas l gicos y los funo cionales, por ejemplo la Programaci n L gico-Funcional o o (tambi n conocida como Programaci n Ecuacional), en esta e o aproximaci n se considera el uso de ecuaciones para denir o 2 funciones, y est fundamentada te ricamente en la L gica a o o Ecuacional, la cual es una restricci n de la l gica del c lcuo o a lo de predicados obtenida mediante la eliminaci n de las o conectivas l gicas y todo smbolo de predicado distinto de o la igualdad. La evaluaci n de objetivos (computo) se reao liza mediante el uso del principio operacional denominado narrowing el cual es una combinaci n del principio de reo ducci n de los lenguajes funcionales junto con la resoluci n o o de los l gicos. o

3. Programaci n l gica inductiva o o


Desde comienzos de la d cada de los noventas, la prograe maci n l gica inductiva (PLI) ha sido un area de creciente o o investigaci n como un marco apropiado para la inferencia o inductiva de teoras de primer orden a partir de factores. La mayor parte de los sistemas de aprendizaje inductivo reciben como entrada un conjunto de ejemplos expresados en l gica proposicional en funci n de valores asignados a un o o conjunto de atributos. La l gica proposicional es muy limio tada a la hora de representar conceptos, sus propiedades y relaciones, as como para describir propiedades de conjun tos de conceptos. Para permitir aprender a partir de conceptos expresados en l gicas m s expresivas, como la de predio a cados, se ha dise ado un conjunto de algoritmos encuadran dos dentro del denominado paradigma de la programaci n o l gica inductiva. o La PLI fue introducida por Muggleton en 1991 [9] en el First International Workshop on Inductive Logic Programming y se formalizo inicialmente en [10], bas ndose en los a trabajos de Plotkin [11] y Shapiro [13]. Muggleton dene la PLI como la intersecci n del aprendizaje autom tico1 y o a la programaci n l gica (PL). De la primera se obtiene la o o formaci n de hip tesis sobre conceptos a partir de obsero o vaciones y la sntesis de nuevos conocimientos a partir de la experiencia; de la segunda se obtiene una representaci n o formal orientada por la sem ntica, y el uso de las t cnicas a e de computo que ha sido desarrolladas para el uso practico de la programaci n l gica. Por lo anterior la PLI se puede o o ver como un paradigma de aprendizaje maquinal2, cuyo objetivo general es el del desarrollo de herramientas, teoras y t cnicas para inducir hip tesis a partir de ejemplos y coe o nocimiento previo. Desde el punto de vista te rico la PLI o puede ser considerada como el paradigma dual de la programaci n l gica, ya que mientras la PLI describe el proo o ceso para inducir programas l gicos a partir de f rmulas o o
1 El aprendizaje autom tico estudia la forma de c mo construir proa o gramas que mejoren autom ticamente con el transcurrir del tiempo y la a experiencia adquirida. 2 El aprendizaje maquinal es la capacidad de una m quina de adquirir y a generar conocimiento en forma autom tica, usualmente utilizando t cnicas a e de Inteligencia Articial (AI), y la experiencia y el conocimiento adquirido en el pasado con objetivo principal de mejorar el aprendizaje en el futuro.

La programaci n l gico-funcional inductiva: un paradigma de la programaci n declarativa, Cubides, Gomez o o o l gicas instanciadas, la PL permite deducir f rmulas l gio o o cas a partir de programas l gicos, es decir la PLI puede ser o pensada como el proceso inverso de la deducci n, en el cual o las reglas de inferencia inducidas pueden ser obtenidas por inversion de reglas deducidas. La importancia de la PLI se justica a partir de que: da la posibilidad de usar conocimiento previo y la comprensibilidad de teoras; esto diere radicalmente de la forma en que otras t cnicas de aprendizaje maquinal e (como los sistemas de l gica fuzzy, las redes neuronao les y los algoritmos gen ticos) operan. e es un modelo m s tratable y natural de muchos proa blemas, adem s tiene toda la validaci n eciente de la a o resoluci n SLD [12]. o permite hacer consideraciones y razonamientos formales acerca de las hip tesis, los conocimientos previos y o la relaci n entre estos. o provee una notable ventaja en el campo del aprendizaje maquinal por el aumento de la aplicabilidad a sistemas de aprendizaje de teoras que poseen un mayor poder expresivo que el de las teoras proposicionales. ha sido utilizada con exito dentro de muchos campos: bioqumica, redes bayesianas, interfaz hombre-m qui a na, an lisis musical, ecologa, etc. a A pesar de las ventajas exhibidas anteriormente, la PLI posee algunas limitaciones inherentes al modelo de la computaci n l gica: la imposibilidad de denir funciones de forma o o natural sin necesidad de simularlas, la carencia de constructores de orden superior y los tipos. l gico-funcional B que sirve de soluci n a un problema reo o suelto previamente) si se dispone de el. El proceso de inducir programas est basado en la idea a de realizar una generalizaci n de ejemplos; esto se realio za incluyendo variables como argumentos de las funciones, en las ocurrencias en las cuales los subt rminos son conse tantes, en este paso se genera un conjunto de ecuaciones denominado ecuaciones hip tesis EH. Luego de obtener el o conjunto EH se hace uso de algunos operadores para obtener nuevos programas m s generales, llamados programas a hip tesis P H, los cuales est n compuestos exclusivamente o a por ecuaciones del conjunto EH; b sicamente existen dos a operadores, el narrowing inverso y la uni n, el primero tieo ne por objetivo seleccionar pares de ecuaciones del conjunto EH y luego obtener una nueva ecuaci n m s compleja o a que generalmente incluye llamadas recursivas a funciones. Al usar el otro operador se seleccionan dos de los mejores programas (de acuerdo a un criterio de selecci n) obtenio dos previamente y luego se construye un nuevo programa uniendo los conjuntos de ecuaciones que denen los programas iniciales, el nuevo programa tiene la propiedad de que este cubrir al menos los ejemplos a partir de los cua a les se construyeron los programas constituyentes. Con base en estos operadores se generan nuevos programas cada vez m s robustos, hasta que se encuentre uno que sea una aproa ximaci n satisfactoria a la soluci n del problema, o hasta o o que denitivamente no se satisfaga el criterio mnimo de selecci n jado previamente; es usual en estos casos hacer o uso del principio MDL4 como criterio de selecci n. o En concreto, el algoritmo para inducir programas l gicoo funcionales parte de las evidencias positivas E + y negativas E (v ase la denici n 1), de un conocimiento pree o vio opcional B (un programa l gico-funcional), y con este o conocimiento se pretende inducir un programa P tal que B P E + y B P E .5 Denici n 1. Las evidencias positivas E + y negativas E o son ejemplos suministrados por el usuario expresados como ecuaciones, donde el lado derecho de la ecuaci n esta o lo m s simplicado posible. Los ejemplos positivos E + son a igualdades que representan casos particulares validos (instancias) para la categora a generalizar, esta evidencia debe ser deducida por el programa soluci n obtenido; mientras o que los ejemplos negativos E representan desigualdades y por lo tanto instancias que no pertenecen a la categora que se desea generalizar, por lo que no deben ser deducidas por el programa soluci n. o

4. Programaci n l gico-funcional inductiva o o


Con base en estudios realizados a lo largo de las ulti mas d cadas, los resultados te ricos y experimentales [4] e o han demostrado que los lenguajes l gico-funcionales tienen o mayor poder expresivo3 en comparaci n a los lenguaje funo cionales y un mejor comportamiento operacional en comparaci n a los lenguajes l gicos. o o La programaci n l gico-funcional inductiva (PLFI) es o o denida como la extensi n funcional (o ecuacional) de la o PLI [1, 6]. El objetivo es inferir una teora (un programa l gico-funcional P), a partir de evidencia (un conjunto E de o ecuaciones positivas y opcionalmente negativas) y tambi n e de manera opcional un conocimiento previo (un programa
hace referencia a que es m s sencillo describir un computo, no a a que tiene mayor poder computacional, ya que los lenguajes l gicos, los o funcionales y los l gico-funcionales poseen el mismo poder computacioo nal, es decir, son completos en Turing [8].
3 Esto

ingl s Minimum Description Length. e smbolo indica que de la teora B P se pueden deducir los ejemplos del conjunto E + .
5 El

4 Del

La programaci n l gico-funcional inductiva: un paradigma de la programaci n declarativa, Cubides, Gomez o o o

5. Ejemplo del uso de la PLFI


A continuaci n se describir la forma de usar la PLFI o a para obtener un programa que permita resolver el problema de sumar dos n meros naturales, partiendo de ejemplos u concretos de sumas. Para el caso de la PLFI el proceso de expresar los n meros naturales se realiza mediante el recou nocimiento de la funci n primitiva constante 0 y el uso de o la funci n sucesor6 como modelo inductivo de los n meros o u naturales7 . En la tabla 1 se presentan algunos ejemplos tpicos escri tos de forma inja utilizados en la ense anza primaria para n adiestrar a los ni os en el aprendizaje de la operaci n de la n o suma.
Tabla 1. Ejemplos sumas de numeros naturales.
Ejemplos correctos 0+0 = 0 1+1 = 2 0+1 = 1 2+0 = 2 1+0 = 1 1+2 = 3 Ejemplos incorrectos 1+0=0 0+0=1 1+1=1 1+0=2 0+1=2 2+1=1

Con base en los ejemplos presentados en la tabla 1 se puede hacer la construcci n de una tabla equivalente (tabla o 2), en la cual cada ejemplo es expresado en t rminos del e predicado de igualdad, 0s y aplicaciones sucesivas de la funci n sucesor. o
Tabla 2. Ejemplos de evidencias E + y E .
Ejemplos positivos E + sum(0, 0) = 0 sum(s(0), s(0)) = s(s(0)) sum(0, s(0)) = s(0) sum(s(s(0)), 0) = s(s(0)) sum(s(0), 0) = s(0) sum(s(0), s(s(0))) = s(s(s(0))) Ejemplos negativos E sum(s(0), 0) = 0 sum(0, 0) = s(0) sum(s(0), s(0)) = s(0) sum(s(0), 0) = s(s(0)) sum(0, s(0)) = s(s(0)) sum(s(s(0)), s(0)) = s(0)

parte izquierda es una variable, ya que no sirven para denir la funci n suma, sino que se hace una simple reescritura de o las variables, a este paso se le llama generalizaci n restrico tiva. En la gura 1 se presenta un arbol, en el cual se ilustra la forma de como obtener todas la generalizaciones del primer ejemplo positivo de la tabla 2 (sum(0, 0) = 0), el proceso consiste en sustituir cada subt rmino por una variable nuee va y por todas las usadas previamente, as como se puede observar haciendo el recorrido del arbol en preorden. Luego de obtener las ecuaciones generalizadas y restringidas es necesario efectuar una vericaci n de la consiso tencia con los ejemplos, esto se hace vericando la consistencia negativa inicialmente, la cual se realiza mediante la escogencia de cada una de las ecuaciones generalizadas y vericando si de esta se puede deducir alg n ejemplo de la u evidencia negativa, lo anterior se hace observando si las variables se pueden reemplazar por valores constantes convenientes, de tal manera que de la regla se deduzca el ejemplo, para cada ecuaci n que permita deducir al menos un ejemo plo negativo, esta debe ser descartada. Tras ejecutar el ltro de la consistencia negativa, se procede a vericar la consistencia positiva, como en el caso anterior se busca si para la ecuaciones restantes se puede deducir ejemplos positivos de forma unica, para aquellas ecuaciones que cumplan con el caso anterior, entonces estas pasan todos los ltros y pueden ser tenidas en cuenta para generar nuevos programas de manera consistente. En la tabla 3 se exhibe cada uno de los pasos realizados durante la generalizaci n y la vericaci n de la consisteno o cia, las ecuaciones de la ultima columna son utilizadas para conformar los primeros programas hip tesis, junto con las o otras ecuaciones obtenidas luego de generalizar todos los ejemplos positivos y vericando que no haya duplicidad de ecuaciones, a partir de este conjunto resultante se aplican los operadores a las ecuaciones pertenecientes para obtener programas m s robustos. a

5.1. Generalizacin y vericacin de la o o consistencia


Para la obtenci n del programa P en primera instancia o se realiza un proceso de generalizaci n, en el cual para cao da subt rmino constante y de todas las formas posibles se e hace la sustituci n del subt rmino por una nueva variable, y o e luego se realiza un primer ltro eliminando aquellas nuevas ecuaciones que introducen variables extra en la parte derecha de la ecuaci n (variables que no son par metros de la o a funci n suma), y luego se eliminan aquellas en las cuales la o
se denotar como s(). a uso de estas funciones puede ser justicado en los resultados te rio cos acerca de las funciones recursivas entre la cuales las constantes, la sucesor y la suma pertenecen a este conjunto [8, 3].
7 El 6 Que

5.2. Aplicacin de operadores o


A partir de programas se pueden obtener programas m s a robustos, esto se puede hacer mediante el uso de operadores que act an sobre dos programas, generando uno nuevo. u Los operadores principalmente aplicados son el narrowing inverso y la union.

5.2.1. Narrowing inverso


El narrowing inverso [5] es un operador que act a sobre u dos ecuaciones, de tal manera que realiza una combinaci n o de las ecuaciones utilizando la transitividad de la igualdad y la unicaci n de t rminos. Un ejemplo de la forma en o e que act a este operador sobre dos ecuaciones especicas se u exhibe a continuaci n: o 4

La programaci n l gico-funcional inductiva: un paradigma de la programaci n declarativa, Cubides, Gomez o o o


[] x=0 [x] x=y [x] [x] [] x=0 sum(x, 0) = 0 [x] x=x sum(x, y) = 0 [x, y] [x, y] [x, y] sum(x, y) = z [x, y] sum(x, x) = 0 [x] sum(x, x) = x sum(x, y) = y sum(x, x) = y sum(x, x) = 0 sum(0, x) = x sum(x, 0) = x sum(0, x) = 0 [x] [x] [x] sum(0, x) = 0 sum(0, 0) = 0 sum(x, y) = 0 [x] sum(x, 0) = 0 [x] [x] sum(x, 0) = y [x] sum(x, 0) = 0 [x] sum(0, 0) = 0 [] sum(0, 0) = 0 [] [] sum(0, 0) = x []

sum(0, 0) = 0

[] sum(0, 0) = 0 []

sum(x, y) = x

[x]

[x]

sum(0, x) = y

Figura 1. Arbol de generalizaciones del termino sum(0, 0) = 0.

Tabla 3. Conjunto de ecuaciones obtenidas tras aplicar los primeros ltros.


1 Ecuaciones generalizadas X=Y X=X X=0 sum(X, Y ) = Z sum(X, Y ) = Y sum(X, Y ) = X sum(X, Y ) = 0 sum(X, X) = Y sum(X, X) = X sum(X, X) = 0 sum(X, 0) = Y sum(X, 0) = X sum(X, 0) = 0 sum(0, X) = Y sum(0, X) = X sum(0, X) = 0 sum(0, 0) = X sum(0, 0) = 0 2 Ecuaciones restrictivas sum(X, Y ) = Y sum(X, Y ) = X sum(X, Y ) = 0 sum(X, X) = X sum(X, X) = 0 sum(X, 0) = X sum(X, 0) = 0 sum(0, X) = X sum(0, X) = 0 sum(0, 0) = 0 3 Ecuaciones que son consistentes negativamente sum(X, X) = 0 sum(X, 0) = X sum(0, X) = X sum(0, X) = 0 sum(0, 0) = 0

se obtiene sum(s(X), 0) = s(X), en el segundo caso dado que X es un t rmino libre entonces para s(X) se puede e sustituir el t rmino X por su equivalente sum(X, 0) y de e all que s(X) = s(sum(X, 0)); de estas nuevas igualdades y aplicando la propiedad de la transitividad se obtiene que sum(X, s(0)) = s(X) , , sum(s(X), 0) = s(X) (3) sum(X, s(0)) = sum(s(X), 0) sum(X, s(0)) = s(X) , , s(sum(X, 0)) = s(X) sum(X, s(0)) = s(sum(X, 0)) (4)

5.2.2. Union
El operador de uni n es utilizado simplemente para obo tener un nuevo programa como resultado de hacer la union conjuntista entre dos programas, el uso de este operador permite que se pueda obtener un programa nal como resultado de la conjunci n de un programa que trata los casos geneo rales y otro que trata los casos particulares (casos base). Un ejemplo del uso de este operador se puede observar en que si se hace la uni n del programa sum(X, 0) = X y el proo grama sum(X, s(Y )) = s(sum(X, Y )), como resultado se obtendr el programa {sum(X, 0) = X, sum(X, s(Y )) = a s(sum(X, Y ))} que es soluci n para el problema de la suo ma de n meros naturales. u

4 Ecuaciones que son consistentes positivamente sum(X, 0) = X sum(0, X) = X sum(0, 0) = 0

Dadas las ecuaciones generalizadas que son consistentes: sum(X, 0) = X (1) sum(X, s(0)) = s(X) (2)

5.3. Aprendizaje con conocimiento previo


Tal vez la mayor fortaleza de esta t cnica de aprendizaje e maquinal es la posibilidad del uso del conocimiento previo, visto como el uso de programas previamente obtenidos; en esto se diferencia radicalmente la PLFI de otros sistemas 5

si se toman la partes derechas de (1) y (2) se pueden obtener las dos siguientes ecuaciones s(X) = sum(s(X), 0) y s(X) = s(sum(X, 0)), esto debido a que: en primera instancia como sum(X, 0) = X para todo t rmino, en pare ticular para s(X) por lo tanto si se reemplaza X por s(X)

La programaci n l gico-funcional inductiva: un paradigma de la programaci n declarativa, Cubides, Gomez o o o de aprendizaje, como los sistemas de l gica difusa y las reo des neuronales. La posibilidad de utilizar este conocimiento previo se debe a la fuerte relaci n que tienen los proo gramas con la estructura recursiva de los lenguajes l gicoo funcionales y a que por las propiedades de equivalencia de la igualdad, la combinaci n de programas resulta ser relatio vamente sencilla. Para ilustrar el uso del conocimiento previo se mostrar como a partir de un programa para sumar a numeros se puede obtener un programa que multiplique numeros naturales, por ejemplo dadas las reglas sum(0, X) = X y prod(X, 0) = 0 mediante narrowing inverso se puede obtener la ecuaci n prod(X, 0) = sum(0, 0), en esta ecuao ci n se puede ver como se combinan las funciones prod() o y sum(). As, como en el caso anterior y realizando de forma iterativa generalizaciones y aplicaciones de los operadores se puede obtener el programa {prod(s(X), Y ) = sum(prod(X, Y ), Y ), prod(0, X) = 0} que es soluci n o para el problema del producto de numeros naturales.

7. Trabajos futuros
Como trabajo de tesis de Maestra en Matem tica Apli a cada del primer autor, se est haciendo un estudio de a la l gica ecuacional y la inducci n de programas l gicoo o o funcionales, con base en esto se implementar un algoritmo a en Java para inducir programas y se har una vericaci n a o formal de la correctitud de los programas obtenidos a trav s e de la sem ntica denotational [2] que es de tipo eminentea mente declarativo.

8. Conclusiones
Se pudo observar como el paradigma de la programaci n l gico-funcional inductiva permite generar programas o o a partir de ejemplos, como un claro estilo de programaci n o declarativa, el cual tiene una gran potencial para la producci n de software, principalmente en la generaci n de proo o gramas que eval en operaciones y relaciones aritm ticas u e elementales.

6. Comparaci n entre programas o


Para seleccionar los mejores programas8 para ser usados por lo operadores, se utilizan ciertos criterios que permiten comparar programas, para esto se hace referencia del principio de Longitud de Descripci n Minima (MDL) [5] que o soporta el criterio de selecci n no supervisada de aprendio zaje de la PLI. Para cada programa se calcula la cobertura, la longitud y la coincidencia. La cobertura (Cov) se dene como el conjunto de ejemplos positivos que un programa deduce y CovF + (P ) se dene como: CovF + (P ) = |Cov(P )| La longitud (Len) de un programa se dene como: LenF (P ) =
eP

Referencias
[1] C. Ferri, O. J. Hern ndez, and M. Ramrez. Aprendizaje a autom tico de programas l gico-funcionales. Inteligencia a o Articial, Revista Iberoamericana de Inteligencia Articial, (11):2738, 2000. [2] J. Gomez. Sem ntica denotacional mediante operadores a clausura. Tesis de maestra en Matem ticas, Universidad a Nacional de Colombia, Facultad de Ciencias, Bogot , 1998. a [3] T. R. Gregory. Models of Computation and Formal Languages. Oxford University Press, New York, 1998. [4] M. Hanus. The Integration of Functions into Logic Programming: From Theory to Practice. Journal of Logic Programming, 19 & 20:583628, 1994. [5] O. J. Hern ndez and M. Ramrez. Inverse Narrowing for a the Induction of Functional Logic Programs. In Joint Conference, on Declarative Programming, APPIA-GULPPRODE98, pages 379393, 1998. [6] O. J. Hern ndez and M. Ramrez. The Theory Behind Ina ductive Functional Logic Programming (IFPL). Technical report, Universidad Polit cnica de Valencia, 2000. e [7] R. Kowalski. Algorithm = Logic + Control. CACM, 22(7):424436, 1979. [8] J. Martin. Lenguajes formales y teora de la computaci n. o McGraw-Hill, Mexico, 3ra edition, 2004. [9] S. Muggleton, editor. Proceedings of the First International Workshop on Inductive Logic Programming, Viano de Castelo, Portugal, 1991. [10] S. Muggleton. Inductive Logic Programming. Academic Press Limited, London, 1992. [11] G. D. Plotkin. Authomatic Methods of Inductive Inference. Ph. D., Science of Computer, Edimburgh University, 1971. [12] S. Russell and P. Norvig. Inteligencia articial: un enfoque moderno. Pearson Education, Madrid, 2da edition, 2004. [13] E. Y. Shapiro. Algorithmic Program Debugging. MIT Press, 1983.

log2 tam(e)

donde tam(e) = 1 + nv + nc + nf , siendo nv , nc y nf 2 el n mero de variables, de constantes y de funciones de la u parte derecha de las reglas. El factor de coincidencia (ConF ) es denido como: ConF (P ) = 1, 1 mx a si P tiene solo una ecuaci n; o
|eE + : Pi P Pi e| |E + |

, en otro caso.

De esta forma, se dene la optimalidad (Opt) como: Opt(P ) = LenF (P )+CovF + (P )+ConF (P ) Los par metros , y , se utilizan como heursticas a con el n de reducir considerablemente el tama o de las n b squedas que son efectuadas para realizar la inducci n. u o
8 El concepto de mejor programa, hace referencia al programa que cubra m s ejemplos positivos con mayor optimalidad. a

You might also like