Programmazione dinamica

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Programmazione dinamica"

Transcript

1 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) per trasformare x in y (o viceversa). Fornire un algoritmo quadratico di programmazione dinamica per calcolare la distanza di edit tra x e y Progettare l algoritmo per stampare il massimo insieme indipendente di un albero Progettare un algoritmo di programmazione dinamica per trovare la sequenza di moltiplicazioni che minimizzi il costo complessivo del prodotto A = A 0 A 1 A n 1 di n matrici, dove la loro taglia è specificata mediante una sequenza di n+1 interi positivi d 0,d 1,...,d n : la matrice A i ha taglia d i d i+1 per 0 i n 1. Ipotizzare che il costo della moltiplicazione di due matrici di taglia r s e s t sia proporzionale a r s t. Soluzioni 6.4 Applichiamo il paradigma della programmazione dinamica per il calcolo della distanza di edit, in tempo polinomiale O(mn) dove m = x e n = y. Definiamo una notazione per la distanza di edit tra un prefisso di x e uno di y D(i,j)=edit(x[0,i 1],y[0,j 1]) dove 0 i m e0 j n (adottiamo la convenzione che x[0, 1] sia vuota e che x[0, 1] sia vuota). Osserviamo che D(m, n) fornisce la soluzione al nostro problema e definiamo i sotto-problemi elementari come D(i, 0)=i e D(0, j)=j, in quanto se (almeno)

2 18 Capitolo 6 Programmazione dinamica una delle sequenze è vuota, allora occorrono un numero di operazioni di edit pari alla lunghezza dell altra stringa. Forniamo la definizione ricorsiva in termini dei sotto-problemi D(i, j) per i>0 e j>0, secondo la seguente regola: D(i, j)=min max{i,j} se i = 0oj = 0 D(i 1,j 1) se i,j>0ex[i 1]=y[j 1] D(i 1,j 1)+1 se i,j>0ex[i 1] = y[j 1] D(i,j 1)+1 se j>0ex[i 1] = y[j 1] D(i 1,j)+1 se i>0ex[i 1] = y[j 1] (6.1) La prima riga della regola in (6.1) riporta i valori per i sotto-problemi elementari (i 0 o j 0). Le successive quattro righe in (6.1) descrivono come ricombinare le soluzioni dei sotto-problemi (i,j>0): x[i 1] =y[j 1]: se k = D(i 1,j 1) è l edit distnace per x[0,i 2] e y[0,j 2], allora k + 1 lo è per x[0,i 1] e y[0,j 1], in quanto il loro ultimo elemento è uguale; x[i 1] = y[j 1]: se D(i 1,j 1), D(i,j 1) e D(i 1,j) sono le distanze di edit, allora la minima tra queste più uno fornisce la distanza D(i,j), perché dobbiamo sicurante effettuare una sostituzione, una cancellazione o una inserzione. 1 EDIT( a, b ): pre: x e y sono di lunghezza m e n 2 for (i = 0; i <= m; i = i+1) 3 distanza[i][0] = i; 4 for (j = 0; j <= n; j = j+1) 5 distanza[0][j] = j; 6 for (i = 1; i <= m; i = i+1) 7 for (j = 1; j <= n; j = j+1) { 8 if (x[i-1] == y[j-1]) { 9 distanza[i][j] = distanza[i-1][j-1]; 10 } else { 11 distanza[i][j] = 1 + MIN{ distanza[i-1][j-1], distanza[i][j-1], distanza[i-1][j] }; 12 } 13 } 14 return distanza[m][n]; 6.11 La modifica è semplice poiché basta stabilire se il nodo corrente contribuisce o meno al massimo insieme indipendente di un albero. Ipotizziamo per

3 Programmare algoritmi 19 semplicità che ogni nodo u abbia due campi dove è stato memorizzato il corrispondente valore di sizet e sizef. La chiama iniziale è con u uguale alla radice dell albero ed escluso posto a false. 1 Stampa( u, escluso ): 2 if (u.primo == null) return; 3 if (escluso) { 4 for (v = u.primo; v!= NULL; v = v.fratello) { 5 Stampa( v, false ); 6 } 7 } else { 8 if (u.sizet >= sizef) { 9 print u; 10 for (v = u.primo; v!= NULL; v = v.fratello) { 11 Stampa( v, true ); 12 } 13 } else { 14 for (v = u.primo; v!= NULL; v = v.fratello) { 15 Stampa( v, false ); 16 } 17 } 18 } 6.17 Applichiamo la programmazione dinamica al calcolo della sequenza ottima di moltiplicazioni di n>2 matrici A = A 0 A 1 A n 1. Ai fini della nostra discussione, utilizziamo l algoritmo immediato che moltiplica due matrici di taglia r s e s t con l ipotesi semplificativa che tale algoritmo richieda un numero di operazioni esattamente pari a r s t, notando che quanto descritto si applica anche agli algoritmi più veloci come quello di Strassen. Dovendo eseguire n 1 moltiplicazioni per ottenere A, osserviamo che l ordine con cui le eseguiamo può cambiare il costo totale quando le matrici hanno taglia differente: nel seguito indichiamo con d i d i+1 la taglia della matrice A i, dove 0 i n 1. Date ad esempio n = 4 matrici tali che d 0 = 100, d 1 = 20, d 2 = 1000, d 3 = 2ed 4 = 50, nella seguente tabella mostriamo con le parentesi tutti i possibili ordini di valutazione del loro prodotto A = A 0 A 1 A 2 A 3 (di taglia d 0 d 4 ), riportando il corrispettivo costo totale di esecuzione per ottenere A :

