SlideShare une entreprise Scribd logo
1  sur  5
Télécharger pour lire hors ligne
Penggunaan Dynamic Programming Untuk Menyelesaikan
    Permasalahan Optimasi Matrix Chain Multiplication
                                        Satria Ady Pradana - 13510030
                                       Program Studi Teknik Informatika
                                    Sekolah Teknik Elektro dan Informatika
                    Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia
                                 satria@arc.itb.ac.id, master@xathrya.web.id



   Abstrak—Perkalian matriks merupakan salah satu operasi        Pada gambar 2 terlihat bahwa sebuah matriks A
umum yang terjadi pada bidang komputasi. Suatu komputasi      didefinisikan sebagai matriks berukuran 3 x 2 atau 3 baris
seringkali melibatkan perkalian-berantai matriks.             dan 2 kolom.
   Makalah ini akan membahas penggunaan algoritma                Setiap nilai / simbol / ekspresi yang membentuk matriks
dynamic programming untuk mencari solusi optimum dalam
menentukan urutan perkalian.
                                                              disebut sebagai elemen matriks. Elemen matriks
                                                              diidentifikasi sesuai dengan letak sel, yakni koordinat
  Kata kunci—matriks,     perkalian   berantai,   optimasi,   pertemuan baris dan kolom. Dengan mengambil contoh
dynamic programming.                                          pada gambar 1, elemen a23 adalah elemen matriks A pada
                                                              baris ke-2 dan kolom ke-3. Contoh lain adalah nilai 135
                                                              merupakan elemen matriks pada baris pertama kolom
            I. MATRIX DAN OPERASINYA                          pertama sementara nilai 182 adalah elemen matriks pada
                                                              baris kedua kolom pertama.
  Mengacu pada istilah matematika, matriks adalah
                                                                 Secara luas matriks dimanfaatkan dalam berbagai jenis
kumpulan bilangan, simbol, atau ekspresi yang disusun
                                                              komputasi. Beberapa contoh yang dapat diambil antara
membentuk persegi panjang atau tabel menurut baris dan
                                                              lain: menemukan solusi sistem persamaan linear,
kolom.
                                                              transformasi linear (translasi, dilatasi, rotasi suatu objek),
  Sebuah matriks dinotasikan dengan huruf kapital,
                                                              perhitungan pada bidang engineering, dll.
seperti: A, M, K, dsb. Ukuran suatu matriks, disebut pula
                                                                 Berdasarkan ordonya matriks dapat diklasifikasikan
sebagai ordo matriks, ditentukan oleh panjang dan lebar
                                                              sebagai: matriks bujur sangkar/persegi, matriks baris,
matriks tersebut. Secara umum, matriks dituliskan sebagai
                                                              matriks kolom, matriks tegak, matriks datar.
berikut:
                                                                 Matriks bujur sangkar atau matriks persegi adalah
                                                              matriks yang memiliki ordo n x n. Dengan kata lain
                                                              matriks ini memiliki jumlah baris yang sama dengan
                                                              jumlah kolomnya. Matriks ini sering pula disebut sebagai
                                                              matriks berordo n.


     Gambar 1: Matriks A berukuran m x n

   Pada gambar di atas, sebuah matriks bernama A                        Gambar 3: Matriks persegi 2x2
definisikan sebagai matriks dengan ukuran m baris dan n
kolom dengan m,n > 0. Terdapat m x n buah elemen yakni
                                                                Matriks baris adalah matriks dengan ordo 1 x n.
a11, a12, ..., amn yang tersusun membentuk tabel. Elemen-
                                                              Dengan kata lain matriks ini hanya memiliki satu buah
elemen tersebut tersusun berdasarkan baris dan kolom.
                                                              baris saja.
   Berikut ini adalah contoh lain matriks.



                                                                      Gambar 4: Matriks Baris ordo 1x3

      Gambar 2: Matriks A berukuran 3x2                        Matriks kolom adalah kebalikan dari matriks baris.
                                                              Matriks ini adalah matriks dengan ordo n x 1 atau


Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
memiliki n buah baris dengan hanya sebuah kolom yang             Misal:
menjadi penyusunnya.
   Matriks tegak adalah matriks berukuran m x n dengan
m .> n. Jika m < n maka matriks tersebut disebut sebagai
matriks datar. Gambar 2 merupakan salah satu contoh
matriks tegak. Sebuah matriks baris dapat dikatakan              dan
sebagai matriks datar, begitu juga matriks kolom dapat
dikatakan sebagai matriks tegak karena memenuhi
karakteristik.
   Berdasarkan elemen penyusunnya, matriks dapat
diklasifikasikan sebagai: matriks nol, matriks diagonal,
                                                                  Operasi perkalian antara A dan B akan menghasilkan
matriks identitas, matriks skalar, matriks simetri, matriks
                                                               sebuah matriks pula. Misal C adalah matriks hasil
segitiga atas, dan matriks segitiga bawah, .
                                                               perkalian A dan B sesuai dengna contoh di atas. Matriks
   Matriks nol adalah matriks berukuran m x n dengan
                                                               C didefinisikan sebagai sebuah matriks ordo 2x4.
seluruh elemen penyusunnya adalah 0 (nol).
                                                                  Secara umum perkalian antara Amxn dengan Bnxr akan
   Matriks diagonal adalah matriks persegi dengan semua
                                                               menghasilkan matriks baru dengan ordo Cmxr. Nilai
elemen di atas dan di bawah diagonal bernilai nol. Secara
                                                               elemen matriks C didapatkan dari hasil penjumlahan
formal didefinisikan bahwa untuk elemen matriks pada
                                                               perkalian elemen baris i pada matriks A dan elemen
baris i dan j dengan i ≠ j bernilai 0.
                                                               kolom j pada matriks B. Dalam persamaan matematika,
   Matriks identitas atau matriks satuan adalah matriks
                                                               definisi tersebut dapat dituliskan sebagai:
bentuk khusus matriks diagonal dengan semua elemen
pembentuk diagonal memiliki nilai 1 (satu). Matriks ini
adalah matriks khusus uang disimbolkan dengan I dari
kata identity..
   Matriks skalar adalah bentuk khusus matriks diagonal
dengan semua elemen pada diagonal bernilai sama.                       Persamaan 1: Nilai elemen matriks C
Matriks identitas adalah matriks bentuk khusus dengan
setiap elemen diagonal bernilai satu.
   Matriks simetri adalah matriks persegi dengan nilai           Dengan menggunakan definisi tersebut, matriks C
elemen aij sama dengan nilai elemen aji.                       bernilai sebagai berikut:




          Gambar 5: Matriks Simetri 3x3

   Matriks segitiga atas adalah bentuk khusus matriks
