• Nem Talált Eredményt

Algoritmusok gyakorló feladatok

N/A
N/A
Protected

Academic year: 2022

Ossza meg "Algoritmusok gyakorló feladatok"

Copied!
18
0
0

Teljes szövegt

(1)

51. El®ször vizsgáljuk meg azt a feltételt, hogy a hármasok egyáltalán lefedik-e az összes pontot. Ha nem, készen vagyunk. Különben a hármasok legfeljebb 3log2npontot fedhetnek le többszörösen. Az egyszeresen lefedett pontokat tartalmazó hármasokat mindenképpen be kell venni a rendszerbe. Ha ezek a hármasok nem diszjunktak páronként, megint csak készen vagyunk. A fennmaradó hármasokból vegyük azokat, amelyek diszjunktak az eddig bevettekt®l. Azt kell már csak eldönteni, hogy az így maradt hármasokkal, melyek száma legfeljebb 2log2n, megvalósítható-e az eddig le nem fedett pontok pontos fedése. Mivel ezekb®l a hármasokból legfeljebb 22log2n=n2részhalmaz választható ki, ez megvalósítható max.n2eset megvizsgálásával.

54. Egy megfelel® részgráf jó tanúnak, mert polinomiális méret¶ és annak ellen®rzése, hogy feszített részgráf és két színnel színezhet®, polinom lépésben megoldható. Tehát a feladat benne van NP-ben.

A visszavezetés: legyenHegyncsúcsú gráf ésm2NaMAXFTLEN probléma egy bemenete. AGgráf tartalmazzaH-t és még továbbincsúcsot, melyeket összekötünkHvalamennyi pontjával. A feladatbeliklegyen n+m. HaH-ban vanmfüggetlen pont, akkor ezek az újnponttal együtt egym+npontú páros gráfot adnak. A másik irányban pedig, haG-ben vann+mpontú páros részgráf, akkor ennek pontjai között kell legyen legalább egy az új pontokból, legyen egy ilyen csúcsvés legalábbmpont aH-ból. Ha aH-belimpont között menne él, akkor ezv-vel együtt egy háromszöget adna, ami nem lehet egy két színnel színezhet® gráfban.

57. Legyenekx1;:::;xmBoole-változók. Azxi=igazhelyettesítés annak feleljen meg, hogy a megfelel® hármas tagja-e a fedésnek. Minden egyes pontnak feleltessünk meg egy olyan formulát, ami azt fejezi ki, hogy a pont pontosan egyszer van lefedve: Ha egy pontot azi1;:::;ik-adik hármasok tartalmazzák, akkor a (O(k2) méret¶) formula:

(xi1^xi2^:::^xik)_(xi1^xi2^:::^xik)_:::_(xi1^xi2^:::^xik):Képezzük az ilyen formuláknak az

^-ét. Világos, hogy a formula pontosan akkor elégíthat® ki, ha a megfelel® pontos fedés megvalósítható. Látható az is, hogy a formulánknak a mérete (a benne szerepl® literálok, illetve m¶veleti jeleknek a száma)O(m2n).

A jegyzetben szerepl® módszerrel készítsünk egy olyan 3-CNF formulát, ami ugyanakkor elégíthet® ki, mint ez a formula. Mivel a konsrtukció a kifejezésfában minden csomóponthoz egy változót és egy 3 változós formulát rendel, a méretO(m2n) marad.

58. A probléma nyilvánNP-beli. Belátjuk, hogy a Hamilton-kör probléma Karp értelemben redukálható a Hamilton- út problémára. LegyenGegy irányítatlan gráf. AdjunkG-hez még három csúcsot:u;v0;v1-et, kössük össze éllel v0-tv1-gyel,u-tGegy rögzítettwcsúcsával,v1-et pedigwszomszédaival. EgyG-beli Hamilton-kör b®l úgy csinálható Hamilton-út az új gráfban, hogy az egyikw-re illeszked®w xélét kitöröljük, és helyette bevesszük au w,x v1,v1 v0éleket. Az új gráfban pedig egy Hamilton-út két végs® éle csaku w, illtevev1 v0 lehet, közben pedig bejárjaGcsúcsait. Mivelv1 összes szomszédja szomszédjaw-nek is, az útG-beli része Hamilton-körré zárható.

64. A tankönyben szerepl® RHEP Karp-redukció valójában erre a speciális esetre vezeti vissza a Részhalmazösszeg (RH) problémát. (Az egyenl®tlenségek között szerepelnek azok, amelyek a megoldások komponenseitf0;1g-be szorítják.)

