Monografias.com > Enfermedades > Salud
Descargar Imprimir Comentar Ver trabajos relacionados

Aplicación de Prolog en la enfermedad del dengue



Partes: 1, 2

    1. Resumen
    2. El
      dengue
    3. Desarrollo
    4. Programa
    5. Bibliografía
      revisada

    Resumen:

    Prolog es un lenguaje que
    puede ser una gran ayuda para diagnosticar y guardar datos sobre el
    dengue.
    Presentamos un programa que
    puede ayudar a este noble objetivo.

    INTRODUCCIÓN

    Prolog

    Prolog, proveniente del francés Programation
    et Logique
    , es un lenguaje de
    programación lógico e interpretado, bastante
    popular en el medio de investigación en Inteligencia
    Artificial.

    Se trata de un lenguaje de programación ideado a principios de los
    años 70 en la universidad de
    Aix-Marseille por los profesores Alain Colmerauer y Phillipe
    Roussel. Inicialmente se trataba de un lenguaje totalmente
    interpretado hasta que, a mediados de los 70, David H.D. Warren
    desarrolló un compilador capaz de traducir Prolog en un
    conjunto de instrucciones de una máquina abstracta
    denominada Warren Abstract Machine, o abreviadamente, WAM.
    Desde entonces Prolog es un lenguaje
    semi-interpretado.

    Prolog se enmarca en el paradigma de
    los lenguajes lógicos, lo que lo diferencia enormemente de
    otros lenguajes más populares tales como Fortran, Pascal, C,
    etc.

    En todos los mencionados, las instrucciones se ejecutan
    normalmente en orden secuencial, es decir, una a
    continuación de otra, en el mismo orden en que
    están escritas, que sólo varía cuando se
    alcanza una instrucción de control (un
    bucle, una instrucción condicional o una
    transferencia).

    Los programas en
    Prolog se componen de cláusulas de Horn que
    constituyen reglas del tipo "modus ponendo ponens", es decir, "Si
    es verdad el antecendente, entonces es verdad el
    consecuente". No obstante, la forma de escribir las
    cláusulas de Horn es al contrario de lo habitual. Primero
    se escribe el consecuente y luego el antecedente.

    El antecedente puede ser una conjunción de
    condiciones que se denomina secuencia de objetivos. Cada
    objetivo se separa con una coma y puede considerarse
    similar a una instrucción o llamada a procedimiento de
    los lenguajes imperativos. En Prolog no existen instrucciones de
    control. Su ejecución se basa en dos conceptos: la
    unificación y el backtracking. Gracias a la
    unificación, cada objetivo determina un subconjunto
    de cláusulas susceptibles de ser ejecutadas. Cada una de
    ellas se denomina punto de elección. Prolog
    selecciona el primer punto de elección y sigue ejecutando
    el programa hasta determinar si el objetivo es verdadero o falso.
    En caso de ser falso entra en juego el
    'backtracking', que consiste en deshacer todo lo ejecutado
    situando el programa en el mismo estado en el
    que estaba justo antes de llegar al punto de elección.
    Entonces se toma el siguiente punto de elección que estaba
    pendiente y se repite de nuevo el proceso. Todos
    los objetivos
    terminan su ejecución bien en "verdadero", bien en
    "falso".

    Ejemplo de Código
    Prolog

    %%

    %% declaraciones

    %%

    padrede('juan', 'maria'). % juan es padre de
    maria

    padrede('pablo', 'juan'). % pablo es padre de
    juan

    padrede('pablo', 'marcela').

    padrede('carlos', 'debora').

    % A es hijo de B si B es padre de A

    hijode(A,B) :- padrede(B,A).

    % A es abuelo de B si A es padre de C y C es padre
    B

    abuelode(A,B) :-

    padrede(A,C),

    padrede(C, B).

    % A y B son hermanos si el padre de A es
    también el padre de B y si A y B no son lo
    mismo

    hermanode(A,B) :-

    padrede(C,A) ,

    padrede(C,B),

    A == B.

    % A y B son familiares si A es padre de B o A es hijo
    de B o A es hermano de B

    familiarde(A,B) :-

    padrede(A,B).

    familiarde(A,B) :-

    hijode(A,B).

    familiarde(A,B) :-

    hermanode(A,B).

    %%

    %% consultas

    %%

    % juan es hermano de marcela?

    ?- hermanode('juan', 'marcela').

    yes

    % carlos es hermano de juan?

    ?- hermanode('carlos', 'juan').

    no

    % pablo es abuelo de maria?

    ?- abuelode('pablo', 'maria').

    yes

    % maria es abuelo de pablo?

    ?- abuelode('maria', 'pablo').

    no

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter