Está en la página 1de 3

Varela Gonzlez Vctor Hugo TAREA 9

Una de las preocupaciones ms tempranas de la computacin de los aos cincuenta fue la


posibilidad de hacer programas que llevaran a cabo demostraciones automticas de teoremas.
As empezaron los primeros trabajos de inteligencia artificial que ms de veinte aos despus
dieron lugar al primer lenguaje de programacin que contempla, como parte del intrprete, los
mecanismos de inferencia necesarios para la demostracin automtica. Este primer lenguaje
est basado en el formalismo matemtico de la Lgica de Primer Orden y ha dado inicio a un
nuevo y activo campo de investigacin entre las matemticas y la computacin que se ha
denominado la Programacin Lgica. Estos mecanismos de prueba fueron trabajados con
mucho entusiasmo durante una poca, pero, por su ineficiencia, fueron relegados hasta el
nacimiento de PROLOG, ocurrido en 1970 en la Universidad de Marsella, Francia, en el seno de
un grupo de investigacin en el campo de la Inteligencia Artificial. La Programacin Lgica tiene
sus orgenes ms cercanos en los trabajos de prueba automtica de teoremas de los aos
sesenta. J. A. Robinson propone en 1965 una regla de inferencia a la que llama resolucin,
mediante la cual la demostracin de un teorema puede ser llevada a cabo de manera
automtica. La resolucin es una regla que se aplica sobre cierto tipo de frmulas del Clculo de
Predicados de Primer Orden, llamadas clusulas y la demostracin de teoremas bajo esta regla
de inferencia se lleva a cabo por reduccin al absurdo. Actualmente, la programacin lgica ha
despertado un creciente inters que va mucho ms all del campo de la Inteligencia Artificial(IA)
y sus aplicaciones. Los japoneses, con su proyecto de mquinas de la quinta generacin, dieron
un gran impulso a este paradigma de programacin. Sin embargo, antes que ellos existan ya en
Estados Unidos y en Europa grupos de investigacin en este campo, en pases como Inglaterra,
Holanda, Suecia y, desde luego, Francia. A principios de los aos ochentas los japoneses
comienzan a invertir recursos en un proyecto que denominan la Quinta Generacin, para lucrar
con la buena fama de los 4GL. Con este ambicioso proyecto Japn busca obtener el liderazgo en
computacin, usando como base la Programacin Lgica y la Inteligencia Artificial.
PROLOG es un lenguaje de programacin declarativo. Los lenguajes declarativosse diferencian
de los lenguajes imperativos o procedurales en que estn basados en formalismos abstractos
(PROLOG est asado en la lgica de predicados de primer orden y LISP, otro lenguaje de
programacin declarativa, en lambda calculo), y por tanto su semntica no depende de la
mquina en la que se ejecutan. Las sentencias en estos lenguajes se entienden sin necesidad de
hacer referencia al nivel mquina para explicar los efectos colaterales. Por tanto, un programa
escrito en un lenguaje declarativo puede usarse como una especificacin o una descripcin
formal de un problema. Otra ventaja de los programas escritos en lenguajes declarativos es que
se pueden desarrollar y comprobar poco a poco, y pueden ser sintetizados o transformados
sistemticamente.

PROLOG es un lenguaje de programacin muy til para resolver problemas que implican objetos
y relaciones entre objetos.

Programacin declarativa.- La lgica de predicados, tal como est diseada en PROLOG, es un
lenguaje de programacin declarativo, en donde el programador slo necesita preocuparse del
Varela Gonzlez Vctor Hugo TAREA 9

conocimiento expresado en trminos del operador de implicacin y los axiomas. El mecanismo
deductivo de la lgica de predicados llega a una respuesta (si esto es factible), utilizando un
proceso exhaustivo de unificacin y bsqueda. A pesar que la bsqueda exhaustiva puede ser
apropiada en muchos problemas, tambin puede introducir ineficiencias durante la ejecucin.
Para lograr un cierto control en el proceso de bsqueda, PROLOG ofrece la operacin de corte,
CUT. Cuando no se utiliza el CUT, PROLOG se convierte en un lenguaje puramente declarativo.
Manejo de incertidumbre.- Una de las mayores desventajas de la lgica de predicados es que
slo dispone de dos niveles de veracidad: verdadero y falso. Esto se debe a que la deduccin
siempre garantiza que la inferencia es absolutamente verdadera. Sin embargo, en la vida real no
todo es blanco y negro. En cierta forma el PROLOG ha logrado mitigar esta desventaja,
permitiendo la inclusin de factores de certeza.

Razonamiento monotnico.- La lgica de predicados al ser un formalismo de razonamiento
monotnico, no resulta muy adecuada para ciertos dominios del mundo real, en los cuales las
verdades pueden cambiar con el paso del tiempo. El PROLOG compensa esta deficiencia,
proporcionando un mecanismo para remover los hechos de la base de datos. Por ejemplo, en
TURBO PROLOG se tiene la clusula retractall.
Inteligencia Artificial: La resolucin de juegos y la planificacin as como la construccin
de agentes inteligentes constituyen amplios campos que abarca la rama de la
Inteligencia Artificial. Esto nos aporta una gran ventaja a la hora de realizar el desarrollo
de la aplicacin una vez analizado el problema y diseada su solucin.

Sistemas Expertos: Los agentes y sistemas expertos se pueden considerar entes capaces
de actuar como lo hara un experto humano en la resolucin de un determinado
problema. Pueden percibir el ambiente mediante sensores y actan sobre ese ambiente
por medio de efectores. En los agentes hardware, los sensores son sustituidos por
cmaras y telmetros y los efectores son reemplazados mediante motores. En los
agentes software, las percepciones y acciones vienen a ser las cadenas de bits
codificados.

Compiladores: La comprensin del lenguaje natural y la construccin de compiladores e
intrpretes son campos de desarrollo muy adecuados para Prolog. En Prolog se puede
especificar un autmata finito mediante tres hechos, simplemente. El predicado inicial,
inicial(Q), es true si Q es el estado inicial. El predicado final(Q) es true si Q es el estado
final. Y el predicado delta(Q, X, Q1) que funciona del siguiente modo: es true si el
autmata cambia del estado Q al estado Q1 al recibir el smbolo X. El autmata recibe
una cadena de smbolos del alfabeto S *. El autmata reconoce el lenguaje si comenz
en el estado inicial y acab en el estado final tras seguir las transiciones especificadas
por d.

Miscelnea: Prolog se puede adaptar a la resolucin de casi cualquier tipo de problema
con gran facilidad. Aunque, en mi opinin, es ideal como lenguaje de implementacin
de aplicaciones provenientes del campo de la Inteligencia Artificial.


Varela Gonzlez Vctor Hugo TAREA 9

http://prolog6.tripod.com/historia.htm
http://www.monografias.com/trabajos/iartificial/pagina4_23.htm
http://www.dccia.ua.es/logica/prolog/docs/prolog.pdf
http://mural.uv.es/mijuanlo/PracticasPROLOG.pdf
http://www.uhu.es/nieves.pavon/pprogramacion/temario/tema4/tema4.html