Algoritmimatematiikka

Samankaltaiset tiedostot
MS-A0402 Diskreetin matematiikan perusteet

Relaatioista. 1. Relaatiot. Alustava määritelmä: Relaatio on kahden (tai useamman, saman tai eri) joukon alkioiden välinen ominaisuus tai suhde.

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto, osa I

MS-A0401 Diskreetin matematiikan perusteet

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä, todistuksia ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto, osa I

Johdatus yliopistomatematiikkaan. JYM, Syksy2015 1/195

Valitsemalla sopivat alkiot joudutaan tämän määritelmän kanssa vaikeuksiin, jotka voidaan välttää rakentamalla joukko oppi aksiomaattisesti.

Kuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara

Diskreetti matematiikka, syksy 2010 Harjoitus 7, ratkaisuista

811120P Diskreetit rakenteet

Luonnollisten lukujen ja kokonaislukujen määritteleminen

811120P Diskreetit rakenteet

Relaation ominaisuuksia. Ominaisuuksia koskevia lauseita Sulkeumat. Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

Lause 5. (s. 50). Olkoot A ja B joukkoja. Tällöin seuraavat ehdot ovat

Joukossa X määritelty relaatio R on. (ir) irrefleksiivinen, jos x Rx kaikilla x X,

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 16. maaliskuuta 2011

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

MS-A0401 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9

MS-A0402 Diskreetin matematiikan perusteet

MS-A0401 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

Vieruskaverisi on tämän päivän luennolla työtoverisi. Jos sinulla ei ole vieruskaveria, siirry jonkun viereen. Esittäytykää toisillenne.

MS-A0401 Diskreetin matematiikan perusteet Esimerkkejä ym., osa I

-Matematiikka on aksiomaattinen järjestelmä. -uusi tieto voidaan perustella edellisten tietojen avulla, tätä kutsutaan todistamiseksi

Johdatus diskreettiin matematiikkaan Harjoitus 2, Osoita että A on hyvin määritelty. Tee tämä osoittamalla

Johdatus diskreettiin matematiikkaan Harjoitus 1,

MS-A0402 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa I

Tietojenkäsittelyteorian alkeet, osa 2

Karteesinen tulo. Olkoot A = {1, 2, 3, 5} ja B = {a, b, c}. Näiden karteesista tuloa A B voidaan havainnollistaa kuvalla 1 / 21

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 4 Ratkaisuehdotukset

Matematiikan johdantokurssi, syksy 2016 Harjoitus 11, ratkaisuista

Totuusjakaumat. Totuusjakauma eli valuaatio v on kuvaus v : {p 0, p 1, p 2,...} {0, 1}. Käytämme jatkossa joukolle {0, 1} merkintää B.

HY / Matematiikan ja tilastotieteen laitos Johdatus logiikkaan I, syksy 2018 Harjoitus 5 Ratkaisuehdotukset

missä on myös käytetty monisteen kaavaa 12. Pistä perustelut kohdilleen!

Diskreetin matematiikan perusteet Malliratkaisut 2 / vko 38

[a] ={b 2 A : a b}. Ekvivalenssiluokkien joukko

811120P Diskreetit rakenteet

Kurssikoe on maanantaina Muista ilmoittautua kokeeseen viimeistään 10 päivää ennen koetta! Ilmoittautumisohjeet löytyvät kurssin kotisivuilla.

Propositiot: Propositiot ovat väitelauseita. Totuusfunktiot antavat niille totuusarvon T tai E.


KOMBINATORIIKKA JOUKOT JA RELAATIOT

MAT Algebra 1(s)

Johdatus matematiikkaan

Loogiset konnektiivit

1. Osoita, että joukon X osajoukoille A ja B on voimassa toinen ns. de Morganin laki (A B) = A B.

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 8. syyskuuta 2016

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa I

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa I

Ilkka Mellin Todennäköisyyslaskenta Liite 1: Joukko-oppi

Nimitys Symboli Merkitys Negaatio ei Konjuktio ja Disjunktio tai Implikaatio jos..., niin... Ekvivalenssi... jos ja vain jos...

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa I

MS-A0401 Diskreetin matematiikan perusteet Yhteenveto ja esimerkkejä ym., osa I

Tehtävä 1. Päättele resoluutiolla seuraavista klausuulijoukoista. a. 1 {p 3 } oletus. 4 {p 1, p 2, p 3 } oletus. 5 { p 1 } (1, 2) 7 (4, 6)

Vastaus 1. Lasketaan joukkojen alkiot, ja todetaan, että niitä on 3 molemmissa.

1. Logiikan ja joukko-opin alkeet

DISKREETTIÄ MATEMATIIKKAA.

Miten perustella, että joukossa A = {a, b, c} on yhtä monta alkiota kuin joukossa B = {d, e, f }?

(2n 1) = n 2

KOMBINATORIIKKA JOUKOT JA RELAATIOT

Kirjoita käyttäen propositiosymboleita, konnektiiveja ja sulkeita propositiologiikan lauseiksi:

Algebra I Matematiikan ja tilastotieteen laitos Ratkaisuehdotuksia harjoituksiin 3 (9 sivua) OT

811120P Diskreetit rakenteet

Johdatus matematiikkaan

Johdatus matemaattiseen päättelyyn

811120P Diskreetit rakenteet

Matematiikassa ja muuallakin joudutaan usein tekemisiin sellaisten relaatioiden kanssa, joiden lakina on tietyn ominaisuuden samuus.

Ratkaisu: Yksi tapa nähdä, että kaavat A (B C) ja (A B) (A C) ovat loogisesti ekvivalentit, on tehdä totuustaulu lauseelle

Approbatur 3, demo 1, ratkaisut A sanoo: Vähintään yksi meistä on retku. Tehtävänä on päätellä, mitä tyyppiä A ja B ovat.

Joukko-oppi. Joukko-oppi. Joukko-oppi. Joukko-oppi: Mitä opimme? Joukko-opin peruskäsitteet

