next up previous
Next: About this document Up: No Title Previous: No Title

TIE211 Tietorakenteet ja algoritmit 2
Loppukoe ke 18.8.1999 klo 8-12

  1. Oletetaan, että tunnet vaativuudeltaan kertaluokkaa tex2html_wrap_inline114 olevan yksinkertaisen algoritmin jonkin ongelman ratkaisuun. Oletetaan edelleen, että tiedät miten ongelman kokoa n oleva tapaus voitaisiin palauttaa kolmeen kokoa n/2 olevaan tapaukseen, joista yhdistämällä alkuperäisen tapauksen vastaus voitaisiin muodostaa lineaarisessa ajassa. Osatapaukset voidaan muodostaa ajassa tex2html_wrap_inline120 . Miten pieni täytyy vakion tex2html_wrap_inline122 olla, jotta osittamiseen perustuva ratkaisualgoritmi olisi tehokkaampi kuin alussa mainittu yksinkertainen algoritmi?
  2. Simuloi kauppamatkustajan ongelman (a) ahneen ratkaisuheuristiikan, (b) Lin-Kernighan 2-vaihtoheuristiikan toimintaa oheisessa verkossa. Valitse LK-heuristiikan alkuratkaisuksi reitti abcde.

    picture26

  3. Tarkastellaan seuraavaa NP-täydellistä repunpakkausongelmaa. On annettu joukko ``tavaroita'' tex2html_wrap_inline126 ja niiden ``koot'' tex2html_wrap_inline128 ja ``arvot'' tex2html_wrap_inline130 sekä luonnollinen luku S (``repun tilavuus''). Tehtävänä on valita tavaroiden joukosta sellainen osakokoelma tex2html_wrap_inline134 , että tex2html_wrap_inline136 (``tavarat mahtuvat reppuun'') ja ``repun arvo'' tex2html_wrap_inline138 on mahdollisimman suuri. Suunnittele ongelmalle (a) ahne ja (b) paikalliseen etsintään perustuva ratkaisuheuristiikka.
  4. Pisimmän yhteisen alijonon määritystehtävässä syötteenä annetaan merkkijonot tex2html_wrap_inline140 ja tex2html_wrap_inline142 , ja tehtävänä on määrittää suurin sellainen luku k, että jokin jono tex2html_wrap_inline146 esiintyy sekä jonon a että jonon b alijonona (so. joillakin indekseillä tex2html_wrap_inline152 ja tex2html_wrap_inline154 on tex2html_wrap_inline156 ). Esimerkiksi merkkijonoilla VIISAS ja SIKA on kaksikin kahden merkin mittaista yhteistä alijonoa (IA ja SA), mutta ei yhtään kolmen merkin mittaista yhteistä alijonoa; tässä tapauksessa on siis k=2. Huomaa, ettei alijonon c merkkien tarvitse esiintyä jonoissa a ja b yhtenäisesti peräkkäin. -- Laadi algoritmi, joka määrittää annettujen syötejonojen tex2html_wrap_inline140 ja tex2html_wrap_inline142 pisimmän yhteisen alijonon pituuden k ajassa O(mn). (Vihje: Muodosta taulukko tex2html_wrap_inline174 , missä L[i,j] = jokin sopivasti valittu jonoihin tex2html_wrap_inline178 ja tex2html_wrap_inline180 liittyvä suure.)

Pisteytys: Kukin tehtävä 15 pistettä, yhteensä 60 pistettä.



Pekka Orponen
Fri Aug 27 21:13:33 EET DST 1999