Anda di halaman 1dari 11

Ujian Tengah Semester

Kecerdasan Mesin dan Artifisial (CS3243)


Semester: Genap 2009/2010
Sifat: Take Home, Buka Buku, Komputer, Internet

Perhatian !!!

• Anda harus menjawab SENDIRI semua pertanyaan di bawah ini secara jelas dan lengkap.
DILARANG KERAS untuk berkomunikasi, bekerjasama, dan meminta bantuan siapapun.
• Jumlah soal ada dua. Soal pertama bersifat wajib dengan nilai 100 poin dan soal ke dua
adalah bonus yang bersifat opsional dengan nilai 20 poin.
• Gunakan lembar jawaban yang tersedia pada halaman terakhir. Tambahkan Nama dan NIM
anda pada footnote agar bisa ditelusuri jika berkas Anda tercecer. Jawaban diketik
komputer, di-print dengan kualitas baik yang dapat dibaca.
• DILARANG memberikan ralat (menghapus atau menambahkan catatan dengan pena atau
apapun) pada jawaban hasil print-out. Adanya ralat menunjukkan bahwa Anda tidak yakin
dengan jawaban Anda sendiri dan terpengaruh oleh jawaban orang lain. Jawaban yang
sepenuhnya ditulis tangan atau jawaban yang terdapat ralat tidak akan dikoreksi (nilai = 0).
• Lembar pernyataan harus ditandatangani oleh setiap mahasiswa yang bersangkutan.
Jawaban yang tidak ditandatangani tidak akan dikoreksi (nilai = 0).
• Jawaban hasil print-out (lembar soal tidak perlu di-print) dan sudah ditandatangani
dikumpulkan pada
- Program Reguler: hari Selasa 01 Juni 2010 pukul 12.00.
- Program Ekstensi: hari Selasa 01 Juni 2010 pukul 17.00.
• Tempat pengumpulan ditentukan oleh dosen masing-masing. Untuk kelas IF-31-01/02/07
dan IFX-33-01 dikumpulkan di lokernya Suyanto di depan ruang dosen ITP yang terdapat
tanda ”SUO : IN”.
• Mahasiswa yang berhalangan (karena sakit atau hal lain), pengumpulan jawaban boleh
diwakilkan ke orang lain.
• Tidak ada toleransi atas keterlambatan. Berkas ujian yang terlambat pengumpulannya tidak
akan dikoreksi (nilai = 0)
• Periksa secara teliti semua solusi yang Anda buat sebelum di-print dan dikumpulkan.

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 1 of 11
1. Soal ini bersifat wajib dengan nilai 100 poin. Perhatikan kasus dunia balok pada gambar di
bawah ini. Lakukan penelusuran menggunakan gambar dan kalimat untuk menjelaskan
bagaimana metode Goal Stack Planning (GSP) dapat menghasilkan kumpulan operator yang
dapat mengubah kondisi initial menjadi kondisi goal? Sebagai panduan, ingatlah kalimat
berikut ini “Sesuai dengan namanya, GSP bekerja menggunakan sebuah stack dan
berorientasi pada goal state”.

Initial Goal
A
ON(A,B) ∧ B ON(A,B) ∧
ON(C,D) ∧ ON(B,C) ∧
ON(D,E) ∧ C C ON(C,D) ∧
ONTABLE(B) ∧ ON(D,E) ∧
ONTABLE(E) ∧ A D D
ONTABLE(E) ∧
ARMEMPTY ARMEMPTY
B E E

2. Soal ini bersifat opsional dengan nilai 20 poin. Jelaskan secara detail perbedaan antara
metode Goal Stack Planning (GSP) dengan metode Constraint Posting (CP). Berikan
justifikasi/alasan yang kuat mengenai kelebihan dan kekurangan kedua metode.

---o0o--- Please think more ---o0o---

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 2 of 11
Lembar Jawaban UAS
Kecerdasan Mesin dan Artifisial (CS3243)
Semester: Genap 2009/2010

Nama : Dimas Priambada