8 Joukoista. 8.1 Määritelmiä

Johdatus logiikkaan I Harjoitus 4 Vihjeet

(1) refleksiivinen, (2) symmetrinen ja (3) transitiivinen.

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Johdatus yliopistomatematiikkaan. JYM, Syksy /197

Todistusmenetelmiä Miksi pitää todistaa?

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

811120P Diskreetit rakenteet

Johdatus todennäköisyyslaskentaan Joukko-oppi. TKK (c) Ilkka Mellin (2005) 1

Matematiikan peruskäsitteitä

x > y : y < x x y : x < y tai x = y x y : x > y tai x = y.

Tenttiin valmentavia harjoituksia

MAT Algebra I (s) periodilla IV 2012 Esko Turunen

a k+1 = 2a k + 1 = 2(2 k 1) + 1 = 2 k+1 1. xxxxxx xxxxxx xxxxxx xxxxxx

Predikaattilogiikkaa

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

4 Matemaattinen induktio

1 Johdanto, Tavoitteet 2. 2 Lähteitä 2. 3 Propositiologiikkaa 2. 4 Karnaugh'n kartat Predikaattilogiikkaa Relaatiot 42.

Salausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)

Insinöörimatematiikka IA

1. Esitä rekursiivinen määritelmä lukujonolle

3. Predikaattilogiikka

Diskreetin matematiikan perusteet Laskuharjoitus 1 / vko 8

Miten osoitetaan joukot samoiksi?

Diskreetit rakenteet. 3. Logiikka. Oulun yliopisto Tietojenkäsittelytieteiden laitos 2015 / 2016 Periodi 1

Lisää kvanttoreista ja päättelyä sekä predikaattilogiikan totuustaulukot 1. Negaation siirto kvanttorin ohi

Johdatus yliopistomatematiikkaan

Transkriptio:

Algoritmimatematiikka Terhi Kaarakka ja Isto Lätti 2. kesäkuuta 2006 Sisältö 1 Tietorakenteista 3 1.1 Joukko-oppia........................... 3 1.1.1 Joukko-operaatioita................... 4 1.1.2 Äärellisten joukkojen mahtavuudesta.......... 6 1.2 Muita tietorakenteita....................... 6 1.2.1 Monijoukot eli pussit................... 6 1.2.2 Jono............................ 7 1.2.3 Lista............................ 7 1.2.4 Merkkijono........................ 7 2 Relaatio 8 2.1 Karteesinen tulo......................... 8 2.2 Relaatio.............................. 8 2.2.1 Esimerkkejä........................ 8 2.3 Binäärirelaatiot.......................... 9 2.4 Yhdistetty relaatio........................ 9 2.5 Relaatiot ja matriisit....................... 10 2.6 Yhdistetty relaatio ja matriisiesitys............... 10 2.7 Relaation ominaisuuksia..................... 11 2.7.1 Esimerkki......................... 11 2.7.2 Matriisiesitykset ja relaation ominaisuudet...... 11 2.8 Sulkeuma............................. 11 2.8.1 Sulkeumien muodostaminen............... 11 2.8.2 Periytyminen....................... 12 2.9 Ekvivalenssirelaatio........................ 12 2.10 Osittain järjestetty joukko.................... 13 3 Funktio 14 3.1 Terminologiaa........................... 14 3.2 Esimerkkejä funktioista..................... 15 3.3 Funktioiden muodostaminen................... 17 3.4 Funktioiden ominaisuuksia.................... 19 3.5 Sovellus: Joukkojen mahtavuudesta............... 19 3.5.1 Äärettömät joukot.................... 20 1

3.5.2 Numeroituvat ja ylinumeroituvat joukot........ 20 3.6 Sovellus: Kasvunopeuksia ja aikavaativuuksia......... 21 3.6.1 Algoritmien aikavaativuudesta............. 21 3.6.2 Kertaluokat........................ 21 4 Logiikkaa 23 4.1 Propositiologiikka......................... 23 4.1.1 Hyvin muodostettu lauseke............... 23 4.1.2 Sulkeiden poistaminen, sopimuksia........... 24 4.1.3 Totuusfunktiot...................... 24 4.1.4 Ekvivalenssi........................ 24 4.1.5 Totuusfunktiot ja normaalimuodot........... 25 4.2 Looginen päättely........................ 26 4.3 Predikaattilogiikkaa....................... 28 4.3.1 Kvanttorit......................... 28 4.3.2 Negaatiot......................... 29 4.3.3 Päättely.......................... 30 5 Induktio ja rekursio 32 5.1 Induktiivisesti määritellyt joukot................ 32 5.2 Rekursiivisesti määritellyt funktiot............... 32 5.3 Listat............................... 34 6 Matemaattinen induktio 36 2

1 Tietorakenteista 1.1 Joukko-oppia Joukko on kokoelma asioita, joita kutsutaan alkioiksi, elementeiksi, jäseniksi tai objekteiksi. - Alkion kuuluminen joukkoon, joukkojen merkitseminen - Tyhjä joukko {} tai Tunnettuja äärettömiä joukkoja: N = Z = Q = R = Osajoukko Jos jokainen joukon A alkio kuuluu myös joukkoon B, niin A on joukon B osajoukko, merk A B. Potenssijoukko P(S) = joukon S kaikkien osajoukkojen joukko. 3

Venn-diagrammi Joukkojen samuus Joukot A ja B ovat samoja, jos jokainen joukon A alkio kuuluu joukkoon B ja jokainen joukon B alkio kuuluu joukkoon A. Toisin sanoen, jos A B ja B A. Tällöin merkitään A = B. 1.1.1 Joukko-operaatioita Yhdiste A B = {x x A tai x B} Ominaisuuksia a) A = A b) A B = B A kommutatiivisuus eli vaihdannaisuus c) A (B C) = (A B) C assosiatiivisuus eli liitännäisyys d) A A = A e) A B joss A B = B 4

