Artificial Intelligence Indra EHM

Artificial Intelligence Indra EHM

Representasikan Pengetahuanmu, Kumpulkan, Kembangkan, dan Terbangkan..

Artificial Intelligence Indra EHM RSS Feed
 
 
 
 

Image Processing - part 2

Edge detection

Perbedaan yang signifikan sebuah image brightness sangat menarik untuk beberapa alasan. Alasan yang pertama adalah sebuah tepian dari objek biasanya memiliki perbedaan intensitas cahaya (image yang terang bisa terdapat di latar belakang yang gelap atau sebaliknya image yang gelap bisa berada di latar belakang yang terang).dan alasan yang kedua adalah perbedaan tersebut dapat pula muncul akibat dari pola yang terbentuk dari perbedaan intensitas cahaya(zebra memiliki garis tubuh, macan tutul memiliki bintik-bintik pada tubuhnya atau garis-garis yang terbentuk karena bayangan).

Poin-poin dimana sebuah image memiliki perbedaan intensitas cahaya yang tajam itulah yang sering disebut edges atau edge points. (David A.Forsyth & Jean Ponce, Computer Vision A Modern Approach). Tetapi untuk menemukan garis yang cocok untuk disebut sebagai eges tidaklah mudah. Secara tipikal sangat sulit bagi kita untuk menentukan manakah edge yang berguna(perlu) dan manapula edge yang tidak berguna(tidak perlu).Dan untuk memenuhi semua itu sangat dibutuhkan informasi ber-level tinggi. Tidak kurang dari itu dibutuhkan pengetahuan sistem visual tentang apasajakah yang menarik yang sering terjadi pada sebuah edge dan juga dimanakah edge-edge itu berada.

(a)

(b)

(c)

Diatas adalah sebagian contoh dari edge detection yang mana gambar (a) adalah gambar asli koin-koin, gambar (b) adalah edge detection dengan menggunakan Sobel filter dan gambar (c) adalah contoh edge detection dengan menggunakan filter Canny. Setiap filter akan menghasilkan edge detection yang bervariasi.

Berikut ini adalah macam – macam metode pendeteksian tepi :

• Roberts Cross Edge Detector

Operator Roberts Cross melakukan pengukuran gradien spasial 2-D yang sederhana dan cepat pada sebuah gambar. Operator tersebut menandai daerah-daerah yang memiliki gradien spasial tinggi yang kemungkinan besar merupakan sebuah edge. Pada penggunaan umumnya, masukan untuk operator tersebut merupakan sebuah gambar grayscale, begitu juga dengan keluarannya. Nilai piksel di setiap titik pada hasil keluaran merepresentasikan perkiraan skala absolut dari gradien spasial dari gambar masukan pada titik tersebut.

Pada teorinya, operator Roberts Cross terdiri dari sepasang matriks konvolusi 2×2. Satu matriks merupakan hasil rotasi 90 derajat terhadap matriks lainnya.

Gambar diatas menunjukkan matriks konvolusi Reberts Cross.

Matriks ini didesain agar dapat merespon dengan maksimal pada edge yang bersudut 45° ke batas piksel, satu matriks untuk dua orientasi sudut 90o. Matriks ini dapat digunakan secara terpisah pada gambar masukan, untuk menghasilkan pengukuran yang terpisah dari komponen gradien pada setiap orientasi (Gx dan Gy). Matriks-matriks ini dapat selanjutnya dikombinasikan untuk mencari skala absolut dari gradien pada setiap titik dan orientasi dari gradien tersebut. Skala gradien adalah sebagai berikut:

Walaupun biasanya, skala rata-rata dihitung dengan menggunakan:

yang dapat diproses dengan lebih cepat.

Sudut dari orientasi pada edge yang meyebabkan kenaikan pada gradien spasial (relatif kepada orientasi batas piksel) adalah sebagai berikut:

Pada hal ini, orientasi 0 digunakan dengan pandangan bahwa arah dari kontras maksimum dari hitam ke putih berjalan dari kiri ke kanan, dan sudut lain dihitung berlawanan arah jarum jam dari rumus ini.
Seringkali, skala absolut merupakan astu-satunya keluaran yang dilihat user, dua komponen dari gradien diproses dan ditambahkan dalam sebuah single pass dari gambar masukan dengan menggunakan operator pseudo-convolotion.

Gambar diatas menunjukkan matriks Pseudo-Convolution

Matriks pseudo-convolution dapat menghasilkan perhitungan skala gradien rata-rata yang lebih cepat dengan menggunakan rumus:

• Sobel Edge Detector

Operator Sobel melakukan pengukuran spasial 2-D pada sebuah gambar dan menguatkan daerah-daerah yang memiliki gradien spasial tinggi untuk setiap edge yang bersangkkutan. Biasanya operator Sobel digunakan untuk mencari skala gradien absolut rata-rata pada setiap titik pada gambar grayscale masukan.

Pada teorinya, operator Sobel terdiri dari matriks konvolusi 3×3. Satu matriks merupakan hasil rotasi 90 derajat terhadap matriks lainnya. Matriks ini sangat mirip dengan operator Roberts Cross.

Gambar diatas menunjukkan matriks konvolusi Sobel

Matriks-matriks ini didesain untuk dapat merespon dengan maksimal terhadap edge yang berjalan secara vertikal dan horizontal relatif terhadap batas piksel, satu matriks untuk dua orientasi sudut 90o. Matriks ini dapat digunakan secara terpisah pada gambar masukan, untuk menghasilkan pengukuran yang terpisah dari komponen gradien pada setiap orientasi (Gx dan Gy). Matriks-matriks ini dapat selanjutnya dikombinasikan untuk mencari skala absolut dari gradien pada setiap titik dan orientasi dari gradien tersebut. Skala gradien adalah sebagai berikut:

Walaupun biasanya, skala rata-rata dihitung dengan menggunakan:

yang dapat diproses dengan lebih cepat.

Sudut dari orientasi pada edge yang meyebabkan kenaikan pada gradien spasial (relatif kepada orientasi batas piksel) adalah sebagai berikut:

Pada hal ini, orientasi 0 digunakan dengan pandangan bahwa arah dari kontras maksimum dari hitam ke putih berjalan dari kiri ke kanan, dan sudut lain dihitung berlawanan arah jarum jam dari rumus ini.

Seringkali, skala absolut merupakan satu-satunya keluaran yang dilihat user, dua komponen dari gradien diproses dan ditambahkan dalam sebuah single pass dari gambar masukan dengan menggunakan operator pseudo-convolotion.

Gambar diatas menunjukkan matriks Pseudo-Convolution

Matriks pseudo-convolution dapat menghasilkan perhitungan skala gradien rata-rata yang lebih cepat dengan menggunakan rumus:

• Prewitt Edge Detector

Pengenalan tepi Compass adalah sebuah pendekatan alternative untuk gradient turunan dari pengenalan tepi. Operasi ini biasanya menghasilkan dua buah citra / gambar, yang satu memperkirakan ukuran dari gradient tepi lokal dan yang satu memperkirakan orientasi tepi dari citra yang dimasukkan.

Ketika menggunakan pengenalan tepi Compass, citra tersebut dikonvolusikan menggunakan sebuah set matriks konvolusi, dimana setiap matriks yang sensitive kepada batas gambar / citra dalam orientasi yang berbeda. Untuk setiap piksel ukuran gradient dari batas lokal diperkirakan dengan respon maksimum dari delapan matriks pada lokasi piksel berikut :

dimana Gi adalah respon dari matriks i pada posisi piksel yang dipilih dan n adalah jumlah dari matriks konvolusi. Orientasi batas lokal diperkirakan dengan orientasi dari matriks yang memberikan respon maksimum.

Berikut ini adalah dua dari delapan matriks :

Gambar diatas menunjukkan matriks pengenalan tepi Prewitt compass yang sensitive pada 0° and 45°.

Seluruh set dari delapan matriks dihasilkan dengan mengambil salah satu matriks dan memutar koefisiennya searah jarum jam. Setiap matriks yang dihasilkan sensitive kepada orientasi tepi lainnya dengan jarak dari 0° sampai 315° dalam menghasilkan matriks 45°, dimana 0° merujuk pada sebuah tepi vertikal.

Respon maksimum |G| untuk setiap piksel memberikan menaikkan harga nilai dari piksel yang berhubungan ukuran gambar keluaran. Nilai dari orientasi gambar keluaran terletak antara 1 dan 8, bergantung pada salah satu matriks dari delapan buah matriks yang menghasilkan respon maksimum.

Pengenalan tepi ini juga dikenal dengan nama edge template matching, karena satu set dari template tepi yang dicocokan ke gambar, setiap template mewakili sebuah tepi dalam orientasi tertentu. Ukuran dan orientasi tepi kemudian tersebut ditentukan oleh template yang paling cocok dengan area lokal dari piksel.

Pengenalan tepi Compass adalah cara yang paling cocok untuk memperkirakan ukuran dan orientasi dari sebuah tepi. Ketika turunan dari gradient pengenalan tepi membutuhkan waktu penghitungan untuk memperkirakan orientasi dari ukuran dalam arah x- dan y-, pengenalan tepi Compass mendapatkan nilai orientasi langsung dari matriks dengan respon maksimum. Operator Compass disini dibatasi sampai delapan kemungkinan orientasi; tetapi pengalaman menunjukkan bahwa orientasi yang paling berhubungan belum tentu lebih akurat.

Di sisi lain, operator compass membutuhkan delapan konvolusi untuk setiap piksel, dimana operator gradient hanya membutuhkan dua, sebuah matriks menjadi sensitive pada tepi pada arah vertical dan sebuah matriks yang sensitive pada tepi pada arah horizontal.

• Zero Crossing Detector

Zero crossing detector mencari tempat dalam laplacian dari sebuah gambar dimana nilai dari laplacian lebih besar dari nol contohnya titik dimana laplacian mengalami perubahan tanda. Titik seperti itu biasanya terjadi pada tepi dalam gambar contohnya titik dimana intensitar dari sebuah image berubah secara terus – menerus, tetapi hal tersebut juga dapat terjadi pada tempat yang tidak mudah berasosiasi dengan tepi. Hal yang terbaik adalah dengan menganggap zero crossing detector sebagai sejenis fitur pendeteksi daripada sebuah pendeteksi tepi. Zero crossing selalu terletak pada closed contours dan juga keluaran dari zero crossing detector biasanya adalah sebuah gambar biner dengan ketebalan garis berpiksel tunggal yang menunjukan posisi dari titik zero crossing.

