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) è separata dal programma di gestione (macchina di inferenza).
Esempio di programmazione dichiarativa:
Se Premesse allora Conclusione
Se P allora C
Dove:P e C istruzioni saremmo in presenza di una rappresentazione procedurale.
P e C fatti asserzioni saremmo in presenza di una rappresentazione dichiarativa.
Esempio di rappresentazione procedurale
Se A1 = B1 e A2 > B2 allora X := A1 + A2
Dove A1 = B1 e A2 > B2 sono confronti che assumeranno il valore di 'vero' o 'falso'.
saremmo nella situazione che avremmo:
Se P1 e P2 allora C
dove P1 e P2 sarebbero variabili logiche (darebbero vero o falso)
Esempio di rappresentazione dichiarativa
Questo in qualsiasi linguaggio si farebbe nel seguente modo:
X := Juan è uno studente
E := 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
allora
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
allora
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