NIM : 113071112
Kelas : IF 31-03
Pernyataan: Semua jawaban SAYA KERJAKAN SENDIRI tanpa bekerjasama maupun
meminta bantuan siapapun. Saya bersedia diberi nilai E jika pernyataan ini terbukti salah.

Tanda Tangan :

1.

Current State:
ON(A,B) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(B) ^ ONTABLE(E) ^ ARMEMPTY

I. Langkah pertama yang perlu dilakukan Goal Stack Planning (GSP) adalah memasukkan
kondisi-kondisi yang merupakan goal-state ke dalam stack, sehingga diperoleh
Stack:
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 3 of 11
II. Langkah kedua, memasukkan kondisi-kondisi goal state yang belum tercapai ke dalam stack.
Kembali lihat kondisi goal state ketika ada yang belum sama maka diproses dahulu. Kali ini state
yang belum sama yakni ON(B,C).
Stack:
ON(B,C)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

Ketika di ON(B,C), langkah yang dilakukan berupa STACK(B,C). Lalu ditindaklanjuti dengan
Precondition STACK (B,C) yakni CLEAR (C) dan HOLDING (B).
Stack:
HOLDING(B)
CLEAR(C)
HOLDING(B) ^ CLEAR(C)
STACK(B,C)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

III. Langkah ketiga, memeriksa slot paling atas dengan menyesuaikan pada kondisi slot tersebut
dengan berdasarkan daftar PAD. Ketika di HOLDING(B) langkah yang dilakukan PICKUP(B) dengan
Precondition PICKUP (B) yakni ONTABLE(B) ^ CLEAR(B) ^ ARMEMPTY.

Stack:
HOLDING(B) PICKUP(B)
CLEAR(C)
HOLDING(B) ^ CLEAR(C)
STACK(B,C)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

IV. Langkah keempat ini pada CLEAR(B) diganti dengan UNSTACK(A,B)

Stack:

CLEAR(B) Diganti oleh UNSTACK(A,B)


ONTABLE(B)
ARMEMPTY
ONTABLE(B) ^ CLEAR(B) ^ ARMEMPTY
PICKUP(B)
CLEAR(C)
HOLDING(B) ^ CLEAR(C)
STACK(B,C)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

V. Pada langkah kelima, kondisi ON(A,B), CLEAR(A), ARMEMPTY, dan ONTABLE(B)


telah memenuhi current state, maka slot tersebut dipop dan UNSTACK(A,B) dimasukkan ke
Queue karena ketiga precondidition yang terdiri ON (A,B) ^ CLEAR (A) ^ ARMEMPTY
sudah terpenuhi.

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 4 of 11
S t a c:k
O N(A,B) → P O P k a re n a te la h m e m e n u h i c u rre n t s ta te
C L E A(A)R → P O P
A R M E M PT Y → PO P
O N(A,B) ^ C L E A(A)R ^A R M E M PT Y → PO P
U N S T A(A,B)
C K → P O P ke Q ueue
O N T A B(B)L E→ P O P
A R M E M P T Y → d ig a n ti o le h(A) PU TD O W N
O N T A B(B)L E^ C L E A(B)R ^ A R M E M P T Y
P I C K U(B)P
C L E A(C)R
H O L D IN (B)G^ C L E A(C)R
S T A C(B,C)
K
O N(A,B) ^ O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A B(E)
L E^ A R M E M P T Y

Queue:

1. U N STA CK
( A,B)

Kemudian ARMEMPTY tidak memenuhi current state, maka slot tersebut dipop dan ditambahkan
operator yang sesuai untuk mencapai kondisi tersebut yaitu PUTDOWN(A).
Stack :
PUTDOWN (A)
ONTABLE (B) ^ CLEAR (B) ^ ARMEMPTY
PICKUP (B)
CLEAR (C)
HOLDING (B) ^ CLEAR (C)
STACK (B,C)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON (D,E) ^ ONTABLE (E) ^ ARMEMPTY

Kondisi current state pada langkah kelima:

