algoritmi- matematiikka - math.tut.fimath.tut.fi/~ruohonen/am.pdf · 1 i lauselogiikka eli...

84
ALGORITMI- MATEMATIIKKA Keijo Ruohonen 1993

Upload: ngoxuyen

Post on 20-Feb-2019

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

ALGORITMI-MATEMATIIKKA

Keijo Ruohonen

1993

Page 2: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

Kirjallisuutta

ANDERSON, I.: A First Course in Combinatorial Mathematics. Oxford Uni-versity Press (1979)

GRAHAM, R.L. & KNUTH, D.E. & PATASHNIK, O.: Concrete Mathematics. AFoundation for Computer Science. Addison-Wesley (1989)

GRAY, P.: Logic, Algebra and Databases. Ellis Horwood (1985)

GREENE, D.H. & KNUTH, D.E.: Mathematics for the Analysis of Algorithms.Birkhäuser (1982)

GRIMALDI, R.P.: Discrete and Combinatorial Mathematics. An Applied Intro-duction. Addison-Wesley (1994)

KNUTH, D.E.: The Art of Computer Programming I. Fundamental Algo-rithms. Addison-Wesley (1975)

MCELIECE, R.J. & ASH, R.B. & ASH, C.: Introduction to Discrete Math-ematics. McGraw-Hill (1989)

RICHARDS, T.: Clausal Form Logic. An Introduction to the Logic of Com-puter Reasoning. Addison-Wesley (1989)

ROBINSON, J.A.: Logic: Form and Function. The Mechanization of DeductiveReasoning. Edinburgh University Press (1979)

ROGERS, R.: Mathematical Logic and Formalized Theories. North-Holland(1974)

SCHÖNING, U.: Logic for Computer Scientists. Birkhäuser (1989)

SKIENA, S.: Implementing Discrete Mathematics. Addison-Wesley (1990)

TRUSS, J.K.: Discrete Mathematics for Computer Scientists. Addison-Wesley(1991)

Page 3: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

SISÄLTÖLUETTELO

1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA

1 1. Perusoperaatiot ja totuustaulut 2 2. Laskulakeja 4 3. Normaalimuodot 4 4. Implikaatio-operaattori 5 5. Päättely. Tautologiat. Sijoitus 9 6. Päättelyn apuneuvoja: Premissiksi siirto10 7. Päättelyn apuneuvoja: Reductio ad absurdum (RAA)11 8. Päättelyn apuneuvoja: Resoluutio14 9. Aksiomatisointi

16 II 1. KERTALUVUN PREDIKAATTILOGIIKKA

16 1. Yleistä16 2. Kvanttorit18 3. Predikaattikalkyyliä21 4. Ekvivalenssi21 5. Päättely22 6. Normaalimuoto25 7. Resoluutio27 8. Päättelyn anatomiaa. Herbrandin universumi30 9. Resoluutio Hornin konjunkteille. PROLOG

37 III KOMBINATORIIKKAA

37 1. Kombinaatiot39 2. Binomikertoimet44 3. Dirichlet’n laatikkoperiaate. Inkluusio-ekskluusio-periaate45 4. Permutaatiot49 5. Stirlingin kaava

51 IV KOKONAISLUKUFUNKTIOT

51 1. Kertalukunotaatio55 2. Katto ja pohja57 3. Kongruenssilaskentaa

59 V REKURSIOKAAVAT

59 1. Yleistä61 2. Ensimmäisen kertaluvun lineaarinen rekursiokaava62 3. Vakiokertoiminen lineaarinen rekursiokaava

HAKEMISTO

Page 4: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

1

I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA

1. Perusoperaatiot ja totuustaulut

Lauselogiikka käsittelee ns. propositioita eli lauseita, joilla on ns. totuusar-vo, "tosi" (T) tai "väärä" (V ). Mitään muuta lauseen ominaisuutta ei otetahuomioon.

Lauseita yhdistellään ns. loogisin operaatioin eli konnektiivein. Tuttuja kon-nektiiveja ovat "ja" (merkitään AND tai ∧ , joskus &), "tai" (merkitään ORtai ∨ ) sekä "ei" (merkitään NOT tai ~, joskus ¬ ). Totuusarvot muodostuvattällöin seuraavasti:

A B ~A A ∧ B A ∨ B

T T V T TT V V V TV T T V TV V T V V

Yo. taulu on ns. totuustaulu.

Huomaa, että A∨ B on tosi silloinkin, kun sekä A että B on tosi (ehkä hie-man toisin kuin tavallisessa kielenkäytössä). Konnektiivi, jolle näin ei ole,on ns. eksklusiivinen "tai" (merkitään XOR, joskus ⊕ tai +), jonka totuus-taulu on

A B A XOR BT T VT V TV T TV V V

Mahdollisia kahden lauseen A ja B konnektiiveja on ilmeisesti 24 = 16 kpl.Yllä on niistä kolme. Nämä voidaan kuitenkin kaikki ilmaista yo. operaati-oiden ∧ , ∨ ja ~ avulla. Esimerkiksi

A XOR B = (A ∧ (~B)) ∨ ((~A) ∧ B),

kuten voidaan totuustaulua käyttäen todeta.

Huom! Itse asiassa yksi ainoa operaatiokin riittää. Tällainen on esimer-kiksi "ei ... eikä" (merkitään NOR, joskus ↓ ), jonka totuustaulu on

Page 5: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

2

A B A NOR BT T VT V VV T VV V T

Silloin ~A = A↓A, A∧ B = (A↓A)↓ (B↓B) ja A∨ B = (A↓B)↓ (A↓B).

Jatkossa sovitaan, että operaatioiden suoritusjärjestys on ~, ∧, ∨ (eli sama

kuin aritmeettisten operaatioiden -, ˘, +), jolloin sulkuja jätetään paljoltipois. Esimerkiksi edellä esiintyvä kaava on silloin

A ∧ ~B ∨ ~A ∧ B.

Ja-konnektiivia sanotaan usein konjunktioksi, tai-konnektiivia disjunktioksija eitä negaatioksi. Vastaavat operaatiot ovat konjungointi, disjungointi sekänegeeraus.

Huom! Myös lauseista yo. operaatioin saatavat lausekkeet ovat itse asiassalauseita, sillä niillä on totuusarvot. Sanaa lauseke käytetäänkin ilmaise-maan sitä, että lause on kirjoitettavissa muiden lauseiden avulla käyttäenloogisia operaatioita.

2. Laskulakeja

Totuustauluja käyttäen voidaan todentaa seuraavat laskulait (jotka muutentekevät lauselogiikasta ns. Boolen algebran):

1 ) A∧ B = B∧ A

A∨ B = B∨ A (vaihdantalait)

2 ) (A∧ B)∧ C = A∧ (B∧ C)

(A∨ B)∨ C = A∨ (B∨ C) (liitäntälait)

3 ) A ∧ T = A

A ∨ V = A

4 ) A ∧ V = V A ∨ T = T

Page 6: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

3

5 ) A ∧ ~A = V A ∨ ~A = T

6 ) A∧ (B∨ C) = A∧ B ∨ A∧ C

A∨ (B∧ C) = (A∨ B)∧ (A∨ C) (osittelulait)

Pitkissä konjunktio- ja disjunktioketjuissa ei tarvitse käyttää sulkeita, sil-lä tulos on sulutuksesta riippumaton. Siis kirjoitetaan

A1 ∧ A2 ∧ ˘˘˘∧ An

(joka on tosi täsmälleen silloin, kun A1,A2,...,An ovat kaikki tosia) ja

A1 ∨ A2 ∨ ˘˘˘∨ An

(joka puolestaan on tosi täsmälleen silloin, kun ainakin yksi lauseistaA1,A2,...,An on tosi). Asia on päätellen aika selvä*. Se voitaisiin todistaaformaalisestikin lähtien liitäntälaeista, mutta tämä ei ole aivan helppoa.

Lähtien laeista 1) - 6) voitaisiin todistaa kaikki muut laskulait (helpom-malla usein pääsee, kun käyttää totuustauluja). Tällaisia ovat esimerkiksi

7 ) ~~A = A (komplementäärisyyslaki)

8 ) A∧ A = A

A∨ A = A (idempotenssilait)

9 ) A∧ (A∨ B) = A

A∨ (A∧ B) = A (absorptiolait)

10) ~(A∧ B) = ~A∨ ~B

~(A∨ B) = ~A∧ ~B (de Morganin lait)

Toistuvasti de Morganin lakeja käyttäen saadaan lisäksi lait

~(A1 ∧ A2 ∧ ˘˘˘∧ An) = ~A1 ∨ ~A2 ∨ ˘˘˘∨ ~An

~(A1 ∨ A2 ∨ ˘˘˘∨ An) = ~A1 ∧ ~A2 ∧ ˘˘˘∧ ~An

Jos tehdään vaihdokset

∧ ←→ ∨ ja T

←→ V,

* toisin kuin esimerkiksi matriisitulolle!

Page 7: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

4

saadaan laskulaista aina toinen laskulaki (joskus sama). Tämä pätee yo.laskulaeille ja, koska kaikki lait saadaan laeista 1) - 6), kaikille laskulaeil-le. Tällä tavoin toisiinsa liittyvät lait ovat keskenään duaaliset.

3. Normaalimuodot

Osittelulakeja käyttäen voidaan "kirjoittaa auki" lausekkeita, aivan kutenaritmetiikassakin. Kun lauseke kirjoitetaan auki käyttäen ensimmäistä osittelulakia ja de Morganin lakeja sekä sievennetään sitten niin pitkällekuin mahdollista komplementäärisyyslakia käyttäen, saadaan se ns. dis-junktiiviseen normaalimuotoon (DNF)

D1 ∨ ˘˘˘∨ Dn,

missä kukin ns. disjunkti Di on muotoa

Di = Ai1 ∧ ˘˘˘∧ Aimi,

missä puolestaan kukin ns. literaali Aij on lause tai lauseen negaatio.

Vastaavasti, jos 1. osittelulain sijasta käytetään pelkästään toista osittelu-lakia (ja de Morganin lakeja ja sievennetään), saadaan lauseke ns. kon-junktiiviseen normaalimuotoonsa (CNF)

(C1) ∧ ˘˘˘∧ (Cn),

missä konjunktit Ci ovat literaaliensa disjunktioita, ts.

Ci = Ai1 ∨ ˘˘˘∨ Aimi.

Huom! Disjunkteista ja konjunkteista käytetään usein yhteistä nimeäklausa (engl. clause).

4. Implikaatio-operaattori

"Tavallisessa" päättelyssä esiintyy "jos ..., niin"-päätelmiä. Koska kyse ontotuusarvoista, lauselogiikassa täytyy olla vastine eli "jos A, niin B"-päätel-mä ja se on jokin niistä 16 mahdollisesta konnektiivista. Katsomalla tode-taan, että ainoa valinta on ns. implikaatio (merkitään →), jonka totuustauluon

Page 8: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

5

A B A → BT T TT V VV T TV V T

Lausuttuna pykälän 1 operaatioiden avulla implikaatio on

A→B = ~A∨ B.

Huom! Usein päätelmä tehdään käänteisesti. Se on sallittua, sillä

A→B = ~A∨ B = B∨ ~A = ~~B∨ ~A = (~B)→(~A).

Ekvivalenssi "jos ja vain jos" (merkitään ↔) on myös looginen operaatio. Seon luonnollisesti

A↔B = (A→B)∧ (B→A) = (~A∨ B)∧ (~B∨ A) laskua = (A∧ B) ∨ (~A∧ ~B).

Huomaa, että → ei ole vaihdannainen, ts. A→B ≠ B→A, eikä myöskään lii-

tännäinen, ts. (A→B)→C ≠ A→(B→C).

Suoritusjärjestyksessä → tulee operaatioiden ~, ∧ ja ∨ jälkeen ja ↔ vieläsen jälkeen.

5. Päättely. Tautologiat. Sijoitus

Laskulakeja käyttäen voidaan muokata loogisia lausekkeita. Toisaalta logii-kan semanttiseen olemukseen kuuluu päättely: "Jos lausekkeet A1,...,Anovat tosia, niin myös lauseke B on tosi." Päättelyn on oltava pitävä, ts. se onvoitava todistaa oikeaksi. Tätä varten sallitaan päättely vain tietyillä ns.päättelysäännöillä, joita kylläkin voi käytössä olla paljon. Käytettyjenpäättelysääntöjen tulee olla kyllin vahvat, jotta päästään haluttuun johto-päätökseen B.

Klassiset päättelysäännöt ovat

modus ponens (MP): Jos A on tosi ja A→B on tosi, niin myös B on tosi.

sekä

Page 9: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

6

ketjusääntö (KS): Jos A→B on tosi ja B→C on tosi, niin myös

A→C on tosi.

Nämä ovat, paitsi varsin luonnollisia, myös perusteltavissa "laskien", sillä

A∧ (A→B) → B = Tja

(A→B)∧ (B→C) → (A→C) = T.

Päättely etenee päättelyketjuna: Lähdetään annetuista oletuksista A1,…,An (ns. premissit), siis siitä että A1,…,An ovat tosia, ja päätellään uusia to-sia lausekkeita käyttäen päättelysääntöjä. Lausekkeita, jotka voidaan olet-taa tosiksi, tulee näin koko ajan lisää. Jatketaan kunnes haluttu johtopää-tös B on näin saatu pääteltyä. Merkitään

A1,…,An |= B

(tarkemmin sanoen tämä merkintä tarkoittaa, että vastaava päättely onoikea; toisinaan merkitään myös A1,…,An |- B).

Huom! Toinen tapa todistaa päättely oikeaksi olisi totuustaulujen käyttö,mutta se on yleensä tavattoman työlästä, sillä A1,…,An ja B ovat useinkinhyvin mutkikkaita lausekkeita tai sitten n on suuri (eli premissejä on pal-jon).

Yo. tavalla päättely voidaan suorittaa täysin formaalisesti käyttäen symbo -leja

∧ , ∨ , ~ , → , ↔ , ( ja )

sekä tarvittavaa määrää symboleja niille propositioille, jotka eivät ole lau-sekkeita (ts. eivät ole ilmaistavissa toisten propositioiden lausekkeina),ns. atomeille. Syntaksi BNF-notaatiolla*:

⟨lauseke⟩ ::= ⟨propositio⟩ | ~⟨propositio⟩ | ⟨propositio⟩ ⟨operaatio⟩ ⟨proposi-

tio⟩⟨operaatio⟩ ::= ∧ | ∨ | → | ↔

⟨propositio⟩ ::= ⟨atomi⟩ | (⟨ lauseke⟩ )

(huomaa, miten tämä syntaksi tuottaa "liikaa" sulkuja). Päättelysääntöjävoidaan nyt käyttää täysin mekaanisena symbolimanipulaationa. Vaikeute-na on tietysti löytää oikea päättelyketju.

* "BNF" = Backus-Naur form

Page 10: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

7

Lauseke, joka on tosi riippumatta siinä esiintyvien atomien totuusarvoista,on ns. tautologia. Jos A on tautologia, on se pääteltävissä tavallaan mistätahansa premisseistä, A:han on joka tapauksessa tosi. Tätä merkitään

|= A

(toisinaan myös |- A). Päättelyketjun missä tahansa vaiheessa, erityisestisen alussa, voi siis ottaa käyttöön tautologian. Luonnollisesti, jos tautolo-gian jonkin atomin tilalle kirjoitetaan joka paikkaan sama lauseke, niin tu-los on edelleen tautologia.

Lausekkeen todistaminen tautologiaksi käy jollain seuraavista tavoista:

1 ) muodostetaan lausekkeen totuustaulu (useimmiten työlästä);

2 ) kirjoitetaan lauseke jompaankumpaan normaalimuotoonsa ja sie-vennetään niin pitkälle kuin mahdollista käyttäen laskulakeja;tulokseksi pitää saada T (toisinaan sievennys on helppoa suo-raankin ilman normaalimuotoa); tai

3 ) todistetaan lauseke formaalisesti tautologiaksi lähtien annetuistaaksiomista ja käyttäen päättelysääntöjä (ks. pykälä 9).

Tautologiat ovat lauselogiikan teoreemoja, siis loogisia totuuksia. Hyödylli-siä tautologioita ovat mm. edellä olleet MP ja KS

A∧ (A→B) → B

(A→B)∧ (B→C) → (A→C)

sekä esimerkiksi

~B∧ (A→B) → ~Aja

(A→B) → (A∨ C → B∨ C).

MP:n ja KS:n lisäksi myös kaksi vm. tautologiaa ovat tulkittavissa päättely-säännöiksi. Itse asiassa pätee yleisempikin tulos:

LAUSE 1. A |= B täsmälleen silloin, kun A→B on tautologia (eli |= A→B).

Todistus . Jos A |= B, niin saadaan totuustaulu

A B A → B T T TV T TV V T

Page 11: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

8

joten tällöin A→B on aina tosi. (Huomaa, että oletus A|= B sulkee pois ta-

pauksen, jossa A:n totuusarvo on T ja B:n V.) Jos taas A→B on tautologia,niin implikaation totuustaulun mukaan A:n totuudesta seuraa B:n totuus,jolloin A |= B.

SEURAUS. A1,…,An |= B täsmälleen silloin, kun |= A1 ∧ ˘˘˘∧ An → B.

Todistus . A1,…,An ovat kaikki yhtaikaa tosia täsmälleen silloin, kun A1∧ ˘˘˘∧An on tosi.

Eräs päättelyn apuväline on sijoitus: Jos lausekkeessa A1 esiintyy osanalauseke B ja A2 saadaan A1:stä sijoittamalla B:n paikalle lauseke C (ei vält-tämättä joka paikkaan), niin

A1, B↔C|= A2.

Ts. ekvivalentteja lausekkeita voidaan päättelyn aikana mielin määrin kor-vata toisillaan. Erityisesti, jos B↔C on tautologia, niin tällöin A1 |= A2. Si-

joituksen pätevyys seuraa suoraan totuustaulujen perusteella, sillä jos B↔Con tosi, niin B:n ja C:n totuusarvot ovat samat.

Jos |= B↔C, niin B=C on (Boolen algebran) laskulaki. Tässä tapauksessasi-joitus onkin siis laskulain käyttöä. Toisaalta, jos B=C on laskulaki, niinsel-västi |= B↔C ja tätä voidaan käyttää yo. päättelyssä A1 |= A2 . Laskulainkäyttö klassisessa päättelyssä onkin siis "naamioitunut" sijoitukseksi. Kuntämä tiedetään, voidaan laskulakeja tietysti käyttää "suoraankin" päättely-ketjun välitulosten muokkaamisessa.

MP ja KS ovat "luonnollisia" päättelysääntöjä. Kumpikin riittää yksinään-kin, jos "apuna" käytetään sopivia tautologioita. MP:n käyttö voidaankorva-ta KS:n käytöllä, sillä päättely

A, A→B|= B (MP)voidaan laskulakeja

A = A∨ ~A → A ja A∨ ~A → B = Beli tautologioita

A ↔ A∨ ~A → A ja A∨ ~A → B ↔ B

käyttäen (sijoitus!) pukea KS-päättelyksi

A∨ ~A → A , A→B |= A∨ ~A → B.

Vastaavasti voidaan KS korvata MP:llä, jos KS otetaan käyttöön tautologia-na

(A→B)∧ (B→C) → (A→C).

Page 12: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

9

Tällöin päättely

A→B, B→C|= A→C (KS)

voidaan pukea MP-päättelyksi

(A→B)∧ (B→C) , (A→B)∧ (B→C) → (A→C) |= A→C.

Tautologioiden käyttö päättelyssä ei yleisesti ole aivan niin mutkatontakuin yllä, sillä on tiedettävä mitä tautologioita käyttää ja että kyseessä to-della ovat tautologiat.

On huomattava, että useinkaan ei itse asiassa kiinnosta päättelyn A1,…,An|= B oikeellisuus, vaan miten se tehdään tehokkaasti askel askeleelta.Seuraavassa kolmessa pykälässä on esitetty apuneuvoja, joilla päättely voi-daan tehdä tehokkaaksi.

6. Päättelyn apuneuvoja: Premissiksi siirto

Menettely esiintyy jo Lauseessa 1 ja sen Seurauksessa. Yleisemmin voidaanesittää

LAUSE 2. Päättelyn A1,…,An |= B→C kanssa ekvivalentti päättely on A1,…,An,B |= C (ts. siirretään B premissiksi).

Todistus . Otetaan käyttöön laskulaki

X → (Y→Z) = X∧ Y → Z

(eli tautologia X → (Y→Z) ↔ X∧ Y → Z sijoituksen kautta). Silloin

A1,…,An,B |= C

Lauseen 1

⇔ * Seuraus

|= A1 ∧ ˘˘˘∧ An ∧ B → C

laskulaki

