CalculatoareProgramare

Programarea dinamică, principiile de bază

Pentru a selecta soluția optimă atunci când se efectuează sarcinile de programare sunt uneori necesare pentru a sorta cantități mari de combinații de date care încarcă memoria calculatorului personal. Astfel de metode includ, de exemplu, metoda de programare a „divide et impera“. În acest caz, algoritmul prevede o problema de separare în subactivități mai mici, separate. Această metodă se aplică numai în acele cazuri în care subactivități mici sunt reciproc independente. Pentru a evita efectuarea lucrărilor inutile în cazul în care sub-sarcini interdependente, utilizează metoda de programare dinamică propusă americană R.Bellmanom în anii '50.

metoda

Programarea dinamică este de a determina soluția optimă a problemei n-dimensional, schimbul de ei n etape separate. Fiecare dintre ele este o sub-sarcină în raport cu o singură variabilă.

Principalul avantaj al acestei abordări poate fi considerat că dezvoltatorii implicați în problema de optimizare unidimensională Subactivități în loc de o problema n-dimensional, iar obiectivul nostru principal este de a merge la „bottom-up“.

Este recomandabil să se aplice de programare dinamică, în acele cazuri în care sunt legate între ele sub-sarcini, și anume împărtășesc module comune. Algoritmul prevede decizia fiecăruia dintre sarcinile secundare o dată, iar răspunsurile de economisire este realizată într-un tabel special. Acest lucru face posibil să nu calculeze un răspuns atunci când s-au întâlnit din nou cu aceeași sub-sarcină.

Sarcina de programare dinamică rezolvă problema de optimizare. Autorul acestei metode a fost formulată de R. Bellman Principiul optimalității: oricare ar fi starea inițială a fiecărei etape și soluția definită în această etapă, toate următoarele pentru a alege optimă în raport cu statul, care primește sistemul la sfârșitul etapei.

Metoda îmbunătățește performanța sarcinilor rezolvate prin intermediul unor variante, sau recursivitate.

Algoritmul de activitate Clădire

Algoritmul de programare dinamică presupune construirea unor astfel de sarcini pe care sarcina, astfel este împărțit în două sau mai multe subactivități la soluția sa este compus dintr-o soluție optimă pentru toate subactivități, aceasta include. În plus, este necesar să se scrie o relație de recurență, și calcularea valorilor optime ale parametrilor pentru sarcina în ansamblu.

Uneori, pe al 3-lea pas este să memoreze unele informații de fond suplimentare cu privire la evoluția fiecărei sarcini. Aceasta se numește cursa de retur.

metoda de aplicare

Programarea dinamică se aplică atunci când există două trăsături caracteristice:

  • optim pentru subactivități;
  • Prezența în problema suprapunerii subprobleme.

Rezolvarea problemei de optimizare prin programare dinamică, trebuie mai întâi să descrie structura soluției. Sarcina trebuie să fie optimă în cazul în care soluția este compus din cele mai bune decizii ale subactivități sale. În acest caz, este recomandabil să se folosească de programare dinamică.

A doua proprietate a problemei, esențială în această metodă, - un număr mic de sub-sarcini. soluție recursivă a problemei folosind aceleași sub-probleme se suprapun, numărul de care depinde de mărimea informațiilor inițiale. Răspunsul este stocată într-un tabel special, programul economisește timp prin utilizarea acestor date.

Mai ales eficientă este utilizarea de programare dinamică atunci când sarcina este în mod esențial necesar pentru a lua decizii în etape. De exemplu, ia în considerare un simplu exemplu de problema înlocuirii și repararea echipamentelor. Să presupunem că pe fabrica de mașini de turnare pentru producerea de anvelope, în același timp, face anvelopei în două forme diferite. În cazul în care una din formele eșuează, este necesar să demontați aparatul. Este de înțeles că, uneori, mai profitabil să înlocuiască și un al doilea formular pentru a dezasambla aparatul în cazul în care și această formă va fi imposibil de realizat în etapa următoare. Mai ales că este mai ușor să înlocuiască atât forma de lucru înainte de a începe să nu reușească. Metoda de programare dinamică determină cea mai bună strategie în materie de înlocuire a acestor forme, luând în considerare toți factorii: beneficiile persistenței forme de exploatare, pierderea de nefuncționare mașină, costul de anvelope aruncate și mai mult.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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