Titik awal dari zero crossing detector adalah sebuah gambar yang telah diolah menggunakan Laplacian dari Gaussian filter. Zero crossing yang hasilnya sangat dipengaruhi oleh ukuran dari Gaussian digunakan untuk tingkat kehalusan dari operator ini. Ketika tingkat kehalusan dinaikan maka sedikit demi sedikit kontur dari zero crossing akan ditemukan, dan sisanya yang tersisa dari proses tersebut akan berhubungan denga fitur gambar dengan ukuran yang lebih besar.

Inti dari zero crossing detector adalah Laplacian dari filter Gaussian dan kemudian pengetahuan dari operator akan diasumsikan disini. Seperti yang telah dijelaskan, tepi dari gambar memberi kenaikan pada zero crossing dalam keluaran LoG. Sebagai contoh, gambar berikut menunjukkan respon dari filter 1-D LoG pada step edge dari gambar berikut.

Gambar diatas menunjukkan Respon dari filter 1-D LoG pada a step edge. Grafik sebelah kiri menunjukkan sebuah gambar 1-D, dengan panjang 200 piksel, dan mengandung step edge. Grafik sebelah kanan menunjukkan dari sebuah filter 1-D LoG dengan Gaussian yang mengalami deviasi 3 piksel.

Tetapi, zero crossing juga terjadi pada bagian gambar yang gradiennya mulai bertambah atau berkurang, dan ini mungkin terjadi pada bagian yang bukan tepi. Tidak jarang zero crossing ditemukan pada daerah dengan gradien yang sangat rendah dimana intensitas dari gradien bergerak naik dan turun di sekitar nol.

Ketika gambar telah difilter dengan filter LoG, sisanya yang harus dilakukan adalah mendeteksi zero crossing. Hal ini dapat dilakukan dalam beberapa cara.

Cara yang paling mudah adalah dengan threshold keluaran LoG pada titik nol, untuk menghasilkan gambar biner dimana batasan antara daerah gambar bagian depan dan daerah latar belakang gambar mewakili lokasi dari titik zero crossing. Batasan ini dapat dengan mudah dideteksi danditandai dalam sekali proses, contohnya menggunakan operator morfologi. Sebagai contoh, untuk menemukan titik batas, kita hanya butuh menandai setiap titik gambar bagian depan yang memiliki sedikitnya satu neighbor latar belakang.

Masalahnya teknik ini akan merubah lokasi dari tepi zero crossing baik ke sisi terang dari tepi atau ke sisi gelap dari tepi, tergantung dari keputusan untuk mencari tepi dari daerah gambar bagian depan atau daerah gambar latar belakang.

Teknik yang lebih baik adalah menganggap titik dari kedua sisi dari batas threshold, dan memilih titik dengan ukuran terendah dari Laplacian, yang diharapkan mendekati zero crossing.

Sejak zero crossing gagal secara umum di antara dua piksel dalam gambar yang telah difilter dengan filter LoG, sebuah representasi alternatif keluaran adalah sebuah garis gambar yang secara sebagian menukar setengah piksel yang berseberangan dan setengah piksel yang berhubungan dengan gambar aslinya. Representasi seperti itu dikenal dengan dual lattice. Hal ini tentu saja tidak membuat zero crossing lebih akurat.

Pendekatan yang lebih akurat adalah dengan melakukan sebuah interpolasi untuk memperkirakan posisi dari zero crossing pada sebuah precision sub-piksel.

• Line Detection

Ketika tepi adalah sebuah tipe normal akhir dalam sebuah gambar, garis tipis dalam sebuah gambar cukup sering terjadi yang membuat hal tersebut berguna untuk mekanisme pemisahan untuk mendeteksi bagian – bagian dari gambar.

Operator dari pendeteksi garis terdiri dari sebuah matriks konvolusi untuk mendeteksi keberadaan garis dengan lebar yang berbeda n, pada orientasi tertentu θ. Gambar berikut menunjukkan kelompok dari empat buah matriks, dimana setiap matriks merespon pada suatu garis dengan lebar piksel ganda pada orientasi tertentu yang ditampilkan

Gambar diatas menunjukkan empat matriks pendeteksi garis yang memberikan respon maksimal pada horizontal, vertical, dan oblique garis dengan ketebalan piksel tunggal.

Jika Ri melambangkan respon dari matriks I, maka setiap matriks dapat dihubungkan dengan sebuah gambar dan, untuk titik tertentu, jika |Ri| > |Rj| untuk semua j ≠ i maka titik tersebut mungkin berisi sebuah garis yang orientasi dan lebarnya berhubungan dengan matriks i tersebut. Biasanya Ri di threshold untuk menghilangkan garis halus yang berhubungan denga tepid an fitur lain dengan intensitas gradient yang memiliki ukuran berbeda dengan lebar garis yang diinginkan.

Canny Edge Detector

Operator Canny didesain untuk menjadi sebuah pendeteksi tepi yang optimal( berdasarkan criteria tertentu). Canny menggunakan sebuah gambar grayscale, dan menghasilkan sebuah gambar yang menampilkan posisi dari intensitas dan akhir yang telah ditemukan.

Operator Canny bekerja dalam sebuah proses bertingkat. Pertama gambar akan diperhalus dengan menggunakan konvolusi Gaussian. Kemudian sebuah operator turunan pertama dari 2-D digunakan untuk menghaluskan gambar pada daerah yang telah ditandai dengan sebagian turunan pertama yang tinggi. Tepi ini diberikan kenaikan menjadi lipatan dalam ukuran gradient gambar. Kemudian algritma tersebut mencari puncak dari lipatan ini dan memberi nilai nol pada semua piksel yang bukan merupakan puncak lipatan yang menghasilkan garis tipis pada gambar keluaran, sebuah proses yang dikenal dengan non-maximal suppression. Proses pencarian ini menampilkan hysteresis yang dikendalikan oleh dua thresholds: T1 dan T2 dengan T1 > T2. Pencarian hanya dapat dimulai pada titik dimana nilai lipatan lebih tinggi dari T1. Pencarian kemudian berlanjut dalam dua arah keluar dari titik tersebut hingga tinggi dari lipatan tersebut bernilai kurang dari T2. Hysteresis ini membantu untuk meyakinkan bahwa tepi yang memiliki noise tidak rusak menjadi banyak bagian tepi.

ref : dari berbagai sumber

Image Processing - part 1

Image Processing

Image Processing atau pengolahan citra adalah bentuk dari pemrosesan informasi yang mana menerima input berupa citra atau gambar seperti foto ,frame atau video.Hasil output dari image processing tidaklah harus berupa image, tetapi dapat berupa bagian dari image tersebut.

Pengolahan citra ini juga bertujuan untuk memperbaiki citra awal, yang mungkin memiliki beberapa kerusakan yang terjadi sewaktu gambar diambil dengan menggunakan kamera atau scanner. Tetapi tujuan dari pengolahan citra ini tidaklah hanya untuk memperbaiki citra-citra yang rusak, tetapi untuk mengoptimalkan nilai dari sebuah citra.

Grayscale

Greyscale atau Grayscale adalah sebuah teknik yang digunakan dalam pengolahan citra untuk menghasilkan sebuah citra yang memiliki nilai dari putih yang memiliki intensitas paling besar sampai hitam yang memiliki intensitas paling rendah seperti yang terlihat pada gambar berikut.


Gambar diatas menunjukkan contoh skala yang digunakkan pada greyscale.

Greyscale sering sekali dipergunakan untuk menghitung intensitas cahaya pada sebuah gambar berwarna. Greyscale memiliki 256 intensitas pada gambar 8-bit yang dimulai dari nol(putih) sampai 255(hitam).Berikut kami tampilkan sebuah contoh gambar berwarna dengan gambar greyscale-nya.

Gambar diatas menunjukkan contoh gambar berwarna dan greyscale

Histogram

Salah satu cara untuk memperbaiki suatu citra digital adalah dengan mengatur level dari brightness dan contrast-nya. Pertama-tama, kami akan menggambarkan variasi-sebuah brightness pada suatu citra dengan menggunakan histogram citra tersebut dan bagaimana suatu citra dapat dimanipulasi dengan merubah histogram citra tersebut.

Histogram akan menempatkan beberapa piksel dengan brightness level mereka yang sesuai. Untuk piksel dengan ukuran level brightness sebesar 8-bit maka  brightness akan memiliki grey level yang berkisar antara nol(hitam) sampai 255(putih). Sehingga histogram yang memiliki nilai brightness yang lebih kecil akan terlihat lebih gelap dibandingkan dengan yang memiliki nilai lebih besar.

Gambar dibawah menunjukkan gambar sebuah ban mobil dengan histogramnya. Histogram  pada gambar tersebut menunjukkan bahwa tidak semua grey level yang ada dalam histogram terpakai. Dapat kita lihat bahwa histogram yang memiliki grey level dibawah 120 memiliki tingkat kegelapan yang lebih gelap, dimana warna gelap tersebut dimiliki oleh ban mobil dan bagian bawah mobil, serta bayangan mobil yang memiliki warna cenderung hitam.Disini juga terlihat bahwa apabila suatu gambar memiliki warna yang cenderung gelap maka secara keseluruhan histogram akan berkonsentrasi kearah kiri(hitam). Bandingkanlah gambar tersebut dengan gambar dibawahnya yang mana gambar tersebut adalah gambar yang sama, tetapi telah dinaikkan nilai brightness-nya. Sekarang histogram cenderung merata dan agak sedikit terkonsentrasi ke arah kanan(putih).

Gambar diatas menunjukkan sebuah ban mobil dan histogramnya

Gambar diatas menunjukkan ban mobil dan histogramnya setelah dinaikkan nilai brightness-nya.

Disini kita dapat melihat bahwa kita belum memakai seluruh dari grey level yang tersedia. Kita dapat menarik histogram citra tersebut sehingga semua grey level yang tersedia sepenuhnya terpakai, dan teknik itu akan menghasilkan citra yang lebih jelas.

