Anda di halaman 1dari 15

PENGANTAR OPTIMASI (1)

ENDANG SUGIHARTI
PENGANTAR

▪ Dalam kehidupan sehari-hari seringkali kita berhadapan dengan pencarian solusi suatu masalah
seperti contoh berikut:
o Pembuatan jadwal kuliah yang mencakup ketersediaan dosen dan ruangan. Jadwal harus
dibuat dengan tujuan untuk menghindari seorang dosen/mahasiswa terjadwal di lebih dari satu
kelas pada waktu yang sama.
o Persoalan transportasi yang mencakup pendistribusian suatu komoditas atau produk dari
sejumlah sumber kepada sejumlah tujuan dengan tujuan meminimumkan ongkos pengangkutan
yang terjadi.
o Pemilihan rute terpendek (biaya terkecil) untuk mengunjungi sejumlah kota.
o Penentuan komposisi makanan ternak dengan biaya minimum yang harus memenuhi
batasan minimal untuk setiap komponen nutrisi.
PENGANTAR

▪ Penyelesaian masalah di atas akan mudah dilakukan jika ukuran data relatif kecil.
▪ Masalah akan menjadi kompleks jika data berukuran besar atau melibatkan
sejumlah entitas besar.
▪ Pada masalah kompleks dibutuhkan juga formulasi matematika yang kompleks yang
bisa jadi sangat sulit dibangun atau membutuhkan waktu yang lama.
▪ Berdasarkan model matematis yang dibangun bisa dilakukan analisis untuk mencari
solusi yang terbaik (optimum). Solusi optimum mungkin dapat diperoleh tetapi
memerlukan proses perhitungan yang panjang.
PENGANTAR

▪ Untuk menyelesaikan kasus khusus seperti di atas dapat digunakan metode


heuristik, yaitu suatu metode pencarian yang didasarkan atas intuisi atau aturan-
aturan empiris untuk memperoleh solusi yang lebih baik daripada solusi yang telah
dicapai sebelumnya.
▪ Metode ini tidak selalu menghasilkan solusi optimum tetapi jika dirancang dengan
baik akan menghasilkan solusi yang mendekati optimum dalam waktu yang relatif
cepat.
▪ Metode heuristis yang bisa diterapkan pada masalah optimasi misalnya algoritma
koloni semut, algoritma hill-climbing, tabu search, algoritma simulated annealing
dan algoritma evolusi.
KLASIFIKASI TEKNIK OPTIMASI
▪ Secara umum, posisi dari
EAs di antara teknik
optimasi lainnya ditunjukkan
pada Gambar berikut :
 Algoritma evolusi (evolutionary algorithms, EAs)
merupakan sub-set dari komputasi evolusi
(evolutionary computation, EC) yang merupakan
bentuk generik dari algoritma optimasi meta-
heuristic berbasis populasi.
 Pada Gambar tersebut, optimization didefinisikan
KLASIFIKASI sebagai proses pemilihan sebuah solusi dari
sejumlah alternatif solusi dengan memenuhi
TEKNIK sejumlah batasan (contstraints).
 Misalkan pada pencarian rute untuk mengunjungi
OPTIMASI sejumlah kota. Pada kasus ini tentu saja terdapat
banyak alternatif pilihan rute (solusi).
 Solusi yang dipilih disesuaikan dengan tujuan
(objective) dari permasalahan ini, misalkan memilih
rute terpendek atau rute dengan waktu
tempuh tercepat. Batasan yang ada misalkan
setiap kota harus dikunjungi tepat satu kali.
 Stochastic optimization menggunakan bilangan
acak (random) dalam pencarian solusi. Sebagai
konsekuensinya, sebuah algoritma dalam kelas ini
setiap dijalankan akan menghasilkan solusi akhir yang
berbeda, meskipun diterapkan dalam permasalahan
yang sama.
 Sebuah algoritma meta-heuristic bertindak sebagai
KLASIFIKASI ‘manajer’ dari beberapa algoritma heuristic yang
secara terorganisir mencari solusi dari sebuah
TEKNIK permasalahan.
Misalkan metode Variable Neighborhood Search (VNS)
OPTIMASI 
yang me-manage sebuah teknik local search (LS).
VNS secara sistematis meng-iterasi LS untuk
mencari solusi dari titik awal yang berbeda serta
mencakup area pencarian yang lebih luas. Contoh
lainnya adalah algoritma genetika yang me-manage
beberapa genetic operator seperti crossover,
mutation, dan selection.
 Evolutionary computing merujuk kepada
berbagai teknik penyelesaian masalah yang
berbasis proses evolusi biologi seperti
seleksi alam (natural selection) dan
penurunan sifat genetis (genetic inheritance).
KLASIFIKASI  Berbagai teknik dalam kelas ini telah
diaplikasikan pada berbagai permasalahan
TEKNIK praktis. Salah satu sub-kelas dari
OPTIMASI evolutionary computing adalah
algoritma evolusi yang sedang anda
pelajari.
PRINSIP KERJA ALGORITMA EVOLUSI

