El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
Estructura
1. INTRODUCCIÓN
Prolog es un lenguaje de programación que se utiliza para resolver problemas
en los que existen objetos y relaciones entre objetos.
La programación en Prolog consiste simplemente en:
o Declarar hechos sobre los objetos y sus relaciones.
o Definir reglas sobre dichos objetos y relaciones.
o Hacer preguntas.
En el lenguaje Prolog el ordenador y el programador sostienen una especie de
conversación. Prolog esperará a que introduzcas los hechos y las reglas que
definen el problema a resolver. A continuación, si se hacen las preguntas
adecuadas, Prolog buscará las respuestas y las presentará en la pantalla.
MARCO TEÓRICO
ESTRUCTURADE PROLOG
Un programa Prolog está formado por una secuencia de enunciados:
Hechos.
Reglas.
Comentarios.
Una relación puede estar especificada por hechos, simplemente estableciendo
objetos que satisfacen la relación o por reglas establecidas acerca de la relación.
Cada regla está formada por un primer miembro (o la cabeza de la regla), un
segundo miembro (o cola de la regla) ligados por " :- " y termina con el carácter
" . ". Código del programa.
HECHOS
Un hecho es una relación entre objetos.
Su sintaxis en PCD-Prolog es:
Relación (objeto, objeto, ...).
2. La relación se conoce como el predicado y los objetos como los argumentos. Los
siguientes puntos son importantes:
• Los nombres de las relaciones deben comenzar con una letra minúscula.
• Los objetos se escriben separados por comas y encerrados entre
paréntesis.
mujer(maria).
hombre(pedro).
hombre(manuel).
hombre(arturo).
RELACIONES
padre(pedro,manuel).
padre(pedro,arturo).
padre(pedro,maria).
REGLAS
Cuando la verdad de un hecho depende de la verdad de otro hecho o de un
grupo de hechos se usa una regla. Una regla consiste en una cabeza y un
cuerpo. El cuerpo puede estar formado por varios hechos u objetivos.
Su sintaxis es:
cabeza :- objetivo 1, objetivo 2, ..., objetivo n.
Los objetivos van separados por comas, especificando conjunción y al final debe
de ir un punto.
nino(X,Y):- padre(Y,X)
hijo(X,Y):-nino(X,Y),hombre(X).
hija(X,Y):-nino(X,Y),mujer(X).
hermano_o_hermana(X,Y):-padre(Z,X),padre(Z,Y).
hermano(X,Y):-hermano_o_hermana(X,Y),hombre(X).
3. hermana(X,Y):-hermano_o_hermana(X,Y),mujer(X).
LISTAS
Las listas son unas estructuras de datos muy comunes en la programación no
numérica. Una lista es una secuencia ordenada de elementos que puede tener
cualquier longitud. Los elementos de una lista pueden ser cualquier término
(constantes, variables, estructuras) u otras listas. Las listas pueden
representarse como un tipo especial de árbol.
Una lista puede definirse recursivamente como:
Una lista vacía [], sin elementos.
Una estructura con dos componentes:
Cabeza: Primer argumento.
Cola: Segundo argumento. Es decir, el resto de la lista. El final de
una lista se suele representar como una cola que contiene la lista
vacía.
La cabeza y la cola de una lista son componentes de una estructura
cuyo nombre es “.”.
EJEMPLO:
Así, la lista que contiene un solo elemento a es:
. ( a, [] )
Y la lista de tres elementos [a, b, c] podría escribirse
. ( a, . ( b, . ( c, [] ) ) )
Siempre terminando con la lista vacía.
4. En Prolog utilizaremos una notación más sencilla de las listas que dispone a los
elementos de la misma separados por comas, y toda la lista encerrada entre
corchetes. Así, las listas anteriores quedarían como [a] y [a, b, c], que es un tipo
de notación más manejable. Existe, también, una notación especial en Prolog
para representar la lista con cabeza X (elemento) y cola Y (lista):
| Y ]
EJEMPLOS:
CONCLUSIÓN
Prolog permite al usuario establecer una interacción con la maquina ya que su
programación sencilla y de fácil entendimiento permite dar respuestas al pedido
que establece el usuario por medio de los hechos y las reglas; También utiliza
pocos comandos en comparación con otros lenguajes de programación.
BIGLIOGRAFÍA
David y Warren, David S. Computing with Logic. Logic programming with
Prolog The Benjamin/Cummings, 2011.
Bratko, Ivan PROLOG Programming for Artificial Intelligence Addison-
Wesley, second ed., 2010.