Leikkaus A B = {x x A ja x B} Ominaisuuksia a) A = b) A B = B A kommutatiivisuus eli vaihdannaisuus c) A (B C) = (A B) C assosiatiivisuus eli liitännäisyys d) A A = A e) A B joss A B = A Erotus A B = {x x A ja x / B} Symmetrinen erotus, eli poissulkeva tai A B = {x x A tai x B, mutta ei molempiin} A B = (A B) (A B) Komplementti Perusjoukko E A = E A = {x x E ja x / A} Ominaisuuksia a) (A) = A b) = E ja E = c) A A = ja A A = E d) A B joss B A e) A B = A B ja A B = A B De Morganin lait 5

Osittelulait A (B C) = (A B) (A C) A (B C) = (A B) (A C) 1.1.2 Äärellisten joukkojen mahtavuudesta Joukon S suuruutta kutsutaan joukon mahtavuudeksi, S. Yhdisteen mahtavuus, A B = A + B A B Erotuksen mahtavuus, A B = A A B 1.2 Muita tietorakenteita 1.2.1 Monijoukot eli pussit Määritelmä 1.1. Monijoukko on alkioiden kokoelma, jossa saman alkion useampikertaisella esiintymisellä on merkitys, mutta järjestyksellä ei. Osamonijoukko, A B 6

Monijoukkojen summa Jos alkio x on monijoukossa A n kertaa ja monijoukossa B m kertaa, niin alkio x on monijoukossa A + B n + m kertaa. Monijoukkojen yhdiste ja leikkaus Jos alkio x on monijoukossa A n-kertaa ja monijoukossa B m-kertaa, niin alkio x on monijoukossa A B max(n, m)-kertaa ja monijoukossa A B min(n, m)-kertaa. 1.2.2 Jono Määritelmä 1.2. Jono on järjestetty joukko. Joukko: {m,i,m,m,i} = {m,i} = {i,m} Monijoukko: [m,i,m,m,i] = [m,m,m,i,i] [m,i] = [i,m] Jono: m,i,m,m,i = m,m,m,i,i Jonoille sekä alkioiden useampikertainen esiintyminen että järjestys on merkityksellistä. 1.2.3 Lista Lista vastaa jonoa, merkintä, mutta viittaus voidaan tehdä vain ensimmäiseen alkioon tai loppulistaan. Lista joukossa A. Kaikkien joukon A listojen kokoelma, Lists[A]. 1.2.4 Merkkijono Äärellinen jono peräkkäisiä alkioita, erotinmerkkejä ei käytetä. 7

2 Relaatio 2.1 Karteesinen tulo Määritelmä 2.1. Kahden joukon A ja B karteesinen tulo eli joukkojen tulo on A B = { a, b a A, b B} Määritelmä 2.2. n:n joukon A 1, A 2,..., A n karteesinen tulo eli joukkojen tulo on A 1 A 2 A n = { x 1, x 2,..., x n x i A i } 2.2 Relaatio Määritelmä 2.3. Olkoon A 1, A 2,..., A n epätyhjiä joukkoja. Osajoukkoa R A 1 A 2 A n kutsutaan relaatioksi joukossa A 1 A 2 A n. Yksipaikkainen relaatio Binäärirelaatio eli kaksipaikkainen relaatio Kolmipaikkainen relaatio n-paikkainen relaatio Relaatiotietokanta on n- paikkainen relaatioiden kokoelma. 2.2.1 Esimerkkejä 8

2.3 Binäärirelaatiot A B:n osajoukko on binäärirelaatio joukossa A B; R : A B; Merkitään arb, kun a A, b B ja a, b R. Binäärirelaatio on joukko: Käänteisrelaatio R 1 tai R c Jokaiselle binäärirelaatiolle R on olemassa käänteisrelaatio R 1, joka määritellään seuraavasti: xry joss yr 1 x. Esimerkkejä: 2.4 Yhdistetty relaatio x(r S)z tarkoittaa, että on olemassa y, jolle xry ja ysz. Jos R : A B, S : B C, niin R S : A C. Esimerkki Relaatioiden yhdistäminen ei ole kommutatiivinen (vaihdannainen) operaatio Relaatioiden yhdistäminen on assosiatiivinen (liitännäinen) operaatio eli (R S) T = R (S T ) = R S T Osittelulait: R (S T ) = (R S) (R T ) R (S T ) (R S) (R T ) 9

