Algoritam za množenje ulančanih matrica. Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

Similar documents
Projektovanje paralelnih algoritama II

TEORIJA SKUPOVA Zadaci

pretraživanje teksta Knuth-Morris-Pratt algoritam

Rekurzivni algoritmi POGLAVLJE Algoritmi s rekurzijama

Sortiranje podataka. Ključne riječi: algoritmi za sortiranje, merge-sort, rekurzivni algoritmi. Data sorting

Slika 1. Slika 2. Da ne bismo stalno izbacivali elemente iz skupa, mi ćemo napraviti još jedan niz markirano, gde će

Mathcad sa algoritmima

Modified Zagreb M 2 Index Comparison with the Randi} Connectivity Index for Benzenoid Systems

An Algorithm for Computation of Bond Contributions of the Wiener Index

Hornerov algoritam i primjene

ALGORITMI PODIJELI PA VLADAJ

Mode I Critical Stress Intensity Factor of Medium- Density Fiberboard Obtained by Single-Edge- Notched Bending Test

Primjena optimizacije kolonijom mrava na rješavanje problema trgovačkog putnika

Vedska matematika. Marija Miloloža

Metode izračunavanja determinanti matrica n-tog reda

Advanced Digital Design with the Verilog HDL, Second Edition Michael D. Ciletti Prentice Hall, Pearson Education, 2011

Ivan Soldo. Sažetak. U članku se analiziraju različiti načini množenja matrica. Svaki od njih ilustriran je primjerom.

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Sveučilišni nastavnički studij matematike i informatike. Sortiranje u linearnom vremenu

ZANIMLJIV NAČIN IZRAČUNAVANJA NEKIH GRANIČNIH VRIJEDNOSTI FUNKCIJA. Šefket Arslanagić, Sarajevo, BiH

Uvod u dinamičko programiranje

Matematika (PITUP) Prof.dr.sc. Blaženka Divjak. Matematika (PITUP) FOI, Varaždin

PRIPADNOST RJEŠENJA KVADRATNE JEDNAČINE DANOM INTERVALU

Fractional Factorial Designs

Nilpotentni operatori i matrice

PEARSONOV r koeficijent korelacije [ ]

Uvod u relacione baze podataka

Sveučilište J. J. Strossmayera u Osijeku Odjel za matematiku Preddiplomski sveučilišni studij matematike. Završni rad. Tema : Vedska matematika

6. PROGRAMSKE STRUKTURE STRUKTUIRANOG PROGRAMIRANJA

Worksheet A VECTORS 1 G H I D E F A B C

ALGORITAM FAKTORIZACIJE GNFS

( ) = ( ) ( ) = ( ) = + = = = ( ) Therefore: , where t. Note: If we start with the condition BM = tab, we will have BM = ( x + 2, y + 3, z 5)

UNIT 3 BOOLEAN ALGEBRA (CONT D)

1.1 Algoritmi. 2 Uvod

DISTRIBUIRANI ALGORITMI I SISTEMI

Vectors 1C. 6 k) = =0 = =17

Asocijativna polja POGLAVLJE Ključevi kao cijeli brojevi

PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK BINARNI POLINOMI. Diplomski rad. Voditelj rada: doc. dr. sc. Goranka Nogo. Zagreb, 2017.

Mirela Nogolica Norme Završni rad

Linear Algebra review Powers of a diagonalizable matrix Spectral decomposition

Metoda parcijalnih najmanjih kvadrata: Regresijski model

Metode rješavanja kvadratičnog problema pridruživanja

Karakteri konačnih Abelovih grupa

Metode višekriterijske optimizacije u upravljanju lancem opskrbe

LINEARNI MODELI STATISTIČKI PRAKTIKUM 2 2. VJEŽBE

NAPREDNI FIZIČKI PRAKTIKUM 1 studij Matematika i fizika; smjer nastavnički MJERENJE MALIH OTPORA

2 k, 2 k r and 2 k-p Factorial Designs

Metode praćenja planova

Algoritam za odre divanje ukupnog poravnanja dva grafa poravnanja parcijalnog ure daja

Maja Antolović Algoritmi u teoriji brojeva

The existence theorem for the solution of a nonlinear least squares problem

CHAPTER 3 BOOLEAN ALGEBRA

DES I AES. Ivan Nad PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: doc.dr.sc.

A COMPARATIVE EVALUATION OF SOME SOLUTION METHODS IN FREE VIBRATION ANALYSIS OF ELASTICALLY SUPPORTED BEAMS 5

