Share to: share facebook share twitter share wa share telegram print page
Available for Advertising

Dinamičko programiranje

Dinamičko programiranje je metod kojim se smanjuje vreme izvršavanja onih problema u kojima se zahteva traženje optimalne podstrukture i koji imaju potprobleme koji se ponavljaju, kao što će biti opisano u nastavku. Ovaj pojam je uveo matematičar Ričard Belman 1953. godine.

Pregled

Pojam optimalna podstruktura označava traženje otpimalnih rešenja potproblema i njihovo korišćenje u cilju traženja optimalnog rešenja celokupnog problema. Na primer, najkraći put do datog čvora (označimo ga kao krajnji) od proizvoljnog čvora u acikličnom grafu, može se izračunati tako što se najpre izračuna najkraći put od krajnjeg čvora do njegovih susednih, zatim isti princip primenimo na njegove susede, itd. Dakle, problem koji ima optimalnu podstrukturu se može rešiti u sledeća tri koraka:

  1. Razbiti problem na manje potprobleme.
  2. Rešiti date potprobleme koristeći ova tri koraka rekurzivno.
  3. Iskoristiti pronađena optimalna rešenja potproblema kako bi se našlo optimalno rešenje glavnog problema.

Potprobleme je potrebno deliti na pot-potrobleme, sve dok se ne dođe do jednostavnih slučaja koje je jednostavno rešiti.

Za razliku od nekih algoritama u kojima se pojavaljuju potproblemi koji se ponavljaju, kod dinamičkog programiranja, jedan potproblem se rešava samo jednom. Na primer, u Fibonačijevom nizu F3 = F1 + F2 i F4 = F2 + F3 - računanje svakog broja zahteva nalaženje F2. Kako su F3 i F4 potrebni za nalaženje F5, naivnim pristupom bi za računanje F5 bilo potrebno nalaženje F2 nekoliko puta. Kada se potproblemi ponavljaju više puta, naivnim pristupom se često izgubi dosta vremena na traženje njihovih otimalnih rešenja, koji su već rešeni.

Kako bi se ovo izbeglo, potrebno je sačuvati rešenja onih problema koji su već rešeni, kako bi se mogli kasnije iskoristiti. Ovo se još naziva i memoizacija. Ukoliko je očigledno da rešeni potproblemi nisu više potrebni, mogu se odbaciti kako bi se sačuvao memorijski prostor.

Dinamičko programiranje se koristi kod:

  • Potproblema koji se ponavljaju
  • Optimalne podstrukture
  • Memoizacije.

Ovaj algoritam koristi najčešće jedan od sledeća dva pristupa:

  • Odozgo na dole: Problem se rastavi na potprobleme, potproblemi se reše i pamte se njihova rešenja, u slučaju njihove kasnije upotrebe. Ovaj pristup predstavlja kombinovanje rekurzije i memoizacije.
  • Odozdo na gore: Svi potproblemi se redom rešavaju i koriste za nalaženje većih. Ovaj pristup je bolji zbog čuvanja memorijskog prostora na steku, ali je ponekad teško odrediti koji su sve potproblemi potrebni za traženje datog.

Primeri

Fibonačijev niz

Naivna implementacija funkcije za traženje n-tog člana Fibonačijevog niza se bazira direktno na matematičkoj definiciji:

   function fib(n)
       if n = 0 or n = 1
           return n
       else
           return fib(n − 1) + fib(n − 2)

Treba primetiti da, ako se pozove funkcija fib(5), manje funkcije se pozivaju veći broj puta, što raste eksponencijalno:

  1. fib(5)
  2. fib(4) + fib(3)
  3. (fib(3) + fib(2)) + (fib(2) + fib(1))
  4. ((fib(2) + fib(1)) + (fib(1) + fib(0))) + ((fib(1) + fib(0)) + fib(1))
  5. (((fib(1) + fib(0)) + fib(1)) + (fib(1) + fib(0))) + ((fib(1) + fib(0)) + fib(1))

