3
/ ANALISIS ALGORITMA METODE CONJUGATE GRADIENT DAN - STEEPEST DESCENT Sunjana Jurusan Sistem Infonnasi, Fakultas Teknik, Universitas Widyatama Jalan Cikutra 204 A, kp.40125 sunjana(a)widyatama.ac.id Abstrak -Eada paper ini dibahas mengenai algoritma COnjugate Gradient Me/hod dan Steepest Descent-Method. Kedua algoritma ini merupakan algoritma iteratif un/uk menyelesaikan permasalahan sistem persamaan linier. Dari hasil uji coba terhadap beberapa kasus data terlihat bahwa algoritma Conjugate Gradient Method jauh lebih ejisien dibanding dengan algoritma Steepest Descent Method. Kata kunci : Conjugate Gradient Method ,Steepest Descent Method 1. Pendahuluan Metode gradient konyugasi (Conjugate . Gradient, (CG) ) adalah metode iteratif yang sangat popular Wltuk memecahkan permasalahan sistem linier berskala besar. Pada umumnya CG dapat dinyatakan sebagai metode langsWlg (direct method) atau metode iteratif (iteratif method). Akan tetapi biasanya CG digWlakan sebagai metode iteratif supaya dapat diaplikasikan pada sistem jarang (sparse sistem) yang terlalu besar jika dipecahkan dengan metode langsWlg. Dalam artikel ini, say a akan membahas efesiensi dan kemampuan CG dan membandingkannya dengan Steepest Descent Method. Saya akan mengimplementasikan dan menganalis CG dengan menggunakan program- computer. Pada bagian-bagian selanjufuya akan dibahas : ide utama dan algontma CG akan dibahas pada bagian 2, implementasinya akan dijelaskan pada bagian 3, anal-isa algoritma akan dibahas pada bagian 4, dan kesimpulan akan dibahas dibagian 5. 2. MetodeGradien Konyugasi(Conjugate Gradient) Misalkan kita ingin menyelesaikan sistem persamaan linier beikut : Ax = b (I) A adalah matrik n x n, simetrik (A = AT), positive-definite (yT Ay > 0-) untuk vektor-vektor R n tidak nol y dalam , dan matrik nil, x adalah vektor yang tidak diketahui dalam Rn; dan b adalah vektor yang diketahu dalam R n . Dengan menggWlakan metode iteratif CG, kita akan menggunakan nilai terlcaan awal Xo untuk mencari solusi sistem persamaan linier x'. Sebagai nilai awal kita gunakan Xo = O. Kemudian kita melakukan pengukuran seberapa dekat solusi yang kita dapatkan. Berdasarkan kepada penjelasan Shewchuk[ I], diberikan sebuah fungsi kuadrat 1 T f(x)=-x Ax-bx (2) 2 dimana A adalah sebuah matrik, x dan b adalah vektor, jika A adalah simetrik dan positive-defmite, f(x) diminimasi dengan solusi dari Ax = b . Misalkan gradien dan persamaan (2) pada titik Xo adalah do Vf(x) = Ax-b (3) Sekarang kita definisikan sebagai residual pada r k langkah ke-k r k =b-Axk (4) Dikarenakan sarna dengan gradien negatif dari f r k pada x k ' CG akan bergerak dalam arah r k . Tetapi sebagai ganti dari arah r k , yang juga dinamakan metode Steepest Descent (SD), CG juga menuntut 225

ANALISIS ALGORITMA METODE CONJUGATE GRADIENT DAN

  • Upload
    vuhanh

  • View
    245

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ANALISIS ALGORITMA METODE CONJUGATE GRADIENT DAN

ANALISIS ALGORITMA METODE CONJUGATE GRADIENT DAN - STEEPEST DESCENT

Sunjana

Jurusan Sistem Infonnasi Fakultas Teknik Universitas Widyatama Jalan Cikutra 204 A kp40125

sunjana(a)widyatamaacid

Abstrak

-Eada paper ini dibahas mengenai algoritma COnjugate Gradient Mehod dan Steepest Descent-Method Kedua algoritma ini merupakan algoritma iteratif unuk menyelesaikan permasalahan sistem persamaan linier Dari hasil uji coba terhadap beberapa kasus data terlihat bahwa algoritma Conjugate Gradient Method jauh lebih ejisien dibanding dengan algoritma Steepest Descent Method

