You are on page 1of 20

LAPORAN

ALGORITMA PEMROGRAMAN 2
Matrix Chain Multiplication

AULIA FEBRIYANTI 22
BUDI CHANDRA DEKARALOS 32
SITI HAJAR MASRUROH 36
VLADIMIR DIMITRI 43
ANGGIK LY PRITA 47
ADITYAN NOVANANDA P R 53
SINGGIH SETYO JATMIKO 55
FITRAH MEILIA PURNAMA 71
RAMA CATUR A P P 77
ARIEF RAKHMAN 92
MOCH YASIN 701
Dosen:
Nur Aini Rakhmawati, M.Sc.Eng

INSTITUT TEKNOLOGI SEPULUH NOPEMBER


SISTEM INFORMASI – FTIf
November 2008
Matrix Chain Multiplication

Review
Perkalian matriks berantai (Matrix Chain Multiplication), sesuai dengan
namanya, adalah perkalian dari serangkaian matriks. Operasi perkalian
matriks adalah operasi yang bersifat asosiatif, yaitu urutan operasi yang
dilakukan dapat diubah-ubah dengan bebas dan tetap tidak akan
berpengaruh pada hasil akhir operasi.
Jika kita melakukan perkalian antara dua buah matrix, syarat
yang harus dipenuhi adalah banyaknya jumlah kolom pada matrix
pertama harus sama dengan jumlah baris matrix yang kedua. Yang
harus dicari jalan keluarnya dalam hal ini adalah jika kita mengalikan
matriks-matriks tersebut sesuai urutannya, proses yang dilakukan sering
kali tidak efektif dan memakan waktu lama. Ini dikarenakan oleh banyaknya
operasi perkalian integer yang dilakukan.
Misalnya diberikan 2 buah matriks :
A(3x5)
B(5x4)
Jumlah perkalian (usaha) yang diperlukan untuk mendapatkan hasil
perkalian dari matriks tersebut adalah :
3x5x4 = 60 perkalian.
Ternyata pilihan urutan perkalian matriks yang berbeda akan
membutuhkan jumlah perkalian (usaha) yang berbeda pula. Sehingga
dengan memilih urutan perkalian matriks yang tepat, kita bisa
menyelesaikan perkalian matriks berantai tersebut dengan lebih cepat dan
efisien. Karena dengan memilih urutan perkalian yang tepat, kita dapat
mereduksi jumlah perkalian yang harus dilakukan untuk mendapatkan solusi
akhir dari perkalian matriks berantai tersebut.
Dengan menggunakan metode Matrix Chain Multiplication ini,
kita dapat menyelesaikan permasalahan Bagaimana kita mendapatkan rantai
perkalian pada beberapa matrix yang akan menghasilkan biaya komputasi
yang paling optimum. MCM ini dapat dikerjakan dengan 3 cara yaitu
iterative (bottom up), memorized, dan rekursif (top down).

Table of scalar multiplications. Split index


table generated by applet.

Product computed by applet.

Ket gambar :
- Rumus mencari nilai m adalah sebagai berikut :
1. m [i,j] = 0 -Æ Digunakan apabila indeks ke-i=ke-j
2. m[i,j]=m[i,k]+m[k+1,j]+pi-1 pk pj -Æ Digunakan apabila indeks ke-i < ke-j.

Tujuan
Matrix Chain Multiplication merupakan contoh Algoritma dari
Dynamic Programing di mana algoritma MCM tersebut bertujuan untuk
menghasilkan biaya komputasi yang paling optimum.
Implementasi Aplikasi Matrix Chain Multiplication (MCM)
1. Hasil Wawancara
Algoritma Matrix Chain Multiplication dapat diimplementasikan dalam
kehidupan sehari-hari untuk menyelesaikan beberapa masalah. Dibawah ini
merupakan contoh pengimplementasian aplikasi MCM yang kami dapatkan
dari beberapa narasumber yaitu :

1. Riska Asriana ( 2006) menyatakan bahwa :


Pengimplementasian aplikasi MCM ini dapat diterapkan dalam
Kalkulator scientific. Di sini Algoritma MCM dapat digunakan untuk
menyusun brackets-bracketsnya sehingga dapat lebih mudah dan
cepat dalam menyelesaikan pekerjaan.