4 20 Capitolo 6 Programmazione dinamica (A 0 (A 1 (A 2 A 3 )) d 2 d 3 d 4 + d 1 d 2 d 4 + d 0 d 1 d 4 = (A 0 ((A 1 A 2 ) A 3 ) d 1 d 2 d 3 + d 1 d 3 d 4 + d 0 d 1 d 4 = ((A 0 A 1 ) (A 2 A 3 )) d 0 d 1 d 2 + d 2 d 3 d 4 + d 0 d 2 d 4 = (((A 0 A 1 ) A 2 ) A 3 ) d 0 d 1 d 2 + d 0 d 2 d 3 + d 0 d 3 d 4 = ((A 0 (A 1 A 2 )) A 3 ) d 1 d 2 d 3 + d 0 d 1 d 3 + d 0 d 3 d 4 = Per esempio, la quarta riga corrisponde all ordine naturale di moltiplicazione da sinistra verso destra: la moltiplicazione A 0 A 1 richiede d 0 d 1 d 2 operazioni e restituisce una matrice di taglia d 0 d 2 ; la successiva moltiplicazione per A 2 richiede d 0 d 2 d 3 operazioni e restituisce una matrice di taglia d 0 d 3 ); l ultima moltiplicazione per A 3 richiede d 0 d 3 d 4 operazioni. Sommando tali costi e sostituendo i valori di d 0,...,d 4, otteniamo un totale di operazioni. Le altre righe della tabella mostrano che il costo complessivo del prodotto può variare in dipendenza dell ordine in cui sono effettuate le singole moltiplicazioni per ottenere lo stesso risultato: in questo caso, appare molto più conveniente effettuare le moltiplicazioni nell ordine indicato nella quinta riga, che fornisce un costo di sole operazioni. Il problema che ci poniamo è quello di trovare la sequenza di moltiplicazioni che minimizzi il costo complessivo del prodotto A = A 0 A 1 A n 1 per una data sequenza di n + 1 interi positivi d 0,d 1,...,d n (ricordiamo la nostra ipotesi che il costo della moltiplicazione di due matrici di taglia r s e s t sia pari a r s t). Possiamo ottenere un modo efficiente di affrontare il problema considerando il sotto-problema di trovare il costo per effettuare il prodotto di un gruppo consecutivo di matrici, A i A i+1 A j, dove 0 i j n 1, indicando con M(i, j) il corrispondente costo minimo: chiaramente, in tal modo siamo anche in grado di risolvere il problema iniziale calcolando M(0,n 1). Possiamo immediatamente notare che M(i, i)=0 per ogni i, in quanto ha costo nullo calcolare il prodotto della sequenza composta dalla sola matrice A i. Se passiamo al caso di M(i,j) con i<j, osserviamo che possiamo ottenere la matrice A i A i+1 A j (di taglia d i d j+1 ) fattorizzandola come una moltiplicazione tra A i A r (di taglia d i d r+1 )ea r+1 A j (di taglia d r+1 d j+1 ), per un qualunque intero r tale che i r<j. Il costo di tale moltiplicazione è pari a d i d r+1 d j+1, a cui vanno aggiunti i costi minimi M(i,r) e M(r + 1,j) per calcolare rispettivamente A i A r e A r+1 A j. Supponiamo di aver già calcolato induttivamente quest ultimi costi per tutti i possibili valori r con i r<j: allora il costo minimo M(i,j) sarà dato dal minimo, al variare di r, tra i valori M(i,r)+M(r + 1,j)+d i d r+1 d j+1. Da

5 Programmare algoritmi 21 1 CostoMinimoIterativo( ): 2 for (i = 0; i < n; i = i+1) { 3 costi[i][i] = 0; 4 } 5 for (diagonale = 1; diagonale < n; diagonale = diagonale+1) { 6 for (i = 0; i < n-diagonale; i = i+1) { 7 j = i + diagonale; 8 costi[i][j] = + ; 9 for (r = i; r < j; r = r+1) { 10 costo = costi[i][r] + costi[r+1][j]; 11 costo = costo + d[i] d[r+1] d[j+1]; 12 if (costo < costi[i][j]) { 13 costi[i][j] = costo; 14 indice[i][j] = r; 15 } 16 } 17 } 18 } 19 return costi[0][n-1]; Codice 6.1 Algoritmo iterativo per il calcolo dei costi minimi di moltiplicazione M(i,j). ciò deriva la seguente regola ricorsiva: 0 M(i,j)= min ir<j M(i,r)+M(r + 1,j)+di d r+1 d j+1 se i j altrimenti (6.2) Calcoliamo una sola volta i valori M(i, j) memorizzandoli in una tabella dei costi, realizzata mediante un array bidimensionale costi di taglia n n, in modo tale che costi[i][j] =M(i, j) per 0 i j n 1 (gli elementi della tabella corrispondenti a valori di i e j tali che i>jnon sono utilizzati dall algoritmo). L algoritmo descritto nel Codice 6.1 effettua il calcolo dei valori M(i, j) secondo quanto appena illustrato e, basandosi sulla regola in (6.2), riempie l array costi dal basso in alto, a partire dai valori costi[i][i], per 0 i<n, fino a ottenere il valore costi[0][n 1] da restituire. A partire dai valori noti costi[i][i] =0 sulla diagonale 0 (righe 2 3), l algoritmo determina tutti i valori costi[i][j] sulla diagonale 1 (con 0 i<n 1e j = i +1), poi quelli sulla diagonale 2 (con 0 i<n 2ej = i +2), e così via, fino al valore costi[0][n 1] sulla diagonale n 1 (righe 5 18): come possiamo notare, gli elementi su una data diagonale sono identificati nel codice dai

6 22 Capitolo 6 Programmazione dinamica due indici i e j tali che 0 i<n diagonale e j = i + diagonale. A ogni iterazione, il ciclo alle righe 9 16 calcola il minimo costo. Osserviamo che la complessità dell algoritmo nel Codice 6.1 è polinomiale, in quanto esegue tre cicli annidati, ciascuno di n iterazioni al più, per un totale di O(n 3 ) operazioni (chiaramente, le istruzioni all interno di tali cicli possono essere eseguite in tempo costante rispetto al numero n di matrici da moltiplicare). Nel corso della sua esecuzione, inoltre, l algoritmo usa le matrici costi e indice, aventi ciascuna n righe e n colonne, e una quantità costante di altre locazioni di memoria. Da ciò possiamo concludere che la complessità temporale dell algoritmo è O(n 3 ), mentre la sua complessità spaziale è O(n 2 ).

4. Operazioni elementari per righe e colonne

4. Operazioni elementari per righe e colonne 4. Operazioni elementari per righe e colonne Sia K un campo, e sia A una matrice m n a elementi in K. Una operazione elementare per righe sulla matrice A è una operazione di uno dei seguenti tre tipi:

Dettagli

Parte 2. Determinante e matrice inversa

Parte 2. Determinante e matrice inversa Parte. Determinante e matrice inversa A. Savo Appunti del Corso di Geometria 013-14 Indice delle sezioni 1 Determinante di una matrice, 1 Teorema di Cramer (caso particolare), 3 3 Determinante di una matrice

Dettagli

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione.

Quando A e B coincidono una coppia ordinata é determinata anche dalla loro posizione. Grafi ed Alberi Pag. /26 Grafi ed Alberi In questo capitolo richiameremo i principali concetti di due ADT che ricorreranno puntualmente nel corso della nostra trattazione: i grafi e gli alberi. Naturale

Dettagli

Esercizi Capitolo 5 - Alberi

Esercizi Capitolo 5 - Alberi Esercizi Capitolo 5 - Alberi Alberto Montresor 19 Agosto, 2014 Alcuni degli esercizi che seguono sono associati alle rispettive soluzioni. Se il vostro lettore PDF lo consente, è possibile saltare alle

Dettagli

La ricorsione. Politecnico di Milano Sede di Cremona

La ricorsione. Politecnico di Milano Sede di Cremona La ricorsione Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Definizioni ricorsive Sono comuni

Dettagli

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table

Universita' di Ferrara Dipartimento di Matematica e Informatica. Algoritmi e Strutture Dati. Rappresentazione concreta di insiemi e Hash table Universita' di Ferrara Dipartimento di Matematica e Informatica Algoritmi e Strutture Dati Rappresentazione concreta di insiemi e Hash table Copyright 2006-2015 by Claudio Salati. Lez. 9a 1 Rappresentazione

Dettagli

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice

+ / operatori di confronto (espressioni logiche/predicati) / + 5 3 9 = > < Pseudo codice. Pseudo codice Pseudo codice Pseudo codice Paolo Bison Fondamenti di Informatica A.A. 2006/07 Università di Padova linguaggio testuale mix di linguaggio naturale ed elementi linguistici con sintassi ben definita e semantica

Dettagli

AA 2006-07 LA RICORSIONE

AA 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

Dettagli

Rapida Introduzione all uso del Matlab Ottobre 2002

Rapida Introduzione all uso del Matlab Ottobre 2002 Rapida Introduzione all uso del Matlab Ottobre 2002 Tutti i tipi di dato utilizzati dal Matlab sono in forma di array. I vettori sono array monodimensionali, e così possono essere viste le serie temporali,

Dettagli

PROBLEMA 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 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

Dettagli

Introduzione al linguaggio C Gli array

Introduzione al linguaggio C Gli array Introduzione al linguaggio C Gli array Vettori nome del vettore (tutti gli elementi hanno lo stesso nome, c) Vettore (Array) Gruppo di posizioni (o locazioni di memoria) consecutive Hanno lo stesso nome

Dettagli

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java

Fondamenti di Informatica. Dichiarazione, creazione e gestione di array in Java Fondamenti di Informatica Dichiarazione, creazione e gestione di array in Java Array in Java - creazione La creazione fa una inizializzazione implicita: num = new int[10]; con valore 0 per int e double,

Dettagli

Esercizi per il corso di Algoritmi e Strutture Dati

Esercizi 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

Dettagli

Matematica B - a.a 2006/07 p. 1

Matematica B - a.a 2006/07 p. 1 Matematica B - a.a 2006/07 p. 1 Definizione 1. Un sistema lineare di m equazioni in n incognite, in forma normale, è del tipo a 11 x 1 + + a 1n x n = b 1 a 21 x 1 + + a 2n x n = b 2 (1) = a m1 x 1 + +

Dettagli

Minimizzazione di Reti Logiche Combinatorie Multi-livello

Minimizzazione di Reti Logiche Combinatorie Multi-livello Minimizzazione di Reti Logiche Combinatorie Multi-livello Maurizio Palesi Maurizio Palesi 1 Introduzione Obiettivo della sintesi logica: ottimizzazione delle cifre di merito area e prestazioni Prestazioni:

Dettagli

Esercitazione 7. Procedure e Funzioni

Esercitazione 7. Procedure e Funzioni Esercitazione 7 Procedure e Funzioni Esercizio Scrivere un programma che memorizza in un array di elementi di tipo double le temperature relative al mese corrente e ne determina la temperatura massima,

Dettagli

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t.

if t>=0 x=1; else x=0; end fornisce, nella variabile x, il valore della funzione gradino a tempi continui, calcolata in t. Il programma MATLAB In queste pagine si introduce in maniera molto breve il programma di simulazione MAT- LAB (una abbreviazione di MATrix LABoratory). Introduzione MATLAB è un programma interattivo di

Dettagli

Gli algoritmi. Gli algoritmi. Analisi e programmazione

Gli algoritmi. Gli algoritmi. Analisi e programmazione Gli algoritmi Analisi e programmazione Gli algoritmi Proprietà ed esempi Costanti e variabili, assegnazione, istruzioni, proposizioni e predicati Vettori e matrici I diagrammi a blocchi Analisi strutturata

Dettagli

Flusso a costo minimo e simplesso su reti

Flusso a costo minimo e simplesso su reti Flusso a costo minimo e simplesso su reti La particolare struttura di alcuni problemi di PL può essere talvolta utilizzata per la progettazione di tecniche risolutive molto più efficienti dell algoritmo

Dettagli

Da una a più variabili: derivate

Da una a più variabili: derivate Da una a più variabili: derivate ( ) 5 gennaio 2011 Scopo di questo articolo è di evidenziare le analogie e le differenze, relativamente al calcolo differenziale, fra le funzioni di una variabile reale

Dettagli

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1

CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 1.1 Che cos è un algoritmo CAPITOLO PRIMO IL CONCETTO DI ALGORITMO 1 Gli algoritmi sono metodi per la soluzione di problemi. Possiamo caratterizzare un problema mediante i dati di cui si dispone all inizio

Dettagli

METODI ITERATIVI PER SISTEMI LINEARI

METODI ITERATIVI PER SISTEMI LINEARI METODI ITERATIVI PER SISTEMI LINEARI LUCIA GASTALDI 1. Metodi iterativi classici Sia A R n n una matrice non singolare e sia b R n. Consideriamo il sistema (1) Ax = b. Un metodo iterativo per la soluzione

Dettagli

Verifica che una grammatica sia Context Free nel GrammaReader

Verifica che una grammatica sia Context Free nel GrammaReader Verifica che una grammatica sia Context Free nel GrammaReader Sommario Dispensa di Linguaggi di Programmazione Corrado Mencar Pasquale Lops In questa dispensa si descrivono alcune soluzioni per verificare

Dettagli

LEZIONE 14. a 1,1 v 1 + a 1,2 v 2 + a 1,3 v 3 + + a 1,n 1 v n 1 + a 1,n v n = w 1

LEZIONE 14. a 1,1 v 1 + a 1,2 v 2 + a 1,3 v 3 + + a 1,n 1 v n 1 + a 1,n v n = w 1 LEZIONE 14 141 Dimensione di uno spazio vettoriale Abbiamo visto come l esistenza di una base in uno spazio vettoriale V su k = R, C, permetta di sostituire a V, che può essere complicato da trattare,

Dettagli

I file di dati. Unità didattica D1 1

I file di dati. Unità didattica D1 1 I file di dati Unità didattica D1 1 1) I file sequenziali Utili per la memorizzazione di informazioni testuali Si tratta di strutture organizzate per righe e non per record Non sono adatte per grandi quantità

