ComputereProgrammering

Dynamisk programmering, de grundlæggende principper

For at vælge den optimale løsning, når du udfører programmeringsopgaver er undertiden nødvendigt at sortere store mængder data kombinationer, indlæser mindet om den personlige computer. Sådanne fremgangsmåder indbefatter for eksempel, programmeringen metode til "del og regel". I dette tilfælde giver algoritmen adskillelse problemet i separate mindre delopgaver. Denne metode anvendes kun i de tilfælde, hvor små delopgaver er indbyrdes uafhængige. For at undgå at udføre unødigt arbejde, hvis indbyrdes afhængige delopgaver, benytter dynamisk programmering metode foreslået amerikansk R.Bellmanom i 50'erne.

fremgangsmåden

Dynamisk programmering er at bestemme den optimale løsning for n-dimensionale problem, deler hendes n separate faser. Hver af dem er en sub-opgave med hensyn til en variabel.

Den største fordel ved denne fremgangsmåde kan anses, at de er involveret i den endimensionale optimeringsproblem udviklere delopgaver i stedet for en n-dimensional problem, og vores primære mål er at gå til "bottom-up".

Det er tilrådeligt at anvende dynamisk programmering i de tilfælde, hvor delopgaver hænger sammen, dvs. deler fælles moduler. Algoritmen giver afgørelsen af hver af de delopgaver én gang, og besparelse reaktioner udføres i en særlig tabel. Dette gør det muligt ikke at beregne et svar, da de mødtes igen med den samme sub-opgave.

Dynamisk programmering opgave løser problemet med optimering. Forfatteren af denne metode blev formuleret af R. Bellman optimality princip: uanset er den oprindelige tilstand af hvert af trinnene, og opløsningen defineret i dette trin, samtlige følgende at vælge den optimale i forhold til den tilstand, som modtager systemet ved afslutningen af trin.

Metoden forbedrer ydeevnen af de opgaver løses ved hjælp af varianter, eller rekursion.

Bygning opgave algoritme

Dynamisk programmering algoritme indebærer opførelse af sådanne opgaver, som det så er opdelt i to eller flere delopgaver til dets løsning opgave er sammensat af en optimal løsning til alle delopgaver, den indeholder. Endvidere er det nødvendigt at skrive en rekursionsligning, og beregning af de optimale parameterværdier for opgaven som helhed.

Nogle gange, på 3. trin er at huske nogle yderligere baggrundsinformation om forløbet af hver enkelt opgave. Dette kaldes tilbageslaget.

anvendelsesmetode

Dynamisk programmering anvendes, når der er to karakteristiske træk:

  • optimal for delopgaver;
  • tilstedeværelse i problemet med overlappende delproblemer.

Løsning optimering problem ved dynamisk programmering, skal du først beskrive strukturen af løsningen. Opgaven skal være optimal, hvis opløsningen er sammensat af de bedste beslutninger for sine underopgaver. I dette tilfælde er det tilrådeligt at bruge dynamisk programmering.

Den anden egenskab af problemet, afgørende i denne metode, - et lille antal delopgaver. Rekursiv løsning af problemet med de samme overlappende delproblemer, hvis antal afhænger af størrelsen af den oprindelige information. Svaret er gemt i en særlig tabel, at programmet sparer tid ved at bruge disse data.

Specielt effektiv er brugen af dynamisk programmering, når opgaven er væsentligt behov for at træffe beslutninger i etaper. For eksempel overveje et simpelt eksempel på problemet med udskiftning og reparation af udstyr. Lad os sige på casting maskine fabrik til produktion af dæk på samme tid gøre dækket i to forskellige former. I tilfælde af at en af de former fejler, er det nødvendigt at skille maskinen ad. Det er forståeligt, at nogle gange mere rentabelt at udskifte og en anden form for at skille maskinen ad i sagen, og denne formular vil være umuligt i den næste fase. Især da det er nemmere at udskifte begge arbejder form, før de begynder at svigte. Dynamisk programmering metode bestemmer den bedste strategi i spørgsmålet om udskiftning af disse former, under hensyntagen til alle de faktorer: fordelene ved vedvarende former for udnyttelse, tab af maskinstop, udgifter til kasserede dæk og mere.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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