Relaatioille R : A A määritellään yhdistetyn relaation identiteetti eli neuraalialkio I: R I = I R = R. Relaation R : A A yhdistetty relaatio itsensä kanssa { R n I, jos n = 0 = R R n 1, jos n > 0. 2.5 Relaatiot ja matriisit Määritelmä 2.4. Olkoon R relaatio äärellisessä joukossa A tyyppiä A A. Tällöin relaatio R on mahdollista esittää neliömatriisin M R avulla seuraavasti: Olkoon M ij rivin i ja sarakkeen j alkio, missä 0 i, j A, tällöin { 1, jos ai Ra M ij = j 0, muulloin Esimerkki: 2.6 Yhdistetty relaatio ja matriisiesitys Yhdistetyn relaation matriisi voidaan esittää matriisituloa hyväksikäyttäen seuraavasti: { 1, jos (MR M (M R S ) ij = S ) ij > 0 0, muulloin Esimerkki: 10

2.7 Relaation ominaisuuksia Määritelmä 2.5. Olkoon R binäärirelaatio joukossa A. Tällöin (a) R on refleksiivinen, jos xrx, kaikille x A (b) R on symmetrinen, jos xry, niin yrx, kaikille x, y A (c) R on transitiivinen, jos xry ja yrz, niin xrz kaikille x, y, z A (d) R on irrefleksiivinen, jos x Rx, kaikille x A (e) R on antisymmetrinen, jos xry ja yrx, niin x = y kaikille x, y A 2.7.1 Esimerkki 2.7.2 Matriisiesitykset ja relaation ominaisuudet Jos relaatio R on refleksiivinen, niin relaatiota vastaavan matriisin M R diagonaalialkiot ovat kaikki ykkösiä. Jos relaatio R on symmetrinen, niin relaatiota vastaava matriisi M R on symmetrinen matriisi. 2.8 Sulkeuma Määritelmä 2.6. Olkoon R binäärirelaatio joukossa A. Tällöin (a) r(r) on relaation R refleksiivinen sulkeuma, jos r(r) on pienin refleksiivinen relaatio, joka sisältää relaation R. (b) s(r) on relaation R symmetrinen sulkeuma, jos s(r) on pienin symmetrinen relaatio, joka sisältää relaation R. (c) t(r) on relaation R transitiivinen sulkeuma, jos r(r) on pienin transitiivinen relaatio, joka sisältää relaation R. 2.8.1 Sulkeumien muodostaminen Olkoon R : A A binäärirelaatio, I sen identiteettirelaatio ja R 1 sen käänteisrelaatio. Tällöin (a) r(r) = R I, (b) s(r) = R R 1, (c) t(r) = A i=1 Ri, 11

2.8.2 Periytyminen (a) Jos R on refleksiivinen, niin s(r) ja t(r) ovat refleksiivisiä. (b) Jos R on symmetrinen, niin r(r) ja t(r) ovat symmetrisiä. (c) Jos R on transitiivinen, niin r(r) on transitiivinen. 2.9 Ekvivalenssirelaatio Määritelmä 2.7. Olkoon R : A A relaatio. Jos R on refleksiivinen, symmetrinen ja transitiivinen, niin R on ekvivalenssirelaatio. Esimerkkejä Ekvivalenssiluokat Määritelmä 2.8. Olkoon relaatio R A A ekvivalenssirelaatio. Tällöin alkion x A määräämä ekvivalenssiluokka relaatiossa R on joukko Esimerkiksi [x] = {y : xry}. Joukon ositus Tarkastellaan joukon S ekvivalenssirelaatiota R. Joukon S ositus eli jako, jota myös tekijäjoukoksi kutsutaan on ekvivalenssirelaation R ekvivalenssiluokkien kokoelma (=joukko), jota merkitään S/R. 12

Esimerkki rationaaliluvut Sulkeuma Olkoon R : A A relaatio. Tällöin tsr(r) on pienin ekvivalenssirelaatio, joka sisältää R:n. Toisin sanoen tsr(r) on relaation R generoima ekvivalenssisulkeuma. 2.10 Osittain järjestetty joukko Määritelmä 2.9. Relaatio R : A A on osittainen järjestys, jos R on antisymmetrinen ja transitiivinen. Tällöin A, R on osittain järjestetty joukko (poset). Rajoittuma Määritelmä 2.10. Olkoon R : A A ja B A. Tällöin R B B on relaation R rajoittuma joukkoon B. Jos R on osittainen järjestys joukossa A, niin relaation R rajoittuma joukkossa B on osittainen järjestys joukossa B. Hassen diagrammi Täydellinen järjestys Määritelmä 2.11. Tarkastellaan joukkoa A. Jos x y tai y x kaikille x, y A, niin järjestys on täydellinen. 13

3 Funktio Määritelmä ja esimerkkejä Määritelmä 3.1. Relaatio f A B on funktio eli kuvaus, jos (i) jokaista x A kohti on olemassa y B s.e. xfy eli f(x) = y. (ii) jos xfy ja xfz, niin y = z. 3.1 Terminologiaa A B Joukko, johon kuuluvat kaikki funktiot joukolta A joukkoon B. f : A B, f A B, f on funktio joukolta A joukkoon B, f on tyyppiä A B A on funktion f määrittelyjoukko ja B maalijoukko. Jos funktion f määrittelyjoukko on n:n joukon karteesinen tulo A 1 A 2 A n, niin funktio f on n:n muuttujan funktio tai funktiolla f on n argumenttia. Merkitään usein f(x 1, x 2,..., x n ). Kahden muuttujan funktiota voidaan kutsua binäärifunktioksi. Kuva ja alkukuva f : A B, f(a) = {f(x) x A} on funktion f kuvajoukko. f : A B ja D B, f 1 (D) = {x f(x) = y ja y D} A on joukon D alkukuvajoukko kuvauksessa f. 14

3.2 Esimerkkejä funktioista Muutamia tuttuja funktioita Itseisarvofunktio tyyppiä R R: { x, jos x 0, x = abs(x) = x, muulloin. Logaritmifunktio Olkoon b > 0, b 1 ja x > 0. Tällöin Kannanvaihto: = if x 0 then x else x. log b x = y joss b y = x. log b x = log a x log a b Ominaisuuksia log b x y = y log b x log b xy = log b x + log b y log b x y = log b x log b y Floor ja ceil floor : R Z, floor(x) = x. Lattia-funktio antaa suurimman kokonaisluvun, joka on pienempi tai yhtäsuuri kuin x. ceil : R Z, ceil(x) = x. Katto-funktio antaa pienimmän kokonaisluvun, joka on suurempi tai yhtäsuuri kuin x. 15

Mod funktio Jakoalgoritmi: Jos a, b Z ja b 0, niin on olemassa yksikäsitteiset kokonaisluvut q ja r siten, että a = bq + r, missä 0 r < b. Määritelmä 3.2. Kaikille a Z, b Z {0} määritellään jakojäännös- eli mod-funktio a mod b = a b a b. Karakteristinen funktio Määritelmä 3.3. Olkoon E perusjoukko ja A E. Tyyppiä E {0, 1} olevaa funktiota { 1, kun c A, χ A (c) = 0, kun c / A. kutsutaan karakteristiseksi funktioksi (joillain matematiikan aloilla myös indikaattorifunktioksi). 16

Apufunktioita Seuraavana on lyhyesti määriteltynä uusia funktiota, joita käytetään usein apuna monimutkaisempia rakenteita konstruoitaessa. Jonofunktio seq : N Lists[N], seq(n) = 0, 1, 2,..., n Jakofunktio dist : A Lists[B] Lists[A B], dist(x, r 1, r 2,..., r k ) = x, r 1, x, r 2,..., x, r k. Parifunktio pairs : Lists[A] Lists[B] Lists[A B], pairs( s 1, s 2,..., s k, r 1, r 2,..., r k ) = s 1, r 1, s 2, r 2,..., s k, r k. Valintafunktio Valintafunktiolla tarkoitetaan funktiota, joka valitsee tarkasteltavana olevasta jonosta sen komponentin, jonka valintafunktion numero ilmoittaa. Valintafunktio n : Lists[A] A n( x 1, x 2,..., x n,..., x k ) = x n. Osafunktiot Ovat tyyppiä A B, mutta eivät ole valttämättä määriteltyjä kaikilla joukon A arvoilla. 3.3 Funktioiden muodostaminen Yhdistetty kuvaus tai funktio, Määritelmä 3.4. Funktioiden g : B C ja f : A B yhdistetty funktio eli kuvaus (g f) : A C on muotoa (g f)(x) = g(f(x)). Ominaisuuksia: - Kuvausten yhdistäminen on liitännäinen operaatio. - Kuvausten yhdistäminen ei ole vaihdannainen operaatio. - Usein merkitään f f = f 2, f f f = f 3 jne. 17

Identiteettifunktio, id Joukossa A identiteettifunktio id A (a) = a kaikilla a A. Jos f : A B, niin (f id A )(x) = f(x) ja (id B f)(x) = f(x). Vektoriarvoinen funktio tai funktioiden jono f 1, f 2,..., f k : A A 1 A 2 A k f 1, f 2,..., f k (x) = f 1 (x), f 2 (x),..., f k (x) Funktioiden jonon ja useamman muuttujan funktion yhdistetty funktio Tarkastellaan yksinkertaista tapausta ja oletetaan, että f : A B, g : A C ja h : B C D. Tällöin h f, g : A D (h f, g )(x) = h( f, g (x)) = h(f(x), g(x)) Prefix ja infix -muodot On olemassa useita tapoja ilmaista funktioita. Usein esimerkiksi summausfunktio esitetään lausekkeiden keskellä ns. sisä- eli infix-muodossa. Toinen yleinen tapa on esittää funktiot ja niiden yhdisteet lausekkeiden ja jonojen edessä ns. ulko- eli prefix-muodossa. Ohjelmoitaessa on pystyttävä tarkastelemaan erikseen otettuja funktioita, ei arvoja. Tarkastellaan esimerkkien avulla, kuinka saamme muutettua infixmuodossa olevat funktiot prefix-muotoon. 18

3.4 Funktioiden ominaisuuksia Määritelmä 3.5. Olkoon f : A B funktio. Funktio on (a) injektio, jos kaikille a, b A pätee: jos f(a) = f(b), niin a = b. (b) surjektio, jos jokaista b B vastaa a A siten, että f(a) = b. (c) bijektio, jos funktio on sekä injektio että surjektio. Käänteisfunktio Kun f : A B on bijektio, niin funktiolla f on olemassa käänteisfunktio g : B A siten, että g(b) = a, joss f(a) = b. Käänteisfunktio on myös bijektio ja g f = id A ja f g = id B. 3.5 Sovellus: Joukkojen mahtavuudesta Määritelmä 3.6. (i) Kaksi joukkoa A ja B ovat yhtä mahtavia, jos joukkojen välille voidaan muodostaa bijektio. Tällöin A = B. (ii) Joukko A yhtämahtava, kuin joukko B tai joukko B on mahtavampi, kuin joukko A, jos joukolta A saadaan muodostettua injektio joukolle B. Tällöin A B. 19

Kyyhkyslakkaperiaate Olkoot A ja B äärellisiä joukkoja. Jos f : A B on injektio, niin A B. Edellisen nojalla saadaan (kontrapositio), jos A > B, niin f : A B ei ole injektio. 3.5.1 Äärettömät joukot Määritelmä 3.7. Jos A ja B ovat joukkoja joille A B ja A = B, niin joukon A mahtavuus eli kardinaliteetti on pienempi, kuin joukon B mahtavuus, merk A < B. 3.5.2 Numeroituvat ja ylinumeroituvat joukot Määritelmä 3.8. Joukko C on numeroituva, jos se on äärellinen tai jos C = N. Joukko, joka ei ole numeroituva on ylinumeroituva. Voidaan myös sanoa, että joukko C on numeroituva, jos C N. Numeroituvia joukkoja Z on numeroituva joukko. N N on numeroituva joukko. Q on numeroituva joukko. Todistus: 20

Lause 3.9. Jos joukko A on numeroituva kokoelma numeroituvia joukkoja, niin A on numeroituva. Ylinumeroituvia joukkoja R on ylinumeroituva joukko. (0, 1) on ylinumeroituva joukko. Todistus: 3.6 Sovellus: Kasvunopeuksia ja aikavaativuuksia 3.6.1 Algoritmien aikavaativuudesta Syötteen koko n T (n) on pahimman tapauksen suoritusaika 3.6.2 Kertaluokat Määritelmä 3.10. (i) T (n) = O(f(n)), jos on olemassa positiiviset vakiot c ja n 0, joille T (n) cf(n), kun n n 0. (ii) T (n) = Ω(g(n)), jos on olemassa positiiviset vakiot c ja n 0, joille T (n) cg(n), kun n n 0. (iii) T (n) = Θ(h(n)), jos on T (n) = O(h(n)) ja T (n) = Ω(h(n)). (iv) T (n) = o(p(n)), jos on T (n) = O(p(n)) ja T (n) Ω(p(n)). 21

Esimerkki Procedure kupla (var A: array[1..n] of integer) var i,j,temp:integer begin for i:=1 to n-1 do for j:=n downto i+1 do if A[j-1] > A[j] then begin temp:=a[j-1]; A[j-1]:=A[j]; A[j]:= temp end; end; Esimerkkejä Kertaluokkatarkasteluissa on joissain tilanteissa mahdollista hyödyntää rajaarvotarkasteluita. Olkoot f ja g funktioita, joiden keskinäistä kasvua halutaan verrata muuttujan kasvaessa ja olkoon c 0 ja c. Tällöin, jos f(n) lim n g(n) = c, niin f(n) = Θ(g(n)), 0, niin f(n) = o(g(n)),, niin g(n) = o(f(n)). 22

4 Logiikkaa Logiikka on teoria oikeasta päättelystä. Perusalkio on lause. Lause on väite, jolla on täsmälleen toinen totuusarvoista Tosi 1 T Epätosi 0 E tai F Tehtävänä ei ole ottaa kantaa lauseiden totuusarvoihin, vaan pyritään esittämään menetelmiä, joilla tosina pidetyistä lauseista saadaan uusia tosia lauseita. 4.1 Propositiologiikka 4.1.1 Hyvin muodostettu lauseke Propositio, suljettu lause, {0, 1} Konnektiivit, negaatio, ei, konjunktio, ja, disjunktio, tai, implikaatio, seuraa, ekvivalenssi, yhtäpitävyys p q p q p q p q p q p q 1 1 0 0 1 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 0 0 0 1 1 0 0 1 1 Muuttujat (atomilauseet), symboleina p, q,..., tarkasteltavina lauseet P, Q, R, A, B, C,..., joiden arvot riippuvat muuttujien arvoista. loogiset vakiot t, e, missä t saa aina totuusarvon 1 ja e totuusarvon 0. Sulkeet Saadaan hyvin muodostettu lauseke, wff (well formed formula) P (p, q, r). 23

4.1.2 Sulkeiden poistaminen, sopimuksia Operaattoreiden evaluointijärjestys:,,,,. Evaluointi vasemmalta oikealle. 4.1.3 Totuusfunktiot Tyyppiä {0, 1} n {0, 1}. Kuvataan totuustauluilla. Jokainen wff määrää totuusfunktion. 4.1.4 Ekvivalenssi Wff:lle relaatio SamaTotuustaulu on ekvivalenssirelaatio =. Jos P = Q, niin lauseet P (p, q, r) ja Q(p, q, r) saavat samat totuusarvot muuttujien eli alkeislauseiden p, q, r arvojen vaihdellessa. Esimerkki (p q) = p q p q (p q) p q (p q) = p q 1 1 0 0 1 1 0 1 1 1 0 1 1 1 1 0 0 1 1 1 Tautologia! Ekvivalenssirelaatiota kutsutaan myös loogiseksi ekvivalenssiksi ja voidaan merkitä P Q, kun P = Q. Ekvivalensseja Negaatio p = p Disjunktio Konjunktio Implikaatio p t = t p t = p p t = t p e = p p e = e p e = p p p = p p p = p t p = p p p = t p p = e e p = t p p = t p q = p q p q = q p (p q) = p q 24

Vaihdantalait Liitäntälait Osittelulait p q = q p p (q r) = (p q) r p (q r) = (p q) (p r)) p q = q p p (q r) = (p q) r p (q r) = (p q) (p r)) De Morganin lait (p q) = p q (p q) = p q Absorptio p (p q) = p p (p q) = p p ( p q) = (p q) p ( p q) = (p q) Tautologia ja ristiriita Tautologia t: Arvojoukko {1} Ristiriita e: Arvojoukko {0} f on tautologia, jos ja vain jos f on ristiriita! Wff:n alilauseke voidaan aina korvata ekvivalentilla lausekkeella. Esimerkkejä 4.1.5 Totuusfunktiot ja normaalimuodot Määritelmä 4.1. (a) Literaali on totuusfunktion muuttuja tai sen negaatio, (p, p, q, q). (b) Peruskonjunktio on literaali tai literaalien konjunktio (p, p q). (c) Perusdisjunktio on literaali tai literaalien disjunktio (p, p q). (d) Disjunktiivinen normaalimuoto, DNF on peruskonjunktio tai peruskonjunktioiden disjunktio, (p (p q), p q, p q). (e) Täydellinen DNF on DNF, jossa kaikki muuttujat esiintyvät jokaisessa peruskonjunktiossa. (f) Konjunktiivinen normaalimuoto, CNF on perusdisjunktio tai perusdisjunktioiden konjunktio, (p (p q), p q, p q). (g) Täydellinen CNF on CNF, jossa kaikki muuttujat esiintyvät jokaisessa perusdisjunktiossa. Siis 25

Normaalimuotoon muuttaminen 4.2 Looginen päättely Teoria (A 1 A 2... A n ) B A 1 A 2. A n B tai A 1, A 2,..., A n B Teoria on pätevä, jos se on tautologia Interferenssisäännöt ovat päteviä teorioita MP Modus Ponens A A B B MT Modus Tollens A B A B A (A B) (A (A B)) B 1 1 1 0 0 1 0 0 A B, B A (((A B) B) A) = = = = = = = = 26

Conj Konjunktio Simp Sieventäminen A, B A B A B A Add DS HS Yhteenlasku Disjunktiivinen Syllogismi Hypoteettinen Syllogismi A A B A B, B A A B, B C A C Esimerkkejä Osoitetaan, että Todistus. (A B) (A C) A B C 1. A B P 2. A C P 3. A P 4. B 1., 3. DS 5. C 2., 3. DS 6. B C 4., 5. Conj. M.O.T 1., 2., 3., 6. CP Conditional proof eli CP merkinnällä tarkoitetaan, että näiden premissien ollessa voimassa saadaan johtopäätös. Jos kyseinen todistus pystytään muodostamaan, niin tarkasteltavana ollut teoria on pätevä. Pätemättömyyden osoittamiseksi ei riitä, että ei osata tehdä todistusta, vaan näytetään sopivalla totuusarvojen valinnalla, ettei wff ole tautologia. 27

Alitodistus Todistettaessa A (B C), voidaan käyttää tautologiaa A (B C) = (A B) C apuna. Tällöin todistuksen sisälle kirjoitetaan alitodistus (merkitään sisentämällä), jossa uudeksi premissiksi otetaan B ja premissien ja päättelysääntöjen avulla näytetään C. 1. A P 2. B P alitodistus alkaa 3.... interferenssisääntöjä.. k. C i., j... XX k + 1. B C 2., k. CP alitodistus loppuu. M.O.T CP 4.3 Predikaattilogiikkaa Propositiot ovat suljettuja lauseita, ne ovat aina joko tosia tai epätosia. Usein tarvitaan myös avoimia lauseita eli predikaatteja, joiden totuusarvo riippuu tarkasteltavana olevista muuttujista. Kvanttoreiden avulla on mahdollista saada avoimia lauseita suljettua ja määritettyä niille totuusarvot. 4.3.1 Kvanttorit kaikkikvanttori. x p(x) tarkoittaa p(x) on tosi kaikilla tarkastelujoukon arvoilla x. olemassaolokvanttori. x p(x) tarkoittaa on olemassa sellainen x, jolle p(x) on tosi. Olkoon a = {a, b, c} predikaatin p määrittelyjoukko. Tällöin x A, p(x) tarkoittaa p(a) p(b) p(c). x A, p(x) tarkoittaa p(a) p(b) p(c). 28

Sulkeet ja vaikutusalue x ja x on sama vaikutusalue kuin negaatiolla eli x p(x, y) q(x) tarkoittaa ( x p(x, y)) q(x), jolloin suluissa olevat (2) x:ää ovat sidottuja ja sulkujen ulkopuolella oleva x on vapaa. 4.3.2 Negaatiot Kvanttoreilla suljetun lauseen negaatio saadaan muuttamalla kvanttorit kvanttoreiksi ja muuttamalla kvanttorit kvanttoreiksi ja ottamalla predikaatista negaatio. Ekvivalenssit Propositiologiikan ekvivalenssien avulla on mahdollista muodostaa ekvivalensseja myös kvanttoreilla suljetuille lauseille. x W (x) = x W (x) x W (x) = x W (x) x (A(x) B(x)) = x A(x) x B(x) x (A(x) B(x)) = x A(x) x B(x) x (A(x) B(x)) = x A(x) x B(x) x y W (x, y) = y x W (x, y) x y W (x, y) = y x W (x, y) x (C A(x)) = C x A(x) x (C A(x)) = C x A(x) x (C A(x)) = C x A(x) x (A(x) C) = x A(x) C x (C A(x)) = C x A(x) x (C A(x)) = C x A(x) x (C A(x)) = C x A(x) x (A(x) C) = x A(x) C Implikaatioita x A(x) x A(x) x A(x) x B(x) x (A(x) B(x)) y x W (x, y) x y W (x, y). x (A(x) B(x)) x A(x) x B(x) x (A(x) B(x)) ( x A(x) x B(x)) 29

4.3.3 Päättely Päättely tehdään käyttäen propositiologiikan interferenssisääntöjä ja lisäksi muutamia uusia interferenssisääntöjä. UI Universal Instantiation ( poistaminen). x W (x) W (t) UG Universal Generalization ( käyttöönotto). Käyttö vain, jos avoin lause p(c) todistetaan mielivaltaiselle määrittelyjoukon alkiolle c, niin x p(x) on tosi. W (t) x, W (x) EG Existential Generalization ( käyttöönotto). W (t) x, W (x) EI Existential Instantiation ( poistaminen). Muuttujan t on oltava uusi vakio todistuksessa. x W (x) W (t) 30

Esimerkkejä Kelmien ja ritareiden saari Olkoon r(x) = x puhuu totta ja joukko R on ritarien joukko ja joukko K kelmien joukko, saarella ei ole muita asukkaita. Ritarit puhuvat aina totta eli x R : r(x) ja kelmit valehtelevat aina x K : r(x). Ulkonäöstä on mahdoton päätellä, onko kyseessä kelmi vai ritari. Tapaat kaksi saaren asukasta a ja b, joista toinen sanoo en ole ritari tai hän on ritari. Päättele asukkaiden a ja b kelmiys tai ritarius. Tapaat kaksi saaren asukasta a ja b, joista toinen sanoo me emme ole molemmat ritareita. Päättele asukkaiden a ja b kelmiys tai ritarius. 31

5 Induktio ja rekursio 5.1 Induktiivisesti määritellyt joukot Joukko S voidaan määritellä induktiivisesti seuraavasti Perusta Induktio Luetellaan joukon S peruselementit/alkiot. Annetaan yksi tai useampi sääntö, jolla joukkoon S konstruoidaan uusia alkoita joukon S alkioista. Sulkeuma Mikään muu alkio, kuin perustan alkio tai induktiolla määritelty, ei kuulu joukkoon S. Esimerkki, luonnollisten lukujen joukko 5.2 Rekursiivisesti määritellyt funktiot Rekursiivisesti määritelty funktio on funktio, joka on määritelty itsensä avulla eli funktio, joka kutsuu itseään uudella muuttujan arvolla. Jos S on induktiivisesti määritelty joukko, niin voidaan funktio f, jonka määrittelyjoukko on S, määritellä rekursiivisesti seuraavasti Perusta Induktio Jokaiselle joukon S perustan alkiolle x S määrätään f(x). Annetaan yksi tai useampi sääntö mille tahansa x S, joka määrää f(x):n edellisen f:n arvon perusteella. 32

Fibonaccin luvut Tarkastellaan kanipariskuntaa. Kuinka monta kanipariskuntaa syntyy vuodessa, jos pariskunta tuottaa uuden pariskunnan kuukaudessa ja kanipariskunta saa aina ensimmäisen poikueensa kahden kuukauden ikäisenä? Kuukaudet 0 1 2 3 4 5 6 7 8 9 10 11 Syntyvät kaniparit 0 1 1 2 3 5 8 13 21 34 55 89 Fibonaccin lukujen rekursiivinen määritelmä Fibonaccin luvut fib(n) saadaan Perusta Induktio fib(0) = 0 ja fib(1) = 1. fib(n) = fib(n 1) + fib(n 2), n 2. Summan ja tulon rekursiiviset määritelmät Olkoon A := a 1, a 2,..., a n,... lukujono. Tällöin lukujonon n ensimmäisen termin summa eli n:s osasumma ja n ensimmäisen termin tulo, voidaan esittää seuraavasti: n { 0, jos n = 0, ( perusta) a i = a n + n 1 i=1 i=1 a i, muulloin ( induktio). n { 1, jos n = 0, ( perusta) a i = n 1 a n i=1 a i, muulloin ( induktio). i=1 Hieman toisin merkinnöin, mutta vastaavalla tavalla voidaan määritellä summa ja tulo m:nnestä alkiosta n:een: n { 0, jos n < m, ( perusta) a i = sum(m, n, A) = sum(m, n 1, A) + a n, muulloin ( induktio). n { 1, jos n < m, ( perusta) a i = prod(m, n, A) = prod(m, n 1, A)a n, muulloin ( induktio). i=m i=m 33

Kertoma 5.3 Listat Listan hajottajat Olkoon A epätyhjä lista, tällöin sille on määritelty funktiot head ja tail, siten, että head palauttaa listan ensimmäisen alkion ja tail listan, josta on poistettu ensimmäinen alkio. Esimerkiksi head l, i, k, h = l ja tail( l, i, k, h ) = i, k, h. Listan muodostajat Listan muodostamista varten määritellään operaattorit ::, joka on infix-muotoinen operaattori ja cons, joka on prefix-muotoinen operaattori. Molemmat liittävät annetun alkion listan ensimmäiseksi alkioksi seuraavasti: h :: u, r, s = h, u, r, s ::-operaattorille a :: b :: c :: L = a :: (b :: (c :: L)) Olkoon lista n, n 1,..., 0, tällöin se voidaan esittää myös muodossa cons(n, n 1, n 2,..., 0 ). Olkoon f : N Lists[N], f(n) = n, n 1, n 2,..., 0, niin tällöin cons(n, n 1,..., 0 ) = cons(n, f(n 1)) ja f:n rekursiiviseksi määritelmäksi saadaan Perusta f(0) = 0 Induktio f(n) = cons(n, f(n 1), kun n > 0. 34

Listan pituus Olkoon S joukko ja length: Lists[S] N, joka palauttaa syötteenä annetun listan alkioiden lukumäärän { 0, jos L =, (perusta) length(l) = 1 + length(tail(l)), muulloin. (induktio) Kahden listan liittäminen (katenaatio) cat : Lists[A] Lists[A] Lists[A] { M, jos L =, (perusta) cat(l, M) = head(l) :: cat(tail(l),m), muulloin. (induktio) 35

6 Matemaattinen induktio Johdatusta induktiotodistukseen Tarkastellaan algoritmia, joka antaa positiivisia kokonaislukuja sisältävän jonon a 1, a 2,..., a n suurimman alkion: begin i:=0; M:=0; while i < n do begin i=i+1; M:=max(M, a[i]) end; end; Kun n on jonon pituus, niin toimiiko algoritmi kaikilla mahdollisilla jonoilla? Olkoon a 1, a 2,..., a n syöte ja M k on muuttujan M arvo k:nnen suorituksen jälkeen. 1. Kun syöte on jono a 1, pituus 1, niin silmukka suoritetaan kerran ja muuttuja M saa maksimin arvoista 0 ja a 1, joka on a 1. OK. 2. Oletetaan, että k:nnen suorituksen jälkeen muuttuja M = M k on jonon a 1, a 2,..., a k suurin alkio. 3. k+1 suorituksessa saadaan jonon suurin alkio M k+1 valitsemalla alkioista M k ja a k+1 suurempi, joka tulee olemaan jonon a 1, a 2,..., a k+1 suurin alkio. 1. kohta näyttää, että algoritmi toimii jonoille, joissa on 1 alkio. Kohtien 2. ja 3. perusteella voimme sanoa, että algoritmi toimii jonoille, joissa on 2 alkiota. Ja uudelleen käyttämällä kohtia 2. ja 3. se toimii jonoille, joissa on 3 alkiota, jne. Joten algoritmi toimii mille tahansa n alkiota sisältävälle jonolle ja algoritmin oikeellisuus on todistettu. 36

Induktiotodistus Olkoon p : N {Tosi, Epätosi}, missä p(m) tarkoittaa, että väite pätee arvolle m, niin saadaan Jos p(0), ja ominaisuudesta p(n) seuraa p(n + 1), kaikilla n N, niin p(n) kaikilla n N. Todistettaessa p(n) kaikilla n N suoritetaan seuraavat kolme vaihetta: 1. Induktion alku Näytä p(0). 2. Induktio-oletus Olkoon n N. Oleta p(n). 3. Induktioaskel Todista p(n + 1) käyttäen induktio-oletusta. Induktion perustan siirto Induktion perustaa voidaan siirtää, kun todistetaan, että jokin on tosi kaikilla luonnollisilla luvuilla n a. Tällöin perustassa näytetään, että p(a) on tosi. Esimerkki Tarkastellaan kokonaislukuja x 1, x 2,..., x n, jotka on määritelty seuraavasti: x 1 = 1 ja x k+1 = x k + 8k, kaikille k 1. Osoita, että x n = (2n 1) 2. Todistus. Olkoon p(n) lauseke x n = (2n 1) 2. 1. Induktion alku Näytetään p(1) eli arvolla n = 1 on (2n 1) 2 = 1 = x 1. Eli p(1) on voimassa. 2. Induktio-oletus Oletetaan p(k) eli, että, jollekin k 1 pätee x k = (2k 1) 2. 3. Induktioaskel Tällöin x k+1 = x k + 8k = (2k 1) 2 + 8k induktio-oletuksen käyttö = 4k 2 + 4 k + 1 = (2k + 1) 2 = (2(k + 1) 1) 2. 1.,2.&3. seuraa induktioperiaatteen mukaisesti, että p(n) on tosi n 1. 37