Anda di halaman 1dari 6

Nama : Egi Andriana

NIM

: 1137050073

Kelas : IF B
UTS Intelegensia Buatan

1. Anas adalah seorang lulusan SD


Anas adalah WNI
Anas dilahirkan pada tahun 1952
Anas mencoba daftar menjadi PNS pada tahun 1985
Anas daftar pada saat umur 33 tahun
Anas dilahirkan pada tahun 1952
Sekarang tahun 2006
Umur Anas sekarang 54 tahun
Semua PNS akan pensiun jika umurnya mencapain 60 tahun
Saat ini Anas belum pensiun
Fakta bahwa Anas belum pensiun adalah pada poin 6 yaitu bahwa PNS akan pensiun pada umur 60
tahun ke atas, sedangkan anas pada saat itu masih berumur 54 tahun
2. -

BFS
BFS (Breadth First Search) juga merupakan salah satu algoritma penelusuran struktur graf /
pohon seperti DFS, namun bedanya BFS melakukan pencarian secara melebar atau per level
pohon. Simpul ditelusuri dari root kemudian menelusuri semua simpul pada setiap level di
bawahnya ( misalnya prioritas penelusuran dari kiri ke kanan ), maka penelusuran dilakukan terus
dari simpul paling kiri ke simpul anak anak tetangganya yang selevel.

Maka, urutan penelusurannya adalah : A B C D E F G H I J K L

Salah satu cara implementasi BFS adalah dengan bantuan struktur data queue. Sama seperti stack
pada DFS, queue yang digunakan adalah queue yang isi elemennya adalah simpul pohon / tree.
Berikut ini adalah urutan algoritmanya :
1.
2.
3.
4.
5.

Masukkan simpul root ke dalam antrian


Periksa antrian terdepan apakah memiliki anak simpul
Jika ya, masukan semua anak simpul ke dalam antrian
Hapus antrian terdepan
Jika antrian kosong berhenti, tapi jika tidak kembali ke langkah dua

Untuk gambar pohon biner di atas, urutan langkah dan kondisi queue pada setiap iterasinya
adalah sebagai berikut :

Contoh diatas menggunakan prioritas untuk memasukkan anak simpul dari sebelah kiri terlebih
dahulu ke dalam queue. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak
simpulnya yaitu B dulu, baru C ke dalam stack. Untuk penelusurannya yang dilihat adalah bagian
yang berwarna biru, yaitu antrian terdepan yang setiap iterasinya memiliki urutan A B C D
E F G H I J K L. Sama seperti DFS lagi pada iterasi ke 13 itu kondisi antrian
sudah
kosong.
-

DFS
DFS (Depth-First-Search) adalah salah satu algoritma penelusuran struktur graf / pohon
berdasarkan kedalaman. Simpul ditelusuri dari root kemudian ke salah satu simpul anaknya (
misalnya prioritas penelusuran berdasarkan anak pertama [simpul sebelah kiri] ), maka
penelusuran dilakukan terus melalui simpul anak pertama dari simpul anak pertama level
sebelumnya hingga mencapai level terdalam.
Setelah sampai di level terdalam, penelusuran akan kembali ke 1 level sebelumnya untuk
menelusuri simpul anak kedua pada pohon biner [simpul sebelah kanan] lalu kembali ke langkah
sebelumnya dengan menelusuri simpul anak pertama lagi sampai level terdalam dan seterusnya.
Jadi, jika ada pohon biner seperti gambar di bawah ini :

Maka, urutan penelusurannya adalah : A B D H E I C F G J K L


Dalam implementasinya DFS dapat diselesaikan dengan cara rekursif atau dengan bantuan
struktur data stack. Kita akan membahas dengan cara yang menggunakan stack. Stack yang
digunakan adalah stack yang isi elemennya adalah simpul pohon / tree. Bagaimana cara kerjanya?
Berikut ini adalah urutan algoritmanya :
1.
2.
3.
4.
5.
6.

Masukkan simpul root ke dalam tumpukan dengan push


Ambil dan simpan isi elemen (berupa simpul pohon) dari tumpukan teratas
Hapus isi stack teratas dengan prosedur pop
Periksa apakah simpul pohon yang disimpan tadi memiliki anak simpul
Jika ya, push semua anak simpul yang dibangkitkan ke dalam stack
Jika tumpukan kosong berhenti, tapi jika tidak kembali ke langkah dua

Jadi, untuk gambar pohon biner di atas urutan langkah dan kondisi stack-nya setiap iterasi adalah:

Contoh diatas menggunakan prioritas untuk memasukkan anak simpul dari sebelah kanan terlebih
dahulu ke dalam stack. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak
simpulnya yaitu C dulu, baru B ke dalam stack. Selain itu bisa dilihat stack teratas (yang diwarna
biru) pada tiap iterasi memiliki urutan A B D H E I C F G J K L. Oiya, pada
iterasi ke 13 itu kondisi stack sudah kosong karena ketika simpul J dibangkitkan tidak ada anak
simpul yang dimasukkan ke stack.
-

Perbedaan kedua algoritma ini


Contoh diatas menggunakan prioritas untuk memasukkan anak simpul dari sebelah kanan terlebih
dahulu ke dalam stack. Sehingga, pada iterasi 2 elemen A dihapus lalu memasukkan anak
simpulnya yaitu C dulu, baru B ke dalam stack. Selain itu bisa dilihat stack teratas (yang diwarna
biru) pada tiap iterasi memiliki urutan A B D H E I C F G J K L. Oiya, pada

iterasi ke 13 itu kondisi stack sudah kosong karena ketika simpul J dibangkitkan tidak ada anak
simpul yang dimasukkan ke stack. simpul tersebut, kemudian dicek satu-satu mulai dari simpul
terdekatnya, seterusnya, sampai menemukan tujuan. Berikut ini pada gambar 4.1 dapat dilihat
perbedaan urutan langkah masing-masing algoritma.

