Algoritmi greedy. Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione
|
|
- Nicoletta Vinci
- 5 anni fa
- Visualizzazioni
Transcript
1 Algoritmi greedy Gli algoritmi che risolvono problemi di ottimizzazione devono in genere operare una sequenza di scelte per arrivare alla soluzione Gli algoritmi greedy sono algoritmi basati sull idea di fare sempre scelte che sembrano ottime al momento della scelta. IMPORTANTE: Non sempre è garanta la correttezza, ma sono spesso molto semplici ed efficienti.
2 Problema della selezione di attività Problema: Siano date N attività in competizione tra loro per l utilizzo di una certa risorsa. Trovare l allocazione ottimale della risorsa, cioè il sottoinsieme di cardinalità massima delle attività che la possano condividere senza creare conflitti S={1,2,,N} un insieme di attività Ad ogni attività i S sono associati s i = tempo di inizio (attivazione) f i = tempo di fine (conclusione) tali che s i f i
3 Problema della selezione di attività Definizione: Due attività i e j si dicono compatibili se gli intervalli [s i, f i ] e [s j, f j ] sono disgiunti, cioè non si sovrappongono. In altre parole se vale f j s i oppure f i s j Problema (riformulato): Dato l insieme di attività S={1,2,,N}, trovare il massimo sottoinsieme di attività tra loro compatibili.
4 Problema della selezione di attività Problema (riformulato): Dato l insieme di attività S={1,2,,N}, trovare il massimo sottoinsieme di attività tra loro compatibili. ❶ Partiamo con un insieme A di attività inizialmente vuoto ❷ Inseriamo in A l attività j col minimo tempo di terminazione ❸ Fra le attività rimanenti compatibili con j selezionare l attività i col minore tempo di terminazione aggiungere l attività selezionata i ad A ❹ Se esistono altre attività compatibili con i, torniamo al passo ❸, altrimenti terminamo
5 Problema della selezione di attività ❶ Assumiamo le attività siano ordinate in modo crescente rispetto al tempo di fine. f 1 f 2 f N ❷ Siano I=[s 1,, s N ] e F=[f 1,, f N ] i vettori contenenti i tempi di inizio (non ordinati) e di fine (ordinati) ❸ Greedy-Activity-Selection(S,F) A = {1}; j = 1 for i = 2 to length[i] do if I[i] F[j] then A = A {i} j = i ❹ Al termine l inseme A contiene la soluzione greedy al problema. Tempo: (n), (n log n) se dobbiamo prima ordinare le attività
6 i s i f 1:1-4 i : :0-6 4: : Criterio: attività più lunga :5-9 7:6-10 8:8-11 9: : Criterio: attività che finisce prima 9 3 attività attività
7 i s i f i :1-4 6:5-9 2:3-5 7:6-10 3:0-6 8:8-11 4:5-7 9:8-12 5:3-8 10:
8 i s i f i :1-4 6:5-9 2:3-5 7:6-10 3:0-6 8:8-11 4:5-7 9:8-12 5:3-8 10:
9 i s i f i :1-4 6:5-9 2:3-5 7:6-10 3:0-6 8:8-11 4:5-7 9:8-12 5:3-8 10:
10 Selezione di attività: correttezza Teorema: L algoritmo Greedy-Activity-Selection produce soluzioni di dimensione massima per il problema della selezione delle attività. Dimostrazione: Per assunzione dell algoritmo, le N attività sono ordinate per tempo di fine, quindi la prima attività è quella che termina per prima. Dimostriamo innanzitutto che esiste una soluzione ottima che inizia con la prima attività (proprietà della scelta greedy) Sia A S sia una qualsiasi soluzione ottima. Ordiniamola per tempi di fine crescenti. Supponiamo che A[1] = S[k] e k 1 (cioè la prima attività di A non è quella con tempo di terminazione minore in S) Quindi vale f 1 < f k.
11 Selezione di attività: correttezza Teorema: L algoritmo Greedy-Activity-Selection produce soluzioni di dimensione massima per il problema della selezione delle attività. Dimostrazione: A S sia una qualsiasi soluzione ottima (ordinata per tempi di fine) con A[1] = S[k] e k 1. Quindi vale f 1 < f k. Possiamo quindi costruire un altra soluzione B = A - {k} + {1}; B è una soluzione perchè vale f 1 < f k e quindi nessun vincolo di compatibilità è violato. B è anche ottima perchè ha lo stesso numero di attività della soluzione ottima A. B è quindi una sol. ottima che inizia con la scelta greedy.
12 Selezione di attività: correttezza Teorema: L algoritmo Greedy-Activity-Selection produce soluzioni di dimensione massima per il problema della selezione delle attività. Dimostrazione: Quindi esiste una soluzione ottima che inizia con la prima attività (passo base proprietà della scelta greedy). Dopo la scelta greedy, il problema si riduce al sottoproblema di trovare la massima sequenza di attività compatibili con la prima. Il sottoproblema è quindi di cercare di una sequenza massima di attività tra S = {i S : s i f 1 } (if nel codice) Se A è una soluzione ottima, la soluzione ottima del sottoproblema S è allora A = A - {1}. Dimostriamolo!
13 Selezione di attività: correttezza Teorema: L algoritmo Greedy-Activity-Selection produce soluzioni di dimensione massima per il problema della selezione delle attività. Se A è una soluzione ottima, la soluzione ottima del sottoproblema S è A = A {1}. Se A non fosse ottima, esisterebbe un B maggiore di A per lo stesso sottoproblema S = {i S : s i f 1 }. Ma aggiungendo l attività 1 a B, otterremo una soluzione B per S migliore di A (contraddizione).
14 Selezione di attività: correttezza Teorema: L algoritmo Greedy-Activity-Selection produce soluzioni di dimensione massima per il problema della selezione delle attività. Abbiamo provato che esiste una soluzione ottima che inizia con la prima attività e Dopo la prima scelta greedy, rimaniamo col sottoproblema (analogo) di cercare di una sequenza massima di attività in un insieme S = {i S : s i f 1 }. Per induzione si può allora dimostrare facilmente che data una qualsiasi soluzione ottima, essa contiene al suo interno le soluzioni ottime dei suoi sottoproblemi (proprietà della sottostruttura ottima). Quindi la sequenza di scelte greedy determina una soluzione ottima (correttezza dell'algoritmo).
15 Algoritmi Greedy : problema del cambio di denaro Input Un numero intero positivo n Output Il più piccolo numero intero di banconote per cambiare n dollari usando pezzi da 20, 10, 5, 1 dollaro. Esempi Criterio di scelta greedy n = 58, 7 banconote: n = 18, 5 banconote: Algoritmo Dispensa una banconota alla volta Ad ogni passo, utilizza la banconota più grande che non superi la cifra rimanente.
16 Punti per garantire l ottimalità Proprietà della scelta greedy Una soluzione globalmente ottima può esser ottenuta effettuando, in sequenza, delle scelte localmente ottime (greedy). Proprietà della sottostruttura ottima Una soluzione ottima al problema contiene le soluzioni ottime dei sottoproblemi
17 Problema del cambio di denaro Teorema: Il problema del cambio di denaro precedente soddisfa sia la proprietà della sottostruttura ottima che la proprietà della scelta greedy. Dimostrazione (cenni): Se b 1,,b k è una soluzione ottima al problema di cambiare n dollari, b 2,,b k è una soluzione ottima per il problema di cambiare n b 1 v 1 dollari (la banconota b 1 vale v 1 dollari). Se non lo fosse. La seconda parte (scelta greedy) si basa sul fatto che non è possibile che in una soluzione ottima non compaia la scelta greedy.
18 Problema del cambio di denaro Dimostrazione (cenni): Assumiamo b 1,,b k sia una soluzione ottima, che la banconota h sia la più grande non superiore all importo n e che h non compaia nella soluzione. Analizzando i casi possibili, si nota che se h non supera n, esisterà sempre nella soluzione un insieme di almeno due biglietti di taglia inferiore ad n la cui somma sia proprio h (tutti i tagli sono infatti divisibili per qualsiasi dei tagli minori). Quindi sostituendo nella soluzione il biglietto di taglia maggiore si otterrebbe una soluzione migliore di b 1,,b k, il che è una contraddizione.
19 Esercizio Scrivere una programma MATLAB che legge dal file processi.txt una lista di processi individuati da due valori: tempo di inzio e tempo di fine. Es I processi hanno bisogno della CPU per poter essere eseguiti, e la CPU può essere assegnata ad un solo processo per volta. Il programma deve restituire la lista dei processi (es. vettore di indici) a cui può essere assegnata la CPU, massimizzando il numero di processi eseguiti.
20 Programmazione Dinamica (PD, con 'la' non 'il'!!) Altra tecnica per risolvere problemi di ottimizzazione, più generale degli algoritmi greedy La programmazione dinamica risolve un problema di ottimizzazione componendo le soluzioni dei sottoproblemi
21 Caratteristiche della programmazione dinamica Risolve i problemi in modo bottom-up: si parte da problemi piccoli e se ne compongono le soluzioni per trovare soluzioni di problemi di dimensioni più grandi. Si applica nei casi in cui un problema ha la proprietà della sottostruttura ottima.
22 Differenza con i metodi divide et impera I metodi divide et impera (esempio: ordinamento con mergesort) procedono top-down: la scomposizione produce problemi che vengono risolti in modo indipendente. Nei problemi a cui si applica la PD, la scomposizione produce sottoproblemi che non sono indipendenti: la soluzione di alcuni sottoproblemi richiede di risolvere i medesimi sottoproblemi.
23 PD versus divide et impera (segue) I metodi divide et impera si applicano quando la scomposizione in sottoproblemi produce problemi tutti distinti. La PD si applica quando la scomposizione in sottoproblemi produce piu volte gli stessi sottoproblemi. Per evitare di risolvere piu volte gli stessi sottoproblemi, si memorizzano le soluzioni dei sottoproblemi in una tabella.
24 PD versus metodi greedy Programmazione dinamica e metodi greedy si applicano entrambi a problemi di ottimizzazione in cui vale la proprieta della sottostruttura ottima. Nei metodi greedy, le scelte ad ogni passo dipendono da un criterio esterno (appetibilità), ogni scelta determina un sottoproblema Nella PD le scelte dipendono dalla soluzione dei sottoproblemi
25 PD versus metodi greedy (segue) I metodi greedy agiscono in modo top-down: riducono progressivamente un problema a sottoproblemi di dimensioni decrescenti. I metodi basati sulla PD procedono bottom-up risolvendo per primi i problemi più piccoli. I metodi greedy sono molto piu efficienti di quelli basati sulla programmazione dinamica che devono provare tutte le alternative per fare una scelta ottima. La PD ha un applicabilità maggiore rispetto ai metodi greedy.
26 Sviluppo di un algoritmo di programmazione dinamica 1. Caratterizzazione della struttura di una soluzione ottima 2. Definizione ricorsiva del valore di una soluzione ottima. 3. Calcolo iterativo del valore di una soluzione ottima mediante una strategia bottom-up 4. Costruzione di una soluzione ottima a partire dal valore calcolato
27 Esempio: Problema dello zaino 0/1 La programmazione dinamica permette di risolvere il problema dello zaino 0/1, che non ammette una soluzione con i metodi greedy - o 1, o 2,...,o n oggetti - w 1, w 2,..., w n pesi - v 1, v 2,...,v n valori - Capacità zaino W. Obiettivo: massimizzare il valore trasportato rispettando la capacità.
28 Caratterizzazione della struttura di una soluzione ottima Definiamo: M[i, j] = il massimo valore trasportabile con un peso j e potendo selezionare gli oggetti 1,, i
29 Caratterizzazione della struttura di una soluzione ottima Considera una soluzione ottima in cui si hanno a disposizione gli articoli 1,, i e un carico j se i non è incluso nella soluzione ottima M[i, j] = M[i-1, j] se i è incluso nella soluzione ottima M[i, j] = M[i-1, j - w i ] + v i, e deve valere j w i
30 Condizioni limite M[i, 0] = 0 per ogni i M[0, j] = 0 per ogni j Posso calcolare in modo iterativo (bottom-up) i valori di M[i, j] a partire da M[0, 0] per valori crescenti di i e j. Se ho n articoli e un peso W il valore di una selezione ottima sarà dato alla fine da M[n, W]
31 Definizione ricorsiva del valore di una soluzione M[0, j] = 0 M[i, 0] = 0 M[i, j] = M[i-1, j] se j < w i M[i, j] = max {M[i-1, j], v i + M[i-1, j - w i ]} se j w i
32 Calcolo iterativo del valore di una soluzione ottima DynamicKnapsack01(W, w, v) for j = 0 to W % inizializzazione M [0,j] 0 for i = 0 to n % inizializzazione M [i,0] 0 for i = 1 to n for j = 1 to W if (j w i ) then M[i, j] max {M[i-1, j], v i + M[i - 1, j - w i ]} else M[i, j] M [i-1, j];
33 Costruzione di una soluzione ottima a partire dal valore calcolato L'algoritmo ritorna la matrice M contenente i valori delle soluzioni ottime per vari sottoproblemi. Partendo dalla cella M[n, W], risalire nella colonna M[:, W] per capire come costruire la soluzione. Esempio: O 1 v 1 = 10, w 1 = 5 O O O W = O O O O O
34 Complessità dell algoritmo La complessità dell algoritmo di programmazione dinamica per lo zaino 0/1 è O(nW) dove n è il numero degli articoli e W è il peso dello zaino. Notare che W può essere arbitrariamente grande rispetto a n (ad esempio può essere W = 2 n )
Due 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
DettagliTecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy
Tecniche avanzate di sintesi di algoritmi: Programmazione dinamica Algoritmi greedy Dr Maria Federico Programmazione dinamica Solitamente usata per risolvere problemi di ottimizzazione il problema ammette
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
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
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:
Dettagli4.1 Modelli di calcolo analisi asintotica e ricorrenze
4 Esercizi Prima Parte 4.1 Modelli di calcolo analisi asintotica e ricorrenze Esercizio 4 1 Rispondere alle seguenti domande: 1. Come misuriamo l efficienza di un algoritmo?. Quali sono gli algoritmi più
DettagliVerifica parte IIA. Test (o analisi dinamica) Mancanza di continuità. Esempio
Test (o analisi dinamica) Verifica parte IIA Rif. Ghezzi et al. 6.3-6.3.3 Consiste nell osservare il comportamento del sistema in un certo numero di condizioni significative Non può (in generale) essere
DettagliI costi d impresa (R. Frank, Capitolo 10)
I costi d impresa (R. Frank, Capitolo 10) COSTI Per poter realizzare la produzione l impresa sostiene dei costi Si tratta di scegliere la combinazione ottimale dei fattori produttivi per l impresa È bene
DettagliMetodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo
Metodi e Modelli per l Ottimizzazione Combinatoria Il problema del flusso di costo minimo L. De Giovanni G. Zambelli 1 Problema del flusso a costo minimo Il problema del flusso a costo minimo é definito
DettagliEsercizio: numero primo
Esercizio: numero primo Dato un numero N scrivere un algoritmo che verifichi se N è un numero primo e stampi un relativo messaggio Il numero N è un numero primo se è divisibile solo per 1 e per N Quindi,
DettagliAppunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo
Università Roma Tre Dipartimento di Matematica e Fisica Corso di Laurea in Matematica Appunti del corso di Informatica 1 (IN110 Fondamenti) 3 Modelli di calcolo Marco Liverani (liverani@mat.uniroma3.it)
DettagliEsercitazione n o 3 per il corso di Ricerca Operativa
Esercitazione n o 3 per il corso di Ricerca Operativa Ultimo aggiornamento October 17, 2011 Fornitura acqua Una città deve essere rifornita, ogni giorno, con 500 000 litri di acqua. Si richiede che l acqua
DettagliEsercizi Capitolo 6 - Alberi binari di ricerca
Esercizi Capitolo 6 - Alberi binari di ricerca Alberto Montresor 23 settembre 200 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile
DettagliPer formalizzare il concetto sono necessarie alcune nozioni relative ai poliedri e alla loro descrizione.
3.7.4 Disuguaglianze valide forti Cerchiamo disuguaglianze valide forti, ovvero disuguaglianze valide che forniscano migliori formulazioni (più stringenti). Per formalizzare il concetto sono necessarie
DettagliInterpretazione astratta
Interpretazione astratta By Giulia Costantini (819048) e Giuseppe Maggiore (819050) Contents Interpretazione astratta... 2 Idea generale... 2 Esempio di semantica... 2 Semantica concreta... 2 Semantica
DettagliInformatica Teorica. Macchine a registri
Informatica Teorica Macchine a registri 1 Macchine a registri RAM (Random Access Machine) astrazione ragionevole di un calcolatore nastro di ingresso nastro di uscita unità centrale in grado di eseguire
Dettagli4 Le liste collegate 4.0. Le liste collegate. 4 Le liste collegate Rappresentazione di liste 4.1 Rappresentazione di liste
4 Le liste collegate 4.0 Le liste collegate c Diego Calvanese Fondamenti di Informatica Corso di Laurea in Ingegneria Elettronica A.A. 2001/2002 4.0 0 4 Le liste collegate Rappresentazione di liste 4.1
DettagliEfficienza secondo i criteri di first best
Efficienza secondo i criteri di first best Ruolo del settore pubblico Intervento dello Stato L economia pubblica giustifica l intervento dello Stato nell economia in presenza di fallimenti del mercato
DettagliUD4 - MATLAB. M-file. Efficienza degli algoritmi. Formati d uscita
UD4 - MATLAB M-file. Efficienza degli algoritmi. Formati d uscita M-files In MatLab è possibile eseguire istruzioni contenute in file esterni; Tali file sono chiamati M-file perché devono avere estensione.m
DettagliVBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole.
Excel VBA VBA Visual Basic for Application VBA è un linguaggio di scripting derivato da Visual Basic, da cui prende il nome. Come ogni linguaggio ha le sue regole. 2 Prima di iniziare. Che cos è una variabile?
DettagliLaurea triennale - Comunicazione&DAMS - UNICAL. Dr. Marco Manna 1
Corso di INFORMATICA Laurea triennale - Comunicazione&DAMS Dr. Marco Manna 1 1 Dipartimento di Matematica Università della Calabria Corso di laurea intercalsse in COMUNICAZIONE&DAMS http://elleboro.unical.it/drupalab/informatica2009/
DettagliTesting: basato su analisi dinamica del codice. Metodi Formali: basato su analisi statica del codice.
Convalida: attività volta ad assicurare che il SW sia conforme ai requisiti dell utente. Verifica: attività volta ad assicurare che il SW sia conforme alle specifiche dell analista. Goal: determinare malfunzionamenti/anomalie/errori
DettagliCorso di Gestione dei sistemi di trasporto. Cap.8 Pianificazione operativa (di breve periodo) di reti logistiche. Simona Sacone - DIST
Corso di Gestione dei sistemi di trasporto Cap.8 Pianificazione operativa (di breve periodo) di reti logistiche Simona Sacone - DIST Introduzione La gestione operativa dell azienda è estremamente critica.
DettagliAA 2006-07 LA RICORSIONE
PROGRAMMAZIONE AA 2006-07 LA RICORSIONE AA 2006-07 Prof.ssa A. Lanza - DIB 1/18 LA RICORSIONE Il concetto di ricorsione nasce dalla matematica Una funzione matematica è definita ricorsivamente quando nella
DettagliSono casi particolari di MCF : SPT (cammini minimi) non vi sono vincoli di capacità superiore (solo x ij > 0) (i, j) A : c ij, costo di percorrenza
Il problema di flusso di costo minimo (MCF) Dati : grafo orientato G = ( N, A ) i N, deficit del nodo i : b i (i, j) A u ij, capacità superiore (max quantità di flusso che può transitare) c ij, costo di
DettagliSchedulazione delle attività di un progetto in presenza di multi-calendari
Schedulazione delle attività di un progetto in presenza di multi-calendari Maria Silvia Pini Resp. accademico: Prof.ssa Francesca Rossi Università di Padova Attività FSE DGR 1102/2010 La gestione dell
DettagliIl comando provoca il salvataggio dello stato e la terminazione dell esecuzione.
Scrivere un programma per la gestione di una videoteca. Il programma deve essere in grado di tenere traccia dello stato corrente (presente/in prestito a x/smarrito da x/danneggiato da x a livello nn) e
DettagliUniversità degli studi di Foggia SSIS D.M.85 2005 Laboratorio di didattica della matematica finanziaria Classe 17/A
Università degli studi di Foggia SSIS D.M.85 2005 Laboratorio di didattica della matematica finanziaria Classe 17/A Appunti sull utilizzo di Excel per la soluzione di problemi di matematica finanziaria.
DettagliNote su quicksort per ASD 2010-11 (DRAFT)
Note su quicksort per ASD 010-11 (DRAFT) Nicola Rebagliati 7 dicembre 010 1 Quicksort L algoritmo di quicksort è uno degli algoritmi più veloci in pratica per il riordinamento basato su confronti. L idea
DettagliSistemi Web per il turismo - lezione 3 -
Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa
DettagliEsercizi Capitolo 14 - Algoritmi Greedy
Esercizi Capitolo 14 - Algoritmi Greedy Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare
Dettagli0.1 Esercizi calcolo combinatorio
0.1 Esercizi calcolo combinatorio Esercizio 1. Sia T l insieme dei primi 100 numeri naturali. Calcolare: 1. Il numero di sottoinsiemi A di T che contengono esattamente 8 pari.. Il numero di coppie (A,
DettagliAlgoritmi e Strutture Dati
Elementi di Programmazione Dinamica Maria Rita Di Berardini, Emanuela Merelli 1 1 Dipartimento di Matematica e Informatica Università di Camerino Il problema La CMC produce automobili in uno stabilimento
DettagliCOGNOME E NOME (IN STAMPATELLO) MATRICOLA
Politecnico di Milano Facoltà di Ingegneria dell Informazione Informatica 3 Proff. Ghezzi, Lanzi, Matera e Morzenti Seconda prova in itinere 4 Luglio 2005 COGNOME E NOME (IN STAMPATELLO) MATRICOLA Risolvere
DettagliMICROECONOMIA. Produzione e costi. Enrico Saltari Università di Roma La Sapienza
MICROECONOMIA Produzione e costi Enrico Saltari Università di Roma La Sapienza 1 LE SCELTE DELL IMPRESA ALTERNATIVE DISPONIBILI VINCOLO MERCATO (FORME DI MERCATO) VINCOLO TECNOL. (COME PRODURRE) RICAVI
DettagliIl programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria p. 1
Il programma OCTAVE per l insegnamento dell algebra lineare nella Scuola Secondaria R. Vitolo Dipartimento di Matematica Università di Lecce SaLUG! - Salento Linux User Group Il programma OCTAVE per l
DettagliAlgoritmi. a.a. 2013/14 Classe 2: matricole dispari
Algoritmi a.a. 2013/14 Classe 2: matricole dispari Marcella Anselmo Presentazioni Info: http://www.di.unisa.it/professori/anselmo/ Orario ricevimento: Lunedì 15-17 Giovedì 12-13 Il mio studio è il n 57
DettagliB-Tree. Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in:
B-Tree Prof. Rudolf Bayer Struttura dati usata in applicazioni che necessitano di gestire insiemi di chiavi ordinate Una variante (B+-Tree) è diffusa in: Filesystem: btrfs, NTFS, ReiserFS, NSS, XFS, JFS
DettagliDAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come. Scopo principale dell informatica è risolvere problemi con i calcolatori.
DAL PROBLEMA ALL'ALGORITMO AL PROGRAMMA SCRITTO IN Come Scopo principale dell informatica è risolvere problemi con i calcolatori. Non tutti i problemi sono risolvibili con i calcolatori. Si può dimostrato
DettagliPARTE III MACCHINE A REGISTRI
PARTE III MACCHINE A REGISTRI Macchine a registri (RAM) Modelli di costo RAM e macchine di Turing Macchine a registri elementari 1 3.1 MACCHINE A REGISTRI (RAM: Random Access Machines) Introdotte da Shepherdson
DettagliGeometria Superiore Esercizi 1 (da consegnare entro... )
Geometria Superiore Esercizi 1 (da consegnare entro... ) In questi esercizi analizziamo il concetto di paracompattezza per uno spazio topologico e vediamo come questo implichi l esistenza di partizioni
DettagliMatematica con il foglio di calcolo
Matematica con il foglio di calcolo Sottotitolo: Classe: V primaria Argomento: Numeri e operazioni Autore: Guido Gottardi, Alberto Battaini Introduzione: l uso del foglio di calcolo offre l opportunità
Dettagli2.2 Scheduling in Linux
Appunti di Sistemi Operativi 28 2.2 Scheduling in Linux In generale, i processi possono essere classificati secondo due schemi: CPU bound vs. I/O bound; interattivi vs. batch vs. real-time. Le due classi
DettagliMATEMATICA GENERALE Prova d esame del 4 giugno 2013 - FILA A
MATEMATICA GENERALE Prova d esame del 4 giugno 2013 - FILA A Nome e cognome Matricola I Parte OBBLIGATORIA (quesiti preliminari: 1 punto ciascuno). Riportare le soluzioni su questo foglio, mostrando i
DettagliPrincipi e Metodologie della Progettazione Meccanica
Principi e Metodologie della Progettazione Meccanica ing. F. Campana a.a. 06-07 Lezione 11: CAE e Ottimizzazione Strutturale Il ruolo dell ottimizzazione nell ambito della progettazione meccanica Durante
DettagliProblemi di Instradamento di Veicoli
Sapienza Università di Roma - Dipartimento di Ingegneria Informatica, Automatica e Gestionale Problemi di Instradamento di Veicoli Renato Bruni bruni@dis.uniroma1.it Il materiale presentato è derivato
DettagliAlgoritmo. I dati su cui opera un'istruzione sono forniti all'algoritmo dall'esterno oppure sono il risultato di istruzioni eseguite precedentemente.
Algoritmo Formalmente, per algoritmo si intende una successione finita di passi o istruzioni che definiscono le operazioni da eseguire su dei dati (=istanza del problema): in generale un algoritmo è definito
DettagliDocumentazione esterna al software matematico sviluppato con MatLab
Documentazione esterna al software matematico sviluppato con MatLab Algoritmi Metodo di Gauss-Seidel con sovrarilassamento Metodo delle Secanti Metodo di Newton Studente Amelio Francesco 556/00699 Anno
DettagliCorso di Tecniche di Programmazione
Corso di Tecniche di Programmazione Corsi di Laurea in Ingegneria Informatica ed Automatica Anno Accedemico 003/004 Proff. Giuseppe De Giacomo, Luca Iocchi, Domenico Lembo Dispensa : Algoritmi di Ordinamento
DettagliLa programmazione con vincoli in breve. La programmazione con vincoli in breve
Obbiettivi Introdurre la nozione di equivalenza di CSP. Dare una introduzione intuitiva dei metodi generali per la programmazione con vincoli. Introdurre il framework di base per la programmazione con
DettagliNote_Batch_Application 04/02/2011
Note Utente Batch Application Cielonext La Batch Application consente di eseguire lavori sottomessi consentendo agli utenti di procedere con altre operazioni senza dover attendere la conclusione dei suddetti
DettagliProcesso di risoluzione di un problema ingegneristico. Processo di risoluzione di un problema ingegneristico
Processo di risoluzione di un problema ingegneristico 1. Capire l essenza del problema. 2. Raccogliere le informazioni disponibili. Alcune potrebbero essere disponibili in un secondo momento. 3. Determinare
DettagliCrittografia. Primalità e Fattorizzazione. Corso di Laurea Specialistica. in Informatica
Crittografia Corso di Laurea Specialistica in Informatica Primalità e Fattorizzazione Alberto Leporati Dipartimento di Informatica, Sistemistica e Comunicazione Università degli Studi di Milano Bicocca
DettagliAlgoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005. Lezione 11
Algoritmi e Strutture Dati II: Parte B Anno Accademico 2004-2005 Docente: Ugo Vaccaro Lezione 11 In questa lezione vedremo alcune applicazioni della tecnica greedy al progetto di algoritmi on-line. Vediamo
DettagliDisconnessione Utente
Home Page La home page di Smart Sales contiene due sezioni per indicare quali criteri di ricerca applicare alle offerte per identificare con facilità quelle che il cliente desidera acquistare. I valori
DettagliINTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI
INTRODUZIONE AGLI ALGORITMI Prima di riuscire a scrivere un programma, abbiamo bisogno di conoscere un metodo risolutivo, cioè un metodo che a partire dai dati di ingresso fornisce i risultati attesi.
DettagliIntroduzione alla programmazione lineare. Mauro Pagliacci
Introduzione alla programmazione lineare Mauro Pagliacci c Draft date 25 maggio 2010 Premessa In questo fascicolo sono riportati gli appunti dalle lezioni del corso di Elaborazioni automatica dei dati
DettagliChiusura lineare. N.B. A può essere indifferentemente un insieme, finito o no, o un sistema. Es.1. Es.2
Chiusura lineare Def. Sia A V (K) con A. Si dice copertura lineare (o chiusura lineare) di A, e si indica con L(A), l insieme dei vettori di V che risultano combinazioni lineari di un numero finito di
DettagliCosa decidete di fare?
Immaginate di aver trovato un lavoretto estivo in un bar All inizio lavorate 5 ore al giorno (5 giorni alla settimana) a 8 euro l ora Poi il padrone del bar impazzisce e vi raddoppia la paga (16 euro all
DettagliCorso di Fondamenti di Informatica e Laboratorio ato o T-AB
Università degli Studi di Bologna Facoltà di Ingegneria Corso di Fondamenti di Informatica e Laboratorio ato o T-AB Corso di Laurea in Ingegneria Elettronica e Telecomunicazioni Prof. Michela Milano Prof.
DettagliRendering air show e verifica della sincronizzazione
Capitolo 5 Rendering air show e verifica della sincronizzazione 5.1 Introduzione Il Rendering 3D dell evoluzioni acrobatiche costituisce uno degli aspetti cruciali dell applicazione realizzata. L ambiente
DettagliFondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2)
Fondamenti dell Informatica Ricorsione e Iterazione Simona Ronchi Della Rocca (dal testo: Kfoury, Moll and Arbib, cap.5.2) Definiamo innanzitutto una relazione d ordine tra le funzioni. Siano φ e ψ funzioni
DettagliPolitecnico di Milano. Reti Wireless. Seminari didattici. Dalla teoria alla soluzione. Ilario Filippini
Politecnico di Milano Reti Wireless Seminari didattici Dalla teoria alla soluzione Ilario Filippini 2 Approccio euristico 3 Obiettivo dell approccio euristico 4 Tipi di euristiche Dalla teoria alla soluzione
DettagliAlgoritmi e Strutture Dati (Mod. B) Introduzione
Algoritmi e Strutture Dati (Mod. B) Introduzione Modulo B Orari Lunedì ore 11-13 aula A6 Mercoledì ore 14-16 aula A6 Ricevimento Martedì ore 14-16 Ufficio 2M13 Dip. Fisica (2 piano edificio M) Laboratori
DettagliPIANO DI LAVORO. a.s. 2015 / 2016
PIANO DI LAVORO a.s. 2015 / 2016 Materia: INFORMATICA Classe: terza informatica- sez. A Data di presentazione: 15/10/2015 DOCENTI FIRMA Cerri Marta Bergamasco Alessandra Posta elettronica: itisleon@tin.it
DettagliSemantica dei programmi. La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma.
Semantica dei programmi La semantica dei programmi è la caratterizzazione matematica dei possibili comportamenti di un programma. Semantica operazionale: associa ad ogni programma la sequenza delle sue
DettagliProgrammazione dinamica
Capitolo 6 Programmazione dinamica 6.4 Il problema della distanza di edit tra due stringhe x e y chiede di calcolare il minimo numero di operazioni su singoli caratteri (inserimento, cancellazione e sostituzione)
DettagliDAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE
DAL PROBLEMA AL CODICE: ATTRAVERSO LO PSEUDOCODICE Il problema Un computer è usato per risolvere dei problemi Prenotazione di un viaggio Compilazione e stampa di un certificato in un ufficio comunale Preparazione
DettagliSemantica Assiomatica
Semantica Assiomatica Anche nella semantica assiomatica, così come in quella operazionale, il significato associato ad un comando C viene definito specificando la transizione tra stati (a partire, cioè,
DettagliProf. Giuseppe Chiumeo. Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto tre strutture di base:
LA STRUTTURA DI RIPETIZIONE La ripetizione POST-condizionale La ripetizione PRE-condizionale INTRODUZIONE (1/3) Avete già studiato che qualsiasi algoritmo appropriato può essere scritto utilizzando soltanto
DettagliCorrettezza. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 10. A. Miola Novembre 2007
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1 Dispensa 10 Correttezza A. Miola Novembre 2007 http://www.dia.uniroma3.it/~java/fondinf1/ Correttezza 1 Contenuti Introduzione alla correttezza
DettagliInterpolazione ed approssimazione di funzioni
Interpolazione ed approssimazione di funzioni Lucia Gastaldi Dipartimento di Matematica, http://dm.ing.unibs.it/gastaldi/ 9 novembre 2007 Outline 1 Polinomi Valutazione di un polinomio Algoritmo di Horner
DettagliDAL DIAGRAMMA AL CODICE
DAL DIAGRAMMA AL CODICE Un diagramma di flusso Appare, come un insieme di blocchi di forme diverse che contengono le istruzioni da eseguire, collegati fra loro da linee orientate che specificano la sequenza
DettagliUNIVERSITA DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA IDRAULICA, MARITTIMA E GEOTECNICA
UNIVERSITA DEGLI STUDI DI PADOVA DIPARTIMENTO DI INGEGNERIA IDRAULICA, MARITTIMA E GEOTECNICA CORSO DI COSTRUZIONI IDRAULICHE A.A. 00-0 PROF. LUIGI DA DEPPO ING. NADIA URSINO ESERCITAZIONE N : Progetto
DettagliEsercizi di Algoritmi e Strutture Dati
Esercizi di Algoritmi e Strutture Dati Moreno Marzolla marzolla@cs.unibo.it 18 marzo 2011 Problema basato su 10.5 del libro di testo La CINA (Compagnia Italiana per il Noleggio di Automobili) dispone di
DettagliSistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
DettagliOfferta in concorrenza perfetta: Cap.6
Offerta in concorrenza perfetta: il lato dei costi Cap.6 Curva di offerta Per capire meglio le origini della curva di offerta consideriamo ora una impresa che debba decidere quale livello di produzione
DettagliLezione 8. La macchina universale
Lezione 8 Algoritmi La macchina universale Un elaboratore o computer è una macchina digitale, elettronica, automatica capace di effettuare trasformazioni o elaborazioni su i dati digitale= l informazione
DettagliOpenDataLazio Formia 9 aprile 2015 Laboratorio. Roberto Angeletti
OpenDataLazio Formia 9 aprile 2015 Laboratorio Roberto Angeletti OpenDataLazio dati.lazio.it Quali dati aperti del Lazio sono subito visualizzabili su una mappa? Troviamo i dati vettoriali catalogati
DettagliGrafici e Pagina web
Grafici e Pagina web Grafici Un grafico utilizza i valori contenuti in un foglio di lavoro per creare una rappresentazione grafica delle relazioni esistenti tra loro. Quando si crea un grafico ogni riga
DettagliProgetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012
Progetto Lauree Scientifiche Liceo Classico L.Ariosto, Ferrara Dipartimento di Matematica Università di Ferrara 24 Gennaio 2012 Concetti importanti da (ri)vedere Programmazione imperativa Strutture di
DettagliOnline Gradient Descent
F94 Metodi statistici per l apprendimento Online Gradient Descent Docente: Nicolò Cesa-Bianchi versione 9 aprile 06 L analisi del Perceptrone ha rivelato come sia possibile ottenere dei maggioranti sul
DettagliMetodologie di programmazione in Fortran 90
Metodologie di programmazione in Fortran 90 Ing. Luca De Santis DIS - Dipartimento di informatica e sistemistica Anno accademico 2007/2008 Fortran 90: Metodologie di programmazione DIS - Dipartimento di
DettagliIl Metodo Branch and Bound
Il Laura Galli Dipartimento di Informatica Largo B. Pontecorvo 3, 56127 Pisa laura.galli@unipi.it http://www.di.unipi.it/~galli 4 Novembre 2014 Ricerca Operativa 2 Laurea Magistrale in Ingegneria Gestionale
DettagliCluster Analysis. La Cluster Analysis è il processo attraverso il quale vengono individuati raggruppamenti dei dati. per modellare!
La Cluster Analysis è il processo attraverso il quale vengono individuati raggruppamenti dei dati. Le tecniche di cluster analysis vengono usate per esplorare i dati e non per modellare! La cluster analysis
DettagliProblem solving avanzato
Problem solving avanzato Formulazione del problema Struttura dati e algoritmo Il programma 2 26 Politecnico di Torino 1 Dati in input (1/4) Sono dati due file di testo, contenenti le informazioni sulle
DettagliMetodi matematici 2 9 giugno 2011
Metodi matematici giugno 0 TEST 6CFU Cognome Nome Matricola Si indichi la soluzione senza procedimento. Nel caso si intenda annullare una risposta crocettare la risposta ritenuta errata. Risultati corretti
Dettagli(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
DettagliCapitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali
Capitolo 6: Modelli di calcolo per linguaggi imperativi e funzionali 1 Modelli imperativi: le RAM (Random Access Machine) I modelli di calcolo imperativi sono direttamente collegati al modello Von Neumann,
DettagliLezione 3: Il problema del consumatore: Il
Corso di Economica Politica prof. Stefano Papa Lezione 3: Il problema del consumatore: Il vincolo di bilancio Facoltà di Economia Università di Roma La Sapienza Il problema del consumatore 2 Applichiamo
DettagliCAPITOLO V. DATABASE: Il modello relazionale
CAPITOLO V DATABASE: Il modello relazionale Il modello relazionale offre una rappresentazione matematica dei dati basata sul concetto di relazione normalizzata. I principi del modello relazionale furono
DettagliRSA. Chiavi RSA. Firma Digitale. Firma Digitale. Firma Digitale. Desiderata per la Firma Digitale. Corso di Sicurezza su Reti 1
firma Firma Digitale Equivalente alla firma convenzionale firma Firma Digitale Equivalente alla firma convenzionale Soluzione naive: incollare firma digitalizzata Firma Digitale 0 Firma Digitale 1 firma
DettagliOttimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni
Ottimizzazione nella gestione dei progetti Capitolo 4: la gestione dei costi (Programmazione multimodale): formulazioni CARLO MANNINO Università di Roma La Sapienza Dipartimento di Informatica e Sistemistica
DettagliCorso di Programmazione Algoritmi Fondamentali. Minimo fra 3 valori. Minimo fra 3 valori Algoritmo. Dott. Pasquale Lops
Materiale didattico preparato dal dott. Stefano Ferilli Corso di Programmazione Algoritmi Fondamentali Dott. Pasquale Lops lops@di.uniba.it Corso di Programmazione - DIB 1/249 Minimo fra 3 valori Trovare
DettagliPROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI
PROBLEMA DELLA RICERCA DI UN ELEMENTO IN UN ARRAY E ALGORITMI RISOLUTIVI PROBLEMA DELLA RICERCA in termini generali: Dati in input un insieme S di elementi (numeri, caratteri, stringhe, ) e un elemento
DettagliLa macchina universale
La macchina universale Una immediata conseguenza della dimostrazione è la seguente Corollario il linguaggio L H = {M (w) M rappresenta una macchina di Turing che si ferma con input w} sull alfabeto {0,1}*
DettagliBarriere assorbenti nelle catene di Markov e una loro applicazione al web
Università degli studi di Roma Tre Facoltà di Scienze Matematiche Fisiche e Naturali Corso di Laurea in Matematica Sintesi relativa alla Tesi di Laurea in Matematica di Giulio Simeone Barriere assorbenti
Dettagli3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE. E. Amaldi Fondamenti di R.O. Politecnico di Milano 1
3 CENNI DI TEORIA DELLA COMPLESSITA COMPUTAZIONALE E. Amaldi Fondamenti di R.O. Politecnico di Milano 1 Scopo: Stimare l onere computazionale per risolvere problemi di ottimizzazione e di altra natura
DettagliFeature Selection per la Classificazione
1 1 Dipartimento di Informatica e Sistemistica Sapienza Università di Roma Corso di Algoritmi di Classificazione e Reti Neurali 20/11/2009, Roma Outline Feature Selection per problemi di Classificazione
DettagliTEORIA RELAZIONALE: INTRODUZIONE
TEORIA RELAZIONALE: INTRODUZIONE Tre metodi per produrre uno schema relazionale: a) Partire da un buon schema a oggetti e tradurlo b) Costruire direttamente le relazioni e poi correggere quelle che presentano
Dettagli