66. Világos, hogy a probléma NP-ben van: egy megadott kiválasztásról hatékonyan ellen®rizhet®, hogy jó-e. A nehézség igazolásához megadunk egyX3CX4CKarp redukciót. LegyenV;Y1;:::;YsazX3Cfeladat egy példánya. Ebb®l megkonstruáljuk azX4Cfeledat egy példányát: Legyent=bjVj=3c,U=V[fv1g[:::[fvtg (diszjunkt unió, azaz a lefedend®V alaphalmazhoz még hozzáveszünktpontot). Legyenek továbbáXij =

=Yi[fvjg(i= 1;:::;s,j= 1:::;t). Világos, hogy ez a konstrukció azX3Cfeladat méretében polinom id®ben végrehajtható (a méret meghatározó tagja a négyesek száma: st). Az is nyilvánvaló, hogyV pontosan akkor fedhet® le diszjunktan néhányXihármassal, haUdiszjunktan lefedhet® néhányYijnégyessel.

67. A tanú-tételb®l egyszer¶en adódik, hogy PONTY2NP: egy megfelel® kiértékelés választható tanúnak. Az NP-teljesség nehezebb részének bizonyításához megadunk egyX3CPONTY Karp-redukciót. AzX3Cegy V;Hpéldányához minden egyesH2Hhármasnak feleltessünk meg egyxHBoole-változót, és képezzük a =

=Wv2V(VH3vxH) konjunktív normálformájú Boole-kifejezést. polinomméret¶:O(jVjjH j; és -nek egy a feledatban el®írtaknak eleget tev® kiértékelése éppenV egy pontos fedésének feleltethet® meg és viszont:xH=

= "igaz",H2fedés. Tehát a megadott leképezés tényleg egy Karp-redukció.

10. Aritmetika

Algoritmusok gyakorló feladatok

Csákány Rita Csima Judit Friedl Katalin Ivanyos Gábor Küronya Alex Madas Pál Pintér Márta Rónyai Lajos Sali Attila Simonyi Gábor Szabó Réka

1999. Szeptember 13.

I. Feladatok

1. Vegyes

1. Adjunk hatékony módszert azI=f1;2;:::;nghalmaz összes részhalmazának kilistázására. A listán minden részhalmaz pontosan egyszer szerepeljen; a listán szomszédos részhalmazok elemszámának különbsége legfeljebb 1 lehet.

2. Adjunk hatékony módszert az olyan 1mnfeltételeknek eleget tev®mtermészetes számok kilistázására, melyekhez vannak olyanx;yegészek, hogym=x2+y2. Elemezzük a módszer id®igényét!

3. Av2szó azu2kezd®szelete, ha van olyanw2, hogyu=vw. Hasonlóanvazuvégszelete, ha van olyany2, hogyu=yv. A feladat az, hogy találjuk meg azA[1 :n] tömbben tároltnhosszúságúuszó leghosszabb olyan valódi kezd®szeletét, ami egyben végszelete is. JavasoljunkO(n) uniform költség¶ módszert.

4. Adott egyx2, szó, ahol =fa;b;cg. Javasoljunk egy minél kevesebb összehasonlítást igényl® módszert annak az eldöntésére, hogyxtartalmazza-e résszóként az abca szót. Elemezzük a módszer költségigényét!

5. Egy szolgáltató helyen az egyid®ben érkezettA1;A2;:::Anügyfeleket kell kiszolgálni. Egyszerre csak egy ügy- féllel tudnak foglalkozni és azAikiszolgálásához szükséges id®mennyiségti. Egy adottKkiszolgálási sorrend mellettTi(K) jelöli azAikiszolgálásának befejeztéig eltelt id®t. (Pl. han= 2,t1= 3,t2= 2 ésK=A2;A1, akkorT1(K) = 5 id®egység.)

Javasoljunk módszert egy olyanKütemezés a meghatározására, melyrePTi(K) minimális.

6. AdottakM1;:::;MnmunkákH1;:::;Hnhatárid®kkel ésP1;:::;Pnprotokkal. Tegyük fel, hogy minden egyes munka elvégzésére 1 napra van szükségünk. Adjunk algoritmust, mely meghatározza, hogy mely munkákat vállaljuk el, hogy az összprotunk a lehet® legnagyobb legyen.

7. Egy tanteremben fel van szerelve egynn-es tábla, melyenn2villanykörte helyezkedik el. A tábla minden egyes sorához illetve oszlopához tartozik egy-egy nyomógomb, mellyel a megfelel® sorban (oszlopban) találhatón darab villanykörte állapotát egyszerre lehet átváltoztatni az ellenkez®jére. (Egy gombnyomásra az adott sorban illetve oszlopban ég® körték elalszanak, az alvók pedig kigyulladnak.) A szünet kezdetekor az összes körte leoltott állapotban van. Szünetben a nebulók össze-vissza nyomogatják a gombokat. Hány kapcsolással tudja a tanár visszaállítani az eredeti állapotot? (A gombok egyállapotúak, azaz nem látszik rajtuk, hogy megnyomták-e ®ket vagy sem.)

8.ndobozban golyók vannak szétosztva úgy, hogy ak-adik dobozba éppenkgolyó esik. Adjunk optimális lé- pésszámú módszert az összes doboz kiürítésére, ha a megengedett lépés a következ®: jelöljünk ki tetsz®leges számú dobozt, és mindegyikb®l vegyünk ki ugyanannyi golyót. }

9. Adott egyA[1 : 8] tömb, melyben van abszolút többségi elem (olyan elem, amib®l legalább 5 van a tömbben). A célunk ennek az elemnek a megtalálása minél kevesebb összehasonlítással. Egy összehasonlítás kétféle eredményt adhat: =, vagy6=. Határozzuk meg a szükséges összehasonlítások minimális számát!

10. Adottnchip, melyek képesek egymás tesztelésére a következ® módon: ha összekapcsolunk két chipet, mindkét chip nyilatkozik a másikról, hogy hibásnak találta-e. Egy hibátlan chip korrektül felismeri, hogy a másik hibás -e, míg egy hibás chip akármilyen választ adhat. Tegyük fel, hogy a chipek több, mint a fele korrekt. Adjunk algoritmust, melyn-nél kevesebb fenti tesztet használva kikeres egy jó chipet.

11. Egy 2n-es sakktábla mez®innpiros ésn 1 kék négyzetet helyezünk el. Ezeket olyan módon akarjuk átrendezni, hogy a fels® sorban piros, az alsóban kék négyzetek legyenek, s a bal alsó sarok maradjon üres. Ehhez egy-egy lépés során az üres mez®re tolhatjuk valamelyik szomszédját. Bizonyítsuk be, hogy ehhez

(2)

(a) (*)O(n2) lépés elégséges és (b) (**) (n2) lépés szükséges.

12. Rendezzük egy mátrix soraiban az elemeket növekv® sorrendbe, majd ezt követ®en az oszlopokat rendezzük hasonló módon. Mutassuk meg, hogy a második rendezés nem rontja el a sorok rendezettségét.

13. Adott azA[1 :n;1 :n] kétdimenziós Boole (01) tömb. AdjunkO(n2) költség¶ módszert azA-beli legnagyobb csupa egyesb®l álló négyzet megkeresésére. Pontosabban: határozzuk meg a legnagyobb olyan 0k < negészet, melyhez vannak olyani;jindexek, hogy azA[i:i+k;j:j+k] résztömb minden eleme 1.

14. Adott egynn-es mátrix, amelyben csak az els® sorban és az els® oszlopban vannak 0-tól különböz® számadatok.

Ennek célszer¶ tárolásához adjunk meg egyf: [1::n][1::n]![1::2n] függvényt, amelyi= 1 vagyj= 1 esetén különböz® (i;j) párokhoz különböz®f(i;j) értékeket rendel.fel®állításához felhasználható a négy alapm¶velet, az abs-, sgn-, mod- és div-függvény, valamint a függvénykompozíció m¶velete.

15. Egy számkombinációs zár három hengerének mindegyikén 1-t®ln-ig szerepelnek a számok. Egy lépésben tetsz®- leges számú és elhelyezkedés¶ henger összefogható és ezek együtt ugyanabba az irányba egységnyit elforgathatók.

Bizonyítsuk be, hogy tetsz®leges kiindulási helyzetb®l a csupa egyes állás elérhet®cnlépésben és állapítsuk meg ackonstans optimális értékét!

2. Technika

1. Tegyük fel, hogy van egy számítógépes programunk, ami egykméret¶ feladaton a jelenlegi gépünkön 1 nap alatt fut le. Beszereztünk egy százszor gyorsabb számítógépet. Ugyanazon programmal mekkora feladatot lehet az új gépen egy nap alatt megoldani, ha a program lépésszámanméret¶ feladat esetén

(a)n-nel (b)n3-bel (c) 2n-nel arányos?

2. Bizonyítsuk be, hogy

(a) log2f(n) = (log100f(n)) (f(n)>0):

(b)f(x) =akxk+ak 1xk 1+:::+a0 (ak6= 0) =) f(n) = (nk): (c) 2n+1=O(2n);de 22n6=O(2n):

(d) max(f(n);g(n)) = (f(n) +g(n)) (f(n);g(n)>0):

3. Adjuk meg azt aT(n) függvényt zárt alakban, amely a 3-hatványokra van értelmezve és eleget tesz a következ®

feltételeknek:

T(1) = 1 ésn2-re T(n) = 4T(n=3) +n2

4. Adjunk algoritmust a hanoi tornyok feladatának megoldásához. Mekkora az algoritmus id®igénye?

5. Mit csinál a következ® c program?

typedefdoublenumber;

voidmitcsinál(number v) {number d,r;

intc;

if( v<0 ) { printf(" -"); v = -v; }elseprintf(" ");

if( v<2 ) { printf(" %0.0lf",v);return; } d = 2;

do{

c = 0;while( r=v/d,!fmod(v,d) ) { v = r; c++; }

if( c ) { printf(" %0.0lf",d); if ( c>1 ) printf("^%d",c); }

if( d == 2 ) d = 3; else d += 2; if ( d*d>v ) d = v;

}while( v != 1 );

}

Elemezzük a program futási idejét!

6. Mit csinál, és mekkora az id®igénye a következ® algoritmusnak (feltehetjük, hogyn2-hatvány)?

33. (a)62FP: Már az output leírása is (logn!) = (nlogn) id®be kerül, ami exponenciális az inputO(logn) méretében.

(b) nem tudjuk (egyenérték¶ a törzstényez®s felbontás problémájával); azt sejtik, hogy nemFP-beli.

(c)2FP.

35. Nem. Legyen pl.f(x) = 12jxj, tehátfazxszóhoz a 2jxjdarab egyesb®l álló szót rendeli. Ha adottx#y, akkor meg kell nézni, hogyycsak 1-est tartalmaz-e. (Ezjxj+jyjlépés.) Ha igen, akkor a hosszát is ellen®rizzük 2 szalag segítségével: az egyiken egyetlen 1-esb®l kiindulva mindig megduplázzuk az 1-ek számát, a másik szalagon számláljuk, hányszor dupláztunk eddig. Ha valamikor az 1-ek sorozata hosszabb, minty, abbahagyjuk, ellenkez®

esetben addig folytatjuk, mígjxjszámú duplázás nem történt. Akhosszú sorozat duplázásaO(k2) lépés. Mivel k <jyjez legfeljebbO(jxjjyj2) lépést igényel, ami a bemenet hosszának polinomja.

Másrészt világos, hogyf(x) nem számolható kijxj-ben polinomiálisan, hiszen már csak az eredmény kiírásához is szükséges 2jxjlépés.

40. Az világos, hogy RH0 2 NP, hisz egy megfelel®I részhalmaz jó lesz tanunak. A teljességhez megmu- tajuk hogyan lehet az RH nyelvet Karp-redukálni az RH0 nyelvre. Legyen az f a következ® leképezés f : (s1;:::;sm;b) 7!(2s1;:::;2sm;2b). Világos, hogy ez polinomid®ben számolható. Továbbá PIsi = b akkor és csak akkor, haPI2si= 2b.

42. I. ágyúval verébre

Azs1=3 súlyokból legfeljebb kett® kerülhet egy ládába. Készítsünk el egy gráfot, melynek csúcsai a súlyoknak felelnek meg. Közülük kett® akkor legyen összekötve, ha összegük1. A pakolások megfelelnek a gráfbeli párosításoknak. Akkor használunk minimális számú ládát, ha a megfelel® párosítás maximális. Maximális párosítást gráfokban (nem csak párosokban) lehet polinomid®ben találni, így a feladat is megoldható polinom lépésben. (Ennél azért jobbat is lehet mondani, ha kihasználjuk a gráf sajátosságait. Az hogy hogyan, látszik majd a következ® megoldásból.)

II. Gondolkozzunk

Rendezzük a súlyokat csökken® sorrendbe,s1:::sn. Legyeni= 1,j=n. Hasi+sj1, rakjuk ezeket egy ládába,i-t növeljük,j-t csökkentsük eggyel. Hasi+sj>1, azi:súly egyedül lesz egy ládában, növeljüki-t eggyel. Haij, az eljárás véget ért, megadtunk egy pakolást (lineáris id®ben!).

Most belátjuk, hogy ez optimális: elég megmutatni, hogy van olyan optimális pakolás, amelynél azs1-et tar- talmazó ládának ugyanaz a tartalma, mint az áltatlunk javasolt elhelyezésnél. Ebb®l s1-et és esetlegsn-et elhagyva kézenfekv® indukcióval következik az állítás.

Has1a mi módszerünknél egyedül van a ládájában, akkor minden más bepakolásnál is egyedül kell lennie, ekkor tehát készen vagyunk. Ha egy pakolásnáls1társasj(1< j < n), akkor világos, hogysjéssnhelyet cserélhet anélkül, hogy túllépnénk a korlátot. Legyen ugyanissntársas. Ekkor 1s1+sjs1+snés 1s1+sjs+sj. Még egyszer¶bben tudunk elbánni egy olyan pakolással, amelybens1és/vagysnegyedül van.

III. vizsgáljuk meg a tanultakat

Az FFD ebben az esetben optimális eredményt ad. Hasonló godolatmenettel, mint az el®bb meg lehet mutatni, hogy az FFD-t®l legkevésbé eltér® optimális megoldás megegyezik vele.

43. Ez a feladat a részhalmazösszeg (RH) probléma kicsi súlyokra, a hátizsák probléma egy speciális esete. A súlyok kicsisége a következ®képpen használható ki: Hab > m2, akkor nincs megoldás.bm2esetén viszont a jegyzetben ismertetett dinamikus programozási algoritmus logaritmikus költségeO(bl) =O(m2l) =O(l3), ahol laz input hossza (a számadatok hosszának összege).

46. Alkalmazzuk az FFD (First Fit Decreasing) módszert. Ez nyilvánvalóan polinom idej¶. Állítjuk, hogy az algoritmus minden egyes lépésében az összes nemüres láda tele lesz, kivéve esetleg az utolsót. Ezt indukcióval igazoljuk. A kezd®eset triviális. Tegyük fel, hogy az els®ksúly bepakolásánál teljesül az állítás és ak+ 1-edik súly 2 j. Ha minden láda tele van, akkor az indukciós lépés triviális. Tegyük tehát fel, hogy az utolsó ládában mégm >0 hely marad. Tudjuk, hogym= 1 2 i1 2 i2 ::: 2 ik, aholilj(l= 1;:::;k). Ezért 2jm egy pozitív egész szám, és ígym2 j, tehát ak+ 1-edik súly befér az utolsó ládába. Az állítás igaz akkor is, amikor az összes súly bepakoltuk. Világos, hogy kevesebb ládába ennyi összsúly nem fér bele.

47.V(G) minden egyesdlog2neelem¶ részhalmazáraO(log2n)2vizsgálattal megállapítható, hogy függtelen pont- rendszert alkot-e. A részhalmazok száma dlogn

2ne=O(ndlog2ne), így egynO(logn)= 2O(log2n)= 1:2o(n)költség¶

algoritmusunk van, tehát a probléma a feltevés miatt nem lehetNP-teljes.

48.L2P: vizsgáljuk végigGösszes csúcsára, hogy a szomszédaik között van-ek 1 méret¶ klikk. Egy rögzített csúcsra max. 2log2jV(G)j=jV(G)jrészhalmazt kell megvizsgálni, hogykméret¶ teljes részgráfot alkotnak-e.

MindeztjV(G)jdb. csúcsra kell megcsinálni. TehátLcsak akkor lehetNP-teljes, haP=NP. 49. Útmutatás a jegyzetben!

(3)

6. Hay1;y2;:::;ykazNP deníciójának megfelel® (polinomméret¶ és polinomid®ben ellen®rizhet®) tanúk arra, hogyx1;x2;:::;xk2L, akkor akszám, az elvágási poziciók sorozata, valamint azy1;y2;:::;yktanúk sorozata együttesen egy megfelel® tanút alkotnakx2L-re.

9. A tár-id® tétel alapján létezik olyan c konstans, hogy L 2 TIME(c3log2n) = TIME(2log2c3log2n) =

=TIME(n3log2c)P.

10. LegyenMaz a gép, melyxinput esetén kiszámítjaT(jxj)-et, majd szimuláljaMx-nek az els®T(jxj) lépését az xinputon.Mmindig megáll és a segítségével el lehet már dönteni azL-be tartozás problémáját.

Tegyük fel, hogyMegy olyan TG, amelyL-etT(n) id®ben felismeri. LegyenM=Mxvalamelyx2Iszóra.

FuttasssukM-et azxinputon. A feltevés miatt azx2LesetbenM=Mxmax.T(jxj) lépésben elfogadjax-et, ellentmondvaLdeníciójának. Azx62Lesetben viszontLdeníciója szerintM=Mxelfogadjax-et, amit nem tehet, hiszen azLnyelvet ismeri fel. Ellentmondás.

11. Bináris keresésselO(logn) lépésben,M-et használva keressük meg azt a legkisebbkszámot, melyrenjk!. Ekkor k=neseténnprímszám. Külöben 16= lnko(k;n)6=n, egy valódi osztójan-nek. Az euklideszi algoritmussal (O(logn) aritmetikai m¶velet) számítsuk ki tehát lnko(k;n)-et, majd alkalmazzuk rekurzíve az eddigi eljárást lnko(k;n)-re, valamintn=lnko(k;n)-re. Nyilván összesen max. annyiszor kell ezt az eljárást meghívni, ahány prímtényez®je vann-nek, ez pedigO(logn). Összesen tehátO(log2n)-szer van szükségMhívására, valamint O(log2n) aritmetikai m¶veletet végzünk elO(logn) méret¶ számokon.

14. Vegyük sorra aGgráfv2V csúcsait. Ha avcsúcs és a hozzá illeszked® élek elhagyásával nyert gráfban a max.

klikkméret kisebb, mint az eredeti gráfban (eztPsegítségével állapíthatjuk meg), akkorvaGgráf minden max.

méret¶ klikkjében benne van. Különben hagyjuk elv-t, és ismételjük az eljárást. Ha már nincs elhagyható csúcs, kaptunk egy max. méret¶ klikket. Max.jVjiterációra (ésP-hívásra) van szükség.

17. Egy megoldás lesz a tanú. Mivel azf-nek egy egész gyöke osztója aza0konstans tagnak, ezért a mérete (az abszolút értékének a számjegyeinek a száma) legfeljebba0mérete lehet, tehát polinomméret¶, és azf-be való behelyettesítés polinomid®ben el is végezhet®.

18. Generáljuk valamilyen sorrendben azf1;:::;mghalmaz részhalmazait, és számoljuk meg azokat, amelyekre a fenti összegezési feltétel teljesül. Nyilvánvaló, hogy egy rögzített részhalmazra a feltétel ellen®rzése polinom tárban elvégezhet®. A végigpróbálás tárigénye lényegében az egyes próbák tárigényének a maximuma.

25. A következ® észrevétel alapján: HaGösszefügg®, akkorGszínezhet® két színnel()G-nek egy tetsz®leges pontjából kiinduló utak mentén a páros-páratlan színezés egy jó színezés.

26. AGéppen akkor vanL-ben, ha el tudunk bel®le hagyni legfeljebb 2 élet úgy, hogy a kapott gráf nem összefügg®.

Ez mindenE-beli párra lineáris id®ben vizsgálható (pl. mélységi bejárással).

27. Nézzük végigGminden egyes élére a végpontokat tartalmazó max. klikkek méretét, mégpedig egyszer¶en úgy, hogy megvizsgáljuk a végpontok szomszédainak az összes részhalmazát, hogy klikket alkotnak-e. A feltevés miatt ezen halmazok száma élenként legfeljebb 22log2jV(G)j=jV(G)j2, így összesenO(jE(G)jjV(G)j2) esetet kell megvizsgálni, és a legkedvez®bbet (a legnagyobbat, ami klikket alkot) kiválasztani.

28. Induljunk ki egy tetsz®leges csúcsból, és dobjuk ki a szomszédait. A maradékból válasszunk egy tetsz®leges csúcsot, és dobjuk ki annak a szomszédait is, és így tovább. Mivel egy csúcs bevételével max. 3 másik csúcsot dobunk ki, végül egy legalábbjV(G)j=4k=4 méret¶ független ponthalmazt kapunk.

29. Válasszunk egy tovább nem b®víthet® független élrendszert (párosítást). Ez például a tankönyvben a sok füg- getlen élet keres® mohó módszerrel az élek számával arányos lépésben megtehet®. Tegyük fel, hogykdarab független élet kaptunk. Az élrendszer végpontjai (2kilyen van) nyilván lefogják az összes élet, valamint az is igaz lesz, a gráf összes élét nem lehetk-nál kevesebb csúccsal lefogni, hiszen már a kiválasztott élrendszerünket sem lehet.

30. a) A Hamilton-körnélet tartalmaz azen+10 közül. Az összes lehetségesnél¶ részgráf száma ne n+10n =

= n+1010

n10, azaz polinomiális. Egy ilyen részgráfról polinom lépésben ellen®rizhet®, hogy Hamilton-kört alkot vagy sem. Ha mindegyiket végigpróbáljuk az is polinom lépés lesz.

b) Ha van els®fokú pontja a gráfnak, akkor nincs Hamilton-kör. A másodfokú pontokat elhagyhatjuk közvetlenül összekötve a két szomszédot. Egy ilyen lépés után mind az élek, mind a csúcsok száma 1-gyel csökken, így megmarad azen+ 10 egyenl®tlenség. Az eredmény egy olyann0pontúG0 gráf, amelybene0n0+ 10 és minden pont foka legalább 3. Ez viszont azt jelenti, hogye03n0=2, amib®ln020. Err®l a konstans méret¶

G0-r®l kell eldönteni, van-e benne Hamilton-kör. Ez pedig konstans lépésben megoldható. A redukció lineáris lépést igényel, összesen tehátO(n) az id®.

functionkitudja(s;t;n : integer) :boolean;

begin

ifn= 1then

ifél(s;t)then

return(igaz)

else

return(hamis);

fori:= 1toV do

ifkitudja(s;i;ndiv2)andkitudja(i;t;ndiv2)then

return(igaz);

return(hamis)

end;

7. Írjunk rekurzív függvényhíváson alapuló algoritmust, ami azn-edik Fibonacci-számot határozza meg! Mennyi a lépésszám?

8. Adott egynbitesMtermészetes szám. Javasoljunk (n-ben) polinomiális idej¶ módszertbp3Mckiszámítására.

Adjunk becslést a módszer költségére.

9. Javasoljunk egy hatékony algoritmustblog3nckiszámítására, aholnegy adott, binárisan ábrázolt pozitív egész!

Elemezzük a módszer költségét!

10. Javasoljunk algoritmust azaésbegészek (binárisan ábrázolva) szorzatának kiszámítására az alábbiak szerint:

(i) Aza;begészeket azA[1 :n] illetveB[1 :n] Boole tömbök tartalmazzák; ezeket csak olvasni szabad.

(ii) Az eredmény (azabszorzat) aC[1 : 2n] Boole tömbbe írandó; ennek minden pozíciójába csak egyszer lehet írni.

(iii) További munkaterületkéntO(logcn) bit tárolására alkalmas helyet használhatunk, aholcegy pozitív kons- tans.

3. Rendezés

1. Rendezzük a következ® listát kupacos rendezés, gyorsrendezés, és az összefésüléses rendezés segítségével:

4;11;9;10;5;6;8;1;2;16.

2. Rendezzük a következ® láncokat a radix rendezés segítségével:abc; acb; bca; bbc; acc; bac; baa. 3. Hány összehasonlítással lehet megtalálninelem közül a legkisebbet?

4. Pontosan hány összehasonlítás kell ahhoz, hogy egynelem¶ tömbb®l egy olyan tagot keressünk, ami a tömb legkisebb 10 eleme közé tartozik? (A tömb egy rendezett univerzumnkülönböz® eleméb®l áll, de maga nem feltétlenül rendezett. Az eredmény bármelyik lehet a legkisebb tíz közül: tehát pl. az els® éppúgy megfelel, mint a tizedik.) }

