SzámítógépekProgramozás

Dinamikus programozás alapelvei

Kiválasztja az optimális megoldás, ha teljesítenek a programozási feladatok néha szükséges rendezni a nagy mennyiségű adat kombinációk, amely betölti a memória a személyi számítógép. Az ilyen módszerek közé tartozik, például, a programozási módszer a „oszd meg és szabályt”. Ebben az esetben az algoritmus szétválasztás probléma különálló kisebb részfeladatok. Ez a módszer csak akkor alkalmazható azokban az esetekben, amikor a kis részfeladatok egymástól függetlenek. Annak elkerülése érdekében végző felesleges munka, ha függő részfeladat, használja a dinamikus programozási módszert javasolt amerikai R.Bellmanom a 50-es években.

az eljárás

Dinamikus programozás célja, hogy meghatározza az optimális megoldás az n-dimenziós probléma, megosztva vele n külön szakaszban. Mindegyikük egy részfeladat tekintetében az egyik változó.

A fő előnye ennek a megközelítésnek lehet tekinteni, hogy a fejlesztők részt vesznek a egydimenziós optimalizálási probléma részfeladatok helyett egy n-dimenziós probléma, és elsődleges célunk fog „bottom-up”.

Célszerű alkalmazni dinamikus programozási azokban az esetekben, amikor a részfeladatok összefüggenek, azaz közösek modulokat. Az algoritmus a döntést az egyes részfeladatok egyszer, és megtakarítás válaszok végezzük egy speciális asztalon. Ez lehetővé teszi, hogy nem számít a választ, amikor találkoztak újra ugyanazokkal a részfeladat.

Dinamikus programozási feladat megoldja a problémát az optimalizálás. A szerző ezt a módszert fogalmazott R. Bellman optimum elve: bármi is az eredeti állapot az egyes lépéseket, és az oldatot az ebben a lépésben az összes alábbi választani az optimális kapcsolatban az állam, amely megkapja a rendszer végén lépést.

A módszer javítja a teljesítményt a feladatok megoldása az variánsok, vagy a rekurziót.

Az épület feladat algoritmusa

Dinamikus programozási algoritmust magában foglalja az építés ilyen feladatokat a feladat úgy van osztva két vagy több részfeladatot hogy a megoldás áll az optimális megoldást minden részfeladatot, ez magában foglalja. Továbbá szükség van levelet rekurzív sorozat, és kiszámítjuk az optimális paraméterek értékeit a feladat egészét.

Néha, a 3. lépésben, hogy memorizálni néhány további háttér-információkat a haladás minden egyes feladat. Ezt nevezik a visszatérő löket.

Alkalmazási módszer

Dinamikus programozás alkalmazzák, ha van két jellegzetessége:

  • optimális részfeladatok;
  • jelenlétét a problémát átfedő részfeladatok.

Megoldása optimalizálási probléma dinamikus programozás, akkor először meg kell leírni a szerkezet a megoldás. A feladat kell, hogy legyen az optimális, ha az oldat összetétele a legjobb határozatait részfeladatok. Ebben az esetben célszerű használni, dinamikus programozás.

A második tulajdonság a probléma, nélkülözhetetlen ez a módszer - kis számú részfeladat. Rekurzív megoldás a problémára ugyanazt átfedő al-problémák, amelyek száma függ a méret a kezdeti információk. A válasz tároljuk külön táblázatban, a program időt takarít meg az adatokat.

Különösen hatékony a dinamikus programozás, ha a feladat lényegében döntésekhez szükséges a szakaszban. Vegyük például egy egyszerű példát a probléma cseréje és javítása. Tegyük fel, hogy az öntvény gép gyárban a termelés gumiabroncsok ugyanakkor, hogy az abroncs két különböző formában. Abban az esetben, ha valamelyik formában nem sikerül, meg kell szétszedni a készüléket. Érthető, hogy néha jobban megéri cserélni, és egy második formát annak érdekében, hogy szedje szét a készüléket abban az esetben, és ebben a formában lesz kivitelezhetetlen a következő szakaszba. Különösen azért, mert ez könnyebb cserélni mindkét dolgozó alakja, mielőtt elkezdenek nem. Dinamikus programozás módszerrel a legjobb stratégia az ügyben a csere ezen formák, figyelembe véve az összes tényezőt: a kezelés folytatásának kizsákmányolás, elvesztése gép leállás, a költségek eldobott gumiabroncsokat és így tovább.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 hu.delachieve.com. Theme powered by WordPress.