Simplex-menetelm. S ysteemianalyysin. 3. luento: Suuret LP-tehtävät sekä operaatiot harvoilla vektoreilla ja matriiseilla

Koko: px
Aloita esitys sivulta:

Download "Simplex-menetelm. S ysteemianalyysin. 3. luento: Suuret LP-tehtävät sekä operaatiot harvoilla vektoreilla ja matriiseilla"

Transkriptio

1 Simplex-menetelm menetelmän laskennalliset tekniikat 3. luento: Suuret LP-tehtävät sekä operaatiot harvoilla vektoreilla ja matriiseilla Matemaattisten algoritmien ohjelmointi Kevät 28 / 1 Suuret LP-teht tehtävät sekä operaatiot harvoilla vektoreilla ja matriiseilla Suuret LP-tehtävät Harvat vektorit Harvat matriisit Linkitetty lista Matemaattisten algoritmien ohjelmointi Kevät 28 / 2 1

2 Suuret LP-teht tehtävät Realistiset ongelmat helposti suuria Suuri muuttunut ajan kuluessa: Nykyään > 1 rajoitetta 196-luvulla muutama sata rajoitetta 195-luvulla suuri TSP 49 kaupunkia Algoritmisuunnittelun haaste: luotettavuus ja tehokkuus Suuret LP-tehtävät ajaneet ratkaisumenetelmien kehitystä eteenpäin Matemaattisten algoritmien ohjelmointi Kevät 28 / 3 LP-teht tehtävän n muistintarve LP-tehtävän koko matriisin A mukaan: mn Tyypillisesti matriisin alkiot tallennetaan 8 tavun (64 bitin) liukulukuina Matriisin A tallentamiseen tarvitaan 8mn tavua Jos A:ssa 1 riviä ja 2 saraketta, muistia tarvitaan 1.6 GB! Matemaattisten algoritmien ohjelmointi Kevät 28 / 4 2

3 Harvuus Tyypillisesti vain muutamia nollasta poikkeavia alkioita (keskimäärin 5-1 saraketta kohden) Merkitään: ν = nollasta poikkeavien alkioiden lukumäärä Matriisin (vektorin) tiheys: ( A) ν A ρ = mn 1 rajoitetta => tiheys <.1% Super harvuus: nollasta poikkeavilla alkioilla ainoastaan muutamia arvoja, esim. ±1 Matemaattisten algoritmien ohjelmointi Kevät 28 / 5 Adlittle.mps (56 riviä,, 97 saraketta) Nonzero pattern of Adlittle (56 rows, 97 columns) Column Row Matemaattisten algoritmien ohjelmointi Kevät 28 / 6 3

4 Greenpea.mps (2392 riviä,, 545 saraketta) Nonzero pattern of Greenbea (2392 rows, 545 columns) Column Row Matemaattisten algoritmien ohjelmointi Kevät 28 / 7 Kannan kääk äänteismatriisin päivittp ivittäminen Kannan vaihdon yhteydessä matriisi A kerrotaan matriisilla E (Elementary Transformation Matrix) Suurissa tehtävissä harvat matriisit, mutta näillä on taipumus täyttyä 1 O 1 η M p η M m η O a M a M a 1 p m 1 a 1 + a pη M = p a pη M m am + a pη Matemaattisten algoritmien ohjelmointi Kevät 28 / 8 4

5 Täyttyminen p x = η a Matemaattisten algoritmien ohjelmointi Kevät 28 / 9 Numeeriset ongelmat Liukulukujen tarkkuudesta voi seurata numeerisia ongelmia: pyöristysvirheet virheet matriisin/vektorin alkioiden kumoutumisessa Seurauksia: Epätarkka ratkaisu Väärä optimaalinen kanta Väärä vastaus koko tehtävään Singulaarinen kanta Käyvästä ratkaisusta epäkäypään Matemaattisten algoritmien ohjelmointi Kevät 28 / 1 5

6 Numeeristen ongelmien ratkaisuja Kannan käänteismatriisi lasketaan ajoittain uudestaan Kannan käänteismatriisin esitys: tulomuodossa (PFI) LU-hajotelmana Kaikki suuret LP-tehtävät eivät ole numeerisesti ongelmallisia! Matemaattisten algoritmien ohjelmointi Kevät 28 / 11 Simplexin tietorakenteet Harvojen vektorien ja matriisien tallennus ja käyttö ratkaisee Simplex-toteutuksen onnistumisen Staattiset tietorakenteet: Tarvittava muistin määrä tiedetään etukäteen Tieto ei muutu Esim. matriisi A Dynaamiset tietorakenteet: Koko ja tiedot muuttuvat jatkuvasti Muistin määrää ei voi ennustaa Esim. kannan kääntäminen tai hajottaminen Matemaattisten algoritmien ohjelmointi Kevät 28 / 12 6

7 Harvojen vektorien tallentaminen Voidaan tallentaa täysimittaisina vektoreina Pakattu muoto: tallennetaan ainoastaan nollasta poikkeavat alkiot (indeksi, arvo)-pareina: ( i, vi ), i Ζ Erilliset kokonaisluku- ja liukulukutaulukot T Esim. v = [ 1,,, 3,1 ] Ζ = { 1,4,5 }, Ζ = 3 Length 3 Index Value 1, -3, 1, Tietorakenne voi olla järjestetty tai järjestämätön Matemaattisten algoritmien ohjelmointi Kevät 28 / 13 Perusoperaatiot harvoilla vektoreilla Kokoaminen (gather): täysimittainen (eksplisiittinen) vektori kootaan pakattuun muotoon Hajottaminen (scatter): pakattu vektori puretaan eksplisiittiseen muotoon Yleensä yksi harva vektori hajautetaan väliaikaiseen työtaulukkoon w w:n alkiot alustetaan nolliksi vain kerran w:n nollasta poikkeavat alkiot palautetaan operaation suorittamisen jälkeen nolliksi Siis: vältetään suurten työtaulukoiden alustamista! Matemaattisten algoritmien ohjelmointi Kevät 28 / 14 7

