Anda di halaman 1dari 10

Slide 3

Kuliah diawali dengan mengulang secara sekilas materi kuliah yang telah diberikan dari
pertemuan pertama hingga pertemuan sebelum kuliah ini. Semua materi kuliah berhubungan
dengan agent (intelligent agent) yang menjadi dasar pemikiran pada kuliah inteligensi buatan.
Pada pertemuan sebelumnya mahasiswa dimotivasi dalam pemecahan masalah yang mana kita
dapat memilih agen untuk mencoba memikirkan apa yang harus dilakukan di dunia ini, dan
pemecahan masalah akan menjadi langkah untuk melakukannya.
Setelah kita mengetahui konsep searching dan dasar logic, maka kita seharusnya sudah
memahami bagaimana suatu agent benar-benar telah mengetahui bagaimana berperilaku dalam
kehidupan nyata (dan ini semua akan masuk dalam keadaan deterministik).
Dalam keadaan deterministik, diasumsikan bahwa setiap tindakan akan berimbas pada satu
kemungkinan hasil. Sedangkan pada materi ini, kita akan mencoba berfikir bagaimana jadinya
ketika asumsi terhadap deterministik adalah hilang.

Slide 5
Pada planning, idenya adalah bahwa kita diberikan beberapa deskripsi dari kondisi awal (starting
state), kondisi akhir/tujuan (goal state), serta sejumlah aksi yang mungkin yang mana agent
dapat lakukan.
Hal ini sudah cukup jelas bahwa kita dapat mengganggap ini seperti permasalahan “Problem
Solving”. Yang mana ketika kita berbicara tentang pemecahan masalah maka kita akan diberi
kondisi awal, rangkaian tindakan yang bisa kita lakukan, dan kita mencari rencana singkat yang
baik (efisien) untuk mencapai kondisi tujuan. Sehingga permasalahan perencanaan dapat dilihat
sebagai masalah “Problem Solving”, walaupun mungkin hal tersebut bukanlah suatu
pandangan/pemahaman terbaik yang harus kita terima mentah-mentah.
Hanya untuk latihan, coba kita bayangkan kita berada dalam permainan ini. Tujuannya adalah
untuk mencapai keadaan C, tapi yang hanya kita ketahui adalah bahwa agen berada di barisan
terbawah (kondisi awal), maka akan ada salah satu kondisi dimana kondisi awal adalah I atau J
atau K atau L.
Kita bisa mencoba pemecahan masalah ini dengan menggunakan pencarian pemecahan masalah
biasa, namun simpul yang kita gunakan akan mewakili beberapa kondisi, bukan lagi kondisi
tunggal.
Agen dimulai dari simpul yang berhubungan dengan state (I, J, K, L) karena tidak tahu persis
dimana memulainya. Sekarang katakanlah bahwa kita bisa bergerak ke utara, selatan, timur,
barat. Namun jika mengalami hambatan dan tepi dari lingkungan agen, ia akan tetap berada di
tempat saat ini.
Ketika kita bergerak ke utara maka state akan berubah ke state (G, J, K, H) kondisi pada kotak J
dan K akan tetap/tidak berpindah karena terhalang oleh kotak hitam.
Sedangkan jika kita bergerak ke timur, maka kita akan mencapai state (J, K, L). Dan kita bisa
lihat bahwa mungkin rencana terpendek adalah pergi ke timur sebanyak tiga kali (sehingga kita
bisa mencapai state L saja), dan kemudian melanjutkan ke utara sampai kita mencapai puncak,
dan kemudian pergi ke barat menuju tujuan.
slide 6
Pada slide sebelumnya, kita dapat memikirkan Planning ketika kita dihadapkan pada kondisi
dimana terdapat ketidak yakinan dari kondisi awal. Namun cara seperti ini sangatlan tidak efisien,
karena hanya untuk mengetahui bagaimana state transition function bekerja pada sekumpulan
keadaan primitif, kita harus melewati setiap keadaan kecil di himpunan state kita, dan
memikirkan bagaimana transisi ke keadaan kecil lainnya.
Maka itu perlu difikirkan cara yang ringkas untuk menggambarkan satu set kondisi yang ada,
maka itu diajukan representasi logika. Kita bisa menggambarkan set state (I,J,K,L) dengan
mengatakan, proposisi “Baris Bawah" dan Anda mungkin bisa mengatakannya, kalau “Baris
Bawah", dan tidak ada hambatan di atas kita, maka kita akan berada di “Atasnya Baris Bawah",
atau semacamnya.
Mungkin bagi kita memformulasikan permasalahan planning menggunakan deskripsi logika,
yang mengartikan bahwa kita tidak perlu menyebutkan serangkaian state tersebut namun cukup
dengan memberikan deskripsi logis tentang rangkaian state. Idenya adalah formula logis
digunakan sebagai pengganti untuk semua interpretasi yang ada.
Sehingga hal ini lah yang membawa kita ke pendekatan pertama dari planning. Ide ini sifatnya
klasik dan tentunya sudah kita pelajari, walaupun penggambaran permasalah menjadi tidak
praktis, Idenya yaitu menggunakan First-Order-Logic.
Kita harus mencari cara untuk berbicara tentang kondisi dari lingkungan asli, kondisi awal,
kondisi tujuan, dan aksi dalam pembahasaan FOL dan kemudian menggunakan mekanisme teori
pembuktian untuk menemukan sebuah rencana.