5. Egy csupa különböz® egészekb®l álló sorozat bitonikus, ha el®ször n®, utána pedig fogy, vagy fordítva: el®ször fogy, utána n®. Például az (1;3;7;21;12;9;5), (9;7;5;4;6;8) és (1;2;3;4;5) sorozatok bitonikusak. AdjunkO(n) összehasonlítást használó rendez® algoritmustnelem¶ bitonikus sorozatok rendezésére!

6. (a)(**) Össze kell fésülnünk azA1 < A2 < ::: < An és a B1 < B2 < ::: < Bn+1rendezett halmazokat.

Bizonyítsuk be, hogy a szükséges összehasonlítások minimális száma 2n.

(b) Igaz -e, hogy alkalmascállandóra minden (n;k) párra aznés akelem¶ rendezett halmazok összefésüléséhez kell legalábbc(n+k) összehasonlítás? }

7. Adjunk konstans szorzó erejéig optimális számú összehasonlítást használó módszert azA1;A2;:::;Amegyenként kelem¶ rendezett tömbök összefésülésére!

8. Célunk azA[1 :n] tömbA[1 :k] ésA[k+1 :n] részeinek felcserélése. Oldjuk meg ezt a feladatotO(n) költséggel és konstans munkaterülettel!

9. Adott egy rendezett univerzumnkülönböz® eleméb®l állóShalmaz. Legyenl:=blog2nc. Felosztandó azS halmaz olyan nem üresS1;S2;:::;Slrészhalmazokra, hogy tetsz®leges 1i < jlszámpárra azSihalmaz minden eleme kisebb legyen azSj halmaz minden eleménél. Adjunk meg egyO(nloglogn) összehasonlítást használó módszert a fenti feladatra!