Histogram ini juga dapat memperlihatkan kejanggalan bila didalam citra tersebut terdapat noise apabila histogram yang ideal telah kita ketahui. Sehingga kami dapat menghilangkan noise tersebut. Proses ini tidak hanya semata-mata kami lakukan untuk mendapatkan citra yang lebih baik,  tetapi juga untuk lebih memudahkan  tugas-tugas  kami dalam teknik-teknik pemprosesan citra selanjutnya.

Histogram normalisasi

Seperti yang sudah dibahas diatas bahwa pada histogram terdapat jarak yang berkisar antara nol(hitam) sampai 255(putih) dimana dari seluruh grey level  yang tersedia tidak semuanya terpakai dalam suatu histogram. Cara yang paling populer untuk menarik kisaran jarak intensitas suatu histogram adalah dengan cara histogram normalisasi. Dengan cara inilah histogram yang asli ditarik dan digeser untuk memenuhi seluruh dari 256 level yang tersedia(0-255).

Histogram dari citra awal adalah O diawali dari Omin  sampai Omax level brightness, kita dapat menaikkan skala citra sehingga piksel pada gambar yang baru N terdapat pada level output minimum Nmin sampai level maksimum Nmax, sehingga

(Mark Nixon & Alberto Aguado)

Histogram equalisation

Histogram equalisation adalah suatu proses non-linear yang bertujuan untuk memberikan nilai pencahayaan citra yang sesuai dengan analisis visual manusia. Histogram equalisation bertujuan untuk merubah citra, sehingga gambar yang dihasilkan memiliki histogram yang lebih merata, dimana bisa membuat semua level brightness suatu histogram dapat terpakai.

Untuk jarak dari suatu brightness level M, histogram menempatkan point untuk setiap levelnya dengan level. Dan untuk setiap input(citra awal) dan setiap output(citra baru), angka dari poin-poin per level dinotasikan sebagai O(l) dan N(l) (untuk 0 < l < M). Untuk image dengan betuk persegi(seperti pixel), terdapat N2 poin pada input dan output, maka jumlah poin per-levelnya sama dengan

Untuk mendapatkan image dengan histogram yang merata maka kita harus mengkumulatifkan level awal p untuk di transformasikan agar dapat memenuhi level akhir q pada histogram yang baru.Sehingga rumusnya menjadi:

Karena output dari histogram diharapkan merata, maka kumulatif histogram dengan level p haruslah merupakan rata-rata dari seluruh jumlah fraksi yang ada. Maka jumlah dari poin per level pada gambar baru merupakan rasio dari jumlah poin dengan jarak dari level gambar baru:

Sehingga histogram kumulatif dari gambar baru adalah :

Dengan menggabungkan rumus ini dengan rumus persamaan diatas, maka didapatkan :

Rumus ini dapat memetakan output piksel pada level q, dari input piksel pada level p dengan cara:

Dengan rumus ini kita dapat membuat suatu fungsi yang dapat menyediakan histogram dari gambar baru yang memiliki level merata.Fungsi ini dapat kita tentukan dengan cara menggunakan rumus diatas dan menggunakannya sebagai fungsi persamaan (E) dari level (q) dan memiliki gambar (O), sehingga didapat:

Maka gambar yang baru memiliki rumus :

Dengan cara ini kita dapat mendapatkan gambar dengan kualitas yang jauh lebih baik dibandingkan dengan gambar asalnya. Performa dari cara ini sungguh sangat meyakinkan sejak cara ini dapat memetakan gambar dengan baik sehingga sesuai dengan visualisasi mata manusia.

Thresholding

Thresholding adalah suatu proses yang digunakan untuk menghasilkan citra biner yaitu citra  dengan hanya dua warna, yaitu: hitam dan putih. Operator ini memilih piksel yang memiliki nilai tertentu, atau lingkup tertentu. Proses ini dapat dilakukan apabila kita telah mengetahui brightness level(atau contrast) dari gambar tersebut. Bentuk teknik Thresholding ada 2 macam, yaitu: Uniform Thresholding dan Adaptive Thresholding. Didalam uniform thresholding metode yang digunakan adalah dengan menentukan suatu batas level, yang nantinya akan dipergunakan untuk menentukan warna piksel. Piksel yang levelnya lebih dari threshold level akan dirubah menjadi putih, dan sebaliknya piksel yang levelnya ada di bawah dari level threshold akan dirubah menjadi hitam. Seperti yang ditampilkan pada gambar sebelah kiri berikut merupakan gambar original dan gambar sebelah kanan adalah hasil thresholding.

Pada gambar diatas ditunjukkan citra hasil thresholding dengan nilai threshold sebesar 128 dimana piksel-piksel yang memiliki nilai 128 keatas dirubah menjadi putih dan piksel yang bernilai 128 kebawah dirubah menjadi hitam.

Pada teknik thresholding, sebenarnya masih ada lagi teknik yang lebih lanjut, teknik ini dikenal dengan nama optimal thresholding.Teknik ini biasa digunakan untuk memisahkan suatu objek gambar dengan latar belakangnya.Teknik ini dapat melihat perbedaan intensitas yang terdapat pada latar belakang dan objek  sehingga dapat menentukan nilai sebuah threshold yang sesuai.

Gambar diatas merupakan sebuah contoh dari pengambilan nilai threshold pada optimal thresholding dengan menggunakan metode Otsu (Otsu, 1979). Metode ini adalah metode yang paling populer diantara semua metode thresholding yang ada. Teknik Otsu ini memaksimalkan kecocokan dari sebuah threshold sehingga dapat memisahkan objek dengan latar belakangnya.Semua ini didapatkan dengan memilih nilai threshold yang memberikan pembagian kelas yang terbaik untuk semua pixel yang ada didalam image. Dasarnya adalah dengan menggunakan histogram yang telah dinormalisasi dimana jumlah tiap poin pada setiap level dibagi dengan jumlah total poin pada image.

Gambar diatas menunjukkan hasil thresholding dengan metode Otsu

ref : dari berbagai sumber

Genetic Algorithm

Sejarah

Simulasi komputer dari evolusi dimulai sejak awal 1954 dengan pekerjaan dari Nils Aall Barricelli, yang menggunakan komputer di Institute of Advanced Study, Princetown, New Jersey. Tetapi, publikasinya pada tahun 1954 tidak diketahui secara luas. Mulai tahun 1957, ahli genetika asal Australia Alex Fraser mempublikasikan beberapa tulisan mengenai simulasi proses seleksi dari organisme dengan beberapa loci yang mengendalikan ancaman/ gangguan yang dapat diukur. Dari awal ini, simulasi komputer dari evolusi biologi menjadi lebih dikenal pada awal 1960, dan metode – metodenya dituliskan dalam beberapa buku oleh Fraser, Burnell(1970), dan Crosy(1973). Simulasi yang dilakukan oleh Fraser mengandung seluruh elemen penting dari algoritma genetika modern. Sebagai tambahan, Hans Bremermann mempublikasikan beberapa tulisan pada tahun 1960 yang juga mengadopsi sebuah populasi dari solusi untuk mengoptimisasi masalah, rekombinasi yang terjadi, mutasi dan seleksi. Penelitian Bremermann juga memasukkan elemen dari modern algoritma genetika. Pelopor awal lainnya yang layak diketahui antara lain Richard Friedberg, George Friedman, dan Michael Conrad yang tulisannya dicetak ulang oleh Fogel pada tahun 1998.

Walaupun Barricelli, dalam pekerjaan yang dilaporkannya pada tahun 1963, telah mensimulasikan kemampuan evolusi untuk memainkan permainan sederhana, evolusi buatan menjadi metode optimisasi yang diakui secara luas sebagai suatu hasil pekerjaan dari Ingo Rechenberg dan Hans-Paul Schwefel pada tahun 1960 dan awal 1970 – kelompoknya dapat menyelesaikan masalah teknik yang rumit melalui strategi evolusi. Pendekatan lainnya adalah teknik pemrograman evolusioner dari Lawrence J. Fogel, yang dimaksudkan untuk menentukan kecerdasan buatan. Pemrograman evolusioner awalnya menggunakan mesin finite state untuk memperkirakan lingkungan, dan menggunakan variasi dan seleksi untuk mengoptimisasi predictive logics. Genetic Algorithm menjadi terkenal melalui karya John Holland pada awal 1970, dan bukunya Adaptation in Natural and Artificial System (1975). Karyanya awalnya ditujukan untuk pembelajaran cellular automata, yang dilakukan oleh Holland dan murid – muridnya pada University of Michigan. Holland memperkenalkan framework yang diformalisasikan untuk memperkirakan kualitas dari generasi selanjutnya, yang dikenal sebagai Holland’s Schema Theorem. Penelitian mengenai Genetic Algorithm sebagian besar hanya bersifat teori hingga pertengahan 1980, ketika Konferensi Internasional Pertama mengenai Algoritma Genetika diadakan di Pittsburgh, Pennsylvania.

Dengan meningkatnya ketertarikan akademis, perkembangan secara besar dalam kemampuan komputasi desktop memungkinkan untuk percobaan aplikasi dari teknik baru ini. Pada akhir 1980, General Electric mulai menjual produk pertama Genetic Algorithm di dunia, peralatan berbasis mainframe yang ditujukan untuk proses industri. Pada 1989, Axcels,Inc. meluncurkan Evolver, produk Genetic Algorithm kedua di dunia dan pertama untuk komputer desktop yang dituliskan oleh John Markoff , penulis mengenai teknologi untuk New York Times.

Definisi

Genetic Algortihm (GA) adalah sebuah teknik pencarian yang digunakan dalam komputasi untuk mencari solusi yang tepat atau hampir tepat untuk optimisasi dan masalah pencarian. Genetic algorithm dikategorikan sebagai pencarian global secara heuristic. Teknik ini merupakan kelas lain dari evolutionary algorithm (juga dikenal sebagai evolutionary computation) yang menggunakan teknik – teknik yang diinspirasikan oleh evolusi dalam biologi seperti penurunan sifat, mutasi, seleksi, cross over (disebut juga rekombinasi). Hal ini dilakukan dengan menciptakan sebuah populasi yang terdiri dari individu-individu yang setiap individunya merepresentasikan kromosom seperti yang terdapat pada DNA kita. Individu-individu pada populasi tersebut kemudian mengalami sebuah proses evolusi.

