Risoluzione effettiva dei problemi

Ogni problema di elaborazione d'informazione è caratterizzato da un insieme di dati di partenza e da un risultato ricercato, e ogni soluzione è una procedura che genera un risultato sulla base dei dati indicati. Ogni essere umano risolve quotidianamente problemi, pur senza essere in grado di descrivere quale procedura attua per giungere alla soluzione. Si pensi di dover spiegare a un altro soggetto, che non sa come si risolve il problema, il procedimento di soluzione da noi impiegato. Si deve allora procedere in fasi distinte e successive:

Le fasi del processo di soluzione di un problema

I calcolatori sono impiegati generalmente come esecutori di soluzioni che esseri umani hanno identificato e descritto. L'uomo per giungere alla descrizione della soluzione di un problema che sia accettabile per un esecutore, deve scomporre il problema in sottoproblemi, e questi in ulteriori sottoproblemi e cosi via, fino a giungere a problemi elementari. La soluzione di ognuno di questi problemi primitivi corrisponde a un'azione elementare che può essere compiuta da un esecutore. Risolvere il problema di partenza equivale quindi a risolvere un'opportuna successione di problemi più semplici. Una volta che tutti i sottoproblemi sono elementari rimane da fissane l'ordine di soluzione e il modo in cui un problema utilizza i risultati dei problemi che lo precedono.

Esempio di scomposizione di un problema: il calcolo della superficie di una figura complessa.

La soluzione di un problema si definisce effettiva allorché:

L'esecutore è quindi caratterizzato da:

Normalmente tra essere umani la soluzione ad un problema viene descritta in termini informali, che possono diventare però ambigui e quindi interpretabili. Tale ambiguità si manifesta quando due soggetti che giudicano come effettiva la stessa soluzione al problema compiono poi, di fatto, azioni che producono risultati differenti. Per rimuovere questa ambiguità, gli elementi che caratterizzano un esecutore devono essere definiti in modo formale.

  1. Il linguaggio che l'esecutore è in grado di interpretare deve essere definito in termini formali;

  2. l'insieme delle azioni che l'esecutore è in grado di compiere deve essere univocamente definito, e l' esecuzione di una stessa azione deve produrre sempre lo stesso risultato;

  3. l'insieme delle regole d'associazione tra costrutti del linguaggio e azioni deve essere univocamente definito.

Le soluzioni effettive per esecutori caratterizzati formalmente , sono chiamati algoritmi.
Quando l’esecutore è un calcolatore gli algoritmi vengono detti programmi, e il linguaggio formale impiegato nella loro descrizione viene chiamato linguaggio di programmazione.























































Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.