8 Harvan vektorin kerryttäminen Tyypillinen operaatio Simplex-menetelmässä: m u : = u + λv, u, v R Operaatio voitaisiin suorittaa suoraan järjestämättömillä pakatuilla vektoreilla Tehokkaampaa on hajottaa toinen vektori työtaulukkoon w Oletetaan täysimittainen työtaulukko alustettuna nollaksi m w R w:n alkioita muutetaan operaation aikana, mutta lopuksi se palautetaan nollaksi Matemaattisten algoritmien ohjelmointi Kevät 28 / 15 Harvojen vektorien kerryttäminen: menetelmä 1 1. Hajota vektori v työtaulukkoon w. 2. Jokaiselle u:n nollasta poikkeavalle u i :lle, tarkista vastaava w i. Jos wi poikkeaa nollasta, päivitä u i := u i + λw i. Aseta w i =. 3. Jokaiselle v:n nollasta poikkeavalle v i :lle, tarkista vastaava w i. Jos w i poikkeaa nollasta, u i := λv i. Lisää uusi alkio u:n tietorakenteeseen. Aseta w i =. Matemaattisten algoritmien ohjelmointi Kevät 28 / 16 8

9 Harvojen vektorien kerryttäminen: menetelmä 2 1. Hajota vektori u työtaulukkoon w. 2. Jokaiselle v:n nollasta poikkeavalle v i :lle, tarkista w i. Jos w i poikkeaa nollasta, päivitä w i := w i + λv i, muuten aseta w i := λv i. Lisää i u:n tietorakenteeseen. 3. Käy läpi muuttunut u:n tietorakenne ja aseta u i := w i. Aseta w i =. Matemaattisten algoritmien ohjelmointi Kevät 28 / 17 Menetelmien vertailua Jos vektorit ovat järjestetyssä tietorakenteessa, näiden skannaus voidaan tehdä ilman hajotusta Tällöin uuden alkion lisääminen vektoriin u voi tuhota järjestyksen Menetelmä 1 on tehokkaampi kuin menetelmä 2, jos vektoriin u lisätään vain yksi vektori Menetelmä 2 on tehokkaampi, jos vektoriin u lisätään useita vektoreita Operaatioiden lukumäärä riippuu vain nollasta poikkeavien alkioiden lukumäärästä, ei vektoreiden todellisesta koosta (m)! Matemaattisten algoritmien ohjelmointi Kevät 28 / 18 9

10 Pistetulo harvoilla vektoreilla Kahden vektorin u ja v pistetulo: u Oletetaan jälleen nollaksi alustettu työtaulukko w Alustetaan tulos dotprod := 1. Hajota vektori u työtaulukkoon w. 2. Jokaiselle vektorin v nollasta poikkeavalle alkiolle v i, päivitä dotprod := dotprod + v i w i. 3. Jokaiselle vektorin u nollasta poikkeavalle alkiolle u i, aseta w i =. T v = m i= 1 u v i i Matemaattisten algoritmien ohjelmointi Kevät 28 / 19 Harvojen matriisien tallentaminen Helppo tapa: kokoelma harvoja pysty- (tai vaaka-) vektoreita Sarakkeiden nollasta poikkeavat alkiot tallennetaan samaan taulukkoon peräkkäin Jokaisen sarakkeen alkukohta tallennetaan erikseen Jos sarakkeita ei tallenneta peräkkäin, pitää jokaisen sarakkeen pituus tallentaa erikseen Staattinen tietorakenne, pääasiallinen käyttökohde matriisin A tallentaminen (vain rakenteelliset muuttujat!) Matemaattisten algoritmien ohjelmointi Kevät 28 / 2 1

11 Esimerkki harvan matriisin tallentamisesta 1 A = Index Column begin Column length Row index Value 1, -1, -1, -1, 4, 2, -3, 2, -1, 1, Matemaattisten algoritmien ohjelmointi Kevät 28 / 21 Linkitetty lista Dynaaminen tietorakenne Tarkoituksena välttää turhat etsimisoperaatiot Jokaiseen listan alkioon liitetään linkki (tai osoitin) seuraavaan alkioon Listan viimeisestä alkiosta lähtevä linkki on väärä Linkki listan alkuun (header) tallennetaan erikseen Matriisi voidaan tallentaa harvojen linkitettyjen pystyvektorien kokoelmana Matemaattisten algoritmien ohjelmointi Kevät 28 / 22 11

12 Esimerkki linkitetystä listasta 1 A = Index Column header Row index Value -1, 2, -3, 4, 1, -1, 2, 1, -1, -1, Row link Matemaattisten algoritmien ohjelmointi Kevät 28 / 23 Alkion lisää ääminen linkitettyyn listaan Vektori v = [3,,, 7,, 4, 2,, ] T, muutetaan v 9 = 3 Index Header 1 Row index Value 7, 4, 3, 2, Row link Index Header 6 Row index * 9 Value 7, 4, 3, 2, * 3, Row link * 1 Matemaattisten algoritmien ohjelmointi Kevät 28 / 24 12

13 Alkion poistaminen linkitetystä listasta Vektori v = [3,,, 7,, 4, 2,, 3] T, muutetaan v 1 = Index Header 6 Row index * 9 Value 7, 4, 3, 2, * 3, Row link * 1 Index Header 6 Row index 4 6 * 7 * 9 Value 7, 4, * 2, * 3, Row link 2 4 * * 1 Matemaattisten algoritmien ohjelmointi Kevät 28 / 25 Kahteen suuntaan linkitetty lista 1 A = Index CF header CB header Row index Value -1, 2, -3, 4, 1, -1, 2, 1, -1, -1, RF link RB link Matemaattisten algoritmien ohjelmointi Kevät 28 / 26 13

14 Kun pystyvektorit eivät t riitä Esim. kannan kääntämisessä pitää tietää vaakavektorit, joissa on yhtä monta nollasta poikkeavaa alkiota Kannan kääntäminen hidastuu, jos joudutaan tutkimaan koko matriisi Tarvitaan siis tietorakenne, joka linkittää matriisin A vaakavektorit sopivasti toisiinsa Matemaattisten algoritmien ohjelmointi Kevät 28 / 27 Vaakavektoreiden joukot Muodostetaan joukot vaakavektoreista, joilla sama määrä nollasta poikkeavia alkioita Jokaiselle joukolle muodostetaan oma linkitetty lista Vaakavektoreiden linkitettyjen listojen kokonaispituus voi olla enintään m Kaikki linkitetyt listat samaan taulukkoon Osoittimet erottelevat listat toisistaan Matemaattisten algoritmien ohjelmointi Kevät 28 / 28 14

15 Eteen- ja taaksepäin linkitetty lista Olkoon n nollasta poikkeavien alkioiden maksimimäärä riviä kohden Matriisissa on m riviä, jotka täytyy jakaa listoihin Muodostetaan kaksi taulukkoa kooltaan m+n, sekä eteen- että taaksepäin linkeille Ensimmäiset m paikkaa taulukossa on varattu vaakavektoreiden linkeille Paikat m+1 n ovat vaakavektorilistojen alkuosat Listaan m+i linkitetään kaikki vaakavektorit, joissa i kpl nollasta poikkeavia alkioita, m+1 m+i m+ n Matemaattisten algoritmien ohjelmointi Kevät 28 / 29 Listan alustus Kaikkien listojen alkuosat osoittavat itseensä Tyhjät rivit on poistettu flink blink Matemaattisten algoritmien ohjelmointi Kevät 28 / 3 15