Kata kunci Conjugate Gradient Method Steepest Descent Method

1 Pendahuluan

Metode gradient konyugasi (Conjugate Gradient (CG) ) adalah metode iteratif yang sangat popular Wltuk memecahkan permasalahan sistem linier berskala besar Pada umumnya CG dapat dinyatakan sebagai metode langsWlg (direct method) atau metode iteratif (iteratif method) Akan tetapi biasanya CG digWlakan sebagai metode iteratif supaya dapat diaplikasikan pada sistem jarang (sparse sistem) yang terlalu besar jika dipecahkan dengan metode langsWlg

Dalam artikel ini say a akan membahas efesiensi dan kemampuan CG dan membandingkannya dengan Steepest Descent Method Saya akan mengimplementasikan dan menganalis CG dengan menggunakan programshycomputer

Pada bagian-bagian selanjufuya akan dibahas ide utama dan algontma CG akan dibahas pada bagian 2 implementasinya akan dijelaskan pada bagian 3 anal-isa algoritma akan dibahas pada bagian 4 dan kesimpulan akan dibahas dibagian 5

2 MetodeGradien Konyugasi(Conjugate Gradient)

Misalkan kita ingin menyelesaikan sistem persamaan linier beikut

Ax = b (I)

A adalah matrik n x n simetrik (A = AT)

positive-definite (yT Ay gt 0-) untuk vektor-vektor

Rntidak nol y dalam dan matrik nil x adalah

vektor yang tidak diketahui dalam Rn dan b adalah

vektor yang diketahu dalam Rn

Dengan menggWlakan metode iteratif CG kita akan

menggunakan nilai terlcaan awal Xo untuk mencari

solusi sistem persamaan linier x Sebagai nilai

awal kita gunakan Xo = O Kemudian kita

melakukan pengukuran seberapa dekat solusi

xmiddot yang kita dapatkan Berdasarkan kepada penjelasan Shewchuk[ I] diberikan sebuah fungsi kuadrat

1 Tf(x)=-x Ax-bx (2)

2 dimana A adalah sebuah matrik x dan b adalah vektor jika A adalah simetrik dan positive-defmite

f(x) diminimasi dengan solusi dari Ax = b Misalkan gradien dan persamaan (2) pada titik

Xo adalah do

Vf(x) = Ax-b (3)

Sekarang kita definisikan sebagai residual pada r k

langkah ke-k

rk =b-Axk (4)

Dikarenakan sarna dengan gradien negatif dari f rk

pada xk CG akan bergerak dalam arah rk Tetapi

sebagai ganti dari arah rk yang juga dinamakan

metode Steepest Descent (SD) CG juga menuntut

225

babwa arab dk adalah

lainnya sehingga arab konyugalti dan

dekat dengan residual rk+J

Persarnaan lengkap metode (Conjugate Gradient) adalah

do ro b Axo

Xi+l Xi + aidi

ri+l == r i aiAdi

T ri ri

d i+l + f3i+l d j

3 Implementasi

akan

pseudocodes yang dijelaskan oleh Shewchuk [1] pada bagian ini saya akan bahas implemenasi dua algoritma berikut

a) Metode Steepest Descent Metode Conjugate Gradient

31 Metode Steepest Descent

Berikut koding dalam bahasa Matlab

function [xi]

i max epsilon

Descent(Ab) 107

10-5 x ~ zeros(size(b)) i Or b Ax delta = r r delta 0 delta while (i lt i max) ampamp (delta epsilon2 0)

i i + 1 q Ari

delta I xold x x = x + r if mod(i50)

r b Ax else

r = r end deLta rr

