Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Σχετικά έγγραφα
Metode iterative pentru probleme neliniare - contractii

Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Laborator 1: INTRODUCERE ÎN ALGORITMI. Întocmit de: Claudia Pârloagă. Îndrumător: Asist. Drd. Gabriel Danciu

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Subiecte Clasa a VIII-a

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

chip and be conquered - b subprobleme de dimensiune n-c Exercitiu: Dati exemple de algoritmi care au recurente de tipul celor de mai sus.

Proiectarea Algoritmilor 4. Scheme de algoritmi Programare dinamica

Curs 1 Şiruri de numere reale

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

Sisteme diferenţiale liniare de ordinul 1

Curs 4 Serii de numere reale

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

riptografie şi Securitate

Criptosisteme cu cheie publică III

Algebra si Geometrie Seminar 9

Laborator 11. Mulţimi Julia. Temă

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Algoritmi Divide-et-Impera Structura unui algoritm divide-et-impera divide: impera: combina: Utilizarea cea mai frecventa

Metode de interpolare bazate pe diferenţe divizate

Subiecte Clasa a VII-a

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

Examen AG. Student:... Grupa:... ianuarie 2011

Esalonul Redus pe Linii (ERL). Subspatii.

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

Laborator 6. Integrarea ecuaţiilor diferenţiale

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

RĂSPUNS Modulul de rezistenţă este o caracteristică geometrică a secţiunii transversale, scrisă faţă de una dintre axele de inerţie principale:,

Programarea dinamica I

Curs 2 DIODE. CIRCUITE DR

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

Examen AG. Student:... Grupa: ianuarie 2016

Integrala nedefinită (primitive)

Principiul incluziunii si excluziunii. Generarea şi ordonarea permutărilor. Principiul porumbeilor. Pri

MARCAREA REZISTOARELOR

Seminar 5 Analiza stabilității sistemelor liniare

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Metode de sortare. Se dau n numere întregi, elemente ale unui vector a. Se cere să se aranjeze elementele vectorului a în ordine crescătoare.

Teme de implementare in Matlab pentru Laboratorul de Metode Numerice

Sisteme liniare - metode directe

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

Să se arate că n este număr par. Dan Nedeianu

Profesor Blaga Mirela-Gabriela DREAPTA

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

CURS 11: Programare dinamică - I - Algoritmica - Curs 11 1

5.4. MULTIPLEXOARE A 0 A 1 A 2

V O. = v I v stabilizator

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.


Sortare. 29 martie Utilizarea şi programarea calculatoarelor. Curs 16

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

GEOMETRIE PLANĂ TEOREME IMPORTANTE ARII. bh lh 2. abc. abc. formula înălţimii

Cum folosim cazuri particulare în rezolvarea unor probleme

Asupra unei inegalităţi date la barajul OBMJ 2006

1.3 Baza a unui spaţiu vectorial. Dimensiune

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Geometrie computationala 2. Preliminarii geometrice

Proiectarea filtrelor prin metoda pierderilor de inserţie

Algoritmica grafurilor XI. Cuplaje in grafuri. Masuri de calitate. Numere Ramsey

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

Curs 2 Şiruri de numere reale

Subiecte Clasa a V-a

CIRCUITE INTEGRATE MONOLITICE DE MICROUNDE. MMIC Monolithic Microwave Integrated Circuit

Proiectarea algoritmilor: Programare dinamică

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

Erori si incertitudini de măsurare. Modele matematice Instrument: proiectare, fabricaţie, Interacţiune măsurand instrument:

FLUXURI MAXIME ÎN REŢELE DE TRANSPORT. x 4

Vectori liberi Produs scalar Produs vectorial Produsul mixt. 1 Vectori liberi. 2 Produs scalar. 3 Produs vectorial. 4 Produsul mixt.

Capitolul 2 - HIDROCARBURI 2.5.ARENE

3. Momentul forţei în raport cu un punct...1 Cuprins...1 Introducere Aspecte teoretice Aplicaţii rezolvate...4

III. Reprezentarea informaţiei în sistemele de calcul

Asemănarea triunghiurilor O selecție de probleme de geometrie elementară pentru gimnaziu Constantin Chirila Colegiul Naţional Garabet Ibrãileanu,

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Inteligenta Artificiala Universitatea Politehnica Bucuresti Anul universitar

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ

Metode Runge-Kutta. 18 ianuarie Probleme scalare, pas constant. Dorim să aproximăm soluţia problemei Cauchy

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

TEMA 9: FUNCȚII DE MAI MULTE VARIABILE. Obiective:

Sortare şi cǎutare. 8 ianuarie Utilizarea şi programarea calculatoarelor. Curs 11

5.1. Noţiuni introductive

Foarte formal, destinatarul ocupă o funcţie care trebuie folosită în locul numelui

Eficienta algoritmilor

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

a) (3p) Sa se calculeze XY A. b) (4p) Sa se calculeze determinantul si rangul matricei A. c) (3p) Sa se calculeze A.

riptografie şi Securitate

Tablouri unidimensionale

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER

Capitolul 14. Asamblari prin pene

MULTIMEA NUMERELOR REALE

ANEXA 4. OPERAŢII ARITMETICE IMPLEMENTĂRI

Transcript:

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 2. Scheme de algoritmi Divide & Impera

Cuprins Scheme de algoritmi Divide et impera Exemplificare folosind Merge sort Alte exemple de algoritmi divide et impera Greedy Exemplificare folosind arbori Huffman Demonstrația corectitudinii algoritmului Huffman 2