ALGORITMI ZA ISPITIVANJE DJELJIVOSTI

Geometry Problem Solving Drill 08: Congruent Triangles

MEP Pupil Text 13-19, Additional Material. Gradients of Perpendicular Lines

Gassner Representation of the Pure Braid Group P 4

Linear Algebra 1 Exam 2 Solutions 7/14/3


Vectors Practice [296 marks]

b UVW is a right-angled triangle, therefore VW is the diameter of the circle. Centre of circle = Midpoint of VW = (8 2) + ( 2 6) = 100

Geometrijski smisao rješenja sustava od tri linearne jednadžbe s tri nepoznanice

ANALYTICAL AND NUMERICAL PREDICTION OF SPRINGBACK IN SHEET METAL BENDING

CASTOR A PROPULSION SHAFTLINE TORSIONAL VIBRATION ASSESSMENT TOOL

SITO POLJA BROJEVA. Dario Maltarski PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK. Diplomski rad. Voditelj rada: Doc. dr. sc.

Đorđe Đorđević, Dušan Petković, Darko Živković. University of Niš, The Faculty of Civil Engineering and Architecture, Serbia

Suppose we needed four batches of formaldehyde, and coulddoonly4runsperbatch. Thisisthena2 4 factorial in 2 2 blocks.

A = B = 87 A = B = 01 A+B = C= 46 A = B = 15 A = B = 56 A = A = A = B = 53 n*s α1a= α1c=

TemidaLib sistem za rad sa velikim brojevima TemidaLib Multiprecision Arithmetic Library

Matrice u Maple-u. Upisivanje matrica

24. Balkanska matematiqka olimpijada

Fibonaccijev brojevni sustav

Quantum Statistical Aspects of Charge Transfer on Electrodes~'

Konstekstno slobodne gramatike

Pitagorine trojke. Uvod

DEVELOPMENT OF MATHEMATICAL MODELS TO PREDICT THE EFFECT OF INPUT PARAMETERS ON FEED RATE OF A RECIPROCATORY TUBE FUNNEL FEEDER

the coordinates of C (3) Find the size of the angle ACB. Give your answer in degrees to 2 decimal places. (4)

PRIMJENA LINEARNOGA PROGRAMIRANJA NA PROBLEME PROMIDŽBE. Diplomski rad

SIMBOLIČKO IZRAČUNAVANJE HANKELOVIH DETERMINANTI I GENERALISANIH INVERZA MATRICA

KLASIFIKACIJA NAIVNI BAJES. NIKOLA MILIKIĆ URL:

Downloaded from

Lecture 12: Feb 16, 2017

KRITERIJI KOMPLEKSNOSTI ZA K-MEANS ALGORITAM

Sveučilišni studijski centar za stručne studije. Zavod za matematiku i fiziku. Uvod u Matlab. Verzija 1.1

( 1 ) Find the co-ordinates of the focus, length of the latus-rectum and equation of the directrix of the parabola x 2 = - 8y.

1 Основни појмови егзактно посредног претраживања Релаксација и рестрикција

VIŠESTRUKO USPOREĐIVANJE

RESISTANCE PREDICTION OF SEMIPLANING TRANSOM STERN HULLS

Sveučilište u Zagrebu Prirodoslovno matematički fakultet

6.801/866. Affine Structure from Motion. T. Darrell

[BIT Ranchi 1992] (a) 2 (b) 3 (c) 4 (d) 5. (d) None of these. then the direction cosine of AB along y-axis is [MNR 1989]

We could express the left side as a sum of vectors and obtain the Vector Form of a Linear System: a 12 a x n. a m2

NIZOVI I REDOVI FUNKCIJA

Nelder Meadova metoda: lokalna metoda direktne bezuvjetne optimizacije

Mostovi Kaliningrada nekad i sada

ATOMSKA APSORP SORPCIJSKA TROSKOP

Sveučilište J.J. Strossmayera u Osijeku Odjel za matematiku. Velibor Gojić. Blok dizajni. Diplomski rad. Osijek, 2014.

Šime Šuljić. Funkcije. Zadavanje funkcije i područje definicije. š2004š 1

Undirected Graphical Models: Markov Random Fields

Transcription:

Algoritam za množenje ulančanih matrica Alen Kosanović Prirodoslovno-matematički fakultet Matematički odsjek

