16
Gli Algoritmi L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito.

Gli Algoritmi

  • Upload
    page

  • View
    32

  • Download
    2

Embed Size (px)

DESCRIPTION

Gli Algoritmi. L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito. Analizziamo ora le diverse componenti della frase. - PowerPoint PPT Presentation

Citation preview

Page 1: Gli Algoritmi

Gli Algoritmi

L’algoritmo è un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito.

Page 2: Gli Algoritmi

Analizziamo ora le diverse componenti della frase

Un insieme ordinato Un algoritmo è un insieme di operazioni, per le quali deve esistere un ordinamento chiaro e non ambiguo. Ciò significa che sappiamo quale operazione eseguire per prima e quale eseguire dopo averne completata una. Dobbiamo essere estremamente precisi nello specificare l’ordine in cui le operazioni devono essere eseguite.

Page 3: Gli Algoritmi

Non ambigueLe operazioni utilizzate in un algoritmo devono soddisfare due criteri: essere non ambigue ed essere effettivamente computabili. Un’operazione è non ambigua quando può essere compresa ed eseguita direttamente dall’agente di calcolo senza necessità i ulteriori semplificazioni o spiegazioni(detta primitiva).

Page 4: Gli Algoritmi

Effettivamente computabiliTuttavia, non è sufficiente che un’operazione sia comprensibile. Deve anche essere eseguibile dall’agente di calcolo. Eseguibile significa che deve esistere un processo computazionale che consente all’agente di calcolo di completare l’operazione con successo.

Page 5: Gli Algoritmi

Che produce un risultato gli algoritmi risolvono problemi. Perché sia possibile determinare se una soluzione è corretta, l’algoritmo deve produrre un risultato osservabile da un utente, come un valore numerico, un nuovo oggetto o una modifica dell’ambiente. Utilizziamo la parola risultato invece che la parola risposta. Talvolta un algoritmo non può fornire la risposta corretta, perché per un dato input, tale risposta non esiste. In questi casi l’algoritmo può produrre qualcos’altro, come un messaggio di errore, una luce rossa d’avvertimento, o un’approssimazione della risposta corretta (risultati osservabili).

Page 6: Gli Algoritmi

E termina in un tempo finitoun’altra importante caratteristica degli algoritmi è che devono produrre il risultato dopo l’esecuzione di un numero finito di operazioni; dobbiamo garantire che l’algoritmo alla fine raggiungerà un’istruzione del tipo: «stop, ho finito». Quindi alla fine l’algoritmo si dovrà arrestare

Page 7: Gli Algoritmi

Risoluzione algoritmica dei problemi

Il dispositivo dovrebbe eseguire meccanicamente le istruzioni e completare con successo il compito senza la necessità di comprendere i processi che hanno portato a scoprire la soluzione. Il robot si limita a eseguire i passi nell’ordine specificato , completando con successo ciascuna operazione e alla fine producendo il risultato desiderato in un tempo finito. Tutto questo grazie a una rivoluzione informatica è eseguito dai computer, che è molto più efficiente di quel particolarissimo agente di calcolo che è il cervello umano.

Page 8: Gli Algoritmi

Top-down e Bottom-up

• La programmazione top-down è uno stile di programmazione in cui la progettazione inizia specificando parti complesse e suddividendole successivamente in parti più piccole (divide et impera).

• Il bottom up prende corpo dal punto di partenza (bottom) ovvero dalla situazione iniziale; considera l'obiettivo finale, induce a costruire un percorso sequenziale organizzato in passaggi successivi in cui l'ancoraggio tra traguardi intermedi e obiettivo finale è generalmente ricercato in modo intuitivo.

Page 9: Gli Algoritmi

Esempi di algoritmo

Page 10: Gli Algoritmi

Gli algoritmi vengono raggruppati e catalogati a seconda della loro funzione o delle tecniche utilizzate per realizzarli, tuttavia una catalogazione rigorosa e completa è ormai diventata impossibile.

Alcuni tipi di algoritmo • Algoritmi di ordinamento• Algoritmi di ricerca • Genetici evolutivi• Swarm Intelligence• Ricorsivi• Algoritmo combinatorio• Codice automodificante• Conversione e codifica • Algoritmi di compressione: senza perdita di informazioni e con perdita di informazioni

Molte categorie di algoritmi sono strettamente legate all'organizzazione dei dati in memoria (strutture dati).Altri algoritmi• Algoritmi quantistici• Algoritmo apriori• Algoritmo di Berger• Algoritmo di Sturm• Algoritmo online• Algoritmo di pitch detection

Page 11: Gli Algoritmi

Risoluzione degli algoritmi

Gli algoritmi possono essere espressi in diverse forme• linguaggio naturale• in forma grafica• utilizzando i costrutti di un linguaggio di programmazione.

I Programmi descrivono gli algoritmi in termini di sequenze di istruzioni scritte in un opportuno linguaggio di programmazione, comprensibile al calcolatore.

Compito del programmatore:• Individuare la sequenza di passi che portano alla soluzione del problema e

produrre il relativo algoritmo• Codificare l'algoritmo in un programma

Page 12: Gli Algoritmi

Per costruire un programma Per costruire un programma sono necessari tre tipi di meccanismi di strutturazione:• struttura di sequenza che permette di comporre istruzioni ed eseguirle

una di seguito all'altra; ha un solo ingresso ed una sola uscita.• struttura condizionale che permette di eseguire una sola istruzione tra

due o più istruzioni, in base al valore di un'espressione booleana.• struttura di iterazione che permette di eseguire ripetutamente

un'istruzione sotto il controllo di un'espressione booleana.

Page 13: Gli Algoritmi

Bubble sort (algoritmo di ordinamento)

Il suo funzionamento è semplice: ogni coppia di elementi adiacenti della lista viene comparata e se essi sono nell'ordine sbagliato vengono invertiti. L'algoritmo scorre poi tutta la lista finché non vengono più eseguiti scambi, situazione che indica che la lista è ordinata.

Page 14: Gli Algoritmi

Quicksort

Quicksort è un algoritmo di ordinamento ricorsivo che si basa sul paradigma divide et impera.

Page 15: Gli Algoritmi

esempio di Quicksort

Page 16: Gli Algoritmi

es esempio di Bubble sort