Current State

HOLDING (A) ^ ON (C,D) ^ ON(D,E) ^ ONTABLE (B) ^ ONTABLE (E)

VI. Pada langkah keenam, kondisi HOLDING(A) sudah memenuhi current state, maka slot
tersebut dipop dan PUTDOWN(A) dipop dan dimasukkan ke Queue karena precondition-
nya yaitu HOLDING (A) sudah terpenuhi.

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 5 of 11
S ta c:k
H O L D IN(A)G→ P O P k a re n a te la h m e m e n u h i c u rre n t sta te
PU TD O W (A)N→ P O P d a n d im a su k k a n k e Q u e u e
O N T A B(B) L E^ C L E A(B)
R ^A RM EM PTY
P IC K U(B)P
C L E A(C)
R
H O L D IN(B)G^ C L E A(C)R Queue:
S T A C(B,C)
K
O N(A,B) ^ O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A B(E)L E^ A R M E M P T Y 1. UNSTACK(A,B)
2. PUTDOWN(A)

Kondisi current state pada langkah keenam:


Current State

ON(C,D) ^ ON(D,E) ^ ONTABLE(A) ^ ONTABLE(B) ^ ONTABLE(E) ^ ARMEMPTY

VII. Pada langkah ketujuh ini, rupanya kondisi ONTABLE(B) ^ CLEAR(B) ^ ARMEMPTY
telah memenuhi current state, maka slot tersebut dipop dan PICKUP(B) dipop lalu
dimasukkan ke Queue karena ketiga precondidition yang terdiri ONTABLE(B) ^
CLEAR(B) ^ ARMEMPTY sudah terpenuhi.
Stack:

O N TA B LE (B) ^ C LEA R(B) ^ A R M EM PTY→ PO P


PIC K U P(B) → PO P dan dimasukkan ke Q ueue Queue:
C LE A R(C)
H O LD IN G(B) ^ C LEA R(C) 1. UNSTACK(A,B)
ST A C K(B,C)
O N(A,B) ^ O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N TA B L(E)
E ^ A R M EMPTY
2. PUTDOWN(A)
3. PICKUP(B)

Kondisi current state pada langkah ketujuh:


C u r ren t S ta te

O N(C,D) ^ O N(D,E) ^ O N T A B L(A)E ^ O N T A B L(E)E ^ H O L D IN(B)


G

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 6 of 11
VIII. Pada langkah kedelapan, kondisi CLEAR(C) pada stack telah memenuhi current state pada
langkah ketujuh maka slot tersebut dipop. Kemudian kondisi HOLDING(B) ^ CLEAR(C)
turut pula memenuhi current state pada langkah ketujuh maka slot tersebut dipop. Tidak
hanya itu saja, STACK(B,C) dipop lalu dimasukkan ke Queue karena ketiga
precondidition yang terdiri HOLDING(B) ^ CLEAR(C) sudah terpenuhi

S t a c: k

C L E A(C)R→ P O P Queue:

H O L D (B)I N ^GC L E A(C)R→ P O P 1. UNSTACK(A,B)


S T A C(B,C)
K → P O P d a n d im a s u k k a n k e Q u e u e 2. PUTDOWN(A)
O N(A,B) ^ O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A B(E)L^ EA R M E M P T Y 3. PICKUP(B)
4. STACK(B,C)

Kondisi current state pada langkah kedelapan:

C u r r e n t S ta te

O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A B(A)L ^EO N T A B(E)L^EA R M E M P T Y

IX. Pada langkah kesembilan ini, ON(A,B) sebagai stack teratas yang tidak memenuhi current state
maka langkah yang dilakukan ialah STACK(A,B) dengan precondition berupa HOLDING(A) ^
CLEAR(B).

Stack:
ON(A,B)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

Stack:
HOLDING(A)
CLEAR(B)
HOLDING(A) ^ CLEAR(B)
STACK(A,B)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

X. Pada langkah kesepuluh selanjutnya dilakukan penggantian HOLDING(A) dengan