⇔ |= A1 ∧ ˘˘˘∧ An → (B → C)

Lauseen 1

⇔Seuraus

A1,…,An |= B→C.

* Tämä ⇔ on metakielen ekvivalenssi, kun ↔ taas on looginen operaatio.

Page 13: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

10

7. Päättelyn apuneuvoja: Reductio ad absurdum (RAA)

LAUSE 3. Päättelyn A1,…,An |= B→C kanssa ekvivalentti päättely on A1,…,An,~C |= ~B.

Todistus . Otetaan käyttöön laskulaki

X→Y = ~Y→~X

(ks. sivu 5). Silloin

A1,…,An,~C |= ~B

Lause 2

⇔ A1,…,An |= ~C→~B

laskulaki

⇔ A1,…,An |= B→C.

SEURAUS (RAA). Päättelyn A1,…,An |= B→C kanssa ekvivalentti päättelyon

A1,…,An,B,~C|= V

(yleensä V on muotoa D∧ ~D).

Todistus . Otetaan käyttöön laskulaki

~B = B→V.

SilloinA1,…,An |= B→C

Lause 3

⇔ A1,…,An,~C |= ~B

laskulaki

⇔ A1,…,An,~C |= B→V

Lause 2

⇔ A1,…,An,~C,B|= V.

Huom! Mieti tarkasti, milloin muotoa A1,…,An |=V oleva päättely on oikea.

Lause 3 on sellaisenaankin usein käyttökelpoinen. RAA on matematiikanvastaoletuksen käytön vastine lauselogiikassa. Sen etuna on tavoitteen

Page 14: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

11

(=V ) yksinkertaisuus. RAA on varsin vahva päättelystrategia, kun se sopii:pitkä ja vaikeasti löydettävä suora päättely korvautuu useinkin varsin ly-hyellä ja helposti löydettävällä käänteisellä päättelyllä, kuten matematii-kan todistuksista huomataan.

8. Päättelyn apuneuvoja: Resoluutio

KS yhdessä RAA:n kanssa muodostaa vahvan ja helposti mekanisoitavanpäättelymenetelmän. (Kuten s. 8 todettiin, voidaan MP:n käyttö korvataKS:n käytöllä.) Tällöin KS kirjoitetaan seuraavaan muotoon:

Jos ~A→B on tosi ja B→C on tosi, niin myös ~A→C on tosi.

Koska toisaalta ~A→B = A∨ B, B→C = C∨ ~B ja ~A→C = A∨ C, saadaan KSedelleen muotoon

resoluutiosääntö (RS): Jos A∨ B on tosi ja C∨ ~B on tosi, niin myös

A∨ C on tosi.

RAA saadaan käyttöön joko sellaisenaan tai muodossa

LAUSE 4. Päättelyn A1,…,An |= B kanssa ekvivalentti päättely on A1,…,An,~B |= V.

Todistus . Otetaan käyttöön laskulaki

B = T→B.

Silloin

A1,…,An |= B

laskulaki

⇔ A1,…,An |= T→B

RAA

⇔ A1,…,An,T,~B |= V

Lause 2

⇔ A1,…,An,~B |= T→V

laskulaki

⇔ A1,…,An,~B |= V.

Page 15: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

12

RAA:ia tai Lausetta 4 käyttäen voidaan rajoittua muotoa A1,…,An |= V oleviinpäättelyihin.

Resoluutiomenettely

1 ) Kirjoitetaan kukin lausekkeista A1,…,An konjunktiiviseen nor -maalimuotoon , jonka literaalit ovat atomeja tai atomien negaatioi-ta. (Ks. pykälä 3.) Kerätään yhteen kaikki näin saadut konjunk -tit : C1,…,Cm. Päättelyt

A1,…,An |= Vja

C1,…,Cm |= V

ovat ilmeisesti ekvivalentit, sillä

A1 ∧ ˘˘˘∧ An = C1 ∧ ˘˘˘∧ Cm

ja päättelyt

A1,…,An |= V ja A1 ∧ ˘˘˘∧ An |= V

ovat samat, samoin päättelyt

C1,…,Cm |= V ja C1 ∧ ˘˘˘∧ Cm|= V.

2 ) Siirrytään tutkimaan päättelyä C1,…,Cm |= V.

3 ) Jos konjunktien C1,…,Cm joukosta löytyy kaksi konjunktia, joistayhdessä on literaalina jokin atomi sellaisenaan ja toisessa samaatomi negeerattuna, niin sovelletaan RS:ä . Esimerkiksi, jos

X∨ Y∨ Z∨ ~Wja

Y∨ W∨ U

ovat tällaiset konjunktit, niin niistä päätellään uusi konjunkti

X∨ Y∨ Z∨ U

käyttäen RS:ä . (Huomaa myös toisen idempotenssilain käyttö li-teraalien toiston eliminoimiseksi uudessa konjunktissa.) Saatuuusi konjunkti lisätään konjunktilistaan C1,…,Cm. Jos toinenkonjunkteista on yksiliteraalinen, mutta toinen taas ei, esimer-kiksi

X∨ ~Y∨ Z ja Y,

Page 16: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

13

voidaan RS:ä soveltaa, kun ajatellaan Y muodossa V∨ Y. Uusi kon-

junkti on nyt X∨ Z∨ V eli X∨ Z. Jos taas molemmat konjunktit ovat

yksiliteraalisia, esimerkiksi X ja ~X, päätellään V ja lopetetaan .(Tämäkin voidaan katsoa RS:n soveltamiseksi: Kirjoitetaan vain X= X∨ V ja ~X = ~X∨ V ja päätellään V∨ V = V.)

4 ) Kohtaa 3) toistetaan, kunnes V on saatu pääteltyä tai uusia kon- junkteja ei enää synny RS:n avulla . (Äärellistä literaalimäärääkäyttäen syntyy vain äärellinen määrä konjunkteja, joissa ei oletoistuvia literaaleja.)

VÄITE. Jos menettely pysähtyy, mutta V:ä ei ole saatu pääteltyä, ei päät-tely ollut alunperinkään mahdollinen, ts. lausekkeiden A1,…,An (tai vas-taavasti konjunktien C1,…,Cm) atomeille voidaan valita sellaiset totuusar-vot, että A1,…,An (ja C1,…,Cm) saavat kaikki totuusarvon T.

Matemaattinen todistus tälle tosiasialle on vähän konstikas:

Todistus . Tarkastellaan niitä konjunkteja, jotka ovat käsillä prosessin py-sähtyessä ilman, että V:ä olisi päätelty. Olkoot kaikki tällöin esiintyvätatomit (jossain järjestyksessä)

X1 ,..., Xk .

Konstruoidaan literaalijono

Y1 ,…, Yk ,missä

Yi = Xi tai Yi = ~Xi ,

seuraavasti:

Y1 = X1 , jos ~X1 ei ole konjunkti~X1 , jos ~X1 on konjunkti

ja

Yi =

Xi , jos jokaisessa konjunktissa esiintyy mui- takin literaaleja kuin ~Y1,…,~Yi-1,~Xi

~Xi , jos jossain konjunktissa esiintyy vain literaaleja ~Y1,…,~Yi-1,~Xi .

Valitaan sitten atomeille X1,…,Xk totuusarvot siten, että Y1,…,Yk ovattosia. Tällöin kaikki konjunktit (ja erityisesti C1,…,Cm) ovat myös tosia,kuten voidaan todeta asettamalla vastaoletus *: Jokin konjunkteista saa to-tuusarvon V, ts. sen kaikki literaalit ovat joukossa ~Y1,…,~Yk (siis "vää-riä"). * Tässäkin vastaoletus (eli "metakielen" RAA) on tehokkaampi kuin suora todistus!

Page 17: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

14

Näytetään, että vastaoletuksesta seuraa ristiriita. Valitaan pienin sellainenindeksin arvo j, että jonkin konjunktin, sanotaan C:n, kaikki literaalit ovatjoukossa ~Y1,…,~Yj. Silloin Yj = ~Xj (muutoin eo. Yj:n määrittely ei toteu-du). Koska j on pienin mahdollinen, ~Yj (eli Xj) esiintyy C:ssä. EdelleenYj:n määrittelyn nojalla on toinen konjunkti, sanotaan C', jonka kaikkilite-raalit ovat joukossa ~Y1,…,~Yj-1,~Xj (eli joukossa ~Y1,…,~Yj-1,Yj). NytYj (eli ~Xj) esiintyy C':ssa, muuten sen kaikki literaalit olisivat jo joukossa~Y1,…,~Yj-1 ja j ei olisikaan pienin mahdollinen. Kun sovelletaan RS:äC:hen ja C':uun, saadaan konjunkti C", jossa esiintyvät literaalit ovat jou-kossa ~Y1,…,~Yj-1. (Huomaa, että j > 2, sillä muuten C = Xj ja C' = ~Xj ja Vvoitaisiin päätellä.) Nyt C" on myös tarkasteltujen konjunktien joukossa,

(sillä j on pienin mahdollinen).

Resoluutioperiaatetta käyttäen voidaan näin ollen suorittaa kaikki päätte- lyt . Käytännössä päättelyn ollessa mahdollista, niiden konjunktien valinta,joihin RS:ä sovelletaan, on suoritettava "harkiten". (Asiaan palataan seuraa-vassa luvussa.)

Usein merkitään V = ∞ ja puhutaan tyhjästä konjunktista.

9. Aksiomatisointi

Tautologiat ovat yleispäteviä loogisia totuuksia, ts. lauselogiikan teoreemo-ja. Teorian aksiomatisoinnilla tarkoitetaan menettelyä, jossa tietyistä ak -siomista voidaan sovittu(j)a päättelysääntö(j)ä käyttäen johtaa kaikki teo-rian teoreemat (tai ainakin "kyllin suuri osa" niistä).

Lauselogiikan aksiomat ovat luonnollisesti tautologioita. Aksiomien valinto-ja tunnetaan lukuisia. Eräs valintakriteeri on "taloudellisuus": "turhia" ak-siomia, ts. sellaisia, jotka voidaan johtaa muista aksiomista, ei oteta mu-kaan. "Taloudellinen" aksiomasysteemi voi kuitenkin olla vaikeakäyttöi-nen. "Turhia" aksiomia otetaankin joskus mukaan teoreemojen johtojenhelpottamiseksi.

Eräs lauselogiikan aksiomatisointi

Annetaan ensin ns. aksiomakaaviot (kolme kpl):

( I ) P → (Q→P)

( I I ) (P → (Q→R)) → ((P→Q) → (P→R))

(III) (~Q→~P) → (P→Q)

Page 18: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

15

Varsinaiset aksiomat (äärettömän monta) saadaan sijoittamalla aksioma-kaavioissa esiintyvien symbolien P, Q ja R paikalle kaikilla mahdollisilla ta- voilla kulloinkin käsillä olevista atomeista muodostetut lausekkeet. Huom!Jos kaaviossa esiintyy sama symboli monta kertaa, on sen paikalle sijoitet-tava joka kohtaan sama lauseke.

Koska aksiomakaaviot ovat tautologioita, ovat myös kaikki aksiomat tauto-logioita. Päättelysääntönä on MP, ts. "tyypillinen" johdon askel on

A , A→B|- B.

Huom! Syntaktisen johdon merkkinä käytetään merkkiä |- , (semantti-sen) päättelyn merkkinä merkkiä |= .*

Aksiomakaavioissa esiintyy vain loogisia operaatioita ~ ja →. Näillä tultai-siin toimeen sellaisenaankin, sillä

A∨ B = ~A→B,

A∧ B = ~(A→~B)ja

A↔B = (A→B) ∧ (B→A).

Teoreeman (siis tautologian) (syntaktista) johtoa kutsutaan teoreeman to-distukseksi. Voidaan osoittaa, että eo. aksiomista lähtien voidaan johtaatarkalleen kaikki tautologiat. (Selvästi ei muita kuin tautologioita voidajohtaa: Jos A ja A→B ovat tautologioita, niin samoin on B.)

Jos A on aksiomien joukko, josta teoreema B voidaan johtaa, merkitään

A|- B

(tai vain |- B, jos A on sovittu). Lauselogiikassa |- B merkitsee, että B ontautologia eli samaa kuin |= B.

* Joissain kirjoissa nämä ovat tosin vaihtaneet paikkaa!

Page 19: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

16

II 1. KERTALUVUN PREDIKAATTILOGIIKKA

1. Yleistä

Lauselogiikan propositiot (lausekkeet) ovat totuusarvomielessä atomiensafunktioita, ns. Boolen funktioita . Atomien totuusarvon määrittelyalue ontietysti T,V. Yleisemmin voitaisiin ottaa käyttöön yksi tai useampiamuuttujia eli parametreja x,y,z,… , joiden määrittelyalueillaan saamista ar-voista "lausekkeen" P(x,y,z,…) totuusarvo riippuu. Tällaisia "lausekkeita"kutsutaan (muuttujiensa) predikaateiksi. Koska predikaatit ovat totuusar-voisia, niitä voidaan yhdistellä ja muokata tavalliseen tapaan lauselogiikanoperaatioin.

Tapa, jolla predikaatti määritellään, riippuu usein sen muuttujien määrit-telyalueista. Esimerkiksi, jos muuttujien määrittelyalue on reaalilukujenjoukko Ä, voidaan predikaattien määrittelyssä käyttää tuttuja operaatioita,funktioita ja relaatioita +, -, ˘, /, ¢, =, > , jne..

Huom! Muuttujien määrittelyalueet voivat olla varsin mielivaltaisia. Kui-tenkaan muuttujien arvot eivät saa olla joukkoja, jos ko. joukon alkioita onjonkin (toisen) muuttujan määrittelyalueessa. Muuttujien arvot eivätmyöskään saa olla funktioita tai predikaatteja, jos näillä on yhteisiämuuttujia jonkin predikaatin kanssa. Muussa tapauksessa kyseessä onkorkeamman kuin 1. kertaluvun logiikka, jollaisia ei tässä kurssissa käsi-tellä.

2. Kvanttorit

Universaalikvanttori eli kaikkikvanttori ∀

Se, että predikaatti P(x) on tosi kaikilla x:n määrittelyalueen arvoilla, il-maistaan predikaattilogiikassa käyttäen kaikkikvanttoria ∀ :

(∀ x)P(x).

Tulos voidaan tulkita propositioksi, joka on tosi tarkalleen silloin, kunP(x) on tosi kaikilla x:n arvoilla.

Jos predikaatissa on x:n lisäksi muitakin muuttujia y,z,… , voidaan myöskirjoittaa

(∀ x)P(x,y,z,…).

Tulos ei ole nyt propositio, vaan muuttujien y,z,… predikaatti.

Page 20: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

17

Eksistentiaalikvanttori eli olemassaolokvanttori ∃

Se, että predikaatti P(x) on tosi jollakin x:n määrittelyalueen arvolla, il-maistaan olemassaolokvanttorin ∃ avulla:

(∃ x)P(x).

Jälleen tulos voidaan tulkita propositioksi, joka on tosi tarkalleen silloin,kun P(x) on tosi ainakin yhdellä x:n arvolla.

Huom! (∃ x)P(x) on siis tosi myös, jos P(x) toteutuu useammallakin x:n ar-

volla kuin vain yhdellä. Erityisesti, jos (∀ x)P(x), niin myös (∃ x)P(x). Joshalutaan ilmaista, että P(x) on tosi tarkalleen yhdellä x:n arvolla, kirjoite-taan (∃ |x) P(x).

Muotoa

(∀ x)P(x,y,z,…) tai (∃ x)P(x,y,z,…)

olevissa ilmaisuissa muuttujan x sanotaan olevan sidottu ja muuttujieny,z,… sanotaan olevan vapaita. Sidottu muuttuja voidaan aina vaihtaatoiseksi, kunhan määrittelyalue pysyy samana: esimerkiksi propositiot

(∀ x)P(x) ja (∀ t)P(t)

ovat samat, samoin predikaatit

(∃ x)P(x,y,z,…) ja (∃ t)P(t,y,z,…),

olettaen, että x:n ja t:n määrittelyalueet ovat samat. Mutkikkaammissa il-maisuissa sama muuttuja voi esiintyä sekä sidottuna että vapaana, esimer-kiksi ilmaisussa

((∃ x)P(x,y,z)) ∨ Q(x,y)

x esiintyy sekä vapaana että sidottuna (y ja z esiintyvät vain vapaina). Täl-laisessa tapauksessa sidottu muuttujan esiintymä voidaan tarvittaessa kor-vata uuden muuttujan sidotulla esiintymällä, esimerkiksi yo. ilmaisu voi-taisiin korvata ilmaisulla

((∃ t)P(t,y,z)) ∨ Q(x,y),

jälleen olettaen, että x:n ja t:n määrittelyalueet ovat samat. Itse asiassavoi-taisiin olettaa, ettei ilmaisuissa esiinny samaa muuttujaa sekä sidottunaet-tä vapaana. Näin ei kuitenkaan aina tehdä.

Page 21: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

18

Kvanttorien käyttöön voidaan liittää seuraava väljä nyrkkisääntö: Kaikki-kvanttori liittyy yleensä implikaatioon (tai disjunktioon) ja olemassaolo-kvanttori konjunktioon, ts. esimerkiksi ilmaisut

(∀ x)(P(x,y) → Q(x,y)) (eli (∀ x)(~P(x,y) ∨ Q(x,y)) )ja

(∃ x)(P(x,y) ∧ Q(x,y))

sekä muut niiden kaltaiset ilmaisut ovat "tyypillisiä".

3. Predikaattikalkyyliä

Väljästi sanoen predikaattikalkyyli tarkoittaa sellaisten ilmaisujen manipu-laatiota ja tarkastelua, joissa esiintyy predikaatteja (sekä näiden yhteydes-sä funktioita, ks. s. 16), propositioita, kvanttoreita ja lauselogiikan operaa-tioita.

Kvanttorien yhdistelmät

Välittömästi toisiaan seuraavien samantyyppisten kvanttorien järjestys onyhdentekevä, ts. esimerkiksi

(∀ x)((∀ y)P(x,y,z)) ja (∀ y)((∀ x)P(x,y,z))

ovat samat, samoin

(∃ x)((∃ y)P(x,y,z)) ja (∃ y)((∃ x)P(x,y,z)).

Peräkkäisten erityyppisten kvanttorien järjestys sen sijaan ei oleyhdente-kevä. Esimerkiksi

(∀ x)((∃ y)P(x,y,z)) ja (∃ y)((∀ x)P(x,y,z))

eivät yleensä ole samat.

Peräkkäiset kvanttorit kirjoitetaan usein yhteen tai ilman sulkeita, siisesimerkiksi

(∀ x,y)P(x,y,z) ja (∃ y)(∀ x)P(x,y,z).

Koska sidottuja muuttujia saa vaihtaa, voidaan tarvittaessa olettaa, että jo-kaisella kvanttorilla on oma sidottu muuttujansa ja että mikään näistä si-dotuista muuttujista ei esiinny samassa ilmaisussa vapaana.

Page 22: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

19

Kvantifioitujen lausekkeiden negeeraus

Kvantifioiduille lausekkeille pätevät yleistetyt de Morganin lait:

~((∀ x)P(x,y,z,…)) = (∃ x)(~P(x,y,z,…)) ~((∃ x)P(x,y,z,…)) = (∀ x)(~P(x,y,z,…))

Nämä kaavat ovat tosiaan de Morganin lakien yleistyksiä: Jos nimittäinx:nmäärittelyalue on esimerkiksi 1,…,n, niin

(∀ x)P(x) = P(1) ∧ ˘˘˘∧ P(n)ja

~((∀ x)P(x)) = ~(P(1) ∧ ˘˘˘∧ P(n))

de Morgan

= ~P(1) ∨ ˘˘˘∨ ~P(n)

= (∃ x)(~P(x)).

Huom! Sulkeita jätetään usein pois ja kirjoitetaan esim. ~(∀ x)P(x,y,z,…) =

(∃ x)~P(x,y,z,…).

Syntaksi

BNF-notaatiota käyttäen saadaan määriteltyä syntaktisesti oikeat lausek-keet seuraavasti:

⟨vakio⟩ ::= ⟨symboli⟩

⟨muuttuja⟩ ::= ⟨symboli⟩

⟨funktio⟩ ::= ⟨symboli⟩

⟨predikaatti⟩ ::= ⟨symboli⟩

⟨termi⟩ ::= ⟨vakio⟩ ⟨ muuttuja⟩ ⟨ funktio⟩(⟨termiluettelo⟩)

⟨termiluettelo⟩ ::= ⟨termi⟩ ⟨ termi⟩ ,⟨termiluettelo⟩

⟨atomi⟩ ::= ⟨predikaatti⟩ ⟨predikaatti⟩ (⟨termiluettelo⟩ )