(r

o

if size(AI) == 2 ([xold(l) x (1)] [xold(2) IX

(2)1-bo nevhdth(2)

end end

end

32 Metode Conjugate Gradient

Benkut adalah CG

dalam bahasa Matlab untuk

function [xi eGradients(Ab)

i max 10 7 epsilon 10-5 x = zeros(size(b)) i Or b - Axd r delta = rr delta 0 delta while Ii lt i max) ampamp (delta gt

q i + 1 Ad

0)

delta I (d xold x x = x + if mod(i50)

r b else

= r end

o Ax

delta delta

r r beta delta I d = r + betakd if size(Al) 2

q

( (l)x(l)] [xold(2)x( 2)] bull-r+ I Linevhdth 2)

end end

end

4 Analisa Numerik

Untuk analisa numerik saya akan contoh kasus yang ada dalam paper Schewchuk

berikut

~lb [~8] Dengan menggunakan kedua koding dan cfiatas sebagai inputan saya dapatkan

data

seperti pada abel dibawah ini Tabel 1 Hasi 1m lementasl kedua

---~-=--~

Steepest Descent 39

2000 ] 2000

Terlihat pada tabel 1 efisiensi antara SD dan eG Untuk uji lanjutan saya mencoba

ukuran matrik yang lebih besar dan hasilnya diperlihatkan pada tabel 2

Tabel 2 Hasil perbandingan antara algoritma SD shydan CG

Okura n A (n)

J umlah Iterasi Steepest Descent Conjugate Gradient Baik Buruk Ratashy

rata Bai k

Buru k

Rata -rata

2x2 5 465 93 2 2 2 4x4 96 17666 4373 4 4 4 6x6 595 -2306344 395070 6 6 6

1

8X8 2359 0

10000000( )

50975 07

8 9 88

IOxlO 3635 0

10000000( )

75204 __ 34

_11 12 116

5 Kesimpulao Dao Saran

Metode Conjugate Gradient merupakan algoritma yang cukup luas digunakan untuk menyelesai)ltan sistem persamaan linier Terlihat dari percobaanmiddot bahwa hasil yang diperoleh dengan algoritma Conjugate Gradient jauh lebih efisien dibanding dengan algoritma Steepest Decent

Conjugate -Gradient hanya dapat digunakan untuk masalah yang sirnetrik dan matrik positiveshydefinite

Perlu pengembangan lebm lanjut dari algoritrna ini untuk mengatasi keterbatasan diatas

Daftar Pustaka

[I] Jonathan Richard SchewchukAn Introduction to the Conjugate Gradient Method Without the Agonizing Pain August 4 1994

[2] Magnis R Hestenes Eduard StiefelMethods of Conjugate Gradients for Solving Linier Sistem Journal of Research of the National Bureau of Standards Vol 49 No6 December 1952

[3] John K ReidOn the Method of Conjugate Gradient for the Solution of Large Sparse Sistem ofLinier Equations Large Sparse Sets

of Linear Equations (London and New York) Academic Press London anP New York 1971pp23 1-254

[4] RFletcherConjugate gradient methods for indefinite sistem Numerical Analysis Lecture Note in Mathematics Springer BeriinlHeidelberg VoL506p73-891976

227

Page 2: ANALISIS ALGORITMA METODE CONJUGATE GRADIENT DAN

babwa arab dk adalah

lainnya sehingga arab konyugalti dan

dekat dengan residual rk+J

Persarnaan lengkap metode (Conjugate Gradient) adalah

do ro b Axo

Xi+l Xi + aidi

ri+l == r i aiAdi

T ri ri

d i+l + f3i+l d j

3 Implementasi

akan

pseudocodes yang dijelaskan oleh Shewchuk [1] pada bagian ini saya akan bahas implemenasi dua algoritma berikut

a) Metode Steepest Descent Metode Conjugate Gradient

31 Metode Steepest Descent

Berikut koding dalam bahasa Matlab

function [xi]

i max epsilon

Descent(Ab) 107

10-5 x ~ zeros(size(b)) i Or b Ax delta = r r delta 0 delta while (i lt i max) ampamp (delta epsilon2 0)

i i + 1 q Ari

delta I xold x x = x + r if mod(i50)

r b Ax else

r = r end deLta rr

