Datamaskiner, Programmering
Dynamisk programmering, de grunnleggende prinsippene
For å velge den optimale løsningen når du utfører programmeringsoppgaver er noen ganger nødvendig å sortere store mengder datakombinasjoner som laster minnet om den personlige datamaskinen. Slike metoder inkluderer, for eksempel, av type programmering av "splitt og regelen". I dette tilfellet er algoritmen gir separasjon problem inn i separate mindre deloppgaver. Denne metoden gjelder kun i de tilfeller der små deloppgaver er uavhengige av hverandre. For å unngå å utføre unødvendig arbeid hvis gjensidig avhengige sub-oppgaver, bruker dynamisk programmering metoden foreslått amerikansk R.Bellmanom i 50-årene.
metoden
Dynamisk programmering er å bestemme den optimale løsningen den n-dimensjonale problem, å dele sine n separate trinn. Hver av dem er et sub-oppgave i forhold til en variabel.
Den største fordelen med denne tilnærmingen kan betraktes som utviklerne er involvert i den endimensjonale optimalisering problem deloppgaver i stedet for et n-dimensjonalt problem, og vårt primære mål er å gå til "bottom-up".
Det anbefales å bruke dynamisk programmering i de tilfeller hvor sub-oppgaver henger sammen, det vil si har felles moduler. Algoritmen gir avgjørelsen av hver av de deloppgaver en gang, og spare reaksjoner blir utført i et spesielt bord. Dette gjør det mulig for ikke å beregne et svar da de møttes igjen med den samme sub-oppgave.
Dynamisk programmering oppgaven løser problemet med optimalisering. Forfatteren av denne metoden ble utviklet av R. Bellman optimaliteten prinsipp: hva er den innledende tilstand av hvert av trinnene og oppløsningen definert i dette trinn, alle av følgende for å velge den optimale i forhold til den tilstand, som mottar systemet ved slutten av trinnet.
Fremgangsmåten forbedrer ytelsen av de oppgaver som løses ved hjelp av varianter, eller rekursjon.
Building oppgave algoritme
Dynamisk programmeringsalgoritme omfatter bygging av slike oppgaver at oppgaven så er delt i to eller flere underoppgaver til dens oppløsning er sammensatt av en optimal løsning på alle deloppgaver, omfatter den. Videre, er det nødvendig å skrive en gjentakelse relasjon, og å beregne de optimale parameterverdier for den oppgave som en helhet.
Noen ganger, på den tredje trinnet er å lagre noen ekstra bakgrunnsinformasjon om fremdriften for hver oppgave. Dette kalles returbevegelsen.
Påføringsmetoden metoden~~POS=HEADCOMP
Dynamisk programmering brukes når det er to karakteristiske trekk:
- optimal for deloppgaver;
- Tilstedeværelsen i problemet med overlappende deloppgaver.
Løse optimalisering problemet ved dynamisk programmering, må du først beskrive strukturen av løsningen. Oppgaven er således å være optimal hvis oppløsningen er sammensatt av de beste beslutningene i dens underoppgaver. I dette tilfellet, er det tilrådelig å bruke dynamisk programmering.
Den andre egenskap av problemet, vesentlig i denne metoden, - et lite antall av underoppgaver. Rekursiv løsning av problemet ved hjelp av de samme overlappende delproblemer, hvis antall er avhengig av størrelsen av den opprinnelige informasjonen. Svaret er lagret i en spesiell bord, sparer programmet tid ved hjelp av disse dataene.
Spesielt effektivt er bruk av dynamisk programmering når oppgaven er i hovedsak for å ta beslutninger i etapper. For eksempel vurdere et enkelt eksempel på problemet med utskifting og reparasjon av utstyr. La oss si på avstøpning maskin fabrikk for produksjon av dekk samtidig sørger for at dekket i to forskjellige former. I det tilfelle at en av de former svikter, er det nødvendig å demontere maskinen. Det er forståelig at noen ganger mer lønnsomt å erstatte og en annen form for å demontere maskinen i saken og denne formen vil være ubrukelige i neste trinn. Spesielt siden det er lettere å erstatte begge arbeider form før de begynner å svikte. Dynamisk programmering metode bestemmer den beste strategien i løpet av utskifting av disse skjemaene, tar hensyn til alle faktorer: Fordelene ved vedvarende former for utnyttelse, tap av maskinstans, kostnaden av kasserte dekk og mer.
Similar articles
Trending Now