10. A (növekv®en) rendezettA[1 : n] tömbk darab elemét valaki megváltoztatta. A változtatások helyeit nem ismerjük. JavasoljunkO(n+klogk) uniform költség¶ algoritmust az így módosított tömb rendezésére! }

(4)

11. AzA[1 :n] tömb elemei egy rendezett típusból valók. Tudjuk továbbá, hogy ez a sorozat két monoton növ®

részsorozat egyesítése. Pontosabban fogalmazva azf1;2;:::;ngindexhalmaznak vannak olyanX1ésX2részei, hogyX1[X2=f1;2;:::;ngés haj;k2Xi,j < k, akkorA[j]< A[k] (i= 1;2).

JavasoljunkO(n) összehasonlítást használó módszert azAtömb rendezésére. (A megoldáshoz hasznos lehet a feltételeinknek az a következménye, hogy nem létezhet olyanj < k < lindexhármas, amelyreA[j]> A[k]> A[l].)

}

12. Adott egyA[1::n] tömb, amelynek elemei egy rendezett halmazból kerülnek ki. Tudjuk, hogy a tömbben nincs A[i1]> A[i2]> A[i3]> A[i4] részsorozat, ahol 1i1< i2< i3< i4n. AdjunkO(n) költség¶ algoritmust, amely nemcsökken® sorrendbe rendezi a tömb elemeit. }

