1 Ratkaisuja 2. laskuharjoituksiin

Samankaltaiset tiedostot
1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

58131 Tietorakenteet (kevät 2009) Harjoitus 11, ratkaisuja (Topi Musto)

Tietorakenteet, laskuharjoitus 7, ratkaisuja

Algoritmit 1. Luento 9 Ti Timo Männikkö

SAT-ongelman rajoitetut muodot

Algoritmit 2. Luento 13 Ti Timo Männikkö

58131 Tietorakenteet ja algoritmit (syksy 2015) Toinen välikoe, malliratkaisut

Kognitiivinen mallintaminen 1

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Datatähti 2019 loppu

Induktiotodistus: Tapaus n = 0 selvä; ol. väite pätee kun n < m.

T kevät 2007 Laskennallisen logiikan jatkokurssi Laskuharjoitus 1 Ratkaisut

Algoritmit 2. Demot Timo Männikkö

Äärellisten mallien teoria

Oikeasta tosi-epätosi -väittämästä saa pisteen, ja hyvästä perustelusta toisen.

58131 Tietorakenteet ja algoritmit (kevät 2014) Uusinta- ja erilliskoe, , vastauksia

58131 Tietorakenteet ja algoritmit Uusinta- ja erilliskoe ratkaisuja (Jyrki Kivinen)

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä.

Rationaalinen agentti. Kognitiivinen mallintaminen I. Rationaalinen agentti. Rationaalinen agentti. Kognitiivinen mallintaminen I, kevät /1/08

verkkojen G ja H välinen isomorfismi. Nyt kuvaus f on bijektio, joka säilyttää kyseisissä verkoissa esiintyvät särmät, joten pari

Kognitiivinen mallintaminen I

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

T Kevät 2009 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (Predikaattilogiikka )

Algoritmit 2. Luento 13 Ti Timo Männikkö

Tietorakenteet, laskuharjoitus 10, ratkaisuja. 1. (a) Seuraava algoritmi tutkii, onko jokin luku taulukossa monta kertaa:

Algoritmit 1. Luento 8 Ke Timo Männikkö

keskenään isomorfiset? (Perustele!) Ratkaisu. Ovat. Tämän näkee indeksoimalla kärjet kuvan osoittamalla tavalla: a 1 b 3 a 5

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Lineaarinen optimointitehtävä

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

Kaikki kurssin laskuharjoitukset pidetään Exactumin salissa C123. Malliratkaisut tulevat nettiin kurssisivulle.

T Kevät 2006 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

58131 Tietorakenteet ja algoritmit (kevät 2013) Kurssikoe 2, , vastauksia

Johdatus verkkoteoriaan 4. luento

Malliratkaisut Demot

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Algoritmit 2. Luento 10 To Timo Männikkö

811312A Tietorakenteet ja algoritmit, , Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit Kertausta jälkiosasta

Johdatus graafiteoriaan

Harjoitus 1 ( )

Algoritmit 1. Demot Timo Männikkö

2. Seuraavassa kuvassa on verkon solmujen topologinen järjestys: x t v q z u s y w r. Kuva 1: Tehtävän 2 solmut järjestettynä topologisesti.

T Kevät 2005 Logiikka tietotekniikassa: erityiskysymyksiä I Kertausta Ratkaisut

Luku 7. Verkkoalgoritmit. 7.1 Määritelmiä

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 8 To Timo Männikkö

Harjoitus 1 ( )

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö

T Logiikka tietotekniikassa: perusteet Kevät 2008 Laskuharjoitus 5 (lauselogiikka ) A ( B C) A B C.

on Abelin ryhmä kertolaskun suhteen. Tämän joukon alkioiden lukumäärää merkitään

= 3 = 1. Induktioaskel. Induktio-oletus: Tehtävän summakaava pätee jollakin luonnollisella luvulla n 1. Induktioväite: n+1

TKT20001 Tietorakenteet ja algoritmit Erilliskoe , malliratkaisut (Jyrki Kivinen)

Insinöörimatematiikka A

6. Approksimointialgoritmit

Ratkaisu: (b) A = x 0 (R(x 0 ) x 1 ( Q(x 1 ) (S(x 0, x 1 ) S(x 1, x 1 )))).

A-osa. Ratkaise kaikki tämän osan tehtävät. Tehtävät arvostellaan pistein 0-6. Taulukkokirjaa saa käyttää apuna, laskinta ei.

13 Lyhimmät painotetut polut

Algoritmien suunnittelu ja analyysi (kevät 2004) 1. välikoe, ratkaisuja

Algoritmit 1. Luento 12 Ti Timo Männikkö