Slide 7
Dalam situasi kalkulus ide utamanya adalah kita akan “Reify = Memperjelas” situasi. Untuk
memperjelas sesuatu situasi adalah dengan memperlakukannya seolah-olah itu adalah sebuah
objek. Sehingga kita akan memiliki variabel dan konstanta dalam bahasa logis, yang mana
nilainya berkisar pada situasi atau keadaan real yang mungkin.
Untuk setiap proposisi yang dapat mengubah nilai kebenarannya dalam situasi yang berbeda, kita
akan menambahkan argumen tambahan, yaitu situasi dimana kita menyatakan bahwa proposisi
tersebut berlaku. Sebagai contoh Result (MoveNorth, S1) = S6
Sekarang kita perlu menuliskan apa yang kita ketahui tentang S6 karena sesuai fakta bahwa kita
mendapatkan S6 dengan bergerak ke utara dari S1. Kita bisa menggambarkan dinamika state dari
keadaan real dengan menggunakan effect axioms.
Goal State: menemukan situasi yang mana agent berada di rumah dan menyimpan emas.
Intial State: agent berada di rumah, dan tidak menyimpan emas, tetapi menyimpan tali, dan
selanjutnya.

Slide 8
Kita akan menggunakan teorema pembuktian dalam menemukan sebuah plan
Kita bisa menuliskan tujuannya entah bagaimana sebagai pernyataan logika. Dan pekerjaan
utama sebenarnya bukan membuktikan bahwa situasinya ada, tugas sebenarnya adalah
bagaimana kita mendapatkannya.
Selanjutnya kita bisa menyandikan pengetahuan yang kita miliki dari kondisi real, tentang situasi
awal karena beberapa pernyataan logika mengenai situasi tertentu.
Selanjutnya kita bisa memunculkan sebuah plan, yang berikutnya kita dapat menggunakan
teorema pembuktian pada deskripsi kondisi awal, efek aksioma, dan kondisi tujuan.

