Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Nozioni Fondamentali
1
Problema Computazionale
Un problema computazionale ⇧ è una relazione tra un insieme I di
istanze (input) ed un insieme S di soluzioni (output), ovvero:
⇧✓I ⇥S
con l’ulteriore vincolo che per ogni istanza i 2 I esista almeno una
soluzione s 2 S tale che (i, s) 2 ⇧.
Osservazioni
4
Algoritmo e Modello di Calcolo
Definizione
Un algoritmo è una procedura computazionale ben definita che
transforma un dato input in un output eseguendo una sequenza
finita di passi elementari. L’algoritmo fa riferimento a un modello
di calcolo (o modello di computazione), ovvero un’astrazione di
computer che definisce l’insieme di passi elementari.
Il modello di calcolo più utilizzato è il modello RAM1 (Random
Access Machine)
6
Esempio di Pseudocodice
Algoritmo Transpose(A)
Input: matrice A n ⇥ n
Output: matrice AT (trasposta)
i 0; j 1;
while i < n 1 do
scambia A[i, j] e A[j, i];
if j = n 1 then i i + 1; j i + 1;
else j j + 1;
return A