You are on page 1of 8

ESCUELA SUPERIOR POLITCNICA AGROPECUARIA DE MANAB

MANUEL FLIX LPEZ

CARRERA INFORMTICA
PERIODO MAR AGO/2015

SEMESTRE SPTIMO

INTELIGENCIA ARTIFICIAL II
TEMA:
PROLOG

AUTORA:
MARA VICTORIA PRRAGA MERO

FACILITADORA:
ING. HIRAIDA SANTANA CEDEO

MISIN
Formacin de profesionales ntegros que conjuguen ciencia, tecnologa y valores en su
accionar, comprometidos con la sociedad en el manejo adecuado de programas y herramientas
computacionales de ltima generacin.

VISIN
Ser referente en la formacin de profesionales de prestigio en el desarrollo de
aplicaciones informticas y soluciones de hardware.

CALCETA, JULIO 2015

INTRODUCCIN
La programacin lgica es un paradigma de los lenguajes de programacin en
el cual los programas se consideran como una serie de aserciones lgicas.
Prolog es un leguaje orientado a la programacin lgica que apareci por primera
vez en la dcada de 1970. Este lenguaje est orientado a la especificacin de
relaciones para responder consultas. En este enfoque prolog es similar a un
sistema de base de datos, aunque como la materia se basa en el estudio de la
inteligencia artificial sera mejor referirnos como base de conocimientos,
haciendo nfasis en la complejidad estructural de los datos y de las deducciones
que se pueden obtener de ellos.
El 01 de julio se trat el tema de prolog, en esta clase se tomaron en cuenta las
caractersticas principales de prolog y su funcionamiento en general.

MARCO TERICO
QU ES PROLOG?
Prolog es un lenguaje de programacin seminterpretado. Su funcionamiento es
muy similar a Java. El cdigo fuente se compila a un cdigo de byte el cul se
interpreta en una mquina virtual denominada Warren Abstract Machine
(comnmente denominada WAM).
PROLOG est orientado a la resolucin de problemas mediante el clculo de
predicados, basado en:

Preguntas a la base de datos (base de conocimientos).

Pruebas matemticas.

El programa PROLOG especfica cmo debe ser la solucin, en vez de dar el


algoritmo para su resolucin. La solucin se obtiene mediante bsqueda
aplicando la lgica de predicados.
Prolog se compone de unos hechos (datos) y un conjunto de reglas, es decir,
relaciones entre objetos de la base de datos.

ELEMENTOS DE PROLOG
Para poder construir programas en Prolog es necesario una serie de elementos:

tomos: Es una definicin genrica de un objeto del mundo que


queremos representar.

Predicados: Nos permite especificar caractersticas de los objetos de


nuestro mundo o las relaciones entre ellos.

Hechos.- Es algo que est ocurriendo en el mundo, caracterstica o relacin


entre objetos. En el lenguaje natural un hecho podra ser por ejemplo que Lgica
y Compatibilidad es una asignatura de Ingeniera Informtica. Expresan
relaciones entre objetos. Suponiendo que se quiera expresar el hecho de que
"un coche tiene ruedas". Este hecho, consta de dos objetos, "coche" y "ruedas",
y de una relacin llamada "tiene". La forma de representarlo en PROLOG es:
tiene (coche,ruedas).

Los nombres de objetos y relaciones deben comenzar con una letra


minscula.

Primero se escribe la relacin, y luego los objetos separados por comas y


encerrados entre parntesis.

Al final de un hecho debe ir un punto (".").

El orden de los objetos dentro de la relacin es arbitrario, pero debemos ser


coherentes a lo largo de la base de hechos.
Variables.- En Prolog, una variable representa el valor de un tomo.
Representan objetos que el mismo PROLOG determina. Una variable puede
estar instanciada no instanciada. Estar instanciada cuando existe un objeto
determinado representado por la variable. Los nombres de variables comienzan
siempre por una letra mayscula.
Un caso particular es la variable annima, representada por el carcter
subrayado ("_"). Es una especie de comodn que utilizaremos en aquellos
lugares que debera aparecer una variable, pero no nos interesa darle un nombre
concreto ya que no vamos a utilizarla posteriormente.

Reglas.-

Las reglas se utilizan en PROLOG para significar que un hecho

depende de uno ms hechos. Son la representacin de las implicaciones


lgicas del tipo p ---> q (p implica q).

Una regla consiste en una cabeza y un cuerpo, unidos por el signo ":-".

La cabeza est formada por un nico hecho.

El cuerpo puede ser uno ms hechos (conjuncin de hechos),