16 Alkion lisäys listaan Aluksi vaakavektori 7 lisätään listaan 5, eli vaakavektorissa 7 on 5 nollasta poikkeavaa alkiota flink blink Matemaattisten algoritmien ohjelmointi Kevät 28 / 31 Toisen alkion lisäys listaan Vaaka vektori 1 lisätään listaan 5 flink blink Matemaattisten algoritmien ohjelmointi Kevät 28 / 32 16

17 Alkion poistaminen listasta Poistetaan vaakavektori 7 flink blink Matemaattisten algoritmien ohjelmointi Kevät 28 / 33 Paluu alkutilaan Poistetaan vaakavektori 1 Nyt kaikkien listojen alkuosat osoittavat itseensä flink blink Matemaattisten algoritmien ohjelmointi Kevät 28 / 34 17

18 Yhteenveto Tietorakenteiden suunnittelussa joskus kannattaa säästää muistia ja joskus tuhlata Minkä tahansa algoritmin tärkein ominaisuus harvoilla matriiseilla ja vektoreilla: laskentaoperaatioiden lukumäärä ei riipu matriisin tai vektorin todellisesta koosta vaan nollasta poikkeavien alkioiden lukumäärästä. Linkitettyä listaa voidaan käyttää useisiin eri tarkoituksiin Simplexissä: Matriisin/vektorin tallennus staattisesti/dynaamisesti Nollasta poikkeavien alkioiden määrä rivillä nopeasti Matemaattisten algoritmien ohjelmointi Kevät 28 / 35 Kirjallisuutta Adler, I. et al (1989). Data Structures and Programming Techniques for the Implementation of Karmarkar s Algorithm. ORSA Journal on Computing 1, Duff, I. et al (1986). Direct Methods for Sparse Matrices. Oxford Science Publications. Clarendon Press, Oxford. Gay, D. (1985). Electronic mail distribution of linear programming test problems. COAL Newsletter 13, Matemaattisten algoritmien ohjelmointi Kevät 28 / 36 18

19 Kirjallisuutta George, A. and Liu, W.-H. (1981). Computing Solution of Large Sparse Positive Definite Systems. Prentice-Hall, Englewood Cliffs, N.J. Greenberg, H., editor (1978). Design and Implementation of Optimization Software, NATO ASI. Sijthoff and Nordhoff. Gustavson, F. (1972). Some basic techniques for solving sparse systems of linear equations, in Sparse Matrices and Their Applications, Plenum Press. Kalan, J. (1971). Aspects of Large-Scale In-Core Linear Programming, in Proceedings of the 1971 annual conference of the ACM, pp ACM. Matemaattisten algoritmien ohjelmointi Kevät 28 / 37 19

1.1. Määritelmiä ja nimityksiä

1.1. Määritelmiä ja nimityksiä 1.1. Määritelmiä ja nimityksiä Luku joko reaali- tai kompleksiluku. R = {reaaliluvut}, C = {kompleksiluvut} R n = {(x 1, x 2,..., x n ) x 1, x 2,..., x n R} C n = {(x 1, x 2,..., x n ) x 1, x 2,..., x

Lisätiedot

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi).

Osittaistuenta Gaussin algoritmissa: Etsitään 1. sarakkeen itseisarvoltaan suurin alkio ja vaihdetaan tämä tukialkioiksi (eli ko. rivi 1. riviksi). Liukuluvut Tietokonelaskuissa käytetään liukulukuja: mikä esittää lukua ± α α α M β k ± ( M α i β i )β k, i= β on järjestelmän kantaluku, α α M liukuluvun mantissa, α,, α M lukuja,,,, β, siten että α Esimerkki

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 5 Ti 20.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 5 Ti 20.9.2011 p. 1/40 p. 1/40 Choleskyn menetelmä Positiivisesti definiiteillä matriiseilla kolmiohajotelma

Lisätiedot

Tieto- ja tallennusrakenteet

Tieto- ja tallennusrakenteet Tieto- ja tallennusrakenteet Sisältö Tyyppi, abstrakti tietotyyppi, abstraktin tietotyypin toteutus Tallennusrakenteet Taulukko Linkitetty rakenne Abstraktit tietotyypit Lista (Puu) (Viimeisellä viikolla)

Lisätiedot

Johdatus tekoälyn taustalla olevaan matematiikkaan

Johdatus tekoälyn taustalla olevaan matematiikkaan Johdatus tekoälyn taustalla olevaan matematiikkaan Informaatioteknologian tiedekunta Jyväskylän yliopisto 5. luento.2.27 Lineaarialgebraa - Miksi? Neuroverkon parametreihin liittyvät kaavat annetaan monesti

Lisätiedot

Algoritmit 1. Luento 4 Ke Timo Männikkö

Algoritmit 1. Luento 4 Ke Timo Männikkö Algoritmit 1 Luento 4 Ke 18.1.2017 Timo Männikkö Luento 4 Tietorakenteet Pino Pinon toteutus Jono Jonon toteutus Lista Listaoperaatiot Algoritmit 1 Kevät 2017 Luento 4 Ke 18.1.2017 2/29 Pino Pino, stack,

Lisätiedot

Algoritmit 2. Luento 2 To Timo Männikkö

Algoritmit 2. Luento 2 To Timo Männikkö Algoritmit 2 Luento 2 To 14.3.2019 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2019 Luento

Lisätiedot

Käänteismatriisin ominaisuuksia

Käänteismatriisin ominaisuuksia Käänteismatriisin ominaisuuksia Lause 1.4. Jos A ja B ovat säännöllisiä ja luku λ 0, niin 1) (A 1 ) 1 = A 2) (λa) 1 = 1 λ A 1 3) (AB) 1 = B 1 A 1 4) (A T ) 1 = (A 1 ) T. Tod.... Ortogonaaliset matriisit

Lisätiedot

811312A Tietorakenteet ja algoritmit II Perustietorakenteet

811312A Tietorakenteet ja algoritmit II Perustietorakenteet 811312A Tietorakenteet ja algoritmit 2017-2018 II Perustietorakenteet Sisältö 1. Johdanto 2. Pino 3. Jono 4. Lista 811312A TRA, Perustietorakenteet 2 II.1. Johdanto Tietorakenne on tapa, jolla algoritmi

Lisätiedot

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9.

