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//. |