DatoriProgrammēšana

Dynamic programmēšanas pamatprincipi

Lai izvēlētos optimālo risinājumu, veicot programmēšanas uzdevumi dažkārt nepieciešami, lai sakārtotu lielu daudzumu datu kombinācijas, kas ielādē atmiņas par personālo datoru. Šādas metodes ir, piemēram, programmēšanas metode "skaldi un valdi". Šajā gadījumā algoritms nodrošina atdalīšanas problēmu atsevišķās mazākās apakšuzdevumiem. Šī metode ir piemērojama tikai tajos gadījumos, kad mazie zaros ir savstarpēji neatkarīgas. Lai izvairītos veicot nevajadzīgu darbu, ja savstarpēji atkarīgām apakšgrupas uzdevumus, izmanto dinamisko programmēšanas ierosināto amerikāņu R.Bellmanom 50.gadu metodi.

Ar šo metodi

Dynamic programmēšana ir noteikt optimālo risinājumu n-dimensiju problēmas, daloties viņas n atsevišķus posmus. Katrs no tiem ir sub-uzdevumu saistībā ar vienu mainīgo.

Galvenā priekšrocība šo pieeju, var uzskatīt, ka iesaistītās viendimensijas optimizācijas problēmu izstrādātāji zaros, nevis no n-dimensiju problēmu, un mūsu galvenais mērķis būs "bottom-up".

Ir ieteicams izmantot dinamisko programmēšanu tajos gadījumos, ja apakšgrupas uzdevumi ir savstarpēji saistīti, ti, kopīgas moduļus. Algoritms nodrošina lēmumu katra no apakšuzdevumiem vienu reizi, un taupīšanas atbildes tiek veikta īpašā tabulā. Tas dod iespēju neaprēķināt atbildi, kad viņi tikās atkal ar to pašu sub-uzdevumu.

Dinamiskās programmēšanas uzdevumu atrisina problēmu optimizāciju. Šīs metodes autors formulējis R. Belmana optimalitātes princips: kāds ir sākotnējais stāvoklis katrā no posmiem un risinājumu definēts šajā solī, visi šie izvēlēties optimālo attiecībā uz valsti, kas saņem sistēmas beigās soli.

Metode uzlabo veiktspēju uzdevumu atrisināt ar variantiem, vai rekursijas.

Building uzdevums algoritms

Dinamiskās programmēšanas algoritmu ietver celtniecību šādu uzdevumu, ka uzdevums tā ir sadalīta divās vai vairākās apakšuzdevumiem tās risinājuma saliekot no optimālu risinājumu visām apakšuzdevumiem, tā ietver. Turklāt, tas ir nepieciešams, lai rakstītu atkārtošanās saistību, un aprēķinot optimālo parametru vērtības uzdevumam kopumā.

Dažreiz uz 3. solis ir iegaumēt dažus papildu pamatinformāciju par progresu katra uzdevuma. To sauc atgriešanās insults.

Application metode

Dynamic programmēšana tiek piemērota, ja ir divas raksturīgas iezīmes:

  • optimāli apakšuzdevumiem;
  • klātbūtne problēmu subproblems pārklājas.

Atrisinot optimizācijas problēmu, dinamiskā programmēšana, jums vispirms nepieciešams, lai raksturotu struktūru risinājumu. Uzdevums ir optimāla, ja šķīdums sastāv no labākajiem lēmumiem tās apakšuzdevumiem. Šajā gadījumā, tas ir ieteicams izmantot dinamisko programmēšanu.

Otrs īpašums problēmu, būtiski šo metodi, - neliels skaits apakšgrupas uzdevumus. Rekursīvas problēmas risinājumu, izmantojot tos pašus apakškategorijas, kas pārklājas problēmas, kuru skaits ir atkarīgs no lieluma sākotnējo informāciju. Atbilde tiek glabāta īpašā tabulā, programma ietaupa laiku, izmantojot šo informāciju.

Īpaši efektīva ir izmantot dinamiskās programmēšanas kad uzdevums būtībā nepieciešama, lai pieņemtu lēmumus pakāpeniski. Piemēram, apsvērt vienkāršu piemēru problēmu nomaiņa un remonts iekārtu. Pieņemsim, ka uz liešanas mašīnu rūpnīcas riepu ražošanā tajā pašā laikā padara riepu divos dažādos veidos. Gadījumā, ja viens no veidiem neizdodas, ir nepieciešams izjaukt mašīnu. Tas ir saprotams, ka reizēm izdevīgāk, lai aizstātu un otrā formā, lai izjaukt iekārtu gadījumā, un šī veidlapa būs nelietojams nākamajā posmā. Īpaši, jo tas ir vieglāk nomainīt gan darba formas, pirms tās sāk neizdoties. Dinamiskās programmēšanas metode nosaka labāko stratēģiju jautājumā par nomaiņu šo formu, ņemot vērā visus faktorus: turpināšanas lietderība ekspluatācijas formām, ar mašīnu dīkstāves, izmaksas par nolietoto riepu un daudz zaudējumu.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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