Matriisit ovat matlabin perustietotyyppejä. Yksinkertaisimmillaan voimme esitellä ja tallentaa 1x1 vektorin seuraavasti: >> a = 9.81 a = 9. Python linkit: Python tutoriaali: http://docs.python.org/2/tutorial/ Numpy&Scipy ohjeet: http://docs.scipy.org/doc/ Matlabin alkeet (Pääasiassa Deni Seitzin tekstiä) Matriisit ovat matlabin perustietotyyppejä.

Lisätiedot

Algoritmit 1. Luento 9 Ti Timo Männikkö

Algoritmit 1. Luento 9 Ti Timo Männikkö Algoritmit 1 Luento 9 Ti 7.2.2017 Timo Männikkö Luento 9 Graafit ja verkot Kaaritaulukko, bittimatriisi, pituusmatriisi Verkon lyhimmät polut Floydin menetelmä Lähtevien ja tulevien kaarien listat Forward

Lisätiedot

2.8. Kannanvaihto R n :ssä

2.8. Kannanvaihto R n :ssä 28 Kannanvaihto R n :ssä Seuraavassa kantavektoreiden { x, x 2,, x n } järjestystä ei saa vaihtaa Vektorit ovat pystyvektoreita ( x x 2 x n ) on vektoreiden x, x 2,, x n muodostama matriisi, missä vektorit

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 21.3.2017 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2017 Luento 3 Ti 21.3.2017

Lisätiedot

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a 21

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 3 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten muuttujiin liittyvät kysymykset. Tehtävä 1. Määritä muuttujien max_num, lista,

Lisätiedot

Algoritmit 1. Luento 5 Ti Timo Männikkö

Algoritmit 1. Luento 5 Ti Timo Männikkö Algoritmit 1 Luento 5 Ti 24.1.2017 Timo Männikkö Luento 5 Järjestetty lista Järjestetyn listan operaatiot Listan toteutus taulukolla Binäärihaku Binäärihaun vaativuus Algoritmit 1 Kevät 2017 Luento 5 Ti

Lisätiedot

Algoritmit 2. Luento 3 Ti Timo Männikkö

Algoritmit 2. Luento 3 Ti Timo Männikkö Algoritmit 2 Luento 3 Ti 20.3.2018 Timo Männikkö Luento 3 Järjestäminen eli lajittelu Kekorakenne Kekolajittelu Hajautus Yhteentörmäysten käsittely Ketjutus Algoritmit 2 Kevät 2018 Luento 3 Ti 20.3.2018

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 3 Ti 13.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 3 Ti 13.9.2011 p. 1/37 p. 1/37 Epälineaariset yhtälöt Newtonin menetelmä: x n+1 = x n f(x n) f (x n ) Sekanttimenetelmä:

Lisätiedot

Algoritmit 2. Luento 4 Ke Timo Männikkö

Algoritmit 2. Luento 4 Ke Timo Männikkö Algoritmit 2 Luento 4 Ke 22.3.2017 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2017 Luento 4

Lisätiedot

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017

Matriisilaskenta (TFM) MS-A0001 Hakula/Vuojamo Ratkaisut, Viikko 47, 2017 Matriisilaskenta (TFM) MS-A1 Hakula/Vuojamo Ratkaisut, Viikko 47, 17 R Alkuviikko TEHTÄVÄ J1 Mitkä matriisit E 1 ja E 31 nollaavat sijainnit (, 1) ja (3, 1) matriiseissa E 1 A ja E 31 A kun 1 A = 1. 8

Lisätiedot

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen

4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen 4.5 Kaksivaiheinen menetelmä simplex algoritmin alustukseen Käypä kantaratkaisu löytyy helposti, esimerkiksi tapauksessa Ax b, b 0 x 0 jolloin sen määräävät puutemuuttujat. Tällöin simplex-menetelmän alustus

Lisätiedot

Algoritmit 2. Luento 2 Ke Timo Männikkö

Algoritmit 2. Luento 2 Ke Timo Männikkö Algoritmit 2 Luento 2 Ke 15.3.2017 Timo Männikkö Luento 2 Tietorakenteet Lineaarinen lista, binääripuu Prioriteettijono Kekorakenne Keko-operaatiot Keon toteutus taulukolla Algoritmit 2 Kevät 2017 Luento

Lisätiedot

Algoritmit 2. Luento 6 To Timo Männikkö

Algoritmit 2. Luento 6 To Timo Männikkö Algoritmit 2 Luento 6 To 28.3.2019 Timo Männikkö Luento 6 B-puun operaatiot Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2019 Luento 6 To 28.3.2019 2/30 B-puu 40 60 80 130 90 100

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-2.34 Lineaarinen ohjelmointi..27 Luento 5 Simplexin implementaatioita (kirja 3.2-3.5) Lineaarinen ohjelmointi - Syksy 27 / Luentorunko (/2) Simplexin implementaatiot Naiivi Revised Full tableau Syklisyys

Lisätiedot

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä

3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä 1 3 Lineaariset yhtälöryhmät ja Gaussin eliminointimenetelmä Lineaarinen m:n yhtälön yhtälöryhmä, jossa on n tuntematonta x 1,, x n on joukko yhtälöitä, jotka ovat muotoa a 11 x 1 + + a 1n x n = b 1 a

Lisätiedot

Algoritmit 1. Luento 6 Ke Timo Männikkö

Algoritmit 1. Luento 6 Ke Timo Männikkö Algoritmit 1 Luento 6 Ke 25.1.2017 Timo Männikkö Luento 6 Järjestetty lista Listan toteutus dynaamisesti Linkitetyn listan operaatiot Vaihtoehtoisia listarakenteita Puurakenteet Binääripuu Järjestetty

Lisätiedot

Rakenteiset tietotyypit Moniulotteiset taulukot

Rakenteiset tietotyypit Moniulotteiset taulukot C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen

Lisätiedot

2.5. Matriisin avaruudet ja tunnusluvut

2.5. Matriisin avaruudet ja tunnusluvut 2.5. Matriisin avaruudet ja tunnusluvut m n-matriisi A Lineaarikuvaus A : V Z, missä V ja Z ovat sopivasti valittuja, dim V = n, dim Z = m (yleensä V = R n tai C n ja Z = R m tai C m ) Kuva-avaruus ja

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 4 To 15.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 4 To 15.9.2011 p. 1/38 p. 1/38 Lineaarinen yhtälöryhmä Lineaarinen yhtälöryhmä matriisimuodossa Ax = b

Lisätiedot

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007