PICKUP(A) yang preconditionnya terdiri dari ONTABLE(A) ^ CLEAR(A) ^
ARMEMPTY. Dikarenakan ketiga preconditionnya memenuhi current state maka dipop,
lalu pada PICKUP(A) dipop juga dan dimasukkan ke Queue.

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 7 of 11
Stack:
HOLDING(A) → diganti PICKUP(A)
CLEAR(B)
HOLDING(A) ^ CLEAR(B)
STACK(A,B)
ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

S ta ck:
O N T A B (A)
LE→ PO P
C L E A(A)
R → PO P
A R M EM PTY → PO P
O N T A B (A)
L E ^ C L E A(A)
R ^A R M EM PTY → PO P
P IC K U(A)
P → P O P d a n d im a su k k an k e Q u eu e Queue:
C L E A(B)
R
H O L D IN(A)
G ^ C L E A(B)
R 1. UNSTACK(A,B)
S T A C(A,B)
K 2. PUTDOWN(A)
O N(A,B) ^ O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A B (E)
L E^ A R M E M P T Y 3. PICKUP(B)
4. STACK(B,C)
5. PICKUP(A)

Kondisi current state pada langkah kesepuluh:

C u r r e n t S ta te

H O L D (A)
I N ^GO N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A (E)
BLE

XI. Pada langkah kesebelas, lihat kembali kondisi stack terkini, kondisi HOLDING(A) ^
CLEAR(B) ternyata memenuhi current state pada langkah kesepuluh. Dikarenakan kedua
preconditionnya memenuhi current state maka dipop, lalu pada STACK(A,B) dipop juga
dan dimasukkan ke Queue.
Queue:
S t a c: k
1. UNSTACK(A,B)
C L E (B)
A R→ P O P 2. PUTDOWN(A)
H O L D (A)I N^ GC L E A(B)R→ P O P 3. PICKUP(B)
4. STACK(B,C)
S T A (A,B)
C K → P O P d a n d im a s u k k a n k e Q u e u e 5. PICKUP(A)
O N(A,B) ^ O N(B,C) ^ O N(C,D) ^ O N(D,E) ^ O N T A (E)
B L^ AE R M E M P T Y 6. STACK(A,B)

Kondisi current state pada langkah kesebelas:

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 8 of 11
Current State

ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

XII. Pada langkah keduabelas ini slot yang tersedia yaitu ON(A,B) ^ ON(B,C) ^ ON(C,D) ^
ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY. Slot tersebut merupakan slot paling dasar dan
diuji kesamaan antara current state dan goal state yang ternyata sama maka isi slot yang
terakhir tersebut dipop dan pencarian rencana penyelesaian dihentikan seketika.

Stack:

ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

Current State

ON(A,B) ^ ON(B,C) ^ ON(C,D) ^ ON(D,E) ^ ONTABLE(E) ^ ARMEMPTY

Rencana Penyelesaian

1. UNSTACK(A,B)
2. PUTDOWN(A)
3. PICKUP(B)
4. STACK(B,C)
5. PICKUP(A)
6. STACK(A,B)

2. Goal Stack Planning(GSP)


a. Ketika menyelesaikan masalah, GSP memakai sebuah stack guna menampung keadaan-
keadaan (keadaaan goal state (tujuan) dan keadaan-keadaan lain yang mungkin terjadi
selama proses pencarian solusi) dan operator operator yang telah diajukan untuk
memenuhi keadaan-keadaan untuk penyelesaian suatu masalah.

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 9 of 11
b. GSP menjadi tidak efisien ketika kondisi yang belum tercapai yang dipilih untuk
diselesaikan terlebih dahulu bukanlah kondisi yang harus diselesaikan terlebih dahulu.
Selain itu, GSP dianggap tidak efisien pula dalam hal biaya komputasi apabila GSP
menemui jalan buntu saat proses pencarian rencana penyelesaian.
c. Penyelesaian dengan GSP bergantung pada urutan kondisi yang dipilihnya. Apabila
jumlah kemungkinan urutan kondisi adalah 2 faktorial = 2 kemungkinan namun apabila
jumlah kemungkinan urutan kondisi semakin banyak misalkan 15 kondisi atau 90
kondisi, tentu saja jumlah kemungkinan kondisi menjadu tak terhingga.
d. Algoritma GSP