persegi dengan elemen pada matriks di bawah diagonal
bernilai 0. Dengan kata lain, setiap elemen aij dengan i > j     Perkalian matris bersifat asosiatif. Hal ini berarti kedua
bernilai 0.                                                    perkalian berikut akan menghasilkan nilai yang sama:
   Matriks segitiga bawah adalah lawan dari matriks
segitiga atas. Pada matriks segitiga bawah, setiap elemen
yang berada di atas diagonal bernilai 0. Secara formal
berlaku aij = 0 dengan i < j.
   Matriks seperti halnya bilangan biasa memiliki operasi-
                                                                   Persamaan 2: Perkalian matriks bersifat
operasi spesifik terhadapnya. Beberapa operasi dasar pada                        asosiatif
matriks antara lain: transpos, invers, penjumlahan,
pengurangan, perkalian, dan pembagian. Namun dalam               Namun perkalian pada matriks tidak bersifat komutatif.
makalah ini hanya akan dibahas mengenai operasi                Sehingga:
perkalian saja, terutama tentang perkalian matriks dengan
matriks.
   Perkalian matriks adalah suatu operasi biner yang
melibatkan dua buah matriks. Suatu operasi perkalian
                                                                Persamaan 3: Perkalian matriks tidak bersifat
terhadap matriks A dan matriks B hanya dapat dilakukan
jika jumlah kolom A sama dengan jumlah baris B.                                 komutatif


Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
kurung (). Sesuai dengan urutan operator, ekspresi yang
  Hal ini bisa dibuktikan sebagai berikut:                   berada di dalam tanda kurung akan dikerjakan terlebih
                                                             dahulu. Hal ini dalam beberapa kondisi dapat
                                                             memperingkas perhitungan.




                                                                      Gambar 8: pengelompokan suku

                                                               Hal yang sama juga berlaku pada perkalian berantai
                                                             dengan matriks sebagai operan.
   Gambar 6: Perkalian matriks tidak bersifat
                  komutatif

                                                                         III. DYNAMIC PROGRAMMING
   Namun sebuah pengecualian apabila sebuah matriks
dikalikan dengan matriks identitas maka hasilnya adalah         Dynamic Programming atau pemrograman dinamis
matriks itu sendiri. Sehingga kedua persamaan di bawah       adalah salah satu strategi algoritma atau desain algoritma
ini benar.                                                   untuk      menyelesaikan       persoalan.     Karakteristik
                                                             permasalahan yang dapat diselesaikan adalah masalah
                                                             yang dapat dilihat sebagai hasil dari urutan pemilihan
                                                             (sequence of decisions).
                                                                Dynamic Programming memecah masalah ke dalam
                                                             beberapa upamasalah yang lebih sederhana. Secara luas
    Persamaan 4: Perkalian dengan matriks                    dynamic programming digunakan apabila permasalahan
                  identitas                                  tersusun dari upamasalah yang tumpang tindih
                                                             (overlapping subsequence).
                                                                Ide utama di balik dynamic programming sangat
              II. PERKALIAN BERANTAI                         sederhana. Untuk dapat menyelesaikan permasalahan,
                                                             bagian permasalahan yang berbeda (upamasalah) harus
   Diberikan beberapa objek (dapat berupa nilai / simbol /   diselesaikan terlebih dahulu. Solusi didapatkan dari hasil
ekspresi) yang disusun berderet, perkalian berantai adalah   penggabungan upamasalah-upamasalah untuk mencapai
operasi berantai yang terjadi pada deretan untuk             solusi global.
menghasilkan suatu nilai akhir.                                 Sekilas teknik ini mirip dengan teknik Divide and
   Pada perkalian berantai, nilai pada suku ke-i akan        Conquer karena sifatnya yang membagi masalah menjadi
dikalikan dengan nilai pada suku (i+1). Hasil perkalian      permasalahan kecil. Namun perbedaan utama antara
ini, misal x, akan menjadi operan bagi operasi perkalian     dynamic programming dan divide and conquer terletak
selanjutnya. Operasi ini akan terus berlanjut hingga         pada definisi upamasalah serta strategi pemecahannya.
mencapai suku ke-n.                                             Pada divide and conquer, upamasalah merupakan
   Lebih lanjut, jika terdapat n buah suku, maka akan        bagian kecil dari masalah yang memiliki karakteristik
terjadi (n-1) buah perkalian.                                sama dengan persoalan awal. Upa masalah pada ukuran
                                                             paling kecil dapat diselesaikan dengan mudah. Setelah
                                                             penyelesaian, upamasalah akan digabungkan dengan
                                                             upamasalah lain untuk mendapat solusi yang lebih besar.
          Gambar 7: Perkalian berantai                          Lain halnya dengan dynamic programming.
                                                             Upamasalah merupakan masalah yang tumpang tindih,
                                                             artinya solusi suatu upamasalah dapat menjadi input untuk
   Pada perkalian aljabar biasa berlaku sifat komutatif      menyelesaikan upamasalah lain. Hasil dari pemecahan
sehingga deret suku dapat dipermutasi sehingga menjadi       upamasalah akan disimpan atau dimemoisasi. Ketika
suatu urutan tertentu tanpa mengubah hasil akhir operasi.    solusi yang sama dibutuhkan upamasalah tak perlu
   Operasi perkalian berantai pada matrix serupa dengan      dikomputasi ulang, cukup mengambil nilai solusi dari
operasi perkalian di atas. Namun perkalian matriks tidak     tabel solusi.
bersifat komutatif sehingga perkalian matriks yang              Desain dynamic programming sangat berguna terutama
dikerjakan akan memiliki satu buah variasi penempatan        ketika jumlah upamasalah yang tumpang tindih tumbuh
saja.                                                        secara eksponensial sebagai fungsi dari input.
   Perkalian berantai dapat juga dikelompokkan ke dalam
kelompok-kelompok kecil yang dipisahkan dengan tanda


Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
IV. PERSOALAN MATRIX CHAIN MULTIPLICATION                      Misal A adalah matriks 10x30, B adalah matriks 30x5,
                                                              dan C adalah matriks 5x60. Banyaknya operasi aritmatika
   Berdasarkan definisi yang telah disebutkan sebelumnya,
                                                              yang terjadi untuk setiap kemungkinan perkalian matriks
perkalian-berantai     matriks    atau    matrix      chain
                                                              adalah sebagai berikut:
multiplication adalah operasi perkalian yang terjadi secara
terus-menerus.
   Persoalan perkalian berantai merupakan persoalan
optimisasi yang dapat diselesaikan menggunakan dynamic
programming.                                                          Gambar 11: Perbandingan operasi
   Persoalan utama bukan pada bagaimana melakukan
perkalian (mendapatkan nilai dari operasi) namun
                                                                 Dapat kita lihat pemilihan urutan perkalian yang