2. Nela Oktivani (2005) menyatakan bahwa selama ini belum pernah


mengimplementasikan algoritma MCM. Akan tetapi, dalam Tugas
Akhirnya mengenai JST (Jaringan Saraf Tiruan) Rekuren dan beberapa
model hasil riset biasanya ada banyak perkalian matriks yang
umumnya berukuran besar. Perkalian ini awalnya akan diproses secara
sekuensial, yang akan memakan banyak memori, utamanya di Java,
dan tidak efektif. Ini dapat dioptimalkan dengan algoritma MCM.
Namun dalam TA-nya tersebut digunakan software Matlab dengan
asumsi software tersebut sudah mengerti bagaimana cara perkalian
yang efisien.

3. Andre Parvian A. (2005) menyatakan bahwa penerapan yang riil


dari MCM digunakan untuk menghitung biaya minimum dari perkalian
matriks, ini dihubungkan dengan kemampuan prosesor computer
untuk melakukan perhitungan terhadap perkalian matriks. Karena
seperti yang kita ketahui bersama, clock computer untuk perkalian
biayanya lebih besar daripada clock computer untuk melakukan
penjumlahan. Sehingga diperlukan suatu metode untuk melakukan
optimasi terhadap perhitungan perkalian matriks, dengan metode MCM
yang dikemukakan oleh cormen ini dapat dilihat bahwa biaya yang
digunakan untuk melakukan perkalian adalah minimal dikarenakan Mr.
Cormen mengusulkan algoritma yang dapat mengurangi factor
“mengalikan” dalam perhitungan perkalian matriks berantai. Penelitian
oleh orang Indonesia dilakukan oleh pihak ITB yang walaupun
konsepnya mirip dengan Cormen, tetapi menunjukkan bahwa
perhitungan matriks dengan konsep ini memang dapat mengurangi
biaya untuk melakukan perhitungan perkalian matriks.

4. Ibu Wiwik Anggraeni (Dosen) menjelaskan bahwa penggunaan


perkalian matrix (seperti perkalian matrix yang terdapat pada
algoritma MCM ) dalam daily activity dapat digunakan dalam proses
enkripsi pada pengiriman pesan ,sehingga pengiriman pesan dapat
berjalan dengan cepat.

5. Bapak Arif Wibisono (Dosen) menjelaskan bahwa