Bibliografie Giumale Introducere in Analiza Algoritmilor cap 4.4 Cormen Introducere în Algoritmi cap. 17 http://www.cs.ucsb.edu/~suri/cs235/closestpair.pdf http://www.cs.umass.edu/~barring/cs611/lecture/4.pdf http://thor.info.uaic.ro/~dlucanu/cursuri/tpaa/resurse/curs6. pps http://www.math.fau.edu/locke/greedy.htm http://en.wikipedia.org/wiki/greedoid 3

Scheme de algoritmi Prin scheme de algoritmi înțelegem tipare comune pe care le putem aplica in rezolvarea unor probleme similare. O gamă largă de probleme se poate rezolva folosind un număr relativ mic de scheme. => Cunoașterea schemelor determină o rezolvare mai rapidă si mai eficientă a problemelor. 4

Divide et impera (I) Ideea (divide si cucerește) este atribuită lui Filip al IIlea, regele Macedoniei (382-336 i.e.n.), tatăl lui Alexandru cel Mare si se referă la politica acestuia față de statele grecești. In CS Divide et impera se referă la o clasă de algoritmi care au ca principale caracteristici faptul că împart problema in subprobleme similare cu problema inițială dar mai mici ca dimensiune, rezolvă problemele recursiv si apoi combină soluțiile pentru a crea o soluție pentru problema originală. 5

Divide et impera (II) Schema Divide et impera constă in 3 pași la fiecare nivel al recurenței: Divide problema dată intr-un număr de subprobleme; Impera (cucerește) subproblemele sunt rezolvate recursiv. Dacă subproblemele sunt suficient de mici ca date de intrare se rezolvă direct (ieșirea din recurență); Combină soluțiile subproblemelor sunt combinate pentru a obține soluția problemei inițiale. 6

Divide et impera Avantaje si Dezavantaje Avantaje: Produce algoritmi eficienți. Descompunerea problemei in subprobleme facilitează paralelizarea algoritmului in vederea execuției sale pe mai multe procesoare. Dezavantaje: Se adaugă un overhead datorat recursivității (reținerea pe stivă a apelurilor funcțiilor). 7

Merge Sort (I) Algoritmul Merge Sort este un exemplu clasic de rezolvare cu D&I. Divide: Divide cele n elemente ce trebuie sortate in 2 secvențe de lungime n/2. Impera: Sortează secvențele recursiv folosind merge sort. Combină: Secvențele sortate sunt asamblate pentru a obține vectorul sortat. Recurența se oprește când secvența ce trebuie sortată are lungimea 1 (un vector cu un singur element este întotdeauna sortat ). Operația cheie este asamblarea soluțiilor parțiale. 8

Merge Sort (II) Algoritm [Cormen] MERGE-SORT(A, p, r) 1 Dacă p < r 2 3 Atunci q [(p + r)/2] // divide MERGE-SORT(A, p, q) //impera 4 MERGE-SORT(A, q + 1, r) 5 MERGE(A, p, q, r) // combină // (interclasare) 9

Merge Sort (III) Algoritmul de interclasare Algoritm [Cormen] MERGE(A, p, q, r) // p si r sunt capetele intervalului, q este mijlocul 1 n 1 q - p + 1 // numărul de elemente din partea stânga 2 n 2 r q // numărul de elemente din partea dreapta 3 creează vectorii S[1 -> n 1 + 1] si D[1 -> n 2 + 1] 4 Pentru i = 1 n 1 5 S[i] A[p + i - 1] // se copiază partea stânga in L 6 Pentru j = 1 n 2 7 D[j] A[q + j] // si partea dreapta in R 8 S[n 1 + 1] 9 D[n 2 + 1] 10 i 1 11 j 1 12 Pentru k = p r // se copiază înapoi in vectorul de 13 Dacă S[i] D[j] // sortat elementul mai mic din cei 14 Atunci A[k] S[i] // doi vectori sortați deja 15 i i + 1 16 Altfel A[k] D[j] 17 j j + 1 10

Exemplu funcționare Merge Sort Exemplu funcționare [Wikipedia]: 11

Merge Sort - Complexitate T(n) = 2 * T(n/2) + Θ(n) complexitatea interclasării număr de subprobleme dimensiunea subproblemelor => (din T. Master) T(n) = Θ(n * logn) 12

Divide et impera alte exemple (I) Calculul puterii unui număr: x n Algoritm clasic : Pentru i = 1 n rez = rez * x; întoarce rez Complexitate: Θ(n) Algoritm divide et impera: Dacă n este par Atunci Întoarce x n/2 * x n/2 Altfel (n este impar) Întoarce x * x (n-1)/2 * x (n-1)/2 Complexitate: T(n) = T(n/2) + Θ(1) = Θ(logn) 13

Divide et impera alte exemple (II) Calculul celei mai scurte distante intre 2 puncte din plan (http://www.cs.ucsb.edu/~suri/cs235/closestpair.pdf) algoritmul naiv Θ(n 2 ) 14

Divide et impera alte exemple (III) Sortează punctele in ordinea crescătoare a coordonatei x (Θ(nlog n)); Împărțim setul de puncte in 2 seturi de dimensiune egală si calculăm recursiv distanța minimă in fiecare set (l = linia ce împarte cele 2 seturi, d = distanța minimă calculată in cele 2 seturi); Elimină punctele care sunt plasate la distanța de l > d; Sortează punctele rămase după coordonata y; Calculează distantele de la fiecare punct rămas la cei 5 vecini (nu pot fi mai mulți); Dacă găsește o distantă < d, atunci actualizează d. 15

Divide et impera temă de gândire Se dă o mulțime M de numere întregi si un număr x. Se cere sa se determine daca există a,b M a.i. a + b = x Algoritmul propus trebuie sa aibă complexitatea θ(nlogn) Temele de la curs sunt facultative! 16