Sunteți pe pagina 1din 11

PROGRAMACION LOGICA

INSTITUTO TECNOLOGICO DE ALTAMIRA

PROGRAMACION LOGICA Y FUNCIONAL

INGENIERIA EN SISTEMAS COMPUTACIONALES VII SEMESTRE

ALUMNO: ZAMBRANO ROBLLES ESDRAS MOISES.

DOCENTE: ING SOBREVILLA RESENDIZ ERICK.

12/12/2017
Programacin lgica y funcional Zambrano Robles Esdras Moises

INDICE
Qu es la programacin lgica? ............................................................................................................................................ 3
Alcances .................................................................................................................................................................................. 4
Lenguajes de programacin lgica.......................................................................................................................................... 4
Prolog : ................................................................................................................................................................................ 5
Godel ................................................................................................................................................................................... 6
CLP (FD) ............................................................................................................................................................................... 7
Elementos y sintaxis de la programacin lgica ..................................................................................................................... 8
Hechos ........................................................................................................................................................................... 8
Reglas ............................................................................................................................................................................ 8
Consultas ....................................................................................................................................................................... 8
Recursin....................................................................................................................................................................... 9
Aplicaciones .......................................................................................................................................................................... 10

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 2


Programacin lgica y funcional Zambrano Robles Esdras Moises

Qu es la programacin lgica?

Paradigma de programacin basado en la lgica de primer orden. La Programacin Lgica estudia el


uso de la lgica para el planteamiento de problemas y el control sobre las reglas de inferencia para
alcanzar la solucin automtica.

La Programacin Lgica, junto con la funcional, forma parte de lo que se conoce como Programacin
Declarativa, es decir la programacin consiste en indicar como resolver un problema mediante
sentencias, en la Programacin Lgica, se trabaja en una forma descriptiva, estableciendo relaciones
entre entidades, indicando no como, sino que hacer, entonces se dice que la idea esencial de la
Programacin Lgica es

Se puede ver como una deduccin controlada.

Lgica (programador): hechos y reglas para representar conocimiento

Control (interprete): deduccin lgica para dar respuestas (soluciones).

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 3


Programacin lgica y funcional Zambrano Robles Esdras Moises

Alcances

En 1981 apareci el primer intrprete de Prolog para ordenadores personales; Se utiliz en un


proyecto educativo muy interesante: La lgica como lenguaje de ordenadores para nios, Al mismo
tiempo, en 1981, Prolog se adopt como un elemento de partida para el proyecto japons de quinta
generacin, lo que contribuy a la difusin del lenguaje.

La programacin lgica progres lentamente en dos frentes: en productos comerciales (intrpretes,


compiladores y entornos de programacin) y programas libres cada vez ms eficientes y, en el
marco de la investigacin, en arquitecturas de mquinas no convencionales (con procesamiento
en paralelo) en busca del ideal de la mquina lgica. Un impulso renovador se produjo con la idea
de ampliar su alcance mediante la introduccin de construcciones para resolver problemas de
satisfaccin de restricciones y ms recientemente, con su integracin en las metodologas de
orientacin a objetos y la inteligencia artificial.

Lenguajes de programacin lgica

La programacin lgica y funcional tiene una diversidad de lenguajes, el ms utilizado es prolog,a


continuacin se muestran algunos de los lenguajes de programacin que emplean como paradigma
la programacin lgica.

Prolog
Mercury
CLP (FD)
CSP (Constraint Satisfaction Problem)
Lambda Prolog
Logtalk
Alma-0
CLAC(Logical Composition with the Assistance of Computers)
Gdel
Curry
Ace
PALs
Actor Prolog

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 4


Programacin lgica y funcional Zambrano Robles Esdras Moises

Prolog :
Es un Lenguaje de Programacin diseado para representar y utilizar el conocimiento que se tiene
sobre un determinado dominio. Los programas en Prolog responden preguntas sobre el tema del
cual tienes conocimiento.

La popularidad del lenguaje se debe a su capacidad de deduccin y adems es un lenguaje fcil de


usar por su semntica y sintaxis. Solo busca relaciones entre los objetos creados, las variables y las
listas, que son su estructura bsica.

Escribir un programa en Prolog consiste en declarar el conocimiento disponible acerca de objetos,


adems de sus relaciones y sus reglas, en lugar de correr un programa para obtener una solucin,
se hace una pregunta, el programa revisa la base de datos para encontrar la solucin a la pregunta,
si existe mas de una solucin, Prolog hace un barrido para encontrar soluciones distintas. El propio
sistema es el que deduce las respuestas a las preguntas que se le plantean, dichas respuestas las
deduce del conocimiento obtenido por el conjunto de reglas dadas.

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 5


Programacin lgica y funcional Zambrano Robles Esdras Moises

Godel
Gdel es un lenguaje en el que las sentencias lgicas llevan un orden y en el que existe el
polimorfismo. Est basado en mdulos (que aceptan polimorfismo) y en tipos de datos (soporta
enteros y racionales con una precisin infinita, y nmero en coma flotante) y tiene una amplia librera
de mdulos predefinidos.