separados por una coma (","), que acta como el "y" lgico.

Las reglas finalizan con un punto (".").

PROGRAMANDO EN PROLOG
La programacin en prolog tiene dos componentes principales: el principal es la
especificacin de los hechos y las preguntas sobre esos objetos o relaciones.
Cuando se crea una base de datos con esa especificacin de hechos se puede poner a
hacer preguntas sobre esa especificacin dando como resultado s o no.

Prolog saca la respuesta explorando cada uno de los hechos introducidos en la


base de datos hasta encontrar uno que coincida, que ser el caso en la que la
respuesta ser afirmativa, o hasta que termine toda la base de datos, cuyo caso
dar una respuesta negativa. Las preguntas que hacemos sobre la base de
hechos pueden ser ms complejas usando operadores lgicos como AND, OR y
NOT. En este caso, Prolog busca que la satisfaccin a la primera parte de la
pregunta y si lo es, lo busca en la segunda.
PROLOG tiene una sintaxis y semntica simples. Slo busca relaciones entre
los objetos creados, las variables y las listas, que son sus estructuras bsicas.
Las reglas y hechos son almacenadas en memoria como listas enlazadas. La
ejecucin de prolog consiste en una bsqueda en profundidad de un rbol
conteniendo todas las posibles soluciones. Para cada una de ellas se evaluar
su correccin. La bsqueda se puede hacer ms eficiente mediante la poda del
rbol de bsqueda (corte).

EJEMPLO DE PROGRAMACION EN PROLOG


Este es un ejemplo tomado de una de las prcticas elaboradas en clase, en el
cual se cre una base de conocimientos sobre la familia:
ARBOL
VICTOR

RAUL

MARISOL

EDUARDO

EMILIO

VICTORIA

BASE DE CONOCIMIENTOS

ALBERTO

TERESA

RICARDO

GENESIS

DIFERENTES PREGUNTAS QUE SE PUEDEN REALIZAR


1 ?% c:/Users/user/Documents/Prolog/FAMILIA.pl compiled 0.02 sec, 53 clauses
1 ?- hijo(X,marisol).
X = eduardo ;
X = emilio ;
X = victoria.
2 ?- primo(victoria,alberto).
true .
3 ?- tio(raul,emilio).
true .
4 ?- tio(raul,marisol).
false.
5 ?- padre(X,ricardo).
X = teresa.
6 ?- padre(victor,X).
X = marisol ;
X = raul ;
X = teresa.
7 ?- padre(marisol,eduardo).
true.
8 ?- primo(X,alberto).
X = eduardo ;
X = emilio ;
X = victoria ;
X = ricardo ;
X = genesis.

CONCLUSION
Prolog es fcil de manejar desde el punto de vista del usuario, a su vez para
encontrar la solucin a una problemtica no se requiere de mucho pensamiento,
puesto que este basa sus respuestas basndose en las reglas declaras dentro
del programa. Sin embargo la mayor complicacin que se podra tener es que
los motores de inferencia poseen algunos lmites.
Cabe recalcar que primero es necesario conocer cules son los smbolos con los
que trabaja prolog para evitar futuras complicaciones en la construccin de la
base de conocimientos y las reglas, como experiencia personal podra acotar
dicha recomendacin.
Sin duda alguna programar en prolog resulta una tarea entretenida y la vez
educativa, el programa que se est utilizando es SWI-Prolog este ha sido
impulsado por las necesidades de las aplicaciones del mundo real. SWI-Prolog
es ampliamente utilizado en la investigacin y la educacin, as como las
aplicaciones comerciales.

BIBLIOGRAFA
Aedo, G. 2004. Qu es Prolog. Consultado. (En Lnea). EC. Consultado 30 de
jun.
2015.
Formato
HTML.
Disponible
en:
http://www.desarrolloweb.com/articulos/1573.php

_________. 2008?. Introduccin a Prolog. Consultado. (En Lnea). EC.


Consultado 30 de jun. 2015. Formato HTML. Disponible en:
http://users.dcc.uchile.cl/~abassi/IA/Prolog.html

EcuRed. 2010. Prolog (Lenguaje de programacin). (En Lnea). EC. Consultado


30
de
jun.
2015.
Formato
HTML.
Disponible
en:
http://www.ecured.cu/index.php/Prolog_(Lenguaje_de_programaci%C3%
B3n)

Russell, S y Norvig, P. 2004. Inteligencia Artificial un enfoque moderno. 2ed.


Pearson Educacin S.A. Madrid, ES.

You might also like