Search what you want

Labels

AI (1) Assembly (2) Cloud (1) Heuristic Evaluation (6) Java (1) Notifikasi (3) PPCD (4) R-Studio (3) TKI (1) WEKA (2) agribot (1) algoritma bioinformatika (5) algotithm (7) android studio (17) arduino (1) bahasa (2) barcode scanner (1) camera (1) catatan kuliah (4) classification (1) datamining (6) form (1) fragment (1) github (4) golang (2) gym (1) imk (1) informatiion retrival (1) ipb (1) jaringan (1) json (1) komdat (3) library (1) list view (1) orkom (1) pemprosesan parallel (4) python (1) security (1) semester 5 (1) sispak (3) spirit (1) tabs (1) teori (1) text (1) validator (1) view pager (1) web (3)
Showing posts with label algotithm. Show all posts
Showing posts with label algotithm. Show all posts

Sunday, April 5, 2015

Fuzzy Logic and FIS

Fuzzy Logic merupakan sebuah logika yang mengerapkan derajat keanggotaan dalam suatu himpunan sehingga  keaggotaan tidak hanya bersifat true/false.

penghubung di logika fuzzy:

1. Fuzzy Conjunction (Min)
2. Fuzzy Disjunction (Max)


Fuzzy Inference System (FIS) merupakan suatu sistem yang menggunaka logika Fuzzy untuk membuat keputusan. Terdapat tiga metode dalam Fuzzy Reasoning:

1. Fuzzy Mamdani
2. Fuzzy Takagi Sugeno
3. Fuzzy Tsukamoto

berikut perbedaan dari ketiga metode tersebut:


Secara umum semua metode menggunakan mekanisme yang sama dalam pembuatan keputusan. Berikut Mekanisme FIS:

1. Problem Domain
-Kelayakan masalah karena tidak bisa diselesaikan menggunakan metode crisp. 
-Penentuan variabel-variabel yang digunakan dalam sistem

2. Fuzzifikasi
-Mengubah nilai Crisp dari semua parameter menjadi variable linguistik
-Mengubah semua variabel menjadi himpunan Fuzzy.
-Representasi variabel Fuzzy dalam bentuk kurva

3. Pembuatan Aturan Fuzzy
-Memetakan setiap input terhadap Output
-Membuat aturan If-Then

4. Defuzzifikasi
-Mendapatkan kembali nilai Crisp dari sejumlah aturan, tergantung metode yang digunakan
   ->Mamdani: center of gravity, SOM, LOM, MOM
   ->Sugeno   : Weighted average
   ->Tsukmoto: Weighted average


Mencari nilai keanggoaan:








CONTOH SOAL:
Suatu perusahaan sparepart akan memproduksi sparepartdengan jenis tertentu. Dari 1 bulan terakhir, permintaan terbesar mencapai 5000 jenis per bulan, dan permintaan terkecil mencapai 1000 jenis bulan. Persediaan barang di gudang tiap hari paling banyak 600 jenis. dan persediaan terkecil mencapai 100 jenis per hari.Dikarenakan memiliki keterbatasan, perusahaan ini hanya mampu memproduksi 
pakaian paling banyak 7000 jenis per bulan.Untuk efisiensi, mesin dan SDM setiap hari diharapkan perusahaan memproduksi paling tidak 2000 jenis . Berapa banyak jenis sparepart yang harus diproduksi apabila terdapat permintaan sejumlah 4000 jenis dan persediaan di gudang terdapat 300 jenis. 

1. pemodelan masalah
Input  : a. Permintaan [1000 5000] {TURUN NAIK} 
           b. Persediaan [100 600]{SEDIKIT BANYAK} 
Output : Jumlah Produksi [2000 7000]{BERKURANG BERTAMBAH} 

2. Pembuatan aturan
   [R1]: IF Permintaan TURUN And Persediaan BANYAK THEN Produksi sparepart                           BERKURANG
   [R2] : IF Permintaan TURUN And Persediaan SEDIKIT THEN Produksi sparepart                            BERKURANG
   [R3] : IF Permintaan NAIK And Persediaan BANYAK THEN Produksi sparepart                              BERTAMBAH
   [R4] : IF Permintaan NAIK And Persediaan SEDIKIT THEN Produksi sparepart                                 BERTAMBAH

3. Analisis masalah
    4000 : termasuk dalam kategori turun dan naik
    300 : termasuk dalam kategori banyak dan sedikit
    Jadi, Semua Aturan / Rule digunakan

mencari nilai keanggotaan:



Dekomposisi 

1. Center of Gravity 



2. LOM : Mencari nilai z terbesar dari nilai μf maksimum
    Mengambil nilai z terbesar dari nilai derajat keanggotaan(μ(z))yang maksimal 
    LOM=5000

3. SOM : Mencari nilai z terkecil dari nilai μf  maksimum
    Mengambil nilai z terkecil dari nilai derajat keanggotaan(μ(z))yang maksimal
    SOM=3000