O problemu (1) Neka je A 1, A 2,, A n niz ulančanih matrica duljine n N, gdje su dimenzije matrice A i redom m i 1 x m i, 0 i n. Prisjetimo se da je množenje matrica asocijativno: A(BC) = (AB)C Postavlja se pitanje koji je redoslijed za množenje matrica optimalan. Uvjerimo se da je redoslijed bitan!

O problemu (2) 100 x 30 30 x 20 20 x 3 3 x 10 ((AB)C)D = 100 30 20 + 100 20 3 + 100x3x10 = 69.000 (A(BC))D = 30 20 3 + 100x30x3 + 100 3 10 = 13.800 (AB)(CD) = 100x30x20 + 20x3x10 + 100x20x10 = 80.600 A((BC)D) = 30 20 3 + 30x3x10 + 100x30x10 = 32.700 A(B(CD)) = 20x3x10 + 30x20x10 + 100x30x10 = 36.600 *Matrice u primjeru osobno sam odabrao.

O rješenju (3) Problem možemo ilustrirati binarnim stablom: D C A B C D A B ((AB)C)D (AB)(CD)

Pristup problemu dinamičkim programiranjem (1) n duljina našeg lanca Za 1 i j n, L(i, j) = lanac A i,, A j Za lanac L(i, j) definiramo: C(i, j): =optimalni broj operacija za zadani lanac K(i, j) k td i k < j i C(i, k) + C(k + 1, j) = C(i, j) (predstavlja indeks na kojem je najbolje presjeći lanac) T 1 = C i, j : 1 i j n T 2 = {K i, j : 1 i j n}

Pristup problemu dinamičkim programiranjem (2) T1 T2 i\j 1 2 3 4 1 0 2 0 3 0 4 0 i\j 1 2 3 4 1 2 3 4 Lanac duljine 1. A, B, C, D. Množenja nema stoga je cijena 0. Sjecanja lanca nema pa ništa ne upisujemo u drugu tablicu.

Pristup problemu dinamičkim programiranjem (3) T1 T2 i\j 1 2 3 4 1 0 60.000 2 0 1.800 3 0 600 4 0 i\j 1 2 3 4 1 1 2 2 3 3 4 Lanac duljine 2. AB, BC, CD. Obično množenje matrica. Lanac je moguće presjeći samo na prvoj matrici.

Pristup problemu dinamičkim programiranjem (4) T1 T2 i\j 1 2 3 4 1 0 60.000 10.800 2 0 1.800 2.700 3 0 600 4 0 i\j 1 2 3 4 1 1 1 2 2 3 3 3 4 Lanac duljine 3. 1. ABC 1. A BC = 1.800 + 9.000 = 10.800 <- Sječemo na 1. matrici 2. AB C = 60.000 + 6.000 = 66.000 2. BCD 1. B CD = 600 + 6.000 = 6.600 2. BC D = 1.800 + 900 = 2.700 <- Sječemo na 3. matrici

Pristup problemu dinamičkim programiranjem (5) T1 T2 i\j 1 2 3 4 1 0 60.000 10.800 13.800 2 0 1.800 2.700 3 0 600 4 0 i\j 1 2 3 4 1 1 1 3 2 2 3 3 3 4 Lanac duljine 4. 1. ABCD 1. A BCD = 2.700 + 30.000 = 32.700 2. AB CD = 60.000 + 600 + 20.000 = 80.600 3. ABC D = 10.800 + 3.000 = 13.800 <- Sječemo na 3. mjestu

Pseudokod for i = 1 to n: C(i, i) = 0 for s = 1 to n 1: for i = 1 to n s j = i + s C(i, j) = min {C(i, k) + C(k + 1, j) + m i 1 m k m j : i k < j} return C(1, n)

Složenost Za računanje tablica potrebne su 2 for-petlje za prolazak čitavog gornjeg trokuta i 1 for-petlja za traženje minimuma. Složenost: O(n 3 ). Ipak, konačan broj operacija je nešto bolji i može se dobiti sumiranjem: n i=1 n s j+s s=1 k=i 1 = n3 3

Rezultati testiranja (1) Vršena su 3 testiranja: 1. Usporedba klasičnog i dinamičkog algoritma Veliki lanci, manje matrice (lanci duljina 50 1000, matrice dimenzija između 10 i 100). 2. Veliki lanci, manje matrice (lanci duljina 50 1000, matrice dimenzija između 10 i 100). 3. Trajanje samog algoritma računanja optimalnog redoslijeda (lanci duljina 100 2500).

