Rinnakkaistietokoneet luento S
|
|
- Topi Niemi
- 7 vuotta sitten
- Katselukertoja:
Transkriptio
1 Rinnakkaistietokoneet luento S
2 Silmukkamuunnokset Silmukkamuunnoksilla silmukat muunnetaan joihinkin edellä esitettyihin rinnakkaismuotoihin Jakson kutistaminen (cycle shrinking) tämä muunnos soveltuu tapauksiin joissa riippuvuussykli liittyy iteraatioihin jotka ovat kaukana toisistaan Muuttaa sarjamuotoisen DO-silmukan kahdeksi sisäkkäiseksi silmukaksi: ulompi silmukka on sarjamuotoinen ja sisempi rinnakkaismuodossa Jakson kutistaminen erottaa lauseiden riippumattomat osat ja muodostaa rinnakkaisen sisäsilmukan
3 Esim: do i=1,n, step 1 a(i+k) = b(i) 1 b(i+k) = a(i) + c(i) Silmukalla on vakio riippuvuussykli jossa jokainen riippuvuusvektori on muotoa d = k (luotua muuttujaa käytetään k iteraation päästä: a ja b muuttujat) Jos riippuvuuden etäisyys on suurempi kuin 1, eli k > 1, voidaan silmukka muuttaa nopeampaan muotoon: do i1=1,n, step k doall i=i1, i1 + k 1 a(i+k) = b(i) 1 b(i+k) = a(i) + c(i) all... i1 i1+1 i k = 3
4 Jos silmukassa on useita vakioriippuvuuksia, silmukan läpikäyntiaikaa voidaan pienentää riippuvuuksien minimietäisyyteen verrannollisella tekijällä Esim: do i = 1,n x(i) = y(i) + z(i) y(i+3) = x(i-4)*w(i) Silmukalla on kaksi riippuvuutta: toinen pituudeltaan 3 (y:n kautta) ja toinen 4 (x:n kautta) Tämä tarkoittaa, että silmukka voidaan suorittaa kolmen (= min(3, 4)) iteraation samanaikaisissa lohkoissa: do j = 1,n, step 3 doall i = j, j+2 x(i) = y(i) + z(i) y(i+3) = x(i-4)*w(i) all
5 Katsotaan seuraavaksi silmukkaa jonka iteraatioavaruus on moniulotteinen Esim: do i = 3, n do j = 5, m a(i,j) = b(i-3,j-5) b(i,j) = a(i-2,j-4) Riippuvuusmatriisi on: D 2 = d1 d2 i j
6 Jakson kutistamista voidaan soveltaa molempiin indekseihin erikseen, eli riippuvuusmatriisin riveihin Ulompi silmukka voidaan kutistaa tekijän 2 = min(2,3) verran ja sisempi silmukka tekijän 4 = min(4,5) verran, eli: do i1 = 3,N, step 2 do j1 = 5,m, step 4 doall i = i1, i1 + 1 doall j = j1, j1 + 3 a(i,j) = b(i-3,j-5) i b(i,j) = a(i-2,j-4) all all j Uudessa silmukassa lauseet evaluoidaan 2 x 4 kokoisissa (iteraatioavaruuden) lohkoissa samanaikaisesti Kuten kaikissa silmukoissa, joissa on iteraatioiden välisiä riippuvuuksia täytyy reunaehto (boundary condition) olla määritelty, eli iteraatiot joiden riippuvuudet vievät silmukassa käytävän iteraatioavaruuden ulkopuolelle pitää olla määriteltyjä (ts. muuttujilla näiden riippuvuuksien alkupäässä on jokin määritetty alkuarvo)
7 Muunnetussa silmukassa suoritetaan 8 (= 4 x 2) operaatiota samanaikaisesti, mikä antaan kahdeksan kertaisen suoritusnopeuden Riippuvuusvektorien tarkempi analyysi kertoo, että silmukan suoritusaikaa voidaan edelleen pienentää soveltamalla valikoitua kutistamista (selective shrinking): tämä tarkoittaa, että usein riittä uloimman silmukan kutistaminen ja muuntaa sisemmät silmukan DOALL-rakenteeksi (=rinnakkaiseksi) Edellisessä esimerkissä riittää ulomman silmukan kutistaminen: j iteraatiot suoritetaan samanaikaisesti Tämä on mahdollista, koska uloimman silmukan kutistaminen hoitelee riippuvuuden oikein automaattisesti: do i1 = 3, n, step 2 doall i = i1, i1+1 doall j = 5,m a(i,j) = b(i-3,j-5) b(i,j) = a(i-2,j-4) all all i d1 2 d2 j
8 Silmukan keskinäisvaihto (loop interchange) silmukoiden järjestys vaihdetaan: pidetään huoli, että koodin oikeellisuus säilyy esim. edellisessä esimerkissä vaihtamalla sisä- ja ulkosilmukka keskenään saadaan kutistustekijää suurennettua kahdesta neljään, mikä mahdollistaa enemmän rinnakkaisuutta Silmukan keskinäisvaihto on sallittu toimenpide, jos uudet riippuvuusvektorit pysyvät positiivisina Esim. seuraava silmukka ei sovellu keskinäisvaihtomuunnokseen: do i = 1,n do j = 1,n a(i,j) = a(i-1,j+1) + b(i-2,j) d = [1-1] i j Jos silmukat i ja silmukka j vaihdetaan keskenään, riippuvuusvektorista tulee negatiivinen, mikä tarkoittaa, että oikea suoritusjärjestys menetetään: riippuvuusvektori osoitaa menneisyyteen ts. muuttujan käyttäjä on menneisyydessä, eli tuottaja on myöhässä Huom: riippuvuusvektori on negatiivinen, jos sen osoittaa siitä indeksiavaruuden pisteestä missä muuttuja luotiin, pienempään käyttäjän pisteeseen ( menneisyyteen )
9 Kuva 3.12: Riippuvuudet esimerkissä 3.11 suoritusjärjestys jos silmukat vaihdetaan keskenään: riippuvuuksia rikotaan, koodi ei toimi oikein d = [-1 1] (j,i)-avaruudessa muunnoksen jälkeen
10 Seuraavassa esimerkissä (esim. 3.12) silmukat voidaan vaihtaa: do j = 1,n do i = 1,n a(i,j) = a(i-1,j) + b(i-2,j) Silmukka vastaa toiminnaltaan seuraavaa silmukaa: do i = 1,n do j = 1,n a(i,j) = a(i-1,j) + b(i-2,j)
11 Kuva 3.13: datariippuvuudet esimerkissä 3.12 indeksi J voidaan vektoroida muunnoksen jälkeen: voidaan laskea saman aikaisesti, koska ei riippuvuuksia J iteraatioiden välillä
12 Seuraavassa esimerkissä (esim. 3.13) tarkastellaan useampi indeksistä silmukkaa: do i = 0,9 do j = 0,9 do k = 0,9 a(i,j) = a(i,j) + b(i,k) * c(j,k) Silmukan lauseeseen voidaan täydentää puuttuvat indeksit: a(i,j,k) = a(i,j,k-1) + b(i,j,k) * c(i,j,k) Silmukassa esiintyy yksi riippuvuusvektori d = (0,0,1) T, mistä nähdään, että riippuvuudet ovat indeksin k suunnassa: silmukkaa k ei voida suorittaa rinnakkain Vaihtamalla silmukoiden k ja i järjestystä voidaan j- ja i-silmukka suorittaa samanaikaisesti (ei riippuvuuksia (i,j)-tasossa) Silmukan suoritus nopeutuu 100 kertaisesti (10x10x10 10)
13 Silmukan yhdistäminen (loop fusion) Tekniikkaa käytetään yhdistämään kaksi peräkkäistä silmukkarakennetta yhdeksi silmukaksi Datariippuvuuksien määrittelemää laskentajärjestystä ei saa rikkoa esim. seuraavat silmukat voidaan yhdistää do i = 1,n S1: a(i) = b(i) + c(i+1) do i = 1,n S2: c(i) = a(i-1) Silmukaksi: do i = 1,n S1: a(i) = b(i) + c(i+1) S2: c(i) = a(i-1) koska datariippuvuus suhteita ei rikota yhdistetyssä silmukassa
14 Seuraavia silmukoita ei voida yhdistää: do i = 1,n S1: a(i) = b(i) + c(i+1) S1 do i = 1,n S2: c(i) = a(i+2) S2 sillä yhdistäminen: do i = 1,n S1: a(i) = b(i) + c(i+1) S2: c(i) = a(i+2) S1 S2 muuttaisi lauseen S2 datariippuvuuden lauseesta S1 (1. silmukasta) epäriippuvuudeksi S2:sta S1:een (S2 lukee muuttujan ennen sen tuottamista lauseessa S1) t t silmukka 1 silmukka 2 yhdistetty silmukka
15 Silmukan yhdistämistä käytetään normaaleissa kääntäjissä vähentämään silmukoiden aiheuttamaa yleisrasitetta (overhead) Silmukan yhdistäminen vähentää myös DOALL silmukoiden tapauksessa silmukan alustamiseen liittyviä rasitteita: alustus täytyy tehdä vain kerran
16 Silmukan purku (loop collapsing) Silmukan purku yhdistää kaksi sisäkkäistä silmukka yhdeksi silmukaksi Tekniikkaa voidaan hyödyntää, kun riippuvuuksien määräämää laskentajärjestystä ei rikota Tekniikka muuntaa silmukan yksiulotteiseksi määrittelemällä muuttujien indeksi käytetyn indeksin funktioina Esim: do i = 1,4 do j = 1,5 a(i,j) = a(i,j-1) 3 voidaan kirjoittaa muodossa do k = 1,20 i = roof(k/5) j = k mod 5 a(i,j) = a(i,j-1) 3 Huom! kirjan esimerkeissä kirjan tekijä on käyttänyt mod-operatiota siten, että a mod a = a, eli esim. 5 mod 5 = 5, eli x mod 5 = 1,2,3,4,5,1,2,3,..., kun x = 1,2,3,4,5,6,7,8,...
17 Silmukan jakaminen Eräät ohjelmat voidaan jakaa itsenäisiksi (tai lähes itsenäisiksi) yksinkertaisemmiksi ohjelmiksi Jakaminen voi johtaa laskentaan käytetyn ajan lyhenemiseen Jakamistapa voidaan johtaa analysoimalla laskennallisten osasten riippuvuuksia: mitä vähemmän riippuvuuksia osien välillä, sitä paremmin jakaminen on tehty
18 Esim: do i = 1,m a(i) = a(i-2) 3 Silmukassa on yksi riippuvuus d = 2 Koska d > 1, voidaan silmukka jakamalla muodostaa kaksi itsenäistä prosessia, jotka suorittavat itsenäisesti oman osan ohjelman suorituksesta: prosessi 1: do i = 1,floor( (m-1)/2 ) * 2 + 1, step 2 a(i) = a(i-2) 3 prosessi 2: do i = 2,floor(m/2) * 2 + 1, step 2 a(i) = a(i-2) 3 esim. d1 = 3 ja d2 = 6 gcd = 3 kolme prosessia: sininen, punainen ja vihreä (askelkoko 3) Silmukka voidaan jakaa g kappaleeseen itsenäisiä osia, missä g on riippuvuusvektorien (pituuden) suurin yhteinen jakaja (gcd): jos g löytyy se tarkoittaa, että itsenäiset prosessit voidaan toteuttaa silmukoina joilla on vakio askelkoko (=gcd) ja etenemällä tällä askelkoolla, riippuvuudet toteutuvat oikein
19 Indeksijoukkojen ja riippuvuuksien muunnokset Perusajatus on muuntaa indeksi joukkoja ja datariippuvuuksia käyttäen matemaattisia funktioita siten, että alkuperäisiä riippuvuuksia ei rikota ja ohjelman suoritus tehostuisi Kyseessä on globaalimuunnos: indeksijoukko järjestetään uudelleen ja samalla riippuvuudet Sisäkkäiset silmukan ovat hyvin yleisiä algoritmeissa ja ohjelmissa
20 Termejä Indeksijoukko: algoritmin n-ulotteista indeksijoukko merkitään J n : algoritmissa esiintyy tällöin n-kertaa sisäkkäinen silmukka Jokainen piste tässä n-ulotteisessa avaruudessa on erillinen algoritmiin liittyvä laskentapiste Indeksiavaruuden muoto määräytyy silmukoissa käytettyjen indeksien arvoalueista: esim. kolmen indeksin tapauksessa kunkin indeksin arvoalueen ollessa vakio indeksiavaruus on suuntaissärmiö k j i
21 Riippuvuusvektorit: matriisin D muodostavat riippuvuusvektorit on määriteltyjä indeksiavaruudessa: niiden lähtöpiste ja kohdepiste on indeksiavaruuden pisteitä Jokaiseen indeksiavaruuden pisteeseen voidaan assosioida riippuvuusvektori(t), joka lähtee ko. pisteestä Jokaiseen indeksiavaruuden pisteeseen voidaan myös assosioida muuttuja(t) jotka tuotetaa ko. pisteessä Indeksiavaruudessa on pisteitä jotka vastaanottavat dataa riippuvuusvektorien kautta toisista pisteistä Indeksiavaruudessa on myös pisteitä joissa tuotetaan muuttujia ja joista tuotettuja muuttujia haetaan toisiin pisteisiin riippuvuusvektoreita pitkin
22 Suoritusjärjestys: algoritmin kannalta äärimmäisen olennainen käsite; kertoo missä järjestyksessä indeksijoukon pisteet suoritetaan Oikea suoritus järjestys on sellainen, joka ei riko algoritmissa esiintyviä riippuvuuksia Oikeita suoritusjärjestyksiä voi olla useita Sekventiaalisessa algoritmissa indeksipisteet käydään läpi yksi kerrallaan Rinnakkaisalgoritmissa muodostetaan yhteensopivien indeksipisteiden ryhmiä: jokainen ryhmä voidaan laskea samanaikaisesti
23 Indeksijoukon muunnoksen periaate on löytää funktio, joka muuntaa sekventiaalisesti järjestetyn indeksijoukon uudeksi joukoksi, jonka järjestys soveltuu rinnakkaislaskentaan Esim. 3.14: katsotaan seuraavaa algoritmia: for i = 1 to n for j = 1 to n for k = 1 to n S1: a(i,j,k) = a(i-1,j+1,k) * b(i-1,j,k+1) S2: b(i,j,k) = b(i-1,j-1,k+2) + b(i,j-3,k+2) end k end j end i Indeksiavaruus on J 3 = {(i,j,k); 1 i, j, k n} Jokaisessa em. indeksiavaruuden pisteessä tapahtuu laskentaa: kertolasku ja yhteenlasku Jokaisessa em. indeksiavaruuden pisteessä tuotetaan myös kaksi muuttujaa a(i,j,k) ja b(i,j,k), joiden tuottamiseen käytetään algoritmista löytyvien riippuvuusvektoreiden alkupäistä haettuja arvoja (aikaisemmin tuotettuja arvoja)
24 Riippuvuudet on määritetty tuotettujen ja käytettujen muuttujien välillä: neljä riippuvuusvektoria tässä tapauksessa d1 = (1,-1,0) T parille ( a(i,j,k), a(i-1,j+1,k) ) d2 = (1,0,-1) T parille ( b(i,j,k), b(i-1,j,k+1) ) d3 = (1,1,-2) T parille ( b(i,j,k), b(i-1,j-1,k+2) ) d4 = (0,3,-2) T parille ( b(i,j,k), b(i,j-3,k+2) ) Riippuvuusmatriisi saa muodon: D = d1 [ d d d ] d = a b b b i j k
25 Määritelmä 3.1: T on validi muunnosfunktio, joka muuntaa algoritmin A algoritmiksi A jos: 1. Algoritmi A on syöte-ulostuloekvivalentti algorimin A kanssa; 2. T on bijektio (yksi-yhteenkuvaus) ja monotoninen funktio, joka on määritelty indeksijoukossa J n ; 3. A :n indeksijoukko on A:n muunnettu indeksijoukko, eli J n = T(J n ); ja 4. A :n riippuvuudet ovat A:n muunnetut riippuvuudet, eli D = T(D) Tarkoitus on yrittää etsiä sellainen T, jolla A :n suoritusaika olisi merkittävästi lyhempi kuin A:n suoritusaika Koska T on bijektio ja monotoninen funktio (ei-vähenevä) indeksijoukossa, niin d > 0 tarkoittaa että d = T(d) > 0, eli muunnos T säilyttää datariippuvuudet (suoritusjärjestyksen)
26 Ositetaan muunnos T kahdeksi funktioksi siten, että ensimmäinen huolehtii ensimmäisistä k:sta indeksistä ja toinen lopuista n k indeksistä: missä kuvaus π on määritely seuraavasti: π: J n J k tai π(i 1,i 2,...,i n ) = (i 1, i 2,...,i k ) ja kuvaus S on määritely seuraavasti S: J n J k tai S(i 1,i 2,...,i n ) = (i k+1, i k+2,...,i n ) funktioiden π ja S ulottuvuuden määrittelee k, joka on pienin arvo siten, ettäπyksi määrittelee A :n suoritusjärjestyksen ts. varmistaa muunnetun algoritmin syöteulostuloekvivalenttisuuden k ensimmäistä indeksiä voidaan ajatella aikakoordinaateina ja loppuja avaruuskoordinaatteina: aikakoordinaatit antavat suoritusjärjestyksen ja avaruuskoordinaatit määrittelevät (kullekkin aikakoordinaatille) pisteryhmän, joka voidaan suorittaa samanaikaisesti (esim. eri prosessoreissa) Aikakoordinaatteja käytetään ajallisen suorituskyvyn muunteluun ja avaruuskoordinaatteja tiedonsiirrollisen suorituskyvyn muunteluun T Π = S
27 Kaikki indeksijoukon J n elementit I joille π(i) on vakio voidaan suorittaa samanaikaisesti: ensimmäiset k muunnettua koordinaattia ovat tällöin vakio ja määritelmän mukaan ne edustavat aikaa, eli näille elementeille laskenta-ajanhetki on sama joten ne voidaan suorittaa myös rinnakkain π(i) = vakio edustaa hypertasoja jotka sisältävät pisteitä joilla ei ole datariippuvuuksia Avaruuskoordinaattimuunnos valitaan siten, että muunnetut koordinaatit soveltuvat hyvin laskentaa tekevän rinnakkaistietokoneen tiedonsiirtorakenteeseen
28 Lineaariset muunnokset Oletetaan, että ohjelmassa on n sisäkkäistä silmukkaa ja m vakioriippuvuusvektoria (ts. eivät muutu ajon aikana) Riippuvuusvektorit muodostavat matriisin D = [d1,d2,...,dm], jonka koko on n x m Etsitään lineaarinen muunnos T siten, että I = TI Koska T on lineaarinen, niin T(I+d j ) T(I) = T(d j ) = d j, kun 1 j m Tämä voidaan kirjoittaa muotoon: TD = D, missä D = [d 1,d 2,...,d m] edustaa J n :n muokattuja riippuvuusvektoreita
29 Oletetaan, että halutaan valita D siten, että uusi algoritmi täyttää annetut vaatimukset T on olemassa jos em. yhtälöllä on ratkaisu ja ratkaisu koostuu kokonaisluvuista Seuraava teoreema osoittaa tarvittavat ja riittävät ehdot validille lineaariselle muunnokselle: voidaan käyttää työkaluna esivalittaessa D Määritelmä: kongruenttisuus (congruence) Jos kahden kokonaisluvun a ja b erotus on jaollinen luvulla p, niin a:n ja b:n sanotaan olevan kongurentteja, mikä kirjoitetaan a b mod p kongruenttisuus sanoo, että a mod p = b mod p Esim. 7 2 mod 5, 13-3 mod 8
30 Jos a ja b ovat vektoreita kongruenttisuus määritellään: jos c on vektorin b elementtien suurin yhteinen jakaja niin a ja b ovat kongruentteja, kun a i b i mod c, i = 1,...,n. Eli, ai on jaollinen c:lla kaikilla i = 1,..,n (b i on määritelmän mukaan jaollinen c:llä ja jos a i mod c = b i mod c täytyy a i :n olla myös jaollinen c:llä, eli a i mod c = b i mod c = 0)
31 Teoreema 3.1: Tarvittavat ja riittävät ehdot algoritmin validin muunnoksen T olemassa ololle, kun algoritmilla on vakio riippuvuusmatriisi D, ovat: 1. d j d j mod c j ; i j m, missä m on riippuvuusvektorien lkm. ja c i on alkuperäisen riippuvuusvektorin d j elementtien suurin yhteinen jakaja 2. Jokaisen vektorin d j ensimmäinen elementti, joka ei ole nolla, arvo on positiivinen Ensimmäinen ehto kertoo, että uuden riippuvuusvektorin elementit ovat jaollisia alkuperäisen vektorin elementtien suurimmalla yhteisellä jakajalla, joka on kokonaisluku: tämä on tarvittava ehto sille, että T voidaan ratkaista kokonaisluvuille (eli T koostuu kokonaisluvuista) yhtälöllä TD = D on validi ratkaisu Toinen ehto kertoo, ettäπd j > 0, eli T säilyttää suoritusjärjestyksen muunnetussa algoritmissa
32 Esim: tutkitaan silmukkaa jolla on riippuvuusmatriisi: D = [ ] = d 1 d 2 d1:n suurin yhteinen jakaja on 1 ja d2:n 2 d1:n kongruentti on vektori d 1, jonka elementit muodostaa mikä tahansa seuraavien rivien elementtien kombinaatio (ykkösellä jaolliset luvut): Vastaavasti d2:n kongruenttin d 2 muodostaa mikä tahansa seuraavien rivien elementtien kombinaatio (kakkosella jaolliset luvut): Valitaan: D = ' 1 2 [ d 1 d ] ' = ' 2 1 0
33 Yhtälöstä D = TD tunnetaan D ja D ja T voidaan laskea: T = D D T = 1 2 D voidaan valita eri tavoin joten muunnoksia T on useita: yleensä pyritään löytämään muunnos, joka minimoi rinnakkaislaskenta-ajan ja tiedonsiirron määrän (tiedonsiirtoreittien kompleksisuuden)
34 Optimaaliset aikamuunnokset Rinnakkaisalgoritmissa laskenta pyritään järjestämään ryhmiksi siten, että kaikki laskenta yhden ryhmän sisällä voidaan suorittaa samanaikaisesti: tälläinen ryhmä edustaa rinnakkaislaskennan aika-askelta Ryhmien lukumäärä edustaa täten laskentaan käytettyä kokonaisaikaa Rinnakkaislaskenta-askelten määrä (rinnakkaisaika) voidaan määritellä: aika = (lopetusaika aloitusaika)/siirtymä + 1 missä siirtymä on minimiaika kahden askeleen välissä (kuva 3.14) sisältäen aika-askeleella tehtyyn laskentaan käytetyn ajan ja seuraavalle askeleelle siirrettyjen muuttujien välittämiseen käytetty aika Yksinkertaisuuden vuoksi oletetaan, että ainoastaan ensimmäinen muunnetun algoritmin koordinaateista liittyy aikaan, eli k = 1: tämä tarkoittaa, että esim. 3-ulotteisessa indeksiavaruuden tapauksessa, pyrimme etsimään 2-ulotteisia tasoja joilla laskenta voidaan tehdä samanaikaisesti (eli jäljelle jäävät kaksi ulottuvuutta edustavat hetkellisiä muuttujien arvoja tai fyysisiä laskentayksiköitä tietyllä ajan hetkellä) Tästä seuraa, että muunnos π on muotoa 1 x n (eli 1 x k matriisi tai rivivektori): ts. etsimme vektoria, joka on tasojen normaalin suuntainen ja jonka projektio riippuvuusvektoreille on positiivinen (varmistaa suoritusjärjestyksen säilymisen) Indeksiavaruuden pisteiden projektio π:lle antaa aikakoordinaatin ja projektio on sama niille pisteille, jotka voidaan suorittaa samanaikaisesti
35 Kuva 3.14: rinnakkaislaskenta-aika
36 Algoritmin muunnos säilyttää suoritusjärjestyksen, jos πd j > 0, eli riippuvuusvektorit säilyvät positiivisina (=datariippuvuudet säilyvät muuttujien välillä) Tuotetun ja käytetyn muuttujan välinen aikaero (askelissa) on täsmälleen πd j muuttujalle jolla on riippuvuus d j Jokainen riippuvuus voi johtaa eri aikaeroon Algoritmin siirtymä määritellään pienimpänä aikaerona (askeleina) minkä tahansa kahden laskennan välillä: dispπ = min{πd j }, j = 1,...,m aloitusajan ja lopetusajan välinen aikaero on max(πi 2 ) - max(πi 1 ) = max π(i 2 I 1 ), missä I 2 on viimeisellä askeleella laskettava piste ja I 1 on ensimmäisellä askeleella laskettava piste Tästä seuraa, että rinnakkasilaskenta-aika on: t π = 1 + ceil(max π(i 2 I 1 )/ dispπ)
37 Optimaalinen aikamuunnos saavutetaan, kun t π minimoidaan: tämä on vaikea ongelma Esim. 3.15: johdetaan optimaalinen π esimerkissä 3.14 esitetylle ohjelmalle, eli etsimme muunnosta t Π T = = t S t t t t t t t Kun muunnosta π käytetään riippuvuusvektoreihin saadaan seuraavat ehdot: πd 1 > 0 t 11 t 12 > 0 πd 2 > 0 t 11 t 13 > 0 πd 3 > 0 t 11 + t 12-2 t 13 > 0 πd 1 > 0 3t 12 2t 13 > 0 On olemassa useita mahdollisia aikamuunnoksia π jotka täyttävät ehdot: asetetaan hatusta vedetty ehto jolla rajataan muunnosten lukumäärää: 3 t1 i 3 i= 1
38 Asetetulla ehdolla pyritään pitämään muunnosmatriisin elementtien arvot pieninä, jolloin muunnetut riippuvuudet pysyvät lyhyinä (yksinkertaistaa mm. vaadittavaa tiedonsiirtoverkkoa prosessoreiden välillä) Taulukko 3.1 esittää viisi eri aikamuunnosta jotka täyttävät ehdot:
39 Taulukossa 3.1 ensimmäinen sarake esittelee löydetyt aikamuunnokset, toinen sarake näyttää muunnetun riippuvuusmatriisin (tästä nähdään aikasiirtymä kunkin muuttujat/riippuvuuden tuottamisen ja käyttämisen välillä), kolmas sarake kertoo algoritmin aloituspisteen, missä X on don tcare, eli on olemassa useita pisteitä joille aikamuunnos antaa saman arvon (X johtuu muunnoksessa olevista nollista): aloituspisteessä aikamuunnos antaa pienimmän arvon neljäs kertoo algoritmin lopetuspisteen, jossa aikamuunnos antaa suurimman arvon, ja viides sarake kertoo tarvittavien rinnakkaislaskenta askelien määrän: π 5 on paras aikamuunnos jolle t = (2N 1) (2 N)/2 + 1 = (3N 3)/2 = (3N 1)/2 lopetus aloitus
40 Kuva 3.15 näyttää indeksiavaruuden ja π 5 määrittelemät tasot π 5 I = vakio, eli kaikki ne pisteet joille π 5 I on sama voidaan suorittaa saman aikaisesti (eli ne sijaitsevat samalla tasolla jonka normaali on yhdensuuntainen π 5 :n kanssa) Koska riippuvuusvektoreilla on π:n suuntainen komponentti, säilyvät ne muunnoksessa positiivisina, eli riippuvuusvektorien projektio π:lle on positiivinen: tästä seuraa, että siirryttäessä tasolta seuraavalle riippuvuusvektorien suunnassa, seuraavalla tasolla olevien pisteiden projektio π:lle täytyy kasvaa, ts. projektio π:lle toimii aikakoordinaattina kasvaen riippuvuuksien suunnassa Saavutettu nopeutus on 2N 3 /(3N-1)
41 Kuva 3.15: Indeksijoukko ja π 5 :n määrittelemät hypertasot π 5 I = vakio Tason pisteet I projosoituvat siten, ettäπ 5 I = vakio, eli π 5 on tason normaalin suuntainen π 5 = (2,0,-1)
Rinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 2 521475S Tietokonealgoritmien rinnakkaisuuden analysointi Algoritmi on proseduuri, joka koostuu äärellisestä joukosta yksiselitteisiä sääntöjä jotka muodostavat operaatiosekvenssin,
LisätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 5 521475S Silmukalliset ohjelmat Silmukat joissa ei ole riippuvuussyklejä voidaan vektoroida eli suorittaa silmukan vektorointi Jokainen yksittäinen käsky silmukan rungossa
LisätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 3 521475S Rinnakkaiset Numeeriset Algoritmit Silmukattomat algoritmit Eivät sisällä silmukka lauseita kuten DO,FOR tai WHILE Nopea suorittaa Yleisimmässä muodossa koostuu peräkkäisistä
LisätiedotRinnakkaistietokoneet luento S
Rinnakkaistietokoneet luento 4 521475S Rinnakkaiset ei-numeeriset algoritmit: transitiivisulkeuma (transitive closure) Oletetaan suunnattu graafi G = (V,E) ja halutaan tietää onko olemassa kahta pistettä
LisätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava
Lisätiedot1 Kertaus. Lineaarinen optimointitehtävä on muotoa:
1 Kertaus Lineaarinen optimointitehtävä on muotoa: min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2 (11) a m1 x 1 + a m2 x 2 + + a mn x n
LisätiedotYhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A000 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 2..205 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x x 2 =
LisätiedotNumeeriset 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ätiedot11. Javan toistorakenteet 11.1
11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin
LisätiedotAlgoritmit 1. Demot Timo Männikkö
Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku
LisätiedotKokonaislukuoptiomointi Leikkaustasomenetelmät
Kokonaislukuoptiomointi Leikkaustasomenetelmät Systeemianalyysin Laboratorio 19.3.2008 Sisällys Leikkaustasomenetelmät yleisesti Leikkaustasomenetelmät generoivilla kokonaislukujoukoilla Gomoryn leikkaavat
LisätiedotNumeeriset 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ätiedot1 + 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ätiedotLineaarinen optimointitehtävä
Lineaarinen optimointitehtävä Minimointitehtävä yhtälörajoittein: min kun n j=1 n j=1 c j x j a ij x j = b i x j 0 j = 1,..., n i = 1,..., m Merkitään: z = alkuperäisen objektifunktion arvo käsiteltävänä
LisätiedotVapaus. Määritelmä. jos c 1 v 1 + c 2 v c k v k = 0 joillakin c 1,..., c k R, niin c 1 = 0, c 2 = 0,..., c k = 0.
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
LisätiedotMatriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi
Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Merkintöjä 1 Matriisi on suorakulmainen lukukaavio.
LisätiedotJYVÄSKYLÄN YLIOPISTO. 3. Luennon sisältö
JYVÄSKYLÄN YLIOPISTO 3. Luennon sisältö Lineaarisen optimointitehtävän sallittu alue Optimointitehtävien muunnoksia Lineaarisen yhtälöryhmän perusmuoto ja perusratkaisut Lineaarisen optimointitehtävän
LisätiedotVektoreiden virittämä aliavaruus
Vektoreiden virittämä aliavaruus Määritelmä Oletetaan, että v 1, v 2,... v k R n. Näiden vektoreiden virittämä aliavaruus span( v 1, v 2,... v k ) tarkoittaa kyseisten vektoreiden kaikkien lineaarikombinaatioiden
LisätiedotLatinalaiset neliöt ja taikaneliöt
Latinalaiset neliöt ja taikaneliöt LuK-tutkielma Aku-Petteri Niemi Matemaattisten tieteiden tutkinto-ohjelma Oulun yliopisto Kevät 2018 Sisältö Johdanto 2 1 Latinalaiset neliöt 3 1.1 Latinalainen neliö.........................
LisätiedotDiskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9
Diskreetin matematiikan perusteet Laskuharjoitus 2 / vko 9 Tuntitehtävät 9-10 lasketaan alkuviikon harjoituksissa ja tuntitehtävät 13-14 loppuviikon harjoituksissa. Kotitehtävät 11-12 tarkastetaan loppuviikon
LisätiedotNeliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja
7 NELIÖMATRIISIN DIAGONALISOINTI. Ortogonaaliset matriisit Neliömatriisi A on ortogonaalinen (eli ortogonaalimatriisi), jos sen alkiot ovat reaalisia ja A - = A T () Muistutus: Kokoa n olevien vektorien
LisätiedotKokonaislukuoptimointi
Kokonaislukuoptimointi Algebrallisen geometrian sovelluksia Sisältö Taustaa algebrallisesta geometriasta Gröbnerin kanta Buchbergerin algoritmi Kokonaislukuoptimointi Käypyysongelma Algoritmi ratkaisun
LisätiedotRatkaisuehdotukset LH 7 / vko 47
MS-C34 Lineaarialgebra, II/7 Ratkaisuehdotukset LH 7 / vko 47 Tehtävä : Olkoot M R symmetrinen ja positiividefiniitti matriisi (i) Näytä, että m > ja m > (ii) Etsi Eliminaatiomatriisi E R siten, että [
LisätiedotJohdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten. Ratkaisuehdotelma
Johdatus lukuteoriaan Harjoitus 2 syksy 2008 Eemeli Blåsten Ratkaisuehdotelma Tehtävä 1 1. Etsi lukujen 4655 ja 12075 suurin yhteinen tekijä ja lausu se kyseisten lukujen lineaarikombinaationa ilman laskimen
LisätiedotRinnakkaisuuden hyväksikäyttö peleissä. Paula Kemppi
Rinnakkaisuuden hyväksikäyttö peleissä Paula Kemppi 24.4.2008 Esityksen rakenne Johdantoa Rinnakkaisuus Pelimoottorien rinnakkaisuuden mallit Funktionaalisen rinnakkaisuuden malli Rinnakkaisen tiedon malli
LisätiedotKimppu-suodatus-menetelmä
Kimppu-suodatus-menetelmä 2. toukokuuta 2016 Kimppu-suodatus-menetelmä on kehitetty epäsileiden optimointitehtävien ratkaisemista varten. Menetelmässä approksimoidaan epäsileitä funktioita aligradienttikimpulla.
LisätiedotDuaalisuus kokonaislukuoptimoinnissa. Mat , Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki
Duaalisuus kokonaislukuoptimoinnissa Mat-2.4191, Sovelletun matematiikan tutkijaseminaari, kevät 2008, Janne Karimäki Sisältö Duaalisuus binäärisissä optimointitehtävissä Lagrangen duaalisuus Lagrangen
LisätiedotYhtälöryhmät 1/6 Sisältö ESITIEDOT: yhtälöt
Yhtälöryhmät 1/6 Sisältö Yhtälöryhmä Yhtälöryhmässä on useita yhtälöitä ja yleensä myös useita tuntemattomia. Tavoitteena on löytää tuntemattomille sellaiset arvot, että kaikki yhtälöt toteutuvat samanaikaisesti.
LisätiedotMatematiikka 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ätiedotYhteenlaskun ja skalaarilla kertomisen ominaisuuksia
Yhteenlaskun ja skalaarilla kertomisen ominaisuuksia Voidaan osoittaa, että avaruuden R n vektoreilla voidaan laskea tuttujen laskusääntöjen mukaan. Huom. Lause tarkoittaa väitettä, joka voidaan perustella
Lisätiedot12. Javan toistorakenteet 12.1
12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu
LisätiedotKannan vektorit siis virittävät aliavaruuden, ja lisäksi kanta on vapaa. Lauseesta 7.6 saadaan seuraava hyvin käyttökelpoinen tulos:
8 Kanta Tässä luvussa tarkastellaan aliavaruuden virittäjävektoreita, jotka muodostavat lineaarisesti riippumattoman jonon. Merkintöjen helpottamiseksi oletetaan luvussa koko ajan, että W on vektoreiden
Lisätiedot12. Javan toistorakenteet 12.1
12. Javan toistorakenteet 12.1 Sisällys Yleistä toistorakenteista. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirheitä. Silmukan rajat asetettu
LisätiedotInsinöö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ätiedotVapaus. Määritelmä. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee:
Vapaus Määritelmä Oletetaan, että v 1, v 2,..., v k R n, missä n {1, 2,... }. Vektorijono ( v 1, v 2,..., v k ) on vapaa eli lineaarisesti riippumaton, jos seuraava ehto pätee: jos c 1 v 1 + c 2 v 2 +
LisätiedotMatriisit, L20. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi
Matriisit, L20 Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ( 0, 4, ( ( 1 4 2, a 11 a 12 a 21 a 22 Kaavio kirjoitetaan kaarisulkujen väliin (amer. kirjoissa
LisätiedotLineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus
Lineaarikombinaatio, lineaarinen riippuvuus/riippumattomuus 1 / 51 Lineaarikombinaatio Johdattelua seuraavaan asiaan (ei tarkkoja määritelmiä): Millaisen kuvan muodostaa joukko {λv λ R, v R 3 }? Millaisen
LisätiedotJohdatus matematiikkaan
Johdatus matematiikkaan Luento 7 Mikko Salo 11.9.2017 Sisältö 1. Funktioista 2. Joukkojen mahtavuus Funktioista Lukiomatematiikassa on käsitelty reaalimuuttujan funktioita (polynomi / trigonometriset /
LisätiedotYhtälöryhmä matriisimuodossa. MS-A0004/A0006 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.
2. MS-A4/A6 Matriisilaskenta 2. Nuutti Hyvönen, c Riikka Kangaslampi Matematiikan ja systeemianalyysin laitos Aalto-yliopisto 5.9.25 Tarkastellaan esimerkkinä lineaarista yhtälöparia { 2x x 2 = x + x 2
LisätiedotDeterminantti. Määritelmä
Determinantti Määritelmä Oletetaan, että A on n n-neliömatriisi. Merkitään normaaliin tapaan matriisin A alkioita lyhyesti a ij = A(i, j). (a) Jos n = 1, niin det(a) = a 11. (b) Muussa tapauksessa n det(a)
LisätiedotMatriisit, kertausta. Laskutoimitukset. Matriisikaavoja. Aiheet. Määritelmiä ja merkintöjä. Laskutoimitukset. Matriisikaavoja. Matriisin transpoosi
Matriisit, kertausta Merkintöjä 1 Matriisi on suorakulmainen lukukaavio. Matriiseja ovat esimerkiksi: ( 2 0.4 8 0 2 1 ) ( 0, 4 ), ( ) ( 1 4 2, a 11 a 12 a 21 a 22 ) Kaavio kirjoitetaan kaarisulkujen väliin
LisätiedotInsinöö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ätiedotSisällys. 12. Javan toistorakenteet. Yleistä. Laskurimuuttujat
Sisällys 12. Javan toistorakenteet Ylstä toistorakentsta. Laskurimuuttujat. While-, do-while- ja for-lauseet. Laskuri- ja lippumuuttujat. Tyypillisiä ohjelmointivirhtä. Silmukan rajat asetettu kierroksen
LisätiedotOrtogonaalinen ja ortonormaali kanta
Ortogonaalinen ja ortonormaali kanta Määritelmä Kantaa ( w 1,..., w k ) kutsutaan ortogonaaliseksi, jos sen vektorit ovat kohtisuorassa toisiaan vastaan eli w i w j = 0 kaikilla i, j {1, 2,..., k}, missä
LisätiedotEnnakkotehtä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ätiedotKää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ätiedotGaussin ja Jordanin eliminointimenetelmä
1 / 25 : Se on menetelmä lineaarisen yhtälöryhmän ratkaisemiseksi. Sitä käytetään myöhemmin myös käänteismatriisin määräämisessä. Ideana on tiettyjä rivioperaatioita käyttäen muokata yhtälöryhmää niin,
LisätiedotNumeeriset menetelmät TIEA381. Luento 8. Kirsi Valjus. Jyväskylän yliopisto. Luento 8 () Numeeriset menetelmät / 35
Numeeriset menetelmät TIEA381 Luento 8 Kirsi Valjus Jyväskylän yliopisto Luento 8 () Numeeriset menetelmät 11.4.2013 1 / 35 Luennon 8 sisältö Interpolointi ja approksimointi Funktion approksimointi Tasainen
LisätiedotMatematiikka 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ätiedotKertausta: avaruuden R n vektoreiden pistetulo
Kertausta: avaruuden R n vektoreiden pistetulo Määritelmä Vektoreiden v R n ja w R n pistetulo on v w = v 1 w 1 + v 2 w 2 + + v n w n. Huom. Pistetulo v w on reaaliluku! LM2, Kesä 2012 227/310 Kertausta:
LisätiedotLineaarinen optimointitehtävä
Lineaarinen optimointitehtävä min c 1 x 1 + c 2 x 2 + + c n x n kun a 11 x 1 + a 12 x 2 + + a 1n x n b 1 a 21 x 1 + a 22 x 2 + + a 2n x n b 2. a m1 x 1 + a m2 x 2 + + a mn x n b m x 1, x 2,..., x n 0 1
Lisätiedot811120P Diskreetit rakenteet
811120P Diskreetit rakenteet 2016-2017 6. Alkeislukuteoria 6.1 Jaollisuus Käsitellään kokonaislukujen perusominaisuuksia: erityisesti jaollisuutta Käytettävät lukujoukot: Luonnolliset luvut IN = {0,1,2,3,...
Lisätiedot3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset. 3.2 Matriisien laskutoimitukset
32 Idea: Lineaarikuvausten laskutoimitusten avulla määritellään vastaavat matriisien laskutoimitukset Vakiolla kertominen ja summa Olkoon t R ja A, B R n m Silloin ta, A + B R n m ja määritellään ta ta
LisätiedotMS-A0003/A0005 Matriisilaskenta Laskuharjoitus 2 / vko 45
MS-A0003/A0005 Matriisilaskenta Laskuharjoitus / vko 5 Tehtävä 1 (L): Hahmottele kompleksitasoon ne pisteet, jotka toteuttavat a) z 3 =, b) z + 3 i < 3, c) 1/z >. Yleisesti: ehto z = R, z C muodostaa kompleksitasoon
LisätiedotLiittomatriisi. Liittomatriisi. Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä. 1) i+j det A ij.
Liittomatriisi Määritelmä 16 Olkoon A 2 M(n, n). Matriisin A liittomatriisi on cof A 2 M(n, n), missä (cof A) ij =( 1) i+j det A ij kaikilla i, j = 1,...,n. Huomautus 8 Olkoon A 2 M(n, n). Tällöin kaikilla
LisätiedotLineaarialgebra ja matriisilaskenta II Syksy 2009 Laskuharjoitus 1 ( ) Ratkaisuehdotuksia Vesa Ala-Mattila
Lineaarialgebra ja matriisilaskenta II Syksy 29 Laskuharjoitus (9. - 3..29) Ratkaisuehdotuksia Vesa Ala-Mattila Tehtävä. Olkoon V vektoriavaruus. Todistettava: jos U V ja W V ovat V :n aliavaruuksia, niin
LisätiedotEllipsoidimenetelmä. 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ätiedotAlgoritmit 2. Luento 13 Ti Timo Männikkö
Algoritmit 2 Luento 13 Ti 30.4.2019 Timo Männikkö Luento 13 Simuloitu jäähdytys Merkkijonon sovitus Horspoolin algoritmi Ositus ja rekursio Rekursion toteutus Algoritmit 2 Kevät 2019 Luento 13 Ti 30.4.2019
LisätiedotNumeeriset menetelmät
Numeeriset menetelmät Luento 14 To 20.10.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 14 To 20.10.2011 p. 1/39 p. 1/39 Nopeat Fourier-muunnokset Diskreetti Fourier-muunnos ˆf k = 1 N 1 N
LisätiedotSisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä
Sisällys 11. Javan toistorakenteet Laskuri- ja lippumuuttujat.. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin lopettaminen break-lauseella.
Lisätiedot2.3 Virheitä muunnosten käytössä
2.3 Virheitä muunnosten käytössä Esimerkissä 1 yhtälönratkaisuprosessi näytetään kokonaisuudessaan. Yhtälön rinnalla ovat muunnokset ja sanallinen selitys, johon oppilaat täydentävät esimerkissä käytetyt
Lisätiedot811312A Tietorakenteet ja algoritmit, , Harjoitus 3, Ratkaisu
811312A Tietorakenteet ja algoritmit, 2018-2019, Harjoitus 3, Ratkaisu Harjoituksessa käsitellään algoritmien aikakompleksisuutta. Tehtävä 3.1 Kuvitteelliset algoritmit A ja B lajittelevat syötteenään
LisätiedotKuvauksista ja relaatioista. Jonna Makkonen Ilari Vallivaara
Kuvauksista ja relaatioista Jonna Makkonen Ilari Vallivaara 20. lokakuuta 2004 Sisältö 1 Esipuhe 2 2 Kuvauksista 3 3 Relaatioista 8 Lähdeluettelo 12 1 1 Esipuhe Joukot ja relaatiot ovat periaatteessa äärimmäisen
LisätiedotR : renkaan R kääntyvien alkioiden joukko; R kertolaskulla varustettuna on
0. Kertausta ja täydennystä Kurssille Äärelliset kunnat tarvittavat esitiedot löytyvät Algebran kurssista [Alg]. Hyödyksi voivat myös olla (vaikka eivät välttämättömiä) Lukuteorian alkeet [LTA] ja Salakirjoitukset
LisätiedotLineaariset 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ätiedotMat 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ätiedotAlgoritmit 2. Luento 10 To Timo Männikkö
Algoritmit 2 Luento 10 To 11.4.2019 Timo Männikkö Luento 10 Merkkitiedon tiivistäminen LZW-menetelmä Taulukointi Editointietäisyys Peruutusmenetelmä Osajoukon summa Algoritmit 2 Kevät 2019 Luento 10 To
LisätiedotLineaariavaruudet. Span. Sisätulo. Normi. Matriisinormit. Matriisinormit. aiheita. Aiheet. Reaalinen lineaariavaruus. Span. Sisätulo.
Lineaariavaruudet aiheita 1 määritelmä Nelikko (L, R, +, ) on reaalinen (eli reaalinen vektoriavaruus), jos yhteenlasku L L L, ( u, v) a + b ja reaaliluvulla kertominen R L L, (λ, u) λ u toteuttavat seuraavat
Lisätiedot3 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ätiedotMääritelmä Olkoon T i L (V i, W i ), 1 i m. Yksikäsitteisen lineaarikuvauksen h L (V 1 V 2 V m, W 1 W 2 W m )
Määritelmä 519 Olkoon T i L V i, W i, 1 i m Yksikäsitteisen lineaarikuvauksen h L V 1 V 2 V m, W 1 W 2 W m h v 1 v 2 v m T 1 v 1 T 2 v 2 T m v m 514 sanotaan olevan kuvausten T 1,, T m indusoima ja sitä
LisätiedotLiite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa
Liite 1. Laajennettu Eukleideen algoritmi suoraviivainen tapa - johdanto - matemaattinen induktiotodistus - matriisien kertolaskun käyttömahdollisuus - käsinlaskuesimerkkejä - kaikki välivaiheet esittävä
LisätiedotMat 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ätiedotMS-A0003/A0005 Matriisilaskenta Laskuharjoitus 3 /
MS-A3/A5 Matriisilaskenta, II/27 MS-A3/A5 Matriisilaskenta Laskuharjoitus 3 / 3. 7..27 Tehtävä (L): Etsi kaikki yhtälön Ax = b ratkaisut, kun 3 5 4 A = 3 2 4 ja b = 6 8 7 4. Ratkaisu : Koetetaan ratkaista
Lisätiedot2.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ätiedotsaadaan kvanttorien järjestystä vaihtamalla ehto Tarkoittaako tämä ehto mitään järkevää ja jos, niin mitä?
ANALYYSI A, HARJOITUSTEHTÄVIÄ, KEVÄT 209 4 Funktion raja-arvo 4. Määritelmä. Funktion raja-arvon määritelmän ehdosta ε > 0: δ > 0: f) A < ε aina, kun 0 < a < δ, saadaan kvanttorien järjestystä vaihtamalla
Lisätiedot4.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ätiedot2017 = = = = = = 26 1
JOHDATUS LUKUTEORIAAN (syksy 2017) HARJOITUS 2, MALLIRATKAISUT Tehtävä 1. Sovella Eukleiden algoritmia ja (i) etsi s.y.t(2017, 753) (ii) etsi kaikki kokonaislukuratkaisut yhtälölle 405x + 141y = 12. Ratkaisu
LisätiedotMatematiikan tukikurssi
Matematiikan tukikurssi Kurssikerta 9 1 Implisiittinen derivointi Tarkastellaan nyt yhtälöä F(x, y) = c, jossa x ja y ovat muuttujia ja c on vakio Esimerkki tällaisesta yhtälöstä on x 2 y 5 + 5xy = 14
LisätiedotInsinöö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ätiedotSalausmenetelmät. Veikko Keränen, Jouko Teeriaho (RAMK, 2006)
Salausmenetelmät Veikko Keränen, Jouko Teeriaho (RAMK, 2006) LUKUTEORIAA JA ALGORITMEJA 3. Kongruenssit à 3.1 Jakojäännös ja kongruenssi Määritelmä 3.1 Kaksi lukua a ja b ovat keskenään kongruentteja (tai
LisätiedotFunktion raja-arvo ja jatkuvuus Reaali- ja kompleksifunktiot
3. Funktion raja-arvo ja jatkuvuus 3.1. Reaali- ja kompleksifunktiot 43. Olkoon f monotoninen ja rajoitettu välillä ]a,b[. Todista, että raja-arvot lim + f (x) ja lim x b f (x) ovat olemassa. Todista myös,
LisätiedotJuuri 12 Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty
Juuri Tehtävien ratkaisut Kustannusosakeyhtiö Otava päivitetty 7.5.08 Kertaus K. a) Polynomi P() = + 8 on jaollinen polynomilla Q() =, jos = on polynomin P nollakohta, eli P() = 0. P() = + 8 = 54 08 +
LisätiedotRatkaisut Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,...
Ratkaisut 1 1. Summa on nolla, sillä luvut muodostavat vastalukuparit: ( 10) + 10 = 0, ( 9) + 9 = 0,.... Nolla, koska kerrotaan nollalla. 3. 16 15 50 = ( 8) 15 50 = (8 15) ( 50) = 1000 500 = 500 000. 4.
LisätiedotNumeeriset menetelmät TIEA381. Luento 12. Kirsi Valjus. Jyväskylän yliopisto. Luento 12 () Numeeriset menetelmät / 33
Numeeriset menetelmät TIEA381 Luento 12 Kirsi Valjus Jyväskylän yliopisto Luento 12 () Numeeriset menetelmät 25.4.2013 1 / 33 Luennon 2 sisältö Tavallisten differentiaaliyhtälöiden numeriikasta Rungen
LisätiedotKOMPLEKSILUVUT C. Rationaaliluvut Q. Irrationaaliluvut
KOMPLEKSILUVUT C Luonnolliset luvut N Kokonaisluvut Z Rationaaliluvut Q Reaaliluvut R Kompleksi luvut C Negat kokonaisluvut Murtoluvut Irrationaaliluvut Imaginaariluvut Erilaisten yhtälöiden ratkaiseminen
LisätiedotVektorien pistetulo on aina reaaliluku. Esimerkiksi vektorien v = (3, 2, 0) ja w = (1, 2, 3) pistetulo on
13 Pistetulo Avaruuksissa R 2 ja R 3 on totuttu puhumaan vektorien pituuksista ja vektoreiden välisistä kulmista. Kuten tavallista, näiden käsitteiden yleistäminen korkeampiulotteisiin avaruuksiin ei onnistu
LisätiedotInjektio. Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim.
Injektio Funktiota sanotaan injektioksi, mikäli lähtöjoukon eri alkiot kuvautuvat maalijoukon eri alkioille. Esim. Funktio f on siis injektio mikäli ehdosta f (x 1 ) = f (x 2 ) seuraa, että x 1 = x 2.
Lisätiedot2.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ätiedotMatriisilaskenta Luento 12: Vektoriavaruuden kannan olemassaolo
Matriisilaskenta Luento 12: Vektoriavaruuden kannan olemassaolo Antti Rasila 2016 Vektoriavaruuden kannan olemassaolo Jos {v 1, v 2,..., v k } on äärellisulotteisen vektoriavaruuden V lineaarisesti riippumaton
LisätiedotPython-ohjelmointi Harjoitus 5
Python-ohjelmointi Harjoitus 5 TAVOITTEET Kerrataan silmukkarakenteen käyttäminen. Kerrataan jos-ehtorakenteen käyttäminen. Opitaan if else- ja if elif else-ehtorakenteet. Matematiikan sisällöt Tehtävät
LisätiedotLineaarialgebra ja matriisilaskenta I
Lineaarialgebra ja matriisilaskenta I 29.5.2013 HY / Avoin yliopisto Jokke Häsä, 1/26 Kertausta: Kanta Määritelmä Oletetaan, että w 1, w 2,..., w k W. Vektorijono ( w 1, w 2,..., w k ) on aliavaruuden
LisätiedotInsinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi A. Lepistö alepisto@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2016 M. Hirvensalo V. Junnila A. Lepistö
Lisätiedot4. Luennon sisältö. Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä
JYVÄSKYLÄN YLIOPISTO 4. Luennon sisältö Lineaarisen optimointitehtävän ratkaiseminen Simplex-menetelmä kevät 2012 TIEA382 Lineaarinen ja diskreetti optimointi Lineaarinen optimointitehtävä Minimointitehtävä
LisätiedotVektorien virittämä aliavaruus
Vektorien virittämä aliavaruus Esimerkki 13 Mikä ehto vektorin w = (w 1, w 2, w 3 ) komponenttien on toteutettava, jotta w kuuluu vektoreiden v 1 = (3, 2, 1), v 2 = (2, 2, 6) ja v 3 = (3, 4, 5) virittämään
LisätiedotMS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat.
MS-A0204 Differentiaali- ja integraalilaskenta 2 (ELEC2) Luento 6: Ääriarvojen luokittelu. Lagrangen kertojat. Antti Rasila Matematiikan ja systeemianalyysin laitos Aalto-yliopisto Kevät 2016 Antti Rasila
LisätiedotValitaan alkio x 1 A B ja merkitään A 1 = A { x 1 }. Perinnöllisyyden nojalla A 1 I.
Vaihto-ominaisuudella on seuraava intuition kannalta keskeinen seuraus: Olkoot A I ja B I samankokoisia riippumattomia joukkoja: A = B = m jollain m > 0. Olkoon vielä n = m A B, jolloin A B = B A = n.
LisätiedotInsinöörimatematiikka D
Insinöörimatematiikka D M. Hirvensalo mikhirve@utu.fi V. Junnila viljun@utu.fi A. Lepistö alepisto@utu.fi Matematiikan ja tilastotieteen laitos Turun yliopisto 2016 M. Hirvensalo V. Junnila A. Lepistö
LisätiedotLineaarialgebra ja matriisilaskenta II. LM2, Kesä /141
Lineaarialgebra ja matriisilaskenta II LM2, Kesä 2012 1/141 Kertausta: avaruuden R n vektorit Määritelmä Oletetaan, että n {1, 2, 3,...}. Avaruuden R n alkiot ovat jonoja, joissa on n kappaletta reaalilukuja.
Lisätiedot6 Vektoriavaruus R n. 6.1 Lineaarikombinaatio
6 Vektoriavaruus R n 6.1 Lineaarikombinaatio Määritelmä 19. Vektori x œ R n on vektorien v 1,...,v k œ R n lineaarikombinaatio, jos on olemassa sellaiset 1,..., k œ R, että x = i v i. i=1 Esimerkki 30.
LisätiedotInsinöö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