4. MOM : Mencari rataan z dari nilai μf maksimum
    Mengambil nilai z rata-rata dari nilai derajat keanggotaan(μ(z))yang maksimal
    MOM= (5000+3000) / 2=4000




Ref:
http://informatika.web.id/jenis-jenis-fungsi-keanggotaan.htm

ANALYTIC HIERARCHY PROCESS

Analytic Hierarchy Process (AHP) adalah teknik untuk mendukung proses pengambilan keputusan yang bertujuan untuk menentukan pilihan terbaik dari beberapa alternatif yang dapat diambil, teknik ini didasarkan pada matematik dan psikologi. intinya bagaimana kita mmenentukan sebuah pilihan dari beberapa alternatif pilihan yang kita punya, dengan mempertimbangkan kriteria yang kita buat.

sebagai contoh, saya akan membeli sebuah mobil dari beberapa merek mobil yang saya minati, serta saya juga memiliki kriteria yang memiliki prioritas. 

jika saya mempertimbangkan hal-hal seperti ini,
1. realibility dua kali lebih penting dari pada style
2. style tiga kali lebih penting dari pada fuel economy
4. reability empat kali lebih penting dari pada fuel economy

maka akan didapatkan matriks

setelah mendapatkan matriks tersebut maka:
step 1: kuadratkan matriks

step 2: jumlahkan setiap kolom dalam satu row untuk eigenvektor 1
step 3: normalisasi dengan membagi total dalam satu baris dengan total nilai seluruhnya
step 4: cari nilai eigenvektor yang kedua dengan mengulangi step 2 dan 3
step 5 : bandingkan nilai eigenvektor1 dan 2  yang didapatkan untuk menentukan besarnya perubahan nilai
karena perubahannya sudah tidak terlalu besar, dapat di asumsikan bahwa nilainya sudah konvergen, maka iterasi diberhentikan sampai mencari nilai eigen 2 saja.

maka:



lalu apakah yang harus kita lakukan ketika sudah memiliki prioritas dari  beberapa kriteria???
langkah selanjutnya yaitu mencari, mobil (alternativ) mana yang memiliki nilai terdekat dengan prioritas yang kita miliki. 

membandingkan setiap alternativ pada kriteria yang sama:
1. Style

diketehui hubungan tiap-tiap alternativ pada kriteria Style, sebagai berikut:

setelah melakuakn pencarian niali eigen hingga nilai yang didapatkan dianggap sudah konvergen (selisih nilai eigen sekarang dengan nilai eigen sebelumnya yang kecil) maka berhentilah untuk iterasi selanjutnya. didapatkan nilai:



2. reliability


diketehui hubungan tiap-tiap alternativ pada kriteria reliability sebagai berikut:
didapatkan pula nilainya, sebagai berikut

3. fuel economy
untuk kriteria yang satu ini dapat kita lihat konsumsinya Miles/Galoon



jadi, dari hasil tersebut diketahui bahwa Miata memiliki nilai yang paling besar, maka, Miata yang akan dipilih.




~SEKIAN AHP~


apakah AHP itu telah selesai?
belum juga.
kita harus memeriksa apakah perbandingan berpasangan sudah konsekuen atau belum? dapat kita periksa menggunakan Consistency Ratio(CR), dengan nilai:
CR <=0.1  ----------> Konsisten
0.1 < CR <= 0.15 -->  Agak Konsisten
CR > 0.15  ----------> Tidak Konsisten

rumus:
CR=CI/RI

misalnya kita akan melihat kekonsistenan nilai dari perbandingan berpasangan antar alternative di kriteria Style

kita akan mengalikan dua matriks tersebut
Kemudian kita menghitung Consistency Vector dengan menentukan nilai rata-rata dari weighted sum vector:
nilai rata-rata vektornya adalah 
p = (4.4303+4.4342+4.4358+4.4385)/4=4.4347


setelah mendapatkan nilai rata-rata, kita akan mencari nilai Consistency Index
CI=(p-n)/(n-1)=(4.4347-4)/(4-1)=0.4347/3=0.1449

setelah didapatkan CI kita masih membutuhkan nilai Random Index (RI) yang sudah bisa langsung didapatkan dari tabel
karena n kita gunakan adalah 4 maka kita ambil nilai CI dengan n = 0.90

maka 
CR=CI/RI=0.1449/0.9=0.161

nilai CR > 0.1 yang menandakan masih ada penilaian kriteria yang kurang konsisten.


Naive Bayes

          Naïve Bayes merupakan salah satu metode machine learning yang menggunakan perhitungan probabilitas. Konsep dasar yang digunakan oleh Naïve bayes adalah Teorema Bayes, yaitu teorema dalam statistika untuk menghitung peluang, Bayes Optimal Classifier menghitung peluang dari satu kelas dari masing-masing kelompok atribut yang ada, dan menentukan kelas mana yang paling optimal.

sebelum melakukan perhitungan ini diperlukan pemahaman tentang dua jenis peluang penyusunnya terlebih dahulu, yaitu:
1. peluang posterior
2. peluang prior