Rezultati testiranja (2) Tesitranje je vršeno na kompjutoru s procesorom Intel Core i5-3570k CPU @ 3.40GHz. Algoritam je implementiran u programskom jeziku Java. Izvorni kod i rezultati zapisani su na eng. jeziku. Za svaki lanac uzeta je populacija od 20 matrica čije su dimenzije odabrane nasumično. Korišten je algoritam za nasumično biranje brojeva koji dolazi zajedno s Java SDK. Detalji.

Rezultati testiranja (3) Test 1, usporedba klasičnog i dinamičkog algoritma. Mjerna jedinica: sekunde Matrice duljina: od 10 do 1000, duljine lanaca: od 450 do 1000. Chain Length Classic Dynamic Difference 450 0,02 0,07-0,05 450 0,09 0,08 0,01 450 0,02 0,05-0,03 450 0,06 0,05 0,01 450 0,09 0,06 0,03 450 0,09 0,05 0,04 450 0,05 0,05 0,00 450 0,04 0,05-0,01 450 0,10 0,05 0,05 450 0,02 0,05-0,03 450 0,02 0,05-0,03 450 0,09 0,05 0,04 450 0,12 0,05 0,07 450 0,06 0,05 0,01 450 0,06 0,05 0,01 450 0,02 0,05-0,03 450 0,05 0,05 0,00 450 0,02 0,17-0,15 450 0,02 0,05-0,03 450 0,03 0,04-0,01 AVG 0,05 0,06-0,01 Chain Length Classic Dynamic Difference 1000 0,10 1,60-1,50 1000 0,16 1,78-1,62 1000 0,14 1,79-1,65 1000 0,25 1,73-1,48 1000 0,15 1,60-1,45 1000 0,21 1,77-1,56 1000 0,17 1,82-1,65 1000 0,18 1,83-1,65 1000 0,21 1,93-1,72 1000 0,08 1,93-1,85 1000 0,24 1,41-1,17 1000 0,18 1,48-1,30 1000 0,13 1,51-1,38 1000 0,23 1,38-1,15 1000 0,23 1,27-1,04 1000 0,20 1,28-1,08 1000 0,08 2,01-1,93 1000 0,04 2,01-1,97 1000 0,17 1,93-1,76 1000 0,25 1,90-1,65 AVG 0,17 1,70-1,53 Primjećujemo da za zadane parametre našeg problema, naš algoritam prestaje biti efikasan za lanac duljine 450.

Time/s Rezultati testiranja (4) Test 2, usporedba klasičnog i dinamičkog algoritma. Mjerna jedinica: sekunde Matrice duljina: od 100 do 1000, duljine lanaca: od 3 do 30. Comparison of Algorithms 40 35 30 25 20 15 10 5 0 0 5 10 15 20 25 30 35 Chain Length Classic Dynamic Chain Length Classic Dynamic Difference 3 3,24 2,35 0,88 6 6,99 1,96 5,03 9 8,30 2,96 5,34 12 18,15 3,97 14,18 15 23,04 3,17 19,86 18 24,69 4,65 20,04 21 35,53 5,65 29,88 24 27,91 5,54 22,37 27 29,30 5,40 23,90 30 31,49 6,58 24,91 Navedene vrijednosti u 2. i 3. koloni su aritmetičke sredine rezultata. Primjećujemo da dinamičkim računanjem drastično povećavamo efikasnost.

Chain Length Rezultati testiranja (5) Test 3, trajanje algoritma nalaženja najboljeg redoslijeda množenja. Duljine lanca: 50 2500. 45 40 Algoritam pronalaska optimalnog redoslijeda množenja 35 30 y = 3E-09x 3-3E-07x 2-0,001x + 0,2524 25 20 15 10 5 0-5 0 500 1000 1500 2000 2500 3000 Time/s

Zaključak (1) Kada se isplati računati redoslijed množenja? U većini slučajeva netrivijalnih lanaca DA. Za slučajeve velikih matrica, promjena može biti drastična. S druge strane, cijena samog algoritma dosta je niska, tako da ga se isplati koristiti čak i kod lanaca razumnih duljina, manjih matrica.

Zaključak (2) Kada se ne isplati računati redoslijed množenja? Ukoliko nam problem nalaže da ćemo često množiti lanac matrica čija duljina prelazi veličinu trostruko većoj od dimenzija matrica. Ukoliko nam je problem toliko jednostavan, da pisanje samog koda oduzima više resursa.

Literatura Algorithms by S. Dasgupta, C. H. Papadimitriou, and U. V. Vazirani http://en.wikipedia.org/