0% encontró este documento útil (0 votos)
20 vistas12 páginas

Programación Lógica - Prolog: Trabajo de Investigación N2

Cargado por

matias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
20 vistas12 páginas

Programación Lógica - Prolog: Trabajo de Investigación N2

Cargado por

matias
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 12

Programación Lógica y Funcional

TRABAJO DE INVESTIGACIÓN N2

Programación lógica - Prolog

Estudiante: Matias Octavio Bonett Rodrigo U21210982

DOCENTE: JHONATHAN DERLIN JORDAN PEREDA

SECCIÓN: 21116

Lima

2024
Índice de contenido

1. Historia de Prolog

2. Introducción Prolog

3. Como Instalar Prolog

4. Entorno de desarrollo Prolog

5. Estructura de un programa Prolog

6. Construcción de un programa en Prolog

7. Consultas y reglas

8. Ejemplos
1. Historia de Prolog

A principios de la década de 1970, Prolog fue creado por el informático


Alain Colmerauer y su equipo en la Universidad de Marsella, en Francia,
con el apoyo teórico de Robert Kowalski, un lógico de la Universidad de
Edimburgo. Colmerauer, quien trabajaba en procesamiento de lenguaje
natural, quería un lenguaje que facilitara la representación de
reglas y relaciones para extraer inferencias lógicas a partir de
datos. Junto a Kowalski, quien investigaba cómo aplicar la lógica formal
a la computación, desarrollaron Prolog como un lenguaje declarativo que
permitiera expresar conocimientos mediante hechos y reglas
lógicas. El objetivo era facilitar el trabajo en inteligencia artificial, ya
que Prolog permitía especificar qué resolver en lugar de como hacerlo,
delegando el proceso de deducción al motor lógico del lenguaje.

Por lo tanto, con el paso de los años Prolog ganó rápidamente


reconocimiento como uno de los primeros lenguajes de programación
diseñados específicamente para la inteligencia artificial y la resolución
de problemas basados en lógica. Se consolidó como un referente en el
procesamiento de lenguaje natural y los sistemas expertos debido a su
enfoque en la lógica formal y la inferencia automática, que permitían
manejar grandes cantidades de datos y realizar deducciones complejas,
revolucionando la forma en que se abordan problemas en la IA y la
computación.

2. Introducción a Prolog

Prolog es un lenguaje declarativo, lo que significa que describe la lógica


computacional mediante hechos y relaciones lógicas, sin especificar una
serie de pasos para el control de flujo. Un programa en Prolog está
compuesto por cláusulas, que pueden ser hechos o reglas. Estas
cláusulas forman la base de conocimiento del programa, permitiendo
realizar consultas para inferir datos. Prolog se utiliza principalmente en
áreas como la inteligencia artificial, procesamiento de lenguaje natural y
sistemas expertos, donde la capacidad de manejar relaciones lógicas y
realizar inferencias es esencial.

3. Como Instalar Prolog

Descargar el Instalador:

 Visita el sitio web oficial de SWI-Prolog:


Elegir la versión:

Instalación en Windows:

 Descarga el archivo ejecutable .exe y ábrelo.

 Abre el archivo descargado y sigue las instrucciones del asistente de

instalación.
4. Entorno de desarrollo Prolog

Visual Studio Code (VS Code): Servirá como el editor principal de


código, donde podrás escribir y organizar tanto los scripts de Prolog
como de Python. VS Code permite resaltar la sintaxis, autocompletar y
acceder a extensiones útiles para trabajar cómodamente con ambos
lenguajes.

SWI-Prolog: Es el intérprete de Prolog que usará para ejecutar, probar y


depurar tus programas en Prolog. SWI-Prolog también cuenta con una
consola interactiva, lo que facilita realizar consultas y ver resultados en
tiempo real, y un depurador integrado que te ayudará a rastrear la lógica
de tus programas.

Python: Te permitirá extender las capacidades de tus programas en


Prolog. Puedes utilizar Python para crear interfaces gráficas, gestionar
bases de datos, o realizar cálculos complejos, mientras Prolog maneja la
lógica y la inferencia. También puedes integrar ambos lenguajes en un
mismo proyecto, donde Python actúe como interfaz y Prolog como motor
lógico.