bagaimana menentukan urutan perkalian yang dilakukan.
                                                              berbeda akan menghasilkan jumlah operasi yang berbeda
   Untuk menghitung hasil dari perkalian berantai,
                                                              pula. Dalam hal ini dengan mengalikan A dengna B
terdapat berbagai cara atau pilihan. Berdasarkan sifat
                                                              kemudian mengalikannya dengan C akan memerlukan
asosiatif, suatu ekspresi perkalian berantai dapat
                                                              4500 operasi. Sementara jika A dikalikan dengan B dan C
dikelompokkan ke dalam partisi-partisi kecil di dalam
                                                              yang telah dikalikan terlebih dahulu, operasi yang
tanda kurung () yang berisi perkalian.
                                                              dibutuhkan adalah 27000. Perbedaan keduanya cukup
   Pengelompokan / partisi ini dapat menghasilkan
                                                              besar, lebih dari 6 kali lipat jumlah operasi pertama.
bermacam-macam variasi / cara. Namun nilai yang
                                                                 Kini telah jelas permasalahan utama yang dihadapi.
dihasilkan untuk setiap pilihan adalah sama.
                                                              Bagaimana cara menentukan urutan perkalian agar
   Pada aljabar biasa, sebuah ekspresi perkalian berantai
                                                              memerlukan operasi minimal?
dapat dipecah sebagai berikut:
                                                                 Dengan pendekatan dynamic programming, persoalan
                                                              ini dapat dilihat sebagai penentuan sebuah struktur. Dalam
                                                              hal ini adalah partisi tanda kurung ().
                                                                 Masalah dipecah menjadi beberapa upamasalah. Solusi
         Gambar 9: partisi tanda kurung                       didapat dari penggabungan solusi upamasalah. Sifat
                                                              perkalian matriks yang tidak komutatif memberi kita
   Dapat dilihat bahwa penentuan partisi dapat ditentukan     manfaat seperti yang telah dijelaskan sebelumnya.
selain dari letak tanda kurung (elemen-elemen yang            Permasalahan ini kemudian dapat dimodelkan sebagai
dikelompokkan bersama) juga ditentukan oleh permutasi         sebuah string / deretan matriks.
anggota yang dioperasikan. Dalam kasus di atas, Dua              Misal Ai..j merupakan hasil dari perkalian matriks i
tanda kurung digunakan untuk mengelompokkan a dan b           hingga j.Dapat dilihat bahwa Ai..j merupakan hasil dari
serta c dan d. Namun solusi lain yang didapat adalah          perkalian matriks pi-1 dan pj dengan p adalah input nilai
dengan mengelompokkan a dan c sedangkan b dan d               ukuran matriks. Untuk melakukan perkalian secara
dikelompokkan ke dalam partisi lain.                          optimal, diperlukan pemilihan terdapat banyak solusi yang
   Namun pendekatan ini tidak berlaku pada perkalian          mungkin.
matriks karena perkalian matriks tidak bersifat komutatif.       Misal untuk kasus pada gambar 11, nilai larik p adalah
Keuntungannya adalah bahwa kita dapat mengabaikan
kondisi permutasi untuk memikirkan solusi. Fokus utama
hanya terdapat pada partisi objek.
                                                                           Persamaan 5: Nilai larik p
   Pada Matrix Chain Multiplication, bermacam-macam
variasi solusi yang dapat dihasilkan uuntuk sebuah
ekspresi. Namun semua kemungkinan akan menghasilkan              Langkah pertama adalah mencari struktur yang dapat
hasil yang sama. Perbedaan utama terletak pada biaya          menggambarkan keadaan seluruh upamasalah. Di level ini
yang diperlukan. Biaya yang dimaksud adalah banyaknya         kita berasumsi bahwa perkalian terjadi merupakan operasi
perkalian dan penjumlahan yang harus dilakukan.               biner sehingga untuk setiap k, 1   k    n – 1,
   Misal terdapat empat buah matriks: A, B, C, dan D.
Berikut adalah partisi yang dapat dihasilkan dengan nilai
akhir yang sama:


                                                                  Persamaan 6: Definisi perkalian matriks
                 Gambar 10: Partisi
                                                                 Indeks k adalah posisi pemisahan deret menjadi dua
   Partisi akan sangat memengaruhi jumlah operasi             upamasalah berbeda. Untuk setiap upamasalah, akan
aritmatika yang dilakukan. Khususnya bagi operasi             diselesaikan secara rekursif.
perkalian dan operasi penjumlahan.                               Solusi upamasalah akan disimpan ke dalam suatu tabel.


Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
Pembangunan tabel dapat dilakukan dengan cara top-                                    p[i-1]*p[k]*p[j]
down maupun bottom-up, namun pada makalah ini akan                         if count < min
digunakan pendekatan bottom-up.                                                min <- count
  Untuk 1      i     j     n, misal m[i,j] adalah jumlah                -> min
perkalian minimal yang diperlukan untuk menghitung Ai..j.
                                                                             Kode 2: Pseudocode rekursif
Harga optimum dapat dijabarkan melalui fungsi rekursif
berikut:
  Basis
     Jika i = j maka deret hanya berisi satu matriks                                  V. KESIMPULAN
     sehingga cost bernilai 0. Nilai m[i,j] akan bernilai 0.      Perkalian berantai matriks atau matrix chain
                                                               multiplication adalah salah satu permasalahan klasik di
  Rekurens                                                     dalam bidang penentuan keputusan menggunakan
    Jika i < j, maka diperlukan hasil untuk Ai..j. Nilai ini   dynamic programming. Solusi yang didapat menggunakan
    bisa didapatkan dengan mempartisi Ai..j menjadi Ai..k
                                                               teknik ini cukup efisien dibandingkan harus menghitung
    dan Ak+1..j untuk i   k < j. Dengan demikian nilai         segala kemungkinan yang ada.
    optimum untuk Ai..k dan Ak+1..j didefinisikan sebagai
    m[i,k] dan m[k+1, j].
                                                                                         REFERENCES
   Nilai optimum didapat dari penelusuran m[i,j] yang
menghasilkan nilai optimum.                                    [1]   E. Horowitz, “Computer Algorithms”, 2nd ed, Silicon Press, 2008
                                                               [2]   http://www.columbia.edu/~cs2035/courses/csor4231.F11/matrix-
   Berikut adalah pseudocode solusi dengan pendekatan                chain.pdf
