Valutare la difficoltà dei problemi

Slides:



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

LIMITI:DEFINIZIONI E TEOREMI
Il moto rettilineo uniformemente accelerato
CONTINUITÀ DELLE FUNZIONI
Funzioni di due variabili
Torniamo al secondo problema: Ogni centrale rifornisce entrambe le città. 2 centrali elettriche: Aurisina (produce P1 kilowatt) Monfalcone (produce.
Capitolo 8 Sistemi lineari.
Definizione e caratteristiche
Definizione (rigorosa) di limite
Elementi di Matematica
Elementi di Matematica
Continuità delle funzioni. Funzione continua in un punto Sia y=f(x) una funzione definita in un intervallo, aperto o chiuso, e sia x 0 un punto interno.
U V U V (a) |cfc|=2 prima e dopo (b) |cfc|=2 prima e |cfc|=1 dopo
Algoritmo di Ford-Fulkerson
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 4 Ordinamento:
Il problema della ricerca Algoritmi e Strutture Dati.
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Energia e potenza nei circuiti elettrici
I Sistemi Lineari Molti, problemi per poter essere risolti, hanno bisogno dell’introduzione di uno o più elementi incogniti. Ad esempio consideriamo il.
Algoritmi e Strutture Dati (Mod. A)
Algoritmi e Strutture Dati (Mod. B)
ASINTOTI CONCETTO DI ASINTOTO
07/04/2003Algoritmi Ricerca in una sequenza di elementi Data una sequenza di elementi, occorre verificare se un elemento fa parte della sequenza oppure.
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
1 Esempio : Utile per considerare limportanza delle ALTE FREQUENZE nella ricostruzione del segnale, in particolare dei FRONTI di SALITA e di DISCESA (trailing.
Corso di Matematica Discreta cont. 2
Tavole dinamiche Spesso non si sa a priori quanta memoria serve per memorizzare dei dati in un array, in una tavola hash, in un heap, ecc. Può capitare.
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Metodo della moltiplicazione
Elementi di Informatica di base
Ordinamento dell’array
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Giuseppina Trifiletti
Radix-Sort(A,d) // A[i] = cd...c2c1
relazioni tra radici e simmetrie Lezione 3
Vedremo in seguito che (n log n) è un limite stretto per il problema dellordinamento. Per ora ci limitiamo a dimostrare che: La complessità nel caso pessimo.
Cerchiamo di rispondere alla seconda domanda 2)La soluzione trovata con lalgoritmo goloso è ottima o esistono anche soluzioni con più di quattro attività?
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
La complessità media O(n log n) di Quick-Sort vale soltanto se tutte le permutazioni dell’array in ingresso sono ugualmente probabili. In molte applicazioni.
PREMESSE DELL’ANALISI INFINETISIMALE
Intuizione:. Come usare il Teorema dellesperto T(n) = aT(n/b)+f(n) 2.Calcolare 4.Se il limite è finito e diverso da 0 siamo nel Caso 2 e 3.Calcolare il.
Teoremi sui limiti.
ESTENSIONI SEMPLICI e TEOREMA DELL’ELEMENTO PRIMITIVO
Gli argomenti di questa lezione sono:
La scomposizione col metodo di Ruffini
Complessità del problema Se non facciamo ipotesi sul tipo degli elementi della sequenza le uniche operazioni permesse sono confronti e assegnazioni. Problema.
PROPAGAZIONE DEGLI ERRORI:
Algoritmi e Strutture Dati
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
Risoluzione delle collisioni con indirizzamento aperto Con la tecnica di indirizzamento aperto tutti gli elementi stanno nella tavola. La funzione hash.
TECNICA DIVIDE ET IMPERA
Condizione necessaria di derivabilità
Ordinamento in tempo lineare Il limite inferiore Ω(n log n) vale per tutti gli algoritmi di ordinamento generali, ossia per algoritmi che non fanno alcuna.
“o piccolo” Siano f e g entrambi infiniti o infinitesimi per
“o piccolo” Siano f e g entrambi infiniti o infinitesimi per
Camil Demetrescu, Irene Finocchi, Giuseppe F. ItalianoAlgoritmi e strutture dati Copyright © The McGraw - Hill Companies, srl Capitolo 6 Rotazioni.
Algoritmi e Strutture Dati
Capitolo 13 Cammini minimi: Ordinamento topologico Algoritmi e Strutture Dati.
SOLUZIONI CONTENENTI UN ACIDO DEBOLE
Il problema della ricerca Algoritmi e Strutture Dati.
Codici prefissi Un codice prefisso è un codice in cui nessuna parola codice è prefisso (parte iniziale) di un’altra Ogni codice a lunghezza fissa è ovviamente.
Infiniti Sia c un punto di accumulazione per D Definizione: si dice che f è infinita in un intorno di c se Nota bene: essere infiniti è una proprietà “locale”
Analisi matematica Introduzione ai limiti
Sistemi di equazioni lineari. Sistemi di primo grado di due equazioni a due incognite Risolvere un sistema significa trovare la coppia di valori x e y.
Raccogliamo x al primo membro e 2 al secondo:
I LIMITI.
Metodi di ricerca approssimata dello zero di una funzione F(z) = 0.
Transcript della presentazione:

Valutare la difficoltà dei problemi esiste un algoritmo che risolve il problema con questa complessità limite superiore: O(n2)

Valutare la difficoltà dei problemi ogni algoritmo che risolve il problema ha complessità maggiore o uguale di questa limite inferiore: (n)

Un limite superiore per il problema dell’ordinamento Abbiamo visto che Insert-Sort per ordinare n oggetti richiede O(n2) operazioni Quindi O(n2) è un limite superiore

Vedremo in seguito che (n log n) è un limite stretto per il problema dell’ordinamento. Per ora ci limitiamo a dimostrare che: La complessità nel caso pessimo di ogni algoritmo di ordinamento sul posto che confronta e scambia tra loro soltanto elementi consecutivi dell’array è (n2). Quindi il problema di ordinare sul posto un array scambiando tra loro soltanto elementi consecutivi ha complessità (n2).

Se l’array è ordinato non ci sono inversioni. Sia A[1..n] un array Se i < j e A[i] > A[j] diciamo che la coppia di indici (i, j) è una inversione i j k 8 3 3 Se l’array è ordinato non ci sono inversioni. Se l’array è ordinato in senso opposto e gli elementi sono tutti distinti allora ogni coppia (i, j) di indici con i < j è una inversione e quindi ci sono esattamente n(n-1)/2 inversioni.

Come cambia il numero di inversioni quando facciamo uno scambio tra due elementi consecutivi A[i] ed A[i+1] dell’array? i i+1 x y Consideriamo tutte le coppie di indici ( j, k) con j < k e vediamo quante e quali di esse possono cambiare di stato da inversioni a non inversioni o viceversa quando scambiamo A[i] con A[i+1].

Se j e k sono entrambi diversi da i e i+1 la coppia ( j, k) non cambia di stato e quindi il numero di inversioni di questo tipo non cambia. j i i+1 k u y x v

Consideriamo le due coppie (i, k) e (i+1, k) con k > i+1 ossia x y v i i+1 k y x v (i, k) è inversione dopo lo scambio se e solo se (i+1, k) lo era prima e (i+1, k) è inversione se e solo se (i, k) lo era prima. Quindi le due coppie si scambiano gli stati ma il numero totale di inversioni non cambia.

Consideriamo le coppie (j, i) e (j,i+1) con j < i ossia u x y j i i+1 u y x La situazione è simmetrica di quella precedente e quindi anche in questo caso il numero totale di inversioni non cambia.

Rimane soltanto da considerare la coppia (i, i+1) che con lo scambio cambia di stato se i due elementi sono diversi. In conclusione con lo scambio di due elementi consecutivi dell’array il numero totale di inversioni aumenta o diminuisce di 1 (o rimane invariato se i due elementi scambiati erano uguali).

Nel caso pessimo in cui l’array è ordinato in senso inverso e gli elementi sono tutti distinti le inversioni iniziali sono n(n-1)/2. Occorrono quindi almeno n(n-1)/2 scambi tra elementi consecutivi per ridurre tale numero a 0. Siccome n(n-1)/2 = (n2) rimane dimostrato il limite inferiore.

Esercizio: Abbiamo dimostrato che scambiando due elementi diversi consecutivi il numero totale di inversioni aumenta o diminuisce di 1. Quindi se prima dello scambio il numero di inversioni totale era pari, dopo lo scambio esso risulta dispari e viceversa. Mostrare che questo cambiamento della parità del numero totale di inversioni avviene anche se si scambiano due elementi diversi non consecutivi.

Soluzione delle ricorrenze Metodo di sostituzione: Si assume che la soluzione sia di un certo tipo, ad esempio dove k1, k2 e k3 sono delle costanti Si sostituisce la soluzione nella ricorrenza e si cercano dei valori delle costanti per i quali la ricorrenza è soddisfatta. Se le cose non funzionano si riprova con un altro tipo di soluzione.

Esempio: assumiamo sostituendo si ottiene: Le costanti k1, k2 e k3 devono essere le stesse a sinistra e a destra.

per n = 1 si ottiene: mentre per n > 1 da cui e dunque è la soluzione.

Soluzione delle ricorrenze Metodo dell’esperto: Fornisce direttamente le soluzioni asintotiche di molte ricorrenze del tipo: dove n/b significa anche n/b o n/b

Teorema dell’esperto: Se T(n) = aT(n/b)+f(n) è una ricorrenza con a ≥ 1 e b > 1 costanti e dove n/b può essere anche n/b o n/b allora : per qualche costante  > 0 per qualche costante ε > 0 ed esistono k < 1 ed N tali che a f(n/b)  k f(n) per ogni n  N

Intuizione:

Come usare il Teorema dell’esperto T(n) = aT(n/b)+f(n) Togliere eventuali arrotondamenti per eccesso o per difetto Calcolare Calcolare il limite Se il limite è finito e diverso da 0 siamo nel Caso 2 e

Se il limite è 0 potremmo essere nel Caso 1 Se il limite è 0 potremmo essere nel Caso 1. Per esserne sicuri occorre trovare un valore positivo ε per il quale risulti finito il limite nel qual caso possiamo concludere Se per ogni ε positivo tale limite risulta infinito il teorema dell’esperto non si può usare.

Se il limite è ∞ potremmo essere nel Caso 3 Se il limite è ∞ potremmo essere nel Caso 3. Per esserne sicuri occorre trovare un ε positivo per il quale risulti diverso da 0 il limite Se è 0 per ogni ε positivo non si può usare il teorema dell’esperto. Altrimenti prima di concludere bisogna studiare la disequazione a f(n/b) ≤ k f(n)

Se tale disequazione è soddisfatta per qualche costante k strettamente minore di 1 e per tutti i valori di n da un certo valore N in poi possiamo concludere che Altrimenti il teorema dell’esperto non si può usare.

Esempi: Trascurando gli arrotondamenti entrambe sono della forma: Con a=b=2 ed f(n)=(n) siccome e quindi possiamo applicare il Caso 2 e concludere

Esempio: In questo caso e quindi Caso 1? Se Per e Quindi e si applica il Caso 1

Esempio: In questo caso e quindi Caso 3? Se e Per e Quindi Inoltre Si applica il Caso 3:

Esempio: ma e quindi per qualunque Dunque non si può usare il metodo dell’esperto. Neanche la seconda condizione è soddisfatta ma e quindi non esiste nessun k < 1 tale che per ogni n > N