Teori Optimasi dan Pemrograman Matematis
Teori Optimasi dan Pemrograman Matematis
KAJIAN TEORI
Kajian teori pada bab ini membahas tentang pengertian dan penjelasan yang
programming dan algoritma genetika. Kajian teori tersebut akan digunakan untuk
A. Optimasi
macam kendala (Licker, 2003 : 170). Definisi lain yaitu menurut Rao (2009 : 1)
Programming.
Pada subbab ini akan didefinisikan mengenai beberapa fungsi sebagai berikut:
7
Definisi 2.1 (Varberg & Purcell, 2001 : 155)
maka,
ii. turun pada I jika untuk setiap pasang bilangan dan dalam I,
keatas atau konveks jika naik untuk setiap dan f dikatakan cekung
Turunan kedua dari fungsi f adalah turunan pertama dari , sehingga dapat
disimpulkan bahwa jika positif maka naik dan jika negatif maka turun.
konkafnya suatu fungsi f dengan banyak variabel. Uji konveksitas untuk fungsi satu
variabel yang memiliki turunan kedua untuk setiap x yang mungkin. Dengan
8
demikian, menurut Hiller dan Lieberman (2008 : 473), fungsi bersifat sebagai
berikut:
1. Konveks jika dan hanya jika untuk setiap nilai x yang mungkin,
2. Konveks ketat jika dan hanya jika untuk setiap nilai x yang
mungkin,
3. Konkaf jika dan hanya jika untuk setiap nilai x yang mungkin,
4. Konkaf ketat jika dan hanya jika untuk setiap nilai x yang
mungkin.
Jika terdapat dua variabel ( maka uji konveksitas dapat dilihat pada
* +
C. Pemrograman Linear
(Ruminta, 2009 : 327). Pemrograman linear adalah salah satu teknik Operations
9
Research yang paling banyak digunakan. Teknik ini menjadi dasar pengembangan
teknik Operations Rersearch yang lain seperti Goal Programming, Binary Integer
Crash Time and Crash Cost program pada Critical Path Method, Equilibrium
condition pada Markov Analysis, Dual Programming pada Game Theory, dan
2006 : 25-26):
1. Variabel Keputusan
Variabel Keputusan adalah variabel yang akan mempengaruhi nilai tujuan yang
dan kendala-kendalanya.
2. Fungsi Tujuan
Fungsi Tujuan adalah tujuan yang hendak dicapai diwujudkan ke dalam sebuah
1) Maksimumkan
2) Minimumkan
10
3. Fungsi Kendala
1. Proporsionalitas
keputusan.
2. Aditivitas
3. Divisibilitas
11
4. Deterministik
diketahui dengan pasti dan tetap tidak berubah selama dilakukan kajian dan
analisis.
merupakan konstanta.
Contoh 2.1
pertidaksamaan linear.
12
Contoh 2.2
sebagai tujuan.
merupakan nilai ruas kanan dari persamaan kendala ke-m yang menunjukkan
13
dalam hal ini, [ ], (2.3)
[ ] (2.4)
[ ], (2.5)
dan [ ] (2.6)
dan adalah matriks satu baris untuk setiap koefisien ongkos ( ). Matriks
merupakan matriks koefisien persamaan kendala, dan adalah matriks satu kolom
dari ruas kanan persamaan kendala. (Bronson & Naadimuthu, 1997 : 20)
Memaksimumkan / Meminimumkan : [ ][ ]
dengan kendala :
[ ][ ] [ ] , dan [ ]
akan menjadi:
14
Memaksimumkan / Meminimumkan
∑ (2.7)
dengan kendala:
(2.8a)
(2.8b)
(2.8c)
(2.8d)
atau jika ditulis ulang, maka bentuk fungsi kendala (2.8a) - (2.8d) menjadi:
∑ dengan (2.9a)
dengan (2.9b)
D. Pemrograman Nonlinear
mempunyai fungsi tujuan nonlinear dan fungsi kendala berbentuk nonlinear atau
Max / Min ,
dan (2.10c)
15
Fungsi kendala dapat berupa fungsi nonlinear maupun fungsi linear.
E. Quadratic Programming
optimasi nonlinear dimana kendalanya berupa fungsi linear dan fungsi tujuannya
merupakan kuadrat dari variabel keputusan ataupun perkalian dari dua variabel
keputusan (Hiller & Lieberman, 2001 : 665). Bentuk umum dari masalah quadratic
Meminimumkan (2.11a)
yang tersusun dari nilai , dimana merupakan hasil dari turunan parsial kedua
∑ ∑ ∑ (2.12)
dan fungsi kendala merupakan fungsi konveks, maka setiap nilai minimum dari
16
F. Kondisi Karush Khun-Tucker
fungsi linear maupun non linear. Pada metode ini, program yang diselesaikan
persamaan yang dikerjakan dengan mencari titik-titik stasionernya, yaitu titik yang
berkendala. Syarat tersebut dirumuskan oleh Karush dan Khun – Tucker. Berikut
adalah teorema yang menjelasakan tentang syarat Karush Khun – Tucker untuk
1. ∑
2. [ ]
3. ∑
4.
17
5.
2003 : 676)
memenuhi
1. ∑
2. [ ]
3. ( ∑ )
4.
5.
Pada syarat kedua dari Teorema 2.2 dan Teorema 2.3 berakibat
menggunakan persyaratan Khun-Tucker seperti yang tertera pada Teorema 2.2 dan
Teorema 2.3. Selain itu, dalam quadratic programming juga terdapat kondisi
18
Secara umum, kondisi complementary slackness pada quadratic
bernilai positif.
2. Variabel surplus (excess) ataupun slack untuk kendala ke-i dan tidak
∑ disubtitusikan ke Syarat 3)
( ∑ )
5) maka .
Hal ini berlaku juga untuk Teorema 2.3, sehingga terbukti bahwa dan
positif.
19
2. Diperhatikan Syarat 2) yaitu [ ]
maka .
Melalui cara yang sama maka didapat pula , sehingga terbukti bahwa
variabel surplus (excess) ataupun slack untuk kendala ke-i dan tidak dapat kedua-
G. Algoritma Genetika
berdasarkan pada mekanisme seleksi alam dan genetik alam (Kusumadewi, 2003 :
87). Algoritma Genetika terinspirasi oleh proses biologi dari teori evolusi Darwin,
sehingga banyak istilah dan konsep biologi yang digunakan dalam Algoritma
banyak istilah dan konsep biologi yang digunakan. Proses-proses yang terjadi dalam
Algoritma Genetika juga tidak jauh berbeda dengan apa yang terjadi pada evolusi
biologi. Sekumpulan individu yang sama, yang disebut spesies, hidup, berproduksi
20
dan mati dalam satu area yang disebut populasi. Jika anggota-anggota populasi
(individu) terpisah, misalnya karena terjadi banjir atau gempa, maka individu-
beberapa waktu akan terjadi proses pembentukan spesies baru atau dikenal dengan
istilah speciation dan juga terjadi perubahan hereditas (heredity) secara bertahap
yang membentuk ciri-ciri baru pada spesies tersebut. Sebagai contoh, spesies
pemangsa mengalami perubahan bertahap sehingga memiliki gigi taring yang lebih
pencarian konvensional. Algoritma genetika dimulai dari himpunan solusi yang pada
umumnya dihasilkan secara acak. Himpunan ini disebut populasi, sedangkan setiap
individu dalam populasi disebut kromosom (merupakan representasi dari solusi) dan
yang menempati kromosom disebut gen dan nilainya dapat berupa bilangan numerik,
bilangan biner, simbol ataupun sebuah karakter dari permasalahan yang ingin
menggunakan alat ukur yang disebut dengan fungsi fitness (kebugaran). Nilai fitness
dari suatu kromosom akan menunjukkan kualitas dari kromosom dalam populasi
tersebut (Zukhri, 2014 : 23). Generasi berikutnya dikenal dengan istilah anak
(offspring) terbentuk dari gabungan dua kromosom generasi sekarang yang bertindak
21
Selain operator penyilangan, suatu kromosom dapat pula dimodifikasi dengan
kromosom baru dengan tingkat fitness lebih tinggi sebagai generasi baru atau
akan konvergen pada kromosom terbaik, yang diharapkan merupakan solusi optimal
Menurut Gen dan Cheng ada tiga kelebihan dari Algorima Genetika dalam
(Weise, 2009):
a. Gen (Genotype) adalah sebuah nilai yang menyatakan satuan dasar yang
membentuk suatu arti tertentu dalam satu kesatuan gen yang dinamakan
kromosom.
b. Allele yaitu nilai dari sebuah gen, dapat berupa bilangan biner, float, integer,
22
d. Individu merupakan suatu nilai atau keadaan yang menyatakan salah satu solusi
f. Induk adalah kromosom yang akan dikenai operasi genetik pindah silang.
h. Offspring adalah kromosom yang merupakan hasil dari operasi genetik pindah
j. Proses seleksi merupakan proses yang mewakili proses seleksi alam (natural
selection) dari teori Darwin. Proses ini dilakukan untuk menentukan induk dari
keturunan (offspring).
kromosom.
l. Fungsi Evaluasi adalah fungsi yang digunakan untuk menentukan nilai fitness.
23
m. Generasi merupakan satuan dari populasi setelah mengalami operasi-operasi
genetika, berkembang biak, dan menghasilkan keturunan. Pada akhir dari setiap
evolusi di alam, suatu algoritma genetikayang sederhana umumnya terdiri dari tiga
operasi, yaitu: operasi seleksi, operasi crossover (persilangan), dan operasi mutasi.
prosedur tertentu. Ukuran populasi tergantung pada masalah yang akan dipecahkan
dan jenis operator genetika yang akan diimplementasikan. Setelah ukuran populasi
harus tetap memperhatikan domain solusi dan kendala permasalahan yang ada
kromosom. Satu gen biasanya merepresentasikan satu variabel. Gen dapat diwakili
dalam bentuk bilangan real, bit, daftar aturan, elemen permutasi, elemen program,
24
atau representasi lainnya yang dapat diimplementasikan untuk operator genetika.
Teknik pengkodean ini tergantung pada pemecahan masalah yang dihadapi seperti
b. Seleksi
saja yang akan dipilih untuk proses crossover dan mutasi. Masing-masing individu
yang diseleksi akan diberikan probabilitas reproduksi tergantung dari nilai objektif
dirinya sendiri terhadap nilai objektif dari semua individu dalam seleksi tersebut.
Nilai fitness inilah yang nantinya akan digunakan pada tahap seleksi berikutnya.
(2.13)
pembagian oleh 0. Semakin tinggi nilai fitness suatu individu semakin besar
(2.14)
25
∑ (2.15)
c. Crossover
keturunan baru dalam ruang pencarian yang siap diuji. Operasi ini tidak selalu
dilakukan pada setiap individu yang ada. Individu dipilih secara acak untuk
Jika crossover tidak dilakukan maka nilai dari induk akan diturunkan kepada
aritmatika) pada gen-gen yang bersesuaian dari dua induk untuk menghasilkan
d. Mutasi
Mutasi merupakan proses untuk mengubah nilai dari satu atau beberapa gen
dalam suatu kromosom. Operasi mutasi yang dilakukan pada kromosom dengan
26
tujuan untuk memperoleh kromosom-kromosom baru sebagai kandidat solusi pada
generasi mendatangdengan fitness yang lebih baik, dan lama kelamaan menuju solusi
optimum yang diinginkan. Akan tetapi, untuk mencapai hal ini penekanan selektif
juga memegang peranan yang penting. Jika dalam proses pemilihan kromosom-
kromosom cenderung terus pada kromosom yang memiliki fitness yang tinggi saja,
Jumlah kromosom yang mengalami mutasi dalam satu populasi ditentukan oleh
2010 : 10). Proses mutasi dilakukan dengan cara mengganti satu gen yang terpilih
secara acak dengan suatu nilai baru yang didapat secara acak. Langkah pertama
adalah menghitung panjang total gen yang ada dalam satu populasi.
(2.17)
Jika peluang mutasi terlalu kecil, banyak gen yang mungkin berguna tidak
pernah dievaluasi. Tetapi jika peluang mutasi terlalu besar, maka akan terlalu banyak
gangguan acak, sehingga anak akan kehilangan kemiripan dari induknya dan
e. Evaluasi Solusi
Langkah ini akan mengevaluasi setiap populasi dengan menghitung nilai fitness
dari setiap kromosom hingga kriteria menjadi terpenuhi. Namun karena seleksi
dilakukan secara acak maka diperlukan langkah untuk menjaga agar individu bernilai
fitness terbaik tidak hilang selama proses evolusi. Proses ini dikenal dengan nama
27
etilism (Kusumadewi, 2003 : 112). Bila kriteria berhenti belum terpenuhi maka akan
dibentuk lagi generasi baru dengan mengulangi langkah sebelumnya tetapi tetap
menyertakan individu yang disimpan dalam proses etilism sehingga hasil perhitungan
dapat konvergen. Beberapa kriteria berhenti menurut Sukmawan (2003 : 25) adalah
sebagai berikut:
3. Berhenti bila dalam n generasi berikutnya tidak diperoleh nilai fitness yang
Contoh 2.1
Meminimumkan fungsi :
(2.16)
dengan kendala :
(2.17a)
(2.17b)
28
(2.17c)
(2.17d)
Penyelesaian:
quadratic programming yang tertera pada persamaan (2.10) dan (2.11) sebagai
berikut:
[ ],
[ ].
sehingga matriks :
[ ] [ ]
29
[ ][ ] [ ][ ][ ]
(2.10) dan (2.11). Selanjutnya, akan dilihat apakah persamaan (2.16) dan (2.17)
Diperoleh turunan parsial kedua dari persamaan (2.16) adalah sebagai berikut :
30
Terlihat bahwa , maka berdasarkan Tabel 2.1 fungsi
meriupakan fungsi konveks maka minimum lokal yang dihasilkan dari permasalahan
tersebut merupakan minimum global (Rao, 1984 : 231). Sehingga, persamaan (2.16)
sebagai berikut:
Berdasarkan Teorema 2.3 maka persamaan (2.16) dapat ditentukan syarat Khun
Tucker-nya yaitu:
1) (2.18a)
(2.18b)
(2.18c)
2) [ ] (2.19a)
[ ] (2.19b)
[ ] (2.19c)
31
3) (2.20a)
(2.20b)
(2.20c)
4) (2.21)
5) (2.22)
(2.23a)
(2.23b)
(2.23c)
(2.24a)
(2.24b)
(2.24c)
Setelah mengidentifikasi syarat Khun Tucker, maka kondisi Khun Tucker untuk
(2.18a)
(2.18b)
(2.18c)
(2.24a)
(2.24b)
32
(2.24c)
Berdasarkan (2.19) dan (2.24), (2.18) dan (2.22), dan Sifat 2.1, maka kondisi
3. Menambahkan variabel buatan untuk setiap kondisi Khun Tucker yang tidak
Persamaan (2.18) dan (2.24) tidak ada yang memiliki basis sehingga semuanya
(2.25a)
(2.25b)
(2.25c)
(2.25d)
(2.25e)
(2.25f)
Bentuk fungsi linear baru yang linear untuk Contoh diatas adalah
33
Meminimumkan
(2.26)
Dengan kendala:
(2.25a)
(2.25b)
(2.25c)
(2.25d)
(2.25e)
(2.25f)
1. Generasi pertama
digunakan sebanyak nilai yang akan dicari yaitu 18. Selanjutnya proses inisialisasi
dilakukan dengan cara memberikan nilai awal gen-gen dengan nilai acak sesuai
34
batasan yang telah ditentukan. Pada permasalahan ini jumlah populasi di tentukan
Kromosom (1) [ ]
Kromosom (2) [ ]
Kromosom (3) [ ]
Kromosom (4) [ ]
Kromosom (5) [ ]
Kromosom (6) [ ]
10]
35
Kromosom (7) [ ]
Kromosom (8) [ ]
Kromosom (9) [ ]
Kromosom (10) [
Kromosom (11) [
Kromosom (12) [
36
Kromosom (13) [
Kromosom (14) [
Kromosom (15) [
Kromosom (16) [
Kromosom (17) [
Kromosom (18) [
37
]
b. Seleksi
(kromosom 1) = 33
(kromosom 2) = 49
(kromosom 3) = 61
(kromosom 4) = 57
(kromosom 5) = 45
(kromosom 6) = 33
(kromosom 7) = 52
(kromosom 8) = 57
(kromosom 9) = 72
(kromosom 10) = 47
(kromosom 11) = 76
38
(kromosom 12) = 68
(kromosom 13) = 48
(kromosom 14) = 28
(kromosom 15) = 65
(kromosom 16) = 41
(kromosom 17) = 76
(kromosom 18) = 43
nilai fungsi objektif kecil mempunyai kemungkinan terpilih yang besar. Untuk itu
dapat digunakan fungsi fitness sesuai dengan persamaan (2.13). Sehingga didapat
Fitness 1 = 0,0294
Fitness 2 = 0,0200
Fitness 3 = 0,0161
Fitness 4 = 0,0172
Fitness 5 = 0,0217
Fitness 6 = 0,0294
Fitness 7 = 0,0189
Fitness 8 = 0,0172
Fitness 9 = 0,0137
39
Fitness 10 = 0,0208
Fitness 11 = 0,0130
Fitness 12 = 0,0145
Fitness 13 = 0,0204
Fitness 14 = 0,0345
Fitness 15 = 0,0152
Fitness 16 = 0,0238
Fitness 17 = 0,0130
Fitness 18 = 0,0227
40
Berdasarkan hasil perhitungan diatas, didapatkan kromosom ke-14 yang
untuk terpilih pada generasi selanjutnya lebih besar dari kromosom lainnya. Untuk
41
proses seleksi digunakan roulette wheel, untuk itu dicari nilai kumulatif
42
Setelah dihitung komulatif probabilitasnya maka proses seleksi
menggunakan roulette wheel dapat dilakukan. Putar roulette wheel sebanyak jumlah
populasi yaitu 18 kali (bangkitkan bilangan acak R antara 0 sampai 1 sebanyak 18)
dan pada tiap putaran pilih satu kromosom untuk populasi baru. Misal didapatkan
43
Berdasarkan persamaan (2.16), kromosom baru yang menjadi induk adalah
bilangan acak pertama R(1) lebih besar dari C(13) dan lebih kecil daripada C(14),
maka pilih kromosom (14) sebagai kromosom pada populasi baru dari bilangan acak
yang telah dibangkitkan diatas, maka populasi kromosom baru hasil proses seleksi
44
Kromosom (16) = Kromosom (6)
Kromosom (1) [
Kromosom (2) [
Kromosom (3) [
Kromosom (4) [
Kromosom (5) [
Kromosom (6) [
Kromosom (7) [
Kromosom (8) [
Kromosom (9) [
45
]
Kromosom (10) [
Kromosom (11) [
Kromosom (12) [
Kromosom (13) [
Kromosom (14) [
Kromosom (15) [
Kromosom (16) [
10]
Kromosom (17) [
Kromosom (18) [
c. Crossover
46
Setelah proses seleksi maka proses selanjutnya adalah proses crossover.
Metode yang digunakan salah satunya adalah one-cut point, yaitu memilih secara
acak satu posisi dalam kromosom induk kemudian saling menukar gen. Kromosom
yang dijadikan induk dipilih secara acak dan jumlah kromosom yang mengalami
47
Kromosom ke-k akan dipilih sebagai induk jika , dari bilangan
acak yang telah dibangkitkan. Sehingga kromosom yang menjadi induk adalah
kromosom (2), kromosom (3), kromosom (4), kromosom (5), kromosom (7),
kromosom (8), kromosom (9), kromosom (10), kromosom (12), kromosom (13),
bilangan acak 1 – (panjang kromosom – 1), dalam persoalan ini berarti dipilih
bilangan acak 1-17 sebanyak jumlah crossover yang terjadi yaitu 12. Sehingga
48
Setelah menentukan posisi cut-point crossover, selanjutnya akan dibentuk
Offspring (1) diisi dengan cara melihat nilai C(1). Karena C(1) = 3, maka
diambil 3 gen pertama dari kromosom (2), sedangkan gen selanjutnya diambil dari
kromosom (3). Hal yang sama juga berlaku untuk offspring selanjutnya. Sehingga
49
[
50
[
10]
Kromosom (1) [
Kromosom (2) [
Kromosom (3) [
Kromosom (4) [
Kromosom (5) [
51
Kromosom (6) [
Kromosom (7) [
Kromosom (8) [
Kromosom (9) [
Kromosom (10) [
Kromosom (11) [
Kromosom (12) [
Kromosom (13) [
Kromosom (14) [
10]
Kromosom (15) [
Kromosom (16) [
52
]
Kromosom (17) [
Kromosom (18) [
d. Mutasi
adalah dengan menghitung panjang total gen yang ada dalam satu populasi. Dalam
kasus ini panjang total gen sesuai dengan persamaan (2.15) adalah .
membangkitkan bilangan integer acak antara 1 sampai total gen, yaitu 1 sampai 324.
Jika bilangan acak yang dibangkitkan lebih kecil daripada parameter mutation
mutasi. Misal kita tentukan 0,05 maka kemungkinan ada 5 % dari total gen yang
untuk memilih posisi gen yang mengalami mutasi dan membangkitkan bilangan acak
53
Tabel 2.2. Bilangan Acak untuk Mutasi Generasi Pertama
posisi gen 16 yang mengalami mutasi. Dengan demikian yang akan mengalami
mutasi adalah kromosom ke-1 gen nomor 16. Maka nilai gen pada posisi tersebut
diganti dengan bilangan acak antara 1-18 yang sudah tercantum pada tabel 2.2 yaitu
17. Begitu seterusnya hingga bilangan acak terakhir yang telah dibangkitkan.
Kromosom (1) [
Kromosom (2) [
Kromosom (3) [
54
]
Kromosom (4) [
Kromosom (5) [
Kromosom (6) [
Kromosom (7) [
Kromosom (8) [
Kromosom (9) [
Kromosom (10) [
Kromosom (11) [
Kromosom (12) [
Kromosom (13) [
55
Kromosom (14) [
10]
Kromosom (15) [
Kromosom (16) [
Kromosom (17) [
Kromosom (18) [
Setelah proses mutasi, maka telah diselesaikan satu iterasi dalam algoritma
Kromosom (1) [
Kromosom (2) [
Kromosom (3) [
Kromosom (4) [
Kromosom (5) [
56
]
Kromosom (6) [
Kromosom (7) [
Kromosom (8) [
Kromosom (9) [
Kromosom (10) [
Kromosom (11) [
Kromosom (12) [
Kromosom (13) [
Kromosom (14) [
10]
Kromosom (15) [
57
Kromosom (16) [
Kromosom (17) [
Kromosom (18) [
e. Evaluasi
(kromosom 1) = 28
(kromosom 2) = 39
(kromosom 3) = 55
(kromosom 4) = 33
(kromosom 5) = 39
(kromosom 6) = 57
(kromosom 7) = 77
(kromosom 8) = 68
(kromosom 9) = 43
(kromosom 10) = 43
(kromosom 11) = 52
(kromosom 12) = 66
58
(kromosom 13) = 43
(kromosom 14) = 79
(kromosom 15) = 49
(kromosom 16) = 33
(kromosom 17) = 48
(kromosom 18) = 49
Dapat dilihat dari hasil perhitungan fungsi objektif diatas bahwa setelah satu
hasil rata-rata fungsi objektif pada saat sebelum mengalami seleksi crossover dan
mutasi. Hal ini menunjukkan bahwa kromosom atau solusi yang dihasilkan setelah
Selanjutnya generasi baru yang telah terbentuk akan mengalami proses yang
sama seperti generasi sebelumya yaitu proses evaluasi, seleksi, crossover, dan mutasi
selanjutnya. Proses ini akan berulang sampai mendapatkan generasi terbaik atau akan
59
set oleh Matlab yaitu jumlah populasi sebanyak 20, seleksi menggunakan metode
60