Genetic Algorithm diimplementasikan sebagai sebuah simulasi komputer dimana sebuah populasi dari representasi abstrak (disebut kromosom atau genotype atau genome) dari calon kandidat solusi ( disebut individu atau phenotypes) untuk sebuah optimisasi masalah yang berubah menjadi solusi yang lebih baik. Secara tradisional, solusi direpresentasikan dalam bentuk biner sebagai 0 atau 1, tetapi representasi lain juga dapat dilakukan. Evolusi biasanya dimulai dari populasi dari individu yang ditentukan secara acak dan terjadi di setiap generasi. Pada setiap generasi, kecocokan individu dalam populasi dievaluasi kembali, beberapa individu dipilih dari populasi mereka berdasarkan dari kecocokan mereka dengan fungsi fitness, dan diubah (direkombinasikan dan mungkin bermutasi secara acak) untuk membentuk suatu populasi baru. Populasi baru tersebut kemudian digunakan untuk iterasi selanjutnya dari algoritma. Biasanya, algoritma akan berhenti ketika jumlah maksimum dari generasi telah dihasilkan atau tingkat kecocokan yang telah ditentukan telah terpenuhi untuk populasi tersebut. Jika algoritma tersebut telah berhenti akibat jumlah maksimal dari generasi, sebuah solusi yang memuaskan mungkin belum tercapai.

Genetic algorithm dapat digunakan dalam bidang ilmu komputer, ekonomi, kimia, matematika fisika dan bidang – bidang lainnya.

Genetic algorithm membutuhkan dua hal untuk ditentukan yaitu sebuah representasi genetika dari wilayah solusi dan fitness function untuk mengevaluasi wilayah solusi.

Representasi standar dari solusi adalah sebuah kumpulan bilangan biner. Kumpulan dari tipe lain dan susunan lainnya dapat digunakan dengan cara yang sama. Hal utama yang membuat representasi genetik ini dapat digunakan adalah bagian dimana bagian – bagiannya dapat dengan mudah diatur akibat ukurannya yang tetap, yang memungkinkan operasi persilangan yang sederhana. Representasi dari panjang variabel mungkin juga dapat digunakan, tetapi penggunaan persilangan lebih rumit dalam hal ini. Representasi yang seperti pohon ditemukan dalam pemrograman genetik dan representasi seperti grafik ditemukan dalam pemrograman evolusioner.

Fitness function ditentukan berdasarkan representasi genetik dan menentukan kualitas dari solusi yang direpresentasikan. Fitness function adalah sebuah masalah yang tergantung pada hal lain. Sebagai contoh, dalam masalah knapsack dalam memaksimalkan nilai total dari obyek – obyek yang diletakkan dalam sebuah knapsack dengan kapasitas yang ditentukan. Representasi dari sebuah solusi mungkin berupa array of bits dimana setiap bit merepresentasikan objek yang berbeda dan nilai dari bit (0 atau 1) merepresentasikan apakah suatu obyek berada dalam knapsack atau tidak. Tidak setiap representasi berlaku karena ukuran dari obyek – obyek mungkin melebihi kapasitas dari knapsack. Kecocokan dari solusi merupakan jumlah nilai dari seluruh obyek dalam knapsack bila representasinya berlaku, atau jika 0 hal yang sebaliknya yang terjadi. Dalam beberapa masalah, terdapat kesulitan atau bahkan tidak mungkin untuk menentukan kecocokan; dalam hal ini genetic algorithm yang interaktif digunakan.

Ketika kita memiliki representasi genetik dari fitness function telah ditentukan, GA akan melanjutkan operasi selanjutnya yaitu menginisialisasi sebuah populasi dari solusi secara acak, kemudian mengembangkannya melalui aplikasi yang berulang – ulang dari operator mutasi, persilangan, pembalikan dan seleksi.

Pada tahap inisialisasi, awalnya beberapa individu solusi ditentukan secara acak untuk membentuk populasi awal. Ukuran populasi bergantung pada sifat dari masalah, tetapi biasanya berisi beberapa ratus atau beberapa ribu solusi yang memungkinkan. Secara tradisional, populasi ditentukan secara acak, dan mengandung seluruh daerah dari solusi yang memungkinkan (daerah pencarian). Biasanya, solusi – solusi mungkin tersebar di daerah dimana solusi yang optimal mungkin ditemukan.
Pada tahap seleksi, pada setiap generasi turunan, sebagian dari populasi yang ada dipilih untuk membuat generasi yang baru. Individu solusi dipilih melalui proses berdasarkan sebuah fitness, dimana solusi yang lebih cocok (seperti yang diukur oleh sebuah fitness function) lebih mungkin untuk dipilih. Metode pemilihan yang pasti memperkirakan kecocokan dari setiap solusi dan menentukan ke arah mana solusi yang paling baik berada. Metode lain hanya memperkirakan sebuah contoh acak dari populasi dan tentu saja proses ini mungkin memakan lebih banyak waktu. Sebagian besar fungsi dirancang dan dibuat sedemikian rpa sehingga sebagian kecil dari solusi yang kurang cocok terpilih. Ini membantuk untuk menyimpan penyimpangan dari populasi yang besar, menghindari konvergensi awal dari solusi yang kurang baik.

Langkah yang selanjutnya diambil adalah menentukan generasi kedua dari populasi solusi dari individu yang terpilih melalui operator genetik yaitu persilangan (yang juga disebut rekombinasi), dan / atau mutasi. Untuk setiap solusi yang baru yang dihasilkan, sepasang “induk” dari solusi dipilih untuk menghasilkan keturunan dari penampung yang telah dipilih sebelumnya. Dengan memproduksi keturunan solusi menggunakan metode – metode persilangan dan mutasi tersebut, solusi baru tercipta yang biasanya memiliki karakteristik dari induknya. Induk baru dipilih untuk setiap keturunan, dan proses tersebut berlanjut hingga sebuah populasi baru dari solusi dengan ukuran yang telah ditentukan tercipta. Proses ini menghasilkan kromosom dari generasi selanjutnya yang berbeda dengan generasi awal. Biasanya rata – rata fitness akan meningkat dengan prosedur ini untuk populasi, akibat hanya organime terbaik dari generasi pertama yang dipilih untuk peranakan, dan akibat digunakannya sebagian kecil dari solusi yang kurang cocok, untuk alasan - alasan yang telah disebutkan di atas.

Crossover

10001001110010010
01010001001000011

==>

10001001101000011
01010001010010010

Proses terjadinya crossover

Mutation

10001001110010010

==>

10001001110010011
Proses terjadinya mutasi (mutation)

Proses di atas diulangi secara terus menerus hingga kondisi untuk terminasi telah tercapai. Kondisi – kondisi yang berhenti biasanya antara lain sebuah solusi telah ditemukan yang memenuhi kriteria minimum yang telah ditentukan, jumlah generasi yang telah ditentukan telah tercapai, fitness untuk solusi dengan tingkatan tertinggi telah didapat atau telah didapat kondisi dimana iterasi selanjutnya tidak menghasilkan hasil yang lebih baik, pengamatan secara manual, atau kombinasi dari hal – hal yang telah disebutkan tersebut.

GA bekerja sesuai dengan langkah-langkah seperti di bawah ini:

1.    Tentukan jumlah individu (kromosom) dari sebuah populasi.
2.    Mengetes setiap kromosom tentang seberapa baik kromosom tersebut dalam menyelesaikan masalah yang sedang kita hadapi.
3.    Pilih dua kromosom dari populasi tersebut secara acak dengan Sesuai dengan crossover rate akan terdapat kemungkinan menggunakan metode roulette.
4.    terjadinya crossover pada sebuah titik yang acak.
5.    Sesuai dengan mutation rate akan terdapat kemungkinan terjadinya mutasi yang akan mengubah kode genetik dari sebuah kromosom.
6.    Ulangi tahap 2 sampai 5  hingga didapatkan kembali jumlah kromosom yang sesuai dengan populasi yang semula.
7.    Ulangi tahap 2 sampai 6 hingga tercapai solusi terbaik atau telah mencapai jumlah generasi yang telah ditentukan.

Evolutionary Programming dan Genetic Algorithm

Ada dua perbedaan utama antara EP dan GA:

Pertama  tidak ada batasan dalam representasi. Pendekatan umum GA terdiri dari mengubah solusi masalah menjadi sebuah rangkaian dari simbol representatif, Genome. Pada EP, representasinya mengikuti masalahnya. Sebuah jaringan saraf dapat direpresentasikan dengan cara yang sama dengan bagaimana jaringan tersebut bekerja, contohnya, karena operasi mutasi tidak membutuhkan perubahan (encoding) yang linear. (Dalam kasus ini, topologi yang tetap, weight yang bernilai riil dapat diubah langsung sebagai nilai riil-nya dan mutasi terjadi dengan mengubah vektor weight dengan menambahkan derau Gaussian dengan nilai rata-rata nol (zero mean Gaussian mutation). Untuk topologi yang berubah-ubah sering digunakan penembahan dan pengurangan terdistribusi Poisson).

Kedua, operasi mutasi mengubah aspek dari solusi sesuai dengan distribusi. Selanjutnya, skala mutasi sering kali berkurang seiring dengan tercapainya global optima.

ref : dari berbagai sumber

Evolutionary Programming

Pengenalan

Evolutionary Programming, diusulkan oleh Lawrence J. Fogel pada tahun 1960, merupakan sebuah strategi optimasi stokhastik yang mirip dengan Genetic Algorithm, tetapi lebih menekankan pada hubungan sifat antara induk dan anak , dari pada mengemulasikan operator genetik tertentu seperti yang terjadi di alam. Evolutionary Programming mirip dengan Evolution Strategy, walaupun kedua pendekatan tersebut berkembang masing-masing.

Seperti ES dan GA, EP merupakan sebuah metode optimasi di mana ketika teknik-teknik lain seperti gradien turunan atau langsung, penemuan analisis tidak memungkinan. Fungsi optimasi kombinatorik dan bernilai riil di mana permukaan optimasi atau grafik fitness bergelombang, memiliki banyak solusi-solusi local optima, sangat cocok untuk Evolutionary Programming.

Sejarah

