Next: About this document
Up: No Title
Previous: No Title
-
Tietyn ongelman ratkaisemiseksi on tarjolla kaksi vaihtoehtoista
menetelmää. Algoritmissa 1 ongelman tapaus, jonka koko on n,
jaetaan kahteen n/2 kokoiseen osatapaukseen, jotka molemmat
ratkaistaan rekursiivisesti. Tapauksen osittaminen ja osaratkaisujen
yhdistäminen vaativat tässä menetelmässä n:n suhteen lineaarisen ajan.
Algoritmissa 2 ongelman tapaus jaetaan n:n suhteen neliöllisessä
ajassa kolmeen n/3 kokoiseen osatapaukseen, mutta näistä
ratkaistaan rekursiivisesti vain yksi. Kumpi algoritmi on
aikavaativuudeltaan asymptoottisesti tehokkaampi? (Perusteltu vastaus.)
-
Valuutta-arbitraasilla tarkoitetaan (yksinkertaistaen) valuuttojen
vaihtosuhteiden erojen hyväksikäyttöä voittojen keräämiseen. Jos
esimerkiksi yhdellä Suomen markalla saa 1,60 Ruotsin kruunua, yhdellä
kruunulla 0,13 USA:n dollaria ja yhdellä dollarilla 5,00 markkaa,
niin vaihtamalla markat ensin kruunuiksi, sitten kruunut dollareiksi
ja dollarit takaisin markoiksi saa voittosuhteeksi
. Suunnittele tehokas algoritmi,
joka tutkii onko annetussa n valuutan valuuttakorissa, jossa
valuutan i vaihtosuhde valuuttaa j vastaan on R[i,j],
mahdollista harjoittaa voitollista arbitraasia. (Vihje: Floyd.)
-
Suunnittele algoritmi B(n,k), joka annetuilla syötteillä n ja k
tuottaa ja tulostaa ne n bitin bittijonot, jotka sisältävät
tasan k ykköstä. Algoritmin aikavaativuuden T(n,k) tulee olla
verrannollinen tulostettujen bittijonojen määrään, so. on oltava
(kiinteällä k).
Esitä algoritmisi aikavaativuusanalyysi.
-
Määrittele seuraavat käsitteet: ongelmaluokka NP, polynominen
palautus, NP-täydellinen ongelma. Anna kaksi esimerkkiä
NP-täydellisistä ongelmista, perustele miksi ne kuuluvat luokkaan NP,
ja osoita että niiden välillä vallitsee polynominen palautusrelaatio.
(Yhdensuuntainen palautus riittää, palautusekvivalenssia ei tarvitse
osoittaa.)
Pisteytys: Kukin tehtävä 15 pistettä, yhteensä 60 pistettä.
Pekka Orponen
Sun Jan 10 02:16:31 EET 1999