Algoritma Karmarkar METODE KARMARKAR
Minimumkan dengan kendala
dengan , dan
. Algoritma Karmarkar adalah algoritma iteratif, yakni diberikan titik awal
dan diberikan parameter penghentian , maka akan menghasilkan urutan
, yang memenuhi .
Untuk menentukan , digunakan persamaan
3.26 dengan
adalah besar langkah sedemikian sehingga nilai tetap berada
pada daerah layak dan adalah arah layak yang memperbaiki nilai fungsi
sasaran. Besar langkah yang dipilih memenuhi . Dalam tulisan
aslinya Karmarkar merekomendasikan nilai . Sedangkan arah layak
yang memperbaiki nilai fungsi sasaran dipilih sebagai berikut. Pertama
perhatikan bahwa gradien fungsi objektif adalah c. Oleh karena itu, arah
tingkat penurunan maksimum fungsi tujuan adalah
–c. Akan tetapi, secara
umum arah tersebut tidak dapat digunakan, karena haruslah terletak di
himpunan kendala
3.27
dimana didefinisikan dengan
Teorema 3.5
Misalkan , dan . Misalkan
A
memenuhi
dan adalah titik interior tegas dari
, dan
D
adalah matriks diagonal yang entri-entri diagonalnya merupakan komponen dari
. Jika
matriks
B
didefinisikan sebagai
maka , dan oleh karena itu
adalah nonsingular
.
Bukti:
Misalkan dan
A
memenuhi
Akan dibuktikan
i.
memenuhi
ii.
adalah nonsingular
.
Jika adalah matriks yang memenuhi , maka
bentuk eselon baris dari
akan memiliki banyaknya 1
utama. Untuk membuktikan matriks memenuhi
, cukup membuktikan adalah matriks . Dimana adalah matriks diagonal yang entri-entri diagonalnya merupakan
komponen dari , dan
adalah titik interior tegas dari ,
dengan . Karena
adalah titik interior
tegas dari , maka
. Sehingga elemen-elemen pada
D
tidak akan bernilai nol. Dengan demikian
adalah matriks dan matriks
memenuhi .
Misal memenuhi , akan dibuktikan
adalah nonsingular. Berdasarkan Teorema 2.15 diatas untuk menunjukan
adalah nonsingular dengan menunjukkan
. Seperti yang diperlihatkan dalam Teorema 2.7 dan Teorema 2.9
, maka adalah nonsingular.
Perhatikan karena , yakni
, maka untuk
yang juga terletak pada yakni memenuhi,
maka diperoleh
atau
Dengan demikian
, maka vektor
haruslah elemen ruang nol dari
. Oleh karena itu, dipilih yang merupakan arah proyeksi ortogonal
dari
-
c pada ruang nol dari . Proyeksi ini dilakukan oleh matriks
yang didefinisikan dengan
Perhatikan bahwa adalah nonsingular
dari asumsi c. Dalam suatu jurnal
A New Polynomial-Time Algorithm For Linear Programming
Karmarkar, 1984 menguraikan bahwa adalah jari-
jari bola terbesar dalam simpleks . Oleh karena itu, vektor
,
dengan menunjuk pada arah proyeksi
dari pada ruang nol
dari .
Untuk iterasi selanjutnya, diperbaharui dengan menggunakan
fungsi , yakni
. Ide dasar pembaharuan tersebut mirip dengan pembaruan dari
ke yang telah dijelaskan di atas. Namun,
perlu diketahui bahwa , secara umum bukan di pusat simpleks. Oleh
karena itu, titik tersebut haruslah ditransformasi ke pusat. Untuk melakukan hal ini, memisalkan
adalah matriks diagonal yang entri-entri diagonalnya adalah komponen dari vektor
, yaitu
Karena adalah titik interior tegas dari
, dan
sehingga adalah titik interior tegas dari
, selanjutnya adalah titik
interior tegas dari untuk setiap
k
, yakni . Oleh
karena itu, adalah nonsingular, dan
Pertimbangkan pemetaan dengan
didefinisikan sebagai . Perhatikan bahwa
Akan digunakan untuk mengubah variabel x ke
. Langkah ini dilakukan sehingga
dipetakan ke pusat dari simpleks, seperti yang diperlihatkan di atas. Perhatikan bahwa
adalah pemetaan yang dapat diinverskan, dimana
Misalkan , maka dengan menerapkan prosedur yang
sudah dijelaskan sebelumnya untuk mendapatkan dari
. Secara khusus,
diperbaharui untuk memperoleh menggunakan rumus
pembaruan . Untuk menghitung
, masalah program linear awal perlu dinyatakan dalam variabel
yang baru:
Minimumkan Dengan kendala
, 3.28
Teorema 3.6
Misalkan
adalah titik interior tegas dari , dan
adalah matriks diagonal yang entri-entri diagonalnya merupakan komponen dari
.
Didefinisikan pemetaan dengan
. Misalkan menunjukkan perubahan dari variabel. Maka masalah program
linear tertransformasi berikut dalam variabel Minimumkan
Dengan kendala ,
3.29
adalah ekuivalen terhadap masalah program linear
Meminimumkan Dengan kendala
3.30
yakni adalah penyelesaian optimal dari masalah 3.30 jika dan hanya jika
adalah penyelesaian optimal untuk masalah 3.29.
Bukti:
Misalkan
adalah titik interior tegas dari , yakni
dan adalah matriks diagonal yang entri-entri
diagonalnya merupakan komponen dari .
Akan dibuktikan adalah penyelesaian optimal dari masalah 3.30
adalah penyelesaian optimal untuk masalah 3.29.
Misalkan adalah penyelesaian optimal dari masalah 3.30,
yakni meminimumkan
dan memenuhi dan
.
Akan dibuktikan adalah penyelesaian optimal untuk
masalah 3.29, yakni meminimumkan
dan
memenuhi
dan .
i. memenuhi
akan ditunjukkan memenuhi
.
Karena maka
Karena
maka
ii. memenuhi
akan ditunjukkan memenuhi
Diketahui maka
adalah matriks diagonal yang entri-entri diagonalnya merupakan
komponen dari , maka
sehingga
Karena , maka
iii. meminimumkan
akan dibuktikan
meminimumkan
.
Berdasarkan asumsi b dari asumsi-asumsi dalam masalah Karmarkar, jika
meminimumkan , maka nilai minimum dari
. Maka nilai minimum dari
Karena maka diperoleh
adalah penyelesaian optimum untuk masalah 3.30 . adalah penyelesaian optimum untuk masalah 3.29
Misalkan adalah penyelesaian optimal dari masalah 3.29,
yakni meminimumkan
dan memenuhi
dan
. Akan dibuktikan
adalah penyelesaian optimal untuk masalah 3.30, yakni
meminimumkan dan memenuhi
dan
.
i. memenuhi
akan ditunjukkan memenuhi
. Karena
maka
Karena , maka
ii. memenuhi
akan ditunjukkan
memenuhi
Karena , maka
iii. meminimumkan
akan dibuktikan meminimumkan
.
Karena meminimumkan
maka
Karena , maka
. adalah penyelesaian optimum untuk masalah 3.29 adalah penyelesaian optimum untuk masalah 3.30.
adalah penyelesaian
optimal dari
masalah 3.30,
yakni meminimumkan
dan memenuhi dan
.
adalah penyelesaian optimal untuk masalah 3.29, yakni meminimumkan
dan memenuhi dan
.
Dapat ditunjukkan bahwa masalah program linear di atas dalam variabel yang baru ekuivalen dengan masalah program linear dalam bentuk standar
dalam arti bahwa adalah penyelesaian optimal untuk masalah dalam bentuk
standar jika dan hanya jika adalah penyelesaian optimal dari masalah
yang sudah ditransformasikan. Untuk melihat ini, perhatikan bahwa , dan fungsi tujuan serta kendala dapat ditulis kembali sebagai
berikut. Perhatikan bahwa
Pilih , dimana
adalah proyeksi normal dari pada ruang nol dari
, dan . Untuk menentukan
, definisikan matriks proyeksi ortogonal
dengan
Perhatikan bahwa adalah
nonsingular
. Oleh karena itu, vektor diberikan
Maka vektor arah dapat diperoleh
Vektor , dijamin terletak pada daerah layak yang sudah
ditransformasikan . Langkah terakhir adalah menerapkan
transformasi invers untuk memperoleh
, yakni
Perhatikan terletak di himpunan
. Dapat dilihat bahwa dan
memetakan
kedalam .
Dari uraian di atas maka algoritma Karmarkar dirangkum mengikuti langkah-langkah berikut:
1. Langkah awal: Tetapkan
, .
2. Memperbaruhi: Tetapkan
, dimana adalah pembaruan pemetaan yang ditentukan melalui langkah-langkah berikut
ini: 1.
Hitunglah matriks:
2. Hitunglah proyeksi ortogonal pada ruang nol dari
:
3.
Hitunglah proyeksi ortogonal ternormalisasi dari c pada ruang
nol dari :
4. Hitunglah vektor arah:
5. Hitunglah
menggunakan:
dimana adalah ukuran langkah,
. 6.
Hitunglah dengan menerapkan transformasi invers
:
3. Periksa kriteria penghentian
:
Jika kondisi dipenuhi, maka
iterasi berhenti. Jika tidak, tetapkan , kembali ke langkah 2.
Berikut ini adalah contoh untuk menunjukkan bagaimana menyelesaikan masalah program linear dalam bentuk kanonik dengan menggunakan Algoritma
Karmarkar.
Contoh 3.3
Pertimbangkan masalah program linear berikut ini, yang sudah berada dalam bentuk kanonik Karmarkar.
Minimumkan
dengan kendala
Iterasi 0
Tetapkan
Iterasi 1
Akan ditentukan dengan
diperoleh dengan langkah- langkah berikut.
i. Menghitung matriks
ii. Menghitung proyeksi ortogonal pada ruang nol dari
iii.
Menghitung proyeksi ortogonal ternormalisasi dari c pada ruang nol dari
iv.
Menghitung vektor arah
v.
Menghitung dengan
vi.
Menghitung dengan menerapkan transformasi invers
:
Karena
, maka
iterasi
dilanjutkan. Tetapkan k=1.
Iterasi 2
Akan ditentukan dengan
diperoleh dengan langkah- langkah berikut.
i. Menghitung matriks
ii. Menghitung proyeksi ortogonal pada ruang nol dari
iii.
Menghitung proyeksi ortogonal ternormalisasi dari c pada ruang nol dari
iv.
Menghitung vektor arah
v.
Menghitung dengan
vi.
Menghitung dengan menerapkan transformasi invers
:
Karena
, maka
iterasi
dilanjutkan. Tetapkan k=2.
Iterasi 3
Akan ditentukan dengan
diperoleh dengan langkah- langkah berikut.
i. Menghitung matriks
ii. Menghitung proyeksi ortogonal pada ruang nol dari
iii.
Menghitung proyeksi ortogonal ternormalisasi dari c pada ruang nol dari
iv.
Menghitung vektor arah
v.
Menghitung dengan
vi.
Menghitung dengan menerapkan transformasi invers
:
Karena
, maka iterasi dilanjutkan.
Untuk memenuhi akan dibutuhkan 24 iterasi dan diperoleh
titik optimumnya, yakni .