▪ Algoritma Evolusi (evolutionary algorithms, EAs) merupakan teknik optimasi yang meniru proses
evolusi biologi.
▪ Menurut teori evolusi terdapat sejumlah individu dalam populasi. Dari generasi ke generasi,
individu-individu ini berperan sebagai induk (parent) yang melakukan reproduksi menghasilkan
keturunan (offspring).
▪ Individu-individu ini (beserta offspring) berevolusi dan individu-individu yang lebih baik (mampu
beradaptasi dengan lingkungannya) mempunyai peluang lebih besar untuk melewati seleksi
alam (natural selection) dan bertahan hidup.
▪ Individu yang lebih baik juga cenderung (tidak selalu tapi mempunyai kemungkinan lebih besar)
menghasilkan keturunan yang lebih baik, sehingga dari generasi ke generasi akan terbentuk
populasi yang lebih baik.
PRINSIP KERJA ALGORITMA EVOLUSI
▪ Keseluruhan proses dalam EAs ditunjukkan pada Gambar berikut :

Individu Hasil Himpunan


Seleksi
dalam Pemilihan parent reproduksi individu
alam
populasi (offspring) baru

▪ Individu-individu dalam populasi di EAs merepresentasikan solusi dari masalah yang akan
diselesaikan.
▪ Sebuah fungsi fitness digunakan untuk mengukur seberapa baik suatu individu. Individu
terbaik di akhir generasi bisa didekodekan sebagai solusi terbaik yang bisa diperoleh.
▪ Dari penjelasan di atas, EAs bisa dikelompokkan dalam algoritma ‘generate and test’ yang
berbasis populasi (population based). EAs juga bersifat stochastic, setiap kali dijalankan untuk
masalah yang sama ada kemungkinan menghasilkan solusi yang berbeda.
PRINSIP KERJA ALGORITMA EVOLUSI
▪ Berbagai tipe EAs telah dikembangkan sebagai berikut:
o Algoritma genetika (Genetic Algorithms, GAs), merupakan tipe EAs yang paling popular dan banyak
diterapkan pada masalah-masalah kompleks. Pada awalnya banyak menggunakan representasi string
biner tapi kemudian berkembang dengan menggunakan vektor bilangan integer dan pecahan (real).
Pembangkitkan solusi baru banyak mengandalkan proses tukar silang (crossover). Mutasi biasanya dipakai
sebagai operator tambahan untuk menjaga keragaman populasi.
o Evolution Strategies (ES), representasi solusi biasanya menggunakan vektor bilangan pecahan. Mutasi
merupakan operator reproduksi utama. Mekanisme self-adaptation digunakan untuk mengontrol
perubahan nilai parameter pencarian.
o Genetic Programming (GP), digunakan untuk mengoptimasi rangkaian program komputer
yang direpresentasikan dalam bentuk struktur data pohon (tree).
o Evolutionary Programming (EP), mempunyai tujuan seperti GP tapi prinsip kerjanya seperti ES.
Finite State Machines (FSM) digunakan untuk merepresentasikan program komputer.
ALGORITMA GENETIKA

Algoritma Genetika merupakan suatu metode heuristik yang dikembangkan


berdasarkan prinsip genetika dan proses seleksi alamiah Teori Evolusi Darwin.
Metode optimasi dikembangkan oleh John Holland sekitar tahun 1960-an dan
dipopulerkan oleh salah seorang mahasiswanya, David Goldberg, pada tahun 1980-
an (Haupt dan Haupt, 2004).
Proses pencarian penyelesaian atau proses terpilihnya sebuah penyelesaian dalam
algoritma ini berlangsung sama seperti terpilihnya suatu individu untuk bertahan
hidup dalam proses evolusi.
KELEBIHAN ALGORITMA GENETIKA
MENURUT GEN DAN CHENG (1997)

1. Algoritma ini hanya melakukan sedikit perhitungan matematis yang berhubungan dengan
masalah yang ingin diselesaikan. Karena sifat perubahan evolusi alamiahnya, maka algoritma
ini akan mencari penyelesaian tanpa memperhatikan proses-proses yang berhubungan
dengan masalah yang diselesaikan secara langsung. Algoritma ini mengendalikan fungsi
objektif dan kendala yang didefinisikan, baik pada ruang pencarian diskrit, maupun ruan
pencarian analog.
2. Operator-operator evolusi membuat algoritma ini sangat efektif pada pencarian global.
3. Algoritma ini memiliki fleksibilitas yang tinggi untuk dihibridkan dengan metode pencarian
lainnya supaya lebih efektif.
PERBEDAAN ALGORITMA GENETIKA DENGAN ALGORITMA
PENCARIAN LAIN (GOLDBERG, 1989)

1. Algoritma ini bekerja dalam kawasan representasi penyelesaian masalah yang dikodekan dalam
bentuk kromosom bukan dalam kawasan masalah itu sendiri.
2. Algoritma ini mencari penyelesaian dari titik-titik populasi dan bukan dari sebuah titik saja.
Proses pencarian dengan sekumpulan titik-titik populasi ini menyebabkan algoritma ini lebih
kecil kemungkinannya untuk terjebak pada nilai optimum lokal.
3. Algoritma ini hanya berdasarkan nilai fungsi objektif saja dan tidak berdasarkan pengetahuan
bantuan (auxiliary knowledge).
4. Algoritma ini bekerja berdasarkan pada aturan probabilistik (probabilistic rule) bukan aturan
deterministik (deterministic rule).

Anda mungkin juga menyukai