Slide 9
Telah dibuktikan bahwa jika ada sejumlah mahasiswa diminta menuliskan semua aksioma untuk
penyelesaian Wumpus World dan menggunakan teorema pembuktian. Dan tidak ada masalah
dalam menemukan sebuah plan yang dapat mencapai kondisi tujuan. Namun kemudahan ini tidak
dapat pertahankan ketika dihadapkan pada permasalahan dalam banyak perusahaan.
Sehingga dapat ditarik kesimpulan bahwa walaupun kita memiliki solusi yang sangat umum,
menerapkannya pada masalah tertentu seringkali sangat tidak efisien, karena kita tidak
memanfaatkan sifat khusus dari masalah tertentu yang mungkin akan mempermudah
menyelesaikan.
Kita akan menggunakan jenis yang sangat terbatas dari representasi logika dalam membangun
perencana, dan kita akan memanfaatkan beberapa sifat khusus dari masalah planning untuk
melakukannya dengan cukup efisien. Lantas, apa sifat khusus perencanaan yang bisa kita
manfaatkan?
Satu hal yang bisa kita lakukan adalah memperjelas hubungan antara deskripsi aksi dan deskripsi
state. Jika kita memiliki sebuah aksioma yang mengatakan "Sebagai hasil dari melakukan
tindakan Grab, kita dapat membuat Holding." dan kami mencoba untuk memuaskan pernyataan
dari state tujuan yang mana “Holding" merupakan bagian dari tujuan, maka masuk akal untuk
mempertimbangkan untuk melakukan tindakan “Grab". Jadi, daripada hanya mencoba semua
tindakan dan mencari secara membabi buta melalui ruang pencarian, Kita bisa memandangnya,
“Jika kita menginginkan kondisi Holding pada akhirnya, maka akan lebih baik membiarkan kita
mencoba mengambil aksi yang akan mewujudkannya “. Sehingga, kita bisa melihat hubungan
ini, dan itu benar-benar dapat memfokuskan pencarian kita.
Hal lain yang juga sangat penting dan perlu diperhatikan yaitu apakah kita dapat menambahkan
tindakan pada rencana kita dalam urutan apapun. Sebagai contoh, jika kita berencana untuk
berlibur ke Malang, kita pastinya merencanakan akan berangkat kapan, naik pesawat apa, akan
menginap di hotel berapa dan liburan sampai berapa hari kedepan. Perencanaan yang kita lakukan
pasti tidak akan sangat real dan harus kita lakukan ketika kita berlibur nantinya. Contoh kita tidak
akan sampai merencanakan naik taksi apa, warna apa, siapa supirnya, lewat jalan mana ketika
menuju hotel, dihotel ingin kamar dilantai berapa, dll. Sehingga akan jauh lebih mudah membuat
plan dari tengah, atau dari akhir, ataupun dari sisi lainnya bergantung pada kendala yang mungkin
nanti akan dihadapi.
Hal lain yang terkadang bisa kita manfaatkan adalah kebebasan dari sub-problem yang ada. Jika
saya memiliki tujuan untuk berada di rumah malam ini dengan satu liter susu dan cucian (pakaian)
yang kering, saya dapat mencoba menyelesaikan bagian satu liter susu dan bagian cucian yang
kering kira-kira secara independen dan mengumpulkannya bersama-sama. Jadi, sejauh kita bisa
menguraikan masalah dan memecahkan masalah secara individu kecil dan merangkai solusinya
kembali, kita sering bisa mendapatkan proses perencanaan yang lebih efisien.
Kita juga akan mengurangi jenis sesuatu yang dapat kita representasikan dari dunia nyata. Hal
tersebut bertujuan untuk mendapatkan algoritma planning yang sangat kongkrit. Kita akan sangat
membatasi bahasa yang dapat kita gunakan untuk merepresentasikan tentang keadaaan tujuan,
suatu keadaan dan aksi yang dapat diambil.

Slide 10
STRIPS adalah nama sistem perencanaan pertama nyata yang dibangun oleh seseorang. STRIPS
merupakan Stanford Research Institute Problem Solver
Dalam penelitiannya mereka mempunyai robot bernama Shakey, robot nyata yang berkeliling
dari kamar ke kamar, dan mendorong kotak dari sini ke sana. Lingkungan yang diberikan adalah
sangat sederhana tanpa ada penghalang.
Mereka membangun perencana ini, sehingga Shakey bisa mengetahui bagaimana mencapai
tujuan dengan pergi dari kamar ke kamar, atau mendorong kotak-kotak di sekitar.
Komputer yang digunakan sudah sangat tua yang hampir tidak ada memori, jadi mereka harus
membuatnya seefisien mungkin.
Jadi, kita bisa merepresentasikan state dari real world sebagai gabungan dari literal “Ground”.
Ingat, “Ground" berarti tidak ada variabel. Dan “literal” bisa menjadi positif atau negatif. Jadi,
bisa dibilang, "Robot Di Room3" dan “Tutup door6" dan seterusnya.
Tapi kita tidak pernah atau perlu mengatakan apakah Pintu 1 terbuka atau tertutup (yang
mengartikan Pintu 1 bisa dalam kedua kondisi tersebut). Dan ketika kita membuat planning, maka
planning yang terbuat akan berhasil dalam kedua kondisi tersebut.
Tujuannya juga merupakan gabungan dari literal, tapi mereka diizinkan untuk memiliki variabel.
Anda bisa mengatakan sesuatu seperti "Saya ingin berada di ruangan tempat charger berada." Itu
bisa jadi tujuan Anda.
Dan mungkin Anda akan membuat itu benar dengan pergi ke ruangan di mana charger itu atau
mungkin Anda akan benar-benar memindahkan charger ke ruangan lain.
Aksi terkadang juga disebut operator serta memiliki nama.
Precondition/Prasyarat juga merupakan gabungan dari literal. Prasyarat adalah sesuatu yang
harus terpenuhi agar operator dapat berhasil diterapkan. Jadi, untuk pergi dari X ke Y, maka Kita
harus berada di X, dan harus ada jalan dari X ke Y.
Dan kemudian kita memiliki "efek" yang merupakan gabungan dari literal. Dalam contoh kita,
efeknya adalah Kita berada di Y dan tidak di X. Efeknya terkadang dikenal sebagai "post-
conditions". Dalam STRIPS asli, efek positifnya dikenal sebagai daftar tambahan dan efek
negatif sebagai daftar hapus.
Diasumsikan tidak ada pengambilan kesimpulan yang berdasarkan pada hubungan diantara
predikat (hanya dilihat kesamaan dgn inputan)