Testaa: Vertaa pinon merkkijono syötteeseen merkki kerrallaan. Jos löytyy ero, hylkää. Jos pino tyhjenee samaan aikaan, kun syöte loppuu, niin

Harjoitus 3 ( )

Algebra I, harjoitus 5,

Algoritmit 1. Luento 13 Ma Timo Männikkö

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Malliratkaisut Demot

Algoritmit 2. Luento 5 Ti Timo Männikkö

1 Rajoittamaton optimointi

(p j b (i, j) + p i b (j, i)) (p j b (i, j) + p i (1 b (i, j)) p i. tähän. Palaamme sanakirjaongelmaan vielä tasoitetun analyysin yhteydessä.

Algoritmit 2. Luento 12 To Timo Männikkö

Ratkaisu. Tulkitaan de Bruijnin jonon etsimiseksi aakkostossa S := {0, 1} sanapituudelle n = 4. Neljän pituisia sanoja on N = 2 n = 16 kpl.

Algoritmit 2. Luento 2 Ke Timo Männikkö

, on säännöllinen 2-ulotteinen pinta. Määrää T x0 pisteessä x 0 = (0, 1, 1).

Kenguru 2019 Student lukio

Algoritmit 2. Luento 2 To Timo Männikkö

3SAT-ongelman NP-täydellisyys [HMU ]

Valitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.

Kombinatorinen optimointi

Kaulaketju. Syöte. Tuloste. Esimerkki 1. Esimerkki 2

Geneettiset algoritmit

Ratkaisu: Käytetään induktiota propositiolauseen A rakenteen suhteen. Alkuaskel. A = p i jollain i N. Koska v(p i ) = 1 kaikilla i N, saadaan

Algoritmit 1. Luento 13 Ti Timo Männikkö

EKOLOGISUUS. Ovatko lukiolaiset ekologisia?

Kohdissa 2 ja 3 jos lukujen valintaan on useita vaihtoehtoja, valitaan sellaiset luvut, jotka ovat mahdollisimman lähellä listan alkua.

Algoritmi on periaatteellisella tasolla seuraava:

4.3.7 Epäoleellinen integraali

Lyhin kahden solmun välinen polku

Harjoitus 3 ( )

Kvanttifysiikan perusteet 2017

Turingin koneen laajennuksia

811312A Tietorakenteet ja algoritmit, , Harjoitus 6, Ratkaisu

(iv) Ratkaisu 1. Sovelletaan Eukleideen algoritmia osoittajaan ja nimittäjään. (i) 7 = , 7 6 = = =

Irrota tämä vastauslomake tehtävämonisteesta. Merkitse tehtävän numeron alle valitsemasi vastausvaihtoehto.

Tietorakenteet ja algoritmit syksy Laskuharjoitus 1

MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.

a b c d

Äärellisten mallien teoria

Johdatus graafiteoriaan

Transkriptio:

1 1 Ratkaisuja 2. laskuharjoituksiin Tehtävä 1. (a) Yksinkertainen reeksiagentti ei voi toimia rationaalisesti tässä tilanteessa, eli maksimoida suoriutumismittaansa (performance measure). Yksinkertainen reeksiagentti voi luottaa vain onneensa kulkiessaan paikasta toiseen ja etsiessään roskia. Ympäristöä mallintava reeksiagentti sitä vastoin voi toimia rationaalisesti. Ympäristöä mallintava reeksiagentti pystyy tarkkailemaan, kuinka tiuhaan roskia kertyy eri paikkoihin ja valitsemaan liikkumisensa tämän mukaan. Jos agentti voi havainnoida koko toimintaympäristöään kerralla, voi yksinkertainen reeksiagenttikin toimia rationaalisesti. Eli siirtyä keräämään roskia toiseen ruutuun vasta, kun ruutu roskaantuu. Molemmat agentit pystyvät toimimaan yhtä tehokkaasti tässä ympäristössä. Ympäristöä mallintava refleksiagentti ei enää hyödy kyvystään muistaa ympäristön muutoksia. Tehtävä 1. (b) Tuntemattomassa ympäristössä yksinkertainen reeksiagentti jää helposti jumiin eikä siis voi toimia rationaalisesti. Satunnaistettu reeksiagentti ei jää jumiin tuntemattomaan ympäristöön. Satunnaistetun reeksiagentin heikkous on, että se käy joissakin paikoissa vain hyvin harvoin. (Esim. pitkän suoran päädyissä, mikäli agentti aloittaa keskeltä suoraa.) Koska satunnaistettu reeksiagentti ei pysty muistamaan ympäristöään, ei senkään toimintaa voi kuvata rationaaliseksi toimintaympäristössään. (Sattumalta toiminta voi kylläkin ajoittain näyttää rationaaliselta.)

2 Tehtävä 2. Alkutila Kriteeri lopputilalle seuraajafunktio kustannusfunktio a Värittämätön kartta b Apinalla ei banaaneja, tuolit Kartan kaikki maat Väritä maa Värittämisen väritetty, sama hinta 1 väri ei koskaan esiinny vierekkäisissä maissa. Apina saa banaanit Siirrä tuoli pinoon Jokaisen tai pois pinosta, ki- toiminnan erikseen lattialla, ipeä, ota banaanit hinta 1 banaanit ilmassa. c Ohjelma saanut Löydetty tietue, Siirrä tietueita Siirron hinta syötteenä tiedoston joka aiheuttaa tiedostosta toiseen 1 ja tuloksena virheen virheilmoitus d Kaikki ämpärit tyhjiä Jossakin ämpärissä Täytä ämpäri läh- Toiminnon tasan litra vettä teestä, tyhjennä hinta 1 ämpärin sisältö toiseen ämpäriin (kokonaan tai kunnes toinen ämpäri on täynnä), tyhjennä ämpäri maahan Tehtävä 3. Tehtävän ongelma-avaruus kasvaa kovin suureksi esitettäväksi verkkona. Tehtävä sivuutetaan. Tehtävä 4. Seuraavassa kuvassa esitetään kolmen palikan Hanoin tornin ongelma-avaruus. (Muista, että ongelma-avaruus sisältää kaikki lailliset tilat, joihin alkutilasta päästään suorittamalla tehtävän sallimia toimintoja.)

3 Ongelma-avaruus kolmen palikan Hanoin tornille. ** *** ** ** ** ** ** *** ** ** *** ** ***:llä merkityt kaaret vastaavat ison palikan siirtoa. **:llä merkityt kaaret vastaavat keskikokoisen palikan siirtoa. Ratkaisua vastaavat tilanteet merkitty :lla Kuvassa tähdin merkitsemättömät kaaret vastaavat pienimmän kiekon siirtoa. Tässä on nyt oletettu ratkaisuksi kelpaavan tornin kasaamisen uudelleen kumpaan tahansa alussa tyhjään palikkaan. Algoritmin, joka ratkaisee Hanoin tornin, toimintaidea on ratkaista ensin kahden palikan Hanoin torni. Ensin siis algoritmi ratkaisee, kuinka kaksi palikkaa voidaan siirtää siihen pitimeen, johon kolmen palikan tornia ei haluta. (Siirrä pieni paikkaan, jonne tornia ei haluta muodostaa. Siirrä seuraava palikka paikkaan, johon torni halutaan muodostaa. Siirrä lopuksi pieni isomman päälle.) Tämän jälkeen iso pa-

4 likka siirretään haluttuun paikkaan ja ratkaistaan uudelleen kahden palikan Hanoin torni nyt niin, että kahden palikan torni muodostuu ison palikan päälle. Tätä algoritmia voi yleistää useamman palikan Hanoin torneille. Jos palikoita parillinen määrä 2n, ratkaistaan ensin kahden palikan torni haluttuun (keskelle tai toiseen laitaan) paikkaan. Sitten kolmen torni ei-haluttuun, alussa vapaaseen paikkaan. Siirretään neljäs pala haluttuun paikkaan ja ratkaistaan kolme palikan Hanoin torni sen päälle. Siirretään viiden palikka ei-haluttuun, alussa vapaaseen paikkaan. Ratkaistaan neljän palikan Hanoin torni (ratkaistiin jo äsken) sen päälle. Jne... Jos palikoita on pariton määrä, ratkaistaan aina parittomia lukuja vastaavat Hanoin tornit haluttuun paikkaan. Tehtävässä pyydettiin tehokkainta etsintäalgoritmia, mikä voi tarkoittaa myös algoritmia, joka tehtäväavaruutta kuvaavasta verkosta hakee nopeimmin ja vähimmin muistiresurssein reitin (mielellään lyhimmän) alkutilasta ratkaisuun. Moni algoritmi pystyy löytämään reitin alkutilasta lopputilaan. Esim. leveyshakua muistuttava Dijkstran algoritmi. Dijkstran algoritmi hakee lyhimmän reitin verkossa kahden halutun pisteen välille. Voidaan siis etsiä lyhin reitti ongelma-avaruudessa alkutilanteesta ratkaisuun. Algoritmi laskee lyhyimpiä etäisyyksiä alkutilasta lähtien kaikkiin muihin verkon solmuihin. Algoritmi lopettaa, kun ratkaisuun johtava solmu tulee vastaan. Algoritmi myös tunnistaa lyhimmän reitin, koska se tallettaa muistiin solmujen vanhemmat. Lyhin reitti ratkaisuun on siis alkutila ->... -> p(p(ratkaisu)) -> p(ratkaisu) -> ratkaisu. Ratkaisu on haluttua lopputilaa vastaava solmu, p(ratkaisu), solmu, josta siihen on päädytty, p(p(ratkaisu)), solmu, johon on päädytty p(ratkaisusta) jne. Tilavaativuus on yleisessä tapauksessa tällä algoritmilla O( V ), missä V on verkon solmujen lukumäärä. Aikavaativuus puolestaan on yleisessä tapauksessa O( E + V log V ), missä E on verkon reunojen lukumäärä. Tehokkaampiakin algoritmeja voi olla, algoritmin todistaminen tehokkaimmaksi on useimmiten työlästä.

5 Tehtävä 5. (a): x((h(x) L(x) S(x)) N(x)). Mikäli kuitenkin vaaditaan, ettei produktiosysteemin lauseissa saa esiintyä disjunktioita, vaan implikaatiomuotoisissa lauseissa etujäsenen on oltava atomilauseiden konjunktio ja takajäsenen atomilause, valitaan lauseen (a) käännökseksi lausejoukko: a 1 : x(h(x) N(x)), a 2 : x(l(x) N(x)) ja a 3 : x(s(x) N(x)). (Konjunktiot ovat disjunktioita helpompia käsiteltäviksi.) ( ) (b): x y (H(x) J(y, x)) H(y). (c): H(c B ). (d): V (c B, c C ). (e): x y(v (x, y) J(y, x)). (f ): x(n(x) V (c x, x)). Eksistentiaalisesti kvantioitu muuttuja on korvattu jokaista muuttujan x arvoa kohti uudella vakiosymbolilla c x. Tehtävä 6. Seuraavissa φ 1, φ 2 ja ψ ovat atomikaavoja. Produktiosääntö A: Jos φ(x) ψ(x) ja φ(d) (d vakio) löytyvät työmuistista, niin lisää ψ(d). Produktiosääntö B: Jos φ(x, y) ψ(x, y) ja φ(e, f) (e,f vakioita) löytyvät työmuistista, niin lisää ψ(e, f). Produktiosääntö C: Jos φ 1 (x) φ 2 (x, y) ψ(y) sekä φ 1 (e) ja φ 2 (e, f) (e,f vakioita) löytyvät työmuistista, niin lisää ψ(f). Olkoon työmuistin sisältö alussa: 1: H(x) N(x), 2: H(x) J(y, x) H(y), 3: H(c B ),

6 4: V (c B, c C ), 5: V (x, y) J(y, x) ja 6: N(x) V (c x, x). 1:een voi soveltaa A:ta (valitaan φ(x) = 1) mikäli löytyy sopiva ψ(d), missä d on vakio. 3 kelpaa produktiosäännön A vaatimaksi ψ(d):ksi. Niinpä lisätään työmuistiin lause: 7: N(c B ). Seuraavaksi siirrytään työmuistin sisältöön kohtaan 2. Produktiosääntö C voisi soveltua kohtaan 2. Kuitenkaan työmuistista ei löydy produktiosäännön C vaatimaa φ 2 (e, f):ää. Mikään produktiosääntö ei sovellu kohtiin 3 ja 4. Siirrytään siis kohtaan 5. Produktiosääntö B soveltuu kohtaan 5. Lisäksi kohta 4 kelpaa B:ssä φ(e, f):ksi. Lisätään siis työmuistiin kohta: 8: J(c C, c B ). Kohtia 6,7 ja 8 ei vastaa mikään produktiosääntö, edetään siis takaisin kohtaan 1. 1:stä ei voi päätellä mitään uutta. Kohdasta 2 voi sen sijaan nyt päätellä H(c C ) produktiosäännön C avulla (φ 1 (e):ksi voi valita kohdan 3 ja φ 2 (e, f):ksi voi valita kohdan 8). Lisätään työmuistiin: 9: H(c C ). Mitään uutta kohdista 3-9 ei voikaan päätellä. Siirrytään siis takaisin kohtaan 1. Produktiosäännön A avulla voi nyt päätellä kohdista 1 ja 9: N(c C ). Lisätään työmuistiin: 10: N(c C ). Bluebirdillä on vanhempi voitaisiin päätellä lisäämällä uusi produktiosääntö. Nimittäin produktiosääntö D: Jos φ(x) ψ(c x, x) ja φ(d) (c,d vakioita) löytyvät työmuistista, niin lisää ψ(c d, d). Tällöin halutun päätelmän saa soveltamalla produktiosääntöä D kohtiin 6 ja 7.