jika X melambangkan set atribut data dan Y melambangkan kelas variabel. Peluang bersyarat P(Y|X) ini juga dikenal dengan posterior  peluang untuk Y, dan  sebaliknya peluang prior untuk Y adalah P(Y).

contoh soal:
jika diketahui terdapat tabel data sebagai barikut:

Jika diberikan test record dengan atribut berikut : X  = (Home Owner = No, Marital Status = Married, Annual Income = $120K).  masuk ke klasifikasi manakah data tersebut? Yes? or No?

langkah pertama yang harus dilakukan yaitu:
-> hitung peluang posterior  P(Yes|X) , P(No|X)

-> Jika  P(Yes|X)>P(No|X), maka record diklasifikasikan sebagai Yes
-> Jika  P(Yes|X)<P(No|X)maka record diklasifikasikan sebagai No

- untuk data data diskrit peluang dapat dihitung lansung dengan mengunakan peluang kejadian dibagi peluang keseluruhan. contoh untuk P(Home Owner = No| No) karena peluang home ownner yang no ada 7 data, sedangkan dari 7 data tersebut yang masuk ke kelas(defauited Borrowed) no ada 4 maka peluangnya adalah 4/7
- sedangkan untuk mencari peluang dari data yang bernilali kontinue dapat dicari dengan menggunakan cara data diskrit atau menggunakan distribusi Gausian untuk data yang kuntinu, distribusi Gausian memiliki rumus:
perhitungan untuk data diskrit:
jika kelas no: rata-rata=110
                    SD = 2954 {cari menggunakan excel dengan rumus =var(120,100,70,120,60,220,75)}
jika kelas yes: rata-rata=90
                     SD = 25 


jawab:
1. P(yes)=3/10
cari semua komponen P(X|Yes)
P(Home Owner = No| Yes)=1
P(Marital Status = Married| Yes)=0
P(Annual Income = $120K| Yes)=0.0388
P(X|Yes)=P(Home Owner = No| Yes) x P(Marital Status = Married| Yes) x P(Annual Income = $120K| Yes) = 1*0*0.0388=0


2. P(no) = 7/10
cari semua komponen P(X|No)
P(Home Owner = No| No)=4/7
P(Marital Status = MarriedNo)=4/7
P(Annual Income = $120K|No)=0.0073
P(X|No)=P(Home Owner = No| No) * P(Marital Status = MarriedNo) * P(Annual Income = $120K|No)=4/7*4/7*0.0073=0.0024

3. karena P(X|No)>P(X|Yes) maka data tersebut diklasifikasikan ke kelas no

untuk contoh soal yang data kontinunya tetap menggunakan perhitungan data diskret dapat membaca blog ini.

Tuesday, March 31, 2015

Neighbour Joining [AlgorBio]

Neighbour join (NJ) merupakan sebuah metode dalam bioinformati yang digunakan untuk mengklusterkan secara Bottom-Up data-data dari sebuah DNA.
Algoritma NJ dapat dituliskan seperti berikut:
1. Inisialisasi
2. Pilih node i,j yang minimum Dij*
    gabungkan node i,j menjadi node k
    Dij*=Dij-(R1+R2)
    Ri= rata-rata jarak antara node i dan rest dari node j
    Rj= rata-rata jarak antara node j dan rest dari node i
3. Gambar node k pada phylogenic tree
    d(km)=1/2 (d(im)+d(jm)+d(ij))
    dan hubungkan k ke i dan j dengan
       d(ik)= 1/2 (d(ij)+Ri-Rj)
       d(jk)= 1/2 (d(ij)-Ri+Rj)

contoh soal:
seq1: AGCAG
seq2: AGTCG
seq3: ACATG
seq4: AGTAC

dari seguence diatas dapat kita dapatkan tabel berikut yang merupakan proses inisialisasi yang sama dengan progresive method.





Dij*=Dij-(R1+R2)
D12*=0.4-0.47-0.47=-0.54
D13*=0.6-0.47-0.67=-0.54
D14*=0.4-0.47-0.53=-0.60 [min] (selected)
D23*=0.6-0.47-0.67=-0.54
D24*=0.4-0.47-0.53=-0.60 [min]
D34*=0.8-0.67-0.67=-0.40

karena yang kita pillih D14* maka setelah itu kita mencari jarak antara node 1 dan 4 dengan node baru 5, dengan cara:
akan kita gabungkan node 1 dan node 4 menjadi node 5:
Dkm=1/2 (Dim+Djm-Dij)
D52=1/2 (D12+D42-D14)=1/2 (0.4+0.4-0.4)=0.4
D53=1/2 (D13+D43-D14)=1/2 (0.6+0.8-0.4)=0.5

D52*=0,2-0.35-0.40=-0.55 (selected)
D53*=0.5-0.35-0.55=-0.40
D23*=0.6-0.04-0.55=-0.35

D63=1/2 (D53+D23-D25)=1/2 (0.5+0.6-0.2)=0.35