1. Tempatkan selur
e.
2. Masukkan setiap
Kelebihan GSP : metode planning yang paling sederhana dimana hanya menggunakan

stack .
satu stack untuk memanipulasi kondisi sampai ditemukan solusi. Dengan kata lain, GSP
lebih mudah untuk diimplementasikan daripada CP yang agak sulit
pengimplementasiannya karena banyaknya kondisi pengecekan sebelum suatu fungsi
diaplikasikan.
f.

3. Loop
Kekurangan GSP: menghasilkan solusi yang tidak efisien dalam hal biaya komputasi
apabila GSP menemui jalan buntu saat proses pencarian rencana penyelesaian, selain itu
GSP sangat sensitive dalam hal urutan pemasukan kondisi ke dalam stack. Sedangkan CP
bisa menemukan solusi yang lebih efisien dibandingkan GSP.

Keluarkan kon
Constraint Planning (CP)
a. Constraint Planning bekerja secara parallel untuk mencapai kondisi-kondisi pada goal
state (non-linier planning).

Ganti kondisi
b. Memiliki Fungsi Pemandu yang terdiri dari
 Step-addition: Membuat langkah baru.
 Promotion: Menempatkan suatu langkah sebelum langkah lainnya pada rencana
penyelesaian akhir.

Pindahkan op
 Declobering: Menempatkan sebuah langkah s2 (mungkin baru) di antara dua langkah
yang sudah ada, s1 dan s3, mengembalikan prekondisi dari s3 yang dihilangkan (atau
di-clobber) oleh s1.
 Simple-Establishment: Menetapkan sebuah nilai ke dalam sebuah variabel, dalam

Cek apakah c
rangka memastikan precondition untuk beberapa langkah.
 Separation: Mencegah penetapan suatu nilai ke dalam suatu variabel.
c. CP memiliki tiga langkah untuk membangun Rencana Penyelesaian yaitu:
• menganalisa operator-operator (secara bertahap)

If current -sta
• mengurutkan operator-operator (secara parsial)
• membuat variabel antar operator

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 10 of 11
d. Algoritma CP

e. Kelebihan CP : pada umumnya CP menghasilkan rencana penyelesaian yang lebih


efisien dibanding GSP
f. Kekurangan CP : ternyata dibalik kelebihannya berupa lebih efisien, ada risiko yang
harus ditanggung berupa implementasi yang lebih lebih rumit dan biaya komputasi yang
lebih tinggi dibandingkan GSP. Hal ini disebabkan dua hal yaitu:
• Setiap penambahan langkah baru pada CP membutuhkan pengecekan bagaimana
pengaruh pada seluruh langkah yang sudah ada sebelumnya.
• Setiap pengurutan langkah baru pada CP membutuhkan pembandingan dengan
seluruh urutan langkah yang sudah ada sebelumnya.
Penyebab mengapa implementasi CP lebih rumit dibandingkan GSP berikut ini:
• Algoritma untuk fungsi-fungsi pemandu yang diperlukan CP
• Pendefinisian setiap variabel dan struktur data dari setiap variabel yang dibutuhkan CP
untuk mendeskripsikan state, langkah, urutan langkah serta hubungan antar langkah
dan urutan langkah yang dapat mendukung dan didukung fungsi-fungsi pemandu.

Kesimpulannya,
a. Ketika yang dipandang dari segi efisiensi Rencana Penyelesaian yang dihasilkan maka CP
pada umumnya lebih unggul daripada GSP
b. Ketika yang dipandang dari segi mudahnya implementasi maka dalam hal ini GSP lebih
unggul daripada CP.

UAS KMA (CS3243) – Genap 09/10 Nama: Dimas Priambada NIM: 113071112 11 of 11