pengimplementasian Algoritma MCM ini berguna dalam pencarian pola
proses gambar pengenalan sidik jari. Model berpikir MCM ini juga
dipakai untuk optimasi untuk proses manufaktur, aplikasi graph,
supply chain.
2. Paper
Matrix Chain Multiplication dapat diimplementasikan dengan berbagai
cara, penerapannyapun sangat luas, mulai dari mencari perkalian Matrix
yang paling optimal sampai dengan penerapan lebih lanjut oleh para ahli
seperti yang ditulis dalam jurnal jurnal ilmiah yang mereka rilis.
Seperti yang sudah ditulis oleh Thomas H. Cormen pada bukunya yang
berjudul Introduction to Algorithms, 2nd Edition, Matrix Chain
Multiplication digunakan untuk mencari perkalian beberapa buah matrix
secara optimal dari segi waktu dan penggunaan memori. Dalam bukunya,
Cormen juga menjelaskan bahwa matrix chain multiplication dapat
diimplementasikan dengan tiga cara, yaitu iteratif (atau bisa disebut bottom-
up), memoized, dan rekursif (juga bisa disebut top-down). Metode rekursif
dikatakan top-down dengan alasan karena metode rekursif bisa dibentuk
seperti bagan pohon (tree) dimana untuk menemukan hasil akhir di bagian
top membutuhkan hasil-hasil di bagian bawahnya terlebih dahulu. Cara
iteratif atau biasa disebut bottom-up langsung mencari hasil akhir dengan
sekali jalan, berbeda dengan rekursif yang memerlukan beberapa kali
looping, metode ini hanya memerlukan sekali jalan. Oleh karena itu,
menurut teori, metode ini lebih hemat memori daripada metode
sebelumnya.
Beberapa ahli juga menulis mengenai masalah matrix chain multiplication
ini. Kebanyakan dari mereka adalah penerapan lebih lanjut dari
permasalahan matrix chain multiplication ini. Salah satunya Heejo Lee,
Jong Kim, Sungje Hong, and Sunggu Lee dari Pohang University of
Science and Technology dalam jurnalnya yang berjudul Processor
Allocation and task Scheduling of Matrix Chain Products on Parallel
System menjelaskan bahwa permasalahan matrix chain dapat diselesaikan
pada sistem paralel. Secara keseluruhan isi Jurnal ini adalah implemetasi
dari matrix chain product pada sistem paralel dan perhitungan alokasi
prosesor pada sistem yang memiliki multiprosesor. Namun, dibagian awal
dia menyinggung sedikit tentang matrix chain. Kyrang lebih dia menjelaskan
bahwa permasalahan permasalahan numerik dan non-numerik dapat
dipecahkan secara efisien dengan matrix chain multiplication.
Sementara itu, Arthur Czumaj dari Warsaw University dalam jurnalnya
yang berjudul An Optimal Parallel algorithm for Computing A Near-
optimal order of Matrix Multiplication menjelaskan tentang perkalian
beberapa matrix dalam sistem parallel. Sebenarnya hal ini hamper sama
dengan yang ditulis Cormen dalam bukunya. Namun, perbedaannya disini
Arthur Czumaj menerapkannya lebih lanjut dan berada pada tingkatan yang
lebih tinggi dibanding Cormen dan Arthur Czumaj juga menggunakan sistem
paralel untuk penelitiannya tersebut. Pada bagian awal dijelaskan bahwa
perhitungan beberapa matrix yang dikalikan dan jumlahnya berpengaruh
pada jumlah operasinya. Dalam penerapan yang lebih lanjut, algoritma yang
digunakan memecahkan permasalahan ini dan untuk menemukan near-
optimal triangulasi dari polygon convex (triangulation of a convex polygon).

Terdapat sumber-sumber lain yang menjelaskan tentang implementasi


Matrix Chain Multiplication, yaitu 4 paper di bawah ini.
Paper I:

“A Performance Optimization Framework for Compilation of


Tensor Contraction Expressions into Parallel Programs”

Oleh Gerald Baumgartner, David E. Bernholdt, Daniel Cociorva, Robert


Harrison, Chi-chung Lam, Marcel Nooijen, J. Ramanujam

url : http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.7.4653
Abstract :
Paper ini membahas tentang sebuah program system synteshis untuk
memfasilitasi generasi kelas komputasi yang high-perfomance terutama
dalam bidang fisika quantum dan kimia kuantum yang juga
mengimplementasikan tentang matrix chain multiplication.

Paper II:

“Analysis of protein circular dichroism spectra for secondary


structure using a simple matrix multiplication”

Oleh : Larry A. Compton and W. Curtis Johnson, Jr.

url :
http://www.sciencedirect.com/science?_ob=ArticleURL&_udi=B6W9V-
DYM9HN-
MM&_user=10&_rdoc=1&_fmt=&_orig=search&_sort=d&view=c&_acct
=C000050221&_version=1&_urlVersion=0&_userid=10&md5=a758e22
9d16baee5ffafab370cc9fd5a
Abstract :
Susunan kebalikan circular dichroism (CD) terdiri dari tiap-tiap 5 struktur
protein mayor kedua antara lain : α-helix, antiparallel and parallel β-sheet,
β-turn, dan struktur random lainnya. Susunan terbalik ini dapat dihitung
secara langsung dengan melihat protein CD tanpa harus melakukan
penyederhanaan dan melakukan standarisasi teknik invers matriks.

