Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

Dal problema all'algoritmo

SUPERIORE
Successiva

I problemi

Gli eventi che richiedono un impegno fisico e/o "intellettuale" da parte dell'uomo
InesistentiImpossibili: non esiste la soluzione
Intrattabili: le risorse (tempo, spazio, ...) necessarie per ottenere la soluzione sono "proibitive"
Improponibili: nessuno č disposto a perderci tempo (...)
BanaliEsiste un dispositivo "dedicato" adatto allo scopo
Interessanti?

Un'istanza di un problema č un caso specifico del problema stesso (sono fissati i dati del problema).

Gli esecutori

L'uomo sogna, da sempre, un sostituto per avere (senza sforzo o in poco tempo) le risposte per ogni istanza di un problema (di ogni problema…).
MacchineAscensore, Calcolatrice
AutomiPianola
RobotMetropolis, Terminator, ...
CyborgRobocop

Un problema č computabile (calcolabile) se esiste un esecutore che, in tempo finito, produce le risposte corrispondenti a qualsiasi istanza.

Sistemi di calcolo

Stephen KleeneFunzioni ricorsive (parziali)
Emil PostSistemi di riscrittura (sistemi formali)
Alonso ChurchLambda calcolo
Alan TuringMacchina di Turing
John Von NeumannMacchina a registri

I primi tre esecutori sono dei sistemi di calcolo astratti (matematici) che permettono di calcolare le risposte applicando delle regole ad un insieme iniziale di formule che rappresentano il problema…

La macchina di Turing e la macchina a registri sono dei dispositivi "fisici" che bisogna costruire volta per volta a seconda del problema da risolvere.

Se si definisce un insieme minimo di istruzioni riconosciute (ed eseguite) da queste macchine allora diventano dei sistemi di calcolo universali: un problema deve essere trasformato in una sequenza di istruzioni che costituiranno l'algoritmo risolutivo, il programma da eseguire.

Č stato dimostrato che le classi dei problemi computabili dai diversi sistemi di calcolo, finora proposti, sono equivalenti.

Tesi di Church

La classe dei (di tutti i) problemi computabili coincide con quella della macchina di Turing (con una qualsiasi delle precedenti...)

Algoritmo

bulletUna macchina di Turing che per ogni istanza del problema in esame restituisce, in tempo finito, le risposte attese.
bulletUn programma per una macchina di Turing universale tale che …
bulletUn programma, in forma "comprensibile" per una macchina programmabile qualsiasi, tale che…
bulletUn programma espresso in forma "comprensibile" per l'uomo tale che…

La rappresentazione degli algoritmi

Diagramma di statoStati, transizioni
Programma per la MdTQuintuple
Programma a saltiJump, Branch, Goto
Diagramma di flussoIstruzioni, decisioni
Programma strutturatoLinguaggio di alto livello

Dal problema all'algoritmo - ApPuNtIdIuNiNfOrMaTiCo

Home • ECDL • Algoritmi • Java • Basi di dati • Seconda prova • Eccetera • Cerca nel sito

SUPERIORE
Successiva