Kompiuteriai, Programavimas
Dinaminis programavimas, pagrindiniai principai
Norėdami pasirinkti optimalų sprendimą atliekant programavimo užduotys kartais reikia rūšiuoti didelius duomenų kiekius derinių, kuri įkelia su asmeninio kompiuterio atmintį. Tokie metodai apima, pavyzdžiui, programavimo metodas "skaldyk ir valdyk". Šiuo atveju algoritmas suteikia atskyrimo problemą į atskirus mažesnius smulkesnes užduotis. Šis metodas taikomas tik tais atvejais, kai maži antrines užduotis yra tarpusavyje nepriklausomi. Norėdami išvengti vykdant nereikalingo darbo, jei tarpusavyje sub-užduotis, naudoja siūlomą Amerikos R.Bellmanom 50s dinaminio programavimo metodu.
metodas
Dinaminis programavimas yra nustatyti optimalų sprendimą N-dimensijų problema, dalintis savo n atskirus etapus. Kiekvienas iš jų yra sub-užduotis, atsižvelgiant į vieno kintamojo.
Pagrindinis privalumas šio metodo gali būti laikoma, kad dalyvaujančios vienmačių optimizavimo problemos kūrėjai antrines užduotis vietoj n dimensijų problema, o mūsų pagrindinis tikslas ketina "iš apačios į viršų".
Patartina taikyti dinaminio programavimo tais atvejais, kai sub-užduotis yra tarpusavyje susiję, ty bendrų modulių. Algoritmas pateikiamas kiekvieno iš smulkesnes užduotis sprendimą vieną kartą, o taupymo atsakymai atliekamas specialioje lentelėje. Tai leidžia neskaičiuoti atsakymą, kai jie vėl susitiko su tuo pačiu sub-užduotis.
Dinaminis programavimas užduotis išsprendžia problemą optimizavimo. Šio metodo autorius buvo suformuluota R. Bellman optimalumo principu: kokia yra pradinė būsena vienas iš žingsnių, ir tirpalas apibrėžta šio žingsnio visi taip pasirinkti optimalų, susijusius su valstybės, kuri gauna sistemą stadijos pabaigoje.
Šis metodas gerina išspręsta naudojant variantų, ar rekursijos, atlikimą.
Statybos užduotis algoritmas
Dinaminis programavimas algoritmas apima tokias užduotis, kad užduotis taip yra padalinti į dvi ar daugiau smulkesnes užduotis, kad jos sprendimą sudaro optimalų visų smulkesnes užduotis statybą, ji apima. Be to, būtina parašyti pasikartojimo santykį, ir apskaičiuoti optimalius parametrų vertes užduoties, kaip visuma.
Kartais, 3-ame žingsnyje yra įsiminti tam tikrą papildomą aiškinamąją informaciją apie kiekvienos užduoties eigą. Tai vadinama grąža insultas.
Prašymas būdas
Dinaminis programavimas taikomas, kai yra du charakteringi bruožai:
- optimalus smulkesnes užduotis;
- buvimas sutampa subproblems problema.
Sprendžiant optimizavimo problemą dinaminio programavimo, pirmiausia turite aprašyti tirpalo struktūrą. Užduotis turi būti optimalus, jei tirpalas yra sudarytas iš geriausių sprendimų savo smulkesnes užduotis. Tokiu atveju patartina naudoti dinaminį programavimą.
Antroji savybė problemą, būtina šį metodą, - nedidelis skaičius sub-užduotis. Ciklas problemos sprendimas naudojant tuos pačius sutampančių pogrupius problemų, kurių skaičius priklauso nuo pradinio informaciją dydžio. Atsakymas yra saugomi specialioje lentelėje, programa taupo laiką naudojant šiuos duomenis.
Ypač veiksmingas yra dinaminio programavimo uždavinys iš esmės reikia priimti sprendimus etapais naudojimas. Pavyzdžiui, įsivaizduokite paprastą pavyzdį apie pakeitimo ir remonto įrangos problema. Tarkime, ant liejimo mašinų gamykla padangų gamybos tuo pačiu metu padaryti padangą dviejų skirtingų formų. Tuo atveju, kai viena iš formų nepavyksta, būtina ardyti mašiną. Suprantama, kad kartais labiau apsimoka pakeisti ir antra forma, siekiant ardyti įrenginio atveju ir ši forma bus neįgyvendinama į kitą etapą. Juolab, kad tai lengviau pakeisti tiek darbo formą, kol jie pradeda žlugti. Dinaminis programavimas metodas nustato geriausią strategiją, atsižvelgiant į šių formų pakeitimo klausimu, atsižvelgiant į visus veiksnius: tęstinio išnaudojimo formų, praradimo mašinos prastovos, kad išmestų padangų ir daugiau išlaidų nauda.
Similar articles
Trending Now