Você está na página 1de 4

Cursos Universitarios

Material Académico

Ingeniería de Sistemas

Laboratorios
Inteligencia Artificial
INTELIGENCIA ARTIFICIAL – –
– Programación Lógica - 1
© InfoConsulting, I.C. - S.A.C., Perú. - M.Sc. Ing. Carlos Alberto Chirinos Mundaca

I. ESTRUCTURAS BÁSICAS
1.1.¿Qué es Programación Lógica?
Propuesta por Kowalski en 1974 facilita la tarea de programación liberando al programador haciendo
una optimización de las dos componentes básicas de un algoritmo, Lógica y Control.

La programación lógica consiste en la aplicación del corpus de conocimiento sobre lógica para el
diseño de lenguajes de programación. Se ha convertido en el pilar de una nueva generación de
lenguajes de programación.

Junto con la programación funcional forma parte de lo que se conoce como programación
declarativa, Como se irá explicando más adelante en los lenguajes tradicionales se intenta resolver
un problema mediante sentencias, en la programación lógica se trabaja de forma descriptiva,
estableciendo relaciones, y no indicando un cómo sino un qué hacer.

Es decir el algoritmo que se quiera diseñar se construye especificando un conocimiento en un


lenguaje formal y para resolverlo se uso la inferencia o control que actúa sobre aquel.

1.2.¿Cómo nació?
Los ordenadores siempre se han programado usando lenguajes con propiedades de la propia
maquina: aritmética simple, instrucciones de acceso…Un programa de estas características puede
ocultar su propósito a los ojos de un ser humano, incluso uno que maneje dichos lenguajes o
técnicas de programación. Estos lenguajes pertenecientes a la programación imperativa han
evolucionado de manera que ya no son tan difíciles de entender.

La lógica matemática es la manera más sencilla, para el ser humano, de expresar problemas y
resolverlos con la aplicación de reglas, hipótesis y teoremas. De ahí el éxito de la programación
lógica en campos donde la programación “de siempre” es un fracaso.

¿Para qué se usa?


Su principal uso se basa en las aplicaciones de inteligencia artificial o similar.
 Sistemas expertos.
 Demostración automática.
 Reconocimiento de lenguaje natural.
 Otros usos.

1.3.Fundamentos de la Programación Lógica


Se basan principalmente en la teoría Lógica de Primer Orden, y en algunos de nivel superior.
Destacamos los lenguajes funcionales como teoría lógica de orden superior que es
demostradamente computable.

No se basa en la veracidad o falsedad de expresiones o sentencias sino de las relaciones que se


generan entre ellas. Así se basan en un mecanismo de inferencia.

Este requerirá de un lenguaje que exprese en una forma sencilla y sin ambigüedad las expresiones
que representen las afirmaciones y conclusiones. Así nos basamos en expresiones y relaciones de la
forma que:

Asesoría y Consultoria Empresarial – Auditoria, Consultoria y Peritajes Informáticos y de Sistemas.


INTELIGENCIA ARTIFICIAL – –
– Programación Lógica - 2
© InfoConsulting, I.C. - S.A.C., Perú. - M.Sc. Ing. Carlos Alberto Chirinos Mundaca

 Juan es hijo de Pedro.


 Dos es mayor que uno.

Así los programas se establecen como conjuntos de axiomas (base de conocimiento), expresados
mediante cláusulas de Horn, para la definición de predicados entre objetos.

1.4. Breve Historia de la Programación lógica


1960: Demostración automática de teoremas.
1965: Resolución y unificación (Robinson).
1969: QA3, Obtención de Respuesta (Green).
1972: Implementación de Prolog (Colmerauer).
1974: Programación lógica (Kowalski).
1977: Prolog de Edimburgo (Warren).
1981: Proyecto Japonés de Quinta Generación.
1986: Programación lógica con restricciones.
1995: Estándar ISO de Prolog.

La idea fundamental de la Programación Lógica consiste en emplear la lógica como Lenguaje de


Programación.

La Lógica no es Imperativa: no sirve para indicar cómo resolver un problema (órdenes)


La Lógica es Declarativa: sirve para especificar qué problema resolver (condiciones), sin embargo, la
programación lógica permite ambos enfoques

El Enfoque Imperativo: Programación Imperativa (Modula-2, C++, Java, etc.)


 Diseñar un algoritmo para resolver el problema
 Computar la solución ejecutando el algoritmo
 El énfasis está en cómo resolver el problema
 La Programación Lógica también es capaz de describir algoritmos a un nivel de abstracción alto
(por ejemplo: QuickSort).

El Enfoque Lógico: Programación Lógica


 Especificar las condiciones que satisfacen las soluciones
 Deducir las soluciones a partir de las condiciones
 El énfasis está en qué problema resolver
 El problema se describe especificando qué caracteriza a sus posibles soluciones.

Ejemplo 1 : Ordenar tres números


Problema : Ordenar tres números distintos
Entrada : conjunto X = { X1, X2, X3 }
Solución : una secuencia A,B,C tal que:
A,B y C pertenecen a X,
A,B, y C son distintos entre sí,
A < B,
B<C
No es una solución imperativa: no es un algoritmo de ordenación
Es una solución declarativa: especifica las condiciones que caracterizan a la solución

Asesoría y Consultoria Empresarial – Auditoria, Consultoria y Peritajes Informáticos y de Sistemas.


INTELIGENCIA ARTIFICIAL – –
– Programación Lógica - 3
© InfoConsulting, I.C. - S.A.C., Perú. - M.Sc. Ing. Carlos Alberto Chirinos Mundaca

Ejemplo 2 : Descomponer un número


Problema : Descomponer un número en la suma de dos pares
Entrada : Un natural N
Solución : Dos naturales A y B tales que:
A es par,
B es par,
N = A+B.

Asesoría y Consultoria Empresarial – Auditoria, Consultoria y Peritajes Informáticos y de Sistemas.

Você também pode gostar