Gambar Urutan jalan algoritma, kiri : DFS, Kanan :BFS

Kedua algoritma ini berjalan dengan waktu yang proporsional dengan sisi-sisi pada graf.
Kompleksitas waktu DFS dan BFS proporsional dengan jumlah simpul ditambah jumlah sisi pada
graf yang ditelusuri (O(|V| + |E|)).
Kompleksitas ruang DFS lebih rendah dari BFS. Kompleksitas ruang tersebut memberikan DFS
metode heuristik yang lebih baik dalam memilih cabang yang mungkin nampak pada jalannya.
Kompleksitas ruangDFS adalah O(h) dimana h adalah panjang dari lintasan sederhana terpanjang
pada graf, sedangkan kompleksitas ruang BFS adalah O( | V | + | E | ).
Terdapat pencarian postorder pada Depth first search, yang memeriksa banyak simpul dan
mendapatkan banyak informasi. Breadth first search tidak memiliki hal ini, karena ia tidak
mempunyai rekursifitas. Hal ini menyebabkan aplikasi dari DFS lebih banyak dibandingkan BFS.
Depth first dan breadth first search keduanya memiliki keuntungan, yang lebih baik bergantung
pada masalahnya. Untuk pohon pencarian , depth first search membutuhkan memori lebih sedikit.
Namun, depth first search dapat terjebak dalam penelusuran yang lama. Depth first bagus ketika
ada banyak kemungkinan solusi, dan kita hanya menginginkan satu saja (tidak peduli yang mana
itu). Breadth first search mungkin membutuhkan lebih banyak memori, tapi tidak akan pernah
terjebak, akan selalu menemukan lintasan terpendek yang pertama. Kemangkusan algoritma
pencarian keduanya akan bergantung pada masalah yang ingin dipecahkan, dan ruang
pencariannya.
BFS biasa direpresentasi dengan Queue, sedangkan DFS dengan Stack. Algoritma DFS tidak
optimal, sedangkan BFS optimal untuk graf tak berbobot. Kedua algorima ini membentuk pohon
merentang yang sangat berguna pada algoritma graf yang lain.
DFS dan BFS dalam aplikasinya dapat mencari hutan merentang, komponen terhubung, lintasan,
dan sirkuit. Sedangkan untuk masing-masingnya, BFS dapat mencari lintasan terpendek, dan DFS
dapat mencari komponen terhubung biconnected. Biconnected berarti graf tak dapat dipisah,
maksudnya jika ada simpul yang akan dihapus, graf akan tetap terhubung.
3. Hill Climbing

Langkah-langkah Hill-Climbing Search


- Bentuk quene satu elemen Q (one-elemen-quene) yang berisi simpul akar
- Sampai quene kosong atau Goal bisa dicapai, tentukan bahwa elemen pertama dari Q adalah
simpul Goal
bila elemen pertama Q adalah simpul Goal do nothing
bila elemen pertama Q, BUKAN simpul Goal, ambil elemen pertama dari Q dan pilihlah
elemen pertama dari anak-anaknya yang memiliki jarak tempuh terpendek ke Goal, jika
ada, tambahkan ke elemen depan Q
jika Goal telah dicapai, nyatakan SUKSE, otherwise nyatakan GAGAL
Permasalahan yang dapat diselesaikan dengan algoritma Hill Climbing adalah Traveling Salesman
Problem.
4. Kasus yang dapat diselesaikan dengan Metode Forward Chaining
Kasus
Sistem Pakar : Penasihat Keuangan
Kasus : Seorang user ingin berkonsultasi apakah tepat jika dia berinvestasi pada stock IBM?
Variabel-variabel yang digunakan :
A = memiliki uang $10.000 untuk investasi
B = berusia < 30 tahun
C = tingkat pendidikan pada level college
D = pendapatan minimum pertahun $40.000
E = investasi pada bidang Sekuritas (Asuransi)
F = investasi pada saham pertumbuhan (growth stock)
G = investasi pada saham IBM
Setiap variabel dapat bernilai TRUE atau FALSE
- Diasumsikan si user (investor) memiliki data:
o Memiliki uang $10.000 (A TRUE)
o Berusia 25 tahun (B TRUE)
- Dia ingin meminta nasihat apakah tepat jika berinvestasi pada IBM stock?
RULES :
R1 : IF seseorang memiliki uang $10.000 untuk berinvestasi AND dia berpendidikan pada level
college THEN dia harus berinvestasi pada bidang sekuritas
R2 : IF seseorang memiliki pendapatan per tahun min $40.000 AND dia berpendidikan pada level
college THEN dia harus berinvestasi pada saham pertumbuhan (growth stocks)
R3 : IF seseorang berusia < 30 tahun AND dia berinvestasi pada bidang sekuritas THEN dia
sebaiknya berinvestasi pada saham pertumbuhan
R4 : IF seseorang berusia <> 22 tahun THEN dia berpendidikan college
R5 : IF seseorang ingin berinvestasi pada saham pertumbuhan THEN saham yang dipilih adalah
saham IBM.
Rule simplification:
- R1: IF A and C, THEN E

- R2: IF D and C, THEN F


- R3: IF B and E, THEN F
- R4: IF B, THEN C
- R5: IF F, THEN G
Solusi dengan Forward Chaining :
- Step I : IF A and C Then E = R1
- Step II : IF B then C A,B,C -> True = R4
- Step III : If A and C then E A,B,C -> True = R2
- Step IV : If B ad E then F A,B,C,E,F -> true = R3
- Step V : if F then G. G->True
kesimpulan : Cocok untuk investasi saham IBM

Anda mungkin juga menyukai