Ako se iskoristi pristup odozgo na dole, tj. primeni memoizacija, tada se potproblemi rešavaju tačno jednom, jer se njihove vrednosti pamte:

   var m := map(0 → 1, 1 → 1)
   function fib(n)
       if n not in keys(m)
           m[n] := fib(n − 1) + fib(n − 2)
       return m[n]

Međutim, koristeći pristup odozdo na gore, linearna prostorna složenost se može preobraziti u konstantnu:

   function fib(n)
       var previousFib := 1, currentFib := 1
       repeat n − 1 times
           var newFib := previousFib + currentFib
           previousFib := currentFib
           currentFib  := newFib
       return currentFib

U oba poslednja slučaja, samo se jednom računa fib(2), da bi se zatim iskoristio za nalaženje fib(4) i fib(3), umesto što bi se računao svaki put kada se pozove nova funkcija.

Šahovska tabla

Neka je data šahovska tabla dimenzija n × n i funckija c(i, j) koja vraća određenu vrednost za dato polje i,j (i označava red, a j kolonu). Uzmimo, na primer, da je n = 5.

  +---+---+---+---+---+
5 | 6 | 7 | 4 | 7 | 8 |
  +---|---|---|---|---+
4 | 7 | 6 | 1 | 1 | 4 |
  +---|---|---|---|---+
3 | 3 | 5 | 7 | 8 | 2 |
  +---|---|---|---|---+
2 | 2 | 6 | 7 | 0 | 2 |
  +---|---|---|---|---+
1 | 7 | 3 | 5 | 6 | 1 |
  +---+---+---+---+---+
    1   2   3   4   5

Dakle, c(1, 3) = 5.

Neka se u donjoj koloni nalazi kralj koji treba da stigne do gornje kolone, tako što će preći najkraći put (suma kvadrata na putu do gornje kolone treba da bude najmanja). Pod pretpostavkom da se kralj može pomerati samo napred, dijagonalno levo ili dijagonalno desno, on iz polja (1,3) može preći na (2,2), (2,3) ili (2,4).

  +---+---+---+---+---+
5 |   |   |   |   |   |
  +---|---|---|---|---+
4 |   |   |   |   |   |
  +---|---|---|---|---+
3 |   |   |   |   |   |
  +---|---|---|---|---+
2 |   | x | x | x |   |
  +---|---|---|---|---+
1 |   |   | O |   |   |
  +---+---+---+---+---+
    1   2   3   4   5

Ovaj problem zahteva traženje optimalne podstrukture, odnosno rešavanje celokupnog problema se zasniva na traženju njegovih potproblema. Neka je funkcija q(i, j) definisana na sledeći način:

q(i, j) = najkraći put do polja (i, j).

Lako se uočava da je vrednost funcije q(i, j) jednaka minimalnoj vrednosti od tri polja ispod datog (to su polja sa kojih se jedino do njega može i stići) plus c(i, j). Na primer:

  +---+---+---+---+---+
5 |   |   |   |   |   |
  +---|---|---|---|---+
4 |   |   | A |   |   |
  +---|---|---|---|---+
3 |   | B | C | D |   |
  +---|---|---|---|---+
2 |   |   |   |   |   |
  +---|---|---|---|---+
1 |   |   |   |   |   |
  +---+---+---+---+---+
    1   2   3   4   5

Sada, q(i, j) se može definisati kao:

Ovo se može predstaviti preudokodom:

function minCost(i, j)
    if j < 1 or j > n
        return infinity
    else if i = 1
        return c(i, j)
    else    
        return min( minCost(i-1, j-1), minCost(i-1, j), minCost(i-1, j+1) ) + c(i, j)