⟨literaali⟩ ::= ⟨atomi⟩ ~⟨atomi⟩

⟨operaatio⟩ ::= ∧ ∨ → ↔

Page 23: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

20

⟨muuttujaluettelo⟩ ::= ⟨muuttuja⟩ ⟨ muuttuja⟩,⟨muuttujaluettelo⟩

⟨kvanttori⟩ ::= (∀⟨ muuttujaluettelo⟩) (∃⟨ muuttujaluettelo⟩)

⟨lauseke⟩ ::= ⟨literaali⟩ ~(⟨lauseke⟩) ⟨kvanttori⟩(⟨lauseke⟩)

(⟨ lauseke⟩ )⟨operaatio⟩ (⟨ lauseke⟩ )

(Huomaa, miten tämä syntaksi tuottaa "liikaa" sulkeita.) Näin määritellytlausekkeet ovat ns. hyvin muodostetut lausekkeet (WFF = "well-formedformula").

Vakioita, muuttujia, funktioita ja predikaatteja merkitseviä symboleja vara-taan käyttöön tarpeen mukaan. Usein ne ovat "tuttuja":

• vakioita: c, 0, 1, 2, π, ...• muuttujia: x, y, z, …• funktioita: f, g, sin, exp, ¢, +, -, ˘, /, …• predikaatteja: P, Q, =, > , …

Semanttisesti tulee mukaan lisävaatimuksia:

• Vakioilla on oltava tietyt sovitut arvot.• Muuttujien määrittelyalueet on sovittava.• Kullakin funktiolla on oltava aina sama määrä muuttujapaikkoja ja

sen on oltava määritelty muuttujiensa määrittelyalueilla.• Kullakin predikaatilla on oltava aina sama määrä muuttujapaikko-

ja ja sen on oltava määritelty muuttujiensa määrittelyalueilla.

Huom! Syntaksissa määritellyn prefiksinotaation sijasta käytetään useintuttua infiksinotaatiota , esimerkiksi x+y eikä +(x,y) tai x=y eikä =(x,y).Varsinainen infiksinotaatiota käyttävä syntaksi määritellään formaalisestihieman eri tavalla.

Huom! Syntaksi sallii myös "puhtaat propositiot": ne ovat predikaatteja,joilla on nolla kpl muuttujia. Merkinnän P() sijasta käytetään merkintääP.

Huom! Semanttisesti muuttujan x määrittelyalueen A alijoukot voidaansamaistaa tiettyihin predikaatteihin P(x): Joukko B ⊆ A samaistetaanpredikaattiin

P(x) = T, jos x ∈ B

V, jos x ∉ B.

Page 24: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

21

4. Ekvivalenssi

Predikaatit P(x,y,z,…) ja Q(x,y,z,…) ovat ekvivalentit, jos

(∀ x,y,z,…)(P(x,y,z,…) ↔ Q(x,y,z,…))

on tosi. Lauselogiikassa lausekkeiden ekvivalenssi voidaan aina todistaalaskulaeilla, päättelyllä, aksiomatisoinnilla tai totuustauluilla. Predikaatti-logiikassa ekvivalenssi on algoritmisesti ratkeamaton (ks. 73117 Auto-maattiteoria).

Semanttisesti tulee mukaan lisäksi se, että eri predikaatteja ja funktioitakäyttäen voidaan ilmaista ekvivalentteja asioita. Syntaktisesti ei tällaistaekvivalenssia voida yleisesti ottaen todistaa.

Näin ollen mitään laskulakikokoelmaa (vrt. pykälä I.2) ei predikaattilogii-kassa ole algoritmisesti käytettävissä, paitsi tietysti lauselogiikan operaa-tioiden osalta.

5. Päättely

Predikaattilogiikan päättelytehtävä on sama kuin lauselogiikassa: Selvitet-tävä onko päättely

"Jos lausekkeet A1,...,An ovat tosia, niin myös lauseke B on tosi."

oikea, merkitään A1,…,An |= B. Huomaa, että premissien A1,…,An totuusriippuu niissä esiintyvien vapaiden muuttujien arvoista ja samoja muuttujiavoi olla vapaina myös B:ssä; sama koskee predikaatteja, vakioita ja funk-tioita.

RAA on voimassa myös predikaattilogiikan päättelyssä. Näin ollen voidaanrajoittua muotoa

A1,…,An |= V

oleviin päättelyihin (ks. pykälät I.7-8).

LAUSE 5. Jos lausekkeissa A1,…,An esiintyvät vapaat muuttujat ovatx1,…,xk, niin päättelyt

A1,…,An |= Vja

(∃ x1,…,xk )(A1 ∧ ˘˘˘∧ An) |= V

ovat ekvivalentit.

Page 25: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

22

Todistus . A1,…,An |= V

⇔ A1,…,An eivät ole yhtaikaa tosia milläänmuuttujien

x1,…,xk arvoilla.

⇔ (∀ x1,…,xk)(~A1 ∨ ˘˘˘∨ ~An) on tosi.

de Morgan

⇔ (∃ x1,…,xk)(A1 ∧ ˘˘˘∧ An) on väärä.

⇔ (∃ x1,…,xk)(A1 ∧ ˘˘˘∧ An) |= V

Näin ollen voitaisiin olettaa, että premisseissä ei ole vapaita muuttujia.Toisaalta näin on usein jo alunperin. Jatkossa oletetaankin , että vapaita muuttujia ei päättelyssä esiinny .

Kätevä päättelyn apuneuvo, erityisesti resoluutiomenetelmää sovellettaes-sa, on ilmeinen

sijoitussääntö (SS): Jos t on termi, jossa esiintyy vain muuttujia x1,…, xk ja jonka arvot ovat muuttujan xi määrittelyalu- eessa, niin

(∀ x1,…,xk)P(x1,…,xk) |= (∀ x1,…,xk) P(x1,…,xi-1,t,xi+1,…,xk)

(ks. termin syntaktinen määritelmä s.19).

Usein sijoitettava termi on vakio, jonka on tällöin oltava xi:n määrittely-alueessa.

Sijoitussäännön vaatima premissin muoto ei ole kovinkaan vaativa, kutennähdään seuraavassa pykälässä.

6. Normaalimuoto

Jatkamalla sivun 19 BNF-syntaksia säännöillä

⟨normaalimuoto⟩ ::= ⟨CNF⟩ ⟨kvanttori⟩(⟨normaalimuoto⟩)

⟨CNF⟩ ::= (⟨konjunkti⟩ ) (⟨konjunkti⟩ )∧⟨ CNF⟩

⟨konjunkti⟩ ::= ⟨literaali⟩ ⟨literaali⟩∨⟨ konjunkti⟩

Page 26: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

23

saadaan syntaktinen määritelmä ns. prenex-normaalimuodolle. Lauseke onprenex-normaalimuodossa, jos kaikki sen kvanttorit ovat lausekkeenedessä ja loppuosa on konjunktiivisessa normaalimuodossa.

Prenex-normaalimuotoinen lauseke on edelleen ns. Skolemin normaali-muodossa, jos siinä olemassaolokvanttorit edeltävät kaikkikvanttoreita, ts.lauseke on (muuttujien järjestystä ehkä lukuunottamatta) muotoa

(∃ x1)˘˘˘(∃ xm)(∀ xm+1)˘˘˘(∀ xk)P(x1,…,xk),

missä P(x1,…,xk) ei sisällä kvanttoreita. (Tapauksilla m=0 ja m=k on il-meiset tulkinnat.) Voidaan osoittaa, että jokainen lauseke voidaan korvata(vieläpä algoritmisesti!) ekvivalentilla Skolemin normaalimuodossa oleval-la lausekkeella.

Muotoa A1,…,An |= V eli A1 ∧ ˘˘˘∧ An |= V, missä premisseissä ei ole vapaita

muuttujia, olevaa päättelyä ajatellen voidaan A1 ∧ ˘˘˘∧ An korvata eräällä (eivälttämättä ekvivalentilla!) Skolemin normaalimuodossa olevalla lausek-keella B, kunhan

(* ) B toteutuu ⇔ A1 ∧ ˘˘˘∧ An toteutuu.

B:n toteutuminen tarkoittaa sitä, että siinä esiintyvien vakioiden arvot voi-daan valita ja predikaatit sekä funktiot määritellä siten, että B on tosi (va-paita muuttujiahan B:ssä ei ole); vastaavasti A1 ∧ ˘˘˘∧ An:n toteutuminen.

Huomaa, ettei tällöin (* ) merkitse B:n ja A1 ∧ ˘˘˘∧ An:n ekvivalenttisuutta.

Tällainen lauseke B saadaan seuraavalla menettelyllä, ns. Skolemin muun-noksella (engl. Skolemization):

1 ) Poistetaan ekvivalenssit : P↔Q korvataan (P→Q)∧ (Q→P):llä.

2 ) Poistetaan implikaatiot : P→Q korvataan ~P∨ Q:lla.

3 ) Siirretään negeeraus lausekkeen " sisään " (yleistetyillä) de Mor-ganin laeilla.

4 ) Poistetaan peräkkäiset negeeraukset komplementäärisyyslailla.

5 ) Poistetaan olemassaolokvanttorit : Jos kvantifiointi (∃ x) ei oleminkään kaikkikvanttorin vaikutusalueella, korvataan x ns. Sko-lemin vakiolla a jokaisessa esiintymässään ja kvantifiointi (∃ x )sulkeineen poistetaan. Skolemin vakio ei saa olla lausekkeessaennestään esiintyvä vakio. Aina kun poistetaan eo. tavalla ole-massaolokvanttori, pitää valita uusi Skolemin vakio. Skoleminvakio on määräämätön vakio, joka "edustaa" sellaista x:n arvoa,jolle tarkasteltava lausekkeen osa on tosi. Jos taas kvantifiointi(∃ x) on yhden tai useamman kaikkivanttorin vaikutusalueella, sa-

Page 27: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

24

notaan kaikkikvanttorien (∀ y1),…,(∀ yk) vaikutusalueilla, tulisiSkolemin vakio riippumaan muuttujien y1,…,yk arvoista, ts. seolisi näiden funktio. Tällöin x:n paikalle kirjoitetaan jokaisessaesiintymässä ns. Skolemin funktio f(y1,…,yk) ja kvantifiointi (∃ x )sulkeineen poistetaan. Skolemin funktio ei saa olla mikään lau-sekkeessa aikaisemmin esiintyvä funktio. Jokaista olemassaolo-kvanttorin tällaista poistoa varten tarvitaan uusi Skolemin funk-tio. Skolemin funktio on määräämätön funktio, joka "antaa" ku-takin muuttujien y1,…,yk arvoyhdelmää kohti sellaisen x:n arvon,jolla kyseinen lausekkeen osa toteutuu. Huom! Skolemin vakiot jafunktiot ovat formaalisesti vain uusia vakio- ja funktiosymboleja.Ne eivät saa olla sellaisia, joiden semanttinen merkitys on jo so-vittu (esimerkiksi 1, π, sin, ¢).

6 ) Korvataan tarvittaessa jäljelle jääneitä sidottuja muuttujia uusilla,niin ettei sama muuttuja esiinny eri kvantifioinneissa.

7 ) Siirretään kaikkikvanttorit lausekkeen alkuun .

8 ) Kaikkikvanttorien jälkeen tuleva lausekkeen osa on nyt literaa-leista, suluista ja propositiologiikan operaatioista ∧ ja ∨ muodos-tuva lauseke. Saatetaan se konjunktiiviseen normaalimuotoon sa(ks. pykälä I.3).

Sovellettaessa Skolemin muunnosta lausekkeeseen, jossa ei ole vapaitamuuttujia (kuten voimme olettaa, ks. s. 22), saadaan tuloksena lauseke,

a ) jossa ei myöskään ole vapaita muuttujia,

b ) jossa esiintyy vain kaikkikvanttoreita eikä lainkaan olemassaolo-kvanttoreita,

c ) jonka kaikki kaikkikvanttorit sitovat eri muuttujia ja ovat lausek-keen edessä (jolloin ne voidaan yhdistää yhdeksi kvantifioinnik-si, ks. s. 18) ja

d) jossa lausekkeen loppuosa on konjunktiivisessa normaalimuodos-sa.

LAUSE 6. Jos lauseke B saadaan Skolemin muunnoksella lausekkeesta A,niin B on toteutuva tarkalleen, kun A on toteutuva. ( Huom! Jotta B saatai-siin toteutumaan, on erityisesti siinä esiintyville Skolemin vakioille annet-tava arvot ja esiintyvät Skolemin funktiot on määriteltävä. A:ssa näitä va-kioita ja funktioita ei ole.)

Todistus . ⇐ Oletetaan, että A on toteutuva. Silloin A:n vakioille on an-

nettu sellaiset arvot ja A:n predikaatit sekä funktiot on määritelty siten,että A saadaan todeksi. Otetaan samat arvot ja määrittelyt käyttöön B:npredikaateille sekä muille vakioille ja funktioille kuin sen Skolemin vaki-oille ja Skolemin funktioille. Edelleen A:n olemassaolokvantifioinnit anta-

Page 28: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

25

vat tällöin vastaaville A:n sidotuille muuttujille arvot. Otetaan nämä käyt-töön B:n Skolemin vakioiden arvotuksessa ja sen Skolemin funktioidenmäärittelyssä. Näin nähdään, että B saadaan todeksi, sillä Skoleminmuunnoksen operaatiot 1-4) ja 6-8) säilyttävät toteutumisen*.

⇒ Oletetaan, että B toteutuu. Olkoon C lauseke, joka on saatu A:sta ope-

raatioiden 1-4) jälkeen, ja D lauseke, joka on saatu C:stä operaation 5) jäl-keen. Koska operaatiot 6-8) säilyttävät toteutumisen myös käänteisinä* ,myös D toteutuu. Skolemin vakioiden arvoista ja Skolemin funktioidenmäärittelyistä saadaan nyt C:n olemassaolokvantifioiduille muuttujille ar-vot, joilla C toteutuu. Operaatiot 1-4) säilyttävät myös toteutumisen kään-teisinäkin, joten A toteutuu.

Huom! Yo. todistus osoittaa, että B→A on aina tosi. Toisaalta A→B ei vält-tämättä ole tosi: Koska A:ssa ei esiinny Skolemin vakioita eikä Skoleminfunktioita, niin näille voidaan valita sellaiset arvot ja määritelmät, että Bei ole tosi, vaikka A sitä olisikin. Yleisesti ekvivalenssi A↔B ei siis päde.

SEURAUS. Jos lauseke B saadaan Skolemin muunnoksella lausekkeesta A,niin päättelyt A |= V ja B |= V ovat ekvivalentit.

Todistus . A|= V

⇔ A ei toteudu.

Lause 6

⇔ B ei toteudu.

⇔ B|= V

Näin ollen voidaan rajoittua päättelyissä lausekkeisiin, jotka ovat Skole-min muunnoksen antamaa muotoa.

7. Resoluutio

Kuten edellisissä pykälissä näytetty, voidaan rajoittua muotoa A|= V ole-viin päättelyihin, missä A on Skolemin muunnoksen antamaa muotoa eikäsisällä vapaita muuttujia. Tällöin A on muotoa

(∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm),

* 7):n osalta tämä ei ole aivan helppo nähdä. Idea selvinnee esimerkin avulla.

Page 29: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

26

missä konjunktit C1,…,Cm eivät sisällä kvanttoreita. Ilmeisesti A ja

((∀ x1,…,xk)C1) ∧ ˘˘˘∧ ((∀ x1,…,xk)Cm)

ovat ekvivalentit, joten voidaan siirtyä muotoa

(∀ x1,…,xk)C1 ,…, (∀ x1,…,xk)Cm |= V

oleviin päättelyihin. Silloin

1 ) kuhunkin premissiin (∀ x1,…,xk)Ci voidaan soveltaa sijoitussään-töä (ks. s. 22) ja,

2 ) jos kahdessa konjunktissa Ci ja Cj esiintyy sama atomi, toisessanegeerattuna ja toisessa sellaisenaan, voidaan soveltaa resoluutio-sääntöä.

Resoluutiosääntö tulee nyt käyttöön muodossa

"Jos (∀ x1,…,xk)(P(x1,…,xk) ∨ Q(x1,…,xk)) on tosi

ja (∀ x1,…,xk)(R(x1,…,xk) ∨ ~Q(x1,…,xk)) on tosi,

niin myös (∀ x1,…,xk)(P(x1,…,xk) ∨ R(x1,…,xk))on tosi."

Ideana on luoda sijoitussäännöllä tilanteita, joihin RS soveltuu, muutoinresoluutiomenettely on samanlainen kuin pykälässä I.8. Valitettavasti pre-dikaattilogiikassa resoluutiomenettely ei aina johda tulokseen, sillä se voijohtaa päättymättömään päättelyketjuun, toisin kuin propositiologiikassa.Predikaattilogiikassahan päättely on yleisesti ottaen algoritmisesti ratkea-maton tehtävä. Käytännössä voidaan kuitenkin rajoittua päättelytilantei-siin, joista resoluutiomenettely selviytyy sopivin apuneuvoin ja "nyrkki-säännöin". Tärkein näistä apuneuvoista on ns. yhdennys eli unifikaatio, jo-ta käyttäen löytyvät resoluutiomenettelyn soveltamiseksi tarvittavat sijoi-tukset.

Yhdennys

Jos kahdessa konjunktissa C ja C' (voivat olla samakin) esiintyvät muotoaP(˘˘˘) ja ~P(---) (tai P(---)) olevat literaalit, missä ˘˘˘ ja --- eivät ole valmiik-si samat, niin pyritään saamaan ne samoiksi sopivalla sijoitusketjulla

t1/xi1 , t2/xi2 ,…, tm/xim ,

missä termi tj sijoitetaan muuttujan xij paikalle. Samalla syntyy konjunkti-jono

C , C' , D1 ,…, Dm ,

missä Dj saadaan sijoituksella tj/xij jostakin sitä jonossa edeltävästä kon-junktista. Lopulta Dm:ssä ja jossakin sitä jonossa edeltävässä konjunktissa

Page 30: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

27

atomit P(˘˘˘) ja P(---) ovat muuntuneet samoiksi ja resoluutiota voidaan so-veltaa. Yhdennyksellä voidaan myös saada idempotenssilaki käyttöön janäin vähentää literaaleja konjunkteissa.

Mikäli konjunkteissa C ja C' esiintyvät muuttujat ovat x1,…,xk, voidaan yo.sijoitusten ketju ajatella yhtenä, ts. muuttujien x1,…,xk paikalle sijoitetaankummassakin konjunktissa yhtaikaa tietyt termit, molemmille omansa.(Erityisesti voidaan muuttujan paikalle sijoittaa terminä se itse.) Tämä onns. P(˘˘˘):n ja P(---):n yhdentäjä. Voidaan osoittaa, että jos P(˘˘˘) ja P(---)yleensä ottaen voidaan yhdentää, niin niille on olemassa ns. yleisin yh-dentäjä, ts. yhdentäjä, josta kaikki muut P(˘˘˘):n ja P(---):n yhdentäjätsaadaan sijoituksella (ks. ROBINSON tai RICHARDS).

Heuristiikkaa

1 ) Pyritään soveltamaan resoluutiosääntöä yksiliteraalisiin konjunk-teihin, sillä tällöin saadaan tuloksena "lyhyempiä" konjunkteja.

2 ) Usein lähtötietoina annetaan yleisiä kulloiseenkiin tilanteeseen liittyviä periaatteita eli ns. aksiomia (tietysti predikaattilogiikanlausekkeina) ja ratkaistavaan tehtävään liittyviä erityistietoja, se-kä tietysti itse tehtävä. Päättelyssä on käytettävä eo. erityistieto-ja sekä tehtävän määrittelyä, ei pelkkiä aksiomia. Muussa ta-pauksessa resoluutiomenettely tuottaa vain tilanteeseen liittyviäyleisiä totuuksia, joiden joukossa V ei varmaankaan ole.

3 ) Pyritään valitsemaan resoluutiota varten "vähän esiintyviä" lite-raaleja, koska valinnan varaa on näiden osalta vähän, jos ollen-kaan.

4 ) Toistuvissa päättelytilanteissa valiutuvat usein jotkin aksiomat jasijoitukset, samoin tietynlaiset päättelyketjun osat. Näistä voi-daan kerätä tietoa, jota voidaan käyttää apuna.

5 ) Jos ei ole tarkkaa kuvaa siitä mitä "reittiä" päättelyketju on no-peimmin toteutettavissa, on syytä käyttää varovaisuussyistä mah-dollisimman yleisiä yhdentäjiä.

8. Päättelyn anatomiaa. Herbrandin universumi

