• Ei tuloksia

58053-7 Algoritmien suunnittelu ja analyysi (kev¨at 2004) Harjoitus 7 (11.–12. maaliskuuta)

N/A
N/A
Info
Lataa
Protected

Academic year: 2022

Jaa "58053-7 Algoritmien suunnittelu ja analyysi (kev¨at 2004) Harjoitus 7 (11.–12. maaliskuuta)"

Copied!
2
0
0

Kokoteksti

(1)

58053-7 Algoritmien suunnittelu ja analyysi (kev¨ at 2004) Harjoitus 7 (11.–12. maaliskuuta)

Ensimm¨ainen kurssikoe on tiistaina 9.3. kello 16–20 p¨a¨arakennuksen salissa 1. Koealue on luentomo- nisteen sivut 1–162 eli laskuharjoituksissa 1–6 k¨asitellyt asiat.

1. Teht¨av¨an¨a on suorittaa yksiprosessorisella tietokoneella joukko t¨oit¨a, jotka ovat kaikki valmiina suoritettavaksi ja joista jokaisen vaatima suoritusaika tunnetaan. Ty¨ot pit¨aisi j¨arjest¨a¨a niin, ett¨a keskim¨a¨ar¨ainen valmistumisaikaon mahdollisimman aikainen. Ty¨on valmistumisaika on summa ty¨on itsens¨a sek¨a ennen sit¨a suoritettavien t¨oiden vaatimista suoritusajoista. Siis esim. jos t¨oiden a,b ja c suoritusajat ovat 13, 4 ja 8, ja ne suoritetaan j¨arjestyksess¨a (c, b, a), valmistumisajat ovat c : 8, b : 8 + 4 = 12 ja a : 8 + 4 + 13 = 25, joten keskim¨a¨ar¨ainen valmistumisaika on (8 + 12 + 25)/3 = 15.

Esit¨a tehokas algoritmi t¨oiden j¨arjest¨amiselle ja osoita, ett¨a algoritmisi antaa aina kes- kim¨a¨ar¨aiselt¨a valmistumisajaltaan parhaan tuloksen.

2. Kurssilla on t¨ah¨an menness¨a tarkasteltu mm. seuraavia painotettuihin verkkoihin liittyvi¨a mi- nimointiongelmia:

(a) kauppamatkustajan ongelma, (b) lyhin polku solmustassolmuunt ja

(c) pienin viritt¨av¨a puu.

Kaikille n¨aille voidaan luonnollisesti m¨a¨aritell¨a vastaavamaksimointiongelma. Vaadimme edel- leen, ett¨a kaarten painojen pit¨a¨a olla positiivisia. Kohdan (b) maksimointiongelmassa rajoi- tutaan tarkastelemaan vain yksinkertaisia polkuja (samassa solmussa saa k¨ayd¨a vain kerran), jolloin teht¨av¨a on mielek¨as my¨os syklej¨a sis¨alt¨av¨ass¨a verkossa.

Tarkastele kussakin tapauksessa (a)–(c), voidaanko maksimointiongelma (helposti) palauttaa vastaavaan minimointiongelmaan. Perustele.

3. On annettu joukkotoimintoja (esim. luentoja), joilla kullakin on alkamisaikaja loppumisaika.

Kukin toiminto vaatii jokin resurssin (esim. luentosali) yksin k¨aytt¨o¨ons¨a koko kestoajakseen.

Jos toiminnonialkamisaika onai ja loppumisaikabi, sen kestoaika on puoliavoin v¨ali [ai, bi).

Teht¨av¨an¨a on valita suoritettavaksi lukum¨a¨ar¨alt¨a¨an mahdollisimman suuri joukko toimintoja, joiden kestoajat eiv¨at mene p¨a¨allekk¨ain. Esit¨a teht¨av¨alle tehokas ratkaisualgoritmi ja osoita ratkaisusi toimivuus.Vihje: j¨arjest¨a toiminnot loppumisajankohdan mukaan.

K¨a¨ann¨a!

(2)

4. Tarkastellaan seuraavaa verkkoaG:

k k

k k

k

a b

e c

d 3

6

2

1

5

6

2

4

5 8

H

HH HH

H HH

HHH

@

@

@

@

@

(a) Simuloi Linin-Kernighanin 2-vaihtoheuristiikan toimintaa, kun sill¨a ratkaistaan kauppa- matkustajan ongelmaa verkossaGja alkuratkaisuna on reittiabcde.

(b) Ratkaise kauppamatkustajan ongelma verkossaGtarkasti k¨aytt¨am¨all¨a branch-and-bound- menetelm¨a¨a.

5. Ohjelmoi tietokoneella peruutukseen perustuva ratkaisuN kuningattaren ongelmalle (sijoitet- tava N kuningatarta N×N shakkilaudalle niin, ett¨a mitk¨a¨an kaksi kuningatarta eiv¨at uhkaa toisiaan). Paljonko aikaa ohjelma vie eri arvoillaN? Arvioi (karkeasti) ohjelman asymptoottista tila- ja aikavaativuutta.

2

Viittaukset

LIITTYVÄT TIEDOSTOT

Hahmottele simuloitua j¨ a¨ ahdytyst¨ a k¨ aytt¨ av¨ a ratkaisumenetelm¨ a NP-t¨ aydelliselle solmupeiteon- gelmalle ( Vertex Cover ).. Valitse sopiva kustannusfunktio ja

Osoita, ett¨ a luokkaan perustuva tasapainotus ilman mit¨ a¨ an polkujen tiivist¨ amist¨ a takaa Union- Find-operaatioiden suorituksen ajassa O(log n) per operaatio..

Suunnittele tehokas algoritmi, joka etsii vieruslistoina esitetyn suunnatun ver- kon jonkin alkusolmun, mik¨ ali verkossa sellaisia on.. Miten muuttaisit algoritmia, jos teht¨ av¨ an¨

Suunnittele tehokas algoritmi, joka l¨ oyt¨ a¨ a vieruslistoina esitetyst¨ a yhten¨ aisest¨ a suuntaamatto- masta verkosta solmun, joka ei ole artikulaatiopiste.. Algoritmisi tulee

Osoita, miten seuraavat ongelmat voidaan ratkaista palauttamalla ne tavalliseen maksimi- vuonm¨ a¨ ar¨ a¨ amisongelmaan:.. (a) M¨ a¨ ar¨ a¨ a maksimivuo verkossa, jossa kaarten

Osoita, ett¨ a jos solmupeiteongelman p¨ a¨ at¨ osversio VC (joka siis on NP-t¨ aydellinen) osattaisiin ratkaista polynomisessa ajassa, niin my¨ os vastaava etsint¨

Osoita, miten algoritmista B saadaan aina polynomisessa ajassa toimiva algoritmi, joka ainakin todenn¨ ak¨ oisyydell¨ a 1/2 vastaa oikein ja muuten vastaa.. ”en

Laskut t¨ aydellisesti n¨ akyviin, pelkk¨ a vastaus ei riit¨ a. Perustele teht¨ av¨ at riitt¨