Algoritmi.

Slides:



Advertisements
Presentazioni simili
Premessa: si assume di aver risolto (correttamente
Advertisements

CORSO DI RECUPERO CONTROLLI AUTOMATICI Prof. Filippo D’Ippolito
Algoritmi e Strutture Dati
Punti Fissi.
INFORMATICA Algoritmi fondamentali
I numeri naturali ….. Definizione e caratteristiche
Sistema di riferimento sulla retta
/ fax
Il linguaggio della Matematica: Insiemi e operazioni
Scomposizione funzionale
Informatica Generale Marzia Buscemi
Informatica Generale Susanna Pelagatti
Fondamenti di Informatica I CDL in Ingegneria Elettronica - A.A CDL in Ingegneria Elettronica - A.A Il Problema dellordinamento.
8. Problemi ricorrenti: ordinamento e ricerca Ing. Simona Colucci
1 Istruzioni, algoritmi, linguaggi. 2 Algoritmo per il calcolo delle radici reali di unequazione di 2 o grado Data lequazione ax 2 +bx+c=0, quali sono.
Reaching Definitions. Tino CortesiTecniche di Analisi di Programmi 2 Reaching definitions Dato un punto del programma, quali sono i comandi di assegnamento.
Interpretazione Astratta
Esercitazioni su circuiti combinatori
Capitolo 4 Ordinamento Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie di analisi.
PROGRAMMI DI RICERCA E ORDINAMENTO
EPA 01/02 VIII /1 Analisi delle relazioni tra produzione, trasformazione e distribuzione in un sistema connesso verticalmente.
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Algoritmi e Strutture Dati Capitolo 2 Modelli di calcolo e metodologie.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 9 Il problema della gestione di insiemi disgiunti (Union-find) Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Capitolo 4 Ordinamento: Selection e Insertion Sort Algoritmi e Strutture Dati.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
Corso di Informatica (Programmazione)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Economia politica II – Modulo di Macroeconomia
ALGORITMI E PROGRAMMAZIONE STRUTTURATA
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
La rappresentazione dellinformazione. 7-2 Digitalizzare linformazione Digitalizzare: rappresentare linformazione per mezzo di cifre (ad es: da 0 a 9)
Unità Didattica 1 Algoritmi
Strutture di controllo in C -- Flow Chart --
Fondamenti di Informatica Algoritmi
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Analisi di Immagini e Dati Biologici
Elementi di Informatica
ELEMENTI DI PROGRAMMAZIONE
Elementi di Informatica di base
Sistemi e Tecnologie Informatiche
Algoritmi e Programmazione strutturata
Scheda Ente Ente Privato Ente Pubblico. 2ROL - Richieste On Line.
INFORMATICA MATTEO CRISTANI.
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Bando Arti Sceniche. Per poter procedere è indispensabile aprire il testo del Bando 2ROL - Richieste On Line.
1 Questionario di soddisfazione ATA - a. sc. 2008/09 Il questionario è stato somministrato nel mese di aprile Sono stati restituiti 29 questionari.
TRASFORMAZIONI GEOMETRICHE
1101 = x 10 x 10 x x 10 x = CORRISPONDENZE
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
1Piero Scotto - C14. Finalità del corso Programma Materiale Requisiti Spendibilità 2Piero Scotto - C14.
1 Guida per linsegnamento nei corsi per il conseguimento del CERTIFICATO DI IDONEITÀ ALLA GUIDA DEL CICLOMOTORE.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 13 Marzo 2014.
DIVERTIRSI CON SCRATCH
La quantità chimica LA MOLE La quantità chimica:la mole.
IL GIOCO DEL PORTIERE CASISTICA. Caso n. 1 Il portiere nella seguente azione NON commette infrazioni.
La ricorsione.
Algoritmi.
Algoritmi e Programmazione (in C) Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Problemi, algoritmi e programmazione
Corsi di Laurea in Biotecnologie
GLI ALGORITMI DI ORDINAMENTO
Il computer ragiona? Problemi e algoritmi. Paola Pianegonda2 Cos’è un problema?  Problema è qualsiasi situazione della quale non conosciamo la soluzione.
Informatica Problemi e algoritmi. una situazione che pone delle domande cui si devono dare risposte. Col termine problema o situazione problematica s’indica.
Dal problema al programma – ciclo di sviluppo del software La scrittura del programma è solo una delle fasi del processo di sviluppo di un'applicazione.
Transcript della presentazione:

Algoritmi

Algoritmo Un metodo preciso e sistematico per ottenere uno specifico risultato Ne abbiamo già incontrati diversi: riconoscimento del clic di un pulsante la tecnica del segnaposto conversione esadecimale/binario e viceversa

Algoritmi nella vita quotidiana alcuni li abbiamo imparati a scuola – per esempio le operazioni aritmetiche alcuni li abbiamo ricostruiti da soli – come la ricerca di un numero telefonico altri hanno istruzioni scritte – le ricette di cucina, le istruzioni di assemblaggio dei mobili, le mappe stradali...

Le cinque proprietà essenziali degli algoritmi Input specificato i dati che saranno trasformati attraverso i calcoli per produrre l’output devono specificare il tipo, la quantità e la forma che dovranno avere i dati Output specificato il risultato della computazione talvolta è possibile non avere alcun output

Le cinque proprietà essenziali degli algoritmi (cont.) 3. Determinatezza la sequenza degli eventi dev’essere specificata ogni passo dev’essere descritto in ogni suo aspetto, inclusa la gestione degli errori 4. Efficacia le operazioni devono essere effettivamente eseguibili da parte dell’agente 5. Terminazione l’elaborazione deve giungere al termine in un tempo finito

Algoritmi e linguaggi Linguaggio naturale Linguaggi di programmazione utilizzato dalle persone: noi usiamo un linguaggio naturale come l’italiano l’ambiguità è comune nei linguaggi naturali Linguaggi di programmazione linguaggi formali progettati per esprimere algoritmi hanno una definizione precisa; non ci sono ambiguità

Programmi e algoritmi Un programma è un algoritmo concepito per operare in un determinato insieme di circostanze ed espresso in un particolare linguaggio

Un algoritmo: Ordina CD Immaginate dei CD disposti in modo disordinato su uno scaffale Volete ordinarli alfabeticamente in base al nome del gruppo, del cantante o del compositore Come risolvere questo problema?

Ordina CD (cont.) Input: una sequenza non ordinata di CD che riempie una scaffalatura Output: gli stessi CD nella stessa scaffalatura, ordinati alfabeticamente Istruzioni: Usiamo il termine Artista per riferirci al nome del gruppo, del cantante o del compositore di un CD Decidete quale estremo della rastrelliera corrisponde all’inizio della sequenza alfabetica e chiamate Alfa la prima posizione di quell’estremo Chiamate Beta la posizione immediatamente adiacente ad Alfa

Ordina CD (cont.) 4. Se l’Artista del CD nella posizione Beta precede alfabeticamente l’Artista del CD nella posizione Alfa scambiate i due CD; in caso contrario continuate. 5. Se c’è ancora almeno un posto dopo Beta, consideratela la nuova posizione Beta e tornate all’istruzione 4; in caso contrario continuate. 6. Se ci sono due o più posti dopo Alfa, considerate quello immediatamente successivo come nuova posizione Alfa e quello ancora dopo come nuova posizione Beta e saltate all’istruzione 4; in caso contrario l’esecuzione è terminata.

Istruzione 1 Usiamo il termine Artista per riferirci al nome del gruppo, del cantante o del compositore di un CD Questo passo assegna un nome all’operazione utilizzata per determinare il nome in base a cui sarà effettuato per l’ordinamento

Istruzione 2 Decidete quale estremo della rastrelliera corrisponde all’inizio della sequenza alfabetica e chiamate Alfa la prima posizione di quell’estremo Dà un punto di partenza al processo e definisce Alfa. All’inizio, Alfa si riferisce alla prima posizione nella sequenza alfabetica; man mano che l’esecuzione prosegue, il nome fa riferimento a posizioni successive

Istruzione 3 Chiamate Beta la posizione immediatamente adiacente ad Alfa Dà un significato iniziale a Beta. Alfa e Beta non hanno un significato intrinseco; sono i termini scelti per indicare due posizioni sullo scaffale

Istruzione 4 Se l’Artista del CD nella posizione Beta precede alfabeticamente l’Artista del CD nella posizione Alfa scambiate i due CD; in caso contrario continuate. Questa è l’istruzione che svolge la gran parte del lavoro. L’istruzione confronta i nomi degli artisti che caratterizzano i CD in Alfa e Beta e, se necessario, li scambia in modo che siano nell’ordine corretto

Istruzione 5 Se c’è ancora almeno un posto dopo Beta, consideratela la nuova posizione Beta e tornate all’istruzione 4; in caso contrario continuate. Ridefinisce Beta in modo che il nome si riferisca alla posizione successiva nella sequenza, se esiste.Con questa nuova definizione di Beta è possibile eseguire nuovamente l’Istruzione 4, confrontando una diversa coppia di CD

Istruzione 6 Se ci sono due o più posti dopo Alfa, considerate quello immediatamente successivo come nuova posizione Alfa e quello ancora dopo come nuova posizione Beta e saltate all’istruzione 4; in caso contrario l’esecuzione è terminata. Quando arriviamo a quest’istruzione, il CD che precede tutti gli altri si trova in Alfa. Possiamo far avanzare Alfa di un posto e percorrere ancora tutti i CD, localizzando il CD che precede alfabeticamente tutti gli altri. Quando non ci sono più due posti per definire le posizioni Alfa e Beta, l’intera scaffalatura è stata ordinata e l’algoritmo termina

Analisi dell’algoritmo Ordina CD Illustra le cinque caratteristiche base degli algoritmi Gli input e gli output sono specificati Ogni istruzione è definita in modo preciso (determinatezza) Le operazioni sono efficaci perché semplici e meccanicamente eseguibili L’ordinamento alfabetico è meccanico, così il nostro algoritmo è efficace Il requisito di terminazione è soddisfatto: dato che con un numero finito di posti esiste un numero finito di coppie distinte, le istruzioni 4, 5 e 6 non possono essere ripetute all’infinito

Un’analisi più approfondita Caratteristiche strutturali due istruzioni, 5 e 6, in cui l’agente deve ripetere azioni già eseguite. In questi casi si dice che l’algoritmo presenta un ciclo Cicli e test Un ciclo deve includere un test per determinare se le istruzioni devono essere ripetute ancora una volta Ipotesi di partenza Ipotizziamo che lo scaffale sia pieno di CD (senza spazi vuoti) la parola "dopo" significa lo slot più lontano dal punto iniziale

L’algoritmo di ordinamento per scambio L’esempio Ordina CD illustra un algoritmo standard chiamato ordinamento per scambio confronta coppie di oggetti scelti in modo particolare, li scambia se non sono ordinati e prosegue considerandoli tutti uno dopo l’altro possiamo usare lo stesso algoritmo con un diverso criterio di ordinamento

L’astrazione nel pensiero algoritmico Possiamo considerare alcune parti del comportamento di un algoritmo come unità funzionali piuttosto che come singole istruzioni

Astrazione della scansione Beta Le istruzioni 4 e 5 illustrano l’idea di un’unità computazionale, che chiameremo scansione Beta l’operazione consiste nello scandire nell’ordine tutti i CD che seguono una specifica posizione Alfa mentre Alfa rimane in una posizione fissa per tutta la scansione, Beta visita ogni posizione successiva ad Alfa, confrontando i CD e scambiandoli quando necessario il suo effetto è trovare il CD successivo nell’ordinamento e di spostarlo nella posizione Alfa

Astrazione della scansione Alfa Alfa percorre lo scaffale a partire dalla posizione in cui comincia l’ordinamento e occupa tutte le posizioni (tranne l’ultima) eseguendo a ogni iterazione le istruzioni della scansione Beta

Proprietà della scansione Alfa Esaustiva. Prende in considerazione tutti i CD dalla prima posizione all’ultima (esclusa) Non ridondante. Nessun posto è assegnato ad Alfa più di una volta. Ne consegue che il processo termina se la scansione Beta termina Progressiva. Alla fine di ogni scansione Beta, il CD che segue immediatamente nell’ordinamento tutti quelli già ordinati si trova nella posizione Alfa Completa. Quando l’ultima scansione Beta è completata, il CD nell’ultima posizione segue quello nella penultima Risolutiva. Il CD che precede alfabeticamente tutti gli altri si trova nel primo posto dello scaffale, in virtù della proprietà 4 e del fatto che sono stati presi in considerazione tutti i CD. Per ogni nuova posizione di Alfa, Beta assegna il CD immediatamente successivo nell’ordinamento. Ne segue che il programma esegue correttamente un ordinamento alfabetico.

Astrazioni per altri algoritmi e programmi Le astrazioni delle scansioni Alfa e Beta si applicano specificatamente all’algoritmo di ordinamento di scambio e ai programmi da esso derivati Altri algoritmi e programmi si comportano diversamente e richiedono astrazioni differenti, con altre caratteristiche Ogni situazione è diversa, ma l’approccio – astrazione del comportamento e analisi delle proprietà – è sempre lo stesso