Edellä käsitelty päättely on puhtaan symbolista. Mitään semanttista tietoamuuttujien määrittelyalueista, vakioiden aiotuista arvoista, funktioiden japredikaattien määrittelyistä tms. ei käytetä. Jos tällaista tietoa halutaankäyttää, on se ilmaistava premisseissä, ts. tilanteeseen liittyvinä aksiomi-na.

Näin ollen, jos resoluutiomenettely toteaa päättelyn A1,…,An |= B oikeak -si , se on sitä kaikissa semanttisissa tilanteissa . Toisaalta, vaikka päättely

Page 31: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

28

olisikin yleisesti ottaen väärä, se voi olla oikea tietyissä semanttisissa ti-lanteissa. Resoluutiomenettely ei voi tätä todeta, ellei ko. semanttista ti-lannetta ilmaista aksiomien kautta.

Jos päättely A1,…,An |= B on yleisesti (siis kaikissa semanttisissa tilanteis-sa) oikea, niin tämä on mahdollista todeta resoluutiota käyttäen. Kutenedellä on todettu, voidaan rajoittua muotoa

(∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm) |= V

oleviin päättelyihin, jossa ei ole vapaita muuttujia ja jossa konjunktit C1,…,Cm eivät sisällä kvantifiointeja. Näytetään tulos vain tapauksessa, jossakonjunktit C1,…,Cm eivät sisällä lainkaan funktiosymboleja (eivätkä siiserityisesti Skolemin funktioita). Menettely on seuraavanlainen:

1 ) Vakioiden arvot ovat aina jonkin muuttujan määrittelyalueessa(niiden muuttujien, joiden "paikalla" vakio esiintyy lausekkees-sa). Valitaan kullekin muuttujalle xi määrittelyalue A i seuraavas-ti:

a) Jos jotkin vakiot kuuluvat xi:n määrittelyalueeseen, niin Aimuodostuu näistä vakioista.

b) Jos mikään vakio ei kuulu xi:n määrittelyalueeseen, niin A i=ci, missä ci on uusi symboli.

Nämä määrittelyalueet Ai (i=1,…,k) muodostavat ns. Herbrandinuniversumin. Huomaa, että alueet Ai ovat äärellisiä.

2 ) Sijoitetaan nyt kaikilla mahdollisilla tavoilla muuttujien määritte-lyalueiden A i alkiot muuttujien paikoille konjunkteissa C1,…,Cm. Näin saadaan konjunktit C'1 ,…,C's , joissa ei esiinny lainkaanmuuttujia.

3 ) Annetaan konjunkteissa C'1 ,…,C's esiintyville atomeille jotkut to-tuusarvot. Nämä atomit ovat itse asiassa propositioita!

4 ) Jos konjunktit C'1 ,…,C's ovat näillä totuusarvoilla kaikki tosia, onlöydetty tilanne (Herbrandin universumi), jossa päättely

(∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm) |= V

on väärä. Näin ollen se ei voi olla yleisesti ottaen oikea. Lähtöti-lanne olikin siis väärä.

5 ) Jos taas kaikki konjunktit C'1 ,…,C's eivät ole näillä totuusarvoillatosia, annetaan niissä esiintyville atomeille jotkut toiset totuusar-vot ja palataan kohtaan 4).

6 ) Jatketaan kunnes kaikki konjunkteissa C'1 ,…,C's esiintyvien ato-mien totuusarvoyhdelmät on käyty läpi. Ellei menettely ole py-sähtynyt kohtaan 4), niin konjunktit C1,…,Cm eivät voi olla yhtai-

Page 32: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

29

kaa tosia Herbrandin universumissa. Silloin ne eivät voi olla yht-aikaa tosia missään semanttisessa tilanteessa. Muussa tapaukses-sa tällaisessa tilanteessa (∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm) olisi tosi ja käy-tetyistä predikaattien määrittelyistä saataisiin juuri sellaiset to-tuusarvot konjunktien C'1 ,…,C's atomeille, että esitetty prosessipysähtyisikin kohtaan 4).

Koska kyse itse asiassa on siitä, että propositiologiikan mielessä C'1 ,…,

C's |= V, voidaan päättelyn (∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm) |= V oikeellisuus toden-taa resoluutiomenettelyllä. Konjunktit C'1 ,…,C's saadaan nimittäin sijoi-tussäännöllä konjunkteista C1,…,Cm, arvon ci tilalla voidaan käyttää muut-tujaa xi itseään.

Yo. menettely on ns. Herbrandin algoritmi. Näin ollen muotoa

(∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm) |= V

olevien päättelyiden, joissa ei ole vapaita muuttujia ja joissa konjunktit C1,…,Cm eivät sisällä kvantifiointeja eivätkä funktioita, oikeellisuuden totea-minen on algoritmisesti ratkeava tehtävä. Predikaattilogiikan päättelyteh-tävän algoritminen ratkeamattomuus johtuukin nimenomaan funktiosym-boleista ja erityisesti Skolemin funktioista (eli kaikkikvanttorien vaikutus-alueiden sisäisistä olemassaolokvantifioinneista).

Jos konjunkteissa C1,…,Cm on funktioita, voidaan määritellä Herbrandinuniversumi, mutta se on jonkin verran mutkikkaampi kuin yllä oleva. Eri-tyisesti määrittelyalueet Ai voivat olla äärettömiä *. Tästä johtuen vastaavaHerbrandin algoritmi ei aina pysähdy (kuten yllä esitetty algoritmi pysäh-tyy kohdassa 4)), jos päättely (∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cm) |= V onkin väärä.Sen sijaan se pysähtyy, jos päättely on oikea, ja näyttää, että päättelyn oi-keellisuus voidaan myös todeta resoluutiolla. (Ks. RICHARDS tai ROBINSON.)

* Tämä johtuu siitä, että funktioiden arvot ovat muuttujien määrittelyalueissa. Jos

esimerkiksi funktion f(xi) arvot ovat muuttujan xi määrittelyalueessa ja samoinvakion a arvo on xi:n määrittelyalueessa, pitää Ai:ssä olla a, f(a), f(f(a)),f(f(f(a))),….

Page 33: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

30

9. Resoluutio Hornin konjunkteille. PROLOG

Hornin konjunkti on konjunkti, jossa on enintään yksi negeeraamaton li-teraali. Tästä seuraa välittömästi, että jos sovelletaan resoluutiosääntöäHornin konjunkteihin, tuloksena on jälleen Hornin konjunkti (tai ∞).

LAUSE 7. Muotoa A→B oleva propositiolauseke, missä A on mielivaltainenoperaatioita ∧ ja ∨ käyttäen atomeista muodostettu lauseke ja B on mieli-valtainen operaatiota ∧ käyttäen literaaleista muodostettu lauseke, voidaankirjoittaa konjunktiiviseen normaalimuotoon, jonka konjunktit ovat Hor-nin konjunkteja (HCNF ).

Todistus . Soveltamalla toistuvasti laskulakia

A→P∧ Q = (A→P)∧ (A→Q)

voidaan rajoittua tapaukseen, jossa B:ssä on vain yksi literaali, sanotaan Q.Kirjoitetaan A→Q muotoon ~A∨ Q ja viedään ~A konjunktiiviseen normaali-muotoon. Tässä normaalimuodossa on vain negeerattuja literaaleja (mik-si?). Lopuksi ositellaan Q sisään tähän CNF-lausekkeeseen, jolloin tuloson HCNF-lauseke.

Lauseessa mainittu HCNF-muoto saadaan aikaan myös seuraavalla tavalla.Voidaan rajoittua tapaukseen, jossa B:ssä on vain yksi literaali, sanotaan Q.Jos nyt A:ssakin on vain yksi atomi, sanotaan P, on asia selvä: P→Q =~P∨ Q. Muuten A on joko muotoa P∧ R tai P∨ R. Jos A on muotoa P∧ R,käytetään laskulakia

P∧ R→Q = P → (R→Q).

Jos nyt tiedetään, että muotoa P→S ja R→Q olevat lausekkeet, missä S onatomi, saadaan HCNF-muotoon, niin samoin saadaan P∧ R→Q. Ajattele vain,mitä tapahtuu, jos S:n tilalle kirjoitetaan R→Q:n HCNF. (Tässä S on sitäsisältävien Hornin konjunktien ainoa negeeraamaton atomi.) Jos taas A onmuotoa P∨ R, käytetäänkin laskulakia

P∨ R→Q = (P→Q)∧ (R→Q).

Mikäli nyt P→Q ja R→Q saadaan HCNF-muotoon, niin samoin ilmeisesti

saadaan P∨ R→Q. Toistetaan yo. menettelyä "atomitasolle" asti.

Huom! Lause pätee erityisesti, jos B=V, jolloin A→B = ~A, tai jos A=T, jol-

loin A→B = B.

Hornin CNF ei siis ole erityisen vaativa. Hornin konjunkti on positiivinen,jos siinä on tarkalleen yksi negeeraamaton literaali, ja negatiivinen, jos sii-nä ei ole negeeraamattomia literaaleja.

Resoluutiosäännön soveltaminen Hornin konjunkteihin on "rajatumpaa"kuin yleisesti, sillä negeeraamattomia literaaleja on vain yksi per konjunk-ti. Eräs menettely on suurinpiirtein esitettynä seuraava:

Page 34: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

31

(1) Etsi konjunktilistasta ensimmäinen konjunkti, sanotaan Ci, jos-sa on negeerattuja literaaleja, ja aseta C←Ci. Ellei tällaisia ole,päättely on väärä ja lopetetaan.

(2) Etsi C:n ensimmäinen negeerattu literaali ~P.

(3) Etsi konjunktilistasta ensimmäinen konjunkti, sanotaan Cj, jon-ka (ainoa) negeeraamaton literaali Q yhdentyy P:n kanssa. Elleitällaista ole, ota ~P:n tilalle seuraava C:n negeerattu literaali jayritä uudelleen, jne.. Ellei tämäkään onnistu, aseta C:ksi kon-junktilistassa ensimmäinen Ci:tä seuraava konjunkti, jossa on ne-geerattuja literaaleja ja palaa kohtaan (2). Jne..

(4) Ellei lopultakaan yhdennys onnistu, päättely on väärä ja lopete-taan. Muussa tapauksessa suoritetaan yhdennys heti, kun se onmahdollista, tehdään tarvittavat sijoitukset ja sovelletaan reso-luutiosääntöä. Tuloksena on uusi konjunkti C'.

(5) Jos C' on tyhjä, päättely on oikea ja lopetetaan. Jos taas C':ssaon negeerattuja literaaleja, lisätään se konjunktilistaan, asete-taan C←C' ja mennään kohtaan (2). Jäljelle jääneessä tapaukses-sa C':ssä on yksi literaali ja se on negeeraamaton. Tällöin lisä-tään C' konjunktilistaan ja palataan kohtaan (3), missä etsitäänkonjunktilistassa ensimmäinen Cj:tä seuraava konjunkti, jonka(ainoa) negeeraamaton literaali R yhdentyy P:n kanssa, jne..

Onnistuvien yhdennysmahdollisuuksien etsintä kannattaa pukea ns.depth-first-etsinnän muotoon, ks. 73119 Graafiteoria.

PROLOG

PROLOG on yleinen ohjelmointikieli, jonka toiminta perustuu resoluution,yhdennyksen ja depth-first-etsinnän tehokkaaseen käyttöön. PROLOG -oh- jelma on itse asiassa aksiomakokoelma (tietokanta) eli kokoelma loogisialausekkeita ja syöttö nä on ns. kysely eli eräs looginen lauseke. Jotta ohjel-ma toimisi nopeasti, on asetettava rajoituksia. Puhtaimmillaan ne merkit-sevät sitä, että PROLOG-ohjelma + kysely testaa Skolemin muunnoksen jäl-keen muotoa

(∀ x1,…,xk)(C1 ∧ ˘˘˘∧ Cn-1 ∧ Cn) |= V

olevan päättelyn oikeellisuuden, missä C1,…,Cn-1 ovat positiivisia Horninkonjunkteja ja Cn negatiivinen Hornin konjunkti. PROLOG ei itse tee Sko-lemin muunnosta, vaan se jää käyttäjän tehtäväksi. Toisaalta PROLOG eimyöskään ota tehtävää vastaan yo. muodossa. Sen sijaan se ottaa vastaankonjunktit C1,…,Cn-1 ohjelmanaan (tietokanta) ja ~Cn:n kyselynä. Itse asi-assa kysely on (∃ x1,…,xk)D, missä D saadaan, kun kirjoitetaan D = ~Cn javiedään negaatio konjunktin sisään. Koska Cn on negatiivinen Hornin

Page 35: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

32

konjunkti, ei D:ssä ole negeerattuja literaaleja. PROLOG tulostaa kaikki löy-tämänsä muuttujien x1,…,xn arvoyhdelmät, joille D on tosi, tai ilmoittaa,ettei sellaisia löytynyt.

Jos esimerkiksi annetaan "perheaksiomat"

C1: (∀ x,y)(Isä(x,y) → Mies(x))

C2: (∀ x,y,z)(Isä(x,y) ∧ Isä(x,z) → Sisarukset(y,z))

C3: (∀ x,y)(Sisarukset(x,y) ∧ Mies(x) → Veli(x,y))

C4: Isä(Jussi,Harri)

C5: Isä(Jussi,Simo)

(∃ y)Isä(Simo,y)

ja halutaan tietää, voidaanko näistä päätellä (∃ z)Veli(z,Harri), niin RAA:nja Skolemin muunnoksen jälkeen tehtävä on muodossa: onko

C1 ,…, C5 , Isä(Simo,Rauni) , (∀ z)~Veli(z,Harri) |= V ?

Tässä Rauni on Skolemin vakio (voi olla mies tai nainen). Vastaava PROLOG-ohjelma on

mies(X):-isa(X,Y).

sisarukset(Y,Z):-isa(X,Y),isa(X,Z).

veli(X,Y):-sisarukset(X,Y),mies(X).

isa(jussi,harri).

isa(jussi,simo).

isa(simo,rauni).

ja vastaava kysely on

?- veli(Z, harri).

PROLOG tulostaa:

Page 36: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

33

?- veli(Z, harri)

Nº1 Z=simo

No more solutions

Jos kysely onkin

?- sisarukset(X, Y).

saadaan tulostus

?- sisarukset(X, Y)

Nº1 X=harri,Y=harri

Nº2 X=harri,Y=simo

Nº3 X=simo,Y=harri

Nº4 X=simo,Y=simo

Nº5 X=rauni,Y=rauni

No more solutions

Haluttaessa PROLOG antaa tietoja käyttämästään päättelyketjusta. Edelli-nen yo. kyselyistä johtaa seuraavanlaiseen ketjuun, joka saadaan trace-ko-mennoilla:

…………

call veli(_835, harri)

…………

call sisarukset(_835, harri)

…………

call isa(_1576, _835)

exit isa(jussi, harri)

Page 37: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

34

…………

call isa(jussi, harri)

exit isa(jussi, harri)

exit sisarukset(harri, harri)

…………

call mies(harri)

…………

call isa(harri, _2208)

fail isa(harri, _2208)

fail mies(harri)

redo sisarukset(harri, harri)

redo isa(jussi, harri)

fail isa(jussi, harri)

redo isa(jussi, harri)

exit isa(jussi, simo)

…………

call isa(jussi, harri)

exit isa(jussi, harri)

exit sisarukset(simo, harri)

…………

call mies(simo)

…………

call isa(simo, _2208)

Page 38: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

35

exit isa(simo, rauni)

exit mies(simo)

exit veli(simo, harri)

redo veli(simo, harri)

redo mies(simo)

redo isa(simo, rauni)

fail isa(simo, _2208)

fail mies(simo)

redo sisarukset(simo, harri)

redo isa(jussi, harri)

fail isa(jussi, harri)

redo isa(jussi, simo)

exit isa(simo, rauni)

…………

call isa(simo, harri)

fail isa(simo, harri)

redo isa(simo, rauni)

fail isa(_1576, _835)

fail sisarukset(_835, harri)

fail veli(_835, harri)

Jokainen positiivinen Hornin konjunkti ~A1∨ ˘˘˘∨ ~Ak∨ Ak+1, missä A1,…,Ak+1 ovat atomeja, voidaan kirjoittaa muotoon

A1 ∧ ˘˘˘∧ Ak → Ak+1 ,

Page 39: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

36

kuten yllä onkin tehty. Edelleen ym. lauseke D on muotoa B1∧ ˘˘˘∧ Bm,

missä B1,…,Bm ovat atomeja. PROLOG-ohjelmat ja kyselyt voidaan näin ol-len kirjoittaa ilman negaatiota tai disjunktiota. PROLOGissa on toki operaa-tiot not ja or, mutta ne eivät ole samat kuin vastaavat loogiset operaatiot.Esimerkiksi not on itse asiassa ns. negaatio äärellisen tuloksettoman haun kautta , ts. jos PROLOG ei pysty päättelemään atomia A tietokannasta,niin se katsoo not(A):n oikeaksi. Jotta tämä not olisi sama kuin NOT,pitäisi tietokannan sisältää kaikki tieto tarkasteltavasta tilanteesta japäättelyn

tietokanta |= A

pätemättömyyden pitäisi olla PROLOGin selvitettävissä äärellisessä mää-rässä askelia, ns. äärellisen maailman * oletus . Koska näin ei aina ole, voinot-operaation käyttö johtaa virheelliseen tulokseen. Ks. RICHARDS taijokin PROLOGia käsittelevä kirja, esim. STERLING, L. & SHAPIRO, E.: The Artof Prolog. MIT Press (1986).

* "Maailma" tässä on oleellisesti Herbrandin universumi.

Page 40: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

III KOMBINATORIIKKAA

1. Kombinaatiot

n eri alkion eri järjestyksiä eli permutaatioita on n! = 1˘2˘3˘˘˘n kpl. (Sovi-taan, että 0! = 1 ja 1! = 1.)

n:stä alkiosta voidaan valita järjestyksessä k alkiota

n(n-1) ˘˘˘ (n-k+1) = n!

(n-k)!

eri tavalla, ns. k:n alkion variaatiot.

Ellei järjestystä oteta lukuun, voidaan n:stä alkiosta valita k alkiota

n!k!(n-k)!

merk.=

n

k

eri tavalla, ns. k:n alkion kombinaatiot.

n

k on ns. binomikerroin*.

Jos sallitaan, että sama joukon alkio voidaan valita (rajattoman) montakertaa, saadaan ns. toistovariaatiot ja toistokombinaatiot. k:n alkion toisto-variaatioita (n:stä alkiosta) on

n˘n ˘˘˘ n = nk

k kpl

kpl. (Sovitaan, että n0 = 1, erityisesti 00 = 1.)

Huom! Usein ajatellaan, että mainitut n alkiota muodostavat ns. aakkoston ja k:n alkion toistovariaatiot ovat ns. k:n pituisia sanoja . 0:n pituinen sanaon ns. tyhjä sana , joita on yksi. Ks. 73117 Automaattiteoria ja/tai 73118Formaaliset kielet.

LAUSE 8. k:n alkion toistokombinaatioita (n:stä alkiosta) on

n+k-1

k merk.

= ⟨nk ⟩

kpl (k > 1)**.

* Luetaan “n yli k:n”.** GRAHAM & KNUTH & PATASHNIK käyttää kulmasulkeita merkitsemään ns. Eule-

rin lukuja.

37

Page 41: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

Todistus . Voidaan ilmeisesti ajatella, että ko. alkiot ovat luvut 1,2,…,n. Josjaetaan toistokombinaatiot kahteen eri luokkaan sen mukaan onko muka-na luku 1 vaiko ei, saadaan yhtälö (rekursiokaava)

⟨nk ⟩ = ⟨ nk-1 ⟩ + ⟨n-1

k ⟩ ( k > 2, n > 2).

Tämä yhtälö määrittää ⟨nk ⟩:n täysin, kun annetaan ilmeiset “reunaehdot”

⟨n1 ⟩ = n ja ⟨1k ⟩ = 1.

Mutta

n+k-1

k toteuttaa sekä mainitun rekursiokaavan että annetut reu-

naehdot, joten se on ⟨nk ⟩. Yhtälö

n+k-1

k =

n+k-2

k-1 +

n+k-2

k

voidaan todeta suoraan laskien, mutta se on erikoistapaus eräästä seuraa-vassa pykälässä (s. 40) esitetystä binomiaali-identiteetistä.

Sovitaan, että ⟨n0 ⟩ = 1 (tämä on sopusoinnussa Lauseen 8 kanssa). Lauseen

todistuksessa tarvitun identiteetin

( 1 ) ⟨nk ⟩ = ⟨ nk-1 ⟩ + ⟨n-1

k ⟩

lisäksi ⟨nk ⟩ toteuttaa identiteetit

( 2 ) ⟨nk ⟩ = nk ⟨n+1

k-1 ⟩ ,

( 3 ) ⟨nk ⟩ = n+k-1