Ville Turunen: Mat Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007 Ville Turunen: Mat-1.1410 Matematiikan peruskurssi P1 1. välikokeen alueen teoriatiivistelmä 2007 Materiaali: kirjat [Adams R. A. Adams: Calculus, a complete course (6th edition), [Lay D. C. Lay: Linear

Lisätiedot

12. luento: Simplexin implementointi Mallinnusjärjestelmät. Simplexin implementointiin liittyviä asioita

12. luento: Simplexin implementointi Mallinnusjärjestelmät. Simplexin implementointiin liittyviä asioita Simplex-menetelm menetelmän laskennalliset tekniikat 12. luento: Simplexin implementointi Mallinnusjärjestelmät Matemaattisten algoritmien ohjelmointi Kevät 2008 / 1 Simplexin implementointiin liittyviä

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

1 Kannat ja kannanvaihto

1 Kannat ja kannanvaihto 1 Kannat ja kannanvaihto 1.1 Koordinaattivektori Oletetaan, että V on K-vektoriavaruus, jolla on kanta S = (v 1, v 2,..., v n ). Avaruuden V vektori v voidaan kirjoittaa kannan vektorien lineaarikombinaationa:

Lisätiedot

Matriisilaskenta Luento 8: LU-hajotelma

Matriisilaskenta Luento 8: LU-hajotelma Matriisilaskenta Luento 8: LU-hajotelma Antti Rasila 2016 Matriisihajotelmat 1/2 Usein matriisiyhtälön Ax = y ratkaiseminen on epäkäytännöllistä ja hidasta. Siksi numeerisessa matriisilaskennassa usein

Lisätiedot

A274101 TIETORAKENTEET JA ALGORITMIT

A274101 TIETORAKENTEET JA ALGORITMIT A274101 TIETORAKENTEET JA ALGORITMIT PERUSTIETORAKENTEET LISTA, PINO, JONO, PAKKA ABSTRAKTI TIETOTYYPPI Tietotyyppi on abstrakti, kun se on määritelty (esim. matemaattisesti) ottamatta kantaa varsinaiseen

Lisätiedot

Algoritmit 2. Luento 4 To Timo Männikkö

Algoritmit 2. Luento 4 To Timo Männikkö Algoritmit 2 Luento 4 To 21.3.2019 Timo Männikkö Luento 4 Hajautus Yhteentörmäysten käsittely Avoin osoitteenmuodostus Hajautusfunktiot Puurakenteet Solmujen läpikäynti Algoritmit 2 Kevät 2019 Luento 4

Lisätiedot

Algoritmit 1. Luento 1 Ti Timo Männikkö

Algoritmit 1. Luento 1 Ti Timo Männikkö Algoritmit 1 Luento 1 Ti 10.1.2017 Timo Männikkö Luento 1 Algoritmi Algoritmin toteutus Ongelman ratkaiseminen Algoritmin tehokkuus Algoritmin suoritusaika Algoritmin analysointi Algoritmit 1 Kevät 2017

Lisätiedot

BM20A0700, Matematiikka KoTiB2

BM20A0700, Matematiikka KoTiB2 BM20A0700, Matematiikka KoTiB2 Luennot: Matti Alatalo, Harjoitukset: Oppikirja: Kreyszig, E.: Advanced Engineering Mathematics, 8th Edition, John Wiley & Sons, 1999, luku 7. 1 Kurssin sisältö Matriiseihin

Lisätiedot

Talousmatematiikan perusteet

Talousmatematiikan perusteet kevät 219 / orms.13 Talousmatematiikan perusteet 9. harjoitus, viikko 12 (18.3. 22.3.219) L Ma 1 12 A22 R5 Ti 14 16 F453 R1 Ma 12 14 F453 L To 8 1 A22 R2 Ma 16 18 F453 R6 Pe 12 14 F14 R3 Ti 8 1 F425 R7

Lisätiedot

Insinöörimatematiikka D

Insinöörimatematiikka D Insinöörimatematiikka D M Hirvensalo mikhirve@utufi V Junnila viljun@utufi Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M Hirvensalo mikhirve@utufi V Junnila viljun@utufi Luentokalvot 5 1

Lisätiedot

Algoritmit 1. Luento 10 Ke Timo Männikkö

Algoritmit 1. Luento 10 Ke Timo Männikkö Algoritmit 1 Luento 10 Ke 14.2.2018 Timo Männikkö Luento 10 Algoritminen ongelmanratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Lisäyslajittelu Valintalajittelu Permutaatiot

Lisätiedot

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi

Talousmatematiikan perusteet: Luento 11. Lineaarikuvaus Matriisin aste Käänteismatriisi Talousmatematiikan perusteet: Luento 11 Lineaarikuvaus Matriisin aste Käänteismatriisi Viime luennolla Käsittelimme matriisien peruskäsitteitä ja laskutoimituksia Vakiolla kertominen, yhteenlasku ja vähennyslasku

Lisätiedot

Algoritmit 1. Luento 12 Ti Timo Männikkö

Algoritmit 1. Luento 12 Ti Timo Männikkö Algoritmit 1 Luento 12 Ti 19.2.2019 Timo Männikkö Luento 12 Osittamisen tasapainoisuus Pikalajittelun vaativuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu Algoritmit

Lisätiedot

Sisältö. 22. Taulukot. Yleistä. Yleistä

Sisältö. 22. Taulukot. Yleistä. Yleistä Sisältö 22. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko metodin parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 22.1 22.2 Yleistä

Lisätiedot

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006

Harjoitus 1: Matlab. Harjoitus 1: Matlab. Mat Sovelletun matematiikan tietokonetyöt 1. Syksy 2006 Harjoitus 1: Matlab Mat-2.2107 Sovelletun matematiikan tietokonetyöt Syksy 2006 Mat-2.2107 Sovelletun matematiikan tietokonetyöt 1 Harjoituksen aiheita Tutustuminen Matlab-ohjelmistoon Laskutoimitusten

Lisätiedot

Insinöörimatematiikka D

Insinöörimatematiikka D Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2015 M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi Luentokalvot

Lisätiedot

Insinöörimatematiikka D

Insinöörimatematiikka D Insinöörimatematiikka D Mika Hirvensalo mikhirve@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2014 Mika Hirvensalo mikhirve@utu.fi Luentokalvot 3 1 of 16 Kertausta Lineaarinen riippuvuus

Lisätiedot

1 Matriisit ja lineaariset yhtälöryhmät

1 Matriisit ja lineaariset yhtälöryhmät 1 Matriisit ja lineaariset yhtälöryhmät 11 Yhtälöryhmä matriisimuodossa m n-matriisi sisältää mn kpl reaali- tai kompleksilukuja, jotka on asetetettu suorakaiteen muotoiseksi kaavioksi: a 11 a 12 a 1n

Lisätiedot

Käänteismatriisi 1 / 14

Käänteismatriisi 1 / 14 1 / 14 Jokaisella nollasta eroavalla reaaliluvulla on käänteisluku, jolla kerrottaessa tuloksena on 1. Seuraavaksi tarkastellaan vastaavaa ominaisuutta matriiseille ja määritellään käänteismatriisi. Jokaisella

Lisätiedot

Inversio-ongelmien laskennallinen peruskurssi Luento 3

Inversio-ongelmien laskennallinen peruskurssi Luento 3 Inversio-ongelmien laskennallinen peruskurssi Luento 3 Kevät 2011 1 Singulaariarvohajotelma (Singular Value Decomposition, SVD) Olkoon A R m n matriisi 1. Tällöin A voidaan esittää muodossa A = UΣV T,

Lisätiedot

4.6 Matriisin kääntäminen rivioperaatioilla

4.6 Matriisin kääntäminen rivioperaatioilla Vaasan liopiston julkaisuja 9 kuva.plot(,n, k-o,,n, k-s,,n3, k-d ); kuva.set_label( kausi ); kuva.set_label( lkm ); kuva.ais([,,,8]); kuva = fig.add_subplot(); kuva.plot(,tulo, k-o ); kuva.set_label( kausi

Lisätiedot

1 Ominaisarvot ja ominaisvektorit

1 Ominaisarvot ja ominaisvektorit 1 Ominaisarvot ja ominaisvektorit Olkoon A = [a jk ] n n matriisi. Tarkastellaan vektoriyhtälöä Ax = λx, (1) 1 missä λ on luku. Sellaista λ:n arvoa, jolla yhtälöllä on ratkaisu x 0, kutsutaan matriisin

Lisätiedot

Algoritmit 2. Luento 6 Ke Timo Männikkö

Algoritmit 2. Luento 6 Ke Timo Männikkö Algoritmit 2 Luento 6 Ke 29.3.2017 Timo Männikkö Luento 6 B-puun operaatiot B-puun muunnelmia Nelipuu Trie-rakenteet Standarditrie Pakattu trie Algoritmit 2 Kevät 2017 Luento 6 Ke 29.3.2017 2/31 B-puu

Lisätiedot

Numeeriset menetelmät TIEA381. Luento 4. Kirsi Valjus. Jyväskylän yliopisto. Luento 4 () Numeeriset menetelmät / 44

Numeeriset menetelmät TIEA381. Luento 4. Kirsi Valjus. Jyväskylän yliopisto. Luento 4 () Numeeriset menetelmät / 44 Numeeriset menetelmät TIEA381 Luento 4 Kirsi Valjus Jyväskylän yliopisto Luento 4 () Numeeriset menetelmät 21.3.2013 1 / 44 Luennon 4 sisältö Lineaarisen yhtälöryhmän ratkaisemisesta: Choleskyn menetelmä

Lisätiedot

MS-A0004/A0006 Matriisilaskenta

MS-A0004/A0006 Matriisilaskenta 4. MS-A4/A6 Matriisilaskenta 4. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto..25 Tarkastellaan neliömatriiseja. Kun matriisilla kerrotaan vektoria, vektorin

Lisätiedot

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi.

1 + b t (i, j). Olkoon b t (i, j) todennäköisyys, että B t (i, j) = 1. Siis operaation access(j) odotusarvoinen kustannus ajanhetkellä t olisi. Algoritmien DP ja MF vertaileminen tapahtuu suoraviivaisesti kirjoittamalla kummankin leskimääräinen kustannus eksplisiittisesti todennäköisyyksien avulla. Lause T MF ave = 1 + 2 1 i

Lisätiedot

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi.

Matriisilaskenta. Harjoitusten 3 ratkaisut (Kevät 2019) 1. Olkoot AB = ja 2. Osoitetaan, että matriisi B on matriisin A käänteismatriisi. Matriisilaskenta Harjoitusten ratkaisut (Kevät 9). Olkoot ja A = B = 5. Osoitetaan, että matriisi B on matriisin A käänteismatriisi. Tapa Käänteismatriisin määritelmän nojalla riittää osoittaa, että AB

Lisätiedot

Algoritmit 2. Luento 9 Ti Timo Männikkö

Algoritmit 2. Luento 9 Ti Timo Männikkö Algoritmit 2 Luento 9 Ti 17.4.2018 Timo Männikkö Luento 9 Merkkitiedon tiivistäminen Huffmanin koodi LZW-menetelmä Taulukointi Editointietäisyys Algoritmit 2 Kevät 2018 Luento 9 Ti 17.4.2018 2/29 Merkkitiedon

Lisätiedot

Matematiikka B2 - Avoin yliopisto

Matematiikka B2 - Avoin yliopisto 6. elokuuta 2012 Opetusjärjestelyt Luennot 9:15-11:30 Harjoitukset 12:30-15:00 Tentti Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus

Lisätiedot

Lineaarialgebra ja matriisilaskenta I

Lineaarialgebra ja matriisilaskenta I Lineaarialgebra ja matriisilaskenta I 30.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/19 Käytännön asioita Kurssi on suunnilleen puolessa välissä. Kannattaa tarkistaa tavoitetaulukosta, mitä on oppinut ja

Lisätiedot

Determinantti 1 / 30

Determinantti 1 / 30 1 / 30 on reaaliluku, joka on määritelty neliömatriiseille Determinantin avulla voidaan esimerkiksi selvittää, onko matriisi kääntyvä a voidaan käyttää käänteismatriisin määräämisessä ja siten lineaarisen

Lisätiedot

Ennakkotehtävän ratkaisu

Ennakkotehtävän ratkaisu Ennakkotehtävän ratkaisu Ratkaisu [ ] [ ] 1 3 4 3 A = ja B =. 1 4 1 1 [ ] [ ] 4 3 12 12 1 0 a) BA = =. 1 + 1 3 + 4 0 1 [ ] [ ] [ ] 1 0 x1 x1 b) (BA)x = =. 0 1 x 2 x [ ] [ ] [ 2 ] [ ] 4 3 1 4 9 5 c) Bb

