Está en la página 1de 26

Inteligencia Artificial.

Unidad 2. Sintaxis y semántica del lenguaje


de programación lógica
Carlos R. D. M.
Objetivo:
• Revisar los elementos que conforman la
programación lógica.
• Verificar en qué consiste un programa de
inteligencia artificial.
¿Qué son
Sintaxis y
Semántica?
Sintaxis:
Conjunto de reglas que deben
seguirse al escribir el código Semántica:
fuente de los programas para
considerarse como correctos para Es la interpretación del
un lenguaje de programación. significado de una expresión.
Paradigmas de programación
Son la forma que determinan los métodos y las herramientas
que un programador usará en la construcción de un
software. 
Pregunta 1:
Da una descripción detallada de al menos tres paradigmas de
programación.
Programación declarativa
Es un estilo de programación en el que el
programador especifica qué debe computarse y,
además, cómo debe hacerse. 

Programa   =   Lógica   +   Control

El componente lógico determina el significado,
mientras que el componente
de control solo determina su eficiencia. 

Así, la tarea de programar se centra en la lógica,
puesto que se asume el control automático a la
máquina.

La   característica  fundamental   es   el   uso   de la


lógica como lenguaje de programación.
Técnicas de la Inteligencia
Artificial: LISP
Programación HASKELL
Funcional ERLANG

Paradigma ALF
Declarativo Programación PROLOG
Lógica MERCURY
ACTOR PROLOG
PROLOG
PROgramming LOGic
Surgió a principios de 1970.
Su creación fue motivada por la necesidad de los
investigadores de Inteligencia Artificial y sus ramas:
• Computación Simbólica
• Prueba de Teoremas 5ª Generación de
• Sistemas Basados en reglas Computadoras
• Procesamiento de lenguaje Natural
PROLOG

Alain Colmerauer y Philippe Roussel


• Lenguaje de Programación Lógica de propósito general.
• Raíces en la lógica de primer orden, o lógica de predicados.
PROLOG
Se conocen como lenguajes basados en reglas.
• Al ejecutar las declaraciones lógicas del programa, se crea un
conjunto con todas las posibles soluciones al problema que se
especifica.

Reglas
Resultados

Hechos Máquina de
Inferencia
PROLOG
Basado en la lógica de predicados
• Partiendo de la lógica proposicional
Mamifero
Animal Proposición Valor de Verdad
Pato P: Pato es Mamífero FALSO
Gato G: Gato es Mamfero VERDADERO
Perro M: Perro es Mamífero VERDADERO
Serpiente S: Pez es Mamífero FALSO
Conejo C: Conejo es Mamífero VERDADERO
PROLOG
El predicado común de las oraciones es: EsMamífero
Lo utilizamos con una variable
EsMamífero(X)
• Asi X puede tomar valores como
• Gato
• Perro
• Conejo
Hechos

Así podemos establecer los hechos


EsMamífero(Conejo)
EsMamífero(Perro)
EsMamífero(Gato)

y después preguntar EsMamífero(X) y


Los resultados mostrarían a Conejo, Perro y Gato.
Reglas
Las reglas nos indican las condiciones que deben cumplirse para que se
dispare la regla y arroje una condición.
Ejemplo:
• Si es Mamífero entonces tiene patas y dientes
• Mamífero(X) Patas(X), Dientes(X).
Si preguntamos Mamífero(Gato)
• Nos dará como resultado: Patas(Gato), Dientes(Gato)
Pregunta 2:
Descarga al menos tres manuales o tutoriales de PROLOG de
la web y comparte el que más te guste, puede ser el solo el
link, comenta porque te gustó.
Software SWI- PROLOG
Se puede bajar de la página
• www.swi-prolog.org
SWI-PROLOG
Para ejecutarlo basta con escribir en la búsqueda la palabra PROLOG
Alternativamente buscamos en la carpeta donde instalamos y damos
clic
SWI- PROLOG
• Obtenemos la siguiente ventana
SWI-PROLOG
Los programas tienen extensión “.pl”
• Si damos doble clic en uno de ellos automáticamente se abre la
consola para realizar las consultas.
• De lo contrario, usamos File  Edit y seleccionamos.
Programa en PROLOG
Comentarios de línea

Comentario de párrafo
Programa [likes.pl]
INTERPRETACIÓN
DE LA REGLA
Indian(X), Mild(X)  Likes(sam, X)
Si X es india, y X es levemente picante,
entonces le gusta a Sam

RESULTADO DE
LA REGLA

Se busca la intersección: la
comida india que no es muy
picosa es: dahl, tandoori, kurma
Programa [likes.pl]
INTERPRETACIÓN
DE LAS REGLAS

Chinesse(X)  Likes(sam, X)
Si X es China entonces le gusta a Sam

RESULTADO DE
LA REGLA
Se busca la comida que es China:
chow_mein, chop_suey,
sweet_and_sour

RESULTADOS AL MOMENTO
dahl, tandoori, kurma,
chow_mein, chop_suey,
sweet_and_sour
Programa [likes.pl]
INTERPRETACIÓN
DE LAS REGLAS

Italian(X)  Likes(sam, X)
Si X es Italiana entonces le gusta a Sam

RESULTADO DE
LA REGLA
Se busca la comida que es
Italiana: pizza, spaghetti

RESULTADOS AL MOMENTO
dahl, tandoori, kurma,
chow_mein, chop_suey,
sweet_and_sour,
Pizza.spaghetti
Programa [likes.pl]
INTERPRETACIÓN
DE LAS REGLAS

Likes(sam, chips)
Las chips le gustan a Sam

RESULTADOS AL MOMENTO
dahl, tandoori, kurma,
chow_mein, chop_suey,
sweet_and_sour,
pizza, spaghetti, chips
Pregunta 3:
¿Se puede hacer un programa en PROLOG que imprima el
“hola mundo”?, Argumenta tu respuesta o da el ejemplo.
https://drive.google.com/drive/folders/10YmAlU-84dSa2qHkccj2Yc0GQiwF8zwA?
usp=sharing

También podría gustarte