k ⟨ nk-1 ⟩ ja

( 4 ) ⟨n+1k ⟩ = ⟨n0 ⟩ + ⟨n1 ⟩ +˘˘˘+ ⟨nk ⟩ .

Identiteetit (2) ja (3) seuraavat Lauseesta 8 suoralla laskulla. (4) saadaan(1):stä soveltamalla sitä toistuvasti:

⟨n+1k ⟩ = ⟨n+1

k-1 ⟩ + ⟨nk ⟩= ⟨n+1

k-2 ⟩ + ⟨ nk-1 ⟩ + ⟨nk ⟩ = ˘˘˘

38

Page 42: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

= ⟨n+11 ⟩ + ⟨n2 ⟩ +˘˘˘+ ⟨nk ⟩

= n + 1 + ⟨n2 ⟩ +˘˘˘+ ⟨nk ⟩

= ⟨n0 ⟩ + ⟨n1 ⟩ + ⟨n2 ⟩ +˘˘˘+ ⟨nk ⟩

Jotta myös tapaus n=0 saataisiin mukaan, sovitaan, että ⟨0k ⟩ = 0, kun k > 1

(katso (2)). Edelleen sovitaan, että ⟨00 ⟩ = 1 (katso (4)).

2. Binomikertoimet

Binomikerroin voidaan määritellä yleisestikin* kaavalla

x

k = x(x-1)˘˘˘(x-k+1)

k! ,

missä x on mielivaltainen reaali- tai kompleksiluku ja k on ei-negatiivinenkokonaisluku. Tapauksessa k=0 osoittajaan tulee ns. “tyhjä tulo”, jonkaarvoksi sovitaan 1. Siis aina

x

0 = 1.

Toisaalta, jos x on kokonaisluku ja 0 < x<k, niin

x

k = 0. Jatkossa tarkas-

tellaankin vain tapausta, jossa x ja k ovat ei-negatiivisia kokonaislukuja, el-lei toisin mainita.

Binomikerroin voidaan havainnollistaa toteamalla, että se ilmaisee alla ole-van kuvion suorakaiteessa A:sta B:hen kulkevien reittien lukumäärän, kunsallitaan kulku vain ylös tai oikealle:

* Vieläkin yleisemmin voitaisiin määritellä ns. betafunktio, ks. erikoisfunktioita

käsittelevät kirjat.

39

Page 43: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

A

B

k

m

( )m+kk

reittiä

Monet binomikerrointen ominaisuudet nähdään enemmän tai vähemmänsuoraan tästä havainnollistuksesta.

Seuraavassa on kokoelma tavallisimpia

Binomiaali-identiteettejä

( I ) (a + b)n = ∑k=0

n

n

k akbn-k (binomikaava; tuttu)

(II)

n

k =

n-1

k +

n-1

k-1 (suoraan laskien tai alla olevista kuvista)

n-k

k( n-1

k )

n-k-1

40

Page 44: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

n-k

k-1( n-1

k-1)k

(III)

n

k =

n

n-k (selvä)

( IV )

n

k = nk

n-1

k-1 (selvä; k>0)

( V ) ∑k=0

n

m+k

k =

m+n+1

n (alla olevasta kuvasta)

( m+kk )

m

k

n

m+1

(VI ) ∑k=m

n

k

m =

n+1

m+1 (seuraa (III):sta ja (V):stä; m < n )

(VII)

n

m

m

k =

n

k

n-k

m-k (suoraan laskien; n > m > k )

41

Page 45: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

(VIII) ∑k=0

m-n

l

k

m

n+k =

l+m

l+n (alla olevasta kuviosta; l > m-n > 0)

( mn+k)

(lk)

n+k l-k

m-n

n

k

m-n-k

m-n

l

( IX) ∑k=n-p

l-m

l-k

m

p+k

n =

l+p+1

m+n+1 (alla olevasta kuviosta, jako-

viiva on keskellä ruutua;

l-m > n-p > 0 )

(l-km )

(p+kn )

p-n+k

l-m-k

l+p-m-n

m+n+1

m n

Identiteetin (II) sekä reunaehtojen

42

Page 46: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

n

0 = 1 ja

n

n = 1

avulla voidaan binomikertoimet saada ns. Pascalin kolmiosta, jossa alkio onaina välittömästi sen yläpuolella olevien alkioiden summa (reuna-alkioitalukuunottamatta):

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

.........................

Identiteetit (VIII) ja (IX) ovat ns. Vandermonden konvoluutiokaavat. Nevoidaan kirjoittaa “kauniimpaan” (mutta ei välttämättä käyttökelpoisem-paan!) muotoon: (VIII) voidaan kirjoittaa muotoon

(VIII') ∑k=0

n

l

k

m

n-k =

l+m

n

(ilmeinen) ja (IX) muotoon

(IX') ∑k=0

n ⟨lk ⟩⟨

mn-k ⟩ = ⟨l+m

n ⟩

(totea!).

Kätevä apuväline binomiaali-identiteettien etsimisessä reittianalogiaa (jaylös oikealle 45° kulmassa olevia jakoviivoja) ajatellen on

HEIJASTUSPERIAATE. Alla olevassa kuviossa niiden P:stä Q:hun (ylös taioikealle) kulkevien reittien lukumäärä, jotka sivuavat tai leikkaavat suoraad, on sama kuin P:stä d:n suhteen peilaamalla saadusta pisteestä P' pistee-seen Q kulkevien reittien lukumäärä.

43

Page 47: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

Q

P

P'

d

Heijastusperiaatteen avulla voidaan esimerkiksi rajoittua reitteihin, jotkaeivät leikkaa tai sivua suoraa d.

Huom! Binomiaali-identiteettien (ja muidenkin summausidentiteettien)todentamiseen ja generointiin on yleinenkin työkalu, ns. Gosperin algorit -mi , joka löytyy useista symbolisen laskennan ohjelmistoista (MACSYMA,Mathematica, Maple). Ks. myös GRAHAM & KNUTH & PATASHNIK. Äskettäinalgoritmia on saatu vielä huomattavasti terästettyä.

3. Dirichlet’n laatikkoperiaate. Inkluusio-ekskluusio-periaate

Yksinkertaiset asiat ovat joskus erittäin arvokkaita. Eräs tällainen asia onns. laatikkoperiaate , jota usein käyttää huomaamattaan.

DIRICHLET’N LAATIKKOPERIAATE. Jos n eri kohdetta sijoitetaan m

laatikkoon, niin johonkin laatikkoon tulee vähintään nm kohdetta ja toi-

saalta johonkin laatikkoon tulee enintään nm kohdetta.

Todistus . Asetetaan vastaoletus : Jokaisessa laatikossa on vähemmän kuinnm kohdetta tai jokaisessa laatikossa on enemmän kuin

nm kohdetta. Sil-

loin ensimmäisessä tapauksessa kohteita on < m˘

nm = n kpl ( ) ja toi-

sessa tapauksessa > m˘

nm = n kpl ( ).

Kutakuinkin ilmeinen joukko-opin kaava on

#(A∪ B) = #A + #B - #(A∩B),

44

Page 48: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

missä A ja B ovat äärellisiä joukkoja ja #X merkitsee joukon X alkioidenlu-kumäärää eli kardinaliteettia. Tämä on erikoistapaus ns. inkluusio-eks -kluusio-periaatteesta .

INKLUUSIO-EKSKLUUSIO-PERIAATE. Kullakin n:stä kohteesta voi ollayksi tai useampia ominaisuuksista O1,…,Om. Merkitään Ni:llä niiden koh-teiden lukumäärää, joilla on ainakin ominaisuus Oi, Nij:llä niiden kohtei-den lukumäärää, joilla on ainakin ominaisuudet i ja j, jne.. Silloin niidenkohteiden lukumäärä, joilla on ainakin yksi ominaisuuksista O1,…,Om, on

∑i=1

m Ni - ∑

i,j=1i<j

m Nij + ∑

i,j,k=1i<j<k

m Nijk +- ˘˘˘ + (-1)m-1N12˘˘˘m

Todistus . Jos kohteella on tarkalleen p kpl ominaisuuksista O1,…,Om, niinsen kontribuutio yo. summaan on

p -

p

2 +

p

3 -

p

4 +- ˘˘˘ + (-1)p-1

p

p

= 1 - (1 - p +

p

2 -

p

3 +

p

4 -+ ˘˘˘ + (-1)p)

= 1 - ∑i=0

p

p

i (-1) i1p-i = 1 - (1 - 1)p = 1, jos p>1

0, jos p=0

4. Permutaatiot

Jos n kohdetta asetetaan kaikin mahdollisin tavoin renkaan muotoon, saa-daan ns. rengaspermutaatiot. Kirjaimista a,b,c,...,z* saadaan tällä tavoinmm. rengaspermutaatio

a q g l

nd

us

cv

kztwxif

mb

or

jh

y e p

* Rengas on tehty PostScript-sivunkuvauskielellä. Tekijä ei laiskuuttaan viitsinyt

implementoida skandinaavisia merkkejä. Permutaatio on valittu satunnaisestikäyttäen Statview-tilasto-ohjelmaa: kirjoitetaan sarakkeeksi kirjaimet a,b,c,…,z, tulostetaan niiden rinnalle sarake satunnaislukuja, lajitellaan vm. sarakkeensuhteen ja siirretään permutoitunut kirjainsarake PostScript-koodiin.

45

Page 49: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

Huomaa, että järjestykset, jotka saadaan “pyöräyttämällä” toinen toisis-taan, ovat samat. Esimerkiksi yo. rengaspermutaatio on sama kuin

aq

gl

nd

u

s c v k z t

wx

if

mb

o

rjhyep

Rengaspermutaatio ei (yleensä) ole sama kuin siitä peilaamalla saatu, ts.rengasta ei ajatella “helminauhana” kolmiulotteisessa avaruudessa. Siisesimerkiksi rengaspermutaatiot

a q g ln

du

sc

v

kztwxif

mb

or

jh

y e p aqgln

du

sc

v

k z t w x i f

mb

or

jh

yep

katsotaan eri rengaspermutaatioiksi.

Koska “tavallisia” n alkion permutaatioita on n! kpl, niin n kohteen ren-gaspermutaatioiden lukumäärä* on (n-1)!, sillä rengaspermutaatiosta saa-daan aina n eri permutaatioita katkaisemalla rengas eri kohdista eikä kah-desta eri rengaspermutaatiosta saada tällä tavoin samaa permutaatiota.

Yksittäinen permutaatio voidaan ilmaista permutaatiotaulukon eli -matrii-sin muodossa:

* k:n alkion rengasvariaatioiden (n:stä alkiosta) lukumäärän saa tästä helposti (jä-

tetään lukijalle). Sen sijaan k:n alkion rengastoistovariaatioiden (n:stä alkiosta)eli k:n pituisten rengassanojen lukumäärä on huomattavasti hankalampi löytää,

se on 1k ∑

i=0

k-1 nsyt(i,k), missä syt(i,k) on lukujen i ja k suurin yhteinen tekijä (s.

58). (Ks. GRAHAM & KNUTH & PATASHNIK.)

46

Page 50: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

i↓1 0 1 0 … 02 1 0 0 … 03 0 0 0 … 1˘ ˘ ˘ ˘

…˘

˘ ˘ ˘ ˘…

˘

˘ ˘ ˘ ˘…

˘

n 0 0 0 … 01 2 3 … n ←←←← j

Tässä ykkönen solussa (i,j) merkitsee, että permutaatiossa i:s alkio siirtyyj:nnelle paikalle. Näin ollen joka sarakkeessa ja joka rivissä on tarkalleenyksi ykkönen ja muissa soluissa on nolla.

Ykkösen asettaminen tiettyihin soluihin voidaan kieltää. Tämä merkitääntaulukossa kirjoittamalla näihin soluihin X. Kaikki kielletyt solut muodos-tavat ns. kieltokuvion K, joka voidaan ilmaista luettelemalla vastaavat in-deksiparit (i,j). Tiettyä kieltokuviota K vastaten saadaan näin ns. n alkionK-permutaatiot. Merkitään niiden lukumäärää C(n,K):lla. (Merkki X so-lussa (i,j) merkitsee siis sitä, ettei permutaatiossa i:s alkio voi tulla j:nnel-le paikalle.)

Jos valitaan kielletyiksi soluiksi lävistäjällä olevat solut, ts.

K = (1,1),(2,2),…,(n,n),

niin saadaan ns. sekoitukset eli sekoituspermutaatiot (engl. derangement).Vastaava kieltokuvio taulukossa on seuraava:

X …

X …

X …

˘ ˘ ˘…

˘

˘ ˘ ˘…

˘

˘ ˘ ˘…

˘

… X

Sekoituspermutaatiossa mikään alkio ei pysy omalla paikallaan.

Lukumäärien C(n,K) laskeminen on yleensä työlästä. Seuraavasta lauseestaon tässä usein apua. Merkitään K':lla kieltokuviota, joka saadaan lisäämäl-lä kieltokuvioon K jokin aikaisemmin sallittu solu (i,j) (näistä saa valitaminkä tahansa), ja K":lla kieltokuviota, joka saadaan poistamalla i:s rivi jaj:s sarake kieltokuviosta K. K" on näin ollen n-1 alkion permutaation kiel-tokuvio. Siis jos kieltokuvio K on

47

Page 51: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

X X

XX

ja (i,j) = (2,3), niin K' ja K" ovat vastaavasti

X XX

XX

ja

XX

X

LAUSE 9. C(n,K) = C(n,K') + C(n-1,K")

Todistus . K-permutaatiossa joko soluun (i,j) tulee ykkönen tai sitten ei.Näin tällaiset permutaatiot jakautuvat kahteen eri luokkaan. Jälkimmäi-sessä luokassa on permutaatioita ilmeisesti C(n,K') kpl. Edellisen luokanpermutaatioissa siirtyy i:s alkio aina j:nnelle paikalle. Loput alkiot 1,…,i-1,i+1,…,n voidaan kieltokuvion mukaisesti asettaa paikoille 1,…,j-1,j+1,…,njuuri C(n-1,K") eri tavalla.

Kiellettyjen solujen lukumäärän lisääntyessä ei lopulta ole ainuttakaan sal-littua permutaatiota. Toisaalta alkioiden lukumäärän pienetessä on lopultahelppo nähdä montako sallittuja permutaatioita on. Näin ollen Lause 9 an-taa toistuvasti käytettynä C(n,K):n. Valitettavasti yhteenlaskettavien määräkasvaa tällöin eksponentiaalisesti n:n mukana, joten lause ei ole käyttö-kelpoinen suurille n:n arvoille*.

Lausetta 9 voitaisiin käyttää n:n alkion sekoituksien lukumäärän laskemi-seen, mutta se on työlästä. Helpommalla päästään käyttämällä inkluusio-ekskluusio-periaatetta:

LAUSE 10. n alkion sekoituksia on

n! ∑i=0

n

(-1)ii!

merk.= d(n) kpl.

Todistus . n alkion permutaatiolla on ominaisuus Oi, jos se pitää ainakini:nnen alkion omalla paikallaan. (Ks. inkluusio-ekskluusio-periaate.) Il-meisesti permutaatio on sekoitus tarkalleen silloin, kun sillä ei ole mitään

* ANDERSON ja GRIMALDI käsittelevät ko. lauseen soveltamista, mutta ns. tornipo -

lynomien (shakkitermi, engl. rook polynomial) muodossa.

48

Page 52: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

ominaisuuksista O1,…,On. Inkluusio-ekskluusio-periaatteen mukaan tällai-sia permutaatioita on

n! - (∑i=1

n Ni - ∑

i,j=1i<j

n Nij + ∑

i,j,k=1i<j<k

n Nijk +- ˘˘˘ + (-1)n-1N12˘˘˘n)

= n! - (n˘(n-1)! -

n

2 (n-2) ! +

n

3 (n-3) ! +- ˘˘˘ + (-1)n-1˘1)

= n! - (n!1! -

n!2! +

n!3! +- ˘˘˘ + (-1)n-1 n!

n! ) = d(n) kpl.

5. Stirlingin kaava

Kombinatoriikan lausekkeissa usein esiintyvän kertoman arviointi käy ns.Stirlingin kaavan avulla. Kaavasta tunnetaan useita versioita, tarkkuudestariippuen.

HEIKKO STIRLINGIN KAAVA.nn

en-1 < n! < nn+1

en-1 (n=1,2,…)

Todistus . Tapaus n=1 on selvä, joten oletetaan, että n > 2. Integraalilasken-nasta tiedetään, että

ln k < ⌡⌠k

k+1

ln x dx < ln (k+1) (k=1,2,…).

Lasketaan nämä kaksoisepäyhtälöt puolittain yhteen k:n arvoille k=1,…,n-1:

ln (n-1)! < ⌡⌠1

n

ln x dx < ln n!

eli

ln (n-1)! < /1

n (x ln x - x) < ln n!

eliln (n-1)! < n ln n - n + 1 < ln n!.

Sama asia toisin kirjoitettuna:

n ln n - n + 1 < ln n! < (n+1) ln n - n + 1.

Itse kaava saadaan tästä eksponenttifunktiolla kuvaamalla (eksponentti-funktio on kasvava funktio).

49

Page 53: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

Arviointia terästämällä (ks. GRAHAM & KNUTH & PATASHNIK tai GREENE &KNUTH tai KNUTH) saadaan vahvempia Stirlingin kaavoja, esimerkiksi seu-raavat*:

1 ) 2πn nn e

-n + 1

12n+0.6n

< n! < 2πn nn e-n +

112n

(n=1,2,…)

2 ) n! = 2πn nn e-n +

θn12n

, missä 0<θn<1 (n=1,2,…)

3 ) n! = 2πn nn e-n +

112n -

1360n3 + Ο(n-5)

4 ) n! = 2πn nn e-n (1 + 1

12n + 1

288n2 - 139

51840n3 - 571

2488320n4

+ Ο(n-5))

* Katso seuraavasta luvusta (pykälä 1), mitä Ο(n-5) tarkoittaa.

50

Page 54: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

51

IV KOKONAISLUKUFUNKTIOT

1. Kertalukunotaatio

Kertalukunotaatio vertaa luonnollisille luvuille 0,1,2,… määriteltyjä funkti-oita asymptoottisesti toisiinsa. Määritelmät ovat seuraavat, predikaattilo-giikan avulla esitettynä (f(n) on arvoltaan ei-negatiivinen):

1) “pikku omikron*”

g(n) = ο(f(n)) ⇔ (∀ε >0)(∃ n0)(∀ n > n0)(|g(n)|<εf(n))

⇔ limn→∞

g(n)f(n) = 0

2) “iso omikron* ”

g(n) = Ο(f(n)) ⇔ (∃ c>0)(∃ n0)(∀ n > n0)(|g(n)| < cf(n))

3) “pikku omega”

g(n) = ω(f(n)) ⇔ (∀ M>0)(∃ n0)(∀ n > n0)(g(n)>Mf(n))

4) “iso omega”

g(n) = Ω(f(n)) ⇔ (∃ c>0)(∃ n0)(∀ n > n0)(g(n) > cf(n))

5) “iso theta”

g(n) = Θ(f(n)) ⇔ g(n) = Ο(f(n)) ∧ g(n) = Ω(f(n))

Ks. KNUTH, D.E.: Big omicron and big omega and big theta. SIGACT News 8(1976) No. 2, 18-24 ja myös GREENE & KNUTH. Määritelmistä ei tosin ollaaivan yksimielisiä, ks. VITÀNYI, P.M.B. & MERTENS, L.: Big omega versus thewild functions. SIGACT News 16 (1985) No. 4, 56-59. Myöskin esimerkiksiGRAHAM & KNUTH & PATASHNIK määrittelee hieman toisin kuin yllä on tehty.Käytännön tilanteissa määritelmien erosta ei ole haittaa.

Itse asiassa esimerkiksi Ο(f(n)) on kollektiivinen notaatio . Tarkasti ottaen

kirjoitettaessa esimerkiksi h(n) = Ο(f(n)) pitäisi kirjoittaa h(n) ∈ Ο(f(n)), missä

Ο(f(n)) on joukko

* Kyseessä on kreikkalaisen aakkoston kirjain omikron ο, isona Ο. Usein käytetään

kuitenkin pikku oota o ja isoa oota O.

Page 55: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

52

g(n) (∃ c>0)(∃ n0)(∀ n > n0)(|g(n)| < cf(n)).

Näin ollen ei saa kirjoittaa Ο(f(n)) = h(n). Yleensä sallitaan kuitenkin muo-toa

g(n) = h(n) + Ο(f(n))

olevat kirjoitelmat, kun tarkoitetaan, että g(n) - h(n) = Ο(f(n)), ja muut sentapaiset kirjoitelmat. Vastaava pätee muillekin yo. notaatioille.