13. AzA[1 :n] tömbben egy rendezett univerzumnkülönböz® eleme volt, nagyság szerint növekv® sorrendben.

Valaki id®közben megkeverte a tömb elemeit, de csak annyira, hogy minden egyes elem új helye az eredetit®l legfeljebb 5 távolságra esik. AdjunkO(n) idej¶ algoritmust az eredeti állapot helyreállítására! }

14. Az egész elemeket tartalmazóA[1 :n] tömböt lassan változónak nevezzük, ha minden 0< i < nindexre teljesül, hogyjA[i] A[i+ 1]j<10. Javasoljunk hatékony módszert lassan változó tömbök rendezésére; elemezzük a módszer költségét!

15. Négy elem rendezéséhez hány összehasonlítás kell? } 16. Öt elem rendezéséhez hány összehasonlítás kell? }

17. A 6 4 8 3 7 2 5 1 tömb rendezése során (a rendez® algoritmus néhány lépése után) a következ®

közbüls® állapot jött létre: 4 6 3 8 7 2 5 1 Az alább felsorolt, az el®adáson tanult módszerek közül mely(ek) alkalmazásakor fordulhatott ez el®?

a) Beszúrásos rendezés, b) Buborékrendezés, c) Összefésüléses rendezés, d) Gyorsrendezés? }

18. Adott egy egész számokat tartalmazóA[1::n] tömb, amelyben legfeljebbnelempár áll inverzióban egymással (két elem akkor áll inverzióban, ha a nagyobb megel®zi a kisebbet). Igaz-e, hogy a buborék-rendezés rendezi az Atömböt

a) legfeljebbnösszehasonlítással?

b) legfeljebbncserével? }

19. Egy rendezési algoritmust konzervatívnak nevezünk, ha megtartja az egyforma elemeknek az eredeti sorrendjét.

Az alábbi rendezési algoritmusok közül melyek konzervatívak:

(a) buborékrendezés; (b) összefésüléses rendezés;

(c) kupacrendezés; (d) gyorsrendezés? }

20. AzA[1 :n] tömb piros és zöld elemeket tartalmaz. Szeretnénk átrendezni úgy, hogy az egyszín¶ elemek folytono- san helyezkedjenek el (elöl az összes piros, utána a zöldek vagy fordítva). Egy megengedett lépés két szomszédos tömbelem cseréje. Javasoljunk konstans szorzó erejéig optimális lépésszámú algoritmust. }

21. Legyen adott egy egészekb®l állóA[1 :n] tömb valamint egybegész szám. Szeretnénk hatékonyan eldönteni, hogy van-e két olyani;j2f1;:::;ngindex, melyekreA[i] +A[j] =b. Oldjuk meg ezt a feladatotO(nlogn) id®ben! }

22. AzA[1 :n] tömbben egész számokat tárolunk. Tudjuk, hogy van olyaniindex, amellyel A[i]< A[i+ 1]< ::: < A[n]< A[1]< ::: < A[i 1]

teljesül. Adjunk minél kevesebb összehasonlítást használó módszert ennek az (egyértelm¶en meghatározott)i indexnek a megkeresésére. Elemezzük a módszer költségét! }