Paper III :
“Detecting short directed cycles using rectangular matrix
multiplication and dynamic programming”
Oleh : Raphael Yuster, Uri Zwick
url : http://portal.acm.org/citation.cfm?id=982828
Abstract :
Paper ini menjelaskan menjelaskan tentang penemuan sebuah algorithma
baru dalam mendeteksi jarak hasil terpendek dari suatu cycles di dalam
sebuah digraphs. Algorithma baru ini menggunakan optimal matrix
multiplication algorithma. Algorithma yang baru ini merupakan sebuah
proses penyederhanaan dari sebuah algorithma umum yang menyatakan
untuk mencari sebuah arah Ck, i.e, sebuah arah dari suatu cycle dengan
jarak ki, di dalam sebuah digraphs,untuk apapun nilai k ≥ 3.

Paper IV:
“Useful Matrix Chain Parameter Identities for the Analysis of
Multiconductor Transmission Lines (Short Papers)”
Oleh : Paul, C.R.
url : http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1128669
Abstract :
Dengan menggunakan teori variabel tetap, kegunaan matriks identitas
termasuk submatriks dari rantai parameter matriks untuk sebuah garis
transmisi multickonduktor dapat dilihat. Identitas ini merupakan ekstensi
dari gabungan properties yang familiar dengan dua garis konduktor menuju
garis multikonduktor dan digunakan untuk formulasi solusi sempurna untuk
terminal tersebut ketika garis diterminasi oleh linear network. Identitas
tersebut mengizinkan solusi mudah dan mengurangi konsumsi waktu
berlebih matrix multiplication. Selain itu, hubungan antara hubungan
familiar tersebut untuk case dua konduktor dan case multionduktor dapat
dilihat.
Kesimpulan
Walaupun tidak banyak orang mengetahui tentang Matrix Chain
Multiplication, banyak hal yang dapat diimplementasikan dengan
menggunakan MCM ini. Misalnya: kalkulator sciencetific (Riska), clock
computer (Andre), pencarian pola proses gambar pengenalan sidik jari,
untuk optimasi proses manufaktur, aplikasi graph, supply chain (Arif
Wibisono). Selain itu, dalam beberapa paper disebutkan beberapa
penerapan lain yang menggunakan konsep MCM ini, yaitu: penggunaan
transmisi garis multikonduktor, mendeteksi jalan perputaran terpendek,
optimalisasi framework untuk kompilasi dalam ekspresi tensor menjadi
paralel program, serta analisis protein circular dichroism spectra.
12/13/2008

Laporan Implementasi Aplikasi Algoritma


Matrix Chain Multiplication
Presented by:
AULIA FEBRIYANTI 22
BUDI CHANDRA DEKARALOS 32
SITI HAJAR MASRUROH 36
VLADIMIR DIMITRI 43
ANGGIK LY PRITA 47
ADITYAN NOVANANDA P R 53
SINGGIH SETYO JATMIKO 55
FITRAH MEILIA PURNAMA 71
RAMA CATUR A P P 77
ARIEF RAKHMAN 92
MOCH YASIN 701

1
12/13/2008

Table of scalar multiplications. Split index table generated by applet.

Product computed by applet

Keterangan gambar :
Rumus mencari nilai m adalah sebagai berikut :
1. m [i,j] = 0  Digunakan apabila indeks ke – i = ke – j
2. m [i,j]= m [i,k] + m [k+1,j] + pi-1 pk pj  Digunakan apabila indeks ke – i < ke – j.

Main Menu
#

Matrix Chain Multiplication merupakan contoh Algoritma dari


Dynamic Programing, yang dimana algoritma MCM tersebut
bertujuan untuk menghasilkan biaya komputasi yang paling
optimum

Main Menu
#

2
12/13/2008

Algoritma Matrix Chain Multiplication dapat diimplementasikan


dalam kehidupan sehari-hari untuk menyelesaikan beberapa masalah.
Dibawah ini merupakan contoh pengimplementasian aplikasi MCM
yang kami dapatkan dari beberapa narasumber yaitu :

1. RISKA ARSIANA (SI Angkatan 2006)


2. NELA OKTAVIANI (SI Angkatan 2005)
3. ANDRE PARVIAN (SI Angkatan 2005)
4. WIWIK ANGGRAENI (Dosen SI)
5. ARIF WIBISONO (Dosen SI)

From Papers

Main Menu
#

“Pengimplementasian aplikasi MCM ini dapat diterapkan dalam