Kertalukunotaatioista tavallisin lienee iso omikron. Katsotaan seuraavassajoitakin sen ominaisuuksia. Muilla notaatioilla on analogisia ominaisuuksia.

LAUSE 11. (i) na = Ο(nb), kun a<b.

(ii) an = Ο(bn), kun 0 < a<b.

(iii) na = Ο(bn), kun a on vakio ja b>1.

(iv) (ln n)a = Ο(nb), kun a on vakio ja b>0.

(v)* Jos g(n) = Ο(f(n)) ja h(n) on funktio, jonka arvot ovat koko-

naislukuja ja jolle limn→∞

h(n) = ∞, niin g(h(n)) = Ο(f(h(n))).

(vi) f(n) = Ο(|f(n)|)

(vii) aΟ(f(n)) = Ο(f(n)) = Ο(|a|f(n)), kun a≠0 on vakio.

(viii) Jos |g(n)| < ch(n), kun n > n0, missä c>0 on vakio, ja h(n) =Ο(f(n)), niin g(n) = Ο(f(n)).

(ix) Ο(f(n)) + Ο(g(n)) = Ο(f(n)+g(n))

(x)** Ο(f(n))Ο(g(n)) = Ο(f(n)g(n)) = f(n)Ο(g(n))

Todistus . Kohdissa (i-iv) on kyseessä tutut muotoa limn→∞

f(n)g(n) = 0 olevat ra-

ja-arvot.

(v) Jos g(n) = Ο(f(n)), niin on sellainen vakio c>0 ja sellainen rajaluku n0,

että |g(n)| < cf(n), kun n > n0. Toisaalta, koska h(n)→∞, kun n→∞, on sel-

* Yleisesti ei muuten pidä paikkansa vastaava ominaisuus, jossa funktio on “ulko-

puolella”: jos g(n) = Ο(f(n)) ja h(x) on positiiviarvoinen kasvava funktio, niin h(g(n)) ei

aina ole = Ο(h(f(n))).

** Yleisesti ei pidä paikkansa vastaava ominaisuus summalle: Ο(f(n)) + Ο(g(n)) ei ainaole = f(n) + Ο(g(n)).

Page 56: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

53

lainen rajaluku n1, että h(n) > n0, kun n > n1. Siispä |g(h(n))| < cf(h(n)), kunn > n1.

(vi) on ilmeinen, valitaan vain c=1 ja n0=0.

(vii) Jos g(n) = Ο(f(n)), niin on sellainen vakio c>0 ja sellainen rajaluku n0,että |g(n)| < cf(n), kun n > n0. Siispä |ag(n)| < |a|cf(n), kun n > n0, ja ag(n) =Ο(f(n)). Tämä osoittaa, että aΟ(f(n)) ⊆ Ο(f(n)). Toisaalta, jos h(n) =Ο(f(n)), niin

h(n) = a 1a h(n) ja

1a h(n) on edellisen nojalla = Ο(f(n)). Näin ollen Ο(f(n)) ⊆

aΟ(f(n)). (Muista notaation joukkotulkinta!) Yhtälön Ο(f(n)) = Ο(|a|f(n)) to-distus on samantapainen (jätetään lukijalle).

(viii) Jos h(n) = Ο(f(n)), niin on sellainen vakio c1>0 ja sellainen rajaluku n1,että |h(n)| < c1f(n), kun n > n1. Näin ollen |g(n)| < ch(n) < cc1f(n), kun n > max(n0,n1).

Seuraavat kohdat ovatkin jo vähän kurvikkaampia todistettavia:

(ix) Jos h(n) = Ο(f(n)) ja k(n) = Ο(g(n)), niin on sellaiset vakiot c1>0 ja c2>0 jasellaiset rajaluvut n1 ja n2, että |h(n)| < c1f(n), kun n > n1 ja |k(n)| < c2g(n),kun n > n2. Silloin

|h(n) + k(n)| < |h(n)| + |k(n)| < c1f(n) + c2g(n)

< max(c1,c2) (f(n) + g(n)),

kun n > max(n1,n2). Tämä osoittaa, että Ο(f(n)) + Ο(g(n)) ⊆ Ο (f(n)+g(n)).(Muista notaation joukkotulkinta.)

Toisaalta, jos h(n) = Ο(f(n)+g(n)), niin on sellainen vakio c>0 ja sellainenrajaluku n0, että|h(n)| < c(f(n) + g(n)), kun n > n0. Kirjoitetaan

sgn(h(n)) = 1, jos h(n)>0 0, jos h(n)=0-1, jos h(n)<0

(signumfunktio) ja

h1(n) = sgn(h(n)) min(|h(n)|,cf(n)) , h2(n) = h(n) - h1(n).

Silloin |h1(n)| < cf(n), joten h1(n) = Ο(f(n)). Edelleen on |h2(n)| = |h(n)| -|h1(n)| (eikö totta). Nyt n:n arvosta riippuen joko |h1(n)| = |h(n)| ja|h2(n)| = 0 < cg(n) tai |h1(n)| = cf(n), jolloin

|h2(n)| < c(f(n)+g(n)) - cf(n) = cg(n), kun n > n0.

Page 57: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

54

Siis joka tapauksessa |h2(n)| < cg(n), kun n > n0, jolloin h2(n) = Ο(g(n)). Kos-

ka h(n) = h1(n) + h2(n), niin h(n) = Ο(f(n)) + Ο(g(n)). Tämä osoittaa, että

Ο(f(n)+g(n)) ⊆ Ο(f(n)) + Ο(g(n)).

(x) Jos h(n) = Ο(f(n)) ja k(n) = Ο(g(n)), niin on sellaiset vakiot c1>0 ja c2>0 jasellaiset rajaluvut n1 ja n2, että |h(n)| < c1f(n), kun n > n1 ja |k(n)| < c2g(n),kun n > n2. Silloin

|h(n)k(n)| = |h(n)||k(n)| < (c1f(n))(c2g(n)) < c1c2f(n)g(n),

kun n > max(n1,n2). Tämä osoittaa, että

Ο(f(n))Ο(g(n)) ⊆ Ο(f(n)g(n)).

Edelleen

|f(n)k(n)| = f(n)|k(n)| < c2f(n)g(n),

kun n > n2, joten

f(n)Ο(g(n)) ⊆ Ο(f(n)g(n)).

Jos sitten h(n) = Ο(f(n)g(n)), niin on sellainen vakio c>0 ja sellainen ra-jaluku n0, että|h(n)| < cf(n)g(n), kun n > n0. Merkitään

h1(n) = h(n)g(n) , jos g(n)≠0

0, jos g(n)=0

ja

h2(n) = h(n)h1(n) , jos h1(n)≠0

0, jos h1(n)=0

Silloin |h1(n)| < cf(n), kun n > n0 ja h1(n) = Ο(f(n)). Edelleen |h2(n)| < g(n),

joten h2(n) = Ο(g(n)). Koska h(n) = h1(n)h2(n), niin h(n) = Ο(f(n))Ο(g(n)). Siispä

Ο(f(n)g(n)) ⊆ Ο(f(n))Ο(g(n)). Samaan tapaan näytetään, että Ο(f(n)g(n)) ⊆f(n)Ο(g(n)) (jätetään lukijalle).

Huom! Toisinaan kirjoitelma Ο(g(n)) = Ο(f(n)) merkitsee, että vasen puolisisältyy (joukkona) oikeaan puoleen, toisin kuin yo. lauseessa. Tätä hiemanharhaanjohtavaa käytäntöä soveltaa mm. GRAHAM & KNUTH & PATASHNIK.Toisaalta on todettava, että käytännössä tämän tapaisia yhtälöitä tarvitaanjuuri mainittuun suuntaan.

Page 58: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

55

2. Katto ja pohja

Reaaliluvun x katto (engl. ceiling), merkitään x , on pienin kokonaisluku,

joka on > x. Vastaavasti luvun x pohja (engl. floor), merkitään* x , on suu-rin kokonaisluku, joka on < x.

1 2 3 4 5-1-2-3-4-5

1

2

3

-1

-2

-3

x

x

x

Seuraavassa varsin ilmeisiä katon ja pohjan ominaisuuksia:

(1) x = x ⇔ x on kokonaisluku ⇔ x = x

(2) x - x = 1, jos x ei ole kokonaisluku0, jos x on kokonaisluku

(3) x-1 < x < x < x < x+1

(4) -x = - x , -x = - x

Edelleen, jos k on kokonaisluku , niin

(5) x = k ⇔ k < x < k+1 ⇔ x-1 < k < x

(6) x = k ⇔ k-1 < x < k ⇔ x < k < x+1

(7) x+k = x + k, x+k = x + k

(8) x < k ⇔ x < k

(9) k < x ⇔ k < x

(10) x < k ⇔ x < k

* Vanha, vieläkin usein käytössä oleva merkintä on [x]. Huomaa myös, että tämä ei

ole sama kuin mm. eräissä ohjelmointikielissä oleva INT tms. kokonaisosafunktio.

Page 59: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

56

(11) k < x ⇔ k < x

LAUSE 12 (McEliece). Jos f(x) on jatkuva ja aidosti kasvava sekä toteuttaaehdon

f(x) on kokonaisluku ⇒ x on kokonaisluku,niin

f(x) = f( x ) ja f(x) = f( x ) .

Todistus . Näytetään kaava f(x) = f( x ) . Pohjia koskevan kaavan todis-

tus on kutakuinkin samanlainen (jätetään lukijalle). Jos x = x , niin asia on

selvä. Näin ollen voidaan siirtyä tapaukseen x < x . Tällöin f(x) < f( x ), sillä

f on aidosti kasvava, ja edelleen f(x) < f( x ) . Asetetaan vastaoletus : f(x)

< f( x ) . Silloin f(x) < f(x) < f( x ). Koska f on jatkuva, niin on sellainen

luku y, x < y < x , että f(y) = f(x) . Mutta tällöin y on kokonaisluku

lauseessa mainitun ehdon takia, .

Lauseesta saadaan erikoistapauksina mm. kaavat

x = x ja x = x

(valitaan f(x) = x ). Jos m > 2 on kokonaisluku ja logm merkitsee m-kan-taista logaritmia, niin

logm x = logm x ja logm x = logm x

(valitaan f(x) = logm x). Edelleen, jos k ja n>0 ovat kokonaislukuja, niin

x+kn = x +k

n ja x+kn = x +k

n

(valitaan f(x) = x+kn ).

Huom! Kokonaiskantaisista logaritmeista puheenollen, kokonaisluvun k>0m-kantaisen esityksen pituus on

logm k +1 = logm (k+1) .

Jos nimittäin ms-1 < k < ms, niin s-1 < logm k < s eli s = logm k +1 ja toi-

saalta ms-1 < k+1 < ms, joten s-1 < logm(k+1) < s eli s = logm (k+1) .

Page 60: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

57

LAUSE 13. (i) Välillä [a,b] on b - a + 1 kokonaislukua (a < b).

(ii) Välillä [a,b) on b - a kokonaislukua (a < b).

(iii) Välillä (a,b] on b - a kokonaislukua (a < b).

(iv) Välillä (a,b) on b - a - 1 kokonaislukua (a<b).

Todistus . (i) k on välillä [a,b] oleva kokonaisluku ⇔ a < k < b .

(ii) k on välillä [a,b) oleva kokonaisluku ⇔ a < k < b .

(iii) k on välillä (a,b] oleva kokonaisluku ⇔ a < k < b .

(iv) k on välillä (a,b) oleva kokonaisluku ⇔ a < k < b .

3. Kongruenssilaskentaa

Valitaan ei-negatiivinen kokonaisluku m, ns. moduli. Sanotaan, että koko-naisluvut a ja b ovat kongruentit modulo m, merkitään

a ≡ b (mod m),

jos b-a on jaollinen m:llä eli b-a on kirjoitettavissa muotoon km, missä k onkokonaisluku. Kongruenssi modulo 0 on tavallinen yhtäsuuruus (vain nollaon jaollinen nollalla) ja kongruenssi modulo 1 ei sano mitään (kaikki luvutovat keskenään kongruentteja modulo 1, sillä jokainen kokonaisluku onjaollinen yhdellä). Näin ollen voidaan siirtyä tapaukseen m > 2.

Jos a ja b ovat ei-negatiivisia, niin a ≡ b (mod m) sanoo, että jaettaessa a jab m:llä saadaan sama (jako)jäännös, ts. a ja b kuuluvat samaan (jako)jään-nösluokkaan modulo m. Myös jokainen negatiivinen kokonaisluku kuuluuaina johonkin jäännösluokkaan, sillä se on kongruentti jonkin ei-negatiivi-sen kokonaisluvun kanssa modulo m (eikö vain). Jokainen kokonaislukukuuluu vain yhteen jäännösluokkaan. Tämä on ilmeistä, jos kyseessä on ei-negatiivinen kokonaisluku, sillä jäännös modulo m on yksikäsitteinen.Toisaalta yleisesti pätee

a ≡ b (mod m) ja b ≡ c (mod m) ⇒ a ≡ c (mod m),

sillä jos b-a = km ja c-b = lm, niin c-a = (k+l)m. Näin ollen negatiivisenkokonaisluvun kanssa kongruentit ei-negatiiviset kokonaisluvut ovat myöskeskenään kongruentteja ja kuuluvat samaan jäännösluokkaan.

LAUSE 14. (i) Jos a ≡ b (mod m) ja c ≡ d (mod m), niin a+c ≡ b+d (mod m).

Page 61: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

58

(ii) Jos a ≡ b (mod m) ja c ≡ d (mod m), niin ac ≡ bd (mod m).

(iii) Jos a ≡ b (mod m) ja n>0 on kokonaisluku, niin an ≡ bn

(mod m).

Todistus . (i) Jos b-a = km ja d-c = lm, niin (b+d) - (a+c) = (k+l)m.

(ii) Jos b-a = km ja d-c = lm, niin bd - ac = (b-a)c + (d-c)b = (kc+lb)m.

(iii) seuraa (ii):sta.

Jakolasku ei yleensä ole kongruensseille sallittua. Jotta päästäisiin tutki-maan tilannetta, jossa se on sallittua, katsotaan ensin ns. Euklideen algo-ritmia.

Ei-negatiivisten kokonaislukujen a ja b suurin yhteinen tekijä, merkitäänsyt(a,b), on suurin sellainen kokonaisluku, joka jakaa tasan sekä a:n ettäb:n. Jos d = syt(a,b), niin, kuten nähdään, on sellaiset kokonaisluvut c1 jac2, että d = c1a + c2b. Merkitään SYT(a,b) = (d,c1,c2) ja oletetaan, että a < b.Euklideen algoritmi on seuraava rekursio:

1) Jos a=0, niin tulostetaan SYT(a,b) = (b,0,1) ja lopetetaan.

2) Jos a>0, niin etsitään b:n jäännös r modulo a, ts. kirjoitetaan b =qa+r, missä 0 < r<a. Ilmeisesti syt(a,b) = syt(a,r). Etsitään SYT(r,a) =(d,e1,e2). Silloin

d = e1r + e2a = e1(b-aq) + e2a = (e2-e1q)a + e1b.

Tulostetaan SYT(a,b) = (d,e2-e1q,e1) ja lopetetaan.

Rekursio on päättyvä, koska min(r,a) < min(a,b), ts. aina kutsuttaessa SYTko. minimiarvo pienenee ja on lopulta nolla.

Nyt a voidaan jakaa b:llä modulo m, jos syt(b,m) = 1, ts. b ja m ovat keske-nään jaottomat. Tällöin nimittäin c1b + c2m = 1, joten ac1b + ac2m = a ja

a ≡ kb (mod m), missä k ≡ ac1 (mod m).

Edelleen tällöin

kb ≡ lb (mod m) ⇒ k ≡ l (mod m),

sillä jos lb - kb = jm, niin

l - k = (c1b + c2m)(l - k) = (c1j + c2(l - k))m,

ts. modulin kanssa jaoton luku voidaan supistaa pois kongruenssista .

Page 62: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

59

V REKURSIOKAAVAT

1. Yleistä

Rekursiokaavoja käytetään määrittelemään lukujonoja lähtien tietyistä jo-non alkupään termeistä, ns. alkuarvoista.

Lineaarinen rekursiokaava on muotoa

f(n+k) = ck-1(n)f(n+k-1) +˘˘˘+ c0(n)f(n) + g(n)

oleva rekursiokaava. Se määrittelee jonon f(0),f(1),f(2),… , kun kerroinfunk-tiot c0(n),…,ck-1(n) ja g(n) tunnetaan ja alkuarvot f(0),…,f(k-1) on annettu. kon rekursiokaavan kertaluku. Jonon f(0),f(1),f(2),… sanotaan toteuttavan re-kursiokaavan. Jos g(n) on nollafunktio, sanotaan rekursiokaavaa homogee-niseksi, muuten epähomogeeniseksi.

Välittömästi nähdään lineaaristen rekursiokaavojen kolme perusominai-suutta:

(1) Jos jonot f1(0),f1(1),… ja f2(0),f2(1),… toteuttavat saman lineaari-sen homogeenisen rekursiokaavan, niin myös jono f1(0)+f2(0),f1(1)+f2(1),… toteuttaa tämän rekursiokaavan.

(2) Jos jono f(0),f(1),… toteuttaa tietyn lineaarisen homogeenisen re-kursiokaavan ja C on vakio, niin myös jono Cf(0),Cf(1),… toteuttaatämän rekursiokaavan.

(3) Jos jonot f1(0),f1(1),… ja f2(0),f2(1),… toteuttavat tietyn lineaarisenrekursiokaavan, niin jono f1(0)-f2(0),f1(1)-f2(1),… toteuttaa vastaa-van homogeenisen rekursiokaavan.

Rekursiokaava, joka ei ole lineaarinen, on epälineaarinen. Epälineaaristenrekursiokaavojen (+ alkuarvojen) ratkaiseminen siinä mielessä, että saa-taisiin lauseke f(n):lle, on vaikeaa ja usein mahdotonta. Ratkaisu vaatiiyleensä onnistuessaan tehtävälle ominaisia erikoismenetelmiä. Ks. GREENE& KNUTH ja GRAHAM & KNUTH & PATASHNIK. Myöskään yleisen lineaarisenrekursiokaavan ratkaisu tässä mielessä ei ole helppoa. Toisaalta usein riit-tää arviointikin, esimerkiksi muodossa f(n) = Ο(h(n)), ja toisinaan on tär-keää vain saada laskettua nopeasti f(n) jo(i)llekin n:n arvo(i)lle.

Jatkossa rajoitutaankin lineaarisiin rekursiokaavoihin, jotka voidaan rat-kaista, ainakin jossain mielessä.

Huom! Symbolisen laskennan ohjelmistot (Maple, Mathematica, MACSYMA)osaavat myös ratkaista useita rekursiokaavatyyppejä. Esimerkiksi Maplenrsolve on tällainen rekursiokaavan ratkaisija:

Page 63: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

60FUNCTION: rsolve - recurrence equation solver

CALLING SEQUENCE: rsolve(eqns, fcns) rsolve(eqns, fcns, 'genfunc'(z)) rsolve(eqns, fcns, 'makeproc')

PARAMETERS: eqns - a single equation or a set of equations fcns - a function name or set of function names z - a name, the generating function variable

SYNOPSIS:- The function rsolve attempts to solve the recurrence relation(s) specified in eqns for the functions in fcns, returning an expression for the general term of the function.

- The first argument should be a single recurrence relation or a set of recurrence relations and boundary conditions. Any expressions in eqns which are not equations will be understood to be equal to zero.

- The second argument fcns indicates the functions that rsolve should solve for. A function may be represented by a name or an unevaluated function call whose argument is a name. If the function is represented by a name, the index variable for the solution is deduced from the recurrence equations. If the function is represented by an unevaluated function call, the argument name is used as the solution index. If the solution index differs from the index name in a recurrence equation, then the equation must be independent of the solution index.

- If fcns is a set, the solution is returned as a set of equations. The left hand side of each equation will be the function name. Otherwise, an expres- sion for the solution is returned.

- The procedure rsolve can currently solve linear recurrences with constant coefficients, systems of linear recurrences with constant coefficients, divide and conquer recurrences with constant coefficients, many first order linear recurrences, and some nonlinear first order recurrences.

- If insufficient boundary conditions are given, rsolve uses symbolic function names as default values. For linear recurrences with constant coefficients and systems of linear recurrences with constant coefficients, if no boundary conditions are given, symbolic function calls starting with index 0 are used. For divide and conquer recurrences, a symbolic function call at index 1 is used.

- The ratio of the indices in divide and conquer recurrences must be an integer greater than 1 or a name. If the ratio is a name, it is understood to represent an integer greater than 1. It is assumed that the index variable is a nonnegative power of the ratio.

- Boundary conditions for linear recurrences with constant coefficients and systems of linear recurrences with constant coefficients may be specified in one of three ways:

