TietokoneetOhjelmointi

Dynaaminen ohjelmointi, perusperiaatteet

Valitsemaan optimaalisen ratkaisun suoritettaessa ohjelmointitehtäviä tarvitaan joskus lajitella suuria tietomääriä yhdistelmiä joka lataa muistista henkilökohtaisen tietokoneen. Tällaisia menetelmiä ovat, esimerkiksi, ohjelmoinnin menetelmä "hajota ja hallitse". Tässä tapauksessa algoritmi tarjoaa erottaminen ongelma pienempiin erillisiin alitehtävät. Tämä menetelmä on sovellettavissa ainoastaan tapauksissa, joissa pieni alitehtävät ovat toisistaan riippumattomia. Välttää suorittamalla turhaa työtä, jos toisiinsa osatehtävien, käyttää dynaamista ohjelmointia menetelmää ehdotti Amerikan R.Bellmanom 50s.

menetelmän

Dynaaminen ohjelmointi on määrittää optimaalinen ratkaisu n-ulotteinen ongelma, jakaa hänen n eri vaiheessa. Jokainen heistä on osa-tehtävän suhteen yksi muuttuja.

Tärkein etu tässä lähestymistavassa voidaan katsoa, että kehittäjät mukana yksiulotteinen Optimointitehtävän alitehtävät sijasta n-ulotteinen ongelma, ja meidän ensisijainen tavoite on menossa "alhaalta ylös".

On suositeltavaa käyttää apuna dynaamista ohjelmointia niissä tapauksissa, joissa osa-tehtävät liittyvät toisiinsa, eli yhteisiä moduuleja. Algoritmi antaa päätöksen kunkin alitehtävät kerran, ja säästäminen vasteet suoritetaan erityisen taulukon. Tämä mahdollistaa olla laskematta vastausta, kun he tapasivat uudelleen samalla osa-tehtävä.

Dynaaminen ohjelmointi tehtävän ratkaisee ongelman optimoinnin. Tekijä tämän menetelmän on muotoiltu R. Bellman optimality periaate: mitä on alkutila kunkin vaiheiden ja liuos määritellään tässä vaiheessa, kaikki seuraavat valita optimaalinen suhteessa tilaan, joka vastaanottaa järjestelmän lopussa vaiheen.

Menetelmä parantaa suorituskykyä tehtävien avulla ratkaistava variantteja, tai rekursio.

Rakennustehtävä algoritmi

Dynaamista ohjelmointia algoritmi käsittää rakentamista tällaisia tehtäviä, että tehtävä niin on jaettu kahteen tai useampaan alitehtävät sen liuos koostuu optimaalinen ratkaisu kaikkiin alitehtävät, se sisältää. Lisäksi on välttämätöntä kirjoittaa toistumisen suhteen, ja lasketaan optimaalinen parametriarvot tehtävän kokonaisuudessaan.

Joskus 3. vaihe on muistaa joitakin muita taustatietoja edistymistä kunkin tehtävän. Tätä kutsutaan paluuiskun.

levitystapa

Dynaaminen ohjelmointi sovelletaan silloin, kun on olemassa kaksi ominaisuudet:

  • optimaalinen alitehtävät;
  • läsnäolo ongelma päällekkäisten aliongelmat.

Ratkaiseminen optimoinnin ongelman dynaaminen ohjelmointi, sinun on ensin kuvata rakennetta ratkaisun. Tehtävänä on oltava optimaalinen, jos liuos koostuu parhaista päätöksistä sen osatehtävistä. Tässä tapauksessa on suositeltavaa käyttää dynaamista ohjelmointia.

Toinen ominaisuus ongelman, olennaista tässä menetelmässä - pieni joukko osa-tehtäviä. Rekursiivinen ratkaisu ongelmaan käyttämällä samaa päällekkäisten osa-ongelmia, joiden lukumäärä riippuu koosta alkuperäisen tiedon. Vastaus on tallennettu erityisen taulukon, ohjelma säästää aikaa käyttämällä näitä tietoja.

Erityisen tehokas käyttö on dynaaminen ohjelmointi kun tehtävä on lähinnä tarvitaan, jotta päätöksiä vaiheittain. Ajatellaan esimerkiksi yksinkertaisen esimerkin ongelma korvaaminen ja korjauspalvelut. Sanotaan on valukoneen tehtaan renkaiden valmistuksessa samalla takaavat renkaan kahdessa eri muodossa. Siinä tapauksessa, että yksi muodoista epäonnistuu, on tarpeen purkaa laitetta. On ymmärrettävää, että joskus kannattavampaa korvata ja toisesta muodosta, jotta purkaa laitetta, jos ja tässä muodossa on mahdoton seuraavassa vaiheessa. Varsinkin kun se on helpompi vaihtaa molemmat hyvässä toimintakunnossa, ennen kuin ne alkavat epäonnistua. Dynaaminen ohjelmointi menetelmällä määritetään paras strategia asiassa korvaamisesta nämä muodot, kun otetaan huomioon kaikki tekijät: hyödyt jatkuvan hyväksikäytön muotojen menetys seisokkeina, kustannukset poistettujen renkaiden ja enemmän.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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