Slide 11
Aksi “Buy” memiliki dua argumen yaitu produk X yang dibeli dan Toko. Aksi ini memiliki
prasyarat bahwa kita harus berada di Toko dan Toko tersebut menjual produk X yang kita
inginkan. Efeknya adalah kita memiliki produk X. Diasumsikan bahwa kita masih di dalam Toko.
Aksi “Go” sama seperti yang telah kita bahas sebelumnya. Namun ada sedikit perbedaan yakni
kita tidak memberikan prasyarat apakah ada jalan diantara X dan Y, yang cukup diprasyaratkan
adalah sebelum kita melakukan Go(X,Y) maka kita harus sudah berada di X. Dan efeknya adalah
kita berada di Y dan tidak berada lg di X.
Kondisi Tujuan kita adalah memiliki Susu, Pisang, dan Bor
Kondisi awalnya adalah Kita berada di Rumah, kita mengetahui bahwa SuperMarket menjual
Susu dan Pisang, serta toko HardWare menjual Bor.

Slide 12
Sekarang, jika kita kembali memikirkan planning sebagai pemecahan masalah, maka kita
mungkin berkata, "Baiklah, kita akan mulai dalam keadaan seperti ini." kita akan menemukan
deskripsi logis untuk keadaan awal, yang benar-benar merupakan penggambaran dari set of state.
Kemudian, kita bisa mempertimbangkan untuk menerapkan setiap operator yang mungkin. Jadi
dari Rumah, kita bisa pergi ke lokasi yang mungkin ada di domain kita. Mungkin ada banyak
tempat yang bisa kita kunjungi, yang akan menghasilkan faktor bercabang besar. Dan kemudian
kita bisa membeli barang. Pikirkan semua hal yang bisa kita beli. Ada kemungkinan jumlah yang
luar biasa dari sesuatu yang bisa kita beli. Jadi, faktor percabangan, bila kita memiliki operator
dengan variabel di dalamnya adalah besar, dan jika kita mencoba search forward, kita akan
mengalami masalah yang mengerikan. Perencana yang mencari langsung ke depan disebut
“progression planners.“
Tapi, itu tidak bekerja dengan baik karena kita tidak dapat memanfaatkan pengetahuan apa yang
harus kita dapatkan dan sebagainya. Metode sebelumnya tidak terlalu terarah. sehingga, sehingga
kita perlu membuat perencana saya lebih terarah. Mari kita mundur dari state tujuan (regression),
daripada melaju ke depan dari state awal (progression).
Namun cara regression juga bukan berarti algoritma yang paling tepat, coba bayangkan setelah
kita tahu harus kemana ketika ingin mendapatkan Susu, maka tugas kita berikutnya adalah
bagaimana kita mendapatkan Pisang dan Bor. Jika kita mengambil random, dan ternyata tugas
mencari bagaimana mendapatkan bor lebih dulu dilakukan, sedangkan bor terdapat pada toko
yang berebda, maka planner akan memberikan hasil yang membuat kita lebih dalam proses
perjalanan yang mana kita pada awalnya ke SW, lalu ke HW, dan kembali lg ke SW untuk
membeli pisang.
Kita akan melihat bahwa jika kita mencoba membangun perencana berdasarkan prinsip ini, sekali
lagi kita akan mendapat masalah karena sulit untuk melihat, apa yang harus dilakukan
selanjutnya? bagaimana seharusnya mereka melakukannya? Dll.