t(a)=c, t(a..b)=c, t(k=a..b)=f(k),

Page 64: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

61 where a and b are integers, c is a constant with respect to the index vari- able for the sequence, k is a name, and f(k) is an expression of k. The boundary condition t(a..b)=c is equivalent to t(a)=t(a+1)=...=t(b)=c and the condition t(k=a..b)=f(k) is equivalent to t(a)=f(a), t(a+1)=f(a+1), ..., t(b)=f(b),

- The 'genfunc'(z) option is valid for linear recurrences with constant coeffi- cients and systems of linear recurrences with constant coefficients. In this case rsolve returns the generating functions of the sequences defined by eqns. The name z is used as the generating function variable.

- The makeproc option is valid for linear recurrences with constant coeffi- cients. In this case rsolve returns a procedure body for evaluating the function defined by eqns.

- Setting infolevel['rsolve'] := 2 provides information about the choices rsolve makes to evaluate a recurrence.

- If rsolve is unable to compute a solution, it returns the unevaluated func- tion invocation. This unevaluated rsolve invocation may be understood by other functions; for example, the asympt function is able to compute an asymptotic series expansion for the solution in some cases.

2. Ensimmäisen kertaluvun lineaarinen rekursiokaava

Tällainen rekursiokaava on muotoa

f(n+1) = c(n)f(n) + g(n),

missä c(n) ja g(n) ovat annettuja kerroinfunktioita. Oletetaan, että c(n)≠0 jamerkitään

M(n) = 1

c(n)c(n-1)˘˘˘c(0)

M(n) on ns. summaava tekijä *. Kerrotaan rekursiokaava puolittain M(n):lläja merkitään

h(n) = M(n-1)f(n) , h(0) = f(0).

Silloin h(n+1) = h(n) + M(n)g(n)

ja saadaan ratkaisukaava

* Vrt. 1. kertaluvun differentiaaliyhtälöiden integroiva tekijä, ks. Matematiikka 2.

Mainittu oletus c(n)≠0 on varsin luonnollinen. Jos nimittäin esimerkiksi c(100)=0,niin f(101) ei riipukaan lainkaan sitä jonossa edeltävistä termeistä, vaan on aina=g(100).

Page 65: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

62

f(n) =

f(0) + ∑i=0

n-1 M(i)g(i)

M(n-1) (n=1,2,…)

joka muistuttaa 1. kertaluvun lineaarisen differentiaaliyhtälön ratkaisukaa-vaa. Vaikeutena ratkaisukaavan käytössä on siinä esiintyvän summan saa-minen “suljettuun muotoon”, mikäli mahdollista; aivan kuten vastaavassadifferentiaaliyhtälön ratkaisukaavassa vaikeutena on saada siinä esiintyväintegraali laskettua. Arviointiin ratkaisukaava saattaa sopia hyvinkin, vaik-ka mainittua summaa ei saataisikaan laskettua.

Maple osaa kaavan:

> rsolve(f(n+1)=c(n)*f(n)+g(n),f);

∏=_n1 0

−n 1( )c _n1 +∑

=_n2 0

−n 1

( )g _n2

∏=_n1 0

_n2( )c _n1

( )f 0

Se saa myös esiintyvän summan usein summattua suljettuun muotoon.Ratkaistaan esimerkkinä rekursiokaava f(n+1) = af(n) + (n+1)2 yleisellä alku-arvolla:

> normal(rsolve(f(n+1)=a*f(n)+(n+1) 2,f));

( )f 0 an a3 2 a2 n n2 a2 3 ( )f 0 an a2 a2 an a2 2 n2 a a an 2 a n− − − + − + + +3 ( )f 0 an a a n2 ( )f 0 an+ − − − ( )−a 1 3

Ratkaisu on geneerinen , ts. se ei ota huomioon erikoistapauksia, tässä ta-pausta a=1. Se on käsiteltävä erikseen:

> normal(rsolve(f(n+1)=f(n)+(n+1) 2,f));

+ + +( )f 013 n3 1

2 n2 16 n

3. Vakiokertoiminen lineaarinen rekursiokaava

Kertalukua k oleva vakiokertoiminen lineaarinen homogeeninen rekursio-kaava (lyhyesti LHVR) on muotoa

Page 66: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

63

( ) f(n+k) = ck-1f(n+k-1) +˘˘˘+ c0f(n)

oleva rekursiokaava, missä c0,…,ck-1 ovat vakiokertoimet. Lisäksi oletetaan,että c0≠0 (muutoin ensimmäinen alkuarvo f(0) ei vaikuttaisi seuraaviin jo-non termeihin). Alkuarvot ovat f(0),…,f(k-1).

Rekursiokaavan ( ) ns. karakteristinen yhtälö on

rk - ck-1rk-1 -˘˘˘- c1r - c0 = 0

ja yhtälön vasemmalla puolella oleva polynomi on ns. ( ):n karakteristinenpolynomi.

Vakiokertoimisia lineaarisia rekursiokaavoja käsitellään tavallisesti käyt-täen joko ns. generoivia funktioita * ja osamurtokehitelmiä (tätä tapaa käyt-tää esimerkiksi GREENE & KNUTH) tai matriisiesitystä . Katsotaan ensin jäl-kimmäinen tapa.

Matriisiesitys

Rekursiokaavan (j) ns. oheismatriisi (engl. companion matrix) on kÆk-mat-riisi

ck-1 ck-2 … c1 c0

1 0 … 0 00 1 … 0 0

˘ ˘ ˘ ˘

0 0 … 1 0

=merk. C.

Koska c0≠0, C on ei-singuläärinen matriisi. Kehittämällä determinantti

ck-1-λ ck-2 … c1 c0

1 -λ … 0 0

0 1 … 0 0

˘ ˘ ˘ ˘

0 0 … 1 -λ

= det(C-λI)

ensimmäisen rivinsä mukaan nähdään, että oheismatriisin karakteristinenyhtälö on sama kuin rekursiokaavan karakteristinen yhtälö.

Kertolasku osoittaa, että

* Oleellisesti sama kuin z-muunnos.

Page 67: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

64

f(n+k)

f(n+k-1)˘

˘

f(n+1)

= C

f(n+k-1)

f(n+k-2)˘

˘

f(n)

(n=0,1,2,…).

Näin ollen, jos merkitään

p =

f(k-1)

f(k-2)˘

˘

f(0)

ja e =

˘

01

niin

f(n+k-1)

f(n+k-2)˘

˘

f(n)

= Cnp (n=0,1,2…)

ja saadaan jonon f(0),f(1),… ns. matriisiesitys

f(n) = eTCnp (n=0,1,2,…) .

Käänteinenkin tulos pätee:

LAUSE 15. Jos d ja q ovat k-vektoreita ja M ei-singuläärinen kÆk-matriisi,niin jono

g(n) = dTMnq (n=0,1,2,…)

toteuttaa LHVR:n, jonka kertaluku on < k.

Todistus . Asia on selvä, jos q=0, joten siirrytään tapaukseen q≠0. Tällöinmyös Mnq≠0. Koska vektoreita q,Mq,M2q,…,Mkq on k+1 kpl, ne ovat li-neaarisesti riippuvia. Valitaan pienin sellainen luku m, että Mmq voidaankirjoittaa vektorien q,Mq,…,Mm-1q lineaarikombinaationa:

Mmq = am-1Mm-1q +˘˘˘+ a1Mq + a0q.

Silloin a0≠0, koska muussa tapauksessa m ei olisi pienin mahdollinen(miksei?). Kertomalla yhtälö vasemmalta dTMn:llä saadaan haluttu rekursio-kaava:

g(n+m) = am-1g(n+m-1) +˘˘˘+ a1g(n+1) + a0g(n).

Koska m < k, rekursiokaavan kertaluku ei ylitä k:ta.

Page 68: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

65Huom! Yllä olevassa todistuksessa saatu rekursiokaava riippuu myös alku-vektorista q, ei pelkästään matriisista M. Ottamalla käyttöön vahvempi tu-los saadaan rekursiokaava, joka ei riipu alkuvektorista q. Ns. Cayley- Hamiltonin lauseen mukaan nimittäin matriisi M toteuttaa oman karakte-ristisen yhtälönsä (ks. 73109 Matriisilaskenta 1). Ts. jos matriisin Mkarakteristinen yhtälö on

λk - ck-1λk-1 -˘˘˘- c1λ - c0 = 0,

niin Mk - ck-1Mk-1 -˘˘˘- c1M - c0I = O.

Kertomalla tämä yhtälö puolittain vasemmalta dT:llä ja oikealta Mnq:llanähdään, että g(n) toteuttaa myös rekursiokaavan

g(n+k) = ck-1g(n+k-1) +˘˘˘+ c1g(n+1) + c0g(n),

joka ei riipu alkuvektorista q. (Huomaa, että c0 = ±det(M) ≠ 0.)

Matriisiesitystä käyttäen saadaan enemmän tai vähemmän helposti useitakäyttökelpoisia tuloksia. Seuraavassa eräitä tällaisia.

Jonon termin laskeminen

Matriisiesitystä käyttäen voidaan laskea jonon termi f(n) nopeasti. Kyseessäon oikeastaan vain matriisipotenssin Cn (n>0) laskeminen eikä siihensuinkaan tarvita n-1 matriisikertolaskua, vaan enintään 2 log2 n matriisi-kertolaskua (vrt. Huomautus s. 56). Tapaus n=0 on selvä, joten oletetaan,että n>0. Algoritmi on seuraava:

1) Muodostetaan n:n binääriesitys bjbj-1˘˘˘b0, missä j= log2 n . Ase-

tetaan i←0 sekä X←I ja Y←C. (I on kÆk-identiteettimatriisi.)

2) Jos i=j, niin tulostetaan f(n) = eTXYp ja lopetetaan.

3) Jos i<j ja

3.1) bi=0, niin asetetaan i←i+1 sekä Y←Y2 ja mennään koh-taan 2).

3.2) bi=1, niin asetetaan X←XY ja Y←Y2 sekä i←i+1 ja men-nään kohtaan 2).

Algoritmin toimivuus seuraa välittömästi binääriesityksestä:

n = bj2j + bj-12j-1 +˘˘˘+ b12 + b0

Page 69: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

66ja

Cn = Cbj2j Cbj-12j-1

˘˘˘ Cb12 Cb0 .

Matriisien lohkomista käyttäen saadaan näytettyä eräitä rekursiokaavojenominaisuuksia. Palautetaan mieleen lohkomatriisien kertolasku (ks. Mate-matiikka 1), esimerkkinä 2×2-lohkojen tapaus: Jos matriisit

A =

A11 A12

A21 A22 ja B =

B11 B12

B21 B22

on lohkottu siten, että lävistäjälohkot A11 ja B11 ovat kerrottavissa ja sa-moin A22 sekä B22 ovat kerrottavissa, niin matriisitulon AB lohkoesitys onseuraava:

AB =

A11B11+A12B21 A11B12+A12B22

A21B11+A22B21 A21B12+A22B22

Vastaava kaava pätee yleisestikin. Kertolaskukaavaa tarvitaan mm. tapauk-sessa, jossa A=B, lohkot A11 sekä A22 ovat neliömatriiseja ja lohko A21 onnollamatriisi O21. Tällöin

A2 =

A

211 A11A12+A12A22

™™™™™™™™™™™™™™

O21 A222

ja jos vielä erikoisesti myös lohko A12 on nollamatriisi O12, niin

A2 =

A

211

O12

O21 A222

ja yleisesti

An =

A

n11

O12

O21 An22

Vielä voidaan todeta, että jos vektorit

e =

e1

™™

e2 ja p =

p1

™™

p2

on lohkottu kahteen osaan vastaten A:n lohkomista, niin

Page 70: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

67

eTA = (eT1 e

T2 )

A11 A12

O21 A22 = (eT

1 A11 eT1 A12+e

T2 A22)

sekä

Ap =

A11 A12

O21 A22

p1

™™

p2

=

A11p1+A12p2

™™™™™™™™

A22p2

ja erikoisesti (jos myös A12=O12)

(eT1 e

T2 )

A11 O12

O21 A22 = (eT

1 A11 eT2 A22)

sekä

A11 O12

O21 A22

p1

™™

p2

=

A11p1

™™™™

A22p2

.

Jonojen summan ja tulon rekursiokaavat

LAUSE 16. Jos jono f1(0),f1(1),… toteuttaa kertalukua k1 olevan LHVR:n jajono f2(0),f2(1),… kertalukua k2 olevan LHVR:n, niin jono f1(0)+f2(0),f1(1)+f2(1),… toteuttaa enintään kertalukua k1+k2 olevan LHVR:n ja jonof1(0)f2(0),f1(1)f2(1),… enintään kertalukua k1k2 olevan LHVR:n.

Todistus . Muodostetaan jonoille matriisiesitykset:

f1(n) = eT1 C

n1 p1 ja f2(n) = e

T2 C

n2 p2.

Silloin summajonolle f1(0)+f2(0),f1(1)+f2(1),… saadaan matriisesitys

f1(n)+f2(n) = (eT1 e

T2 )

C1 O1

O2 C2

n

p1

™™

p2

ja sitä vastaavan LHVR:n kertaluku on Lauseen 15 mukaan enintäänk1+k2.

Jonojen tuloa koskeva tulos todistetaan matriisien ns. Kronecker-tuloakäyttämällä. Yleisesti n1Æm1-matriisin

Page 71: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

68

A =

a11 ˘˘˘ a1m1

˘ ˘˘˘ ˘

an11 ˘˘˘ an1m1

ja n2Æm2-matriisin B Kronecker-tulo on n1n2Æm1m2-matriisi

a11B ˘˘˘ a1m1B—————————————

˘ ˘˘˘ ˘

—————————————an11B ˘˘˘ an1m1B

=merk. A ⊗ B

(lohkomuoto). Lohkomatriisien kertolaskukaavasta seuraa melko välittö-mästi, että mikäli matriisitulot AC ja BD ovat määritellyt, niin

(A ⊗ B)(C ⊗ D) = (AC) ⊗ (BD),

ja lohkomatriisin transponointikaavasta puolestaan, että (A⊗ B)T=AT⊗ BT.Edelleen, jos AB on määritelty, niin

(A ⊗ B)n = An ⊗ Bn.

Tulojonolle saadaan nyt matriisiesitys

f1(n)f2(n) = (eT1 C

n1 p1) ⊗ (eT

2 Cn2 p2) = ((eT

1 Cn1 ) ⊗ (eT

2 Cn2 ))(p1 ⊗ p2)

= (eT1 ⊗ e

T2 )(Cn

1 ⊗ Cn2 )(p1 ⊗ p2)

= (e1 ⊗ e2)T(C1 ⊗ C2)n(p1 ⊗ p2)

ja sitä vastaavan LHVR:n kertaluku on Lauseen 15 mukaan enintään k1k2.

Huom! Itse asiassa s. 65 olevan Huomautuksen mukaan eo. lauseessa ole-valle summajonolle saadaan myös nimenomaan kertalukua k1+k2 oleva

LHVR, jonka karakteristinen yhtälö on matriisin

C1 O1

O2 C2 karakteristinen

yhtälö. Näin ollen vastaava karakteristinen polynomi on C1:n karakteris-tisen polynomin ja C2:n karakteristisen polynomin tulo. Vastaavasti tulo-jonolle saadaan myös nimenomaan kertalukua k1k2 oleva LHVR, jonka ka-rakteristinen yhtälö on matriisin C1⊗ C2 karakteristinen yhtälö.

Epähomogeeninen tapaus

Toinen lohkomistekniikan antama tulos koskee tiettyjä epähomogeenisia li-neaarisia vakiokertoimisia rekursiokaavoja

Page 72: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

69

f(n+k) = ck-1f(n+k-1) +˘˘˘+ c0f(n) + g(n),

nimittäin sellaisia, missä jono g(0),g(1),… toteuttaa jonkin LHVR:n.

LAUSE 17. Jos jono f(0),f(1),… toteuttaa rekursiokaavan

f(n+k1) = ck1 -1f(n+k1-1) +˘˘˘+ c0f(n) + g(n)

(missä c0≠0) ja jono g(0),g(1),… puolestaan toteuttaa kertalukua k2 olevanLHVR:n, niin f(0),f(1),… toteuttaa myös enintään kertalukua k1+k2 olevanLHVR:n.

Todistus . Muodostetaan jonolle g(0),g(1),… matriisiesitys g(n) = eT2 C

n2 p2

(vastaten s. 64 olevaa esitystä) ja merkitään

ck1-1 ck1-2 … c1 c0

1 0 … 0 00 1 … 0 0

˘ ˘ ˘ ˘

0 0 … 1 0

= C1 sekä p1 =

f(k1-1)

f(k1-2)˘

˘

f(0)

Lohkomatriisiin ei nyt kelpaakaan oikeaksi ylälohkoksi nollamatriisi, vaank1Æk2-matriisi

0 … 0 1

0 … 0 0˘ ˘ ˘

0 … 0 0

=merk. D.

Kertolaskulla havaitaan silloin, että

f(n+k1)f(n+k1-1)

˘

f(n+1)™™™™™™

g(n+k2)g(n+k2-1)

˘

g(n+1)

=

C1 D

O C2

f(n+k1-1)f(n+k1-2)

˘

f(n)™™™™™™

g(n+k2-1)g(n+k2-2)

˘

g(n)

Jos otetaan käyttöön (k1+k2)-vektorit

Page 73: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

70

e =

010˘

0

← k1:s alkio ja p =

f(k1-1)f(k1-2)

˘

f(0)™™™™™™

g(k2-1)g(k2-2)

˘

g(0)

niin saadaan jonolle f(0),f(1),… matriisiesitys

f(n) = eT

C1 D

O C2

n

p.

Lauseen 15 mukaan f0),f(1),… toteuttaa silloin enintään kertalukua k1+k2olevan LHVR:n.

Huom! Itse asiassa s. 65 olevan Huomautuksen mukaan eo. lauseessa ole-valle jonolle f(0),f(1),… saadaan myös nimenomaan kertalukua k1+k2 oleva

LHVR, jonka karakteristinen yhtälö on matriisin

C1 D

O2 C2 karakteristinen

yhtälö. Näin ollen vastaava karakteristinen polynomi on C1:n karakteristi-sen polynomin ja C2:n karakteristisen polynomin tulo.

Eksponentiaalipolynomiesitys

Matriisiesityksestä päästään siirtymään ns. eksponentiaalipolynomiesityk -seen . Eksponentiaalipolynomi on muotoa

s1(n)rn1 + s2(n)r

n2 +˘˘˘+ sl(n)r

nl

oleva funktio, missä s1(n),…,sl(n) ovat (kompleksikertoimisia) polynomeja jar1,…,rl ovat (kompleksisia) vakioita.

Aputuloksena tarvitaan ns. Jordan-hajotelma (ks. 73109 Matriisilasken-ta 1): Jokainen neliömatriisi A voidaan kirjoittaa muotoon

A = SJS-1,

missä S on ei-singuläärinen matriisi ja J on ns. Jordanin lohkolävistäjä -matriisi , ts. muotoa

Page 74: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

71

J =

J1

J2 O

˘ O ˘ ˘ Ju

Lävistäjälohkot J1,…,Ju ovat ns. Jordanin lohkoja eli muotoa

λ 1 0 … 0 00 λ 1 … 0 0

˘ ˘ ˘ ˘ ˘

0 0 0 … λ 10 0 0 … 0 λ

olevia matriiseja, missä λ on A:n ominaisarvo. 1Æ1-lohko on skalaari (λ).Jordanin lohkot voivat olla eri kokoisia, sama ominaisarvo voi esiintyäuseissa eri lohkoissa ja nämäkin lohkot voivat olla eri kokoisia. Koska J onyläkolmiomatriisi ja sillä on samat ominaisarvot kuin A:lla (similaarisuus),ei Jordanin lohkon riviluku voi olla suurempi kuin siinä esiintyvän omi-naisarvon kertaluku.

Jordanin lohkolävistäjämatriisin J potenssiin korotus voidaan suorittaalohkoittain, ts.

Jn =

J

n1

˘ O ˘ O ˘

Jnu

jaAn = (SJS-1)n = SJnS-1.

Vielä tarvitaan Jordanin lohkon potenssi. Jos lohko on jÆj-matriisi, niin

λ 1 0 … 0 00 λ 1 … 0 0

˘ ˘ ˘ ˘ ˘

0 0 0 … λ 10 0 0 … 0 λ

n

=

λn

n

1 λn-1

n

2 λn-2 …

n

j-1 λn-j+1

0 λn

n

1 λn-1 …

n

j-2 λn-j+2

0 0 λn …

n

j-3 λn-j+3

˘ ˘ ˘ ˘

0 0 0 … λn

Page 75: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