iteratif:                                                      [3]   http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorit
                                                                     hms/Dynamic/chainMatrixMult.htm, tanggal akses 20 Desember
                                                                     2012
  function MatrixChain( p : real[1..n] ) -> tuple
                                                               [4]   http://www.cs.auckland.ac.nz/~jmor159/PLDS210/mat_chain.htm
  KAMUS LOKAL                                                        l, tanggal akses 20 Desember 2012
      s      : real[1..n-1][2..n]                              [5]   http://www.cse.ust.hk/~dekai/271/notes/L12/L12.pdf
      i,j,k,L : integer
      q      : real
  ALGORITMA
                                                                                        PERNYATAAN
      for i <- 1 to n do
           m[i][i] <- 0                                          Dengan ini saya menyatakan bahwa makalah yang saya
      for L <- 2 to n do                                        tulis ini adalah tulisan saya sendiri, bukan saduran, atau
           for i <- to n-L+1 do                                 terjemahan dari makalah orang lain, dan bukan plagiasi.
                j <- i + L - 1
                m[i][j] <- INFINITY                                                              Bandung, 21 Desember 2012
                for k <- i to j-1 do
                                                                                                                                ttd
                    q <- m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j]
                    if q < m[i,j]
                        m[i][j] <- q
                        s[i][j] <- k
      -> { m[1][n] s }

            Kode 1: Pseudocode iteratif

  Pendekatan rekursif sebagai berikut:                                                                       Satria Ady Pradana

   function MatrixChain2( p : integer[]; i,j: integer ) ->
integer
   KAMUS LOKAL
        k,min,count : integer
   ALGORITMA
        if( i == j )
             -> 0
        min <- INFINITY
        for k <- i to j-1 do
             count <- MatrixChain2(p, i, k) +
                        MatrixChain(p,K+1,j) +

Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013

Contenu connexe

Tendances

Pengertian dan jenis matriks
Pengertian dan jenis matriksPengertian dan jenis matriks
Pengertian dan jenis matriks
SMKN 9 Bandung
 
Matematika Teknik - Matriks
Matematika Teknik - MatriksMatematika Teknik - Matriks
Matematika Teknik - Matriks
Reski Aprilia
 
Bab 3 matriks,_determinan,_dan_sistem_persamaan_linier
Bab 3 matriks,_determinan,_dan_sistem_persamaan_linierBab 3 matriks,_determinan,_dan_sistem_persamaan_linier
Bab 3 matriks,_determinan,_dan_sistem_persamaan_linier
Ridhaumi
 
Jenis dan operasi matriks
Jenis dan operasi matriksJenis dan operasi matriks
Jenis dan operasi matriks
Safran Nasoha
 
Determinan matriks hasil dekomposisi
Determinan matriks hasil dekomposisiDeterminan matriks hasil dekomposisi
Determinan matriks hasil dekomposisi
BAIDILAH Baidilah
 
Determinan dan invers matriks
Determinan dan invers matriksDeterminan dan invers matriks
Determinan dan invers matriks
SMKN 9 Bandung
 

Tendances (19)

Aljabar matriks
Aljabar matriksAljabar matriks
Aljabar matriks
 
Bab 3(1) matriks
Bab 3(1) matriksBab 3(1) matriks
Bab 3(1) matriks
 
Pengertian dan jenis matriks
Pengertian dan jenis matriksPengertian dan jenis matriks
Pengertian dan jenis matriks
 
Matriks_Enggar Dywari_Math is so fun
Matriks_Enggar Dywari_Math is so funMatriks_Enggar Dywari_Math is so fun
Matriks_Enggar Dywari_Math is so fun
 
Matriks
MatriksMatriks
Matriks
 
Matriks
MatriksMatriks
Matriks
 
Matematika Teknik - Matriks
Matematika Teknik - MatriksMatematika Teknik - Matriks
Matematika Teknik - Matriks
 
matriks dan jenis-jenis matriks
matriks dan jenis-jenis matriksmatriks dan jenis-jenis matriks
matriks dan jenis-jenis matriks
 
Pertemuan matriks 1
Pertemuan matriks 1Pertemuan matriks 1
Pertemuan matriks 1
 
Bab 3 matriks,_determinan,_dan_sistem_persamaan_linier
Bab 3 matriks,_determinan,_dan_sistem_persamaan_linierBab 3 matriks,_determinan,_dan_sistem_persamaan_linier
Bab 3 matriks,_determinan,_dan_sistem_persamaan_linier
 
ppt definisi matriks (animated)
ppt definisi matriks (animated)ppt definisi matriks (animated)
ppt definisi matriks (animated)
 
Jenis dan operasi matriks
Jenis dan operasi matriksJenis dan operasi matriks
Jenis dan operasi matriks
 
Determinan matriks hasil dekomposisi
Determinan matriks hasil dekomposisiDeterminan matriks hasil dekomposisi
Determinan matriks hasil dekomposisi
 
Makalah Matriks dalam Struktur Data
Makalah Matriks dalam Struktur DataMakalah Matriks dalam Struktur Data
Makalah Matriks dalam Struktur Data
 
Matrix dan Operasi Penjumlahan Matrix
Matrix dan Operasi Penjumlahan Matrix Matrix dan Operasi Penjumlahan Matrix
Matrix dan Operasi Penjumlahan Matrix
 
Matriks SMK/SMA kelas XI
Matriks SMK/SMA kelas XIMatriks SMK/SMA kelas XI
Matriks SMK/SMA kelas XI
 
Determinan dan invers matriks
Determinan dan invers matriksDeterminan dan invers matriks
Determinan dan invers matriks
 
matriks
matriksmatriks
matriks
 
Kelompok 3 (matriks)
Kelompok 3 (matriks)Kelompok 3 (matriks)
Kelompok 3 (matriks)
 

Similaire à Makalah if3051-2012-098

matematika kelas 11 matriks lengkap.pptx
matematika kelas 11 matriks lengkap.pptxmatematika kelas 11 matriks lengkap.pptx
matematika kelas 11 matriks lengkap.pptx
YesyOktaviyanti1
 
Riskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriksRiskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriks
riskaty__13
 

Similaire à Makalah if3051-2012-098 (20)

Matrix - Invers, tranpose, determinant. (2x2, 3x3) XII Science LN
Matrix - Invers, tranpose, determinant. (2x2, 3x3) XII Science LNMatrix - Invers, tranpose, determinant. (2x2, 3x3) XII Science LN
Matrix - Invers, tranpose, determinant. (2x2, 3x3) XII Science LN
 
matematika kelas 11 matriks lengkap.pptx
matematika kelas 11 matriks lengkap.pptxmatematika kelas 11 matriks lengkap.pptx
matematika kelas 11 matriks lengkap.pptx
 
Matriks powerpoint
Matriks powerpointMatriks powerpoint
Matriks powerpoint
 
MATRIKS - MATEMATIKA KELAS 12 IPA
MATRIKS - MATEMATIKA KELAS 12 IPAMATRIKS - MATEMATIKA KELAS 12 IPA
MATRIKS - MATEMATIKA KELAS 12 IPA
 
