SlideShare una empresa de Scribd logo
1 de 9
TUTORIALES DE
      PROLOG
        MIGUEL MENDEZ
PROLOG

Como shell para la programación de Sistemas Expertos Basados en Reglas, PROLOG usa Lógica de Predicados de Primer
Orden (restringida a cláusulas de Horn) para representar datos y conocimiento, utiliza encadenamiento hacia atrás y una
estrategia de control retroactiva sin información heurística (backtracking).

Elementos del lenguaje
- Hechos (átomos).
- Reglas (cláusulas de Horn).
- Preguntas u objetivos (conjunciones ó disyunciones de átomos).
SÍMBOLOS DEL LENGUAJE

 • Caracteres
 • - Alfanuméricos: A..Z a..z 0..9
 • - Especiales: + - * / <> = :- &
HECHOS

• Átomos en Lógica de Predicados.
• No se permiten disyunciones.
• Los nombres de los predicados empiezan con minúscula.
• El hecho debe terminar con un punto.
• Lógica de Predicados PROLOG esHombre(Juan) eshombre(juan). gusta(Pedro,Calabaza)
  gusta(pedro,calabaza). esHombre(Pedro) ∧ esHombre(Juan) esHombre(pedro). esHombre(juan).
  esHombre(Pedro) ∨ esPerro(boby) /* No puede representarse */∃x quiere(Juan,x) ∧ ∃z quiere(Juan,z)
  quiere(juan,alguien1). quiere(juan,alguien2).
Especifique los siguientes hechos en PROLOG:
- “Todos quieren a Juan y a María”.
∀x (quiere(x,juan) ∧ quiere(x,maria))
quiere(_ , juan).
quiere(_ , maria).
- “Alguien quiere a Juan y a María”.
∃x (quiere(x,juan) ∧ quiere(x,maria))
quiere(alguien , juan).
quiere(alguien , maria).

Supongamos únicamente el siguiente hecho: gusta(juan,_).
¿Cómo se especificarían en PROLOG las siguientes consultas?
- ¿Le gusta algo a Juan?
?- gusta(juan,_).
yes
- ¿Le gustan a Juan las almendras?
?- gusta(juan,almendras).
yes
- ¿Qué es lo que le gusta a Juan?
?- gusta(juan,X).
X=_3456; /* Lo interpretamos como “todo” */
no
Suponiendo los siguientes hechos:
esPadre(juan,pedro).
esPadre('Dios',_).
?- esPadre(X,pedro).
X=juan;
X='Dios';
no
?- esPadre(_,pedro).
yes
?- esPadre(X,_).
X=juan;
X='Dios';
no
?- esPadre(_,_).
yes
?- esPadre(_,X).
X=pedro;
X=_2567;
no
?- esPadre(X,Y).
X=juan , Y=pedro;
X='Dios' , Y=_2567;
no
?- esPadre(personaInexistente,X). no
PRIMER PROGRAMA EN PROLOG

                            PARA PODER PROGRAMAR
                            PARA PROLOG, BASTA NO MAS
                            CON UTILIZAR UN EDITOR DE
                            TEXTOS CUALQUIERA Y
                            GUARDAR EL ARCHIVO CON LA
                            EXTENCION .pl
COMPILANDO EL PROGRAMA
                         Una vez escrito el programa en un
                         editor de texto, debemos compilar
                         el código, para ello abrimos la
                         interface de Prolog y allí
                         indicamos la ruta de nuestro
                         archivo con extensión .pl y damos
                         click en Run.
VISTA DEL PROGRAMA COMPILADO Y
EJECUTADO

Más contenido relacionado

Destacado (8)

Programación en Prolog para Inteligencia Artificial
Programación en Prolog para Inteligencia ArtificialProgramación en Prolog para Inteligencia Artificial
Programación en Prolog para Inteligencia Artificial
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
El lenguaje de programaciã³n prolog jaume i castellã³n
El lenguaje de programaciã³n prolog   jaume i castellã³nEl lenguaje de programaciã³n prolog   jaume i castellã³n
El lenguaje de programaciã³n prolog jaume i castellã³n
 
Prolog 2011 2
Prolog 2011 2Prolog 2011 2
Prolog 2011 2
 
Practicas prolog2011 listas
Practicas prolog2011 listasPracticas prolog2011 listas
Practicas prolog2011 listas
 
Programación Lógica con PROLOG
Programación Lógica con PROLOGProgramación Lógica con PROLOG
Programación Lógica con PROLOG
 
Ejercicios en prolog
Ejercicios en prologEjercicios en prolog
Ejercicios en prolog
 
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISPSotfware de Programacion Lógica - CLIPS, PROLOG, LISP
Sotfware de Programacion Lógica - CLIPS, PROLOG, LISP
 

Similar a Tutoriales de prolog (20)

Prolog2010
Prolog2010Prolog2010
Prolog2010
 
Jflambert lyada -ayudantia 1 prolog
Jflambert   lyada -ayudantia 1 prologJflambert   lyada -ayudantia 1 prolog
Jflambert lyada -ayudantia 1 prolog
 
Clase de logica posbc
Clase de logica posbcClase de logica posbc
Clase de logica posbc
 
Prolog
PrologProlog
Prolog
 
