Principii fundamentale ale programării dinamice

Previzualizare licența:

Cuprins licența:

1 INTRODUCERE
2 PREZENTARE GENERALA
2.1 SUBSTRUCTURA OPTIMALA
2.2 SUBPROBLEME SUPERPOZABILE
2.3 INMULTIREA OPTIMALA A MATRICELOR
2.4 SUBSIR CRESCATOR MAXIMAL
2.5 SUMAIN TRIUNGHI
2.6 SUBSIR COMUN MAXIMAL
3 ALGORITMI DE PROGRAMARE DINAMICA TREI PRINCIPII FUNDAMENTALE ALE PROGRAMARII DINAMICE
3.1 DETERMINAREA CELOR MAI SCURTE DRUMURIINTR - UN GRAF
3.2 ARBORI BINARI OPTIMI DE CAUTARE
3.3 ARBORII BINARI DE CAUTARE TIP DATA
3.4 ARBORELE OPTIM
3.5 CAUTAREAIN ARBORE
3.6 MODIFICAREA ARBORELUI
3.7 PROGRAMAREA DINAMICA COMPARATA CU TEHNICA GREEDY
4 ALGORITMI DIVIDE ET IMPERA; TEHNICA DIVIDE ET IMPERA
4.1 CAUTAREA BINARA
4.2 MERGESORT (SORTAREA PRIN INTERCLASARE)
4.3 MERGESORTIN CLASELE TABLOU <T> SI LISTA <E>
4.4 TABLOURI SORTABILE SI LISTE SORTABILE
4.5 QUICKSORT (SORTAREA RAPIDA)
4.6 SELECTIA UNUI ELEMENT DINTR - UN TABLOU
4.7 O PROBLEMA DE CRIPTOLOGIE
4.8 INMULTIREA MATRICELOR
4.9 INMULTIREA NUMERELORINTREGI MARI
5 PROGRAMARE DINAMICA
5.1 INTRODUCERE
5.2 PROBLEME DE ALOCARE UNIDIMENSIONALA
5.3 UN MODEL MATEMATIC
5.4 POSIBILITATI DE REZOLVARE. DIFICULTATI
5.5 REZOLVAREA PROBLEMELOR
5.6 O PROBLEMA DEINCARCARE A UNUI VAPOR DE ALOCARE UNIDIMENSIONALE (P) PRIN (PD)
6 APLICATIE
7 BIBLIOGRAFIE

Extras din licența:

Programarea dinamica este o metoda de elaborare a algoritmilor care se aplica in general problemelor pentru care se cere determinarea unui optim in urma adoptarii unor decizii. Nu exista un criteriu pe baza caruia sa identificam cu siguranta o problema pentru rezolvarea careia trebuie sa utilizam metoda programarii dinamice, dar putem formula doua proprietati care sugereaza o solutie prin programare dinamica.

Primul capitol al acestei lucrari este redata o prezentare generala despre structura optimala si subproblemee superpozabile cat si despre alte operatii optimale.

In al doilea capitol sunt prezentati algoritmi de programare dinamica si trei principii fundamentale ale programarii dinamice.

Capitolul trei prezinta cateva metode de sortare, algoritmii divide et impera si tehnica divide et impera.

Programarea dinamica si cateva probleme de alocare unidimensionala, sunt prezentate in ultimul capitol al acestei lucrari.

PREZENTARE GENERALA 1. 1. Substructura optimala Problema data poate fi descompusa in subprobleme si solutia optima a problemei depinde de solutiile optime ale subproblemelor sale.

Acest criteriu nu indica neaparat o solutie prin programare dinamica, ar putea fi si un indiciu ca se poate aplica metoda Greedy sau metoda Divide et Impera.

1. 2. Subprobleme superpozabile Subproblemele problemei date nu sunt independente, ci se suprapun. Datorita faptului ca subproblemele problemei date se suprapun, deducem ca o abordare prin metoda Divide et Impera ar fi dezastruoasa din punctul de vedere al timpului de executie (datorita faptului ca problemele se suprapun se ajunge la rezolvarea repetata a aceleiasi subprobleme). Prin urmare, vom rezolva subproblemele o singura, data, retinand rezultatele intr-o structura de date suplimentara (de obicei un tablou). Rezolvarea unei probleme prin programare dinamica presupune urmatorii pasi: - Se identifica subproblemele problemei date. - Se alege o structura de date suplimentara, capabila sa retina solutiile subproblemelor. - Se caracterizeaza substructura optimala a problemei printr-o relatie de recurenta.

Pentru a determina solutia optima, se rezolva relatia de recurenta in mod bottom-up (se rezolva subproblemele in ordinea crescatoare a dimensiunii lor). In cele ce urmeaza vom exemplifica pas cu pas modul de rezolvare a problemelor prin metoda programarii dinamice.

1. 3. Inmultirea optimala a matricelor Fie n matrice A1, A2, ., An, de dimensiuni d0xd1, d1xd2, ., dn-1xdn. Produsul A1xA2x. xAn se poate calcula in diverse moduri, aplicand asociativitatea operatiei de inmultire a matricelor. Numim inmultire elementara inmultirea a doua elemente.

In functie de modul de parantezare difera numarul de inmultiri elementare necesare pentru calculul produsului A1xA2x. xAn. Determinati o parantezare optimala a produsului A1xA2x. xAn (costul parantezarii, adica numarul total de inmultiri elementare sa fie minim). Exemplu: Pentru n=3 matrice cu dimensiunile (10, 1000), (1000, 10) si (10, 100), produsul ...

Bibliografie:

EMIL CERCHEZ - "PROGRAMARE DINAMICA" - BUCURESTI, 1998

TUDOR SORIN - "METODA BACKTRACKING" - CRAIOVA, 1996

TUDOR SORIN - "ALGORITMI DE PROGRAMARE" - CRAIOVA, 1994

D. E. KNUTH - "TRATAT DE PROGRAMAREA CALCULATOARELOR. SORTARE SI CAUTARE"

VEGA. UNITBV. RO - "ALGORITMI DIVIDE ET IMPERA"

Descarcă licența

Pentru a descărca acest document,
trebuie să te autentifici in contul tău.

Structură de fișiere:
  • Principii fundamentale ale programarii dinamice
    • Bibliografie.doc
    • Cuprins.doc
    • Diploma.doc
Alte informații:
Tipuri fișiere:
doc
Diacritice:
Da
Nota:
8/10 (2 voturi)
Anul redactarii:
1999
Nr fișiere:
3 fisiere
Pagini (total):
77 pagini
Imagini extrase:
65 imagini
Nr cuvinte:
18 430 cuvinte
Nr caractere:
91 049 caractere
Marime:
385.80KB (arhivat)
Publicat de:
Anonymous A.
Nivel studiu:
Facultate
Tip document:
Licența
Domeniu:
Calculatoare
Predat:
la facultate din Bucuresti
Specializare:
-
Materie:
Calculatoare
Sus!