giovedì, 31 agosto, 2006
Introducción:
Negli inizi degli anni '70 il francese Alain Colmenuer sviluppò il linguaggio PROLOG che permette anche lo sviluppo di applicazioni in forma dichiarativa.
In generale il PROLOG è un dimostratore automatico di problemi, il quale utilizza una Base di Conoscenza sotto forma di regole di inferenza deduttiva (clausole di Horn), cioè le sue regole hanno come conseguente un'unica azione e le inferenze ottenute sono strettamente logiche (vere o false), anche se può sembrare una limitazione, questo non è del tutto giusto, dato che PROLOG permette di programmare meccanismi inferenziali con logiche probabilistiche, dato che si tratta di ricerche in alberi con accumulo di evidenze.
Il PROLOG come linguaggio nato dal calcolo dei predicati, ha preso le seguenti idee dalla logica per la sua esecuzione.
1) Un insieme di assiomi fatti.
2) Regole di inferenza che vengono risolte mediante risoluzione e unificazione.
3) L'obiettivo da dimostrare, che saranno le condizioni da unificare con le regole.
Ha preso anche dal LISP il trattamento delle liste per la rappresentazione di strutture complesse. Anche se il PROLOG ha avuto la sua origine nella logica matematica, non è stata una trasposizione esatta, ed è legato alle discussioni che sostengono da anni i principali ricercatori dell'Intelligenza Artificiale, i quali sono divisi in due grandi gruppi, de una parte Minsky quien propone estudiar los mecanismos del pensamiento humano y luego simularlo en la computadora.
Lo más importante para Minsky son los conceptos, sea la interpretación que se le puede dar a cada palabra en dependencia de un contexto dado.
El otro grupo encabezado por Mac Carthy (autor del LISP), afirma que la lógica matemática es el elemento caratteristico para la representación del razonamiento y su implantación en la computadora, este grupo centra su atención en la formalización y en la estructura de los conocimientos más que en el sentido de los mismos.
La lógica desde la antigüedad se concibió como el método de descubrir las leyes del pensamiento, pero estas leyes siempre han estado restringidas al pensamiento scientifico y muy especialmente el matemático, quedando fuera el sentido común. Esta deficiencia es admitida por los defensores de la lógica, pero ellos consideran que la lógica es la unica senda possibile para desarrollar programmi capaces de mostrar inteligencia.
Programación declarativa
En la programación declarativa lo principal no son las instructions que se dan en forma secuencial (programación prescriptiva), en su lugar, el programador se dedica a describir el problema a través de reglas y hechos que funcionan de forma independiente y es a través de un mecanismo de inferencia que se ejecutan las reglas.
En la programación declarativa las reglas (base de conocimientos) esta separada del programa de management (maquina de inferencia).
Ejemplo de programación declarativa:
Si Premisas entonces Conclusión
Si P entonces C
Donde:P y C instrucciones estaríamos en presencia de una representación procedimental.
P y C hechos aserciones estaríamos en presencia de una representación declarativa.
Ejemplo de representación procedimental
Si A1 = B1 y A2 > B2 entonces X := A1 + A2
Donde A1 = B1 y A2 > B2 son comparaciones que tomaran el valor de ¨verdadero¨ ¨falso¨.
sea que tendríamos:
Si P1 y P2 entonces C
donde P1 y P2 serian variables lógicas (darían verdadero falso)
Ejemplo de representación declarativa
Esto en cualquier lenguaje se haría de la siguiente forma:
X := Juan es un estudiante”
Y := Juan tiene 7 años”
if X = Juan es un estudiante” and Y = Juan tiene 7 años”
then Z := Juan esta en la primaria”
Veamos ahora la forma de formalizar los hechos aserciones
Ejemplo: Juan tiene 10 años de edad
1) religione tecnológica
edad(Juan, 10)
Ejemplo1: El león es un mamífero
es-un(leon, mamifero)
1)
2) gusta(maria, cine)
Veamos ahora algunos ejemplos donde se combinan los hechos en formas de reglas cláusulas:
si
y
entonces
1) si
2) vive(tiburon, en-agua) si vive(pez, en-agua) y es-un(pez, tiburon)
Observen que en prolog la conclusión se pone delante de las premisas
Representación en forma de reglas:
si Premisas entonces Conclusión
si
entonces
Donde la conclusión puede estar compuesta por varios hechos aserciones.
Representación en prolog:
Conclusión si Premisas
si
Donde la conclusión estará dada por un solo hecho aserción.
Ejercicio 1:
1. A María le gusta el tenis.
2. A Tomas le gusta el béisbol.
tre. A José le gustan los deportes que le gustan a Tomas.
1.
2.
S
Ejercicio 2:
si
y
Pubblicato da