(r

o

if size(AI) == 2 ([xold(l) x (1)] [xold(2) IX

(2)1-bo nevhdth(2)

end end

end

32 Metode Conjugate Gradient

Benkut adalah CG

dalam bahasa Matlab untuk

function [xi eGradients(Ab)

i max 10 7 epsilon 10-5 x = zeros(size(b)) i Or b - Axd r delta = rr delta 0 delta while Ii lt i max) ampamp (delta gt

q i + 1 Ad

0)

delta I (d xold x x = x + if mod(i50)

r b else

= r end

o Ax

delta delta

r r beta delta I d = r + betakd if size(Al) 2

q

( (l)x(l)] [xold(2)x( 2)] bull-r+ I Linevhdth 2)

end end

end

4 Analisa Numerik

Untuk analisa numerik saya akan contoh kasus yang ada dalam paper Schewchuk

berikut

~lb [~8] Dengan menggunakan kedua koding dan cfiatas sebagai inputan saya dapatkan

data

seperti pada abel dibawah ini Tabel 1 Hasi 1m lementasl kedua

---~-=--~

Steepest Descent 39

2000 ] 2000

Terlihat pada tabel 1 efisiensi antara SD dan eG Untuk uji lanjutan saya mencoba

ukuran matrik yang lebih besar dan hasilnya diperlihatkan pada tabel 2

Tabel 2 Hasil perbandingan antara algoritma SD shydan CG

Okura n A (n)

J umlah Iterasi Steepest Descent Conjugate Gradient Baik Buruk Ratashy

rata Bai k

Buru k

Rata -rata

2x2 5 465 93 2 2 2 4x4 96 17666 4373 4 4 4 6x6 595 -2306344 395070 6 6 6

1

8X8 2359 0

10000000( )

50975 07

8 9 88

IOxlO 3635 0

10000000( )

75204 __ 34

_11 12 116

5 Kesimpulao Dao Saran

Metode Conjugate Gradient merupakan algoritma yang cukup luas digunakan untuk menyelesai)ltan sistem persamaan linier Terlihat dari percobaanmiddot bahwa hasil yang diperoleh dengan algoritma Conjugate Gradient jauh lebih efisien dibanding dengan algoritma Steepest Decent

Conjugate -Gradient hanya dapat digunakan untuk masalah yang sirnetrik dan matrik positiveshydefinite

Perlu pengembangan lebm lanjut dari algoritrna ini untuk mengatasi keterbatasan diatas

Daftar Pustaka

[I] Jonathan Richard SchewchukAn Introduction to the Conjugate Gradient Method Without the Agonizing Pain August 4 1994

[2] Magnis R Hestenes Eduard StiefelMethods of Conjugate Gradients for Solving Linier Sistem Journal of Research of the National Bureau of Standards Vol 49 No6 December 1952

[3] John K ReidOn the Method of Conjugate Gradient for the Solution of Large Sparse Sistem ofLinier Equations Large Sparse Sets

of Linear Equations (London and New York) Academic Press London anP New York 1971pp23 1-254

[4] RFletcherConjugate gradient methods for indefinite sistem Numerical Analysis Lecture Note in Mathematics Springer BeriinlHeidelberg VoL506p73-891976

227

Page 3: ANALISIS ALGORITMA METODE CONJUGATE GRADIENT DAN

Tabel 2 Hasil perbandingan antara algoritma SD shydan CG

Okura n A (n)

J umlah Iterasi Steepest Descent Conjugate Gradient Baik Buruk Ratashy

rata Bai k

Buru k

Rata -rata

2x2 5 465 93 2 2 2 4x4 96 17666 4373 4 4 4 6x6 595 -2306344 395070 6 6 6

1

8X8 2359 0

10000000( )

50975 07

8 9 88

IOxlO 3635 0

10000000( )

75204 __ 34

_11 12 116

5 Kesimpulao Dao Saran

Metode Conjugate Gradient merupakan algoritma yang cukup luas digunakan untuk menyelesai)ltan sistem persamaan linier Terlihat dari percobaanmiddot bahwa hasil yang diperoleh dengan algoritma Conjugate Gradient jauh lebih efisien dibanding dengan algoritma Steepest Decent

Conjugate -Gradient hanya dapat digunakan untuk masalah yang sirnetrik dan matrik positiveshydefinite

Perlu pengembangan lebm lanjut dari algoritrna ini untuk mengatasi keterbatasan diatas

Daftar Pustaka

[I] Jonathan Richard SchewchukAn Introduction to the Conjugate Gradient Method Without the Agonizing Pain August 4 1994

[2] Magnis R Hestenes Eduard StiefelMethods of Conjugate Gradients for Solving Linier Sistem Journal of Research of the National Bureau of Standards Vol 49 No6 December 1952

[3] John K ReidOn the Method of Conjugate Gradient for the Solution of Large Sparse Sistem ofLinier Equations Large Sparse Sets

of Linear Equations (London and New York) Academic Press London anP New York 1971pp23 1-254

[4] RFletcherConjugate gradient methods for indefinite sistem Numerical Analysis Lecture Note in Mathematics Springer BeriinlHeidelberg VoL506p73-891976

227