Es un buen lenguaje para tareas de meta-programacin, tales como compilacin, depuracin,


anlisis, verificacin o transformacin de programas, ya que es mucho ms declarativo que Prolog,
por ejemplo. Como curiosidad, se puede destacar que este lenguaje no funciona en un entorno
Windows.

Ejemplo: Mximo Comn Divisor

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 6


Programacin lgica y funcional Zambrano Robles Esdras Moises

CLP (FD)

Otra extensin de Prolog, especializado en los problemas CSPs (Constraint Satisfaction Problem).
De forma general, podemos decir que un programa en CLP(FD) consta de tres partes: generacin
de variables (donde tambin se especifica su domino), definicin de restricciones (sobre las
variables) y labeling, donde se instancian las variables por enumeracin.

Ejemplo: SEND MORE MONEY puzzle

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 7


Programacin lgica y funcional Zambrano Robles Esdras Moises

Elementos y sintaxis de la programacin lgica

Hechos
Declaracin, clusula o proposicin cierta o falsa, el hecho establece una relacin entre objetos.

Son las sentencias ms sencillas. Un hecho es una frmula atmica o tomo: p(t1,...,tn)p(t1,...,tn) e
indica que se verifica la relacin (predicado) p sobre los objetos (trminos) t1,...,tnt1,...,tn.

Reglas
Implicacin o inferencia lgica que deduce nuevo conocimiento, la regla permite definir nuevas relaciones
apartir de otras ya existentes

Consultas
se especifica el problema, la proposicin a demostrar o el objetivo Partiendo de que los humanos son
mortales y de que Scrates es humano, deducimos que Pepito es mortal

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 8


Programacin lgica y funcional Zambrano Robles Esdras Moises

Recursin
La recursividad puede ser tratada de una manera ms eficaz si se piensa en que hace el algoritmo
recursivo que se piensa aplicar, en vez de cmo hacerlo. Para esto se usar la modularidad, la cual se
basa en separar el problema en otros ms pequeos y hallar la solucin a estos para luego unirlos, como
es ususal en la programacin lgica.

Lo que se ha estado mostrando hasta ahora es, este sistema de resolver problemas de la programacin
lgica mediante la modularidad, entonces cmo puede ser aplicada sta en la recursin?

Si nuestro problema es obtener el rea de un cuadrado, lo que se debe hacer no es separar esta rea en
una de un tringulo o un crculo, sino en las reas de otros cuadrados, por lo cual se puede dar el valor
del rea del cuadrado con las medidas mnimas y de ah empezar a llamar recursivamente la funcin con
medidas mayores a sta. por ejemplo:

El rea de un cuadrado de rea de 2 unidades cuadradas es igual a cuatro veces el rea de un cuadrado
de 1 unidad cuadrada.

Y as se puede obtener resultados de un problema con solo definir los casos base y de ah realizar las
operaciones recursivamente.

En un mbito ms matemtico sta idea puede ser utilizada para resolver operaciones sencillas como es
el caso de las sumatorias o factoriales, en general cualquier operacin que requiera informacin del
resultado que generan valores inferiores al dado. Un ejemplo de sto podra ser el hallar las potencias de
dos dado el exponente en la funcin, lo cual puede ser hallado con el siguiente programa de prolog.

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 9


Programacin lgica y funcional Zambrano Robles Esdras Moises

Aplicaciones

1. Desarrollo de aplicaciones de inteligencia artificial.

2. Prueba de teoremas de forma automtica, donde un programa genera nuevos teoremas sobre
una teora existente.

3. Construccin de Sistemas expertos, donde un Sistema de informacin mita las


recomendaciones de un experto sobre algn dominio de conocimiento.

4. Procesamiento del lenguaje natural, donde un programa es capaz de comprender (con


limitaciones) la informacin contenida en una expresin lingstica humana.

A continuacin se presenta un ejemplo simple de procesamiento de lenguaje natural.

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 10


Programacin lgica y funcional Zambrano Robles Esdras Moises

Bibliografa
Fernndez, G. F. (28 de 11 de 2004). Representacin del conocimiento en sistemas inteligentes. Recuperado el 12 de 12
de 2017, de http://dit.upm.es/~gfer/ssii/rcsi/rcsisu58.html

Guerra-Hernandez, D. A. (01 de 01 de 2011). uvm. Recuperado el 12 de 12 de 2017, de


https://www.uv.mx/aguerra/documents/2011-mpi-slides-02.pdf

Kevin Castro, J. D. (15 de 02 de 2003). Programacin Lgica. Recuperado el 12 de 12 de 2017, de


http://ferestrepoca.github.io/paradigmas-de-programacion/proglogica/logica_teoria/introduccion.html

Instituto Tecnolgico De Altamira Ingeniera Sistemas Computacionales Pgina 11

S-ar putea să vă placă și