Lisätiedot

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö

Algoritmit 1. Luento 10 Ke 11.2.2015. Timo Männikkö Algoritmit 1 Luento 10 Ke 11.2.2015 Timo Männikkö Luento 10 Algoritminen ongelman ratkaisu Suunnittelumenetelmät Raaka voima Järjestäminen eli lajittelu Kuplalajittelu Väliinsijoituslajittelu Valintalajittelu

Lisätiedot

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät

Matriisi-vektori-kertolasku, lineaariset yhtälöryhmät Matematiikan peruskurssi K3/P3, syksy 25 Kenrick Bingham 825 Toisen välikokeen alueen ydinasioita Alla on lueteltu joitakin koealueen ydinkäsitteitä, joiden on hyvä olla ensiksi selvillä kokeeseen valmistauduttaessa

Lisätiedot

Lineaariset kongruenssiyhtälöryhmät

Lineaariset kongruenssiyhtälöryhmät Lineaariset kongruenssiyhtälöryhmät LuK-tutkielma Jesse Salo 2309369 Matemaattisten tieteiden laitos Oulun yliopisto Sisältö Johdanto 2 1 Kongruensseista 3 1.1 Kongruenssin ominaisuuksia...................

Lisätiedot

Algoritmit 1. Luento 12 Ke Timo Männikkö