Buku pada tahun 1996, “Artificial Intelligence Through Simulated  Evolution” oleh Fogel,  Owens  dan  Walsh  merupakan publikasi pertama untuk aplikasi EP, walaupun banyak paper-paper lain yang sudah ada sebelumnya. Pada buku tersebut, finite  state  automata dievolusikan untuk memprediksikan rangkaian simbol yang dihasilkan oleh proses-proses Markov dan urutan waktu yang berubah-ubah. Prediksi evolusionari seperti itu dimotivasi oleh sebuah pengakuan bahwa prediksi merupakan sebuah kunci dalam perilaku yang cerdas (didefinisikan dalam konteks perilaku adaptif, di mana organisme cerdas harus mengantisipasi kejadian-kejadian untuk dapat mengadaptasikan perilaku untuk mencapai sebauh tujuan).

Pada tahun 1992, Konferensi tahunan pertama tentang Evolutionary  Programming diadakan di La Jolla, CA.   Konferensi-konferensi selanjutnya telah diadakan setiap tahun. Konferensi-konferensi tersebut menarik perhatian grup-grup akademik yang beragam, peneliti-peneliti komersial dan militer yang melakukan pegembangan teori EP dan mengimplementasikan EP untuk masalah-masalah optimasi yang beragam, baik pada bidang engineering dan biologi.

Proses

Untuk EP, seperti GA, terdapat sebuah asumsi bahwa sebuah grafik fitness dapat dikarakterisasi pada konteks variabel, dan sebuah solusi optimal sesuai dengan konteks variabel tersebut. Sebagai contoh, jika seseorang ingin mencari jalur terpendek dalam TSP, setiap solusi merupakan sebuah jalur. Panjang dari jalur tersebut dapat diekspresikan dalam sebuah angka, yang akan digunakan sebagai fitness dari solusi tersebut. Grafik fitness untuk masalah ini dapat dikarakterisasikan sebagai permukaan atas yang proporsional dengan panjang jalur dalam kumpulan jalur-jalur yang memungkinkan. Tujuannya adalah untuk mencari sebuah jalur terpendek yang optimal dalam kumpulan solusi tersebut, atau lebih praktisnya, untuk mencari jalur paling pendek dengan sangat cepat.

Metode dasar EP tediri dari 3 langkah (Ulang sampai sebuah threshold untuk iterasi telah terlebihi atau solusi yang diinginkan telah tercapai):

1.    Pilih populasi awal secara acak. Jumlah dari solusi pada sebuah populasi memiliki relevansi yang erat dengan kecepatan optimasi, tetapi tidak ada jawaban yang pasti mengenai berapa banyak yang seharusnya terdapat pada sebuah populasi.

2.    Setiap solusi direplikasi menjadi sebauh populasi yang baru. Masing-masing dari solusi anak ini mengalami mutasi menurut sebuah tipe distribusi mutasi, dengan skala minor sampai ekstrim dengan tipe mutasi kontinuum di antaranya. Skala dari mutasi ditentukan oleh perubahan fungsional dari induk.

3.    Setiap solusi anak akan dievaluasi dengan menghitung fitness-nya. Biasanya, sebuah turnamen stokhastik diadakan untuk menentukan N solusi yang akan dipertahankan untuk populasi solusi, meskipun biasanya hal ini dilakukan secara deterministik. Tidak ada syarat bahwa ukuran populasi harus tetap, tetapi, juga tidak ada batasan bahwa setiap induk menhasilkan sebuah solusi anak.

ref : dari berbagai sumber

Fuzzy Linear Programming - part 2

Fuzzy Linear Programming

Pada Fuzzy Linear Programming, bentuk persamaan akan mengalami sedikit perubahan sebagai berikut.

  • Bentuk imperatif pada fungsi obyektif tidak lagi benar-benar “maksimum” atau “minimum”, karena adanya beberapa hal yang perlu mendapat pertimbangan dalam suatu sistem.
  • Tanda ≤ (pada batasan) dalam kasus maksimasi dan tanda ≥ (pada batasan) dalam kasus minimasi tidak lagi bermakna crisp secara matematis, namun sedikit mengalami pelanggaran makna. Hal ini juga disebabkan karena adanya beberapa yang perlu dipertimbangkan dalam sistem yang mengakibatkan batasan tidak dapat didekati secara tegas.

Contoh kasus maksimasi pada Linear Programming:

Maksimumkan: f(x) = cTx
dengan batasan:
Ax ≤ b
x ≥ 0
dengan c,xєRn,bєRm,AєRmxn dan A,b,c adalah bilangan crisp.

Pada Fuzzy Linear Programming, akan dicari suatu nilai z yang erupakan fungi obyektif yang akan dioptimasikan sedemikian hingga unduk pada batasan-batasan yang dimodelkan dengan menggunakan himpunan fuzzy. Akhirnya persamaan di atas dirubah menjadi sebagai brikut.

Tentukan x sedemikian hingga:
cTx ≥ z
Ax ≤ b
X ≥ 0

Contoh kasus minimasi pada Linear Programming:

Minimumkan:
f(x)=CTx
dengan batasan:
Ax ≥ b
x ≥ 0
dengan c,xєRn,bєRm,AєRmxn

Minimasi pada Fuzzy Linear Programming:

Tentukan x sedemikian hingga:
cTx ≤ z
Ax ≥ b
X ≥ 0

Tiap-tiap batasan (0, 1, 2, …, m) akan direpresentasikan dengan ebuah himpunan fuzzy, dengan fungsi keanggotaan pada himpunan ke-i aalah μi[Bix].

Fungsi keanggotaan untuk model keputusan himpunan fuzzy dapat dnyatakan sebagai:

Tentu saja diharapkan akan didapat solusi terbaik, yaitu solusi dengan nilai keanggotaan yang paling besar. Dengan demikian solusi sebenarnya adalah:

Dari sini terlihat bahwa μi[Bix]=0 jika batasan ke-i benar-benar dilanggar. Sebaliknya, μi[Bix]=1 jika batasan ke-i benar-benar dipatuhi. Nilai μi[Bix] akan naik secara monoton pada selang [0,1], yaitu:

Gambar berikut menunjukkan fungsi keanggotaan tersebut.

Fungsi Keanggotaan

i = 0, 1, 2, …, m

dengan pi adalah toleransi interval yang diperbolehkan untuk melakukan pelanggaran baik pada fungi obyektif maupun batasan. Dengan mensubstitusikan (2) ke (1) akan diperoleh:

Dari gambar diatas, terlihat bahwa semakin besar nilai domain, akan memiliki nilai keanggotaan yang cenderung semakin kecil. Sehingga untuk mencari nilai λ-cut dapat dihitung sebagai λ=1-t, dengan:

di + tpi = ruas kanan batasan ke-i

Dengan demikian akan diperoleh bentuk Linear Programming baru sebagai berikut:

Maksimumkan: λ
Dengan batasan: λpi + Bix ≤ di + pi
i = 0, 1, …, m
x≥0

Penyelesaian masalah dengan metode Fuzzy Linear Programming

Maksimumkan:
x1 + x2
dengan batasan:
x1 + 2×2 ≥ 5
x1 + x2 ≤ 4
x1 + x2 = 3
x1, x2 ≥ 0

ketiga batasan memiliki toleransi interval masing-masing p1=3, p2=2, p3=1.

Bentuk tersebut di atas dapat diubah menjadi:

Maksimumkan:
x1 + x2
dengan batasan:
x1 + 2×2 ≥ 5 + 3t
x1 + x2 ≤ 4 + 2t
x1 + x2 = 3 + t
x1, x2 ≥ 0

Jika t=0 (λ=1), maka bentuk di atas menjadi:

Maksimumkan:
x1 + x2
dengan batasan:
x1 + 2×2 ≥ 5
x1 + x2 ≤ 4
x1 + x2 = 3
x1, x2 ≥ 0

yang dapat diselesaikan dengan menggunakan metode simpleks.

Bentuk standar Linear Programming:

Maksimumkan:
z = x1 + x2
dengan batasan:
x1 + 2×2 – S1 + S2 = 5
x1 + x2 + S3 = 4
x1 + x2 + S4 = 3
x1, x2 ≥ 0

Tabel simpleks untuk solusi awal adalah:

Tabel simpleks untuk solusi yang baru:

Tabel simpleks untuk solusi akhir:

Hasil akhir untuk t=0 (λ=1), adalah:

z = 10M;

Jika t=1 (λ=0), maka bentuk awal Linear Programming dapat diubah menjadi:

Maksimumkan:
x1 + x2
dengan batasan:
x1 + 2×2 ≥ 8
x1 + x2 ≤ 6
x1 + x2 = 4 x1,
x2 ≥ 0

yang juga dapat diselesaikan dengan menggunakan metode simpleks.

Bentuk standar Linear Programming:

Maksimumkan:
z = x1 + x2
dengan batasan:
x1 + 2×2 – S1 + S2 = 8
x1 + x2 + S3 = 6
x1 + x2 + S4 = 4
x1, x2 ≥ 0

Tabel simpleks untuk solusi awal adalah:

Tabel simpleks untuk solusi yang baru:

Tabel simpleks untuk solusi akhir:

Hasil akhir untuk t=1 (λ=0), adalah:

z =26M;

Dari kedua hasil ini (t=1 dan t=0), dapat ditentukan nilai p0, yaitu hasil pengurangan dari z pada saat t=1 dengan z pada saat t=0 (26M- 10M=16M).

Dengan mengambil λ=1-t, akhirnya dapat dibentuk model Fuzzy Linear Programming sebagai berikut.

Maksimumkan: λ
dengan batasan:
-16Mλ - x1 - x2 ≤ -26M – 16M
3λ + x1 + x2 ≤ 5 + 3
2λ + x1 + x2 ≤ 4 + 2
λ + x1 + x2 ≤ 3 + 1
λ, x1, x2 ≥ 0

Tabel simpleks untuk solusi awal:

Tabel simpleks untuk solusi baru:

ref : dari berbagai sumber

Fuzzy Linear Programming - part 1

Sebelum kita mengarah pada bagaimana himpunan fuzzy dibuat untuk kekurangan pada Linear programming, sebaiknya kita terlebih dahulu mengetahui apa itu optimasi.

Optimasi