Kalkulator scientific. Disini Algoritma MCM dapat digunakan untuk
menyusun brackets-bracketsnya sehingga dapat lebih mudah dan cepat
dalam menyelesaikan pekerjaan.”

Implementasi
#

3
12/13/2008

“Selama ini belum pernah mengimplementasikan algoritma MCM. Akan


tetapi, dalam Tugas Akhirnya mengenai JST (Jaringan Saraf Tiruan)
Rekuren dan beberapa model hasil riset biasanya ada banyak perkalian
matriks yang umumnya berukuran besar. Perkalian ini awalnya akan
diproses secara sekuensial, yang akan memakan banyak memori,
utamanya di Java, dan tidak efektif. Ini dapat dioptimalkan dengan
algoritma MCM. Namun dalam TA-nya tersebut digunakan software
Matlab dengan asumsi software tersebut sudah mengerti bagaimana cara
perkalian yang efisien.”

Implementasi
#

“penerapan yang riil dari MCM digunakan untuk menghitung biaya


minimum dari perkalian matriks, ini dihubungkan dengan kemampuan
prosesor computer untuk melakukan perhitungan terhadap perkalian
matriks. Karena seperti yang kita ketahui bersama, clock computer untuk
perkalian biayanya lebih besar daripada clock computer untuk melakukan
penjumlahan. Sehingga diperlukanlah suatu metode untuk melakukan
optimasi terhadap perhitungan perkalian matriks, dengan metode MCM
yang dikemukakan oleh cormen ini dapat dilihat bahwa biaya yang
digunakan untuk melakukan perkalian adalah minimal dikarenakan Mr.
Cormen mengusulkan algoritma yang dapat mengurangi factor
“mengalikan” dalam perhitungan perkalian matriks berantai. Penelitian
oleh orang Indonesia dilakukan oleh pihak ITB yang walaupun konsepnya
mirip dengan punya cormen tetapi menunjukkan bahwa perhitungan
matriks dengan konsep ini memang dapat mengurangi biaya untuk
melakukan perhitungan perkalian matriks.”

Implementasi
#

4
12/13/2008

“Penggunaan perkalian matrix (seperti perkalian matrix yang terdapat


pada algoritma MCM ) dalam daily activity dapat digunakan dalam
proses enkripsi pada pengiriman pesan ,sehingga pengiriman pesan
dapat berjalan dengan cepat.”

Implementasi
#

“Pengimplementasian Algoritma MCM ini berguna dalam pencarian pola


proses gambar pengenalan sidik jari. Model berpikir MCM ini juga dipakai
untuk optimasi untuk proses manufaktur, aplikasi graph, supply chain.”

Implementasi
#

5
12/13/2008

Papers
• Arthur Czumaj dari Warsaw University dalam jurnalnya yang berjudul
An Optimal Parallel algorithm for Computing A Near-optimal order
of Matrix Multiplication  algoritma yang digunakan memecahkan
permasalahan ini dan untuk menemukan near-optimal triangulasi dari
polygon convex (triangulation of a convex polygon)

Papers (cont’d)
• “A Performance Optimization Framework for Compilation of
Tensor Contraction Expressions into Parallel Programs”
Oleh Gerald Baumgartner, David E. Bernholdt, Daniel Cociorva, Robert Harrison, Chi-chung
Lam, Marcel Nooijen, J. Ramanujam

• Abstract :
Paper ini membahas tentang sebuah program system synteshis
untuk memfasilitasi generasi kelas komputasi yang high-
perfomance terutama dalam bidang fisika quantum dan kimia
kuantum yang juga mengimplementasikan tentang matrix chain
multiplication.

6
12/13/2008

Papers (cont’d)
• “Analysis of protein circular dichroism spectra for secondary
structure using a simple matrix multiplication”
Oleh : Larry A. Compton and W. Curtis Johnson, Jr.
• Abstract :
Susunan kebalikan circular dichroism (CD) terdiri dari tiap-tiap 5
struktur protein mayor kedua antara lain : α-helix, antiparallel and
parallel β-sheet, β-turn, dan struktur random lainnya. Susunan terbalik
ini dapat dihitung secara langsung dengan melihat protein CD tanpa
harus melakukan penyederhanaan dan melakukan standarisasi teknik
invers matriks.