Slide 13
Keduanya baik itu Perencana Progression dan Regression merencanakan dalam ruang situasi /
Situation Space. Hal ini mirip dengan ruang state tetapi pada setiap nodenya menggambarkan set
of state. Kita bergerak dalam ruang set of state. Serta aksi yang kita ambil akan mengubah set of
state yang mana kita berada di dalamnya.
Pada plan space, idenya adalah kita memulai dengan rencana yang kosong, dan kemudian ada
operasi yang dapat kita lakukan pada sebuah rencana, dan kita ingin melakukan operasi pada
rencana kita sampai kita mendapatkan sebuah rencana yang memenuhi kondisi tujuan.
Kita dapat memisahkan urutan langkah yang bisa kita lakukan dalam sebuah plan, dengan urutan
plan yang akan kita eksekusi dalam real world.
Plan space search juga membiarkan kita mengambil apa yang biasanya disebut "pendekatan
komitmen minimal". Dengan "komitmen minimal", yang kita maksud adalah bahwa kita tidak
memutuskan rincian tertentu dalam rencana kita, seperti apa yang harus disimpan untuk
mendapatkan susu, sampai kita dipaksa melakukannya. Sehingga pada intinya adalah yang
pertama kali harus difikirkan adalah apa aksi yang harus diambil, sebelum berfikir apa urutan
yang akan dilakukan.
Plan-space search juga memungkinkan kita melakukan analisis means-end. Artinya, kita bisa
melihat apa rencana yang coba dilakukan, lihatlah sarana/harta yang kita miliki, dan cobalah
mencocokkannya semua hal tersebut.

Slide 14
POP merupakan jenis obyek yang rumit, yang mana terdiri dari 4 bagian:
Set of steps : step merupakan operator yang mana mungkin saja berupa pengisian variabel dengan
konstanta.
Bagian kedua adalah seperangkat batasan urutan diantara step. Hal ini mengatakan bahwa
langkah I harus datang sebelum langkah J. Ini mungkin hanya urutan parsial (yaitu, ia tidak harus
menentukan apakah J datang sebelum K atau K datang sebelum J), tapi itu harus konsisten
(sehingga tidak dapat dikatakan bahwa J datang sebelum K dan K datang sebelum J).
Lalu ada satu set batasan yang mengikat variabel. Hal ini memiliki bentuk "Beberapa variabel
sama dengan beberapa nilai." V adalah variabel di salah satu langkah, dan X adalah variabel
konstan atau variabel lainnya. Jadi, misalnya, jika Anda mencoba membuat kue, dan Anda harus
memiliki telur dan tepung dalam mangkuk yang sama.
Dan hal terakhir adalah set of causal link yang mana mungkin meberikan tautan “Langkah I
memenuhi prasyarat C untuk ke langkah J”. Jadi, jika saya harus punya uang untuk membeli
pisang, mungkin saya akan melakukan tindakan "pergi ke bank“. Maka aksi “Pergi ke bank”
adalah hal untuk mencapai “prasyarat” yang memungkinkan saya untuk “Membeli Pisang”.
Jadi, cara kita melakukan perencanaan adalah: kita menambahkan tindakan yang kita harapkan
akan mencapai kedua bagian tujuan kita, atau pra-kondisi tindakan kita yang lain. Dan untuk
melacak prasyarat apa yang telah kita jaga, kita menghubungkannya sehingga kita dapat
mengingat mengapa kita melakukan berbagai hal.

Slide 15
Cara kita menginisialisasi proses perencanaan adalah memulai dengan rencana yang terlihat
seperti ini.
Initial plan memiliki dua step dasar, yaitu start dan finish.
Kita membatasi bahwa start step harus terjadi sebelum finish step.
Start adalah operator khusus yang tidak memiliki prasyarat dan memiliki efek sebagai kondisi
awal dari masalah.
Dan ada aksi final khusus, yaitu “Finish", yang memiliki kondisi prasyarat kondisi tujuan dan
tidak terdapat efeknya.