23. Adott kétnhosszú rendezett lista,a1;:::;anésb1;:::;bn, amelyek összesen 2nkülönböz® elemet tartalmaznak.

Adjunk konstans szorzó erejéig optimális számú összehasonlítást használó algoritmust a 2nelem közül azn-edik legkisebb meghatározására! }

24. Legyen adott egy rendezett univerzum 2nkülönböz® eleméb®l állóS halmaz. Szeretnénk azS elemeit egy A[1 : 2n] tömbbe elhelyezni úgy, hogy

A[1]< A[2]> A[3]< A[4]>< A[2n 2]> A[2n 1]< A[2n] teljesüljön. Adjunk meg egyO(n) összehasonlítást használó algoritmust erre a feladatra! }

29. Tegyük fel indirekte, hogy létezik ilyenfrekurzív függvény! Eszerint létezik egyMTuring-gép, ami mindenx-re megáll és kiszámít egy olyanf(x) számot, amelyre12C(x)f(x)2C(x). LegyenM0az a Turing-gép, amely azninput esetén kiírja azt az els®xszót, amiref(x)[n=2] (pl. lexikograkus sorrendben sorra generálva azn hosszúxszavakatM-et használva kiszámítjaf(x)-et). Mivel van összenyomhatatlan szó, ilyenxtényleg létezik.

Nyilvánvaló, hogyCM0(x)log2n+c0alkalmasc0állandóval. Az invariancia-tétel miattC(x)log2n+c egy másikcállandóval. Ugyanakkor a feltevésünk miattC(x)f(x)=2(n 1)=4. A két egyenl®tlenséget összeolvasva kapjuk, hogy log2n+c(n 1)=4, ami képtelenség elég nagyn-re. Ellentmondásra jutottunk.

(Lényegében aC(x) kiszámíthatatlanságát igazoló jegyzetbeli érvelést használtuk.)

33. Nem. Legyen ugyanisf(n) a kanonikus rendezés szerinti els®nhosszú összenyomhatatlan szó. HaHrekurzív, akkorfis, hiszen ha egymás után sorban generáljuk aznhosszú szavakat és mindegyikre meghatározzuk aH értékét, akkor amelyikxutániyszónál aHérték változik, az azxösszenyomhatatlan. Viszont, haf(n) =x, akkor az invariancia-tétel szerintC(x)log2(n+ 1) + állandó, ami ellentmondxösszenyomhatatlanságának.

35. Nem. Van olyan algoritmus (Turing-gép), amely azn bemenetre kiadja az x0x1:::xn szót: generálja az F0;F1;:::;Fj Fibonacci-számokat, amíg túl nem jut azn-en, és közben sorra kiírja azxibiteket: x0 = 1, és ezutánxi= 0, haFj 1< i < Fj, ésxFj= 1. Ezek szerintC(xn)logn+c, azaz limC(nxn)6= 1.

36. Nem. Azy0y1:::y2n 1részsorozat el®állítható a páros index¶ bitek duplázásával, ígyC(y0y1:::y2n 1)n+c alkalmascállandóval, és21nC(y0y1:::y2n 1)12+c=n <34minden eléggé nagyn-re.

37. Azx1x2:::xnszó megkapható azy1y2:::ynszóból a "hiányzó" bitek, azaz azx1x2x4:::x2[log2n]sorozat hoz- záadásával. Ebb®l azt nyerjük, hogyC(x1x2:::xn)C(y1y2:::yn) +c+ log2n, aholcegy alkalmas állandó.

