Analiza eficientei algoritmilor

Trimis la data: 2011-11-19 Materia: Matematica Nivel: Liceu Pagini: 14 Nota: / 10 Downloads: 6108
Autor: Bianca arenescu Dimensiune: 43kb Voturi: Tipul fisierelor: doc Acorda si tu o nota acestui referat: 1 2 3 4 5 6 7 8 9 10
vezi mai multe detalii vezi mai putine detalii
Raporteaza o eroare
Analiza eficientei algoritmilor. Vom dezvolta in acest capitol aparatul matematic necesar pentru analiza eficientei algoritmilor, incercand ca aceasta incursiune matematica sa nu fie excesiv de formala. Apoi, vom arata, pe baza unor exemple, cum poate fi analizat un algoritm. O atentie speciala o vom acorda tehnicilor de analiza a algoritmilor recursivi. Analiza eficientei algoritmilor

Notatia asimptotic;In Capitolul 1 am dat un inteles intuitiv situatiei cand un algoritm necesita un timp in ordinul unei anumite functii. Revenim acum cu o definitie riguroasa.

O notatie pentru “ordinul lui”Fie N multimea numerelor naturale (pozitive sau zero) si R multimea numerelor reale. Notam prin N+ si R+ multimea numerelor naturale, respectiv reale, strict pozitive, si prin R multimea numerelor reale nenegative. Multimea {true, false} de constante booleene o notam cu B. Fie f : N R o functie arbitrara. Definim multimea

O( f ) = {t : N R | (c R+) (n0 N) (n n0) [t(n) cf (n)]}
Cu alte cuvinte, O( f ) (se citeste “ordinul lui f ”) este multimea tuturor functiilor t marginite superior de un multiplu real pozitiv al lui f, pentru valori suficient de mari ale argumentului. Vom conveni sa spunem ca t este in ordinul lui f (sau, echivalent, t este in O( f ), sau t O( f )) chiar si atunci cand valoarea f (n) este negativa sau nedefinita pentru anumite valori n < n0.

In mod similar, vom vorbi despre ordinul lui f chiar si atunci cand valoarea t(n) este negativa sau nedefinita pentru un numar finit de valori ale lui n; in acest caz, vom alege n0 suficient de mare, astfel incat, pentru n n0, acest lucru sa nu mai apara. De exemplu, vom vorbi despre ordinul lui n/log n, chiar daca pentru n = 0 si n = 1 functia nu este definita. In loc de t O( f ), uneori este mai convenabil sa folosim notatia t(n) O( f (n)), subintelegand aici ca t(n) si f (n) sunt functii.

Fie un algoritm dat si fie o functie t : N R astfel incat o anumita implementare a algoritmului sa necesite cel mult t(n) unitati de timp pentru a rezolva un caz de marime n, n N. Principiul invariantei (mentionat in Capitolul 1) ne asigura ca orice implementare a algoritmului necesita un timp in ordinul lui t. Mai mult, acest algoritm necesita un timp in ordinul lui f pentru orice functie f : N R pentru care t O( f ). In particular, t O(t). Vom cauta in general sa gasim cea mai simpla functie f, astfel incat t O( f ).

Proprietatile de baza ale lui O( f ) sunt date ca exercitii (Exercitiile 5.1-5.7) si este recomandabil sa le studiati inainte de a trece mai departe. Notatia asimptotica defineste o relatie de ordine partiala intre functii si deci, intre eficienta relativa a diferitilor algoritmi care rezolva o anumita problema. Vom da in continuare o interpretare algebrica a notatiei asimptotice. Pentru oricare doua functii f , g : N R, definim urmatoarea relatie binara: f g daca O( f ) O(g). Relatia “” este o relatie de ordine partiala in multimea functiilor definite pe N si cu valori in R (Exercitiul 5.6). Definim si o relatie de echivalenta: f g daca O( f ) = O(g).

In multimea O( f ) putem inlocui pe f cu orice alta functie echivalenta cu f. De exemplu, lg n ln n log n si avem O(lg n) = O(ln n) = O(log n). Notand cu O(1) ordinul functiilor marginite superior de o constanta, obtinem ierarhia:

O(1) O(log n) O(n) O(n log n) O(n2) O(n3) O(2n)
Aceasta ierarhie corespunde unei clasificari a algoritmilor dupa un criteriu al performantei. Pentru o problema data, dorim mereu sa obtinem un algoritm corespunzator unui ordin cat mai “la stanga”. Astfel, este o mare realizare daca in locul unui algoritm exponential gasim un algoritm polinomial.

In Exercitiul 5.7 este data o metoda de simplificare a calculelor, in care apare notatia asimptotica. De exemplu,
n33n2n8 O(n3(3n2n8)) = O(max(n3, 3n2n8)) = O(n3)
Ultima egalitate este adevarata, chiar daca max(n3, 3n2n8) n3 pentru 0 n 3, deoarece notatia asimptotica se aplica doar pentru n suficient de mare.

Nota explicativa
Referatele si lucrarile oferite de Referate.ro au scop educativ si orientativ pentru cercetare academica.

Iti recomandam ca referatele pe care le downloadezi de pe site sa le utilizezi doar ca sursa de inspiratie sau ca resurse educationale pentru conceperea unui referat nou, propriu si original.

Referat.ro te invata cum sa faci o lucrare de nota 10!
Filmele zilei
Linkuri utile
Programeaza-te online la salonul favorit Descarca gratuit aplicatiile pentru iOS si Android Filmulete haioase Filme, poante si cele mai tari faze Jocuri Cele mai tari jocuri de pe net Referate scoala Resurse, lucrari, referate materiale pentru lucrari de nota 10 Bacalaureat 2018 Vezi subiectele examenului de Bacalaureat din 2018 Evaluare Nationala 2018 Ultimele informatii despre evaluare nationala
Toate imaginile, textele sau alte materiale prezentate pe site sunt proprietatea referat.ro fiind interzisa reproducerea integrala sau partiala a continutului acestui site pe alte siteuri sau in orice alta forma fara acordul scris al referat.ro. Va rugam sa consultati Termenii si conditiile de utilizare a site-ului. Informati-va despre Politica de confidentialitate. Daca aveti intrebari sau sugestii care pot ajuta la dezvoltarea site-ului va rugam sa ne scrieti la adresa webmaster@referat.ro.
Confidentialitatea ta este importanta pentru noi

Referat.ro utilizeaza fisiere de tip cookie pentru a personaliza si imbunatati experienta ta pe Website-ul nostru. Te informam ca ne-am actualizat politica de confidentialitate pentru a integra cele mai recente modificari privind protectia persoanelor fizice in ceea ce priveste prelucrarea datelor cu caracter personal. Inainte de a continua navigarea pe Website-ul nostru te rugam sa aloci timpul necesar pentru a citi si intelege continutul Politicii de Cookie. Prin continuarea navigarii pe Website-ul nostru confirmi acceptarea utilizarii fisierelor de tip cookie conform Politicii de Cookie. Nu uita totusi ca poti modifica in orice moment setarile acestor fisiere cookie urmarind instructiunile din Politica de Cookie.


Am inteles