Algoritmo: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica Etichette: Annullato Modifica da mobile Modifica da web per mobile |
Nessun oggetto della modifica Etichette: Annullato Modifica da mobile Modifica da web per mobile |
||
Riga 92:
dove <math>D \pi</math> sono le istanze del problema e <math> S \pi </math> sono le soluzioni e <math>\forall x \in D \pi:f \pi (x) </math> sia una soluzione al problema per l'istanza x.
=== Studio della complessità computazionale di un algoritmo ===Esistono numerosi modelli matematici di algoritmo. In generale, un algoritmo riceve un insieme di valori (dati) in input e ne genera uno in output (chiamato soluzione). Dato dunque un algoritmo A si denota con fA la funzione che associa a ogni ingresso x di A la corrispondente uscita.
Questa corrispondenza tra input e output non rappresenta il problema risolto dall'algoritmo. Formalmente, un problema è una funzione
�
(
�
�
)
→
�
�
f(D_{i})\to D_{s} definita su insieme Di di elementi che chiameremo restanze, a valori su un insieme Ds di risoluzioni.
Lo studio di un algoritmo viene suddiviso in due fasi:
sintesi (detta anche disegno o progetto): dato un problema A, costruire un algoritmo f per risolvere A, cioè tale che f=fa.
analisi: dato un algoritmo f e un problema A, dimostrare che f risolve A, cioè f=fa (correttezza) e valutare la quantità di risorse usate da f (complessità concreta).
{{vedi anche|Teoria della complessità computazionale}}
|