DAA – 0-1 Selkäreppu

Mainokset

tässä opetusohjelmassa, aiemmin olemme keskustelleet Murto-Selkäreppu ongelma käyttäen Ahne lähestymistapa. Olemme osoittaneet, että ahne lähestymistapa antaa optimaalisen ratkaisun Murtolukuihin. Tämä luku kattaa kuitenkin 0-1 Knapsack-ongelman ja sen analyysin.

0-1 Knapsackissa esineitä ei voi rikkoa, jolloin varkaan pitäisi ottaa esine kokonaisuutena tai jättää se., Tämä on syy kutsua sitä 0-1 Knapsack.

Näin ollen, siinä tapauksessa, 0-1 Repun, arvo xi voi olla joko 0 tai 1, missä muut rajoitukset pysyvät ennallaan.

0-1-osumaa ei voi ratkaista ahnaasti. Ahne lähestymistapa ei takaa optimaalista ratkaisua. Monissa tapauksissa ahne lähestymistapa voi antaa optimaalisen ratkaisun.

seuraavat esimerkit vahvistavat lausuntomme.

Esimerkki 1

mietitäänpä, että kapasiteetti reppu on W = 25 ja kohteet on esitetty seuraavassa taulukossa.,

24

td>>

kohde a b c d
voitto 24 18 18 10
paino 24 10 10 7

ottamatta huomioon yksikköpainokohtaista voittoa (pi / Wi), jos sovellamme ahnetta lähestymistapaa tämän ongelman ratkaisemiseksi, valitaan ensimmäinen erä A, koska se tuottaa suurimman mahdollisen voiton kaikkien elementtien joukossa.,

kohteen A valinnan jälkeen kohdetta ei enää valita. Näin ollen kyseisille erille kokonaisvoitto on 24. Optimaaliseen ratkaisuun päästään valitsemalla kohteita B ja C, joissa kokonaisvoitto on 18 + 18 = 36.

Example-2

sen sijaan, että kohteet valittaisiin kokonaishyödyn perusteella, tässä esimerkissä kohteet valitaan suhdeluvun pi / wi perusteella. Tarkastellaanpa, että knapsackin kapasiteetti on W = 60 ja kohteet on esitetty seuraavassa taulukossa.,

Item A B C
Price 100 280 120
Weight 10 40 20
Ratio 10 7 6

Using the Greedy approach, first item A is selected. Then, the next item B is chosen. Hence, the total profit is 100 + 280 = 380., Kuitenkin, optimaalinen ratkaisu tässä tapauksessa voidaan saavuttaa valitsemalla kohteita, B ja C, joissa yhteensä voittoa on 280 + 120 = 400.

siksi voidaan päätellä, että ahne lähestymistapa ei välttämättä anna optimaalista ratkaisua.

0-1 Knapsackin ratkaisemiseen tarvitaan dynaamista Ohjelmointimenetelmää.

Ongelmalausunto

varas ryöstää kaupan ja voi kuljettaa maksimipainon W: tä reppuunsa. On n kohteita ja paino ith kohde on wi ja voitto valitsemalla tämän kohteen on pi. Mitä tavaroita varkaan tulisi ottaa?,

Dynamic-Programming Approach

let i be the highest-numered item in an optimal solution S for w dollars. Sitten S ’ = S – {i} on optimaalinen ratkaisu W-Wiin dollareille ja ratkaisun arvo s On Vi plus aliongelman arvo.

voimme ilmaista tämän tosiasian seuraavalla kaavalla: määrittele C olevan ratkaisu kohteille 1,2, … , i ja enimmäispaino w.,

algoritmi ottaa seuraavat syötöt

  • maksimipaino W

  • kappalemäärä n

    kaksi sekvenssiä v = <v1, v2, …, vn>ja w = <W1, W2, …, WN>

taulukosta voidaan päätellä otettavien kohteiden joukko alkaen C: stä ja taaksepäin, mistä optimaaliset arvot tulivat.

Analyysi

Tämä algoritmi ottaa θ(n, w) kertaa kuin taulukossa c on (n + 1).(w + 1) merkinnät, joissa jokainen merkintä vaatii θ (1) aikaa laskea.,

Mainokset

Leave a Comment