72sillä kertomalla nähdään, että

λn

n

1 λn-1

n

2 λn-2 …

n

j-1 λn-j+1

0 λn

n

1 λn-1 …

n

j-2 λn-j+2

0 0 λn …

n

j-3 λn-j+3

˘ ˘ ˘ ˘

0 0 0 … λn

λ 1 0 … 0 00 λ 1 … 0 0

˘ ˘ ˘ ˘ ˘

0 0 0 … λ 10 0 0 … 0 λ

=

λn+1

n+1

1 λn

n+1

2 λn-1 …

n+1

j-1 λn-j+2

0 λn+1

n+1

1 λn …

n+1

j-2 λn-j+3

0 0 λn+1 …

n+1

j-3 λn-j+4

˘ ˘ ˘ ˘

0 0 0 … λn+1

Tässä käytetään binomiaali-identiteettiä

n+1

k =

n

k +

n

k-1

(ks. s. 40). Kun n < j-2, esiintyy mukana binomikertoimia

n

i , missä i>n.

Näille käytetään s. 39 esitettyä yleistä binomikertoimen määritelmää, jolloinne havaitaan nolliksi. Huomaa, että yo. identiteetti pätee kyllä näissäkin ta-pauksissa. Yleinen binomikertoimen määritelmä näyttää, että esiintyvät bi-nomikerroinlausekkeet ovat n:n polynomeja, joiden aste on enintään lohkonriviluku vähennettynä yhdellä.

Jordan-hajotelmaa sovelletaan tietysti LHVR:n oheismatriisiin C matriisie-sityksessä: C = SJS-1 ja

f(n) = eTCnp = eTSJnS-1p.

Jos merkitään

dT = eTS ja q = S-1p,

niin

f(n) = dTJnq,

Page 76: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

73ts. matriisiesitys voidaan antaa Jordanin lohkolävistäjämatriisin avulla jaJordanin lohkoissa esiintyvät ominaisarvot ovat karakteristisen yhtälön juu-ret. Jaetaan vielä vektorit d ja q lohkoihin J:n Jordanin lohkoja vastaavasti:

d =

d1

™™

d2

™™

˘

˘

™™

du

ja q =

q1

™™

q2

™™

˘

˘

™™

qu

Silloin

f(n) = ∑i=1

u d

Ti J

ni qi ,

josta välittömästi nähdään, että f(n) on n:n eksponentiaalipolynomi

f(n) = s1(n)rn1 + s2(n)r

n2 +˘˘˘+ sl(n)r

nl,

missä r1,…,rl ovat karakteristisen yhtälön juuret. Polynomin si(n) aste onenintään juuren ri kertaluku vähennettynä yhdellä. Huomaa, että juuretvoivat olla kompleksilukuja ja polynomit samoin kompleksikertoimisia. Eks-ponentiaalipolynomin arvo (=f(n)) on kuitenkin reaalinen, jos rekursiokaa-van kertoimet ja alkuarvot ovat reaalisia.

Maple osaa muodostaa eksponentiaalipolynomiesityksen (mutta on huomat-tava, että karakteristisen yhtälön juurille ei yleisesti ottaen saa muodostet-tua lausekkeita, kun kertaluku on > 5). Ratkaistaan esimerkkinä rekursio-kaava f(n+2) = 2f(n+1) - 3f(n) alkuarvoilla f(0) = f(1) = 1 ja lasketaan sittenf(100):n numeerinen arvo:

> fn:=normal(rsolve(f(n)=2*f(n-1)-3*f(n-2),f(0)=1,f(1)=1,f));

:= fn -32

+31

+1 I 2

n-3

1- +1 I 2

n

+1 I 2 - +1 I 2

> evalc(subs(n=100,fn));

203160711589551869872313

Huomaa, miten ratkaisu sisältää “kompleksisia termejä”, vaikka sen arvoonkin reaalinen:

Page 77: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

74> simplify(evalc(fn));

3

12 n

cos n arctan 2

Saatu f(100):n arvo on tarkka. Eksponenttitermeistä johtuen eksponentiaa-lipolynomi on epästabiili, jos jokin juurista r1,…,rl on itseisarvoltaan >1, javirhettä tulee numeerisesti laskettaessa helposti. Kokeillaan Maplella:

> evalc(subs(n=20,fn));evalf(subs(n=20,fn));

57113

+57113.00033 .3804794010 10-5 I

Yllä esitetty menettely eksponentiaalipolynomiesityksen saamiseksi ei olekovinkaan käytännöllinen, sillä Jordan-hajotelman laskeminen on erittäintyöläs tehtävä. (Se on monella tapaa pahasti epästabiili ja niinpä sitä ei löy-dy valmisohjelmistoistakaan.) Hajotelmaa tarvitaan kuitenkin vain osoitta-maan esityksen olemassaolo ja muoto. Kun se (ts. juuret r1,…,rl ja niidenkertaluvut) tiedetään, voidaan polynomeille s1(n),…,sl(n) asettaa määrää-mättömät kertoimet ja ratkaista ne merkitsemällä eksponentiaalipolynominarvot yhtäsuuriksi kuin alkuarvot. Saatu yhtälöryhmä määräämättömienkertoimien suhteen on lineaarinen ja siten helposti ratkaistavissa. NäinMaplekin tekee.

Huom! Myös voidaan osoittaa, että jokainen n:n eksponentiaalipolynomitoteuttaa jonkin LHVR:n.

Jonon termin suuruusluokan arviointi

Etsitään annetun LHVR:n toteuttavalle f(n):lle eksponentiaalipolynomiesi-tystä käyttäen Ο-notaatioarvio. f(n):n eksponentiaalipolynomiesitys on edelläolevan mukaan muotoa

f(n) = s1(n)rn1 + s2(n)r

n2 +˘˘˘+ sl(n)r

nl ,

missä r1,…,rl ovat karakteristisen yhtälön juuret ja polynomin si(n) aste onenintään juuren ri kertaluku vähennettynä yhdellä. Merkitään

ρ = l

maxi=1

(|ri|)

(maksimaalinen juuren itseisarvo) ja

Page 78: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

75

κ = l

maxi=1

|ri|=ρ

(ri:n kertaluku) - 1

(maksimaalista itseisarvoa olevan juuren maksimaalinen kertaluku vähen-nettynä yhdellä).

LAUSE 18. f(n) = Ο(nκρn)

Todistus . Käytetään Lauseen 11 kohtia (s. 52). Kolmioepäyhtälöä käyttäenvoidaan arvioida f(n):n itseisarvoa ylöspäin:

|f(n)| < s1(n)rn1 + s2(n)r

n2 +˘˘˘+ sl(n)r

nl

= |s1(n)||r1|n + |s2(n)||r2|n +˘˘˘+ |sl(n)||rl|n.

Edelleen kunkin polynomin si(n) itseisarvoa voidaan arvioida ylöspäin kol-mioepäyhtälöllä. Näin nähdään, että |f(n)| on enintään tiettyjen muotoacnν|ri|n olevien termien summa, missä c>0 on vakio ja ν on enintään ri:nkertaluku vähennettynä yhdellä. Kohtien (vii-ix) nojalla riittää näin ollennäyttää, että nν|ri|n = Ο(nκρn). Kaksi tapausta:

a) Jos |ri|<ρ, niin kohdan (iii) nojalla

nν = Ο

ρ

|ri|n

ja

nν|ri|n = |ri|n Ο

ρn

|ri|n (x)= Ο(ρn)

(vii)= 1˘Ο(ρn).

Edelleen kohdan (i) (tai kohdan (vi), jos κ=0) mukaan

1 = n0 = Ο(nκ),joten

nν|ri|n = Ο(nκ)Ο(ρn) (x)= Ο(nκρn).

b) Jos |ri|=ρ, niin ν < κ. Kohdan (i) (tai kohdan (vi), jos ν=κ) mukaan

nν = Ο(nκ). Edelleen kohdan (vi) mukaisesti |ri|n = Ο(ρn), joten

nν|ri|n = Ο(nκ)Ο(ρn) (x)= Ο(nκρn).

Esimerkiksi edellä Maplella saadusta eksponentiaalipolynomista voidaannäin todeta, että f(n) = Ο(( 3 )n).

Page 79: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

76

z-muunnos eli generoiva funktio

Jonon f(0),f(1),… z-muunnos eli generoiva funktio on z:n potenssisarja

∑n=0

∞ f(n)zn. *

Potenssisarja voidaan käsittää formaaliseksi , ts. sen suppenemista ei tar-kastella ja sarjoilla lasketaan käyttäen tavallisia potenssisarjojen laskuope-raatioita (ks. Matematiikka 2):

∑n=0

∞ f(n)zn ± ∑

n=0

∞ g(n)zn = ∑

n=0

∞ (f(n) ± g(n)) zn

∑n=0

∞ f(n)zn

∑n=0

∞ g(n)zn =∑

n=0

∑i+j=n

f(i)g(j) zn ( Cauchyn kertolasku ).

Toisaalta, jos sarjan suppenemissäde on ≠0, voidaan se käsittää tavallisek-si suppenevaksi potenssisarjaksi, jolloin yo. laskuoperaatiot ovat sallittuja(ks. Matematiikka 2).

Cauchyn tuloa vastaava operaatio jonoille on ns. konvoluutio. Jonojenf(0),f(1),… ja g(0),g(1),… konvoluutio on siis jono

f(0)g(0), ∑i+j=1

f(i)g(j), ∑

i+j=2

f(i)g(j),… .

Jos jono f(0),f(1),… toteuttaa LHVR:n, niin kumpi tahansa tulkinta voitai-

siin ottaa käyttöön. Sarjan∑n=0

∞ f(n)zn suppenemissäde on nimittäin Lauseen

18 nojalla vähintään sarjan ∑n=0

∞ nκρnzn suppenemissäde, joka on

limn→∞

(n-1)κρn-1

nκρn = 1ρ > 0.

LAUSE 19. Jos jono f(0),f(1),… toteuttaa kertalukua k olevan LHVR:n, jon-ka karakteristinen polynomi on P(r), niin sen z-muunnos on z:n rationaali-

funktio Q(z)R(z) , missä nimittäjä R(z) = zkP(1z ) ja Q(z):n aste on korkeintaan

* Monissa kirjoissa esiintyy z-muunnos ∑n=0

∞ f(n)z-n.

Page 80: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

77

k-1. (Tällöin ∑n=0

∞ f(n)zn on itse asiassa

Q(z)R(z) :n Maclaurinin sarja.)

Todistus . Käytetään jonon f(0),f(1),… matriisiesitystä f(n) = dTMnq, jolloin±P(λ) on M:n karakteristinen polynomi. Matriisijonon I,M,M2,… alkiojonottoteuttavat Lauseen 15 nojalla eräät LHVR:t. Mainittujen alkiojonojen

z-muunnokset muodostavat potenssisarja-alkioisen kÆk-matriisin ∑n=0

∞ Mnzn.

Alkioina esiintyvien potenssisarjojen suppenemissäteet ovat ≠0. Koska

(I - zM) ∑n=0

∞ Mnzn = ∑

n=0

∞ Mnzn - ∑

n=0

∞ Mn+1zn+1 = I,

on

∑n=0

∞ Mnzn = (I - zM)-1.

Näin ollen

∑n=0

∞ f(n)zn = ∑

n=0

∞ dTMnqzn = dT ∑

n=0

∞ Mnznq = dT(I - zM)-1pq

Cramerin säännön (ks. Matematiikka 1) nojalla dT(I - zM)-1q on z:n ratio-naalifunktio, jonka nimittäjä on

det(I - zM) = zk det(1z I - M) = zkP(1z )

ja jonka osoittaja on asteeltaan enintään k-1.

Lineaarisen vakiokertoimisen rekursiokaavan (kertalukua k) toteuttavanjonon z-muunnos on periaatteessa helppo löytää*: Kerrotaan rekursiokaavapuolittain zn+k:lla, summataan yli arvojen n = 0,1,2,… ja ratkaistaan saa-

dusta yhtälöstä

f n zn

n

( ) .=

∑0

Maplekin osaa tämän; otetaan edellä ollut esi-

merkki:

> rsolve(f(n)=2*f(n-1)-3*f(n-2),f(0)=1,f(1)=1,f,'genfunc'(z));

-- +1 z

− +1 2 z 3 z2

* Idea on sama kuin etsittäessä vastaavantyyppisen differentiaaliyhtälön ratkaisun

Laplace-muunnos, ks. 73107 Differentiaaliyhtälöt.

Page 81: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

78Lauseelle 19 käänteinenkin tulos pätee:

LAUSE 20. Jos Q(z)R(z) on z:n rationaalifunktio, jonka osoittajan Q(z) aste on

pienempi kuin nimittäjän R(z) aste k ja jonka nimittäjän R(z) vakiotermi a0

on ≠0, niin Q(z)R(z) on erään kertalukua k olevan LHVR:n toteuttavan jonon z-

muunnos. Lisäksi ko. LHVR:n karakteristinen polynomi on 1a0

zkR(1z ).

Todistus . Tarvittaessa supistamalla a0:lla voidaan olettaa, että R(z):n vakio-

termi on 1. Näin ollen R(z) on muotoa 1 + a1z +˘˘˘+ akzk. Kehitetään Q(z)R(z)

Maclaurinin sarjaksi: Q(z)R(z) = ∑

n=0

∞ f(n)zn (onnistuu, sillä R(0) = 1 ≠ 0). Silloin

R(z) ∑n=0

∞ f(n)zn = ∑

n=0

∞ R(z)f(n)zn = ∑

n=0

∞ (1 + a1z +˘˘˘+ akzk) f(n)zn

= ∑n=0

∞ f(n)zn + ∑

n=0

∞ a1f(n)zn+1 +˘˘˘+ ∑

n=0

∞ akf(n)zn+k

= ∑n=0

k-1 f(n)zn + ∑

n=0

k-2 a1f(n)zn+1 +˘˘˘+ ak-1f(0)zk-1

+ ∑n=0

∞ (f(n+k) + a1f(n+k-1) +˘˘˘+ akf(n)) zn+k

= Q(z).

Koska Q(z) on enintään astetta k-1 oleva polynomi, pitää olla

f(n+k) + a1f(n+k-1) +˘˘˘+ akf(n) = 0.

SEURAUS. Jos kaksi jonoa toteuttavat LHVR:t, joiden karakteristiset poly-nomit ovat P1(r) ja P2(r), niin niiden konvoluutio toteuttaa LHVR:n, jonkakarakteristinen polynomi on P1(r)P2(r).

Todistus . Mainittujen jonojen konvoluution z-muunnos on jonojen z-muun-nosten tulo.

Huom! Samaan tapaan saadaan uusi todistus Lauseen 16 jonojen summaakoskevalle osalle, sillä jonojen summan z-muunnos on niiden z-muun-nosten summa.

Page 82: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

79z-muunnosten käyttö antaa uuden tavan LHVR:n toteuttavan jonon ekspo-nentiaalipolynomiesityksen saamiseksi:

1) Muodostetaan jonon matriisiesitys f(n) = dTMnq ja lasketaan (esi-merkiksi Maplella tai Mathematicalla) dT(I - zM)-1q, tai muodoste-

taan z-muunnos Q(z)R(z) jollain muulla tavalla.

2) Muodostetaan Q(z)R(z) :n kompleksinen osamurtokehitelmä (ks. Ma-

tematiikka 2, Maplesta tai Mathematicasta lienee jälleen apua).

Kehitelmän termit ovat muotoa C

(z - ρi)j , missä C ja ρi ovat komp-

leksilukuja*.

3) Termin C

(z - ρi)j Maclaurinin sarja on ∑

n=0

C

-j

n (-ρi) -j-nzn. Kyseessä

on ns. binomisarja, ks. Matematiikka 2. Ks. yleinen binomiker-

toimen määritelmä, s. 39, siis

-1

n = (-1)n ja

-2

n = (-1)n(n+1), jne..

4) Laskemalla osamurtokehitelmän kaikkien termien binomisarjojen

kertoimet C

-j

n (-ρi) -j-n yhteen saadaan vaaditty eksponentiaalipo-

lynomiesitys.

* Itse asiassa ρi on karakteristisen yhtälön juuren ri inverssi ja j on enintään ko. juu-

ren kertaluku.

Page 83: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

Hakemisto

1. kertaluvun lineaarinen rekursiokaava61

1. kertaluvun logiikka 16absorptiolait 3aksioma 15aksiomakaavio 14aksiomatisointi 14alkuarvot 59atomi 6,19binomiaali-identiteetti 40binomikaava 40binomikerroin 37,39BNF-notaatio 6,19Boolen algebra 2Boolen funktio 16Cauchyn kertolasku 76Cayley–Hamiltonin lause 65CNF 4de Morganin lait 3depth-first-etsintä 31disjungointi 2disjunkti 4disjunktiivinen normaalimuoto 4disjunktio 2DNF 4duaalisuus 4eksistentiaalikvanttori 17eksklusiivinen tai 1eksponentiaalipolynomi 70eksponentiaalipolynomiesitys 70ekvivalenssi 5,21epähomogeeninen lineaarinen rekursio-

kaava 59,68epälineaarinen rekursiokaava 59Euklideen algoritmi 58funktio 16,19,20generoiva funktio 63,75Gosperin algoritmi 44HCNF 30Heijastusperiaate 43Heikko Stirlingin kaava 49Herbrandin algoritmi 29Herbrandin universumi 28homogeeninen lineaarinen rekursiokaava

59Hornin konjunkti 30Hornin konjunktiivinen normaalimuoto

30hyvin muodostettu lauseke 20idempotenssilait 3implikaatio 4infiksinotaatio 20Inkluusio-ekskluusio-periaate 45,49ja-konnektiivi 1johtopäätös 5Jordan-hajotelma 70Jordanin lohko 71Jordanin lohkolävistäjämatriisi 70jäännösluokka 57

kaikkikvanttori 16karakteristinen polynomi 63karakteristinen yhtälö 63katto 55kerroinfunktio 59kertalukunotaatio 51ketjusääntö 6kieltokuvio 47klausa 4kombinaatio 37komplementäärisyyslaki 3kongruenssi 57kongruenssilaskenta 57konjungointi 2konjunkti 4konjunktiivinen normaalimuoto 4konjunktio 2konnektiivi 1konvoluutio 76Kronecker-tulo 68KS 6kvanttori 16kysely 31Laatikkoperiaate 44lause 1lauselogiikka 1LHVR 62liitäntälait 2lineaarinen rekursiokaava 59literaali 4,19looginen operaatio 1matriisiesitys 63,64McEliecen lause 56moduli 57modus ponens 5MP 5muuttuja 16,19,20negaatio 2negaatio äärellisen tuloksettoman haun

kautta 36negatiivinen Hornin konjunkti 30negeeraus 2oheismatriisi 62olemassaolokvanttori 17osamurtokehitelmä 63,78osittelulait 2Pascalin kolmio 43permutaatio 37permutaatiomatriisi 46permutaatiotaulukko 46pohja 55positiivinen Hornin konjunkti 30predikaatti 16,19,20predikaattikalkyyli 18predikaattilogiikka 16prefiksinotaatio 20premissi 6premissiksi siirto 9prenex-normaalimuoto 23

Page 84: ALGORITMI- MATEMATIIKKA - math.tut.fimath.tut.fi/~ruohonen/AM.pdf · 1 I LAUSELOGIIKKA ELI PROPOSITIOLOGIIKKA 1. Perusoperaatiot ja totuustaulut Lauselogiikka käsittelee ns. propositioita

PROLOG 31PROLOG-ohjelma 31propositio 1päättely 5,21päättelyketju 6päättelysääntö 5RAA 10,11,21reductio ad absurdum 10,11,21rekursiokaava 38,59rekursiokaavan kertaluku 59rengaspermutaatio 45rengassana 46rengasvariaatio 46resoluutio 12,25resoluutiosääntö 11sana 37sekoitus 47sekoituspermutaatio 47sidottu muuttuja 17sijoitus 8sijoitussääntö 22Skolemin funktio 24Skolemin muunnos 23Skolemin normaalimuoto 23Skolemin vakio 23Stirlingin kaava 49summaava tekijä 61syntaksi 6,19syntaktinen johto 14tai-konnektiivi 1tautologia 7termi 19todistus 15toistokombinaatio 37toistovariaatio 37tornipolynomi 48toteutuminen 23totuusarvo 1totuustaulu 1tyhjä konjunkti 14unifikaatio 26universaalikvanttori 16vaihdantalait 2vakio 19,20vakiokertoiminen lineaarinen rekursio-

kaava 62Vandermonden konvoluutiokaavat 43vapaa muuttuja 17variaatio 37WFF 20yhdennys 26yleisin yhdentäjä 27yleistetyt de Morganin lait 19z-muunnos 63,75äärellisen maailman oletus 36