Entrepreneurship and Technological Management

Documente similare
Elemente de aritmetica

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Inferenţa statistică

Introducere

Aero-BCD, , Prof. L. Costache & M. Olteanu Notițe de Adrian Manea Seminar 5 Șiruri și serii de funcții. Serii de puteri 1 Șiruri de funcții D

Microsoft Word - Algoritmi genetici.docx

Microsoft Word - cap1p4.doc

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Microsoft Word - TIC5

LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

ETTI-AM2, , M. Joița & A. Niță Notițe de Adrian Manea Seminar 11 Transformarea Laplace Aplicații Transformarea Z Ecuații și sisteme diferenți

Programarea şi utilizarea calculatoarelor

8.1. Elemente de Aritmetică. 8. Aplicatii (15 aprilie 2019) Lema 8.1. Fie (A, +) un grup abelian şi H, K A. Atunci H K şi H + K = {h + k h H şi k K} s

IBR 8 iulie 2019

Entrepreneurship and Technological Management

OPERATII DE PRELUCRAREA IMAGINILOR 1

Paradigme de programare

Calcul Numeric

Slide 1

O teoremă de reprezentare (II) Marian TETIVA 1 Abstract. In this paper some (in general well-known) results on complete sequences are exposed, with ap

Managementul Resurselor Umane

COMENTARII FAZA JUDEŢEANĂ, 9 MARTIE 2013 Abstract. Personal comments on some of the problems presented at the District Round of the National Mathemati

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

{ 3x + 3, x < 1 Exemple. 1) Fie f : R R, f(x) = 2x + 4, x 1. Funcţia f este derivabilă pe R\{1} (compunere de funcţii elementare), deci rămâne să stud

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

Microsoft Word - 03 Dominica MOISE.doc

SSC-Impartire

Microsoft Visual C++ (abreviat MSVC) is a commercial integrated development environment (IDE) product engineered by Microsoft for the C, C++, and C++/

Slide 1

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

BAC 2007 Pro Didactica Programa M1 2 Rezolvarea variantei 36 versiune finală Redactia Pro Didactica Suportul pe net:

Algebra si Geometri pentru Computer Science

Microsoft Word - Lab1a.doc

Universitatea Lucian Blaga Sibiu Facultatea de inginerie-Departamentul de calculatoare şi Inginerie Electrică Titular curs: Şef lucrări dr.mat. Po

2

Microsoft Word - Curs1.docx

Modelarea si Simularea Sistemelor de Calcul

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

2008 Romanian Leasing Market AA

PowerPoint Presentation

