Algoritmo

Páginas: 12 (2801 palabras) Publicado: 16 de mayo de 2012
Programación lógica
[white paper]

Un recorrido por la programación lógica y uno de sus lenguajes más
representativos: Prolog, clásico de la inteligencia artificial, que se aplica
de múltiples formas en el desarrollo de software comercial.
Estructuras básicas

> Las constantes, representadas por una cadena de caracteres, pueden ser números o cualquier cadena que comience en minúscula.L

> Las variables son cadenas que comienzan con una letra mayúscula.

a programación lógica, junto con la funcional, forma parte de lo que se conoce como programación declarativa. En los lenguajes tradicionales, la
programación consiste en indicar cómo resolver un problema mediante sentencias; en la programación lógica, se trabaja de una forma descriptiva, estableciendo relaciones entreentidades, indicando no cómo, sino qué hacer. La ecuación de Robert Kowalski (Universidad de Edimburgo) establece la idea esencial de la programación lógica: algoritmos = lógica + control. Es decir, un algoritmo se construye especificando conocimiento en un lenguaje formal (lógica de primer orden), y el problema
se resuelve mediante un mecanismo de inferencia (control) que actúa sobre aquél.Prolog

Poste 1

Poste 2

Poste 3

El lenguaje Prolog, principal representante del paradigma, se basa en un subconjunto de la lógica de primer orden (restricción de la forma clausal de la lógica denominada cláusulas de Horn). Philippe Roussel y Alain Colmerauer (Universidad de AixMarseille) lo crearon en 1972, y su base teórica se debe en gran parte a Kowalski.

Prolog cuenta con dos tipos deestructuras: términos y sentencias. Los términos
pueden ser constantes, variables o functores:

[Figura 1] Problema y resolución de las torres de Hanoi.

58

> Los functores son identificadores que empiezan con minúscula, seguidos de una
lista de parámetros (términos) entre paréntesis, separados por comas.

> Un hecho establece una relación entre
objetos, y es la forma más sencilla desentencia. Por ejemplo:
> Una regla permite definir nuevas relaciones a partir de otras ya existentes. Si queremos establecer que todo humano es
mortal, en lógica estándar escribiríamos
V(x)(humano(x)=>mortal(x)), mientras que
en Prolog escribimos:
> Esto se lee: X (variable) es mortal s i X es
humano. El símbolo :- significa “si” o, si
lo leemos de derecha a izquierda, entonces o implica.En esta regla, mortal(X) es
la cabeza, y humano(X) es el cuerpo.

Las sentencias son reglas o cláusulas. Hay
hechos, reglas con cabeza y cola, y consultas.
> Para entender el concepto de consulta,
veamos un ejemplo. En lógica estándar:
> V(x)(humano(x)=>mortal(x))
> humano(socrates)
> entonces mortal (socrates)
humano (socrates).
ama (juan,maría)

> Partiendo de que los humanos sonmortales y de que Sócrates es humano,
deducimos que Sócrates es mortal. Para
realizar esa deducción en Prolog, hay
que preguntar si es mortal Sócrates, o
quién es mortal. Si del programa lógico (conjunto de hechos y reglas) se
deduce que Sócrates es mortal, entonces ésa será la respuesta que obtendremos. Veamos el programa:
Se establece que Sócrates es humano y
que Juan ama a María.mortal(X):-humano(X).

users.code

Operadores

mortal(X):-humano(X).
humano(Sócrates).

Para preguntar interactivamente, los ambientes de Prolog tienen un
listener, un intérprete de línea de comando cuyo prompt es un signo
de pregunta. Se introduce una sentencia (eventualmente con variables), y Prolog intentará demostrarla (usando un algoritmo de inferencia llamado SLD-Resolution, basado enla regla de resolución de
Robinson), buscando además constantes que puedan reemplazar las
variables de la pregunta. Las preguntas de nuestro ejemplo serían:
?- mortal(Sócrates).
Yes.
?- mortal(X)
X = socrates

Las segundas líneas son las respuestas de Prolog: primero, afirmando que sí, Sócrates es mortal; después, contestando Sócrates al preguntar quién es mortal. Si agregamos más...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Algoritmo
  • Algoritmo
  • Algoritmos
  • Algoritmos
  • Algoritmos
  • Algoritmos
  • Algoritmos
  • Algoritmos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS