Progol es una implementación de programación lógica inductiva que combina la implicación inversa [ definición necesaria ] con la búsqueda de general a específica a través de un gráfico de refinamiento. [ definición necesaria ] [1] [2] [3] Fue desarrollado por Stephen Muggleton .
La implicación inversa se usa con declaraciones de modo para derivar la cláusula más específica dentro del lenguaje de modo [ definición necesaria ] que implica un ejemplo dado. Esta cláusula se utiliza para guiar una búsqueda de gráficos de refinamiento.
A diferencia de las búsquedas de Ehud Shapiro 'modelo de sistema de inferencia s [4] (MIS) y J. Ross Quinlan ' s FOIL , la búsqueda de Progol es eficiente y tiene una garantía demostrable de devolver una solución que tiene la máxima compresión [ definición necesaria ] en la búsqueda -espacio. Para ello, realiza una búsqueda admisible similar a A * , guiada por compresión, sobre cláusulas que incluyen la cláusula más específica.
Progol trata con datos ruidosos mediante el uso de una medida de compresión para compensar la descripción de los errores con la longitud de la descripción de la hipótesis. Progol permite programas Prolog arbitrarios como conocimiento previo y cláusulas definidas arbitrarias como ejemplos. A pesar de esto, la evaluación comparativa muestra que la eficiencia de Progol se compara favorablemente con FOIL. [ cita requerida ]
Referencias
- ^ Muggleton, S. (1995). "Vinculación inversa y progol". Computación de nueva generación . 13 (3–4): 245–286. CiteSeerX 10.1.1.31.1630 . doi : 10.1007 / BF03037227 .
- ^ Página de Progol en Imperial College
- ^ Muggleton, S. (1997). "Aprendiendo de los datos positivos". Programación lógica inductiva . Apuntes de conferencias en Ciencias de la Computación. 1314 . págs. 358–376. doi : 10.1007 / 3-540-63494-0_65 . ISBN 978-3-540-63494-2.
- ^ https://dl.acm.org/doi/10.5555/1623264.1623364 El sistema de inferencia modelo, 1981