Git Product home page Git Product logo

inversion-sld-resolucion's Introduction

Proyecto final de la asignatura de Inteligencia Artificial de 3º de Grado en Ingenieria Informatica - Ingenieria de Software de la universidad de Sevilla. #Inversi�on de SLD resoluci�on con Python El siguiente texto esta copiado del pdf de definición del proyecto: ##1. Introducci�on
Desde el punto de vista clásico, el Aprendizaje Automatico es el área de la Inteligencia Artificial cuyo objetivo es la síntesis de nuevos conocimientos a partir de la experiencia. Durante las décadas de los setenta y ochenta el estudio de este problema dio lugar a distintos sistemas computacionales como el caso del ID3. No obstante, a pesar del éxito obtenido sobre problemas reales, estos sistemas presentaban dos problemas importantes:

  • De un lado, una representación formal limitada, equivalente al de la l�ogica proposicional.
  • De otro lado, dificultad en el manejo del conocimiento base. A finales de los añnos ochenta, Stephen Muggleton y Wray Buntine tuvieron la idea de aplicar la l�ogica clausal con variables y las t�ecnicas de la Programaci�on L�ogica al problema del Aprendizaje, naciendo de este modo la Programaci�on L�ogica Inductiva La Programación Lógica Inductiva (PLI) puede definirse con el área de la Inteligencia Artificial donde conuyen el Aprendizaje Autom�atico y la Programación Lógica y su principal objetivo es el desarrollo de teorías y algoritmos para el aprendizaje inductivo de programas lógicos. La PLI toma toma del aprendizaje automático sus objetivos, esto es, la síntesis de nuevos conocimientos a partir de la experiencia. La Programación Lógica aporta su representación del conocimiento con fórmulas de la lógica clausal, su orientación semántica y sus técnicas. De manera informal, podemos plantear el problema que intenta resolver la PLI del siguiente modo: Dado un conocimiento base T y un conjunto de entrenamiento E, encontrar una hipótesis H que junto con T explique E. ##2. Objetivo
    A lo largo de los años se han desarrollado muy diversas técnicas y algoritmos de aprendizaje en el marco de la PLI. En el presente trabajo se pide que el alumno profundice en el estudio y comprensión de algunos de los operadores que llevan a cabo la inversión de la resolución SLD.
    /images/1.png
    ####2.1. V-operadores La Figura 1 muestra esquemáticamente un paso de resolución. La resolución deriva la cl�ausula C en el vértice de la V a partir de las cláusulas C1 y C2 de los brazos 2. Podemos representar la resolución como la siguiente regla de inferencia


    /images/2.png

    Como caso particular, podríamos considerar
    Ejemplo 1:

    /images/3.png

    Usando resolución, obtenemos C a partir de C1 y C2. Un nuevo ejemplo, usando símbolos de función, pero donde no consideramos S y T es el siguiente
    Ejemplo 2:

    /images/4.png

    Los V -operadores son operadores que invierten el proceso de resolución, de manera que derivan la cláusula de uno de los brazos a partir de la cláusula del otro brazo y la del vértice. Se denomina operador absorci�on al operador que permite construir C2 a partir de C y C1


    /images/5.png

    /images/6.png

    Se llama operador identificación al operador que nos permite construir C1 dados C y C2


    /images/7.png

    ###2.2. W-operadores Además de los V-operadores, existen otras reglas para la inversión de la resolución: la intra-construcción y la inter-construcción. Ambas reglas se conocen con el nombre conjunto de W-operadores (Figura 2).


    /images/8.png

    Nótese que mediante la aplicación de los W-operadores debemos considerar un nuevo literal que no aparece en la entrada del operador.
    Ejemplo 3 (para Intra-construcci�on):

    /images/9.png

    Ejemplo 4 (para Inter-construcci�on):

    /images/10.png

    En los W operadores, partimos de dos cláusulas B1 y B2 y a partir de ellas buscamos las cl�asulas C1, C2 y C de manera que B1 se obtenga a partir de C1 y C mediante resolucion y B2 se obtenga por resolución a partir de C y C2.

###2.3. Objetivo espec�� co del trabajo
Implementación de los cuatro operadores (Absorción, Identificación, Inter- construcción e Intra-construcción) en lógica clausal con símbolos de función. El programa debe especificar las clásusulas obtenidas para cada operador y las unificaciones necesarias. La implementación deberealizarse en el lenguaje de programación Python 3.2 o Python 3.3. El sistema de representación se deja a la elección del alumno, pero debe ser suficientemente general para poder representar cualquier cláusula definida. En la web se pueden encontrar diversas variantes del algoritmo. El trabajo debe incluir detalladamente qué variante del algoritmo se ha implementado.

inversion-sld-resolucion's People

Contributors

sgavmp avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.