• Nem Talált Eredményt

2. gyakorlat Dinamikus programozás

N/A
N/A
Protected

Academic year: 2022

Ossza meg "2. gyakorlat Dinamikus programozás"

Copied!
1
0
0

Teljes szövegt

(1)

Algoritmuselmélet Schlotter Ildi

2011. február 14. ildi@cs.bme.hu

2. gyakorlat Dinamikus programozás

1. Adott egynés egymhosszú sorozat:x1x2. . . xn ésy1y2. . . ym. A két sorozat részsorozata egy1 ≤i1 <

· · ·< ik ≤n, és egy1 ≤j1 < . . . < jk ≤mindexsorozattal adható meg, aholxi =yj teljesül minden 1 ≤ ℓ ≤ kesetén. AdjonO(nm)lépésszámú algoritmust, ami a két megadott sorozatban meghatároz egy leghosszabb közös részsorozatot.

2. Egynés egymkarakterb˝ol álló szövegben meg akarjuk találni a legnagyobb azonos darabot, azaz ha az egyik szövega1a2· · ·anés a másikb1b2· · ·bm, akkor olyan

1≤i≤nés1≤j≤mindexeket keresünk, hogy

ai+1=bj+1, ai+2=bj+2, . . . , ai+t=bj+t

teljesüljön a lehet˝o legnagyobbtszámra. Adjon erre a feladatraO(mn)lépést használó algoritmust.

3. Legyenek a1, a2, . . . , an tetsz˝oleges egész számok ésm < n2 egész. Adjon algoritmust, amely a bináris alakjukkal megadotta1, a2, . . . , an ésmszámokról eldönti polinom id˝oben, hogy aza1, a2, . . . , anszámok közül kiválasztható-e néhány úgy, hogy az összegükm-mel osztva egyet adjon maradékul.

4. Adott egynelem˝uAtömb, melynek elemei valós számok. AdjonO(n)lépésszámú algoritmust, amely meg- határoz olyaniésjindexeket, melyre azA[i] +A[i+ 1] +· · ·+A[j]összeg a lehet˝o legnagyobb.

5. Egynszóból álló szöveget kell sorokra tördelni. A szövegi-edik szavaℓikarakterb˝ol áll, egy sorskarakter hosszú. Ha egy sor a szövegi-edik szavával kezd˝odik és aj-edik szóval végz˝odik, akkor az elválasztó szókö- zöket is figyelembe vévet=s−(ℓi+ℓi+1+· · ·+ℓj+j−i)üres hely marad a sor végén. Egy ilyen sor hibája legyent2. A tördelés hibája a nemüres sorok hibáinak összege. AdjonO(n2)lépéses algoritmust egy legkisebb hibájú tördelés meghatározására! (A szavak sorrendje rögzített.)

6. Adjon algoritmust, ami egyncsúcsú fában lineáris id˝oben meghatározza a fában lev˝o leghosszabb út hosszát.

7. AdottakM1, M2, . . . , Mn munkákH1, H2, . . . , Hn határid˝okkel ésP1, P2, . . . , Pn profitokkal. Mindegyik munka elvégzése pontosan 1 napunkba kerül (így egy napon csak egy munkát végezhetünk el). Adjunk haté- kony algoritmust, amely meghatározza, hogy mely munkákat vállaljuk el a profit maximalizálása érdekében!

Gyakorlás:

1. Legyen w = w1w2· · ·wn egyn bet˝ub˝ol álló szó. Hívjuk részszónakw egy tetsz˝olegeswiwi+1· · ·wi+k

darabját (1≤i≤n−1,1≤k≤n−i).

a) Adjon algoritmust, amiO(n)lépésben meghatározza az összesa-val kezd˝od˝o ésb-re végz˝od˝o részszó számát.

b) Javasoljunk egy minél kevesebb összehasonlítást igényl˝o módszert annak az eldöntésére, hogywtartal- mazza-e részszóként azabcaszót. Elemezzük a módszer költségigényét!

2. LegyenF egy ncsúcsú fa, tetsz˝olegesv csúcsának a súlya pedigs(v). Adjunk polinom idej˝u algoritmust, amely meghatározza azF fában található legnagyobb összsúlyú független ponthalmaz súlyát.

3. Legyeneka1, a2, . . . , antetsz˝oleges pozitív egész számok és legyenbis pozitív egész szám. Adjon algorit- must, amely a bináris alakjukkal megadotta1, a2, . . . , an ésbszámokhozO(nb)id˝oben megadja, hogy ab szám hányféleképpen áll el˝o aza1, a2, . . . , anszámok közül néhány összegeként.

4. Adottakt1, t2, . . . , tntárgyak, azi-edik tárgy súlya egysiegész szám (0 < si <100). Ezeket a tárgyakat a sorrendet meg˝orizve ládákba kell pakolnunk, minden ládába összesen legfeljebb 100 súlyú tárgyakat rak- hatunk. Minden láda után adót kell fizetnünk: ha egy ládábasösszsúlyú tárgyakat rakunk, akkor(100−s)2 gyémántfélkrajcárt kell fizetnünk. Adjunk algoritmust, amely meghatároz egy legolcsóbb pakolástO(n2) id˝oben!

5. Az orosz cár sürg˝osen levelet szeretne küldeni a kínai császárnak. Ehhez a már jól bejáratott, Szentpétervárról Pekingbe viv˝o útvonalat szeretné használni, aminnváros helyezkedik el sorban egymás után:v1, v2, . . . , vn. A levelet postagalambok viszik egyik városból a másikba, a célba juttatásához persze több galambra is szük- ség lehet egymás után. A felesleges kitér˝ok elkerülésének érdekében a galambok mindig olyanvi városból viszik a leveletvj-be, amirei < jteljesül. Segítsünk megtervezni a cárnak a leggyorsabb útvonalat, ha min- den galambról tudjuk, hogy honnan hova tud repülni, és mennyi id˝o alatt teljesíti a távot!

Elemezzük a megadott algoritmus hatékonyságát is!

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

(Kiz´ ar´ olag a pontok megad´ asa nem el´ eg, mert nagyon sokf´ ele ´ ut lehet k¨ oz¨ ott¨ uk.) Amit az L 1 -be tartoz´ as sor´ an ellen˝ orizni kell: ezek t´ enyleg utak

When the number of colonies formed in liquid culture is used as an index of progenitor cells within the population, it is possible that some of the colonies formed are derived from

• Adat átviteli hibák még legjobb körülmények között is előfordulnak ezért van szükségünk a hibák detektálására (hogy tudjuk mikor kell. újraküldeni egy üzenetet)

közi szinten (angolul) sem forrtak még ki egységesen, ami a tudományterület fiatalságára te- kintettel egyáltalán nem meglepő; a „gene modification” és a

Apai ágon a családom békési származású, e szoros kötődés miatt küldetésnek éreztem, hogy már a zeneiskola alapításakor, főiskolásként ide járjak tanítani, és férjemmel

A németek által megszállt nyugat-európai országokból közel 53 milliárd birodalmi márka bevétele volt a német államkincstárnak.. A megszállási költségekhez hasonló,

A Naria jelentősen devalválódott, bár a központi bank (Central Bank of Nigeria - CBN) igyekezett az árfolyamot mesterségesen stabilan tartani. Az ország exportja közel

Szekunder kutatást végeztünk melynek célja kettős. Egyfelől, hogy fény derüljön arra, hogy a beáramló pénzmennyiség növeli-e és egyáltalán közvetlen célja-e növelni