5. Estructura de un programa Prolog

Hechos – (Declaran datos básicos)

Los hechos representan información que se considera verdadera en el


programa. Se declaran con un nombre de predicado seguido de los
términos correspondientes entre paréntesis y un punto al final. Los
hechos pueden incluir objetos, relaciones o propiedades.

Reglas – (Definen relaciones lógicas basadas en hechos)

Las reglas permiten definir relaciones lógicas más complejas a partir de


hechos o de otras reglas. Se utilizan para expresar que algo es
verdadero si se cumplen ciertas condiciones.

Consultas – (Verifican condiciones o buscan respuestas en la


base de datos de hechos y reglas)

Las consultas se usan para hacer preguntas al programa sobre los


hechos y las reglas. Una consulta se formula escribiendo el predicado
deseado y sus argumentos, y finalizando con un punto (.). Prolog
intentará encontrar todas las soluciones posibles.

6. Construcción de un programa en Prolog

Definir hechos: Establecer relaciones y hechos básicos que


representen datos fijos sobre el dominio del problema.

Definir reglas: Crear reglas que permitan deducir información adicional


o más compleja a partir de los hechos definidos.

Realizar pruebas (consultas): Probar las reglas y hechos definidos


mediante consultas para verificar que el sistema responde
correctamente a las preguntas formuladas.

7. Consultas y reglas Ejemplo

Ejemplo de Consulta y Reglas:

Consultas:

sí "Pedro" es hermano de "Maria":

quién es el padre de "Ana":

sí "Luis" es un hombre:
8. Ejemplos

Sistema de Reglas de Inferencia

% Hechos
llueve.
suelo_mojado :- llueve.

% Regla
barro :- suelo_mojado.

% Consultas
?- barro.
% Resultado: true, ya que "llueve" implica "suelo_mojado" y eso
implica "barro".

?- suelo_mojado.
% Resultado: true, porque sabemos que "llueve".

Sistema de Biblioteca

% Hechos

% Definición de libros
libro('El Quijote').
libro('Cien años de soledad').
libro('Matar a un ruiseñor').

% Relación entre libros y disponibilidad (indica si un libro está


prestado o no)
prestado('El Quijote').
% "Cien años de soledad" no está prestado
% "Matar a un ruiseñor" no está prestado

% Reglas

% Verificar si un libro está disponible (no está prestado)


disponible(X) :- libro(X), \+ prestado(X).

% Consultas

% ¿Está disponible el libro "Matar a un ruiseñor"?


?- disponible('Matar a un ruiseñor').

% ¿Está disponible el libro "El Quijote"?


?- disponible('El Quijote').

% ¿Está disponible el libro "Cien años de soledad"?


?- disponible('Cien años de soledad').
Sistema de recomendación de películas

% Películas con su género


pelicula(titanic, drama).
pelicula(inception, ciencia_ficcion).
pelicula(godfather, crimen).
pelicula(pulp_fiction, crimen).
pelicula(the_matrix, ciencia_ficcion).
pelicula(shawshank_redemption, drama).

% Gustos de los usuarios por género


gusta(juan, drama).
gusta(maria, ciencia_ficcion).
gusta(luis, crimen).

% Regla para recomendar películas basadas en el género que le


gusta al usuario
recomendar(Pelicula, Usuario) :-
gusta(Usuario, Genero),
pelicula(Pelicula, Genero).

% Consultas y resultados esperados:

% 1. Consultar qué películas le gustan a Juan:


% ?- recomendar(Pelicula, juan).
% Resultado esperado:
% Pelicula = titanic ;
% Pelicula = shawshank_redemption ;
% false.

% 2. Consultar qué películas le gustan a Maria:


% ?- recomendar(Pelicula, maria).
% Resultado esperado:
% Pelicula = inception ;
% false.

% 3. Consultar qué películas le gustan a Luis:


% ?- recomendar(Pelicula, luis).
% Resultado esperado:
% Pelicula = godfather ;
% Pelicula = pulp_fiction ;
% Pelicula = the_matrix ;
% false.

También podría gustarte