Algoritma Conjugate Gradient


Algoritma Conjugate Gradient adalah salah satu algoritma yang digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah menentukan hasil jual tipe sepeda motor baru berdasarkan kelompok data yang sudah ada.
Conjugate Gradient dapat digunakan untuk menyelesaikan permasalahan sistem linier dan non-linier
Dalam kasus ini, sistem yang dibahas adalah menggunakan sistem linier
Bentuk persamaan linier yang paling sederhana adalah Ax = b
nilai yang akan dihitung adalah x, sehingga harus diketahui dahulu nilai A dan b
Metode ini mampu melakukan perhitungan yang lebih cepat daripada metode regresi linier,
karena metode ini tidak melakukan perhitungan invers matriks A,
dengan catatan bahwa matriks A harus simetris
dan matriks b harus memliki jumlah baris yang sama dengan matriks A



Diasumsikan ada 4 tipe motor yang sudah diketahui datanya, yaitu Motor A,B,C,D
Masing-masing tipe motor memiliki kriteria, yaitu harga, jarak tempuh per liter, cc, dan memiliki hasil jual dalam unit
Diasumsikan data dari 4 tipe motor tersebut adalah sebagai berikut:

Motor Harga Jarak tempuh per liter cc hasil jual
Motor A 10.000.000 35 110 20
Motor B 12.000.000 45 125 9
Motor C 11.000.000 40 150 17
Motor D 14.000.000 37.5 125 12

Contoh data awal adalah sebagai berikut:

Selanjutnya ada 4 buah motor lagi, yaitu E,F,G,H, yang baru akan diluncurkan, sehingga tidak diketahui hasil jualnya
Maka tentukan data-data ini nantinya diperkirakan memiliki hasil jual berapa unit
Diasumsikan data awalnya adalah sebagai berikut:

Motor Harga Jarak tempuh per liter cc
Motor E 13.000.000 45 125
Motor G 12.000.000 47 110
Motor F 10.500.000 43 110
Motor H 13.500.000 35 125

Contoh data yang baru adalah sebagai berikut:


Langkah-langkah penggunaan algoritma ini adalah

1. Hitung matriks input A dengan cara perkalian matriks antara transpos matriks contoh data dan matriks contoh data

2. Hitung matriks input b dengan cara perkalian matriks antara transpos matriks contoh data dan matriks hasil contoh data

3. Lakukan proses pembelajaran data menggunakan metode Conjugate Gradient
Penjelasan tentang fungsi ini akan dijelaskan pada perhitungan dibawah ini (poin 3a – 3e)

Memasuki perhitungan pada fungsi ConjugateGradient

3a. Beri nilai awal x adalah sama dengan b

3b. Hitung nilai r0 dengan rumus:
r0 = b – (A * x0)
Jika nilai norma vektor r0 kurang dari nilai tolerasi, maka hentikan perhitungan

3c. Hitung nilai alpha0 dengan rumus:
alpha0 = (r0T * r0) / (p0T * A * p0)

3d. Hilai x yang baru dihitung dengan rumus:
x1 = x0 + alpha0 * p0

* Selanjutnya adalah menghitung nilai residual pada masing-masing elemen b (poin 3e)

3e. Lakukan perhitungan pada masing-masing elemen b (poin 3e1 – 3e4)

3e1. Hitung nilai r0 dengan rumus:
r1 = r0 – (alpha0 * A * p0)
Jika nilai norma vektor r1 kurang dari nilai tolerasi, maka hentikan perhitungan

3e2. Hitung nilai beta0 dengan rumus:
beta0 = (r1T * r1) / (r0T * r0)

3e3. Hitung nilai p1 dengan rumus:
p1 = r1 + (beta0 * p0)

3e4. Selanjutnya adalah menghitung nilai alpha0 dan x1 yang baru untuk digunakan pada elemen selanjutnya
Rumus untuk menghitung nilai alpha0 dan x1 sudah dijelaskan pada perhitungan sebelumnya

4. Lakukan perhitungan hasil contoh data menggunakan hasil pembelajaran yang sudah ada

5. Hitung rata-rata selisih dari hasil contoh data yang asli dengan hasil contoh data menggunakan perhitungan tersebut

6. Lakukan perhitungan prediksi pada data yang baru
Kemudian tambahkan nilai delta untuk mendapatkan jawaban akhir


Hasil akhir adalah:


Contoh modul / source code menggunakan Matlab dapat didownload disini:



Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.

Tinggalkan sebuah komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *