Algoritmi e strutture dati Definizioni q Struttura dati
- Slides: 13
Algoritmi e strutture dati Definizioni q Struttura dati: organizzazione sistematica dei dati e del loro accesso q Algoritmo: procedura suddivisa in passi che, eseguiti in sequenza, consentono di eseguire un compito in tempo finito (? ) q Esempio: Max. di un vettore di n elementi Algorithm array. Max(A, n) current. Max=A[0]; for (i=0; i<n; i++) // inziare da i = 1? if (A[i]>current. Max) current. Max=A[i]; return current. Max; Introduzione
Nel mondo reale. . . . q Gli algoritmi intervengono (in modo più o meno nascosto) in molti aspetti q Vari esempi o Internet o DBMS o Motori di ricerca…. . o Analisi della struttura del Web Introduzione
Esempio: Routing in Internet Protocollo di Routing 5 Obiettivo: determinare “buon” cammino sorg. -dest Astrazione usando grafi: q I nodi rappresentano router q Gli archi descrivono i link fisici o Costi sugli archi (link) : ritardo, costo in €, livello di congestione 2 A B 2 1 D 3 C 3 1 5 F 1 E 2 q Cammino “buono”: o Di solito significa cammino a costo minimo o Possibili def. alternative Introduzione 3
Esempio: Accesso a basi di dati Interrogazione Obiettivo: rispondere rapidamente Interrogazione . . . Data base Data Record Introduzione 4
Qualità di algoritmi e strutture dati q Efficienza o Tempo di esecuzione o Spazio (quantità di memoria) I due aspetti sono interdipendenti Introduzione
Misura dell’efficienza obiettivi q Indipendenza dall’implementazione q Generale (valida per ogni input, di qualsiasi dimensione) q Misura indipendente dalla piattaforma Hw/Sw In generale: una misura dipendente dalla piattaforma hw/sw è poco rappresentativa Introduzione
Modello di costo RAM Random Access Machine Macchina che esegue le istruzioni in sequenza. Insieme di operazioni primitive a costo unitario: q Assegnazione q Operazioni aritmetiche q Confronto q Lettura/Scrittura Introduzione 8
Modello di costo/2 Costo di operazioni complesse: q Ciclo: somma costo test di fino ciclo e costo corpo del ciclo q if…then…else: costo test più costo blocco istruzioni che segue then o else (a seconda del caso) q Attivazione di un metodo: somma dei costi di tutte le istruzioni presenti nel metodo Costo: somma di tutti i costi Introduzione 9
Esempio/1 q Nel primo caso (vett. di 3 elementi) si ha costo 1 (ass. )+1 (ass. nel for) + 6 (test e incr. nel for) + 1 (test finale for) + 3 (test if) + 1 (istruz. return) = 13 q Nel secondo caso si ha 1 (ass. ) + 1 (ass. nel for) + 10 (test e incr. nel for) + 1 (test finale for) + 5 (test if) + 1 (istr. ass. nell’if) + 1 (istruz. return) = 20 Algorithm array. Max(A, n) current. Max=A[0]; for (i=0; i<n; i++) if (A[i]>current. Max) current. Max=A[i]; return current. Max; 1 8 7 6 1 3 4 4 n=3 n=5 Introduzione
Modello di costo/3 Perché tale modello è accettabile? q Il costo di istruzione è sempre valutato a meno di un fattore costante (eventualmente grande) perché o Il numero di operazioni elementari per ogni istruzione è finito o Ogni variabile occupa una quantità finita di memoria e quindi i tempi di accesso a due variabili diverse sono comunque legati da una costante Vantaggi: prescinde dalla piattaforma Hw/Sw e dal linguaggio di programmazione Svantaggi: l’indicazione che si ottiene è qualitativa Introduzione 11
Modello di costo/4 Problema: i risultati dipendono dal particolare input, anche per lo stesso valore di n q Si vuole una misura che dipenda dalla dimensione dell’input (n nel nostro esempio) ma non dal particolare input considerato q Possibile alternative: o Analisi del caso peggiore (worst case): si considera il costo di esecuzione nel caso peggiore (l'analisi del caso migliore è in generale poco interessante) o Analisi del caso medio: si considera il costo medio dell’algoritmo rispetto ad una distribuzione dell’input (richiede la conoscenza della distribuzione) q In ogni caso occorre definire la dimensione dell’input Nel seguito si considera l’analisi nel caso peggiore Introduzione 12
Dimensione dell’input q Per ogni problema va indicata la dimensione dell’input perché è rispetto ad essa che si calcola il costo degli algoritmi q Dipende dall’input, es. : o Nr. componenti per il problema di ordinare un vettore di interi o Nr. di nodi e numero di archi per problemi su grafi q La scelta deve essere ragionevole. Nei casi dubbi una misura ragionevole è il numero di bit necessari a rappresentare l’input q Esempio: se si considera il problema di determinare la scomposizione in fattori primi di un numero intero allora la dimensione dell’input è il numero di bit necessario a rappresentare un intero. D. : numero di bit necessario a rappresentare un intero < N ? Introduzione 13
Analisi nel caso peggiore (esempio) q Nel caso peggiore gli elementi sono ordinati in maniera crescente q In questa ipotesi l’istruzione current. Max=A[i]; è eseguita n-1 volte. q Il costo complessivo dell’algoritmo è allora (ragionando come nei casi precedenti) 1+1+2 n+1+n+(n 1)+1=4 n+3 Algorithm array. Max(A, n) current. Max=A[0]; for (i=0; i<n; i++) if (A[i]>current. Max) current. Max=A[i]; return current. Max; 1 4 6 7 8 Introduzione 14
- Introduzione agli algoritmi e strutture dati
- Formule geometria piana
- Cerchio definizione
- Definizioni geometria piana
- Creditcassa
- Analisi non lineare delle strutture
- Strutture culturali
- Organizzazione aziendale organigramma
- Struttura di fondazione
- Monotrico lofotrico anfitrico peritrico
- Strutture elementari tecnologia
- Struttura di un testo argomentativo
- Esempio calcolo vento tettoia ntc 2018
- Serie armonica generalizzata