(LegyenZn2f0;1golyan szó, amirejZnj=C(y1:::yn) és azU univerzális Turing-gépZninput esetén az y1:::ynszót számolja ki! LegyenMaz a gép, ami a kétrészesZ#Winputon el®szörZ-re lefuttatjaU-t, majd az eredmény 2-hatvány index¶ bitjeit átírjaWbitjeivel. EkkorCM(x1:::xn)C(y1:::yn)+log2negy additív konstans erejéig. Az invariancia-tételt alkalmazva nyerjük az állítást.) Így 1 + állandón 1nC(y1:::yn)

n1C(x1:::xn) c+logn n. A mindkét széls® oldal határértéke 1, ezért a beszorított mennyiség is konvergens és 1-hez tart.

38. Tetsz®legesMTuring-gépre aCTMfüggvény rekurzív: adottx2Iszóra elég a legföljebbjxj2hosszúy2I bemenetekkel futtatniM-etjxj2lépésig. Tudva, hogyCTM rekurzív,CTM =Clehetetlen, mertCnem rekurzív.

41. Az input párok legyenek (au1;av1);:::;(aun;avn), aholauazt a szót jelöli, amelyudarababet¶b®l áll. A megfeleltetési feladat az adott bemenettel nyilván pontosan akkor oldható meg, ha léteznek olyanx1;:::;xn nem mind 0 nemnegatív egész számok, melyekrex1u1+:::+xnun=x1v1+:::;xnvn, azazx1(u1 v1) + +:::;xn(un vn) = 0. Ha azui vikülönbségek mind pozitívak vagy mind negatívak, akkor ez nyilván nem oldható meg. Ellenkez® esetben két lehet®ség van. Vagy valamelyikiindexreui=vi: ekkor egy lehetséges megoldás az, hogyxi= 1 ésxk = 0k6=iesetén. Vagy pedig van pozitív és negatív különbség is: ui> vi ésuj< vjvalamelyi;jindexekre. Ebben az esetbenxi= (vj uj),xj= (ui vi),xk= 0k62fi;jg-re egy megoldást ad. Tehát azt kell ellen®rizni, hogy a különbségek mind azonos el®jel¶ek-e. Ez nyilván megtehet®

akár lineáris id®ben is.

9. Bonyolultsági osztályok

1. LegyenlazL-beli szavak max. hossza. Azl-nél hosszabb input szavakat eleve elutasítva, a max.lhosszú szavak esetén pedig keresést alkalmazvaLvalójában konstans id®ben felismerhet®.

2. Nem: azm 1 a bemenet hosszához (kb. log2n+ log2m) képest exponenciálisan nagy is lehet.

3. Nem. Ugyanis blogn2nclehet®séget vizsgál meg a módszer, tehát legalább ennyi a lépésszám. Ugyanakkor bármelycállandóra blogn

2nc=nc!1. Ez utóbbi állítás például a következ® elemi becslés felhasználásával igazolható: blogn

2nc=blogn

2ncn blog2nc+1

1

(nblogblog2nc

2nc )log2n 1n21(log2n 1), hanelegend®en nagy.

4. Az alapm¶veletkre ismert algoritmusok polinomidej¶ek. A hatványozás esetén azonban pl. a 2nszám méreten, ami exponenciális az operandusokO(log2n) méretében.

5. Azxnmodmfeladat mérete(logx+logn+logm). Azxnhatványozás elvégezhet® polinom sok szorzás segítségé- vel a gyors hatványozás (iterált négyzetreemelés) módszerével: Han=Pki=0ai2ialakú (klog2n; ai2f0;1g), akkor kiszámítvax1-t,x2-t,:::,x2k-t összesenknégyzetreemeléssel, majd azokat azx2ihatványokat (max.k szorzással) összeszorozva, amelyekreai= 1, megkapjukxn-et, max. 2kszorzás felhasználásával. Mivel a szorzá- sokat modulomkell elvégezni, sem a részeredmények, sem a végeredmény mérete nem haladja meg a 2log2m korlátot. Egy szorzás (kétm-nél nem nagyobb számnak az összeszorzása és a szorzat maradékos osztásam-mel) elvégezhet® logm-ben polinomid®ben.

(5)

ismétl®dik. A feltételek betartása esetén a szalag állapota állandó,Mxfeje a szalag els®jyj+ 1 cellájának valamelyikén helyezkedik el. Tehát a pillanatnyi helyzet egy pozícióbels® állapot párral jellemezhet®, ahol a pozíció nem haladja megjyj+ 1-et. Így legfeljebb (jyj+ 1)bels® állapotok száma lépésben vagy az (i),(ii) események valamelyike bekövetkezik, vagy pedig ismétl®dik egy pillanatnyi helyzet, az (iii) estenek megfele®en.

Utóbbi a pillanatnyi helyzetek tárolása segítségével (vagy a tár-id® tétel bizonyításához hasonló technikával) ismerhet® fel.

11. Az el®z® feladathoz képest az a nehézség, hogy az olvasófej tetsz®legesen távol lehet az els® üresjelt®l. Azt vegyük azonban észre, hogy ha egyszer ez a távolság nagyobb mintjQj(a bels® állapotok száma), akkor olyan "végtelen ciklusba" esettMx, amikor az olvasófeje a végtelenbe szalad ki. Legyen ugyanis azl-edik lépés az az els® olyan lépés, amikorMxfeje el®sz®r túllépi a mondott távolságot! Ekkor van olyank < llépésszám, hogy ak-adik lépésbenMxbels® állapota ugyanaz, mint azl-edik lépésben,Mxfeje az input végéhez közelebb van, továbbá ak-adik,k+ 1-edik, stb.l-edik lépések mindegyikében a fej az input utáni üres szalagrészen mozog. Látható, hogy azl-edik lépés és a következ®l klépésbenMxhelyzete lényegében ugyanaz, mint ak-adik és az azt követ® lépésben, a különbség csak annyi, hogy a feje az üres szalagrészen még jobbra eltolt pozíciókban mozog.

Világos, hogy ugyanez fog ismétl®dni a végtelenségig. Tehát a következ® eseteket lehet megkülönbözteni:

(o)Mxnem létezik;

(i)Mxmegsérti a feltételeket;

(ii)Mxmegáll a feltételeket végig betartva;

(iii)Mxa feltételek betartásásával túllép a 2jyj+ 1-edik cellán;

(iv)Mxa feltételeket betartja végtelen ciklusba esik úgy, hogy feje mindig az els®jyj+jQj+1 cella valamelyikén van.Ezen esetek megkülönböztetése immár az el®z® feladathoz hasonlóan végezhet®.

12. Legyenx2Ia jegyzetben lev®n7!n+1 függvényt kiszámító TG kódja. Ekkor azL=fx#1njn2Z+gnyelv rekurzív ésLLh.

16. Vegyük észre, hogy öt lépésben az input szalagon legföljebb ötöt haladhatunk el®re. Tehát ha van alkalmasy szó, akkor annak els® (legfeljebb) 5 bet¶je is megteszi. Ezért a probléma eldöntéséhez elegend®Mxels® 5 lépését végigpróbálni a legfeljebb ötbet¶s szavak véges halmazán. Tehát a nyelv rekurzív.

19. Igaz. LegyenMegy olyan Turing-gép, amely azx#f(x) párokat ismeri fel (azazLM=fx#f(x); x2f0;1gg).

Célunk egy olyanM0 gép konstruálása, amely azf függvényt számítja ki. Az alapötlet adottx-hez sorra kipróbálni azy2f0;1gszavakra, hogyx#y2LMteljesül-e. Nyilvánvaló, hogyx#y2LM ,y=f(x). A kipróbálás történhet af0;1ghalmaz valamely rendezése (pl. els® az üres szó, majd a többi bináris számként értelmezve nagyság szerint) alapján. Ez így sajnos nem m¶ködik, hiszen el®fordulhat, hogy valamely, azf(x) értéket megel®z®y-raM nem áll meg. A probléma a következ®képpen kezelhet®: generáljuk sorra az (n;y) párokat, aholnegy nemnegatív egész ésy2f0;1g. Ez megtehet® példáulf0;1gfent említett rendezése építve a szokásos párgenerátor segítségével. Adott (n;y) párra futtasuk leM-nek els® (legföljebb)nlépését azx#y inputon. Hanlépésen belülMnem áll meg elfogadó állapotban, vegyük a következ® párt, egyébként pedig írjuk kiy-t és álljunk meg. Világos, hogy a fent vázolt algoritmust megvalósító Turing-gép mindenx-re megáll (amikor az (n;f(x)) pár kerül sorra, ahol aznszámM-nek azx#f(x) páron vett lépéseinek a száma) és éppen f(x)-et számítja ki.

23. Legyenf(x) := 2h(x), aholhegy tetsz®leges nem rekurzívI!N(teljes) függvény (pl.h(x) =C(x), azxszó Kolmogorov-bonyolultsága). Ekkor agfüggvény azonosan 1, tehát rekurzív.

25. (a) Legyen M az a Turing-gép, melynek legális inputja 21 binárisan ábrázolt természtes számból áll:

n#n1#:::#n20, aholn1;:::;n20 húsz csupa különböz® szám az [1;n] intervallumból; ésM írjon az output szalagjára el®szörndarab 0-t, majd azn1;:::;n20-adik helyeket írja át 1-esre. Af0;1;#gabc alkalmas bináris kódolásávalCM(x)42log2n+ 20 és az invariancia-tétel miattC(x)CM(x) +c142log2n+ 20 +c1, ahol c1egy állandó. Alkalmascállandóra ez kisebb mintclogn.

(b) Tegyük fel, hogy mégis van ilyenM Turing-gép. EkkorCM(x) =nhossza +c1= [log2n+ 1] +c1, így az invariancia-tétel miattC(x)log2n+c2alkalmasc2állandóval, ami nem lehet nagyobb 2logn-nél hanelég nagy. Ez ellentmondás.

(c) A 0-val kezd®d®nhosszú szavak száma 2n 1, ugyanakkor azn 1-nél kisebb Kolmogorov-bonyolultságú szavak száma (a lehetséges inputhossz szerint leszámolva) legföljebb 1 + 2 + 4 +:::+ 2n 2= 2n 1 1.

(d) Adottk-ra jelölje 1k azkdarab 1-esb®l álló szót. Figyeljük meg, hogyC(1k) =C(k) egy additív állandó erejéig. Legyenkegy olyannbináris jegy¶ szám, amireC(k)n. Ilyen az el®z® részfeladat értelmében léte- zik. Legyenx= 1késy= 12n+1 k. EkkorC(x)n+c1ésC(xy) =C(12n+1)log2n+c2alkalmasc1;c2 állandókkal. Válasszukn-et olyan nagynak, hogyn+c1>log2n+c2teljesüljön!

26. Lásd az el®z® feladat (a) pontját.

27. Lásd az el®z® feladat (c) pontjánál alkalmazott ötletet.

25. Az el®adáson az összefésüléses rendezésnek (MSORT) egy rekurziót alkalmazó változatát körvonalaztuk. Java- soljunk egy iteratív (rekurziót, vermet nem használó) implementációt, melynek a költsége a korábbi változatéval egyez® nagyságrend¶!

26. Egynelem¶ sorozat csupa 0-ból és 1-esb®l áll. Rendezzük a sorozatotn 1 összehasonlítással!

27. Adott egy dobozbannkülönböz® méret¶ anyacsavar, valamint egy másik dobozban a hozzájuk ill® apacsavarok.

Kizárólag a következ® összehasonlítási lehet®ségünk van: Egy apacsavarhoz hozzápróbálunk egy anyacsavart. A próbának háromféle kimenete lehet: apa<anya, apa = anya, vagy apa>anya; annak megfelel®en, hogy az apacsavar küls® átmér®je hogyan viszonyul az anyacsavar bels® átmér®jéhez. Szeretnénk az anyacsavarokhoz megtalálni a megfelel® apacsavarokat. Adjunk erre a feladatraátlagosanO(nlogn) összehasonlítást felhasználó módszert! }

