prolog

prolog2

Il Prolog è impiegato in molti programmi di intelligenza artificiale, la sua sintassi e la semantica sono molto semplici e chiare (lo scopo primitivo era quello di fornire uno strumento di lavoro a linguisti privi di conoscenze informatiche).
Il Prolog si basa sul calcolo dei predicati (precisamente il calcolo di predicati del primo ordine); tuttavia la sintassi è limitata a formule dette clausole di Horn che sono disgiunzioni di letterali del primo ordine quantificate universalmente con al più un letterale positivo.
L’esecuzione di un programma Prolog è comparabile alla dimostrazione di un teorema mediante la regola di inferenza detta risoluzione (introdotta da Robinson nel 1965). I concetti fondamentali sono l’unificazione, la ricorsione in coda e il backtracking.

backtracking e prolog
——————
Il backtracking (in italiano, ritorno all’indietro) è una tecnica per trovare soluzioni a problemi in cui devono essere soddisfatti dei vincoli. Questa tecnica enumera tutte le possibili soluzioni e scarta quelle che non soddisfano i vincoli.
Una tecnica classica consiste nell’esplorazione di strutture ad albero e tenere traccia di tutti i nodi e i rami visitati in precedenza, in modo da poter tornare indietro al più vicino nodo che conteneva un cammino ancora inesplorato nel caso che la ricerca nel ramo attuale non abbia successo. I nodi a profondità uguale rappresentano i possibili valori di una variabile.
Una applicazione del backtracking è nei programmi per giocare a scacchi, che generano tutte le mosse possibili per una profondità di N mosse a partire da quella attuale e poi esaminano con il backtracking le varie alternative, selezionando alla fine quella migliore.

Tipi di inferenza
————–
Deduttiva: si deriva una conclusione che è latente, implicita, prevista nelle premesse (l’informazione di cui siamo in possesso).
Induttiva: la conclusione aggiunge informazione alle premesse, non è una conseguenza logica delle premesse; caso tipico: la generalizzazione

Inferenze inconsce
• Il padre del mio amico è anche il padre di sua sorella
• Un triangolo ha tre lati
• Il libro che leggo ora è lo stesso che leggevo ieri
• Il mio vicino di casa è anche la persona che si muove al piano di sopra

Il metodo deduttivo o deduzione
—————————
Il metodo deduttivo o deduzione è il procedimento razionale che fa derivare una certa conclusione da premesse più generiche, dentro cui quella conclusione è implicita.
L’introduzione del concetto di deduzione si deve ad Aristotele (384 a.C.-322 a.C.), il quale lo identificava sostanzialmente con il sillogismo. Da questa identificazione deriva l’interpretazione tradizionale, accettata fino ai tempi moderni, secondo la quale il procedimento di deduzione consente di partire da una legge universale per giungere a conclusioni particolari. Il procedimento contrario viene chiamato induzione, che viceversa muove dal particolare all’universale.
Un esempio di sillogismo aristotelico è il seguente: «Tutti gli uomini sono mortali; Socrate è un uomo; dunque Socrate è mortale».
La differenza tra ragionamento deduttivo e induttivo non esiste sul piano pratico, essendo solo una speculazione sofistica di tipo filosofico. Tutti i ragionamenti sono induttivi, anche quelli matematici, altrimenti non sono “ragionamenti” ma conclusioni tautologiche, del tutto prive di contenuto.
Ma se il ragionamento che “produce conoscenza” è solo induttivo, si potrebbe in sostanza dire che l’induzione non è altro che una deduzione basata sull’osservazione dei fatti o su un’esperienza personale.