Fondamenti di intelligenza artificiale ( A.I. )

a cura del prof. Pietro De Paolis

Storia dell'intelligenza artificiale

Gli antichi scienziati erano delle persone facoltose che avevano tempo per realizzare nuovi macchinari e ricevevano i soldi necessari da finanziatori che allora erano i politici al governo dello stato in cui vivevano. In Francia Biagio Pascal, nel 1600, fu un filosofo all'antica, cioè uno che si poneva problemi filosofici, studiava la psicologia, la matematica, la scienza e la tecnica. Infatti realizzò un piccolo macchinario in grado di fare dei calcoli matematici.

In Inghilterra nel 1800 Carlo Babbage costruì un macchinario in grado di fare delle operazioni matematiche più complesse come i logaritmi e le funzioni trigonometriche.

Tralasciando questi esordi un primo macchinario di larga diffusione furono le calcolatrici tascabili costruite e commercializzate da Texas Instruments ed  HP (Bill Hewlett- David Packard) negli anni 1970 e da altre case costruttrici fino ai nostri giorni. In queste calcolatrici vi erano già dei microprocessori, cioè dei circuiti elettronici in grado non solo di fare delle operazioni matematiche ma anche delle operazioni di confronto.

Il microprocessore rappresenta, quindi, la prima macchina in grado di fare delle operazioni logiche, cioè confrontare due o più eventi e scegliere che cosa fare in base agli eventi che si verificano. Il microprocessore si trova sia nei computer moderni e sia negli smartphone.

Modulo di memoria tipo SIMM

 

La struttura di un microprocessore si basa su di una memoria interna, cioè un circuito elettronico in grado di memorizzare dei dati e dei programmi.

Schema a blocchi di un generico microprocessore

I programmi sono una serie di istruzioni che comandano i circuiti elettronici interni del microprocessore. In particolare i circuiti fondamentali sono:

1) sommatore; è un circuito elettrico reale costruito con diodi e transistor al silicio in grado di fare operazioni di sola somma aritmetica tra due numeri binari. Questo circuito dà in uscita la somma di questi numeri; la somma viene poi memorizzata nella memoria. Ma anche i numeri di cui fare la somma, cioè i due addendi, vengono memorizzati nella memoria interna del microprocessore, detta cache.

2) multiplexer - Il multiplexer è un circuito elettronico costituito da diodi e transistor, in grado di trasportare dei dati da una parte all'altra dei vari circuiti che costituiscono il microprocessore; in pratica un addendo che sta in memoria viene spostato, mediante un multiplexer, in una piccola memoria del processore, detta registro, in cui mettiamo un primo addendo. Analogamente per il secondo addendo. Il risultato della somma viene poi spostato in memoria. La tecnica dello spostamento dei dati avviene anche per vedere all'esterno del macchinario elettronico i risultati. Per esempio se sposto i dati dal microprocessore allo schermo, vedo i risultati sul monitor; se sposto i dati sulla stampante vedo i risultati sulla carta.

3) operazioni logiche. Sono compiute da circuiti elettronici fondamentali detti AND OR NOT ecc. Questi circuiti sono proprio la base della intelligenza artificiale. Per esempio il circuito detto AND riceve in ingresso due o più eventi che si sono verificati e dà in uscita il consenso se gli eventi in ingresso sono tutti veri; altrimenti nega il consenso. Invece il circuito detto OR riceve in ingresso due o più eventi che si sono verificati e dà in uscita il consenso se almeno uno degli eventi in ingresso si è verificato; altrimenti nega il consenso. Questi due circuiti logici sono circuiti elettrici reali esistenti nel microprocessore; essi poi vengono usati nei linguaggi ad alto livello dai programmatori del computer o dello smartphone.

Risulta evidente che lo stato dell'arte della intelligenza artificiale è molto avanzato; cioè l'equivalente dei neuroni del cervello umano sono proprio queste due porte logiche fondamentali. In quanto l'esperienza umana dimostra che ogni persona prende delle decisioni in ogni momento sia per i movimenti del proprio corpo e sia per le iniziative da prendere a breve periodo e a lungo periodo. Queste decisioni vengono prese analizzando eventi reali succeduti nel tempo nel singolo individuo. Se l'individuo non ha tempo per riflettere, cioè deve decidere di istinto, usa una decisione già presa in precedenza, senza pensarci. Nel caso, invece, la decisione deve essere presa in tempi successivi, cioè riflettendo, l'individuo prepara una soluzione agli eventi basandosi sia sugli eventi passati, cioè sull'istinto, e sia ipotizzando scenari futuri con le varie decisioni che si prenderebbero.

Questi due modi di procedere, istinto e riflessione, i microprocessori attuali li consentono già. Il grosso problema che resta per l'intelligenza artificiale è stato quello di quale linguaggio di programmazione utilizzare per l'intelligenza artificiale.

Un linguaggio storico di programmazione è stato il LISP, ideato ed usato dall'americano Giovanni McCarthy a partire dal 1960. Altri linguaggi di programmazione, tipo il LOGO, sono stati usati e vengono ancora usati. A mio avviso non ha senso utilizzare altri linguaggi di programmazione, oltre quelli esistenti, in quanto tutti i linguaggi di programmazione fanno uso delle due porte logiche reali esistenti nel microprocessore, cioè la AND e la OR. Invece va scelto un linguaggio di programmazione che sia veloce e portatile, cioè usabile sia nei grandi server che nei piccoli smartphone. Io, personalmente, ho scelto il linguaggio PHP, proprio perché è veloce.

Il nostro sito, infatti, è molto veloce proprio perché usiamo il PHP e perché non usiamo il classico database Mysql. Il PHP viene eseguito sui server del provider, cioè il fornitore di servizi di connessione ad Internet, che offre anche l'hosting, cioè dei potenti computer che eseguono il programma scritto in PHP e trasmettono in tempo reale le decisioni sul personal computer individuale o sullo smartphone. Ormai le reti 4G dello smartphone raggiungono velocità di trasmissione superiori a quelle realizzabili anni fa mediante doppino telefonico (ADSL) o fibra ottica.

Importante è non usare i data base generici per l'intelligenza artificiale; il data base è un archivio in cui memorizzare le decisioni prese in precedenza, cioè usare l'istinto; oppure in cui memorizzare una serie di scenari futuri generati dalla riflessione artificiale. I normali data base usati nei server sono stupidi, cioè non fanno una ricerca adatta per l'intelligenza artificiale; per cui diventano lenti in quanto contengono miliardi di informazioni inutili, tra cui cercare quelle poche informazioni utili al programmatore dell'intelligenza artificiale.

 

Corso di intelligenza artificiale in PHP

 

 

prof. Pietro De Paolis

Indice Scuola Elettrica - generico


Scuola Elettrica



 

Altre applicazioni


Mappa per tipo di scuola

 

Indice di tutte le pagine del sito


Guida per navigare


Richiesta informazioni


Scuola Elettrica