Menurut Nash dan Sofer (1996), optimasi adalah sarana untuk mengekspresikan model matematika yang bertujuan memecahkan masalah dengan cara terbaik. Untuk tujuan bisnis, hal ini berarti memaksimalkan keuntungan dan efisiensi serta meminimalkan kerugian, biaya atau resiko.

Hal ini juga berarti merancang sesuatu untuk meminimalisasi bahan baku atau memaksimalisasi keuntungan. Adapun keinginan untuk memecahkan masalah dengan model optimasi secara umum sudah digunakan pada banyak aplikasi.

Model optimasi telah digunakan selama berabad-abad. Pada masa sekarang ini, optimasi menjadi sangat esensial untuk tujuan bisnis yang semakin kompleks dan rumit. Para insinyur pun menjadi semakin ambisius dalam mengembangkan hal ini. Dalam banyak hal, keputusan dapat saja dibuat tanpa mempertimbangkan tujuan dari model tersebut. Sebagai contoh, dalam kerjasama multinasional, sebagian kecil perkembangan proses operasi dapat mencapai peningkatan keuntungan berjuta-juta dolar. Tetapi, untuk mencapainya dibutuhkan analisis dan kerjasama setiap divisi.

Untuk model yang kompleks, dengan berbagai kerumitan yang ada, keputusan bisnis akan sangat berpengaruh. Dalam beberapa dasawarsa ini, telah dikembangkan hardware dan software komputer, yang berhasil melakukan optimasi secara praktis dalam bisnis dan ilmu pengetahuan. Sekarang ini, pemecahan masalah dengan ribuan atau bahkan jutaan variabel menjadi mungkin untuk diselesaikan.

 

Linear Programming

Linear Programming merupakan model umum yang dapat digunakan dalam pemecahan masalah pengalokasian sumber-sumber yang terbatas secara optimal. Masalah tersebut timbul apabila seseorang diharuskan untuk memilih atau menentukan tingkat setiap kegiatan yang akan dilakukannya, di mana masing-masing kegiatan membutuhkan sumber yang sama sedangkan jumlahnya terbatas. Secara sederhana, dapat diambil contoh bagian produksi suatu perusahaan yang dihadapkan pada masalah penentuan tingkat produksi masingmasing jenis produk dengan memperhatikan batasan faktor-faktor produksi: mesin, tenaga kerja, bahan mentah, dan sebagainya untuk memperoleh tingkat keuntungan maksimal atau biaya yang minimal.

Pada masa modern sekarang, Linear Programming masih menjadi pilihan dalam upaya untuk memperoleh tingkat keuntungan maksimal atau biaya yang minimal.

Dalam memecahkan masalah di atas, Linear Programming menggunakan model matematis. Sebutan “linear” berarti bahwa semua fungsi matematis yang disajikan dalam model ini haruslah fungsi-fungsi linier. Dalam Linear Programming dikenal dua macam fungsi, yaitu fungsi tujuan (objective function) dan fungsi-fungsi batasan (constraint function). Fungsi tujuan adalah fungsi yang menggambarkan tujuan/sasaran di dalam  permasalahan Linear Programming yang berkaitan dengan pengaturan secara optimal sumber daya-sumber daya, untuk memperoleh keuntungan maksimal atau biaya minimal. Pada umumnya nilai yang akan dioptimalkan dinyatakan sebagai Z. Fungsi batasan merupakan bentuk penyajian secara matematis batasan-batasan kapasitas yang tersedia yang akan dialokasikan secara optimal ke berbagai kegiatan.

Menurut Supranto(1983,p76-82), suatu persoalan disebut persoalan Linear Programming apabila memenuhi:

1. Tujuan (obyektif) yang akan dicapai harus dapat dinyatakan dalam fungsi linier. Fungsi ini disebut fungsi tujuan (fungsi obyektif).

2. Harus ada alternatif pemecahan yang membuat nilai fungsi tujuan optimum (laba yang maksimum, biaya yang minimum).

3. Sumber-sumber tersedia dalam jumlah yang terbatas (bahan mentah, modal, dan sebagainya). Kendala-kendala ini harus dinyatakan di dalam pertidaksamaan linier (linear inequalities).

Pada dasarnya, persoalan Linear Programming dapat dirumuskan sebagai berikut.

Cari x1,x2, …, xj, …, xn.

sedemikian rupa sehingga

Z = c1×1 + c2×2 + … + cjxj + … + cnxn = Optimum (Maksimum atau Minimum)

dengan kendala:

Keterangan:

Ada n macam barang yang akan diproduksi masing-masing sebesar x1, x2, … , xj, … xn.

xj = banyaknya produksi barang yang ke j, j = 1,2,…,n
cj = harga per satuan barang ke j, disebut “price”

Ada m macam bahan mentah masing-masing tersedia h1, h2, …, hj, …, hm.
hi = banyaknya bahan mentah ke i, i = 1,2, …,m
aij = banyaknya bahan mentah ke i yang dipergunakan untuk memproduksi 1 satuan barang ke j

xj unit memerlukan aij unit bahan mentah i.

 

Asumsi-asumsi Linear Programming

Asumsi-asumsi Linear Programming dapat dirinci sebagai berikut.

 

o Proportionality

Asumsi ini berarti bahwa naik turunnya nilai Z dan penggunaan sumber atau fasilitas yang tersedia akan berubah secara sebanding (proporsional) dengan perubahan tingkat kegiatan.

Z = C1X1 + C2X2 + C3X3 + …..CnXn

Setiap penambahan 1 unit X1 akan menaikkan Z dengan C1. Setiap penambahan 1 unit X2 akan menaikkan Z dengan C2, dan seterusnya.

a11X1 + a12X2 + a13X3 + ….. + anXn ≤ b1

Setiap penambahan 1 unit X1 akan menaikkan penggunaan sumber/fasilitas 1 dengan a11. Setiap penambahan 1 unit X2 akan menaikkan penggunaan sumber/fasilitas 1 dengan a12, dan seterusnya. Asumsinya adalah, setiap ada kenaikan kapasitas riil tidak perlu ada biaya persiapan (set up cost).

 

o Additivity

Asumsi ini berarti bahwa nilai tujuan tiap kegiatan tidak saling mempengaruhi, atau dalam Linear Programming dianggap bahwa kenaikan dari nilai tujuan (Z) yang diakibatkan oleh kenaikan suatu kegiatan dapat ditambahkan tanpa mempengaruhi bagian nilai Z yang diperoleh dari kegiatan lain.

Z = 3X1 + 5X2 di mana X1 = 10; X2 = 2;

Sehingga Z = 30 + 10 = 40

Jika X1 bertambah 1 unit, maka sesuai dengan asumsi, maka nilai Z menjadi 40 + 3 = 43. Jadi, nilai 3 karena kenaikan X1 dapat langsung ditambahkan pada nilai Z mula-mula tanpa mengurangi bagian Z yang diperoleh dari kegiatan 2 (X2). Dengan kata lain, tidak ada korelasi antara X1 dan X2.

 

o Divisibility

Asumsi ini menyatakan bahwa keluaran yang dihasilkan oleh setiap kegiatan dapat berupa bilangan pecahan. Demikian pula dengan nilai Z yang dihasilkan.

 

o Deterministic (certainty)

Asumsi ini menyatakan bahwa semua parameter yang terdapat dalam model Linear Programming (aij, bi, cj) dapat diperkirakan dengan pasti, meskipun jarang dengan tepat.

 

Simplex Linear Programming

Apabila suatu masalah Linear Programming hanya mengandung dua kegiatan (variabel-variabel keputusan) saja, maka dapat diselesaikan dengan metode grafik. Bila terdapat lebih dari dua variabel maka metode grafik tidak dapat digunakan lagi, sehingga diperlukan metode simpleks. Metode ini lazim dipakai untuk menentukan kombinasi dari tiga variabel atau lebih.

Masalah Linear Programming yang melibatkan banyak variabel keputusan dapat dengan cepat dipecahkan dengan bantuan komputer. Bila variabel keputusan yang dikandung tidak terlalu banyak, masalah tersebut dapat diselesaikan dengan suatu algoritma yang biasanya sering disebut metode tabel simpleks. Disebut demikian karena kombinasi variabel keputusan yang optimal dicari dengan menggunakan tabel-tabel.

Menurut Subagyo et al. (1983,p34-39), langkah-langkah metode tabel simpleks adalah sebagai berikut.

1. Mengubah fungsi tujuan dan batasan-batasan Fungsi tujuan diubah menjadi fungsi implisit, artinya semua cjxj digeser ke kiri.

2. Menyusun persamaan-persamaan di dalam tabel.
Setelah formulasi disusun ke dalam tabel dan simbol, maka akan tampak seperti pada tabel berikut.

Sumber: Subagyo (1983, p50)

NK adalah nilai kanan persamaan, yaitu nilai di belakang tanda sama dengan (=). Variabel dasar adalah variabel yang nilainya sama dengan sisi kanan dari persamaan. Pada tabel tersebut, nilai variabel dasar
pada fungsi tujuan (fungsi permulaan) ini harus 0, dan nilainya pada kendala-kendala bertanda positif.

Setelah data disusun dalam tabel-tabel di atas kemudian diadakan perubahan-perubahan agar dapat mencapai titik optimal, dengan langkahlangkah selanjutnya.

3. Memilih kolom kunci.
Kolom kunci adalah kolom yang merupakan dasar untuk mengubah tabel di atas. Dipilih kolom yang mempunyai nilai pada baris fungsi tujuan yang bernilai negatif dengan angka terbesar. Kalau suatu tabel
sudah tidak memiliki nilai negatif pada baris fungsi tujuan, berarti tabel itu tidak bisa dioptimalkan lagi.

4. Memilih baris kunci.
Baris kunci adalah baris yang merupakan dasar untuk mengubah tabel tersebut di atas. Untuk itu, terlebih dahulu dicari indeks tiap-tiap baris dengan cara membagi nilai-nilai pada kolom NK dengan nilai yang
sebaris pada kolom kunci.

Indeks = nilai kolom NK / nilai kolom kunci. Kemudian dipilih angka yang memiliki nilai positif terkecil.

5. Mengubah nilai-nilai baris kunci.
Nilai baris kunci diubah dengan cara membaginya dengan angka kunci.