Laborator 1 suport teoretic Mediul de dezvoltare Eclipse GLOSAR - Aplicaţie: program obţinut în urma aplicării operației BUILD asupra unui proiect (ve

ETTI-AM2, , M. Joița & A. Niță Notițe de Adrian Manea Seminar 10 Transformata Fourier Integrala Fourier Seriile Fourier sînt utile pentru dez

Microsoft Word - pensii 4_64_.doc

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Microsoft Word - Tema 06 - Convertoare analog-numerice.doc

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Microsoft PowerPoint - curs5-DPT-2010V97 [Compatibility Mode]

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

Lecții de pregă,re la informa,că Admitere 2019 Tema: Discutarea problemelor date la ul,mele sesiuni de admitere Bogdan Alexe

Slide 1

02. Analiza matematica 3 - MI 2

Geometrie afină Conf. Univ. Dr. Cornel Pintea cpintea math.ubbcluj.ro Cuprins 1 Săptămâna Endomorfismele unui spaţiu afin Transla

PROGRAMA CONCURSULUI NAŢIONAL

Paradigme de Programare

O NOUA PROBLEMA DE CONCURS OLIMPIADA MUNICIPALA DE INFORMATICA, IASI 2019 V-am promis într-un articol mai vechi ca vom prezenta pe acest blog câteva p

Analiză statică Analiza fluxului de date 23 octombrie 2014

PowerPoint Presentation

LABORATOR 2

Microsoft Word - matem_aplicate in Economie aa FD Bala.doc

ALGORITHMICS

Spatii vectoriale

Retele Petri si Aplicatii

MD.09. Teoria stabilităţii 1

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi

15. Logică matematică cu aplicații în informatică - MI 3

Microsoft Word - Programa finala olimpiadei matematica 2007 gimnaziu.doc

Calcul Numeric

TEORIA MĂSURII Liviu C. Florescu Universitatea Al.I.Cuza, Facultatea de Matematică, Bd. Carol I, 11, R Iaşi, ROMANIA, e mail:

Noțiuni matematice de bază

Metode de sortare - pregătire admitere - Conf.dr. Alexandru Popa Lect. dr. Andrei Pătraşcu Universitatea din Bucureşti 1

Slide 1

Baze de date Anul 2 Teorie Examen 1. Diagrama entitate/relatie si diagrama conceptuala (curs 2-5) 2. Arbore algebric si expresie algebrica (curs 6-10)

STORY NAME: Young musician COPYRIGHT HOLDER: COPYRIGHT NOTICE: Telefilm Chisinau / OPEN Media Hub Ownership of content belongs to Telefilm Chisinau /

TEZA de ABILITARE Corelatii intre biomateriale, proteze valvulare cardiace si tehnici chirurgicale folosite in protezarea valvulara aortica Horatiu Mo

Investigaţie independentă

Paradigme de programare

Claudiu Sorin DRAGOMIR R E Z U M AT ARTeMIS s-au efectuat pentru determinarea Cuvinte cheie: seismic 1. Introducere cu diferite forme neregulate în pl

1 Lucrarea nr. 8 - Structuri de date de tip liste sortate O listă sortată reprezintă un aranjament al înregistrărilor din cadrul listei în funcţie de

YOUR SHOPPING NETWORK PLAN DE RETRIBUȚIE LYCONET (PLAN DE RETRIBUȚIE LYCONET) Anexa 1 a acordului Lyconet pentru Marketer Lyconet independenți Proprie

Logică și structuri discrete Mulțimi Casandra Holotescu

B

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Aproximarea functiilor prin metoda celor mai mici patrate

Microsoft Word - Matematika_kozep_irasbeli_javitasi_0911_roman.doc

Microsoft Word - MK_An_I_Matematica_aplicata_in_economie.docx

Dragi colaboratori,

Laborator 3 - Simulare. Metode de tip Monte Carlo. I. Estimarea ariilor şi a volumelor RStudio. Nu uitaţi să va setaţi directorul de lucru: Session Se

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

CONCURSUL DE MATEMATICĂ APLICATĂ "ADOLF HAIMOVICI" ETAPA JUDEȚEANĂ 18 martie 2017 Filiera Tehnologică : profilul Tehnic Clasa a IX -a Problema 1. 2 Se

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

Microsoft Word - l10.doc

MergedFile

Tiberiu Trif Analiză matematică 2 Calcul diferențial și integral în R n

09. Informatica 2 - MM 1

SUBPROGRAME

Transcriere:

Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Algoritmilor 33. Algoritmul de tip Monte Carlo

Bibliografie [1] C. Giumale Introducere in Analiza Algoritmilor cap. 6.1 [2] Cormen Introducere in algoritmi cap. 8.3 [3] http://www.soe.ucsc.edu/classes/cmps 102/Spring04/TantaloAsymp.pdf [4] http://www.mersenne.org/

Algoritmi Monte Carlo Găsesc o soluție a problemei care nu e garantat corectă (soluție aproximativă). Timp = soluția corectă a problemei. Probabilitatea ca soluția să fie corectă crește o dată cu timpul de rezolvare. Soluția găsită într-un timp acceptabil este aproape sigur corectă.

Complexitate algoritmi Monte Carlo Definiția 6.1 : Algoritmii Monte Carlo au complexitatea f(n) = O(g(n)) dacă c > 0 și n 0 > 0 a.î. n n 0, 0 < f(n) c α g(n) cu o probabilitate de cel puțin 1-n -α pentru α > 0 fixat si suficient de mare; Probabilitatea ca soluția determinată de algoritm să fie corectă este cel puțin 1 - n -α.

Exemplu algoritm Monte Carlo Problemă: testarea dacă un număr n dat este prim. Rezolvare clasică : Complexitate: Prim-clasic(n) Pentru i de la 2 la sqrt(n) Dacă (n mod i == 0) întoarce fals; Întoarce adevărat O(sqrt(n))

Determinarea numerelor prime - complexitate Observație: pentru numere mari operațiile nu mai durează O(1)! Estimăm numărul de operații în funcție de numărul de biți pe care este exprimat numărul. Prim_clasic O(2 k/2 ) unde k = nr. de biți ocupat de n.

Complexitate nesatisfăcătoare! On September 4, 2006, in the same room just a few feet away from their last find, Dr. Curtis Cooper and Dr. Steven Boone's CMSU team broke their own world record, discovering the 44th known Mersenne prime, 2 32,582,657-1. The new prime at 9,808,358 digits is 650,000 digits larger than their previous record prime found last December. On April 12 th (2009), the 46th known Mersenne prime, 2 42,643,801-1, a 12,837,064 digit number was found by Odd Magnar Strindmo from Melhus, Norway! This prime is the second largest known prime number, a "mere" 141,125 digits smaller than the Mersenne prime found last August. As of October 2009, 47 Mersenne primes are known. The largest known prime number (2 43,112,609 1) is a Mersenne prime. [Wikipedia] http://www.mersenne.org

Algoritm aleator (I) Teorema 6.1 (mica teoremă a lui Fermat ): Dacă n este prim 0 < x < n, x n-1 mod n = 1. Prim1(n,α) // detectează dacă n e număr prim Dacă (n 1 sau n mod 2 = 0) Întoarce fals Limit = limită_calcul(n,α) // numărul minim de pași pentru // soluția corectă cu P = 1 - n -α Pentru i de la 0 la limit x = random(1, n-1) // aleg un număr oarecare Dacă (pow_mod(x,n)! = 1) Întoarce fals // testez teorema // Fermat Întoarce adevărat Complexitate?

Algoritm aleator (II) Pow_mod(x,n) // calculează x n-1 mod n r = 1 // restul Pentru m de la n-1 la 0 Dacă (m mod 2 0) // testez dacă puterea e pară sau nu r = x * r mod n x = (x * x) mod n // calculez x 2 mod n m = m div 2 // înjumătățesc puterea Întoarce r Complexitate: O(lg(n))

Algoritm aleator (III) Problemă: nu putem stabili cu exactitate care este limita de calcul: Nu se poate estima pentru un număr compus n numărul de numere x, 2 < x < n pentru care nu se verifică ecuația; Există numere compuse pentru care orice număr x < n și prim în raport cu n satisface ecuația lui Fermat (ex: nr. Carmichael 561). Nu știm cu exactitate câte numere sunt! Nu putem calcula probabilitatea!

Altă variantă de algoritm aleator Teorema 6.2: Pentru orice număr prim n ecuația x 2 mod n = 1 are exact 2 soluții: x 1 = 1 ȘI x 2 = n 1. Definiție 6.2: Fie n > 1 și 0 < x < n două numere a.î. x n-1 mod n 1 sau x 2 mod n 1, x 1 și x n 1. X se numește martor al divizibilității lui n.

Algoritmul Miller-Rabin Prim2(n,α) Dacă (n 1 sau n mod 2 = 0) Întoarce fals limit = limita_calcul(n,α) Pentru i de la 0 la limit x = random(1,n-1) Dacă (martor_div(x,n)) Întoarce fals Întoarce adevărat Complexitate?

Algoritmul Miller-Rabin (II) martor_div(x,n) // determină dacă x e // martor al divizibilității lui n r = 1; y = x; Pentru m de la n-1 la 0 // puterea Dacă (m mod 2 0) // putere impară r = y * r mod n z = y // salvez valoarea lui x y = y * y mod n // calculez y 2 mod n Dacă (y = 1 și z 1 și z n-1) // verific teorema 6.2 Întoarce 1 m = m div 2 // înjumătățesc puterea Complexitate: O(lg(n)) Întoarce r 1 // mica teoremă Fermat (x n-1 mod n 1)

Calcularea numărului de pași Teorema 6.3: Pentru orice număr n, impar și compus există cel puțin (n-1) / 2 martori ai divizibilității lui n. Caz neinteresant: număr prim pentru că oricum algoritmul întoarce adevărat (P corect (n) = 1)! Caz interesant: număr compus (impar) (P corect (n) =?): x = element generat la un pas al algoritmului (0 < x < n); P(x) = probabilitatea ca numărul x generat din cele n-1 posibilități să fie martor al divizibilității; P(x) (n-1) / 2 * 1 / (n-1) = 0.5; P incorect (n) = Π 1->limit (1 - P(x)) 1/2 limit ; P corect (n) 1-2 -limit = 1 - n -α limit = α lg(n); după α lg(n) pași P corect (n) 1 - n -α ; Complexitate: O(lg 2 (n)) în funcție de numărul de biți k Complexitate: O(k 2 )

Exemplu de utilizare practică Quicksort(A, st, dr) Dacă st < dr q Partiție(A, st, dr) Quicksort(A, st, q - 1) Quicksort(A, q + 1, dr) Cazul defavorabil? Partiție(A, st, dr) x A[dr] i st - 1 Pentru j de la st la dr 1 Dacă A[j] x i i + 1 Interschimbă A[i] A[j] Interschimbă A[i + 1] A[dr] Întoarce i + 1 Complexitate?

Exemplu de utilizare practică (II) Problema Quicksort cazul defavorabil datele de intrare sunt sortate în ordine inversă. Complexitate Quicksort: O(n 2 ). Folosind algoritmi aleatori eliminăm acest caz.

Quicksort-aleator Quicksort-Randomizat(A, st, dr) Dacă st < dr q Partiție-Randomizată(A, st, dr) Quicksort-Randomizat(A, st, q - 1) Quicksort-Randomizat(A, q + 1, dr) Partiție-Randomizată(A, st, dr) i Random(st, dr) Interschimbă A[dr] A[i] Întoarce Partiție(A, st, dr)