Skip to main content

Mi a dinamikus programozás?

A dinamikus programozás, amikor a számítástechnika területére utal, leírja a hasonló számítógépes algoritmusok egy csoportját, amelynek célja a komplex problémák megoldása azáltal, hogy a problémát kisebb problémákra bontja.Az 1950 -es években Richard Bellman által először a dinamikus programozás olyan problémákkal működik, amelyek vagy átfedő alproblémák vagy optimális alszerkezetek.Annak megértése érdekében, hogy a dinamikus programozás hogyan működik, a legjobb, ha megértjük a két kifejezés mögött meghúzódó koncepciót.Például egy matematikai egyenlet azt mondta, hogy az összes lehetséges eredményt egy számkészlet segítségével kiszámíthatja, ugyanazt az eredményt sokszor kiszámíthatja, miközben csak egyszer számíthat más eredményeket.A dinamikus programozás azt a problémát mondaná, hogy az eredmény kiszámítása után az első alkalommal mentenie kell az eredményt, és később be kell zárnia a választ az egyenletbe, ahelyett, hogy újra kiszámítaná.A hosszú összetett folyamatokkal és egyenletekkel foglalkozva ez időt takarít meg, és sokkal kevesebb lépéssel gyorsabb megoldást hoz létre.Miután egy komplex problémát kisebb problémákra bontott, a számítógép egy matematikai rendszert használja annak meghatározására, hogy mi a legjobb válasz az egyes problémákra.A kisebb válaszokból kiszámítja az eredeti problémára adott választ.Hibák léteznek ezzel a folyamattal.Noha a matematikailag a legjobban működik a megoldás, lehet, hogy nem a legjobb megoldás a valós életben, a probléma típusától és annak kapcsolódásától a valós világhoz.Az algoritmus megpróbálja megtalálni a legrövidebb utat a megoldáshoz.Ehhez két megközelítés egyikét is igénybe veheti.A fentről lefelé mutató megközelítés az egyenletet kisebb egyenletekre bontja, és szükség esetén újra felhasználja a válaszokat ezekre az egyenletekre.Az alulról felfelé irányuló megközelítés megpróbálja megoldani a legkisebb matematikai értéket, miután lebontja az egyenletet, majd felfelé halad a legnagyobb felé.Mindkét megközelítés időt takarít meg, de a dinamikus programozás csak akkor működik, ha az eredeti probléma kisebb egyenletekre bontható, amelyeket egy bizonyos ponton újra felhasználnak az egyenlet megoldására.