6. Mengubah nilai-nilai selain pada baris kunci.
Nilai-nilai baris yang lain, selain pada baris kunci dapat diubah dengan rumus berikut:
Baris baru = baris lama – (koefisien pada kolom kunci) x nilai baru baris kunci

7. Melanjutkan perbaikan-perbaikan/perubahan-perubahan Ulangi langkah perbaikan mulai langkah ke-3 sampai langkah ke-6 untuk memperbaiki tabel-tabel yang telah diubah/diperbaiki nilainya. Perubahan baru berhenti setelah baris pertama (fungsi tujuan) tidak ada yang bernilai negatif.

Menurut Subagyo et al. (1995,p43-46), terdapat beberapa ketentuan tambahan yang berupa :

1) Terdapat lebih dari satu kolom bernilai “negatif terbesar yang sama”.
Kalau pada baris fungsi tujuan terdapat lebih dari satu kolom yang mempunyai nilai negatif yang angkanya terbesar dan sama, maka ada dua kolom yang bisa terpilih menjadi kolom kunci. Untuk mengatasi hal ini, dapat dipilih salah satu secara sembarang.

2) Dua baris atau lebih mempunyai indeks positif terkecil.
Kalau ada dua baris atau lebih yang mempunyai nilai positif terkecil yang sama, maka ada beberapa baris yang dapat terpilih sebagai baris kunci. Dapat dipilih baris kunci secara bebas di antara keduanya dan hasilnya akan sama.

3) Kenaikan nilai Z tidak terbatas.
Nilai Z (tujuan) suatu permasalahan dapat ditambah terus bila paling tidak ada satu kegiatan yang tidak ada batasannya. Kalau di dalam Linear Programming muncul hal-hal semacam ini, tidak perlu dilanjutkan, cukup disebutkan bahwa kenaikan nilai Z dapat tidak terbatas. Di samping itu, ada baiknya pula bila diteliti lagi formulasi masalahnya, sebab hal ini dapat pula terjadi karena kesalahan dalam formulasi.

4) Multiple Optional Solutions.
Untuk mengetahui apakah suatu masalah Linear Programming bersifat multiple solutions atau tidak, dilihat baris fungsi tujuan pada tabel terakhir (optimal). Apabila dalam baris itu terdapat paling tidak satu kolom variabel yang mempunyai nilai 0 maka masalah itu bersifat multiple solutions. Masalah itu akan menghasilkan paling tidak dua alternatif yang mempunyai nilai Z yang sama. Selain itu juga ada  penyimpangan-penyimpangan daribentuk standar, dimana penyimpangan-penyimpangan tersebut akan diatasi agar bisa diselesaikan dengan metode simpleks.

a) Batasan dengan tanda “sama dengan”.
Kalau suatu batasan memakai tanda kesamaan, maka cara mengatasinya dengan menambahkan variabel buatan (artificial variable).

b) Minimasi
Fungsi tujuan dari permasalahan Linear Programming yang bersifat minimasi, harus diubah menjadi maksimasi, agar sesuai dengan bentuk standar, yaitu maksimasi. Caranya adalah dengan mengganti tanda
positif dan negatif pada fungsi tujuan.

c) Fungsi pembatas bertanda ≥.
Bila suatu fungsi pembatas bertanda ≥, maka harus diubah menjadi ≤ dan akhirnya menjadi = agar dapat
diselesaikan dengan metode simpleks.

d) Bagian kanan persamaan bertanda negatif.
Bila bagian kanan persamaan bertanda negatif maka harus diubah menjadi positif. Caranya dengan mengubah tanda positif negatif dari tiap-tiap koefisien, kemudian ditambah dengan variabel buatan.

e) Bila minimum nilai Xj boleh negatif.
Pada bentuk standar, nilai Xj harus selalu positif (dengan batasan Xj ≥ 0). Tetapi kadang-kadang suatu
masalah dapat menghasilkan formulasi Linear Programming yang memungkinkan nilai Xj negatif.

f) Bila nilai Xj boleh positif atau negatif Kalau hasil Linear Programming memungkinkan nilai Xj positif maupun negatif dan tidak ada batas negatif tertentu (negatif berapa pun dimungkinkan) maka nilai Xj
diubah menjadi X’j - X”j, dengan ketentuan sebagai berikut:

X’j = mewakili nilai positif dari Xj
X”j = mewakili nilai negatif dari Xj

 

ref : dari berbagai sumber 

 

Fuzzy Logic - part 6

Fuzzyfication

Fuzzyfication merupakan proses pemetaan nilai-nilai input (crisp input)
yang berasal yang berasal dari sistem yang dikontrol (besaran non fuzzy) ke dalam himpunan fuzzy menurut fungsi keanggotaannya. Himpunan fuzzy Iersebut merupakan fuzzy input yang akan diolah secara fuzzy pada proses berikutnya. Untuk mengubah crisp input menjadi fuzzy input, terlebih dahulu harus menentukan membership function untuk tiap crisp input, kemudian proses fuzzyfikasi akan mengambil crisp input dan membandingkan dengan membership function yang telah ada untuk menghasilkan harga fuzzy input.

 

Rules Evaluation

Pada tahap rule evaluation ini diproses hubungan antara nilai-nilai input (crisp input) dan nilai-nilai output (crisp output) yang dikehendaki dengan aturan-aturan (rules). Aturan ini nantinya yang akan menentukan respon sistem terhadap berbagai kondisi setting point dan gangguan yang terjadi pada sistem. Rules yang dipakai adalah jenis “IF-THEN“. Berikut ini contoh rules.

IF Err is Normally big (antecendent 1) and AEn is Normally big (antecendent 2)

THEN output is Normally big (consequent).

Pada antecendent input variable = label, juga pada consequent output variable = label Pada penggunaan dua antecendent atau lebih, untuk mempermudah dapat digunakan matriks. Proses rule evaluation akan mengevaluasi Fuzzy input yang didapat dari proses fuzzyfikasi untuk tiap antecendent dari rule dengan menentukan rule strength dari tiap-tiap rule, karena antecendent dihubungkan dengan operator AND maka rule strength diambil dari strength value yang terkecil dari antecendent. Proses selanjutnya adalah menentukan Fuzzy output dengan membandingkan rule strength dari semua rule yang mempunyai label conscquent yang sama.

Defuzzyfication

Pada tahap ini dilakukan pemetaan bagi nilai-nilai fuzzy output yang dihasilkan pada tahap rules evaluation ke nilai-nilai output kuantitatif yang sesuai dengan sistem yang diharapkan. Ada berbagai metode untuk melakukan proses defuzzyfication, diantaranya metode Center Of Grafity (COG), dimana metode ini akan menghitung pusat titik berat pada semua membership function output yang dipenuhi untuk  menentukan besarnya output yang harus diberikan.

Pada proses defuzzyfikasi dengan metode COG setiap output membership function yang mempunyai nilai diatas Fuzzy output dipotong, pemotongan ini disebut lamda cut. Hasil dari membership function yang telah terpotong digabungkan lalu dihitung dengan COG secara keseluruhan. Metode COG juga dapat dilakukan pada output membership function yang berbentuk singleton. Output membership function singleton merupakan sebuah garis vertikal tunggal. Pemotongan pada output membership function dilakukan dengan pengurangan tinggi garis vertikal tersebut pada nilai fuzzy output. Nilai yang lebih tinggi dari fuzzy output dibuang dan hasil pemotongan tersebut kemudian dihitung dengan COG.

 

ref : dari berbagai sumber

 

Fuzzy Logic - part 5

Fungsi Keanggotaan (Membership Function)

Fungsi keanggotaan (membership function) adalah suatu kurva yang menunjukan pemetaan titik – titik input data kedalam nilai keanggotaanya (sering juga disebut dengan derajat keanggotaan) yang memiliki interval antara 0 sampai 1 (Kusumadewei, 2004 : p8). Salah satu cara yang dapat digunakan untuk mendapatkan nilai keanggotaan adalah dengan melalui pendekatan fungsi. Ada beberapa fungsi yang bisa digunakan.

 

Representasi Linier

Pada representasi linear, pemetaan input ke derajat keanggotaannya digambarkan sebagai suatu garais lurus. Bentuk ini paling sederhana dan menjadi pilihan yang baik untuk mendekati suatu konsep yang kurang jelas.

Ada 2 keadaaan himpunan fuzzy yang linear. Pertama, kenaikan himpunan dimulai pada nilai domain yang memiliki derajat keanggotaan nol [0] bergerak ke kanan menuju ke nilai domain yang memiliki derajat keanggotaan lebih tinggi.

Representasi Linear Naik :

Fungsi keanggotaan :

 

Kedua, merupakan kebalikan yang pertama. Garis lurus dimulai dari nilai domain dengan derajat keanggotaan tertinggi pada sisi kiri, kemudian bergerak menurun ke nilai domain yang memiliki derajat keanggotaan lebih rendah.

Representasi linear Turun :

Fungsi keanggotaan :

 

Representasi Kurva Segitiga

Kurva Segitiga pada dasarnya merupakan gabungan antara 2 garis (linear) seperti terlihat pada gambar.

Fungsi keanggotaan :

 

Representasi Kurva Trapesium

Kurva Trapesium pada dasarnya seperti bentuk segitiga, hanya saja ada beberapa titik yang memiliki nilai keanggotaan 1 ( Gambar ).

Fungsi keanggotaan :

 

Representasi Kurva Bentuk Bahu

Daerah yang terletak ditengah – tengah suatu variable yang direpresentasikan dalma bentuk segitiga, pada sisi kanan dan kirinya akan naik dan turun (misalkan : DINGIN bergerak ke SEJUK bergerak ke HANGAT dan bergerak ke PANAS). Tetapi terkadang salah satu sisi dari variable tersebut tidak mengalami perubahan. Sebagai contoh, apabila telah mencapai kondisi PANAS, kenaikan temperature akan tetap berada pada kondisi PANAS. Himpunan fuzzy ‘bahu’ , bukan segitiga, digunakan utnuk mengakhiri variable suatu daerah fuzzy. Bahu kiri bergerak dari benar ke salah, demikian juga bahu kanan bergerak dari salah ke benar. Gambar menunjukkan variable TEMPERATUR dengan daerah bahunya.

Representasi Kurva-S

