This shows you the differences between two versions of the page.
sda-ab:cursuri:12 [2021/03/10 23:50] david.broscoteanu [2.3 Probleme tip rezolvate cu acest algoritm] |
sda-ab:cursuri:12 [2021/03/10 23:54] (current) david.broscoteanu [2.1 Prezentare generală] |
||
---|---|---|---|
Line 6: | Line 6: | ||
* Înțelegerea aplicabilității practice a programării dinamice în: | * Înțelegerea aplicabilității practice a programării dinamice în: | ||
* Genetică (sequence alignment) | * Genetică (sequence alignment) | ||
- | * Teoria grafurilor (algoritmul Floyd-Warshall) | + | * //Teoria grafurilor (algoritmul Floyd-Warshall)// |
* Limbaje formale și automate (algoritmul Cocke-Younger-Kasami,care analizează dacă și în ce fel un șir poate fi generat de o gramatică independentă de context) | * Limbaje formale și automate (algoritmul Cocke-Younger-Kasami,care analizează dacă și în ce fel un șir poate fi generat de o gramatică independentă de context) | ||
* Implementarea bazelor de date (algoritmul Selinger pentru optimizarea interogării relaționale) | * Implementarea bazelor de date (algoritmul Selinger pentru optimizarea interogării relaționale) | ||
Line 15: | Line 15: | ||
Programarea dinamică presupune rezolvarea unei probleme prin descompunea ei în subprobleme și rezolvarea acestora. Spre deosebire de divide et impera, subprogramele nu sunt disjuncte, ci se suprapun.\\ | Programarea dinamică presupune rezolvarea unei probleme prin descompunea ei în subprobleme și rezolvarea acestora. Spre deosebire de divide et impera, subprogramele nu sunt disjuncte, ci se suprapun.\\ | ||
\\ | \\ | ||
- | Pentru a evita recalcularea porțiunilor care se suprapun, rezolvarea se face pornind de la cele mai mici subprograme și folosindu-ne de rezultatul acestora calculăm subproblema imediat mai mare. Cele mai mici subprobleme sunt numite subprobleme unitare, acestea putând fi rezolvate într-o complexitate constantă, ex:cea mai mare secvență dintr-o mulțime de un singur element. | + | Pentru a evita recalcularea porțiunilor care se suprapun, rezolvarea se face pornind de la cele mai mici subprograme și folosindu-ne de rezultatul acestora calculăm subproblema imediat mai mare. Cele mai mici subprobleme sunt numite **subprobleme unitare**, acestea putând fi rezolvate într-o **complexitate constantă**, //ex:cea mai mare secvență dintr-o mulțime de un singur element//. |