Introduzione al Corso di Algoritmi
|
|
- Maria Rocco
- 6 anni fa
- Visualizzazioni
Transcript
1 Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè lo studeriemo, come lo studieremo,... Un esempio illustrativo di cosa studeriemo Informazione pratiche sul corso: - Cosa c è di nuovo (il nome del corso, per incominciare...) - Modalità di esame (e come superarlo brillantemente) - Materiale didattico (libri di testo, materiale di supporto, esercizi di esame...) - Altro... Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 1/26
2 Corso di Algoritmi Obiettivi del corso: Fornire metodologie per il progetto ed analisi di algoritmi Cosa studieremo? - Tecniche generali per lo sviluppo di algoritmi efficienti atti a risolvere problemi computazionali - Strumenti per la valutazione degli algoritmi Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 2/26
3 Perchè studiare algoritmi? Concetti e tecniche algoritmiche pervadono l intera Informatica (e ben oltre...) Trasmissione dati in Internet (come si gestisce in pratica il flusso di dati nei vari router della rete?) Ricerca nel WEB (come fà Google a trovare le informazioni nel WEB?) Bioinformatica (come il DNA determina le nostre caratteristiche?) Processi economici (come si gestiscono le aste on-line su Ebay?, come si effettua la compravendita di azioni su Internet?) Organizzazione di risorse e servizi (come si schedulano i voli delle aerolinee? Come si assegnano le frequenze nelle celle delle reti cellulari?) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 3/26
4 Iniziamo con Un pó di storia... Il termine Algoritmo deriva dal matematico Persiano al-khowârizmî (c ), autore del testo Al-jabr w al-muqabâla (da cui anche il termine Algebra) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 4/26
5 Un altro pó di storia... Algoritmi di tipo numerico furono studiati da matematici babilonesi ed indiani piú di di 3000 anni fá. Algoritmi in uso fino a tempi recenti furono studiati dai matematici greci 500 anni a.c. Esempio: Algoritmo di Euclide per il Massimo Comun Divisore Esempio: Algoritmi geometrici (calcolo di tangenti, sezioni di angoli,...) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 5/26
6 Ma cos é un Algoritmo? Algoritmo: procedura computazionale che prende certi valori in input e produce i valori richiesti in output Algoritmo: strumento per risolvere un Problema Computazionale Il Problema computazionale é definito da una relazione input/output Un algoritmo é quindi una procedure computazionale per ottenere la desiderata relazione input/output Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 6/26
7 Esempi di Problemi Computazionali Problema dell Ordinamento: Input: sequenza di numeri a 1,...,a n Output: una permutazione a 1,...,a n dell input tale che a 1... a n Algoritmo di Ordinamento: procedura che prende in input a 1,..., a n e produce in output a 1... a n Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 7/26
8 Esempi di Problemi Computazionali Problema della ricerca di un elemento: Input: Tabella A[1...n] ed elemento x Output: intero i, se x = A[i] per qualche indice i, un messaggio Non c é", altrimenti. Algoritmo di Ricerca: procedura che prende in input A[1...n] ed elemento x, e produce in output i se x = A[i], Non c è altrimenti. Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 8/26
9 Abbiamo detto che studieremo Algoritmi Efficienti Cosa intendiamo per Algoritmi Efficienti? Algoritmi Efficienti = Algoritmi che usano "poche" risorse Risorse = Tempo e Spazio richiesto dall algoritmo per produrre l output Problema 1: Come misurare le risorse usate da un algoritmo? (Analisi degli algoritmi) Problema 2: Come progettare algoritmi che usano "poche" risorse? (Tecniche generali per il progetto di algoritmi) Lo vedremo... Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 9/26
10 Motivazioni Perché occuparci di algoritmi efficienti? Perchè algoritmi efficienti conducono a programmi efficienti Perchè programmi efficienti si vendono meglio... Perchè programmi efficienti fanno un miglior uso dell hardware Perchè programmatori che scrivono programmi efficienti sono piú richiesti... Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 10/26
11 Obiettivi Cosa otterrete da questo corso? Metodi e conoscenze per formulare modelli astratti da problemi pratici (Problemi Concreti Problemi Computazionali) Metodi e conoscenze per la progettazione di algoritmi efficienti per la risoluzione di problemi computazionali Metodi e conoscenze per analizzare l efficienza di algoritmi Un catalogo" di algoritmi efficienti, pronti per l uso, per la risoluzione dei piú comuni problemi computazionali Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 11/26
12 Esempio: Profitto Massimo in anni contigui Profitti della ACME-Corporation Anno Profitto in M$ Esempi: Tra gli anni 1 e 9 ACME ha guadagnato = 4 M$, tra gli anni 2 e 6 ha guadagnato = 6 M$, tra gli anni 5 e 8 ACME ha guadagnato = 9 M $ Il Problema del Profitto Massimo in anni contigui è quello di trovare l intervallo temporale in cui ACME ha guadagnato di più (nel nostro esempio l intervallo (5, 8)). Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 12/26
13 Definizione Astratta Input: un array di reali A[1...N], il profitto totale negli anni dall i-esimo allo j-esimo è V (i,j) = j x=i A(x). Il Problema del Profitto Massimo in anni contigui (PMAC) è quello di trovare indici i j tali che Output: V (i,j) tale che i,j, vale che V (i,j ) V (i,j) i,j, vale che V (i,j ) V (i,j) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 13/26
14 Prima Soluzione: Forza Bruta Idea: Calcolare il valore V (i,j) per ogni coppia i j, e ritornare il valore massimo VMAX=A[1] for i = 1 to N do for j = 1 to N do % qui ci calcoliamo V = V (i,j) V = 0 for x = i to j do V = V + A[x] if V > V MAX then V MAX = V return V MAX Complessità dell algoritmo: Θ(N 3 ) (ci sono 3 for innestati, ciascheduno spazia su al piú N valori) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 14/26
15 Seconda Soluzione: Approccio Incrementale Idea: Non è necessario calcolare separatamente" ciascun V (i,j),ma possiamo usare il fatto che V (i,j) = j x=i A[x] = j 1 x=i VMAX=A[1] for i = 1 to N do V = 0 for j = i to N do % qui ci calcoliamo V (i,j) V = V + A[j] if V > V MAX then V MAX = V return V MAX A[x]+A[j] = V (i,j 1)+A[j]. Complessità dell algoritmo: Θ(N 2 ) (ci sono 2 for innestati, ciascheduno spazia su al piú N valori) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 15/26
16 Terza Soluzione: Divide-et-Impera Idea: Poni M = (N + 1)/2. Il PMAC dell array A[1,...,N] deve necessariamente essere uno dei seguenti: S 1 : il PMAC dell array A[1,...,M], S 1 M M+1 oppure S 2 : il PMAC dell array A[M + 1,...,N], M M+1 oppure é a "cavallo" di A[M], ovvero e A = A 1 A 2 A 1 A 2 M M+1 S 2 Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 16/26
17 Esempio In questo caso S 1 = [3, 6] con valore = 9, e S 2 = [2, 6, 1] con valore = Ma abbiamo anche A 1 = [3, 6, 1], A 2 = [2, 4, 7], con A = A 1 A 2 = [3, 6, 1, 2, 4, 7], di valore totale = 13. Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 17/26
18 Dobbiamo quindi trovare S 1, S 2 e A... S 1 lo si trova determinando il PMAC di A[1...M], ovvero chiamando l algoritmo ricorsivamente sulla parte sinistra A[1...M] dell array A[1...N] S 2 lo si trova determinando il PMAC di A[M N], ovvero chiamando l algoritmo ricorsivamente sulla parte destra A[M N] dell array A[1...N] Come trovare A lo vediamo in un secondo... Il PMAC dell intero array A[1...N] sará quindi quel sottovettore che tra S 1, S 2, ed A, ha valore massimo. Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 18/26
19 Come trovare A: la fase di Conquer A 1 A 2 M M+1 i j A 1 é della forma A[i... M]: ci sono solo M N tali sequenze, tante quanti sono i corrispondenti valori di i,1 i M. Pertanto la sequenza contigua A 1 di valore massimo puó essere trovata usando al piú O(M) = O(N) operazioni. Analogamente, A 2 é della forma A[M j]: ci sono solo N M N tali sequenze, tante quanti sono i corrispondenti valori di j, M j N. Pertanto la sequenza contigua A 2 di valore massimo puó essere trovata in O(N M) = O(N) operazioni. A = A 1 A 2 puó essere trovato in O(N) operazioni! Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 19/26
20 L Algoritmo Completo Divide-et-Impera Input: A[i...j], con i j PMAC(A,i,j) 1. if i = j return A[i] else 2. trova PMAC(A,i, (i + j)/2 ) 3. trova PMAC(A, (i + j)/2 + 1,j) 4. trova PMAC che contiene sia A[ (i + j)/2 )] che A[ (i + j)/2 + 1] 5. return il MASSIMO delle tre sequenze trovate Detto T(N) il numero di operazioni di PMAC(A, 1,N), abbiamo: 1. richiede tempo O(1), 2. e 3. richiedono tempo T(N/2), 4. richiede tempo O(N), 5. richiede tempo O(1). T(N) = 2T(N/2) + O(N) T(N) = O(N log N) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 20/26
21 Analisi di Algoritmi Divide-et-Impera Per semplificare l analisi, assumiamo che N = 2 h. I passi 4. e 5. dell algoritmo richiedono O(N) operazioni, ovvero richiedono un numero di operazioni cn, per qualche costante c. Quindi T(N) 2T(N/2) + cn 2 [ 2T(N/2 2 ) + c N 2 ] + cn = 2 2 T(N/2 2 ) + 2cN 2 2 [ 2T(N/2 3 ) + c N 2 2 ] + 2cN = 2 3 T(N/2 3 ) + 3cN... 2 h T(N/2 h ) + hcn Ponendo h = log N, si ha 2 h = 2 log N = N, e quindi T(N) NT(1) + (log N)cN = O(N log N) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 21/26
22 Riassumendo... Abbiamo visto: un algoritmo basato sulla generazione di tutte le possibili soluzioni, di complessitá O(N 3 ) un algoritmo basato sul riuso di dati precedentemente calcolati di complessitá O(N 2 ) un algoritmo basato su Divide-et-Impera di complessitá O(N log N) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 22/26
23 Ne é valsa la pena? Confrontiamo gli algoritmi su di un computer che esegue un milione di operazioni al secondo. valore di N # di operazioni tempo di esecuzione N ore N minuti N log N 0.13 secondi valore di N # di operazioni tempo di esecuzione 10 5 N 3 31 anni N ore N log N 1.66 secondi Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 23/26
24 Morale della lezione Ne é valsa la pena Abbiamo visto che è possibile progettare algoritmi seguendo tecniche "generali" (forza bruta, divide-et impera,...) Abbiamo visto che è possibile analizzare e valutare algoritmi in base al numero di operazioni che essi compiono per produrre l output, in funzione della "taglia" dell input, e che questa analisi riflette il comportamento degli algoritmi in pratica Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 24/26
25 Circa PMAC: si può far meglio di O(N log N)? Si Esiste un algoritmo che risolve il Problema del Profitto Massimo in anni contigui in O(N) operazioni Trovatelo... Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 25/26
26 Informazioni pratiche sul corso Libro di testo: Jon Kleinberg ed Eva Tardos, Algorithm Design, Addison Wesley, 2005 Alla pagina WEB apparirá tutto il materiale relativo al corso (copie delle slides usate, esercizi per l esame, date delle prove d esame, comunicazioni varie, etc.) Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2009/10 p. 26/26
Introduzione al Corso di Algoritmi
Università di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Accademico 2014/15 p. 1/36 Introduzione al Corso di Algoritmi Di cosa parliamo oggi: Una discussione generale su cosa studieremo, perchè
DettagliAlgoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
DettagliAlgoritmi. Un tema centrale dell informatica è lo studio degli algoritmi.
Algoritmi Un tema centrale dell informatica è lo studio degli algoritmi. Ora nostro obiettivo sarà quello di esplorare a sufficienza questa materia fondamentale per poter capire e apprezzare appieno l
DettagliAlgoritmi e Strutture Dati
Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Scuola di Scienze e Tecnologie - Sezione di Informatica Università di Camerino Parte I Il concetto di Algoritmo Il
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno
INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Dipartimento Scienze
DettagliNell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi:
Pag 24 3) Il problema della ricerca Nell informatica esistono alcuni problemi particolarmente rilevanti, poiché essi: si incontrano in una grande varietà di situazioni reali; appaiono come sottoproblemi
DettagliNote per la Lezione 4 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 4 Ugo Vaccaro Ripasso di nozioni su Alberi Ricordiamo che gli alberi rappresentano una generalizzazione delle liste, nel senso che
DettagliOrari Corso. Docenti corso. Algoritmi. Orari Ricevimento Studenti. Martedì 16:00-18:00, aula F/4 Venerdì 11:00-13:00, aula F/4
Docenti corso Algoritmi a. a. 2012-2013 docente matricola Ugo Vaccaro = 0 mod 3 Alfredo De Santis = 1 mod 3 Marcella Anselmo = 2 mod 3 Il modulo 3 deve essere effettuato dividendo la matricola senza prefisso
DettagliEsercizi per il corso di Algoritmi e Strutture Dati
1 Esercizi per il corso di Algoritmi e Strutture Dati Esercizi sulla Tecnica Divide et Impera N.B. Tutti gli algoritmi vanno scritti in pseudocodice (non in Java, né in C++, etc. ). Di tutti gli algoritmi
DettagliALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo
ALGORITMI e PROGRAMMI Programmazione: Lavoro che si fa per costruire sequenze di istruzioni (operazioni) adatte a svolgere un dato calcolo INPUT: dati iniziali INPUT: x,y,z AZIONI esempio: Somma x ed y
DettagliCorso di Perfezionamento
Programmazione Dinamica 1 1 Dipartimento di Matematica e Informatica Università di Camerino 15 febbraio 2009 Tecniche di Programmazione Tecniche di progettazione di algoritmi: 1 Divide et Impera 2 Programmazione
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultima Modifica: 7 ottobre 202 Copyright Portions of this work are Copyright 202, Moreno Marzolla. This work is licensed
DettagliSommario della lezione
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/27 Sommario della lezione Ancora altri esempi di applicazione della Programmazione Dinamica: Il Problema della
DettagliDue algoritmi di ordinamento. basati sulla tecnica Divide et Impera: Mergesort e Quicksort
Due algoritmi di ordinamento basati sulla tecnica Divide et Impera: Mergesort e Quicksort (13 ottobre 2009, 2 novembre 2010) Ordinamento INPUT: un insieme di n oggetti a 1, a 2,, a n presi da un dominio
DettagliQUICKSORT. Basato sul paradigma divide-et-impera (come MERGE-SORT)
QUICKSORT Basato sul paradigma divide-et-impera (come MERGE-SORT) Divide: stabilisce un valore di q tale da dividere l array A[p.. r] in due sottoarray non vuoti A[p.. q] e A[q+1.. r], dove ogni elemento
DettagliConcetti Introduttivi. Il Computer
Concetti Introduttivi Il Computer Introduzione Informazione Notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere Messaggio Tutto ciò che porta
DettagliLezione 4. Problemi trattabili e soluzioni sempre più efficienti. Gianluca Rossi
Lezione 4 Problemi trattabili e soluzioni sempre più efficienti Gianluca Rossi Trattabile o intrattabile? Consideriamo ora il problema, ben noto a tutti gli studenti a partire dalla scuola media, di calcolare
DettagliOrari Corso. Docenti corso. Algoritmi. Orari Ricevimento Studenti. Martedì 16:00-18:00, aula F/4 Venerdì 11:00-13:00, aula F/4
Docenti corso Algoritmi a. a. 2012-2013 docente matricola Ugo Vaccaro = 0 mod 3 Alfredo De Santis = 1 mod 3 Marcella Anselmo = 2 mod 3 Il modulo 3 deve essere effettuato dividendo la matricola senza prefisso
DettagliINFORMATICA GENERALE Prof. Alberto Postiglione. Università degli Studi di Salerno. UD 3.1a: Gli Algoritmi
INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : Gli Algoritmi INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università
DettagliCOMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI
COMPLESSITÀ COMPUTAZIONALE DEGLI ALGORITMI Fondamenti di Informatica a.a.200.2005/06 Prof. V.L. Plantamura Dott.ssa A. Angelini Ω (grande omega) Diciamo che T(n) = Ω (f(n)), - leggiamo T(n) ha complessità
DettagliAlgoritmi e Strutture Dati
Heap Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino A.A. 2006/07 Heap Heap binari: definizione Un heap binario è una struttura dati composta
DettagliArray e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 12 Array e Oggetti A. Miola Dicembre 2006 http://www.dia.uniroma3.it/~java/fondinf1/ Array e Oggetti 1 Contenuti Array paralleli
DettagliTempo e spazio di calcolo (continua)
Tempo e spazio di calcolo (continua) I numeri di Fibonacci come case study (applichiamo ad un esempio completo le tecniche illustrate nei lucidi precedenti) Abbiamo introdotto tecniche per la correttezza
DettagliAccordo su chiavi. Accordo su una chiave. Diffie-Hellman [1976] Accordo su chiavi. Diffie-Hellman [1976] Diffie-Hellman [1976] ??
Accordo su chiavi Accordo su una chiave Barbara Masucci Dipartimento di Informatica ed Applicazioni Università di Salerno masucci@dia.unisa.it http://www.dia.unisa.it/professori/masucci K K 1 Accordo su
DettagliAlgoritmi e Strutture Dati. Introduzione
Algoritmi e Strutture Dati Introduzione Alberto Montresor Università di Trento 2016/09/14 This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. Sommario 1 Introduzione
DettagliIl Concetto di Algoritmo Corso di Informatica Laurea in Fisica
Il Concetto di Algoritmo Corso di Informatica Laurea in Fisica prof. ing. Corrado Santoro A.A. 2010-11 Esempio: risolviamo le equazioni di secondo grado ax 2 + bx + c = 0 La formula risolutiva è: x= b±
DettagliTempo e spazio di calcolo
Tempo e spazio di calcolo Modelli di calcolo e metodologie di analisi F. Damiani - Alg. & Lab. 04/05 (da M. Zacchi - Alg. & Lab. 03/04) In quale modo stimiamo il tempo di calcolo? Possiamo considerare
DettagliAlgoritmi e Strutture Dati. Luciano Gualà
Algoritmi e Strutture Dati Luciano Gualà guala@mat.uniroma2.it www.mat.uniroma2.it/~guala Informazioni utili Orario lezioni Lunedì: 11,00 13,00 mercoledì: 9,00 11,00 Orario ricevimento lunedì: 14,45 16,15
DettagliIntroduzione: informatica. 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco
Introduzione: informatica 18/2/2013 Informatica applicata alla comunicazione multimediale Cristina Bosco Indice - di cosa si occupa l informatica - una definizione della scienza informatica - cosa è un
DettagliSviluppo di programmi
Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla
DettagliDi cosa parliamo oggi?
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/41 Di cosa parliamo oggi? Oggi parliamo di Analisi di Algoritmi Analisi di Algoritmi = valutazione delle risorse
Dettagliin termini informali: un algoritmo è una sequenza ordinata di operazioni che risolve un problema specifico
Click to edit Algoritmo Master title style algoritmo: un insieme ordinato di operazioni non ambigue ed effettivamente computabili che, quando eseguito, produce un risultato e si arresta in un tempo finito
DettagliAlgoritmi e Strutture Dati. Capitolo 4 Ordinamento
Algoritmi e Strutture Dati Capitolo 4 Ordinamento Ordinamento Dato un insieme S di n oggetti presi da un dominio totalmente ordinato, ordinare S Esempi: ordinare una lista di nomi alfabeticamente, o un
DettagliIntroduzione alla tecnica di Programmazione Dinamica
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/37 Sommario della lezione Introduzione alla tecnica di Programmazione Dinamica Esempio di applicazione n. 1:
DettagliAlbero di Riscorsione
Albero di Riscorsione Albero di ricorsione Un albero di ricorsione è un modo di visualizzare cosa accade in un algoritmo divide et impera L etichetta della radice rappresenta il costo non ricorsivo della
DettagliLaboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:
DettagliAnalisi Numerica. Debora Botturi ALTAIR. Debora Botturi. Laboratorio di Sistemi e Segnali
Analisi Numerica ALTAIR http://metropolis.sci.univr.it Argomenti Argomenti Argomenti Rappresentazione di sistemi con variabili di stato; Tecniche di integrazione numerica Obiettivo: risolvere sistemi di
DettagliEsercitazione di Calcolo Numerico 1 22 Aprile Determinare la fattorizzazione LU della matrice a 1 1 A = 3a 2 a 2a a a 2 A =
Esercitazione di Calcolo Numerico 22 Aprile 29. Determinare la fattorizzazione LU della matrice a A = 3a 2 a 2a a a 2 ed utilizzarla per calcolare il det(a). 2. Calcolare il determinante della matrice
DettagliAlgoritmi e loro proprietà. Che cos è un algoritmo? Un esempio di algoritmo
1 Cos è l informatica? L informatica è la scienza della rappresentazione e dell elaborazione dell informazione Algoritmi e loro proprietà Proprietà formali degli Algoritmi Efficienza rispetto al tempo
DettagliCammini minimi fra tutte le coppie
Capitolo 12 Cammini minimi fra tutte le coppie Consideriamo il problema dei cammini minimi fra tutte le coppie in un grafo G = (V, E, w) orientato, pesato, dove possono essere presenti archi (ma non cicli)
DettagliAlgoritmi e Strutture dati a.a. 2013/2014
a.a. 2013/2014 Dr Informazioni docente E-mail docente: fdrmra@unife.it Ricevimento: Mercoledì 15:00-16:00 presso ufficio docenti a contratto (3 piano), Dipartimento di Matematica e Informatica, Campus
DettagliNote per la Lezione 7 Ugo Vaccaro
Progettazione di Algoritmi Anno Accademico 2016 2017 Note per la Lezione 7 Ugo Vaccaro Sempre sulla tecnica Programmazione Dinamica Ricordiamo che lo sviluppo di algoritmi basati sulla Programmazione Dinamica
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Capitolo 1 Un introduzione informale agli algoritmi Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano Definizione informale di algoritmo Insieme di istruzioni, definite
DettagliAlgoritmi e Strutture dati a.a. 2012/2013
a.a. 2012/2013 Dr Informazioni docente E-mail docente: maria.federico@unimore.it Ricevimento: Su appuntamento (inviare e-mail) 2 Informazioni lezioni Lunedì, Martedì, Mercoledì 10:30-13:30 aula INFO2 15
DettagliPrincipali strumenti per lo sviluppo di algoritmi in pascal-like. concetti universali presenti in tutti i linguaggi di programmazione
LABORATORIO DI PROGRAMMAZIONE Corso di laurea in matematica 12 LA COMPLESSITA COMPUTAZIONALE Marco Lapegna Dipartimento di Matematica e Applicazioni Universita degli Studi di Napoli Federico II wpage.unina.it/lapegna
DettagliAlgoritmi e strutture di dati 2
Algoritmi e strutture di dati 2 Paola Vocca Lezione 1: Divide et Impera 1 Paradigma del divide et impera Strutturato in tre fasi. Sia Π() istanza di dimensione di un problema computazionale Π (dove è immediato
DettagliSi può fare di meglio?
Si può fare di meglio? Gli algoritmi visti fino ad ora hanno costo O(n 2 ) È possibile fare di meglio? Quanto meglio? Algoritmi e Strutture Dati 1 Algoritmi divide et impera Idea generale Divide: Scomporre
DettagliAnno 5 Regole di derivazione
Anno 5 Regole di derivazione 1 Introduzione In questa lezione mostreremo quali sono le regole da seguire per effettuare la derivata di una generica funzione. Seguendo queste regole e conoscendo le derivate
DettagliAlgoritmi (9 CFU) (A.A ) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1
Algoritmi (9 CFU) (A.A. 2009-10) Heap e Algoritmo HeapSort. Prof. V. Cutello Algoritmi 1 Overview Definiamo la struttura dati heap Operazioni di costruzione e gestione di un heap Algoritmo Heapsort Code
DettagliInformatica e Bioinformatica: Algoritmi
Informatica e Bioinformatica: Algoritmi 20 Marzo 2014 Programmi Applicativi Programmi Applicativi Sistema Operativo (lezione 3) Macchina Hardware (lezione 1 e 2) La macchina hardware permette l esecuzione
DettagliSommario della lezione
Universitá degli Studi di Salerno Corso di Algoritmi Prof. Ugo Vaccaro Anno Acc. 2014/15 p. 1/36 Sommario della lezione Ulteriori esempi di applicazione della Programmazione Dinamica Esempio di applicazione
Dettagli2.2 Alberi di supporto di costo ottimo
. Alberi di supporto di costo ottimo Problemi relativi ad alberi hanno numerose applicazioni: progettazione di reti (comunicazione, teleriscaldamento,...) memorizzazione compatta di sequenze (DNA) diffusione
DettagliUn algoritmo realizza una relazione funzionale tra i valori di input e quelli di output
Un algoritmo realizza una relazione funzionale tra i valori di input e quelli di output F = { (s, s ) } per ogni s esiste una e una sola coppia (s, s ). Esempio: un algoritmo che calcola il quadrato di
DettagliProgetto e analisi di algoritmi
Progetto e analisi di algoritmi Roberto Cordone DTI - Università degli Studi di Milano Polo Didattico e di Ricerca di Crema Tel. 0373 / 898089 E-mail: cordone@dti.unimi.it Ricevimento: su appuntamento
DettagliLaboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento
Laboratorio di Programmazione Appunti sulla lezione 4: Divide et impera e algoritmi di ordinamento Alessandra Raffaetà Università Ca Foscari Venezia Corso di Laurea in Informatica Ricerca binaria Assunzione:
DettagliProblemi, istanze, soluzioni
lgoritmi e Strutture di Dati II 2 Problemi, istanze, soluzioni Un problema specifica una relazione matematica tra dati di ingresso e dati di uscita. Una istanza di un problema è formata dai dati di un
DettagliIl problema dello zaino
Il problema dello zaino Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino 25 gennaio 2010 Il problema dello zaino 0-1
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 10 novembre 2010 1 La bandiera nazionale (problema 4.7 del libro di testo). Il problema della bandiera
DettagliIl problema delle azioni
Il problema delle azioni Per studiare l andamento del mercato azionario bisogna seguire i prezzi delle azioni in un lasso di tempo abbastanza lungo, diciamo n giorni. Se si dispone dei prezzi di un azione
DettagliArray in Fortran 90. Ing. Luca De Santis. Anno accademico 2006/2007. DIS - Dipartimento di informatica e sistemistica
Array in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2006/2007 Fortran 90: array DIS - Dipartimento di informatica e sistemistica 1 / 25 Cosa vedremo
DettagliProblemi, algoritmi, calcolatore
Problemi, algoritmi, calcolatore Informatica e Programmazione Ingegneria Meccanica e dei Materiali Università degli Studi di Brescia Prof. Massimiliano Giacomin Problemi, algoritmi, calcolatori Introduzione
Dettagli24 - Possibili approfondimenti
24 - Possibili approfondimenti Programmazione e analisi di dati Modulo A: Programmazione in Java Paolo Milazzo Dipartimento di Informatica, Università di Pisa http://www.di.unipi.it/ milazzo milazzo di.unipi.it
DettagliUn vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...
Vettori (array) Un vettore è una struttura dati che permette di memorizzare sequenze di dati omogeneii (sequenze di interi, di valori booleani,...) I vettori sono caratterizzati da dimensione tipo Es.
DettagliAlgoritmi e Strutture Dati
Struttura del Corso Introduzione al Corso Maria Rita Di Berardini (Camerino), Emanuela Merelli (Ascoli) 1 1 Dipartimento di Matematica e Informatica Università di Camerino Struttura del corso Struttura
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliAppunti di informatica. Lezione 10 anno accademico Mario Verdicchio
Appunti di informatica Lezione 10 anno accademico 2016-2017 Mario Verdicchio Esercizio Scrivere un programma che, data una sequenza di 10 interi (scelta dall utente), la ordini in ordine crescente Soluzione
DettagliRappresentazione con i diagrammi di flusso (Flow - chart)
Rappresentazione con i diagrammi di flusso (Flow - chart) Questo tipo di rappresentazione grafica degli algoritmi, sviluppato negli anni 50, utilizza una serie di simboli grafici dal contenuto evocativo
DettagliIl Concetto Intuitivo di Calcolatore. Esercizio. I Problemi e la loro Soluzione. (esempio)
Il Concetto Intuitivo di Calcolatore Elementi di Informatica e Programmazione Ingegneria Gestionale Università degli Studi di Brescia Docente: Prof. Alfonso Gerevini Variabile di uscita Classe di domande
DettagliElementi di Informatica e Programmazione
Elementi di Informatica e Programmazione Introduzione Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Informazioni
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it Ultimo aggiornamento: 3 novembre 2010 1 Trova la somma/1 Scrivere un algoritmo che dati in input un array A[1... n] di n interi
Dettagli3.4 Metodo di Branch and Bound
3.4 Metodo di Branch and Bound Consideriamo un generico problema di Ottimizzazione Discreta dove X è la regione ammissibile. (P ) z = max{c(x) : x X} Metodologia generale di enumerazione implicita (Land
DettagliAlgoritmi e Strutture Dati
Algoritmi e Strutture Dati Soluzione esercizi di approfondimento Stefano Leucci stefano.leucci@univaq.it Una terza variante dell IS InsertionSort3 (A) 1. for k=1 to n-1 do 2. x = A[k+1] 3. j = ricerca_binaria(a[1,k],x)
DettagliTipici tempi di esecuzione. Martedì 7 ottobre 2014
Tipici tempi di esecuzione Martedì 7 ottobre 2014 Punto della situazione Abbiamo definito il tempo di esecuzione di un algoritmo Scelto l analisi asintotica Abbiamo definito le notazioni asintotiche che
DettagliAlgoritmi e strutture di dati 2
Paola Vocca Lezione 4: Programmazione dinamica 1 Caratteristiche Programmazione dinamica: paradigma basato sullo stesso principio utilizzato per il divide et impera o il problema viene decomposto in sotto-problemi
DettagliALGORITMI E STRUTTURE DATI
ALGORITMI E STRUTTURE DATI Esercitazioni AndreA Orlandini http://www.dia.uniroma3.it/~orlandin/asd/ e-mail: orlandin@dia.uniroma3.it Orario di ricevimento: Martedì 14.00-16.00 Introduzione al C + Array
DettagliA lezione sono stati presentati i seguenti passi per risolvere un problema:
Calcolo delle radici di un polinomio Problema: Dati i coefficienti a,b,c di un polinomio di 2 grado della forma: ax^2 + bx + c = 0, calcolare le radici. A lezione sono stati presentati i seguenti passi
DettagliPROGRAMMAZIONE DINAMICA. Prof. Reho Gabriella Olimpiadi di Informatica
PROGRAMMAZIONE DINAMICA Quando si usa P.D.? La programmazione dinamica si usa nei casi in cui esista una definizione ricorsiva del problema, ma la trasformazione diretta di tale definizione in un algoritmo
DettagliIl concetto di calcolatore e di algoritmo
Il concetto di calcolatore e di algoritmo Elementi di Informatica e Programmazione Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Informatica
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 9 Agosto, 204 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliFondamenti di Informatica. Algoritmi di Ricerca e di Ordinamento
Fondamenti di Informatica Algoritmi di Ricerca e di Ordinamento 1 Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure l elemento
DettagliAlgoritmi e basi del C Struttura di un programma
Algoritmi e basi del C Struttura di un programma Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 17 Marzo 2015 Compitini Compitini di INFO: 24 Aprile 2015 4.15pm @ C.G.1 (Ed. 9) 21
DettagliFONDAMENTI DI INFORMATICA
Fondamenti di Informatica FONDAMENTI DI INFORMATICA Domenico Talia talia@deis.unical.it A.A. 2002-2003 Facoltà di Ingegneria UNICAL Fondamenti di Informatica - D. Talia - UNICAL 1 Fondamenti di Informatica
DettagliCorso di Informatica Modulo T1 1 - Il concetto di problema
Corso di Informatica Modulo T1 1 - Il concetto di problema 1 Prerequisiti Concetti intuitivi di: Proporzione Problema Variabile Numeri interi e reali 2 1 Introduzione Nel risolvere un problema abbiamo
DettagliAlgoritmi di ricerca. Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati.
E. Calabrese: Fondamenti di Informatica Algoritmi-1 Algoritmi di ricerca Per ricerca si intende qui il procedimento di localizzare una particolare informazione in un elenco di dati. Per esempio: - cercare
DettagliE necessaria la chiave segreta? RSA. Funzioni One-way con Trapdoor. Un secondo protocollo
E necessaria la chiave segreta? RSA Rivest, Shamir, Adelman A manda a B lo scrigno chiuso con il suo lucchetto. B chiude lo scrigno con un secondo lucchetto e lo rimanda ad A A toglie il suo lucchetto
DettagliUn tipico esempio è la definizione del fattoriale n! di un numero n, la cui definizione è la seguente:
Pag 29 4) La ricorsione 4.1 Funzioni matematiche ricorsive Partiamo da un concetto ben noto, quello delle funzioni matematiche ricorsive. Una funzione matematica è detta ricorsiva quando la sua definizione
DettagliCorso di Fondamenti di Informatica
Corso di Fondamenti di Informatica Gli algoritmi di base sul tipo array: ordinamento e ricerca Claudio De Stefano - Corso di Fondamenti di Informatica 1 Algoritmi di ordinamento gli algoritmi si differenziano
DettagliCosa è l Informatica?
Cosa è l Informatica? Scienza degli elaboratori elettronici (Computer Science) Scienza dell informazione Scienza della rappresentazione, memorizzazione, elaborazione e trasmissione dell informazione Elaboratore
DettagliINFORMATICA. Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science)
INFORMATICA Cosa è l informatica Scienza dei calcolatori elettronici (computer science) Scienza dell informazione (information science) E una scienza E una tecnologia Cosa può essere automatizzato nell
DettagliAlgoritmi e Strutture Dati - Prof. Roberto De Prisco A.A Seconda prova di verifica (4 Febbraio 2005)
Algoritmi e Strutture Dati - Prof. Roberto De Prisco A.A. 004-00 Seconda prova di verifica (4 Febbraio 00) Laurea/Diploma in Informatica Università di Salerno Nome e Cognome: Matricola: 1 3 4 TOTALE /1
DettagliIntroduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi
B Introduzione agli algoritmi Prova di esame del 30/6/2016 Prof.sse E. Fachini - R. Petreschi Si consideri l operazione di inserimento in un AVL. Si supponga di trovarsi nel caso in cui una rotazione a
DettagliRISOLUZIONE DI SISTEMI LINEARI
RISOLUZIONE DI SISTEMI LINEARI Algebra lineare numerica 1 La risoluzione di un sistema lineare è il nucleo principale del processo di risoluzione di circa il 70% di tutti i problemi reali Per la risoluzione
DettagliAlgoritmi e Strutture Dati
Algoritmi Golosi (Greedy) Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino un algoritmo goloso correttezza Problema della selezione di attività
DettagliInformatica, Algoritmi, Linguaggi
Elementi di Informatica e Applicazioni Numeriche T Informatica, Algoritmi, Linguaggi Cos'è l'informatica? Che cos'è l'informatica? Cos'è l'informatica? Che cos'è l'informatica? Dell'informatica possiamo
DettagliINFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016
INFORMATICA PER LE SCIENZE UMANE a.a. 2015/2016 Francesca Levi Dipartimento di Informatica E-mail: francesca.levi@unipi.it levifran@di.unipi.it Francesca Levi Dipartimento di Informatica Informatica per
DettagliAlgoritmi e Strutture Dati
Analisi Asintotica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Un graduale processo di astrazione Passo 1: abbiamo ignorato il costo effettivo
DettagliFondamenti di Informatica
Fondamenti di Informatica AlgoBuild: Strutture selettive, iterative ed array Prof. Arcangelo Castiglione A.A. 2016/17 AlgoBuild : Strutture iterative e selettive OUTLINE Struttura selettiva Esempi Struttura
DettagliIntroduzione agli Algoritmi
Introduzione agli Algoritmi Prof. Emanuela Fachini Contenuto del corso Motivazioni Qualche definizione iniziale Pagina del corso: http://twiki.di.uniroma1.it/ twiki/view/intro_algo/ad/webhome 1 Il libro
DettagliZeri di funzioni e teorema di Sturm
Zeri di funzioni e teorema di Sturm Enrico Bertolazzi Dipartimento di Ingegneria Meccanica e Strutturale Università degli Studi di Trento via Mesiano 77, I 38050 Trento, Italia EnricoBertolazzi@ingunitnit
DettagliFondamenti di Informatica
Fondamenti di Informatica Prof. Arcangelo Castiglione A.A. 2016/17 Come Instruire i Calcolatori a Risolvere Problemi Gli elaboratori sono strumenti per risolvere (o aiutare a risolvere) problemi basati
Dettagli