Kurva PERTUMBUHAN dan PENYUSUTAN merupakan kurva-S atau sigmoid yang berhubungan dengan kenaikan dan penurunan permukaan secara tak linear.

Kurva-S didefinisikan dengan menggunakan 3 parameter, yaitu : nilai keanggotaan nol (α), nilai keanggotaan lengkap (γ), dan titik infleksi atau crossover (β) yaitu titik yang memiliki domain 50% benar. Gambar menunjukan karakteristik kurva-S dalam bentuk skema.

Kurva-S untuk PERTUMBUHAN akan bergerak dari sisi paling kiri (nilai keanggotaan = 0) ke sisi paling kanan (nilai keanggotaan = 1). Fungsi keanggotaannya akan tertumpu pada 50% nilai keanggotaan yang sering disebut dengan titik infleksi (gambar ).

Fungsi keanggotaan pada kurva PERTUMBUHAN adalah :

 

Kurva-S untuk PENYUSUTAN akan bergerak dari sisi paling kanan (nilai keanggotaan = 1) ke sisi paling kiri (nilai keanggotaan = 0) seperti terlihat Gambar.

Fungsi keanggotaan pada kurva PENYUSUTAN adalah :

 

Representasi Kurva Bentuk Lonceng (Bell Curve)

Untuk merepresentasikan bilangan fuzzy, biasanya digunakan kurva berbentuk lonceng. Kurva berbentuk lonceng ini terbagi atas 3 kelas, yaitu himpunan fuzzy π, beta, dan Gauss. Perbedaan ketiga kurva ini terletak pada gradiennya.

 

Kurva π

Kurva π berbentuk lonceng dengan derajat keanggotaan 1 terletak pada pusat dengan domain (γ), dan lebar kurva (β) seperti terlihat pada gambar . Nilai kurva untuk suatu nilai domain x diberikan sebagai :

 

Kurva BETA

Seperti halnya kurva PI, kurva BETA juga berbentuk lonceng namun lebih rapat. Kurva ini juga didefinisikan dengan 2 parameter, yaitu nilai pada domain yang menunjukan pusat kurva (γ), dan setengah lebar kurva (β) seperti terlihat pada gambar. Nilai kurva untuk suatu nilai domain x diberikan sebagai :

B ( x ; γ , β ) = 1 / ( 1 + ( ( x – γ ) -  β )2

 

Kurva GAUSS

Jika kurva PI dan kurva BETA menggunakan 2 parameter yaitu (γ) dan (β), kurva GAUSS juga menggunakan (γ) untuk menunjukkan nilai domain pada pusat kurva, dan (k) yang menunjukkan lebar kurva. Nilai kurva untuk suatu nilai domain x diberikan sebagai :

G ( x ; k , γ ) = e –k(γ–x)^2

 

ref : dari berbagai sumber

 

Fuzzy Logic - part 4

Himpunan Klasik vs Himpunan Fuzzy

Perbedaan himpunan fuzzy dengan himpunan klasik dapat diilustrasikan pda gambar dibawah ini. Dari gambar tersebut dapat terlihat himpunan fuzzy memiliki batas yang tidak jelas, sedangkan himpunan klasik memiliki batas yang jelas. Pada gambar 6 tanda ‘)’ mengartikan batas akhir dari sebuah scope dan tanda ‘[‘ mengartikan batas awal sebuah scope dari himpunan klasik.

Rentang suhu yang dinyatakan dalam Himpunan Fuzzy :

Rentang suhu yang dinyatakan dalam Himpunan Klasik :
 

Sistem Fuzzy

Ada beberapa hal yang perlu diketahui dalam memahami system fuzzy, yaitu (Kusumadewi, 2004 : p6) :

a. Variable fuzzy
Variable fuzzy merupakan variable yang hendak dibahas dalam suatu system fuzzy. Contoh : umur, temperature, pertmintaan, dsb.

b. Himpunan fuzzy
Himpunan fuzzy merupakan suatu grup yang mewakili suatu kondisi atau keadaan tertentu dalam suatu variable fuzzy. Lebih lengkap mengenai himpunan fuzzy dapat dilihat pada section 2.11.4.2 diatas.

c. Semesta Pembicaraan
Semesta pembicaraan adalah keseluruhan nilai yang diperbolehkan untuk dioperasikan dalam suatu variable fuzzy. Semesta pembicaraan merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai semesta pembicaraan dapat berupa bilangan positif maupun negative. Adakalanya nilai semesta pembicaraan ini tidak dibatasi batas atasnya.
Contoh :
• Semesta pembicaraan untuk variable umur : [0 +∞]
• Semesta pembicaraan untuk variable temperature : [0 40]

d. Domain
Domain himpunan fuzzy adalah keseluruhan nilai yang diijinkna dalam semesta pembicaraan dan boleh dioperasikan dalam suatu himpunan fuzzy. Seperti halnya semesta pembicaraan, domain merupakan himpunan bilangan real yang senantiasa naik (bertambah) secara monoton dari kiri ke kanan. Nilai domain dapat berupa bilangan positif maupun negative.
Contoh domain himpunan fuzzy :
• MUDA  =    [0,  45]
• PAROBAYA =    [35,  55]
• TUA  =    [45, +∞]

 

ref : dari berbagai sumber

 

Fuzzy Logic - part 3

Fuzzy Set Operation

Fuzzy set operation adalah operasi yang dilakukan pada fuzzy set. Operasi – operasi ini merupakan generalisasi dari operasi crisp set. Terdapat lebih dari satu generalisasi yang mungkin. Operasi – operasi yang paling banyak digunakan secara luas disebut standard fuzzy set operations. Terdapat tiga operasi yaitu : fuzzy unions, fuzzy intersections, dan fuzzy complements.

 

Fuzzy Unions

Fungsi keanggotaan dari Union dari dua fuzzy set A dan B dengan fungsi keanggotaan µA dan µB berturut – turut ditetapkan sebagai maksimum dari dua fungsi keanggotaan tersendiri. Ini disebut standar maksimum.

 

Operasi Union dalam teori fuzzy set ekuivalen dengan operasi OR pada aljabar Boolean.

Sifat (property) dari fuzzy union mencakup:

• Boundary Condition
u(a , 0) = a

• Monotonicity
b ≤ d secara tidak langsung menyatakan u(a , b) ≤ u(a , d)

• Commutativity
u(a , b) = u(b , a)

• Associativity
u (a , u(b , d)) = u(u (a , b) , d)

• Continuity
u adalah fungsi yang berkelanjutan (continuous)

• Superidempotency
u (a , a) > a

• Strict monotonicity
a1 < a2 dan b1 < b2 secara tidak langsung menyatakan bahwa U(a1, b1) < U(a2, b2)

Keterangan : u menyatakan union a, b, d, a1, a2, b1, b2 menyatakan fuzzy set

 

Fuzzy Intersections

Fungsi keanggotaan dari Intersection dari dua fuzzy set A dan B dengan fungsi keanggotaan µA dan µB berturut – turut ditetapkan sebagai minimum dari dua fungsi keanggotaan tersendiri. Ini disebut standar minimum.

 

Operasi Intersection dalam teori fuzzy set ekuivalen dengan operasi AND  pada aljabar Boolean.

Sifat (property) dari fuzzy intersection mencakup:

• Boundary Condition
i(a , 1) = a

• Monotonicity
b ≤ d secara tidak langsung menyatakan i(a , b) ≤  i(a , d)

• Commutativity
i(a , b) = i(b , a)

• Associativity
i (a , i(b , d)) = i(i (a , b) , d)

• Continuity
i adalah fungsi yang berkelanjutan (continuous)

• Subidempotency
i (a , a) ≤ a

Keterangan : i menyatakan intersectiona, b, d, a1, a2, b1, b2 menyatakan fuzzy set

 

Fuzzy Complements

Fungsi keanggotaan dari Intersection dari sebuah fuzzy set A dengan fungsi keanggotaan µA ditetapkan sebagai negasi dari fungsi keanggotaan yang ditentukan. Ini disebut standar negasi.

 

 

Operasi Complement dalam teori fuzzy set ekuivalen dengan operasi NOT  pada aljabar Boolean.

Sifat (property) dari fuzzy complement mencakup:

• Boundary Condition
c(0) = 1 dan c(1) = 0

• Monotonicity
Untuk semua a, b [0 , 1], jika a ≤ b maka c(a) ≥ c(b)

• Continuity
c adalah fungsi yang berkelanjutan (continuous)

• Involutions
c adalah suatu involution, yang berarti bahwa c(c(a)) = a untuk setiap a [0 , 1]

 

ref : dari berbagai sumber 

 

Categories

Recent Posts

 

August 2010
M T W T F S S
« Dec    
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Tags

Basis Pengetahuan Bell Curve Computer Vision Crisp Set Defuzzyfication Evolutionary Programming expert systems Fungsi Keanggotaan Fuzzy Complements Fuzzyfication Fuzzy Intersections Fuzzy Linear Programming Fuzzy Logic Fuzzy Set Fuzzy Set Operation Fuzzy Unions Genetic Algorithm Grayscale Himpunan Fuzzy Himpunan Klasik Histogram Histogram equalisation Histogram normalisasi Image Processing Inference Engine Knowledge Base Kurva π Kurva-S Kurva Bentuk Bahu Kurva Bentuk Lonceng Kurva BETA Kurva GAUSS Kurva Segitiga Kurva Trapesium Linear Programming Linier Membership Function Motor Inferensi Optimasi Rules Evaluation Simplex Linear Programming Sistem Fuzzy sistem konvensional sistem pakar Soft Computing

Links

Meta

Archives

Recent Comments

  • sapta: mas mo nannya skripsi saya tentang penjadwalan perkuliahan
  • hasby: oya email saya : hasby.fachrul@gmail.com thx
  • hasby: assalamualaikum... saya mau tanya,,untuk bentuk pohon keput
  • masra: pak, saya ada rencana untuk tugas akhir mengaplikasikan fuzz
  • Bertha: mohon bantuannya.. bagaimana implementasi fuzzy linear progr
  • fajar: berbagi tak pernah rugi. terima kasih telah memberikan ilmu
  • lidia: mas tanya...cara buat grafik/kurva fungsi keanggotaan itu d

Banner :

AIIE - Artificial Intelligence Learning Centre
Pasang banner ini di blog anda :