Slide 16
Dan sekarang kita akan memperbaiki plan dengan menambahkan langkah-langkah, batasan
urutan, batasan yang mengikat variabel, dan causal link agar dapat terbentuk rencana yang
memuaskan. Berikut adalah seperangkat kondisi formal pada sebuah rencana yang membuatnya
menjadi solusi, yang membuatnya menjadi rencana yang complete dan correct.
Sebuah rencana lengkap jika setiap prasyarat setiap langkah diraih oleh beberapa langkah
lainnya. Jadi pada dasarnya, jika kita melihat Initial Plan sebelumnya, kita melihat ada daftar
prasyarat untuk langkah terakhir, jadi apa yang harus kita lakukan adalah menambahkan langkah-
langkah lain untuk mencapai semua prasyarat langkah terakhir, dan juga prasyarat dari langkah-
langkah lain yang telah kami tambahkan.
Agar plan menjadi konsisten, cukup untuk batasan urutan agar menjadi konsisten (kita tidak dapat
memiliki I sebelum J dan J sebelum I) serta untuk batasan yang mengikat variabel agar konsisten
(kita tidak membutuhkan dua konstanta menjadi sama).

Slide 19
Mari kita luangkan beberapa menit untuk melakukan contoh rencana untuk kasus susu, sangat
informal, dan lain kali kita akan melalui algoritma dan melakukannya lagi, lebih formal.
Inilah rencana awal kita. Dengan langkah awal dan akhir. Kita akan menarik batasan urutan
dengan menggunakan garis merah putus-putus. Kita tempatkan “efek” dari langkah pada bagian
bawahnya, dan “prasyarat” dari sebuah langkah pada bagian atasnya.

Slide 20
Langkah selanjutnya adalah kita fokus untuk mendapatkan susu. Untuk mendapatkan susu maka
kita harus mengambil aksi Buy(susu,x1). Kita akan mulai dengan menambahkan sebuah langkah
yang mengatakan bahwa kita akan pergi dengan susu dari suatu tempat bernama x1. Ini memiliki
prasyarat yang mana kita harus berada pada (x1) dan kita mengetahui bahwa x1 menjual susu;
dan itu tentunya efek nya adalah mendapatkan susu.

Slide 21
Sekarang, kita bisa menambahkan causal-link berwarna biru yang mengatakan bahwa kita akan
menggunakan efek Have(M) dari aksi Buy(M,x1) untuk memenuhi prekondisi Have(M) pada
tahap akhir.
Slide 22
Setiap causal-link juga menggambarkan ordering-link, jadi kita juga akan menambahkan
ordering-link antara langkah ini dan finish. Dan kita juga harus meminta agar langkah ini terjadi
setelah start.
Slide 23
Sekarang, fokus pada Have(B) pada finish. Untuk mendapatkan B/Pisang maka kita harus
mengambil aksi Beli(B,x2). Kami menambahkan satu langkah untuk membeli pisang di lokasi
x2, termasuk prasyarat dan efeknya.
Slide 24
Sekarang kita menambahkan causal-link dan batasan, sama seperti yang kita lakukan untuk
langkah pembelian susu.

Slide 25
Sekarang, hal yang relatif mudah dilakukan adalah untuk memenuhi Sells(x1, M) dengan
membatasi X1 untuk menjadi SuperMarket. Kita menambahkan batasan yang mengikat variabel,
dengan mengatakan bahwa X1 sama dengan SuperMarket. Dan itu memungkinkan kita untuk
menempatkan Causal-Link antara Sells(SM, M) pada efek dari start, dengan prasyarat dari
Buy(M,X1).

Slide 26
Demikian pula, kita bisa memuaskan Sells(x2,B) dengan menambahkan batasan variabel yang
mengikat bahwa x2 harus menjadi supermarket, dan menambahkan Causal-Link.

Slide 27
Sekarang, satu-satunya prasyarat yang tetap belum terpenuhi adalah at(x1) dan at(x2). Yang mana
kita telah ketahui bahwa nilai x1 dan x2 dibatasi sebagai supermarket. Maka itu kita harus
menambahkan langkah untuk pergi ke supermarket.

Slide 28
Efek dari at(SM) dapat digunakan untuk memenuhi kedua prasyarat tersebut, jadi kita
menambahkan causal-link antara prekondisi dari dua operasi Buy dengan efek dari operasi Go
dan juga ordering-link.
Slide 29
Dan kita menambahkan ordering-link lain untuk memaksakan langkah Go setelah Start.
Slide 30
Sekarang, prasyarat At(x3) dapat dipenuhi dengan menambahkan batasan yang mengikat variabel
untuk memaksa x3 berada di Home.