Papers (cont’d)
• “Detecting short directed cycles using rectangular matrix
multiplication and dynamic programming”
Oleh : Raphael Yuster, Uri Zwick
• Abstract :
Paper ini menjelaskan menjelaskan tentang penemuan sebuah
algorithma baru dalam mendeteksi jarak hasil terpendek dari suatu
cycles di dalam sebuah digraphs. Algorithma baru ini menggunakan
optimal matrix multiplication algorithma. Algorithma yang baru ini
merupakan sebuah proses penyederhanaan dari sebuah algorithma
umum yang menyatakan untuk mencari sebuah arah Ck, i.e, sebuah
arah dari suatu cycle dengan jarak ki, di dalam sebuah digraphs,untuk
apapun nilai k ≥ 3.

7
12/13/2008

Papers (cont’d)
• “Useful Matrix Chain Parameter Identities for the Analysis of
Multiconductor Transmission Lines (Short Papers)”
Oleh : Paul, C.R.

• Abstract:
Identitas ini merupakan ekstensi dari gabungan properties yang familiar
dengan dua garis konduktor menuju garis multikonduktor dan
digunakan untuk formulasi solusi sempurna untuk terminal tersebut
ketika garis diterminasi oleh linear network. Identitas tersebut
mengizinkan solusi mudah dan mengurangi konsumsi waktu berlebih
matrix multiplication.

Papers (cont’d)
• Matrix Multiplication on Heterogeneous Platforms
by: Oliver Beaumont, Vincent Boudet, Fabrice Rastello, and Yves
Robert, Member, IEEE

• Abstract:
Problem ini ditujukan untuk menghitung keseimbangan pekerjaan dengan sumber
kecepatan yang berbeda dengan volume komunikasi minimal.
Heterogeneous Network of Workstations (HNOWs) merupakan hal yang tersebar di
berbagai universitas dan perusahaan. Mereka menampilkan kompuer paralel miskin, yaitu
dengan menjalankan PVM atau percobaan MPI yang merupakan alternatif termurah untuk
membeli super komputer. Saat menerapkan MM algorithm dalam HNOWs, ide tersebut
untuk menggunakan semua sumber daya, penamaan, dan mesin yang lebih pelan. Ini
merupakan tantangan, tetapi sangat berguna yang diberikan MM dalam scientific
computing.
• Dalam hal ini yang dibandingkan adalah kecepatan prosesor.

8
12/13/2008

Papers (cont’d)
• Paper yang membahas hal sejenis
dengan aplikasi algoritma Matrix
Multiplication:
– Matrix Multiplication on three
Heterogeneous Processor
– Adaptive Matrix Multiplication in
Heterogeneous Environment

Papers (cont’d)
• Processor Allocation and Task Scheduling of Matrix Chain
Products on Parallel Systems
Heejo lee, Jong Kim, Sungje Hong, and Sunggu Lee

• Abstract:
Dalam paper ini, dijelaskan tentang pengalokasian prosesor dalam
penerapan matrix chain scheduling problem (MCSP). MCSP inilah
yang digunakan untuk mengefisienkan penggunaan prosesor.

Main Menu
#

9
12/13/2008

Walaupun tidak banyak orang mengetahui tentang Matrix Chain


Multiplication, banyak hal yang dapat diimplementasikan dengan
menggunakan MCM ini. Misalnya: kalkulator sciencetific (Riska),
clock computer (Andre), pencarian pola proses gambar
pengenalan sidik jari, untuk optimasi proses manufaktur, aplikasi
graph, supply chain (Arif Wibisono). Selain itu, dalam beberapa
paper disebutkan beberapa penerapan lain yang menggunakan
konsep MCM ini, yaitu: penggunaan transmisi garis
multikonduktor, mendeteksi jalan perputaran terpendek,
optimalisasi framework untuk kompilasi dalam ekspresi tensor
menjadi paralel program, serta analisis protein circular dichroism
spectra.

Main Menu
#

10

You might also like