P r-o-l-o-g-practica01-1204602281352947-2
P r-o-l-o-g-practica01-1204602281352947-2P r-o-l-o-g-practica01-1204602281352947-2
P r-o-l-o-g-practica01-1204602281352947-2
 
Semana 6 Módulos en Python Entrega 2
Semana 6   Módulos en Python Entrega 2Semana 6   Módulos en Python Entrega 2
Semana 6 Módulos en Python Entrega 2
 
Tema1
Tema1Tema1
Tema1
 
Introduccion a prolog
Introduccion a prologIntroduccion a prolog
Introduccion a prolog
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertos
 
Prolog
Prolog Prolog
Prolog
 
Apuntes De PROGRAMACI N EN PROLOG
Apuntes De PROGRAMACI N EN PROLOGApuntes De PROGRAMACI N EN PROLOG
Apuntes De PROGRAMACI N EN PROLOG
 
Manual lab prolog
Manual lab prologManual lab prolog
Manual lab prolog
 
4ta tarea de sistemas expertos
4ta tarea de sistemas expertos4ta tarea de sistemas expertos
4ta tarea de sistemas expertos
 
Estructura
Estructura Estructura
Estructura
 
Manual de Prolog
Manual de PrologManual de Prolog
Manual de Prolog
 
Introduccion a la programacion
Introduccion a la programacionIntroduccion a la programacion
Introduccion a la programacion
 
Prolog
PrologProlog
Prolog
 
Clase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptxClase 2 - Introducción a la programación con Python I.pptx
Clase 2 - Introducción a la programación con Python I.pptx
 
Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)Grupo 6 turbopascal apesteguia (1)
Grupo 6 turbopascal apesteguia (1)
 
Introduccion a prolog
Introduccion a prologIntroduccion a prolog
Introduccion a prolog
 

Último

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfvladimiroflores1
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilJuanGallardo438714
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfAnnimoUno1
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxlosdiosesmanzaneros
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 

Último (15)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 

Tutoriales de prolog

  • 1. TUTORIALES DE PROLOG MIGUEL MENDEZ
  • 2. PROLOG Como shell para la programación de Sistemas Expertos Basados en Reglas, PROLOG usa Lógica de Predicados de Primer Orden (restringida a cláusulas de Horn) para representar datos y conocimiento, utiliza encadenamiento hacia atrás y una estrategia de control retroactiva sin información heurística (backtracking). Elementos del lenguaje - Hechos (átomos). - Reglas (cláusulas de Horn). - Preguntas u objetivos (conjunciones ó disyunciones de átomos).
  • 3. SÍMBOLOS DEL LENGUAJE • Caracteres • - Alfanuméricos: A..Z a..z 0..9 • - Especiales: + - * / <> = :- &
  • 4. HECHOS • Átomos en Lógica de Predicados. • No se permiten disyunciones. • Los nombres de los predicados empiezan con minúscula. • El hecho debe terminar con un punto. • Lógica de Predicados PROLOG esHombre(Juan) eshombre(juan). gusta(Pedro,Calabaza) gusta(pedro,calabaza). esHombre(Pedro) ∧ esHombre(Juan) esHombre(pedro). esHombre(juan). esHombre(Pedro) ∨ esPerro(boby) /* No puede representarse */∃x quiere(Juan,x) ∧ ∃z quiere(Juan,z) quiere(juan,alguien1). quiere(juan,alguien2).
  • 5. Especifique los siguientes hechos en PROLOG: - “Todos quieren a Juan y a María”. ∀x (quiere(x,juan) ∧ quiere(x,maria)) quiere(_ , juan). quiere(_ , maria). - “Alguien quiere a Juan y a María”. ∃x (quiere(x,juan) ∧ quiere(x,maria)) quiere(alguien , juan). quiere(alguien , maria). Supongamos únicamente el siguiente hecho: gusta(juan,_). ¿Cómo se especificarían en PROLOG las siguientes consultas? - ¿Le gusta algo a Juan? ?- gusta(juan,_). yes - ¿Le gustan a Juan las almendras? ?- gusta(juan,almendras). yes - ¿Qué es lo que le gusta a Juan? ?- gusta(juan,X). X=_3456; /* Lo interpretamos como “todo” */ no
  • 6. Suponiendo los siguientes hechos: esPadre(juan,pedro). esPadre('Dios',_). ?- esPadre(X,pedro). X=juan; X='Dios'; no ?- esPadre(_,pedro). yes ?- esPadre(X,_). X=juan; X='Dios'; no ?- esPadre(_,_). yes ?- esPadre(_,X). X=pedro; X=_2567; no ?- esPadre(X,Y). X=juan , Y=pedro; X='Dios' , Y=_2567; no ?- esPadre(personaInexistente,X). no
  • 7. PRIMER PROGRAMA EN PROLOG PARA PODER PROGRAMAR PARA PROLOG, BASTA NO MAS CON UTILIZAR UN EDITOR DE TEXTOS CUALQUIERA Y GUARDAR EL ARCHIVO CON LA EXTENCION .pl
  • 8. COMPILANDO EL PROGRAMA Una vez escrito el programa en un editor de texto, debemos compilar el código, para ello abrimos la interface de Prolog y allí indicamos la ruta de nuestro archivo con extensión .pl y damos click en Run.
  • 9. VISTA DEL PROGRAMA COMPILADO Y EJECUTADO