Lako se uočava da navedena funkcija ne određuje najkraći put, već samo njegovu vrednost. Najpre, može se primeniti pristup odozdo na gore i iskoristiti dvodimenzionalni niz q[i, j] umesto funkcije. Zatim, korišćenjem još jednog niza p[i, j], za pamćenje otkuda trenutni najkraći put dolazi, može se odrediti i najkraći put. To se može prikazati kodom na sledeći način:

 function computeShortestPathArrays()
     for x from 1 to n
         q[1, x] := c(1, x)
     for y from 1 to n
         q[y, 0]     := infinity
         q[y, n + 1] := infinity
     for y from 2 to n
         for x from 1 to n
             m := min(q[y-1, x-1], q[y-1, x], q[y-1, x+1])
             q[y, x] := m + c(y, x) 
             if m = q[y-1, x-1]
                 p[y, x] := -1
             else if m = q[y-1, x]
                 p[y, x] :=  0
             else
                 p[y, x] :=  1

Sada je lako naći minimum i ispisati najkraći put.

 function computeShortestPath()
     computeShortestPathArrays()
     minIndex := 1
     min := q[n, 1] 
     for i from 2 to n 
         if q[n, i] < min
             minIndex := i
             min := q[n, i]
     printPath(n, minIndex)
 function printPath(y, x)
     print(x)
     print("<-")
     if y = 2
         print(x + p[y, x])
     else
         printPath(y-1, x + p[y, x])

Algoritmi koji koriste dinamičko programiranje

Vanjske veze

Izvori

  • Thomas Cormen, Charles Leiserson, Ronald Rivest i Clifford Stein, 2001. Predstavljanje algoritama, 2nd ed. MIT Press & McGraw-Hill. ISBN 0-262-03293-7. Especially chpt. 15: 323–69.
  • Nancy Stokey, Robert Lucas i Edward Prescott, 1989. Rekurzivne metode. Harvard Univ. Press.
  • Dimitri P. Bertsekas, 2000. Dinamičko programiranje i optimalno kontrolisanje, 2nd ed. Athena Scientific. ISBN 1-886529-09-4. Vols. 1 and 2.

Read other articles:

International sporting eventShooting – Men's 10 metre air rifle at the 2015 Pan American GamesVenuePan Am Shooting CentreDatesJuly 13Competitors24 from 15 nationsWinning score202.5Medalists Connor Davis  United States Julio Iemma  Venezuela Bryant Wallizer  United States«2011 Shooting at the2015 Pan American GamesQualificationRifle50 m rifle three positionsmenwomen50 m rifle pronemen10 m air riflemenwomenPistol50 m pistolmen25 m p...

Latin Catholic ecclesiastical jurisdiction in Alaska, United States Diocese of FairbanksDioecesis de FairbanksSacred Heart CathedralCoat of armsLocationCountry United StatesTerritoryNorthern Alaska Ecclesiastical provinceAnchorage-JuneauStatisticsArea409,849 sq mi (1,061,500 km2)Population- Total- Catholics(as of 2016)167,54412,475 (7.4%)Parishes46InformationDenominationCatholicSui iuris churchLatin ChurchRiteRoman RiteEstablishedAugust 8, 1962...