Dettagli

Dimensione di uno Spazio vettoriale

Dimensione di uno Spazio vettoriale Capitolo 4 Dimensione di uno Spazio vettoriale 4.1 Introduzione Dedichiamo questo capitolo ad un concetto fondamentale in algebra lineare: la dimensione di uno spazio vettoriale. Daremo una definizione

Dettagli

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12

Seconda Prova di Ricerca Operativa. Cognome Nome Numero Matricola A 1/12 A 2/12 A / A / Seconda Prova di Ricerca Operativa Cognome Nome Numero Matricola Nota: LA RISOLUZIONE CORRETTA DEGLI ESERCIZI CONTRADDISTINTI DA UN ASTERISCO È CONDIZIONE NECESSARIA PER IL RAGGIUNGIMENTO DELLA

Dettagli

Parte 3. Rango e teorema di Rouché-Capelli

Parte 3. Rango e teorema di Rouché-Capelli Parte 3. Rango e teorema di Rouché-Capelli A. Savo Appunti del Corso di Geometria 203-4 Indice delle sezioni Rango di una matrice, 2 Teorema degli orlati, 3 3 Calcolo con l algoritmo di Gauss, 6 4 Matrici

Dettagli

MATRICI E DETERMINANTI

MATRICI E DETERMINANTI MATRICI E DETERMINANTI 1. MATRICI Si ha la seguente Definizione 1: Un insieme di numeri, reali o complessi, ordinati secondo righe e colonne è detto matrice di ordine m x n, ove m è il numero delle righe