Ppt klmpk 6 alj liner
Ppt klmpk 6 alj linerPpt klmpk 6 alj liner
Ppt klmpk 6 alj liner
 
PENGENALAN MATRIKS BESERTA CONTOH SOALNYA
PENGENALAN MATRIKS BESERTA CONTOH SOALNYAPENGENALAN MATRIKS BESERTA CONTOH SOALNYA
PENGENALAN MATRIKS BESERTA CONTOH SOALNYA
 
MATRIKS DAN DETERMINAN
MATRIKS DAN DETERMINANMATRIKS DAN DETERMINAN
MATRIKS DAN DETERMINAN
 
Matriks SMA Kelas 10
Matriks SMA Kelas 10Matriks SMA Kelas 10
Matriks SMA Kelas 10
 
Matriks SMA_SMK_MA Sederajat
Matriks SMA_SMK_MA SederajatMatriks SMA_SMK_MA Sederajat
Matriks SMA_SMK_MA Sederajat
 
Matriks
MatriksMatriks
Matriks
 
matriks
matriksmatriks
matriks
 
Matriks
MatriksMatriks
Matriks
 
Lampiran PPT matriks.ppt
Lampiran PPT matriks.pptLampiran PPT matriks.ppt
Lampiran PPT matriks.ppt
 
Buku siswa Materi Matriks
Buku siswa Materi MatriksBuku siswa Materi Matriks
Buku siswa Materi Matriks
 
Riskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriksRiskaty miftahul jannah (1730206093) p pt materi matriks
Riskaty miftahul jannah (1730206093) p pt materi matriks
 
MATRIKS.pdf
MATRIKS.pdfMATRIKS.pdf
MATRIKS.pdf
 
ppt matriks smk teknik 2024 Kelompok 1.pdf
ppt matriks smk teknik 2024 Kelompok 1.pdfppt matriks smk teknik 2024 Kelompok 1.pdf
ppt matriks smk teknik 2024 Kelompok 1.pdf
 
Matematika Matriks (Created by AkangCyber)
Matematika Matriks (Created by AkangCyber)Matematika Matriks (Created by AkangCyber)
Matematika Matriks (Created by AkangCyber)
 
matematika matriks logaritma dan laim lain
matematika matriks logaritma dan laim lainmatematika matriks logaritma dan laim lain
matematika matriks logaritma dan laim lain
 
Matriks
MatriksMatriks
Matriks
 

Plus de Satria Ady Pradana

Plus de Satria Ady Pradana (20)

Malware for Red Team
Malware for Red TeamMalware for Red Team
Malware for Red Team
 
Down The Rabbit Hole, From Networker to Security Professional
Down The Rabbit Hole, From Networker to Security ProfessionalDown The Rabbit Hole, From Networker to Security Professional
Down The Rabbit Hole, From Networker to Security Professional
 
MITM: Tales of Trust and Betrayal
MITM: Tales of Trust and BetrayalMITM: Tales of Trust and Betrayal
MITM: Tales of Trust and Betrayal
 
Berkarir di Cyber Security
Berkarir di Cyber SecurityBerkarir di Cyber Security
Berkarir di Cyber Security
 
IOT Security FUN-damental
IOT Security FUN-damentalIOT Security FUN-damental
IOT Security FUN-damental
 
Python-Assisted Red-Teaming Operation
Python-Assisted Red-Teaming OperationPython-Assisted Red-Teaming Operation
Python-Assisted Red-Teaming Operation
 
IoT Security - Preparing for the Worst
IoT Security - Preparing for the WorstIoT Security - Preparing for the Worst
IoT Security - Preparing for the Worst
 
Silabus Training Reverse Engineering
Silabus Training Reverse EngineeringSilabus Training Reverse Engineering
Silabus Training Reverse Engineering
 
Practical Security - Modern Day Software
Practical Security - Modern Day SoftwarePractical Security - Modern Day Software
Practical Security - Modern Day Software
 
Firmware Reverse Engineering
Firmware Reverse EngineeringFirmware Reverse Engineering
Firmware Reverse Engineering
 
Reverse Engineering: The Crash Course
Reverse Engineering: The Crash CourseReverse Engineering: The Crash Course
Reverse Engineering: The Crash Course
 
The Offensive Python: Practical Python for Penetration Testing
The Offensive Python: Practical Python for Penetration TestingThe Offensive Python: Practical Python for Penetration Testing
The Offensive Python: Practical Python for Penetration Testing
 
From Reversing to Exploitation: Android Application Security in Essence
From Reversing to Exploitation: Android Application Security in EssenceFrom Reversing to Exploitation: Android Application Security in Essence
From Reversing to Exploitation: Android Application Security in Essence
 
Android Security: Art of Exploitation
Android Security: Art of ExploitationAndroid Security: Art of Exploitation
Android Security: Art of Exploitation
 
Bypass Security Checking with Frida
Bypass Security Checking with FridaBypass Security Checking with Frida
Bypass Security Checking with Frida
 
Malware: To The Realm of Malicious Code (Training)
Malware: To The Realm of Malicious Code (Training)Malware: To The Realm of Malicious Code (Training)
Malware: To The Realm of Malicious Code (Training)
 
Reverse Engineering: Protecting and Breaking the Software (Workshop)
Reverse Engineering: Protecting and Breaking the Software (Workshop)Reverse Engineering: Protecting and Breaking the Software (Workshop)
Reverse Engineering: Protecting and Breaking the Software (Workshop)
 
Reverse Engineering: Protecting and Breaking the Software
Reverse Engineering: Protecting and Breaking the SoftwareReverse Engineering: Protecting and Breaking the Software
Reverse Engineering: Protecting and Breaking the Software
 
Memory Forensic: Investigating Memory Artefact (Workshop)
Memory Forensic: Investigating Memory Artefact (Workshop)Memory Forensic: Investigating Memory Artefact (Workshop)
Memory Forensic: Investigating Memory Artefact (Workshop)
 
Memory Forensic: Investigating Memory Artefact
Memory Forensic: Investigating Memory ArtefactMemory Forensic: Investigating Memory Artefact
Memory Forensic: Investigating Memory Artefact
 

Dernier

PPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptx
PPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptxPPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptx
PPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptx
MaskuratulMunawaroh
 
Contoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptxContoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptx
IvvatulAini
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
novibernadina
 

Dernier (20)

DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKAKELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
KELAS 10 PERUBAHAN LINGKUNGAN SMA KURIKULUM MERDEKA
 
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
 
PPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptx
PPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptxPPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptx
PPT SOSIALISASI PENGELOLAAN KINERJA GURU DAN KS 2024.pptx
 
Contoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptxContoh PPT Seminar Proposal Teknik Informatika.pptx
Contoh PPT Seminar Proposal Teknik Informatika.pptx
 
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptxOPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
OPTIMALISASI KOMUNITAS BELAJAR DI SEKOLAH.pptx
 
Kenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).pptKenakalan Remaja (Penggunaan Narkoba).ppt
Kenakalan Remaja (Penggunaan Narkoba).ppt
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfMODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
 
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdfAksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTXAKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
AKSI NYATA TOPIK 1 MERDEKA BELAJAR. PPTX
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
 
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
RENCANA + Link2 MATERI Training _"SISTEM MANAJEMEN MUTU (ISO 9001_2015)".
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdfProv.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
Prov.Jabar_1504_Pengumuman Seleksi Tahap 2_CGP A11 (2).pdf
 
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptxPPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
PPT PENDIDIKAN KELAS RANGKAP MODUL 3 KELOMPOK 3.pptx
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
 
Konseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusiaKonseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusia
 

Makalah if3051-2012-098

  • 1. Penggunaan Dynamic Programming Untuk Menyelesaikan Permasalahan Optimasi Matrix Chain Multiplication Satria Ady Pradana - 13510030 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia satria@arc.itb.ac.id, master@xathrya.web.id Abstrak—Perkalian matriks merupakan salah satu operasi Pada gambar 2 terlihat bahwa sebuah matriks A umum yang terjadi pada bidang komputasi. Suatu komputasi didefinisikan sebagai matriks berukuran 3 x 2 atau 3 baris seringkali melibatkan perkalian-berantai matriks. dan 2 kolom. Makalah ini akan membahas penggunaan algoritma Setiap nilai / simbol / ekspresi yang membentuk matriks dynamic programming untuk mencari solusi optimum dalam menentukan urutan perkalian. disebut sebagai elemen matriks. Elemen matriks diidentifikasi sesuai dengan letak sel, yakni koordinat Kata kunci—matriks, perkalian berantai, optimasi, pertemuan baris dan kolom. Dengan mengambil contoh dynamic programming. pada gambar 1, elemen a23 adalah elemen matriks A pada baris ke-2 dan kolom ke-3. Contoh lain adalah nilai 135 merupakan elemen matriks pada baris pertama kolom I. MATRIX DAN OPERASINYA pertama sementara nilai 182 adalah elemen matriks pada baris kedua kolom pertama. Mengacu pada istilah matematika, matriks adalah Secara luas matriks dimanfaatkan dalam berbagai jenis kumpulan bilangan, simbol, atau ekspresi yang disusun komputasi. Beberapa contoh yang dapat diambil antara membentuk persegi panjang atau tabel menurut baris dan lain: menemukan solusi sistem persamaan linear, kolom. transformasi linear (translasi, dilatasi, rotasi suatu objek), Sebuah matriks dinotasikan dengan huruf kapital, perhitungan pada bidang engineering, dll. seperti: A, M, K, dsb. Ukuran suatu matriks, disebut pula Berdasarkan ordonya matriks dapat diklasifikasikan sebagai ordo matriks, ditentukan oleh panjang dan lebar sebagai: matriks bujur sangkar/persegi, matriks baris, matriks tersebut. Secara umum, matriks dituliskan sebagai matriks kolom, matriks tegak, matriks datar. berikut: Matriks bujur sangkar atau matriks persegi adalah matriks yang memiliki ordo n x n. Dengan kata lain matriks ini memiliki jumlah baris yang sama dengan jumlah kolomnya. Matriks ini sering pula disebut sebagai matriks berordo n. Gambar 1: Matriks A berukuran m x n Pada gambar di atas, sebuah matriks bernama A Gambar 3: Matriks persegi 2x2 definisikan sebagai matriks dengan ukuran m baris dan n kolom dengan m,n > 0. Terdapat m x n buah elemen yakni Matriks baris adalah matriks dengan ordo 1 x n. a11, a12, ..., amn yang tersusun membentuk tabel. Elemen- Dengan kata lain matriks ini hanya memiliki satu buah elemen tersebut tersusun berdasarkan baris dan kolom. baris saja. Berikut ini adalah contoh lain matriks. Gambar 4: Matriks Baris ordo 1x3 Gambar 2: Matriks A berukuran 3x2 Matriks kolom adalah kebalikan dari matriks baris. Matriks ini adalah matriks dengan ordo n x 1 atau Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
  • 2. memiliki n buah baris dengan hanya sebuah kolom yang Misal: menjadi penyusunnya. Matriks tegak adalah matriks berukuran m x n dengan m .> n. Jika m < n maka matriks tersebut disebut sebagai matriks datar. Gambar 2 merupakan salah satu contoh matriks tegak. Sebuah matriks baris dapat dikatakan dan sebagai matriks datar, begitu juga matriks kolom dapat dikatakan sebagai matriks tegak karena memenuhi karakteristik. Berdasarkan elemen penyusunnya, matriks dapat diklasifikasikan sebagai: matriks nol, matriks diagonal, Operasi perkalian antara A dan B akan menghasilkan matriks identitas, matriks skalar, matriks simetri, matriks sebuah matriks pula. Misal C adalah matriks hasil segitiga atas, dan matriks segitiga bawah, . perkalian A dan B sesuai dengna contoh di atas. Matriks Matriks nol adalah matriks berukuran m x n dengan C didefinisikan sebagai sebuah matriks ordo 2x4. seluruh elemen penyusunnya adalah 0 (nol). Secara umum perkalian antara Amxn dengan Bnxr akan Matriks diagonal adalah matriks persegi dengan semua menghasilkan matriks baru dengan ordo Cmxr. Nilai elemen di atas dan di bawah diagonal bernilai nol. Secara elemen matriks C didapatkan dari hasil penjumlahan formal didefinisikan bahwa untuk elemen matriks pada perkalian elemen baris i pada matriks A dan elemen baris i dan j dengan i ≠ j bernilai 0. kolom j pada matriks B. Dalam persamaan matematika, Matriks identitas atau matriks satuan adalah matriks definisi tersebut dapat dituliskan sebagai: bentuk khusus matriks diagonal dengan semua elemen pembentuk diagonal memiliki nilai 1 (satu). Matriks ini adalah matriks khusus uang disimbolkan dengan I dari kata identity.. Matriks skalar adalah bentuk khusus matriks diagonal dengan semua elemen pada diagonal bernilai sama. Persamaan 1: Nilai elemen matriks C Matriks identitas adalah matriks bentuk khusus dengan setiap elemen diagonal bernilai satu. Matriks simetri adalah matriks persegi dengan nilai Dengan menggunakan definisi tersebut, matriks C elemen aij sama dengan nilai elemen aji. bernilai sebagai berikut: Gambar 5: Matriks Simetri 3x3 Matriks segitiga atas adalah bentuk khusus matriks persegi dengan elemen pada matriks di bawah diagonal bernilai 0. Dengan kata lain, setiap elemen aij dengan i > j Perkalian matris bersifat asosiatif. Hal ini berarti kedua bernilai 0. perkalian berikut akan menghasilkan nilai yang sama: Matriks segitiga bawah adalah lawan dari matriks segitiga atas. Pada matriks segitiga bawah, setiap elemen yang berada di atas diagonal bernilai 0. Secara formal berlaku aij = 0 dengan i < j. Matriks seperti halnya bilangan biasa memiliki operasi- Persamaan 2: Perkalian matriks bersifat operasi spesifik terhadapnya. Beberapa operasi dasar pada asosiatif matriks antara lain: transpos, invers, penjumlahan, pengurangan, perkalian, dan pembagian. Namun dalam Namun perkalian pada matriks tidak bersifat komutatif. makalah ini hanya akan dibahas mengenai operasi Sehingga: perkalian saja, terutama tentang perkalian matriks dengan matriks. Perkalian matriks adalah suatu operasi biner yang melibatkan dua buah matriks. Suatu operasi perkalian Persamaan 3: Perkalian matriks tidak bersifat terhadap matriks A dan matriks B hanya dapat dilakukan jika jumlah kolom A sama dengan jumlah baris B. komutatif Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
  • 3. kurung (). Sesuai dengan urutan operator, ekspresi yang Hal ini bisa dibuktikan sebagai berikut: berada di dalam tanda kurung akan dikerjakan terlebih dahulu. Hal ini dalam beberapa kondisi dapat memperingkas perhitungan. Gambar 8: pengelompokan suku Hal yang sama juga berlaku pada perkalian berantai dengan matriks sebagai operan. Gambar 6: Perkalian matriks tidak bersifat komutatif III. DYNAMIC PROGRAMMING Namun sebuah pengecualian apabila sebuah matriks dikalikan dengan matriks identitas maka hasilnya adalah Dynamic Programming atau pemrograman dinamis matriks itu sendiri. Sehingga kedua persamaan di bawah adalah salah satu strategi algoritma atau desain algoritma ini benar. untuk menyelesaikan persoalan. Karakteristik permasalahan yang dapat diselesaikan adalah masalah yang dapat dilihat sebagai hasil dari urutan pemilihan (sequence of decisions). Dynamic Programming memecah masalah ke dalam beberapa upamasalah yang lebih sederhana. Secara luas Persamaan 4: Perkalian dengan matriks dynamic programming digunakan apabila permasalahan identitas tersusun dari upamasalah yang tumpang tindih (overlapping subsequence). Ide utama di balik dynamic programming sangat II. PERKALIAN BERANTAI sederhana. Untuk dapat menyelesaikan permasalahan, bagian permasalahan yang berbeda (upamasalah) harus Diberikan beberapa objek (dapat berupa nilai / simbol / diselesaikan terlebih dahulu. Solusi didapatkan dari hasil ekspresi) yang disusun berderet, perkalian berantai adalah penggabungan upamasalah-upamasalah untuk mencapai operasi berantai yang terjadi pada deretan untuk solusi global. menghasilkan suatu nilai akhir. Sekilas teknik ini mirip dengan teknik Divide and Pada perkalian berantai, nilai pada suku ke-i akan Conquer karena sifatnya yang membagi masalah menjadi dikalikan dengan nilai pada suku (i+1). Hasil perkalian permasalahan kecil. Namun perbedaan utama antara ini, misal x, akan menjadi operan bagi operasi perkalian dynamic programming dan divide and conquer terletak selanjutnya. Operasi ini akan terus berlanjut hingga pada definisi upamasalah serta strategi pemecahannya. mencapai suku ke-n. Pada divide and conquer, upamasalah merupakan Lebih lanjut, jika terdapat n buah suku, maka akan bagian kecil dari masalah yang memiliki karakteristik terjadi (n-1) buah perkalian. sama dengan persoalan awal. Upa masalah pada ukuran paling kecil dapat diselesaikan dengan mudah. Setelah penyelesaian, upamasalah akan digabungkan dengan upamasalah lain untuk mendapat solusi yang lebih besar. Gambar 7: Perkalian berantai Lain halnya dengan dynamic programming. Upamasalah merupakan masalah yang tumpang tindih, artinya solusi suatu upamasalah dapat menjadi input untuk Pada perkalian aljabar biasa berlaku sifat komutatif menyelesaikan upamasalah lain. Hasil dari pemecahan sehingga deret suku dapat dipermutasi sehingga menjadi upamasalah akan disimpan atau dimemoisasi. Ketika suatu urutan tertentu tanpa mengubah hasil akhir operasi. solusi yang sama dibutuhkan upamasalah tak perlu Operasi perkalian berantai pada matrix serupa dengan dikomputasi ulang, cukup mengambil nilai solusi dari operasi perkalian di atas. Namun perkalian matriks tidak tabel solusi. bersifat komutatif sehingga perkalian matriks yang Desain dynamic programming sangat berguna terutama dikerjakan akan memiliki satu buah variasi penempatan ketika jumlah upamasalah yang tumpang tindih tumbuh saja. secara eksponensial sebagai fungsi dari input. Perkalian berantai dapat juga dikelompokkan ke dalam kelompok-kelompok kecil yang dipisahkan dengan tanda Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
  • 4. IV. PERSOALAN MATRIX CHAIN MULTIPLICATION Misal A adalah matriks 10x30, B adalah matriks 30x5, dan C adalah matriks 5x60. Banyaknya operasi aritmatika Berdasarkan definisi yang telah disebutkan sebelumnya, yang terjadi untuk setiap kemungkinan perkalian matriks perkalian-berantai matriks atau matrix chain adalah sebagai berikut: multiplication adalah operasi perkalian yang terjadi secara terus-menerus. Persoalan perkalian berantai merupakan persoalan optimisasi yang dapat diselesaikan menggunakan dynamic programming. Gambar 11: Perbandingan operasi Persoalan utama bukan pada bagaimana melakukan perkalian (mendapatkan nilai dari operasi) namun Dapat kita lihat pemilihan urutan perkalian yang bagaimana menentukan urutan perkalian yang dilakukan. berbeda akan menghasilkan jumlah operasi yang berbeda Untuk menghitung hasil dari perkalian berantai, pula. Dalam hal ini dengan mengalikan A dengna B terdapat berbagai cara atau pilihan. Berdasarkan sifat kemudian mengalikannya dengan C akan memerlukan asosiatif, suatu ekspresi perkalian berantai dapat 4500 operasi. Sementara jika A dikalikan dengan B dan C dikelompokkan ke dalam partisi-partisi kecil di dalam yang telah dikalikan terlebih dahulu, operasi yang tanda kurung () yang berisi perkalian. dibutuhkan adalah 27000. Perbedaan keduanya cukup Pengelompokan / partisi ini dapat menghasilkan besar, lebih dari 6 kali lipat jumlah operasi pertama. bermacam-macam variasi / cara. Namun nilai yang Kini telah jelas permasalahan utama yang dihadapi. dihasilkan untuk setiap pilihan adalah sama. Bagaimana cara menentukan urutan perkalian agar Pada aljabar biasa, sebuah ekspresi perkalian berantai memerlukan operasi minimal? dapat dipecah sebagai berikut: Dengan pendekatan dynamic programming, persoalan ini dapat dilihat sebagai penentuan sebuah struktur. Dalam hal ini adalah partisi tanda kurung (). Masalah dipecah menjadi beberapa upamasalah. Solusi Gambar 9: partisi tanda kurung didapat dari penggabungan solusi upamasalah. Sifat perkalian matriks yang tidak komutatif memberi kita Dapat dilihat bahwa penentuan partisi dapat ditentukan manfaat seperti yang telah dijelaskan sebelumnya. selain dari letak tanda kurung (elemen-elemen yang Permasalahan ini kemudian dapat dimodelkan sebagai dikelompokkan bersama) juga ditentukan oleh permutasi sebuah string / deretan matriks. anggota yang dioperasikan. Dalam kasus di atas, Dua Misal Ai..j merupakan hasil dari perkalian matriks i tanda kurung digunakan untuk mengelompokkan a dan b hingga j.Dapat dilihat bahwa Ai..j merupakan hasil dari serta c dan d. Namun solusi lain yang didapat adalah perkalian matriks pi-1 dan pj dengan p adalah input nilai dengan mengelompokkan a dan c sedangkan b dan d ukuran matriks. Untuk melakukan perkalian secara dikelompokkan ke dalam partisi lain. optimal, diperlukan pemilihan terdapat banyak solusi yang Namun pendekatan ini tidak berlaku pada perkalian mungkin. matriks karena perkalian matriks tidak bersifat komutatif. Misal untuk kasus pada gambar 11, nilai larik p adalah Keuntungannya adalah bahwa kita dapat mengabaikan kondisi permutasi untuk memikirkan solusi. Fokus utama hanya terdapat pada partisi objek. Persamaan 5: Nilai larik p Pada Matrix Chain Multiplication, bermacam-macam variasi solusi yang dapat dihasilkan uuntuk sebuah ekspresi. Namun semua kemungkinan akan menghasilkan Langkah pertama adalah mencari struktur yang dapat hasil yang sama. Perbedaan utama terletak pada biaya menggambarkan keadaan seluruh upamasalah. Di level ini yang diperlukan. Biaya yang dimaksud adalah banyaknya kita berasumsi bahwa perkalian terjadi merupakan operasi perkalian dan penjumlahan yang harus dilakukan. biner sehingga untuk setiap k, 1 k n – 1, Misal terdapat empat buah matriks: A, B, C, dan D. Berikut adalah partisi yang dapat dihasilkan dengan nilai akhir yang sama: Persamaan 6: Definisi perkalian matriks Gambar 10: Partisi Indeks k adalah posisi pemisahan deret menjadi dua Partisi akan sangat memengaruhi jumlah operasi upamasalah berbeda. Untuk setiap upamasalah, akan aritmatika yang dilakukan. Khususnya bagi operasi diselesaikan secara rekursif. perkalian dan operasi penjumlahan. Solusi upamasalah akan disimpan ke dalam suatu tabel. Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013
  • 5. Pembangunan tabel dapat dilakukan dengan cara top- p[i-1]*p[k]*p[j] down maupun bottom-up, namun pada makalah ini akan if count < min digunakan pendekatan bottom-up. min <- count Untuk 1 i j n, misal m[i,j] adalah jumlah -> min perkalian minimal yang diperlukan untuk menghitung Ai..j. Kode 2: Pseudocode rekursif Harga optimum dapat dijabarkan melalui fungsi rekursif berikut: Basis Jika i = j maka deret hanya berisi satu matriks V. KESIMPULAN sehingga cost bernilai 0. Nilai m[i,j] akan bernilai 0. Perkalian berantai matriks atau matrix chain multiplication adalah salah satu permasalahan klasik di Rekurens dalam bidang penentuan keputusan menggunakan Jika i < j, maka diperlukan hasil untuk Ai..j. Nilai ini dynamic programming. Solusi yang didapat menggunakan bisa didapatkan dengan mempartisi Ai..j menjadi Ai..k teknik ini cukup efisien dibandingkan harus menghitung dan Ak+1..j untuk i k < j. Dengan demikian nilai segala kemungkinan yang ada. optimum untuk Ai..k dan Ak+1..j didefinisikan sebagai m[i,k] dan m[k+1, j]. REFERENCES Nilai optimum didapat dari penelusuran m[i,j] yang menghasilkan nilai optimum. [1] E. Horowitz, “Computer Algorithms”, 2nd ed, Silicon Press, 2008 [2] http://www.columbia.edu/~cs2035/courses/csor4231.F11/matrix- Berikut adalah pseudocode solusi dengan pendekatan chain.pdf iteratif: [3] http://www.personal.kent.edu/~rmuhamma/Algorithms/MyAlgorit hms/Dynamic/chainMatrixMult.htm, tanggal akses 20 Desember 2012 function MatrixChain( p : real[1..n] ) -> tuple [4] http://www.cs.auckland.ac.nz/~jmor159/PLDS210/mat_chain.htm KAMUS LOKAL l, tanggal akses 20 Desember 2012 s : real[1..n-1][2..n] [5] http://www.cse.ust.hk/~dekai/271/notes/L12/L12.pdf i,j,k,L : integer q : real ALGORITMA PERNYATAAN for i <- 1 to n do m[i][i] <- 0 Dengan ini saya menyatakan bahwa makalah yang saya for L <- 2 to n do tulis ini adalah tulisan saya sendiri, bukan saduran, atau for i <- to n-L+1 do terjemahan dari makalah orang lain, dan bukan plagiasi. j <- i + L - 1 m[i][j] <- INFINITY Bandung, 21 Desember 2012 for k <- i to j-1 do ttd q <- m[i][k]+m[k+1][j]+p[i-1]*p[k]*p[j] if q < m[i,j] m[i][j] <- q s[i][j] <- k -> { m[1][n] s } Kode 1: Pseudocode iteratif Pendekatan rekursif sebagai berikut: Satria Ady Pradana function MatrixChain2( p : integer[]; i,j: integer ) -> integer KAMUS LOKAL k,min,count : integer ALGORITMA if( i == j ) -> 0 min <- INFINITY for k <- i to j-1 do count <- MatrixChain2(p, i, k) + MatrixChain(p,K+1,j) + Makalah IF3051 Strategi Algoritma – Sem. I Tahun 2012/2013