Slide 31
Kita bisa menambahkan causal-link dari efek pada Start ke prasyarat dari Go, dan kita sudah
selesai!
Jika rencananya sudah selesai, sesuai dengan definisi yang kita lihat di atas. Namun ordering-
link tidak mewakili urutan parsial, maka total urutan langkah-langkah yang konsisten dengan
langkah-langkah tersebut akan menjadi correct plan yang memenuhi semua tujuan.

Slide 32
Hal terakhir yang harus kita lakukan adalah mengatasi ancaman bahwa elemen yang baru saja
kita tambahkan ke rencana tersebut mungkin telah memaksakan. Ingat bahwa langkah S
mengancam causal-link di mana Si memenuhi batasan c untuk Sj, jika dan hanya jika tidak ada
C yang merupakan efek dari S dan S yang mungkin terjadi antara Si dan Sj. Artinya, S mungkin
bisa membatalkan pekerjaan yang Si lakukan untuk memenuhi c, dan karena itu membuat tidak
mungkin untuk mengeksekusi Sj saat kita membutuhkannya nanti.
Secara umum, cara untuk mengatasi ancaman adalah mempromosikan atau menurunkan S.
Promote S mengartikan bahwa mengharuskannya dilakukan lebih dulu sebelum Si dan Sj.
Kemudian, bahkan jika itu membuat c false, itu tidak masalah, karena Si akan membuat c menjadi
true lagi.
Demote berarti mengharuskan S terjadi setelah Si dan Sj. Lalu, tidak apa-apa membuat c salah
karena kita sudah memanfaatkan c yang benar untuk mengeksekusi Sj.
Tentu saja, mungkin saja kita sudah memiliki batasan urutan yang membuat tidak mungkin
mempromosikan atau menurunkan S serta menjaga konsistensi. Jadi, jika rencana yang
dihasilkan tidak konsisten, kita gagal. Jika promote gagal, kita akan kembali dan mencoba
penurunan S. Jika itu gagal, maka kita harus kembali ke atas dan mencoba cara yang berbeda
untuk memenuhi c.

Slide 34
Catatan: Causal-Link langsung digunakan untuk menggambarkan ordering-link
Pada awalnya lakukan proses seperti halnya yang telah disimulasikan sebelumnya
Selanjutnya kita akan menggunakan GO(HDW) untuk memenuhi At(HDW). Dan kita akan
menggunakan GO(SM) untuk memenuhi At(SM).
Apakah ini sudah lengkap? itu belum lengkap, karena kita belum memenuhi pada prasyarat
langkah Go. Jadi, mari kita mulai dengan mengatasi prasyarat At(x1) dari langkah. Kita bisa
memuaskannya dengan menggunakan efek At (Home) dari langkah awal.
Namun coba amati link dari At(Home) ke At(x1). Itu sekarang terancam oleh langkah Go(SM).
Kita dapat melihat ancaman tersebut dengan memperhatikan bahwa Go(SM) tidak berada
At(Home) sebagai efek dari GO(HWD), dan tidak ada batasan ordering untuk mengatasinya
bahwa Go(SM) terjadi setelah Start dan sebelum Go(HDW).
Kita bisa menambahkan satu langkah untuk pulang ke rumah di antara kedua langkah tersebut,
tapi kita bisa lebih efisien jika kita memilih untuk memuaskan At (x2) dengan hasil (Go HDW)
yakni kita mengambil efek At(HDW).

Slide 35
Tapi kita belum selesai! Kita masih memiliki beberapa ancaman untuk diselesaikan. Saat ini tidak
ada yang menghalangi kita untuk langsung ke supermarket setelah kita pergi ke toko peralatan,
tanpa membeli bor. Secara lebih formal, langkah Go(SM) mengancam hubungan Causal-Link
yang membentuk AT(HDW), antara Go(HDW) dan Buy(Drill). Ini karena Go(SM) belum berada
pada at(HDW), dan karena tidak ada ordering constraint.
Kita bisa mencoba mengatasi ancaman tersebut dengan meletakkan Go(SM) sebelum Go(HDW),
tapi kemudian kita memiliki batasan temporal yang tidak konsisten (karena sudah ada causal-link
dari Go(HDW) ke Go(SM)).
Jadi, kita harus membatasi Go(SM) terjadi setelah Buy(Drill). Kita akan menambahkan batasan
temporal (garis putus-putus merah) untuk memastikan hal ini terjadi.

Anda mungkin juga menyukai