Algoritmit 1. Luento 12 Ke Timo Männikkö Algoritmit 1 Luento 12 Ke 15.2.2017 Timo Männikkö Luento 12 Pikalajittelu Pikalajittelun vaativuus Osittamisen tasapainoisuus Lajittelumenetelmien vaativuus Laskentalajittelu Lokerolajittelu Kantalukulajittelu

Lisätiedot

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

A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Esimerkki otteluvoiton todennäköisyys A ja B pelaavat sarjan pelejä. Sarjan voittaja on se, joka ensin voittaa n peliä. Yksittäisessä pelissä A voittaa todennäköisyydellä p ja B todennäköisyydellä q =

Lisätiedot

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24

LU-hajotelma. Esimerkki 1 Matriisi on yläkolmiomatriisi ja matriisi. on alakolmiomatriisi. 3 / 24 LU-hajotelma 1 / 24 LU-hajotelma Seuravassa tarkastellaan kuinka neliömatriisi voidaan esittää kahden kolmiomatriisin tulona. Käytämme alkeismatriiseja tälläisen esityksen löytämiseen. Edellä mainittua

Lisätiedot

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari 1 1. JOHDANTO 1.1 Määritelmiä 1.2 Tietorakenteen ja algoritmin valinta 1.3 Algoritmit ja tiedon määrä 1.4 Tietorakenteet ja toiminnot 1.5 Esimerkki:

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

Algoritmit 1. Luento 8 Ke Timo Männikkö

Algoritmit 1. Luento 8 Ke Timo Männikkö Algoritmit 1 Luento 8 Ke 1.2.2017 Timo Männikkö Luento 8 Järjestetty binääripuu Solmujen läpikäynti Binääripuun korkeus Binääripuun tasapainottaminen Graafit ja verkot Verkon lyhimmät polut Fordin ja Fulkersonin

Lisätiedot

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio

Ellipsoidimenetelmä. Samuli Leppänen Kokonaislukuoptimointi. S ysteemianalyysin Laboratorio Ellipsoidimenetelmä Kokonaislukuoptimointi Sovelletun matematiikan lisensiaattiseminaari Kevät 2008 / 1 Sisällys Ellipsoidimenetelmän geometrinen perusta ja menetelmän idea Formaali ellipsoidimenetelmä

Lisätiedot

Algoritmit 1. Luento 7 Ti Timo Männikkö

Algoritmit 1. Luento 7 Ti Timo Männikkö Algoritmit 1 Luento 7 Ti 31.1.2017 Timo Männikkö Luento 7 Järjestetty binääripuu Binääripuiden termejä Binääripuiden operaatiot Solmun haku, lisäys, poisto Algoritmit 1 Kevät 2017 Luento 7 Ti 31.1.2017

Lisätiedot

Algoritmit 2. Luento 5 Ti Timo Männikkö

Algoritmit 2. Luento 5 Ti Timo Männikkö Algoritmit 2 Luento 5 Ti 26.3.2019 Timo Männikkö Luento 5 Puurakenteet B-puu B-puun korkeus B-puun operaatiot B-puun muunnelmia Algoritmit 2 Kevät 2019 Luento 5 Ti 26.3.2019 2/34 B-puu B-puut ovat tasapainoisia

Lisätiedot

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45

Numeeriset menetelmät TIEA381. Luento 3. Kirsi Valjus. Jyväskylän yliopisto. Luento 3 () Numeeriset menetelmät / 45 Numeeriset menetelmät TIEA381 Luento 3 Kirsi Valjus Jyväskylän yliopisto Luento 3 () Numeeriset menetelmät 20.3.2013 1 / 45 Luennon 3 sisältö Luku 2: Epälineaarisen yhtälön ratkaiseminen Polynomin reaaliset

Lisätiedot

Kokonaislukuoptiomointi Leikkaustasomenetelmät

Kokonaislukuoptiomointi Leikkaustasomenetelmät Kokonaislukuoptiomointi Leikkaustasomenetelmät Systeemianalyysin Laboratorio 19.3.2008 Sisällys Leikkaustasomenetelmät yleisesti Leikkaustasomenetelmät generoivilla kokonaislukujoukoilla Gomoryn leikkaavat

Lisätiedot

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma. 2. Taulukot 2.1 Sisältö Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.2 Yleistä

Lisätiedot

Muita rekisteriallokaatiomenetelmiä

Muita rekisteriallokaatiomenetelmiä TIE448 Kääntäjätekniikka, syksy 2009 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 23. marraskuuta 2009 Sisällys Sisällys Seuraava deadline Vaihe E tiistai 1.12. klo 10 koodigenerointi (ilman rekisteriallokaatiota)

Lisätiedot

Esimerkki: Tietoliikennekytkin

Esimerkki: Tietoliikennekytkin Esimerkki: Tietoliikennekytkin Tämä Mathematica - notebook sisältää luennolla 2A (2..26) käsitellyn esimerkin laskut. Esimerkin kuvailu Tarkastellaan yksinkertaista mallia tietoliikennekytkimelle. Kytkimeen

Lisätiedot

Algoritmit 1. Luento 2 Ke Timo Männikkö

Algoritmit 1. Luento 2 Ke Timo Männikkö Algoritmit 1 Luento 2 Ke 11.1.2017 Timo Männikkö Luento 2 Algoritmin esitys Algoritmien analysointi Suoritusaika Asymptoottinen kertaluokka Peruskertaluokkia NP-täydelliset ongelmat Algoritmit 1 Kevät

Lisätiedot

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4

s = 11 7 t = = 2 7 Sijoittamalla keskimmäiseen yhtälöön saadaan: k ( 2) = 0 2k = 8 k = 4 BM0A5800 Funktiot, lineaarialgebra ja vektorit Harjoitus 5, Syksy 05. (a) i. Jotta vektori c sijaitsisi a:n ja b:n virittämällä tasolla, c on voitava esittää a:n ja b:n lineaarikombinaationa. c ta + sb