Dettagli

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di

RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di RICORSIONE - schema ricorsivo (o induttivo) si esegue l'azione S, su un insieme di dati D, mediante eventuale esecuzione di esempio CERCA 90 NEL SACCHETTO = estrai num Casi num 90 Effetti CERCA 90 NEL

Dettagli

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee

Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Algoritmo euclideo, massimo comun divisore ed equazioni diofantee Se a e b sono numeri interi, si dice che a divide b, in simboli: a b, se e solo se esiste c Z tale che b = ac. Si può subito notare che:

Dettagli

Sottoprogrammi: astrazione procedurale

Sottoprogrammi: astrazione procedurale Sottoprogrammi: astrazione procedurale Incapsulamento di un segmento di programma presente = false; j = 0; while ( (j

Dettagli

Ricorsione. Corso di Fondamenti di Informatica

Ricorsione. Corso di Fondamenti di Informatica Dipartimento di Informatica e Sistemistica Antonio Ruberti Sapienza Università di Roma Ricorsione Corso di Fondamenti di Informatica Laurea in Ingegneria Informatica (Canale di Ingegneria delle Reti e

Dettagli

Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante

Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante Introduzione Il problema del massimo flusso. Preflow-push e augmenting path: un approccio unificante Il problema del massimo flusso è uno dei fondamentali problemi nell ottimizzazione su rete. Esso è presente

Dettagli

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni

Le funzioni. Funzioni. Funzioni. Funzioni. Funzioni. Funzioni Funzioni Le funzioni Con il termine funzione si intende, in generale, un operatore che, applicato a un insieme di operandi, consente di calcolare un risultato, come avviene anche per una funzione matematica

Dettagli

1) Primi semplici programmi in C++: ingresso e uscita di informazioni

1) Primi semplici programmi in C++: ingresso e uscita di informazioni 1) Primi semplici programmi in C++: ingresso e uscita di informazioni Ecco un primo esempio di programma in linguaggio C++: Esempio 1.1 /* QUESTO PROGRAMMA MOLTIPLICA 3 PER 5 E SOMMA 7 AL RISULTATO DEL

Dettagli

Fondamenti 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) 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

Dettagli

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani

Ricerca Operativa Esercizi sul metodo del simplesso. Luigi De Giovanni, Laura Brentegani Ricerca Operativa Esercizi sul metodo del simplesso Luigi De Giovanni, Laura Brentegani 1 1) Risolvere il seguente problema di programmazione lineare. ma + + 3 s.t. 2 + + 2 + 2 + 3 5 2 + 2 + 6,, 0 Soluzione.

Dettagli

Le variabili. Olga Scotti

Le variabili. Olga Scotti Le variabili Olga Scotti Cos è una variabile Le variabili, in un linguaggio di programmazione, sono dei contenitori. Possono essere riempiti con un valore che poi può essere riletto oppure sostituito.

Dettagli

Arduino: Programmazione

Arduino: Programmazione Programmazione formalmente ispirata al linguaggio C da cui deriva. I programmi in ARDUINO sono chiamati Sketch. Un programma è una serie di istruzioni che vengono lette dall alto verso il basso e convertite

Dettagli

Elementi di semantica denotazionale ed operazionale

Elementi di semantica denotazionale ed operazionale Elementi di semantica denotazionale ed operazionale 1 Contenuti! sintassi astratta e domini sintattici " un frammento di linguaggio imperativo! semantica denotazionale " domini semantici: valori e stato

Dettagli

Esame di Ricerca Operativa del 20/12/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 20/12/13. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare: Esame di Ricerca Operativa del 0// (Cognome) (Nome) (Corso di laurea) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x + x x +x x x x x x x 0 x x

Dettagli

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica

Algebra di Boole: Concetti di base. Fondamenti di Informatica - D. Talia - UNICAL 1. Fondamenti di Informatica Fondamenti di Informatica Algebra di Boole: Concetti di base Fondamenti di Informatica - D. Talia - UNICAL 1 Algebra di Boole E un algebra basata su tre operazioni logiche OR AND NOT Ed operandi che possono

Dettagli

Abstract Data Type (ADT)

Abstract Data Type (ADT) Abstract Data Type Pag. 1/10 Abstract Data Type (ADT) Iniziamo la nostra trattazione presentando una nozione che ci accompagnerà lungo l intero corso di Laboratorio Algoritmi e Strutture Dati: il Tipo

Dettagli

Studente: SANTORO MC. Matricola : 528

Studente: SANTORO MC. Matricola : 528 CORSO di LAUREA in INFORMATICA Corso di CALCOLO NUMERICO a.a. 2004-05 Studente: SANTORO MC. Matricola : 528 PROGETTO PER L ESAME 1. Sviluppare una versione dell algoritmo di Gauss per sistemi con matrice

Dettagli

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto

Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto Università degli studi di Camerino Scuola di scienze e tecnologia - Sezione Informatica Programmazione C Massimo Callisto De Donato massimo.callisto@unicam.it www.cs.unicam.it/massimo.callisto LEZIONE

Dettagli

Programmazione Funzionale

Programmazione Funzionale Programmazione Funzionale LP imperativi: apparenza simile modello di progettazione = macchina fisica Famiglia dei LP imperativi = progressivo miglioramento del FORTRAN Obiezione: pesante aderenza dei LP

Dettagli

Appunti sull uso di matlab - I

Appunti sull uso di matlab - I Appunti sull uso di matlab - I. Inizializazione di vettori.. Inizializazione di matrici.. Usare gli indici per richiamare gli elementi di un vettore o una matrice.. Richiedere le dimensioni di una matrice

Dettagli

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti

Funzioni matlab per la gestione dei file. Informatica B Prof. Morzenti Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla

Dettagli

Le Stringhe. Un introduzione operativa. Luigi Palopoli

Le Stringhe. Un introduzione operativa. Luigi Palopoli Le Stringhe p.1/19 Le Stringhe Un introduzione operativa Luigi Palopoli ReTiS Lab - Scuola Superiore S. Anna Viale Rinaldo Piaggio 34 Pontedera - Pisa Tel. 050-883444 Email: palopoli@sssup.it URL: http://feanor.sssup.it/

Dettagli

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi

Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi Le funzioni di shell La bash supporta la programmazione procedurale e prevede la possibilità di definire funzioni utilizzando le sintassi alternative: function nome { lista-comandi } oppure nome ( ) {

Dettagli

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007 Dott.Davide Di Ruscio Dipartimento di Informatica Università degli Studi di L Aquila Lezione del 08/03/07 Nota Questi lucidi sono tratti

Dettagli

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C

GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C GUIDA ALLA PROGRAMMAZIONE GRAFICA IN C.:luxx:. PREMESSE In questa guida non verranno trattati i costrutti di flusso, le funzioni, o comunque le caratteristiche del linguaggio, che si danno come presupposte.

Dettagli

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA

UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA UNA LEZIONE SUI NUMERI PRIMI: NASCE LA RITABELLA Tutti gli anni, affrontando l argomento della divisibilità, trovavo utile far lavorare gli alunni sul Crivello di Eratostene. Presentavo ai ragazzi una

Dettagli

STUDIO DEL SEGNO DI UNA FUNZIONE

STUDIO DEL SEGNO DI UNA FUNZIONE STUDIO DEL SEGNO DI UNA FUNZIONE Quando si studia una funzione! " #$%&' (funzione reale di variabile reale) è fondamentale conoscere il segno, in altre parole sapere per quali valori di &( #$%&'$è positiva,

Dettagli

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione

Alberi binari. Ilaria Castelli castelli@dii.unisi.it A.A. 2009/2010. Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione Alberi binari Ilaria Castelli castelli@dii.unisi.it Università degli Studi di Siena Dipartimento di Ingegneria dell Informazione A.A. 2009/2010 I. Castelli Alberi binari, A.A. 2009/2010 1/20 Alberi binari

Dettagli

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno

GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno GeoGebra 4.2 Introduzione all utilizzo della Vista CAS per il secondo biennio e il quinto anno La Vista CAS L ambiente di lavoro Le celle Assegnazione di una variabile o di una funzione / visualizzazione

Dettagli

Lab. 1 - Introduzione a Matlab

Lab. 1 - Introduzione a Matlab Lab. 1 - Introduzione a Matlab Alcune informazioni su Matlab Matlab è uno strumento per il calcolo scientifico utilizzabile a più livelli, dalla calcolatrice tascabile, alla simulazione ed analisi di sistemi

Dettagli

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE

ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE ALGEBRA: LEZIONI DAL 13 OTTOBRE AL 3 NOVEMBRE 1 DIPENDENZA E INDIPENDENZA LINEARE Se ho alcuni vettori v 1, v 2,, v n in uno spazio vettoriale V, il sottospazio 1 W = v 1,, v n di V da loro generato è

Dettagli

Approssimazione polinomiale di funzioni e dati

Approssimazione polinomiale di funzioni e dati Approssimazione polinomiale di funzioni e dati Approssimare una funzione f significa trovare una funzione f di forma più semplice che possa essere usata al posto di f. Questa strategia è utilizzata nell

Dettagli

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247

Cos è una stringa (1) Stringhe. Leggere e scrivere stringhe (1) Cos è una stringa (2) DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Cos è una stringa (1) Stringhe DD Cap. 8 pp. 305-341 KP Cap. 6 pp. 241-247 Una stringa è una serie di caratteri trattati come una singola unità. Essa potrà includere lettere, cifre, simboli e caratteri

Dettagli

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati

Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Realizzazione di Politiche di Gestione delle Risorse: i Semafori Privati Condizione di sincronizzazione Qualora si voglia realizzare una determinata politica di gestione delle risorse,la decisione se ad

Dettagli

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31

Le Liste. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Le Liste 1 / 31 Le Liste Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Le Liste 1 / 31 Cos è una Lista Una lista è una collezione di elementi omogenei che: potrebbero

Dettagli

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3

RICORSIVITA. Vediamo come si programma la soluzione ricorsiva al problema precedente: Poniamo S 1 =1 S 2 =1+2 S 3 =1+2+3 RICORSIVITA 1. Cos è la ricorsività? La ricorsività è un metodo di soluzione dei problemi che consiste nell esprimere la soluzione relativa al caso n in funzione della soluzione relativa al caso n-1. La

Dettagli

Breve introduzione al metodo del Analytic Hierarchy Process (AHP)

Breve introduzione al metodo del Analytic Hierarchy Process (AHP) Breve introduzione al metodo del Analytic Hierarchy Process (AHP) Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova 2 Il metodo SAW costruisce un peso con cui valutare le alternative

Dettagli

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori

Gli array. Gli array. Gli array. Classi di memorizzazione per array. Inizializzazione esplicita degli array. Array e puntatori Gli array Array e puntatori Laboratorio di Informatica I un array è un insieme di elementi (valori) avente le seguenti caratteristiche: - un array è ordinato: agli elementi dell array è assegnato un ordine

Dettagli

Editor vi. Editor vi

Editor vi. Editor vi Editor vi vi 1 Editor vi Il vi è l editor di testo standard per UNIX, è presente in tutte le versioni base e funziona con qualsiasi terminale a caratteri Permette di visualizzare una schermata alla volta

Dettagli

Esercizi su lineare indipendenza e generatori

Esercizi su lineare indipendenza e generatori Esercizi su lineare indipendenza e generatori Per tutto il seguito, se non specificato esplicitamente K indicherà un campo e V uno spazio vettoriale su K Cose da ricordare Definizione Dei vettori v,,v

Dettagli

Dispense del Corso di Algoritmi e Strutture Dati

Dispense del Corso di Algoritmi e Strutture Dati Dispense del Corso di Algoritmi e Strutture Dati Marco Bernardo Edoardo Bontà Università degli Studi di Urbino Carlo Bo Facoltà di Scienze e Tecnologie Corso di Laurea in Informatica Applicata Versione

Dettagli

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati

Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Algoritmi Algoritmi Risolvere un problema significa individuare un procedimento che permetta di arrivare al risultato partendo dai dati Il procedimento (chiamato algoritmo) è composto da passi elementari

Dettagli

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora:

Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: Iniziamo con un esercizio sul massimo comun divisore: Esercizio 1. Sia d = G.C.D.(a, b), allora: G.C.D.( a d, b d ) = 1 Sono state introdotte a lezione due definizioni importanti che ricordiamo: Definizione

Dettagli

Esame di Ricerca Operativa del 18/12/12. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare:

Esame di Ricerca Operativa del 18/12/12. Esercizio 1. Completare la seguente tabella considerando il problema di programmazione lineare: Esame di Ricerca Operativa del 8// (Cognome) (Nome) (Corso di laurea) Esercizio. Completare la seguente tabella considerando il problema di programmazione lineare: max x x x x x x x + x x x + x 8 x Base

Dettagli

Appunti di Logica Matematica

Appunti di Logica Matematica Appunti di Logica Matematica Francesco Bottacin 1 Logica Proposizionale Una proposizione è un affermazione che esprime un valore di verità, cioè una affermazione che è VERA oppure FALSA. Ad esempio: 5

Dettagli

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case

La fase di realizzazione. La fase di realizzazione (cont.) Traduzione in Java del diagramma degli use case Università degli Studi di Roma La Sapienza Corso di Laurea in Ingegneria dell Informazione Sede di Latina Corso di Laurea in Ingegneria dell Informazione Consorzio Nettuno La fase di realizzazione si occupa

Dettagli

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti

Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova. Metodi per supportare le decisioni relative alla gestione di progetti Project Management Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Project Management 2 Metodi per supportare le decisioni relative alla gestione di progetti esempi sono progetti nell

Dettagli

ITCG Cattaneo via Matilde di canossa n.3 - Castelnovo ne' Monti (RE) SEZIONE I.T.I. - Corso di Fisica - prof. Massimo Manvilli

ITCG Cattaneo via Matilde di canossa n.3 - Castelnovo ne' Monti (RE) SEZIONE I.T.I. - Corso di Fisica - prof. Massimo Manvilli ITCG C. CATTANEO via Matilde di Canossa n.3 - Castelnovo ne' Monti (Reggio Emilia) Costruzione del grafico di una funzione con Microsoft Excel Supponiamo di aver costruito la tabella riportata in figura

Dettagli

Dott.ssa Caterina Gurrieri

Dott.ssa Caterina Gurrieri Dott.ssa Caterina Gurrieri Le relazioni tra caratteri Data una tabella a doppia entrata, grande importanza riveste il misurare se e in che misura le variabili in essa riportata sono in qualche modo

Dettagli

Esercizi di Algoritmi e Strutture Dati

Esercizi di Algoritmi e Strutture Dati Esercizi di Algoritmi e Strutture Dati Moreno Marzolla http://www.moreno.marzolla.name/ Ultimo Aggiornamento: 25 giugno 2014 Copyright Copyright 2012, 2013, 2014 Moreno Marzolla. Quest'opera è stata rilasciata

Dettagli

Gest ione di list e in C

Gest ione di list e in C Gest ione di list e in C Politecnico di Milano Sede di Cremona Gianpaolo Cugola Dipartimento di Elettronica e Informazione cugola@elet.polimi.it http://www.elet.polimi.it/~cugola Strutture dinamiche Gli

Dettagli

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi

Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi TIPI DI DATO Tipicamente un elaboratore è capace di trattare domini di dati di tipi primitivi numeri naturali, interi, reali caratteri e stringhe di caratteri e quasi sempre anche collezioni di oggetti,

Dettagli

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento.

Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. Excel: le funzioni Le formule possono essere scritte utilizzando un insieme di funzioni predefinite che Excel mette a disposizione, raggruppate per argomento. DEFINIZIONE: Le funzioni sono dei procedimenti

Dettagli

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale.

l Editor vi vi (visual editor) è stato scritto per essere utilizzabile con qualsiasi tipo di terminale. l Editor vi Negli ambienti Unix esistono molti editor di testo diversi; tuttavia vi è l unico che siamo sicuri di trovare in qualsiasi variante di Unix. vi (visual editor) è stato scritto per essere utilizzabile

Dettagli

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1

DI D AGRA R MM M I M A BLOCC C H C I TEORI R A E D D E SERC R I C ZI 1 1 DIAGRAMMI A BLOCCHI TEORIA ED ESERCIZI 1 1 Il linguaggio dei diagrammi a blocchi è un possibile formalismo per la descrizione di algoritmi Il diagramma a blocchi, o flowchart, è una rappresentazione grafica

Dettagli

Semantica operazionale dei linguaggi di Programmazione

Semantica operazionale dei linguaggi di Programmazione Semantica operazionale dei linguaggi di Programmazione Oggetti sintattici e oggetti semantici Rosario Culmone, Luca Tesei Lucidi tratti dalla dispensa Elementi di Semantica Operazionale R. Barbuti, P.

Dettagli

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN)

Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) Estensione di un servizo di messaggistica per telefonia mobile (per una società di agenti TuCSoN) System Overview di Mattia Bargellini 1 CAPITOLO 1 1.1 Introduzione Il seguente progetto intende estendere

Dettagli

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera

Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera Ricerca Operativa Branch-and-Bound per problemi di Programmazione Lineare Intera L. De Giovanni AVVERTENZA: le note presentate di seguito non hanno alcuna pretesa di completezza, né hanno lo scopo di sostituirsi

Dettagli

Introduzione ad Access

Introduzione ad Access Introduzione ad Access Luca Bortolussi Dipartimento di Matematica e Informatica Università degli studi di Trieste Access E un programma di gestione di database (DBMS) Access offre: un supporto transazionale

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Sistemi di numerazione posizionali Rappresentazione dei numeri Rappresentazione dei numeri nei calcolatori rappresentazioni finalizzate ad algoritmi efficienti per le operazioni

Dettagli

LA NOTAZIONE SCIENTIFICA

LA NOTAZIONE SCIENTIFICA LA NOTAZIONE SCIENTIFICA Definizioni Ricordiamo, a proposito delle potenze del, che = =.000 =.000.000.000.000 ovvero n è uguale ad seguito da n zeri. Nel caso di potenze con esponente negativo ricordiamo

Dettagli

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com

Corso di Informatica Medica Esercitazione 1I 2013-2014.! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com Corso di Informatica Medica Esercitazione 1I 2013-2014! Alessandro A. Nacci nacci@elet.polimi.it - alessandronacci.com 1 2 Esercizio 1 Scrivere un programma che legga due array di interi da tastiera dica

Dettagli

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i

Scrivere uno script php che, dato un array associativo PERSONE le cui chiavi sono i Esercizi PHP 1. Scrivere uno script PHP che produca in output: 1. La tabellina del 5 2. La tavola Pitagorica contenuta in una tabella 3. La tabellina di un numero ricevuto in input tramite un modulo. Lo

Dettagli

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net

Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Lezione 1 Introduzione agli algoritmi e alla programmazione in VisualBasic.Net Definizione di utente e di programmatore L utente è qualsiasi persona che usa il computer anche se non è in grado di programmarlo

Dettagli

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE

EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE EQUAZIONI E DISEQUAZIONI POLINOMIALI E COLLEGAMENTI CON LA GEOMETRIA ELEMENTARE 1. EQUAZIONI Definizione: un equazione è un uguaglianza tra due espressioni letterali (cioè in cui compaiono numeri, lettere

Dettagli

La struttura dell RNA Struttura dell RNA mediante analisi comparativa Predizione della struttura secondaria: L algoritmo di Nussinov Predizione della

La struttura dell RNA Struttura dell RNA mediante analisi comparativa Predizione della struttura secondaria: L algoritmo di Nussinov Predizione della La struttura dell RNA Struttura dell RNA mediante analisi comparativa Predizione della struttura secondaria: L algoritmo di Nussinov Predizione della struttura secondaria: Minimizzazione dell energia Un

Dettagli

Semplici Algoritmi di Ordinamento

Semplici Algoritmi di Ordinamento Fondamenti di Informatica Semplici Algoritmi di Ordinamento Fondamenti di Informatica - D. Talia - UNICAL 1 Ordinamento di una sequenza di elementi Esistono molti algoritmi di ordinamento. Tutti ricevono

Dettagli

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997

RAPPRESENTAZIONE BINARIA DEI NUMERI. Andrea Bobbio Anno Accademico 1996-1997 1 RAPPRESENTAZIONE BINARIA DEI NUMERI Andrea Bobbio Anno Accademico 1996-1997 Numeri Binari 2 Sistemi di Numerazione Il valore di un numero può essere espresso con diverse rappresentazioni. non posizionali:

Dettagli

Ricerca non informata in uno spazio di stati

Ricerca non informata in uno spazio di stati Università di Bergamo Facoltà di Ingegneria Intelligenza Artificiale Paolo Salvaneschi A5_2 V2.4 Ricerca non informata in uno spazio di stati Il contenuto del documento è liberamente utilizzabile dagli

Dettagli

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo

Appunti di Sistemi Operativi. Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Appunti di Sistemi Operativi Enzo Mumolo e-mail address :mumolo@units.it web address :www.units.it/mumolo Indice 1 Cenni su alcuni algoritmi del Kernel di Unix 1 1.1 Elementi di Unix Internals.................................

Dettagli

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0.

x 1 + x 2 3x 4 = 0 x1 + x 2 + x 3 = 0 x 1 + x 2 3x 4 = 0. Problema. Sia W il sottospazio dello spazio vettoriale R 4 dato da tutte le soluzioni dell equazione x + x 2 + x = 0. (a. Sia U R 4 il sottospazio dato da tutte le soluzioni dell equazione Si determini

Dettagli

Lezione 9: Strutture e allocazione dinamica della memoria

Lezione 9: Strutture e allocazione dinamica della memoria Lezione 9: Strutture e allocazione dinamica della memoria Laboratorio di Elementi di Architettura e Sistemi Operativi 9 Maggio 2012 Allocazione dinamica della memoria Memoria dinamica È possibile creare

Dettagli