Theophilus of Antioch is the earliest Church father documented to have used the word Trinity to refer to God. Debate exists as to whether the earliest Church Fathers in Christian history believed in the doctrine of the Trinity – the Christian doctrine that God the Father, the Son (Jesus Christ) and the Holy Spirit are three distinct persons sharing one homoousion (essence). Some of the evidence used to support an early belief in the Trinity are triadic statements (referring to the Father, S...

Май Шевалльшвед. Maj Sjöwall Май Шевалль у Бремені 2009 р.Народилася 25 вересня 1935(1935-09-25) (88 років)Стокгольм, ШвеціяПомерла 29 квітня 2020(2020-04-29)[1][2][3] (84 роки)Ландскруна, лен Сконе, ШвеціяГромадянство  ШвеціяНаціональність шведкаДіяльність письменниця, журналістка

50 m livre feminino nosJogos Pan-Americanos de 2023 Santiago, Chile Dados Sede Centro Acuatico Estadio Nacional, Santiago Data 24 de outubro de 2023 Participantes 36 de 28 CONs Medalhistas Ouro CAN Maggie Mac NeilUSA Gabi Albiero Bronze USA Catie DeLoof ←  2019 2027  → Natação nosJogos Pan-Americanos de 2023 Nado livre 50 m masc fem 100 m masc fem 200 m masc fem 400 m masc fem 800 m masc fem 1500 m masc fem Nado costas 100 m masc fem 200 m masc fem Nado ...

Eurovision Song Contest 2010Country BelgiumNational selectionSelection processInternal selectionSelection date(s)Artist: 25 November 2009Song: 7 March 2010Selected entrantTom DiceSelected songMe and My GuitarSelected songwriter(s)Tom DiceJeroen SwinnenAshley HicklinFinals performanceSemi-final resultQualified (1st, 167 points)Final result6th, 143 pointsBelgium in the Eurovision Song Contest ◄2009 • 2010 • 2011► Belgium participated at the Eurovi...

2014 studio album by Dan ShayWhere It All BeganStudio album by Dan + ShayReleasedApril 1, 2014 (2014-04-01)Recorded2013–14; Nashville, Tennessee(The Mix Tank, Sound Emporium, Ocean Way Studios, Blackbird Studios)GenreCountry popLength41:40LabelWarner Bros. NashvilleProducerDan SmyersScott HendricksDanny OrtonChris DeStefanoDan + Shay chronology Where It All Began(2014) Obsessed(2016) Singles from Where It All Began 19 You + MeReleased: October 14, 2013 Show You OffRel...

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Kaboel Suadi – berita · surat kabar · buku · cendekiawan · JSTOR Kaboel Suadi (7 November 1935 – 27 September 2010), adalah seorang pelukis dan seniman grafis Indonesia. Pada 1964 Kaboel ...

Thomas HardyLahir2 Juni 1840Stinsford, Dorset, InggrisMeninggal11 Januari 1928PekerjaanNovelis, cerpenis, penyairKebangsaanInggrisAliran sastraNaturalisme Thomas Hardy, OM (2 Juni 1840 – 11 Januari 1928) adalah seorang novelis, cerpenis, dan penyair Inggris yang termasuk gerakan naturalisme. Sebagian besar karyanya, berlatar di daerah semi-imajiner bernama Wessex, diwarnai deskripsi puitis dan fatalisme. Bibliografi Prosa Hardy membagi novel-novel dan kumpulan cerita pend...

Cet article est une ébauche concernant une unité ou formation militaire française. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. 15e régiment de chasseurs à cheval insigne du 15e régiment de chasseurs à cheval Création 1977 Dissolution 1998 Pays France Branche Armée de terre Type Régiment de chasseurs à cheval Rôle Cavalerie légère Inscriptionssur l’emblème Vérone 1799 Friedland 1807Alba-...

この項目には性的な表現や記述が含まれます。免責事項もお読みください。 ディスカバリー(DISCOVERY)は、日本のアダルトアニメを製作・販売するレーベル。1998年に設立され、多数の大人気アダルトゲームの美少女アニメ(OVA)を製作している。代表作は『夜勤病棟』シリーズ、『奴隷市場』シリーズなど。 作品リスト 殻の中の小鳥(全5巻) 雛鳥の囀(全2巻) 黒の...

Massetalbrücke Massetalbrücke 2018 Überführt SchnellfahrstreckeNürnberg–Erfurt Unterführt Masse Ort Oelze Konstruktion Bogenbrücke Gesamtlänge 385 m Längste Stützweite 165 m Konstruktionshöhe 3,6 m Höhe 78 m[1] Baubeginn 2009 Fertigstellung 2013 Lage Koordinaten 50° 32′ 11″ N, 10° 59′ 29″ O50.53647222222210.99125Koordinaten: 50° 32′ 11″ N, 10° 59′ 29″ O Massetalbrücke (Thüringen) f1 Di...

Basketballspieler Russland Jelena Karpowa Informationen über die Spielerin Voller Name Jelena Wiktorowna Karpowa Geburtstag 14. Juni 1980 Geburtsort Leningrad, Sowjetunion Sowjetunion Größe 188 cm Gewicht 73 kg Position Power Forward/Small Forward WNBA Draft 2001: Washington Mystics Vereine als Aktive 1997–1999 Polen Lotos Gdynia1999–2000 Osterreich Wien2000–2001 Slowakei MBK Ružomberok2001–2002 Italien PF Schio[1]2002–2004 Frankreich Lattes Montpellier2004–2005 R...

Primary mascot of Texas Tech University This article is about the Texas Tech mascot. For other uses, see Masked Rider (disambiguation). The Masked RiderThe Masked Rider gives the Guns Up hand sign.UniversityTexas Tech UniversityConferenceBig 12DescriptionLive horse and riderOrigin of nameBased on the rider's outfitFirst seen1936Related mascot(s)Raider Red The Masked Rider is the primary mascot of Texas Tech University. It is the oldest of the university's mascots still in existence today. Ori...

سان-موريس-دو-ريمون    شعار الاسم الرسمي (بالفرنسية: Saint-Maurice-de-Rémens)‏(بالفرنسية: Reyment)‏  الإحداثيات 45°57′31″N 5°16′32″E / 45.958611111111°N 5.2755555555556°E / 45.958611111111; 5.2755555555556[1]  [2] تقسيم إداري  البلد فرنسا[3][4]  التقسيم الأعلى آن  خصائص جغرافية  ...

For the Canadian documentary, see Theater of Life (2016 film). 1983 Japanese film人生劇場Theater of LifeDirected byKinji FukasakuSadao NakajimaJunya SatōWritten byKinji FukasakuSadao Nakajima (own segment)Tatsuo Nogami (screenplay)Shirō Ozaki (novel)Junya SatōProduced byToei CompanyCinematographyShōhei Andō (for Fukasaku)Kiyoshi Kitasaka (for Nakajima)Hiroyuki NamikiMusic byMasato KaiDistributed byToeiRelease date1983Running time138 minutesCountryJapanLanguageJapanese Theater of Life...

This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Oita Broadcasting System – news · newspapers · books · scholar · JSTOR (June 2021) (Learn how and when to remove this template message) Oita Broadcasting SystemTrade nameOita Broadcasting System, Inc.Native name株式会社大分放送Romanized nameKabushikigaisha ōitahōsōTyp...

Night in Tunisia First editionAuthorNeil JordanCover artistBill Hastings (photo)Larry Bennett (design)CountryIrelandLanguageEnglishPublisherCo-op Books (Dublin)Publication date1976Media typePrintPages124AwardsGuardian Fiction Prize in 1979 Night in Tunisia was the first book by Irish writer Neil Jordan in 1976, containing ten stories and was published by The Irish Writers Co-operative (Co-op Books) in Dublin. The story's title is a jazz standard composed by Dizzy Gillespie. It won a...

Football clubCruz Azul PremierFull nameCruz Azul Fútbol Club, A.C. PremierNickname(s)La Máquina (The Machine)Los Cementeros (The Cementers)Los Celestes (The Sky-Blues)Founded14 July 2015; 8 years ago (2015-07-14)Dissolved2018; 5 years ago (2018)GroundLa Noria Xochimilco, Mexico CityCapacity1,000[1]OwnerCooperativa Cemento Cruz AzulChairmanGuillermo Álvarez CuevasLeagueLiga Premier - Serie AApertura 2017PreseasonWebsiteClub website Home colours Aw...

Visual art produced by the people of South Africa Part of a series on theCulture of South Africa History Timeline Years Early history Kingdom of Mapungubwe Kingdom of Mutapa Kaditshwene Dutch Cape Colony Mthethwa Paramountcy Ndwandwe Cape Colony Zulu Kingdom Orange Free State Transvaal Republic First Boer War Second Boer War Great Depression World War II Apartheid Border War Democratic South Africa People Languages Afrikaans English Ndebele Northern Sotho Sotho Swazi Tswana Tsonga Venda Xhosa...

Kembali kehalaman sebelumnya