Lisätiedot

Tietorakenteet ja algoritmit - syksy 2015 1

Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 1 Tietorakenteet ja algoritmit - syksy 2015 2 Tietorakenteet ja algoritmit Johdanto Ari Korhonen Tietorakenteet ja algoritmit - syksy 2015 1. JOHDANTO 1.1 Määritelmiä

Lisätiedot

ACKERMANNIN ALGORITMI. Olkoon järjestelmä. x(k+1) = Ax(k) + Bu(k)

ACKERMANNIN ALGORITMI. Olkoon järjestelmä. x(k+1) = Ax(k) + Bu(k) ACKERMANNIN ALGORITMI Olkoon järjestelmä x(k+1) = Ax( + Bu( jossa x( = tilavektori (n x 1) u( = ohjaus (skalaari) A (n x n matriisi) B (n x 1 matriisi) Oletetaan, että ohjaus u( = Kx( on rajoittamaton.

Lisätiedot

18. Abstraktit tietotyypit 18.1

18. Abstraktit tietotyypit 18.1 18. Abstraktit tietotyypit 18.1 Sisällys Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu

811312A Tietorakenteet ja algoritmit, 2014-2015, Harjoitus 7, ratkaisu 832A Tietorakenteet ja algoritmit, 204-205, Harjoitus 7, ratkaisu Hajota ja hallitse-menetelmä: Tehtävä 7.. Muodosta hajota ja hallitse-menetelmää käyttäen algoritmi TULOSTA_PUU_LASKEVA, joka tulostaa

Lisätiedot

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt

MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt MS-C1340 Lineaarialgebra ja differentiaaliyhtälöt Matriisinormi, häiriöalttius Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2015 1 / 14 R. Kangaslampi matriisiteoriaa Matriisinormi

Lisätiedot

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua

S: siirtää listan ensimmäisen luvun viimeiseksi V: vaihtaa keskenään listan kaksi ensimmäistä lukua A Lista Sinulle on annettu lista, joka sisältää kokonaisluvut 1, 2,, n jossakin järjestyksessä. Tehtäväsi on järjestää luvut pienimmästä suurimpaan käyttäen seuraavia operaatioita: S: siirtää listan ensimmäisen

Lisätiedot

7.4 Sormenjälkitekniikka

7.4 Sormenjälkitekniikka 7.4 Sormenjälkitekniikka Tarkastellaan ensimmäisenä esimerkkinä pitkien merkkijonojen vertailua. Ongelma: Ajatellaan, että kaksi n-bittistä (n 1) tiedostoa x ja y sijaitsee eri tietokoneilla. Halutaan

Lisätiedot

Matematiikka B2 - TUDI

Matematiikka B2 - TUDI Matematiikka B2 - TUDI Miika Tolonen 3. syyskuuta 2012 Miika Tolonen Matematiikka B2 - TUDI 1 Kurssin sisältö (1/2) Matriisit Laskutoimitukset Lineaariset yhtälöryhmät Gaussin eliminointi Lineaarinen riippumattomuus

Lisätiedot

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea.

Department of Mathematics, Hypermedia Laboratory Tampere University of Technology. Roolit Verkostoissa: HITS. Idea. Roolit Tommi Perälä Department of Mathematics, Hypermedia Laboratory Tampere University of Technology 25.3.2011 J. Kleinberg kehitti -algoritmin (Hypertext Induced Topic Search) hakukoneen osaksi. n taustalla

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen

Lisätiedot

Johdatus verkkoteoriaan luento Netspace

Johdatus verkkoteoriaan luento Netspace Johdatus verkkoteoriaan luento 3.4.18 Netspace Matriisioperaatio suunnatuissa verkoissa Taustoitusta verkkoteorian ulkopuolelta ennen kuljetusalgoritmia LP-ongelma yleisesti LP = linear programming =

Lisätiedot

Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä

Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä Luento 5: Suurten lineaaristen yhtälöryhmien ratkaiseminen iteratiivisilla menetelmillä Matriisit voivat olla kooltaan niin suuria, että LU-hajotelman laskeminen ei ole järkevä tapa ratkaista lineaarista

Lisätiedot

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa

lähtokohta: kahden O(h) korkuisen keon yhdistäminen uudella juurella vie O(h) operaatiota vrt. RemoveMinElem() keossa Kekolajittelu Prioriteettijonolla toteutettu keko InsertItem ja RemoveMinElem: O(log(n)) Lajittelu prioriteettijonolla: PriorityQueueSort(lajiteltava sekvenssi S) alusta prioriteettijono P while S.IsEmpty()

Lisätiedot

Mat Lineaarinen ohjelmointi

Mat Lineaarinen ohjelmointi Mat-.4 Lineaarinen ohjelmointi..7 Luento 7 Duaalisimple ja herkkyysanalyysi (kirja 4.5, 5., 5.5-5.6) Lineaarinen ohjelmointi - Syksy 7 / Duaalisimple Herkkyysanalyysi Luentorunko Parametrinen ohjelmointi

Lisätiedot

2. Perustietorakenteet

2. Perustietorakenteet 2. Perustietorakenteet Tässä osassa käsitellään erilaisia perustietorakenteita, joita algoritmit käyttävät toimintansa perustana. Aluksi käydään läpi tietorakenteen abstrakti määritelmä. Tämän jälkeen

Lisätiedot

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin:

Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: A Numeropeli Numeropelissä 3x3-ruudukko sisältää luvut 1, 2,, 9. Tehtäväsi on järjestää ruudukko näin: 1 2 3 4 5 6 7 8 9 Voit jokaisella siirrolla vaihtaa keskenään kaksi vierekkäistä lukua vaaka- tai

Lisätiedot

Sisältö. 2. Taulukot. Yleistä. Yleistä

Sisältö. 2. Taulukot. Yleistä. Yleistä Sisältö 2. Taulukot Yleistä. Esittely ja luominen. Alkioiden käsittely. Kaksiulotteinen taulukko. Taulukko operaation parametrina. Taulukko ja HelloWorld-ohjelma. Taulukko paluuarvona. 2.1 2.2 Yleistä

Lisätiedot

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto Sisällys 18. bstraktit tietotyypit Johdanto abstrakteihin tietotyyppeihin. Pino ja jono. Linkitetty lista. Pino linkitetyllä listalla toteutettuna. 18.1 18.2 Johdanto Javan omat tietotyypit ovat jo tuttuja:

Lisätiedot