28. Tegyük fel, hogy adott a =fa;b;c;dgabc feletti szavaknak egyS halmaza. AzS-beli szavak összhossza n. Javasoljunk egyO(n) idej¶ módszert azSelemeinek (lexikograkus) sorbarendezésére! A alaprendezése a < b < c < d.

29. Vázoljunk egyO(n) id®igény¶ algoritmust (az id®korlát bizonyításával együtt)nolyan egész számból álló sorozat rendezésére, melynek elemei az

(a)f1;:::;3ngtartományba esnek!

(b)(*)f1;:::;n7 1gtartományba esnek! }

30. Adott egyA[1 :n] tömb, ami 1 éskközötti egészekb®l áll. SzeretnénkO(n+k) id®ben létrehozni egy adat- struktúrát, aminek segítségével konstans költséggel megoldható a következ® feladat:

Bemenet:aésbtermészetes számok;

Meghatározandó: azAtömb azon elemeinek a száma, amelyek az [a;b] intervallumba esnek.

Tervezzük meg az adatstruktúrát és a felépítéséhez szükséges algoritmust! }

31. Egy könyvtárban havonta mágneslemezre listázzák a kikölcsönzött könyveket a kölcsönz®k neve szerinti sor- rendben. A listán minden egyes könyvnek egy rekord felel, melyben a könyv azonosítására szolgáló kulcs egy 1 és 100Nközé es® természetes szám, aholNa könyvtári könyvek száma. Adjunk minél rövidebb idej¶ (kons- tans szorzó erejéig optimális uniform id®igény¶) módszert annak eldöntésére, hogy a januárban és februárban kikölcsönzött könyvek összessége megegyezik-e!

32. Egy személyek adatait tartalmazó nyilvántartásbannrekord van. A rekordokban szerepel a személy magassága és testsúlya is. Szeretnénk minél kevesebb munkával eldönteni, hogy vannak-e olyanXésY személyek a nyil- vántartásban, hogyXmagasabbY-nál, deY nehezebb, mintX. Javasoljunk hatékony módszert a feladatra!

Elemezzük a módszer költségét!

33. Tegyük fel, hogy inputként adott egész koordinátájú síkbeli pontok egy S = fP1 = (x1;y1);P2 =

= (x2;y2);:::;P2n= (x2n;y2n)ghalmaza. A sík egyQpontja (azS-re nézve) középs®, ha azS-nek éppen npontja van aQfelett, továbbá azS-nek éppennpontja van aQ-tól jobbra. Javasoljunk hatékony módszert adottS-hez középs® pont keresésére! Elemezzük a módszer költségét!

34. Adottak a sík egész koordinátájúP1= (x1;y1);P2= (x2;y2);:::;P2n= (x2n;y2n) pontjai, melyek közül nincs három egy egyenesen. JavasoljunkO(n) uniform költség¶ módszert egy olyan egyenes (két különböz® pontjának) meghatározására, melynek mindkét oldalán ugyanannyi van aPipontok közül.

35. Adottak a sík egész koordinátájúP1 = (x1;y1);P2 = (x2;y2);:::;Pn = (xn;yn) pontjai. JavasoljunkO(n) uniform költség¶ módszert olyanPi6=Pjpontok kiválasztására, amelyeken átmen® egyenes által meghatározott félsíkok közül az egyik tartalmazza az összes input pontot.

36. LegyenekS1;:::;Sk olyan nemüres halmazok, melyek elemszámainak összegen, és elemeik 1 ésnközé esnek.

Mutassunk algoritmust, mely az összesSi(1ik) halmazt rendeziO(n) id® alatt!

37. Adjunk hatékony algoritmust egy kupac tizedik legkisebb elemének a megtalálására. Elemezzük a módszer költségét. }

38. Igazoljuk, hogy egynelemb®l álló bináris kupac felépítése (n) összehasonlítást igényel! }

39. Adott egynelemet tartalmazó 2-kupac és egykkulcs. Keressük meg a kupack-nál kisebb kulcsú elemeit! Ha milyen elem van, az algoritmusO(m) elemi lépést használhat. }

40. Egy rendezett halmazbólnelem kupacban van elhelyezve. Bizonyítsuk be, hogy a legnagyobb elem megkeresé- séhez (n) összehasonlítás szükséges! }

41. Adjunk konstans szorzó erejéig optimális uniform költség¶ algoritmust az alábbi problémára:

INPUT: EgyA[1 :n] tömb, amely eredetileg az 1;:::;ntermészetes számokat tartalmazta kupacba rendezve, de öt elem megsérült és a helyérekerült.

FELADAT: Találjuk meg a tömb egy olyan kitöltését, ami lehetett az eredeti! }

Hivatkozások

KAPCSOLÓDÓ DOKUMENTUMOK

A második forduló érvényes, eredményes volt. országgyűlési egyéni választókerület Budapest 04. A második forduló érvényes, eredményes volt. országgyűlési

Van valami furcsa és megmagyarázhatatlan – ha szabad nap- jaink egyik honi kultfilmjének fordulatával élnem – abban, hogy Szijj Ferenc Agyag és kátrány című új,

Ott egy ilyen saroklakásban, s talán a Vérmezőre is látni lehetett az egyik ablakon, ott lakott a tanárom, az irodalomtanárom, költő és műfor- dító, ahogy ezt

Február 7-én 14 órától iskolánkban kerül megrendezésre a matematikaverseny megyei fordulója. Minden továbbjutott tanulót szeretettel

Annak érdekében, hogy mégis legyen valamilyen keretet a nemzetközi kereskedelemnek, és a háború idején kialakult protekcionizmust próbálják feloldani, 23 ország

Április- Május: Ismétl ő , gyakorló hónapok. A két hónap anyagában két hasznos és érdekes feladat található. Hasznos „kulcsfeladat” a szinkópás ritmusok,

forduló Egy szabadon választott dal, vagy ária Egy barokk vagy klasszikus dal (max.8 perc) II. forduló Egy romantikus dal,

A kert eladása a ciklikus ismétlődés víziójában szerkezetileg azonossá válik az államosí- tással, a fikció megbocsátó munkájának eredményét teljes kifosztottságként