BAB 2 LANDASAN TEORI

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB 2 LANDASAN TEORI"

Transkripsi

1 BAB 2 LANDASAN TEORI 2.1 Constraint Satisfaction Problem Pengertian Dasar Constraint adalah batasan dalam pengertian yang paling sederhana. Dalam kehidupan sehari-hari, mungkin sering didengar kalimat seperti berikut: pekerjaan itu harus selesai sebelum jam 10 malam, seorang guru cuma dapat mengajar maksimal tiga kelas dalam sehari, persegi panjang harus berada di sebelah kiri dari lingkaran. Seseorang dapat melakukan apa saja dalam hal ini kecuali melanggar constraint, misalnya dia dapat menggeser persegi panjang ke mana saja sepanjang persegi panjang itu ada di sebelah kiri lingkaran, dia dapat mengajar kelas sebanyak mungkin asal jangan lebih dari tiga untuk hari apa saja, dia dapat menyelesaikan pekerjaan kapan saja asal sebelum jam 10 malam. Dari kehidupan sehari-hari ini definisi constraint dibuat sedikit lebih ilmiah. Constraint adalah relasi logis di antara beberapa variabel, yang masing-masing mengambil sebuah nilai dalam sebuah domain. Jadi constraint itu membatasi nilai yang dapat diambil oleh variabel tersebut. Dalam contoh guru mengajar kelas sebanyak mungkin asal jangan lebih dari tiga untuk hari apa saja, variabelnya adalah jumlah kelas yang diambil guru, domain-nya adalah bilangan asli, batasannya adalah variabel yang bersangkutan tidak boleh lebih dari tiga. Constraint sering digunakan dalam percakapan sehari-hari jika dilihat definisi paragraf di atas. Umumnya orang jarang menyelesaikan masalah dengan satu constraint seperti dalam contoh di atas, tetapi masalah-masalah yang ada biasanya disertai dengan koleksi constraint yang jarang berkaitan. Hal ini tentu saja memperumit masalah. Sebelumnya penyebutan masalah dengan constraint ini distandarkan. Komunitas internasional memberi nama constraint satisfaction problem kepada masalah dengan constraint ini. Masalah optimalisasi penjadwalan pekerjaan termasuk constraint satisfaction problem, tepat-

2 7 nya constraint satisfaction optimization problem. Perbedaan constraint satisfaction problem dengan constraint satisfaction optimization problem akan dibahas nantinya. Dari sini juga dapat diambil pengertian dari penyelesaian terhadap constraint satisfaction problem. Penyelesaian dari constraint satisfaction problem adalah pemberian nilai terhadap semua variabel dari domain masing-masing variabel yang berkaitan di mana semua constraint dipenuhi. Dalam contoh guru mengajar kelas sebanyak mungkin asal jangan lebih dari tiga untuk hari apa saja, penyelesaian dari constraint satisfaction problem ini adalah variabel yang bersangkutan (jumlah kelas yang diambil guru) mendapat nilai 1 atau 2 atau 3 karena nilai 1 atau 2 atau 3 berada pada domain variabel itu (bilangan asli) dan tidak melanggar constraint (tidak boleh lebih dari tiga). Untuk menyelesaikan masalah constraint satisfaction problem, diperlukan constraint programming. Constraint programming adalah pembelajaran sistem komputasi berdasarkan constraint. Ide utama dari constraint programming ini adalah menyelesaikan masalah dengan menyatakan constraint (kondisi, sifat, kebutuhan) yang harus dipenuhi oleh solusi. Dengan kata lain, constraint programming adalah pendekatan alternatif terhadap pemrograman yang berisikan permodelan suatu masalah sebagai himpunan kebutuhan (constraint) yang berurutan diselesaikan metode umum ataupun spesifik untuk domain (Krzysztof Apt, 2005, p1) Definisi Formal Constraint Satisfaction Problem Berikut adalah definisi formal dari hal-hal yang berhubungan dengan constraint satisfaction problem. Definisi 1. Sebuah Domain berisikan nilai yang dapat diambil oleh sebuah variabel. Sebuah domain itu bersifat khusus untuk sebuah variabel. Jadi masing-masing variabel itu memiliki domain-nya masing-masing. Kesepakatan umum memberi huruf kapital D untuk menyebut domain. Berikut adalah contoh untuk domain dari variabel x. (nilai x) D x

3 8 Domain dalam constraint satisfaction problem seringnya memiliki anggota bilangan bulat. Anggota sebuah domain boleh saja bukan numerik. Hal yang dapat menjadi anggota dari sebuah domain adalah simbol. Contoh anggota domain yang bukan numerik adalah nama bulan dalam satu tahun. Anggota domain-nya adalah Januari, Februari, Maret, April, Mei, Juni, Juli, Agustus, September, Oktober, November, dan Desember. Definisi 2. Sebuah label adalah pemberian nilai dari domain sebuah variabel ke variabel itu. Jika ingin memberi nilai v ke variabel x digunakan notasi <x,v>. Tentunya v D x. Definisi 3. Kumpulan label adalah tupel dari label. Kumpulan label digunakan untuk menyatakan pemberian nilai-nilai ke variabel yang jumlahnya lebih dari satu. Digunakan notasi tupel (<x 1, v 1 ><x 2, v 2 >...<x n, v n >) untuk menyatakan kumpulan label dari pemberian v 1, v 2,..., v n pada x 1, x 2,..., x n. Karena kumpulan label adalah tupel, urutan dari label pada representasi ini menjadi tidak signifikan. Dengan kata lain, (<x, a><y, b><z, c>) dianggap sama seperti kumpulan label (<y, b><x, a><z, c>), (<z, c><x, a><y, b>), dan lain-lain. Di samping itu, adalah penting untuk mengingat bahwa tupel tidak memiliki anggota yang sama. Sebuah constraint pada sebuah himpunan variabel membatasi nilai yang dapat diambil secara bersamaan. Menurut konsep, sebuah constraint dapat dilihat sebagai sebuah himpunan yang memiliki semua kumpulan label yang valid pada variabel yang bersangkutan (Edward Tsang, 1996, p7). Walaupun begitu, pada kenyataannya di lapangan, constraint dapat dinyatakan dengan banyak cara, contohnya, fungsi, pertidaksamaan, matriks, dan lain-lain. Definisi 4.

4 9 Sebuah constraint menurut konsep adalah sebuah himpunan kumpulan label pada variabel yang berkaitan. Digunakan C s untuk menyatakan constraint pada himpunan variabel S. Bila ada masalah, solusi tentu ingin dicari. Dalam constraint satisfaction problem, sebelum solusi constraint satisfaction problem secara matematika dibahas, akan dibahas pengertian pemenuhan constraint. Sebenarnya pemenuhan constraint adalah relasi binari antara sebuah label atau sebuah kumpulan label dengan sebuah constraint. Definisi 5. Jika variabel-variabel dari kumpulan label X adalah sama dengan variabel-variabel dari elemen kumpulan label pada constraint C, maka X memenuhi-constraint C jika dan hanya jika X adalah elemen dari C: memenuhi-constraint( (<x 1, v 1 ><x 2, v 2 >... <x k, v k >), C x1,x 2,...,x k ) (<x 1, v 1 ><x 2, v 2 >... <x k, v k >) C x1,x 2,...,x k Memenuhi constraint juga didefinisikan antara label dan constraint unari. Definisi 6. memenuhi-constraint(<x, v>, C x ) (<x, v>) C x Jika dikatakan kumpulan label L memenuhi constraint C, itu artinya jika C adalah sebuah constraint pada variabel x 1, x 2,..., x k atau subset-nya, maka label pada variabel itu dalam L adalah valid sepanjang C dipenuhi. Untuk contohnya, (<a, 1><b, 2><c, 3><d, 4>) memenuhi constraint C c,d jika dan hanya jika (<c, 3><d, 4>) adalah anggota C c,d : C c,d =..., (<c, 3><d, 4>),... Setelah berbagai hal yang merupakan bagian dari constraint satisfaction problem itu sudah didefinisikan, pekerjaan mendefinisikan constraint satisfaction problem itu menjadi

5 10 mudah. Sebelumnya untuk menyegarkan ingatan, dalam bahasa umum constraint satisfaction problem adalah sebuah masalah dengan sebuah himpunan variabel dengan jumlah berhingga, masing-masing diasosiasikan dengan sebuah domain dengan jumlah anggota berhingga juga, dan sebuah himpunan constraint yang membatasi nilai yang dapat diambil oleh variabel-variabel ini secara bersamaan. Berikut diberikan definisi formal dari constraint satisfaction problem. Definisi 7. Sebuah constraint satisfaction problem adalah sebuah himpunan dengan tiga variabel: (Z, D, C) di mana Z = sebuah himpunan dari variabel-variabel dengan jumlah berhingga x 1, x 2,..., x n ; D = sebuah fungsi yang memetakan setiap variabel pada Z ke sebuah himpunan dari objek-objek: D : Z himpunan objek-objek dengan jumlah berhingga (jenis apa pun). Disebut D xi sebagai himpunan dari objek-objek yang dipetakan dari x i oleh D. Objek-objek ini adalah nilai-nilai yang mungkin bagi x i dan himpunan D xi sebagai domain x i ; C = sebuah himpunan constraint yang berhingga (yang memiliki kemungkinan kosong) atas sebuah subset variabel-variabel di Z. Dengan kata lain, C adalah sebuah himpunan atas kumpulan label. Digunakan csp(p) untuk menyatakan P adalah constraint satisfaction problem. C x1,x 2,...,x k membatasi himpunan kumpulan label yang x 1, x 2,..., dan x k yang dapat diambil secara bersamaan. Sebagai contoh, jika variabel x hanya dapat mengambil nilai a, b dan c, maka ditulis C x = (<x, a>), (<x, b>), (<x, c>). Perhatikan perbedaan antara

6 11 C x dan D x : C x adalah sebuah himpunan kumpulan label sementara D x adalah sebuah himpunan nilai. Nilai x yang mungkin juga harus memenuhi constraint selain C x. Hal itu berarti walaupun <x, a> memenuhi C x, a mungkin bukan nilai yang valid bagi x untuk keseluruhan masalah. Untuk mendapatkan label yang valid, <x, a> mesti memenuhi semua constraint yang mengandung constraint x, contohnya C x,y, C x,y,z, dan lain-lain. Berikut adalah pengertian matematika dari solusi atas constraint satisfaction problem. Definisi 8. Sebuah tupel solusi atas sebuah constraint satisfaction problem adalah kumpulan label yang semua anggotanya memenuhi semua constraint: csp((z, D, C)): x 1, x 2,..., x n Z: v 1 D x1, v 2 D x2,..., v n D xn : tupel solusi((<x 1, v 1 > <x 2, v 2 >... <x n, v n >), (Z, D, C)) ((Z = x 1, x 2,..., x n ) ( C C: memenuhi-constraint((<x 1, v 1 > <x 2, v 2 >... <x n, v n >), C))) Sebuah constraint satisfaction problem disebut memiliki penyelesaian jika memiliki tupel solusi. Tergantung dari kebutuhan aplikasinya, constraint satisfaction problem dapat dikategorikan menjadi beberapa kategori sebagai berikut. 1. Constraint satisfaction problem di mana yang dicari adalah solusi yang mana saja. 2. Constraint satisfaction problem di mana yang dicari adalah semua solusi. 3. Constraint satisfaction problem di mana yang dicari adalah solusi yang optimal, di mana optimal itu didefinisikan menurut kebutuhan pengguna. 2.2 Pencarian Sistematis Generate and Test Sebenarnya siapa pun dapat menyelesaikan constraint satisfaction problem yang mana pun. Caranya gampang sekali. Mencoba semua kombinasi nilai ke variabel-variabel yang

7 12 ada. Cari ini dijamin dapat memperoleh sebuah solusi, jika ada, atau membuktikan bahwa masalah ini tidak bisa dipecahkan. Oleh karena itu, algoritma ini dipastikan dapat mencari semua solusi dengan lengkap. Untuk constraint satisfaction problem yang sederhana tentu saja ini tidak menjadi masalah. Tetapi constraint satisfaction problem adalah masalah NPhard. Artinya seiring dengan meningkatnya jumlah variabel pada constraint satisfaction problem, jumlah kombinasi yang harus dicoba meningkat secara kuadrat. Menghabiskan waktu yang sangat lama untuk mencoba semua kombinasi bahkan walaupun dibantu komputer dengan spesifikasi yang canggih dalam menghitungnya. Jadi kebanyakan waktu dalam riset constraint programming dihabiskan dalam mencari algoritma pencarian yang efisien. Dari riset ini muncul beberapa algoritma pencarian sistematis. Algoritma generate and test memang tidak efisien tapi algoritma ini menjadi dasar dari pengembangan algoritma pencarian sistematis lainnya. Oleh karena itu, untuk memahami algoritma pencarian sistematis lainnya, perlu dipahami terlebih dahulu algoritma generate and test. Sebelum algoritma generate and test ini dibahas, ada baiknya pencarian kombinasi nilai ke variabel-variabel itu divisualisasikan ke dalam bentuk pohon. Visualisasi pencarian kombinasi nilai bagi variabel-variabel akan memudahkan pemahaman algoritma pencarian sistematis yang mana pun dalam constraint programming. Misalnya ada constraint satisfaction problem sebagai berikut. Constraint satisfaction problem ini terdiri dari tiga variabel, a, b, dan c. D a untuk constraint satisfaction problem ini adalah {1, 2, 3} sedangkan D b -nya {1, 2} dan D c -nya {1, 2}. Dalam gambar 2.2, pencarian solusinya mulai dari variabel a. Karena jumlah anggota D a adalah 3 maka ada 3 jalan dari titik yang paling atas (solusinya mulai dicari dari variabel a). Titik yang ditandai dengan mewakili status pencarian. Artinya dalam konteks gambar ini adalah diputuskan (setidaknya untuk sementara) untuk memberi nilai 1 ke variabel a dan sedang mempertimbangkan nilai apakah yang akan diberikan ke variabel b. Algoritma generate and test dapat dibayangkan sebagai algoritma depth-first search yang paling dasar. Dalam konteks gambar pohon ini, algoritmanya dimulai dengan nilai a paling kiri yaitu 1, kemudian nilai b paling kiri yaitu 1, kemudian nilai c paling kiri yaitu 1.

8 13 Gambar 2.1: Ruang pencarian untuk csp(z, D, C) dengan urutan (a, b, c) di mana Z = {a, b, c}, D a = {1, 2, 3}, D b = {1, 2}, dan D c = {1, 2} Setelah semua variabel diberi nilai, barulah algoritma ini menguji apakah kombinasi nilai ini memenuhi semua constraint yang ada. Jika tidak, dicoba nilai variabel yang terakhir kali diberi nilai (c) yang lain, yaitu 2. Ujilah lagi. Jika tidak, karena semua nilai untuk variabel c untuk kumpulan label (<a, 1><b, 1>) sudah dicoba, maka dicoba nilai untuk variabel b berikutnya. Begitu seterusnya. Jumlah kombinasi yang dicoba oleh algoritma ini sama dengan ukuran produk Cartesian semua domain variabel. Seperti yang sudah dijelaskan, algoritma generate and test ini sangat tidak efisien karena algoritma ini menghasilkan banyak pemberian nilai ke variabel-variabel yang ditolak pada fase uji coba. Sebagai tambahan, generator seakan-akan tidak peduli dengan pemberian nilai yang memiliki konflik dan terus memberikan nilai yang lain tanpa memandang konflik. Singkatnya, algoritma ini merupakan generator yang buta. Dapat dipastikan algoritma ini tidak berguna pada hampir semua masalah constraint satisfaction problem karena kebanyakan masalah constraint satisfaction problem bersifat eksponensial. Contohnya pada masalah pewarnaan tiga warna pada n verteks. Ada 3 n kemungkinan pewarnaan. Untuk n lebih besar daripada 20, mengiterasi semua kemungkinan berada di luar jangkau-

9 an (Brian Hayes, 2003, p13). Ada yang dapat dilakukan untuk meningkatkan pendekatan algoritma ini Backtracking Algoritma ini adalah algoritma yang paling umum dan paling banyak dipakai dalam aplikasi penghitungan untuk constraint satisfaction problem. Pada dasarnya backtracking secara perlahan-lahan mencoba mengembangkan kumpulan label yang masih belum lengkap untuk beberapa variabel, menuju ke kumpulan label yang lengkap, dengan secara berulang-ulang memilih nilai bagi variabel yang lain yang konsisten dengan solusi yang masih belum lengkap ini. Algoritma backtracking adalah pendekatan brute-force yang sudah diperbaiki, yang secara sistematik mencari sebuah solusi atas sebuah masalah di antara semua pilihan yang ada (Eitan Gurari, gurari/course/cis680/cis680ch19.html, 1999). Berikut ini adalah alur algoritma ini. Variabel yang diperiksa sekarang diberi nilai tertentu. Label ini diperiksa kecocokannya dengan semua label yang sudah masuk dalam tupel solusi. Jika label ini tidak cocok dengan label-label yang sudah ada di tupel solusi, maka label ini akan ditolak, dan label yang lain akan dicoba. Pada kasus di mana semua label sudah ditolak, label yang masuk ke tupel solusi terakhir kalinya dianggap tidak cocok lagi, dan ditolak. Memeriksa label yang masuk ke tupel solusi terakhir kali disebut backtrack. Proses ini berlanjut sampai semua variabel sudah diberi label atau tidak ada lagi label yang bisa di-backtrack, yakni dalam hal semua label untuk variabel pertama sudah ditolak. Pada kasus terakhir ini, constraint satisfaction problem dianggap tidak memiliki penyelesaian. Pada backtracking ini, tidak ada usaha untuk menggunakan constraint selain pada saat memeriksa kekonsistenan label untuk variabel yang sedang diperiksa dengan kumpulan label yang sudah ada di dalam tupel solusi. Proses ini adalah pencarian yang sangat melelahkan di mana secara sistematis dieksplorasi seluruh ruang pencarian. Proses ini sama dengan generate and test, bersifat lengkap dan semua hasil yang didapatkannya memenuhi

10 15 constraint. Tidak ada usaha untuk mengurangi sebagian ruang pencarian. Contoh berikut akan memperjelas algoritma backtracking dan perbedaannya dengan generate and test. Ada sebuah constraint satisfaction problem yang terdiri dari 3 variabel, yaitu a dengan D a = {1, 2, 3, 4}, b dengan D b = {1, 2, 3, 4}, dan c dengan D c = {4, 5, 6}. Constraint-nya adalah C a,b = a < b dan C a,b,c = a + b = c. Pencarian solusi dimulai dari variabel a. Diberikan nilai 1 untuk a. Pada saat ini label <a, 1> akan diperiksa apakah melanggar constraint yang ada. Tapi karena tidak ada constraint unari untuk a maka pencarian bergerak ke tingkat yang lebih dalam, yaitu tingkat di mana variabel b berada. b diberi nilai 1. Pada saat ini label <b, 1> diperiksa apakah konsisten dengan kumpulan label yang sudah ada dalam tupel solusi (<a, 1>) dan constraint unari untuk b jika ada. Label <b, 1> tidak konsisten dengan kumpulan label (<a, 1>) karena melanggar constraint C a,b. Maka dicari nilai yang lain untuk b, yaitu 2. Seperti biasa label <b, 2> ini akan diperiksa apakah konsisten dengan kumpulan label (<a, 1>). Hasilnya adalah konsisten. Pencarian pun bergerak ke tingkat yang paling dalam, yaitu tingkat di mana variabel c berada. c diberi nilai, yaitu 4. Pada saat ini label <c, 4> akan diperiksa apakah konsisten dengan kumpulan label (<a, 1>,<b, 2>). Ternyata tidak karena melanggar constraint C a,b,c. Maka diberikan nilai yang lain untuk c. Dapat dilihat tidak ada satu pun nilai dari D c yang konsisten dengan kumpulan label (<a, 1>,<b, 2>). Maka pencarian melakukan backtrack seperti yang terlihat pada gambar 2.3. Label terakhir dari kumpulan label (<a, 1>,<b, 2>) yaitu <b, 2> ditolak dan nilai yang lain diberikan untuk b. Dapat dilihat perbedaan backtracking dengan generate and test di mana pencarian dengan metode generate and test memberi nilai ke semua variabel terlebih dahulu sebelum memeriksa apakah pemberian nilai ini memenuhi constraint atau tidak. Sementara itu pencarian dengan metode backtracking memeriksa apakah pemberian nilai itu memenuhi constraint yang ada pada saat setiap variabel diberi nilai.

11 16 Gambar 2.2: Contoh constraint satisfaction problem di mana terjadi backtrack 2.3 Konsistensi Constraint Pengertian Dasar Nama lain konsistensi constraint adalah problem reduction. Intinya adalah berusaha mengurangi masalah dengan harapan masalah yang bersangkutan menjadi lebih mudah diselesaikan. Sekarang ini sudah diketahui teknik konsistensi ini sangat penting dalam penyelesaian constraint satisfaction problem yang berat sehingga semua aplikasi komersial penyelesaian constraint satisfaction problem menggunakan teknik konsistensi ini sebagai langkah dasar (Christian Bessière; Jean-Charles Régin, 2001, p1). Sejarah konsistensi constraint dapat ditelusuri dari peningkatan efisiensi program pengenalan gambar oleh peneliti di intelejensi semu. Pengenalan gambar melibatkan pemberian label kepada semua garis pada gambar dengan cara yang konsisten. Jumlah kombinasi pemberian label pada garis yang memungkinkan dapat menjadi sangat besar, sementara hanya sedikit yang konsisten. Teknik konsistensi dengan efektif membuang semua pemberian nilai yang tidak konsisten pada tahap awal. Dengan demikian memperpendek pencarian untuk pemberian nilai yang konsisten. Untuk mengilustrasikan teknik konsistensi ini akan diberikan sebuah contoh constraint

12 17 Gambar 2.3: Graf menggambarkan constraint satisfaction problem yang sangat sederhana. Anggap A < B adalah constraint antara variabel A dengan domain D A = {3..7} dan variabel B dengan domain D B = {1..5}. Dengan jelas tampak bahwa untuk sebagian nilai pada D A tidak ada nilai yang konsisten di D B yang memenuhi constraint A < B dan sebaliknya. Nilai yang demikian dapat dibuang dari domain yang berkaitan tanpa kehilangan solusi apa pun. Reduksi itu aman. Didapatkan domain yang tereduksi D A = {3, 4} dan D B = {4, 5}. Perhatikan bahwa reduksi ini tidak membuang semua pasangan yang tidak konsisten. Sebagai contoh kumpulan label (<A, 4>,<B, 4>) masih dapat dihasilkan dari domain, tetapi untuk setiap nilai A dari D A adalah mungkin untuk mencari nilai B yang konsisten dan sebaliknya. Walaupun teknik konsistensi ini jarang digunakan sendirian untuk menghasilkan solusi (walaupun dapat), teknik konsistensi ini membantu menyelesaikan constraint satisfaction problem dalam beberapa cara. Teknik konsistensi ini dapat dipakai sebelum pencarian maupun pada saat pencarian. Constraint sering direpresentasikan dengan gambar graf (gambar 2.4) di mana setiap verteks mewakili variabel dan busur antar dua verteks mewakili constraint binari yang mengikat variabel-variabel yang dihubungkan dengan busur tersebut. Constraint unari diwakilkan dengan busur melingkar Konsistensi Verteks Teknik konsistensi yang paling sederhana adalah konsistensi verteks.

13 18 Definisi 9. Sebuah constraint satisfaction problem adalah konsisten secara verteks jika dan hanya jika untuk semua variabel semua nilai di domain-nya memenuhi constraint unari untuk variabel yang bersangkutan. csp((z, D, C)) : konsisten-verteks((z, D, C)) ( x Z : ( v D x : memenuhi-constraint(<x, v>, C x ))) Konsistensi verteks sering disebut juga dengan konsistensi-1. Angka 1 ini mewakili constraint unari yang harus dipenuhi oleh semua variabel. Jika domain D X untuk variabel X memiliki nilai a yang tidak memenuhi constraint unari untuk variabel X, maka pemberian nilai a ke X akan mengakibatkan kegagalan langsung. Oleh karena itu ketidakkonsistenan secara verteks dapat dihapuskan dengan membuang semua nilai dari domain D X untuk variabel X yang tidak memenuhi constraint unari pada X (Roman Barták, 2005, p15) Konsistensi Busur Jika constraint satisfaction problem yang ada sudah menjadi konsisten secara verteks, maka constraint unari dapat dihapus. Setelah konsisten secara verteks, maka pekerjaan yang tersisa adalah memastikan konsisten secara busur. Busur melambangkan constraint binari. Dua variabel dikatakan konsisten secara busur jika untuk setiap nilai dari domain variabel pertama dapat ditemukan nilai dari domain variabel kedua dan label ini memenuhi constraint untuk kedua variabel tersebut. Definisi 10. Pasangan variabel (x, y) sebuah csp(z, D, C) adalah konsisten secara busur jika dan

14 19 hanya jika setiap nilai a di domain x yang memenuhi constraint pada x, ada nilai dari domain y yang memenuhi constraint pada y dan konsisten dengan label <x, a>: csp((z, D, C)) : x, y Z : konsisten-busur((x, y), (Z, D, C)) ( a D x : memenuhi-constraint((<x, a>, C x ) b D y : (memenuhi-constraint((<y, b>), C y )) memenuhi-constraint((<x, a>, <y, b>, C x,y ))) Dari definisi, jelas bahwa busur (V i, V j ) dapat dibuat konsisten dengan menghapus nilai-nilai di domain dari V i di mana tidak ada nilai yang berkaitan di domain D j sehingga constraint binari antara V i dan V j dipenuhi (perhatikan bahwa menghapus nilai-nilai tersebut tidak menghapus solusi yang mana pun dari constraint satisfaction problem yang bersangkutan). Sebuah constraint satisfaction problem dikatakan konsisten secara busur jika setiap nilai pada setiap domain memiliki dukungan di domain yang lain. Membuat masalah constraint satisfaction problem konsisten secara verteks sering dilakukan di tahap prapemrosesan: mengurangi ukuran beberapa domain biasanya membuat masalah menjadi lebih mudah dipecahkan (Barbara M. Smith, 1995, p5). Untuk membuat setiap busur dari graf constraint konsisten, atau dengan kata lain untuk membuat suatu constraint satisfaction problem konsisten secara busur, adalah tidak cukup untuk melakukan penghapusan nilai-nilai yang tidak konsisten secara busur untuk suatu variabel di domain hanya sekali saja. Ketika domain dari V i sudah dikurangi anggotanya, maka setiap busur (V i, V j ) yang sudah pernah diotak-atik harus diperiksa lagi, karena beberapa anggota dari domain untuk V i mungkin tidak konsisten lagi dengan anggota domain variabel-variabel yang diperiksa kekonsistenannya secara busur terhadap variabel V i. Untuk mengatasi masalah ini, dikembangkan algoritma AC-1 yang pada dasarnya mengulang pemeriksaan kekonsistenan antara dua variabel terus-menerus sampai tidak ada domain mana pun yang berubah. Berikut adalah dari algoritma AC-1. REVISI adalah algoritma biasa yang mengkonsistenkan dua variabel secara busur.

15 20 Algoritma AC-1 prosedur AC-1(G) Q <- (Vi,Vj) di busur(g), i#j ulang UBAH <- salah untuk setiap busur(vi,vj) di Q lakukan UBAH <- REVISI(Vi,Vj) atau UBAH akhir untuk sampai bukan (UBAH) akhir prosedur AC-1 Dapat diperhatikan bahwa untuk menerapkan teknik konsistensi busur ini, constraint satisfaction problem yang ada diubah menjadi constraint satisfaction problem binari (constraint satisfaction problem yang semua constraint-nya binari atau unari). Jika ada constraint yang melibatkan tiga variabel atau lebih, constraint yang bersangkutan mesti dipisahkan menjadi beberapa constraint binari atau unari. Kekurangan dari algoritma ini adalah tidak begitu efisien karena setiap revisi sukses dari satu busur pada suatu iterasi memaksa semua busur untuk direvisi lagi pada iterasi berikutnya, walaupun hanya sebagian kecil dari mereka yang dipengaruhi oleh revisi ini. Kekurangan dari algoritma AC-1 ditutupi oleh algoritma AC-3 yang melakukan revisi kembali hanya bagi busur-busur yang memiliki kemungkinan dipengaruhi oleh revisi sebelumnya. Algoritma AC-3 prosedur AC-3(G) Q <- (Vi,Vj) pada busur(g), i#j ketika Q tidak kosong lakukan pilih dan hapus busur (Vk,Vm) dari Q jika REVISI(Vk,Vm) maka Q <- Q bergabung {(Vi,Vk) bilamana (Vi,Vk) di busur(g), i#k, i#m} akhir jika akhir ketika akhir prosedur AC-3

16 21 Gambar 2.4: Graf constraint yang konsisten secara busur tetapi tidak mempunyai solusi Ketika algoritma AC-3 merevisi busur untuk kedua kalinya, algoritma ini menguji pasangan nilai yang sudah diketahui (dari iterasi sebelumnya) apakah konsisten atau tidak konsisten dan mana yang tidak terpengaruhi oleh reduksi domain. Ide utama dari algoritma AC-3 berdasarkan konsep dukungan. Nilai didukung jika ada nilai yang cocok di domain setiap variabel lainnya. Ketika sebuah nilai V dibuang dari domain variabel X, adalah tidak perlu untuk memeriksa semua constraint binari C Y,X. Tepatnya, nilai-nilai dalam D Y dapat diabaikan jika tidak memerlukan V untuk dukungan. Walaupun sudah mencapai tahap konsisten secara busur yang mengakibatkan banyak ketidakkonsistenan dibuang dari graf constraint, tidaklah cukup untuk mendapatkan solusi. Jika ukuran domain masing-masing variabel menjadi satu, maka constraint satisfaction problem tepat mempunyai satu solusi yang didapatkan dengan memberikan nilai ke masing-masing variabel dari domain masing-masing. Hal ini berlaku juga untuk konsistensi verteks. Jika ada domain yang menjadi kosong, maka constraint satisfaction problem-nya tidak mempunyai solusi. Lain daripada itu, solusinya tidak pasti. Contoh berikut (gambar 2.5) menunjukkan bahwa graf constraint konsisten secara busur tetapi tidak ada satu pun label yang memenuhi semua constraint. 2.4 Optimalisasi Dalam Constraint Satisfaction Problem Pengertian Dasar Pada bagian sebelumnya, sudah dibahas teknik-teknik untuk menyelesaikan constraint satisfaction problem di mana semua solusinya sama baiknya. Pada permasalahan seperti optimalisasi penjadwalan pekerjaan di industri, beberapa solusi adalah lebih baik daripada

17 22 solusi lainnya. Pada kasus lainnya, pemberian nilai kepada variabel-variabel yang sama mengakibatkan harga yang berbeda. Tugas dari permasalahan ini adalah untuk mencari solusi yang paling optimal di mana keoptimalan suatu solusi itu didefinisikan oleh fungsi yang spesifik untuk aplikasi. Masalah ini biasa disebut sebagai constraint satisfaction optimization problem untuk membedakan dengan constraint satisfaction problem biasa. Semua masalah optimalisasi yang dipelajari di riset operasional adalah constraint satisfaction problem pada pengertian umum, di mana constraint umumnya adalah numerik. Definisi 11. Sebuah constraint satisfaction optimization problem didefinisikan sebagai constraint satisfaction problem dengan fungsi optimalisasi f yang memetakan setiap tupel solusi ke sebuah nilai numerik: (Z, D, C, f) di mana (Z, D, C, f) adalah constraint satisfaction problem, dan jika S adalah himpunan tupel solusi dari (Z, D, C), maka f : S nilai numerik Diberikan sebuah tupel solusi T, f(t ) disebut sebagai nilai f dari T. Tugas dalam constraint satisfaction optimization problem adalah untuk mencari tupel solusi nilai f yang optimal (minimal atau maksimal) yang ditentukan oleh fungsi f optimalisasi yang spesifik untuk aplikasi. Constraint yang umum disebut hard constraints, sementara fungsi f disebut soft constraints. Penamaan ini menggambarkan bahwa hard constraints harus dipenuhi, sementara soft constraints memiliki preferensi terhadap beberapa solusi (yang mempunyai nilai tinggi/rendah) dari yang lainnya (yang mempunyai nilai lebih rendah/lebih tinggi) (Anonim, ). Masalah alokasi sumber daya di penjadwalan adalah constraint satisfaction optimization problem. Pada banyak masalah penjadwalan, mencari solusi yang mana pun tidaklah cukup baik. Seseorang mungkin ingin mencari cara yang paling ekonomis dalam mengalokasikan sumber daya ke pekerjaan-pekerjaan, atau mengalokasi mesin ke

18 23 pekerjaan-pekerjaan, memaksimalkan beberapa kualitas yang bisa diukur dari hasil keluaran. Masalah-masalah ini adalah constraint satisfaction optimization problem. Untuk mencari solusi yang paling optimal, seseorang mungkin harus mencari semua solusi terlebih dahulu, dan kemudian membandingkan nilai f mereka. Sebagian dari ruang pencarian dapat dipotong jika seseorang dapat membuktikan bahwa solusi yang lebih optimal dari solusi sebelumnya tidak berada di dalamnya. Hal ini berarti tidak ada solusi yang berada di dalamnya atau nilai f pada setiap solusi di ruang pencarian yang dipotong itu tidak lebih optimal dari solusi yang sudah didapatkan (sub-optimal) Branch and Bound Untuk menyelesaikan masalah constraint satisfaction optimization problem, digunakan fungsi f untuk memandu pencarian. Branch and bound, yang merupakan algoritma pencarian umum dalam pencarian solusi optimal, menggunakan fungsi f. Di sini tetap digunakan tupel solusi untuk menyebut kumpulan label yang memberikan nilai kepada semua variabel yang memenuhi constraint. Perlu diperhatikan bahwa tupel solusi di sini tidak harus mengacu kepada solusi optimal pada constraint satisfaction optimization problem. Branch and bound adalah teknik yang terkenal pada riset operasi dan intelejensi semu. Teknik ini didasarkan pada fungsi heuristik yang baik dalam memperkirakan nilai terbaik ( terbaik menurut fungsi optimalisasi) pada semua verteks di bawah cabang yang sedang diperiksa pada pohon pencarian (Edward Tsang, 1996, p301). Jika fungsi heuristiknya bagus, seseorang dapat memotong ruang pencarian yang di dalamnya tidak terdapat solusi optimal. Oleh karena itu, walaupun branch and bound tidak mengurangi kompleksitas algoritma pencarian, tapi teknik ini dapat menjadi lebih efisien daripada backtracking saja. Untuk menerapkan branch and bound pada constraint satisfaction optimization problem, seseorang memerlukan sebuah fungsi heuristik h yang memetakan semua kumpulan label CL ke sebuah nilai numerik (h : CL angka). Nilai ini disebut nilai h dari kumpulan label. Supaya fungsi h dapat diterima, nilai h dari setiap kumpulan label CL harus lebih besar (lebih kecil) dari nilai f dari setiap tupel solusi pada masalah maksimalisasi

19 24 (minimalisasi). Sebuah variabel global, yang disebut sebagai bound, akan diinisialisasi minus tak terhingga pada masalah maksimalisasi. Teknik ini mencari solusi dengan kelakuan depthfirst. Teknik ini menggunakan backtracking. Ketika sebuah label ingin ditambahkan ke kumpulan label, nilai h dari kumpulan label yang ada (berikut label yang baru masuk itu) dihitung. Jika nilai h ini lebih kecil dari bound pada masalah maksimalisasi, maka cabang tempat kumpulan label berada dipotong. Ketika sebuah tupel solusi ditemukan, nilai f dihitung. Nilai f akan menjadi nilai bound jika dan hanya jika lebih besar dari bound yang sudah ada pada masalah maksimalisasi. Ketika nilai f ini lebih besar dari bound, maka solusi yang baru ditemukan akan dimasukkan ke kumpulan solusi terbaik sampai saat ini. Setelah pencarian selesai, tupel solusi yang terakhir didapatkan dapat dianggap sebagai solusi yang paling optimal. Prosedur Branch_and_Bound di bawah ini memberikan langkah-langkah dalam menerapkan strategi branch and bound depth-first dalam menyelesaikan constraint satisfaction optimization problem, di mana nilai f maksimum diperlukan. Masalah minimalisasi dapat dihadapi seperti masalah maksimalisasi dengan menggantikan semua nilai f dan h dengan negasi nilai mereka. Untuk membuat prosedur menjadi lebih sederhana, prosedur ini hanya mengembalikan satu tupel solusi yang mempunyai nilai f optimal; tupel solusi lainnya yang mempunyai nilai f yang sama diabaikan.

20 25 Algoritma Branch_and_Bound prosedur Branch_and_Bound(Z,D,C,f,h) BOUND minus tak terhingga BEST_S_SO_FAR NIL BNB(Z,,D,C,f,h) kembalikan (BEST_S_SO_FAR) akhir prosedur Branch_and_Bound prosedur BNB(BELUM_LABEL, KUMPULAN_LABEL,D,C,f,h) jika (BELUM_LABEL={}) maka jika (f(kumpulan_label) > BOUND) maka BOUND f(kumpulan_label) BEST_S_SO_FAR KUMPULAN_LABEL selain jika (h(kumpulan_label) > BOUND) maka pilih variabel x dari BELUM_LABEL ulangi pilih nilai v dari D x hapus v dari D x jika (KUMPULAN_LABEL + <x,v> memenuhi constraint) maka BNB(BELUM_LABEL-x, KUMPULAN_LABEL + <x,v>, D, C, f, h) akhir jika sampai (D x ={}) akhir jika akhir jika akhir prosedur BNB Efisiensi dari branch and bound ditentukan oleh dua faktor: kualitas fungsi heuristik dan apakah bound yang bagus ditemukan pada tahap awal. Pada masalah maksimalisasi, jika nilai h adalah selalu memperkirakan lebih tinggi dari nilai f, maka perkiraan menjadi lebih dekat ke nilai f (contohnya, semakin kecil nilai h tanpa lebih kecil dari nilai f), lebih besar kemungkinannya bagian yang cukup besar dari ruang pencarian dipotong. Sebuah cabang akan dipotong oleh branch and bound jika nilai h dari verteks yang sedang diperika lebih rendah dari bound (pada masalah maksimalisasi). Ini berarti bahkan jika dengan fungsi heuristik diperbaiki, branch and bound akan memotong proporsi yang berbeda dari ruang pencarian jika cabang diurutkan secara berbeda, karena batas yang

21 26 berbeda akan ditemukan di bawah cabang yang berbeda. Gambar 2.6 menunjukkan sebuah contoh dari constraint satisfaction optimization problem. Semua dari lima variabel x 1, x 2, x 3, dan x 4 mempunyai domain numerik. Nilai f dari sebuah kumpulan label adalah total perkalian dari semua nilai yang diambil variabelvariabel ini. Tugasnya adalah mencari tupel solusi dengan nilai f maksimum. Khusus contoh constraint satisfaction optimization problem ini hanya diperlukan solusi tunggal sehingga nilai h yang sama dengan bound akan dipotong juga. Gambar 2.5: Contoh constraint satisfaction optimization problem yang sederhana Gambar 2.7 menunjukkan ruang yang dijelajahi oleh backtracking sederhana. Setiap verteks pada gambar 2.7 mewakili sebuah kumpulan label, dan setiap cabang mewakili pemberian sebuah nilai ke variabel yang belum mendapatkan nilai. Variabel-variabel diasumsikan untuk diperiksa dengan urutan: x 1, x 2, x 3, dan x 4. Gambar 2.8 menunjukkan ruang yang dicari oleh branch and bound dengan urutan pencarian yang sama dengan backtracking. Nilai h untuk sebuah verteks dihitung ketika nilai yang diberikan sejauh ini ditambahkan dengan nilai maksimal dari variabel yang belum diberi nilai. Sebagai contoh, nilai h dari (<x 1,3>,<x 2,2>) adalah 3 * 2 (nilai yang diberikan sejauh ini) dikalikan dengan 4 * 4 (nilai maksimum yang dapat diberikan ke x 3 dan x 4 ), yaitu 16. Menurut prosedur Branch_and_Bound yang dijelaskan sebelumnya, bound diinisialisasi ke minus tak terhingga. Ketika verteks untuk (<x 1,2><x 2,3><x 3,4><x 4,2>) dicapai, bound diberi nilai (2 * 3 * 4 * 2 =) 48. Nilai bound ini tidak memiliki efek bagi setengah kiri dari pohon pencarian. Ketika verteks (<x 1,3><x 2,2><x 3,3>) diperiksa, nilai h (yaitu

22 27 Gambar 2.6: Ruang pencarian yang dijelajahi oleh backtracking sederhana dalam constraint satisfaction optimization problem Gambar 2.7: Ruang pencarian yang dijelajahi oleh branch and bound dalam constraint satisfaction optimization problem

23 28 Gambar 2.8: Ruang pencarian yang dijelajahi oleh branch and bound dalam constraint satisfaction optimization problem ketika bound yang bagus ditemukan pada tahap awal pencarian 48) ditemukan sama nilainya dengan bound (yaitu 48). Maka dari itu, cabang di bawah verteks (<x 1,3><x 2,2><x 3,3>) dipotong. Setelah pemotongan ini, pencarian bergerak ke cabang berikutnya. (<x 1,3><x 2,2><x 3,4><x 4,2>) kemudian ditemukan dan disimpulkan sebagai solusi yang paling optimal. Pada gambar 2.8, 15 verteks dijelajahi, dengan perbandingan 17 verteks pada gambar 2.7. Gambar 2.9 menunjukkan pentingnya menemukan bound yang lebih ketat pada tahap awal. Pada gambar 2.9, urutan pencariannya adalah x 1, x 4, x 2, dan x 3 dengan urutan nilai domain dimulai dari yang paling besar. Solusi optimal ditemukan setelah 6 verteks dijelajahi. Bound 96 digunakan untuk memotong cabang di bawah (<x 1,2><x 4,2>) (yang nilai h-nya 48). Hanya 11 verteks yang dijelajahi pada gambar 2.9.

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil Tahun 2006/2007

UNIVERSITAS BINA NUSANTARA. Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil Tahun 2006/2007 UNIVERSITAS BINA NUSANTARA Program Ganda Teknik Informatika - Matematika Skripsi Sarjana Program Ganda Semester Ganjil Tahun 2006/2007 PERANCANGAN PROGRAM APLIKASI OPTIMALISASI PENJADWALAN PEKERJAAN DENGAN

Lebih terperinci

APLIKASI PENJADWALAN PERKULIAHAN MENGGUNAKAN ALGORITMA SEQUENTIAL SEARCH DAN FORWARD CHECKING

APLIKASI PENJADWALAN PERKULIAHAN MENGGUNAKAN ALGORITMA SEQUENTIAL SEARCH DAN FORWARD CHECKING APLIKASI PENJADWALAN PERKULIAHAN MENGGUNAKAN ALGORITMA SEQUENTIAL SEARCH DAN FORWARD CHECKING Eduardus Hardika Sandy Atmaja 1), Eko Hari Parnadi 2) 1), 2) Teknik Informatika Universitas Sanata Dharna Yogyakarta

Lebih terperinci

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah BAB 1 PENDAHULUAN 1.1 Latar Belakang Masalah Graf adalah suatu diagram yang memuat informasi tertentu jika diinterpretasikan secara tepat. Tujuannya adalah sebagai visualisasi objek-objek agar lebih mudah

Lebih terperinci

Artificial Intelegence/ P_3 EKA YUNIAR

Artificial Intelegence/ P_3 EKA YUNIAR Artificial Intelegence/ P_3 EKA YUNIAR Pokok Bahasan Teknik Pencarian Heuristik Generate And Test Hill Climbing Best First Searching Problem Reduction Constrait Satisfaction Means End Analysis Teknik Pencarian

Lebih terperinci

BAB I PENDAHULUAN. pengalaman belajar untuk semua peserta didik (Pusat Kurikulum Badan

BAB I PENDAHULUAN. pengalaman belajar untuk semua peserta didik (Pusat Kurikulum Badan 1 BAB I PENDAHULUAN 1.1. Latar Belakang Kegiatan belajar mengajar adalah suatu bentuk penyelenggaraan pendidikan yang memadukan secara sistematis dan berkesinambungan kegiatan pendidikan di dalam lingkungan

Lebih terperinci

Himpunan dan Fungsi. Modul 1 PENDAHULUAN

Himpunan dan Fungsi. Modul 1 PENDAHULUAN Modul 1 Himpunan dan Fungsi Dr Rizky Rosjanuardi P PENDAHULUAN ada modul ini dibahas konsep himpunan dan fungsi Pada Kegiatan Belajar 1 dibahas konsep-konsep dasar dan sifat dari himpunan, sedangkan pada

Lebih terperinci

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem

Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem Penggabungan Algoritma Brute Force dan Backtracking dalam Travelling Thief Problem Jessica Handayani (13513069) Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking Krisna Dibyo Atmojo 13510075 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem

Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem Aplikasi Algoritma Branch and Bound dalam Pencarian Solusi Optimum Job Assignment Problem Calvin Aditya Jonathan 13513077 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut

Lebih terperinci

BAB 3 METODE PENELITIAN

BAB 3 METODE PENELITIAN BAB 3 METODE PENELITIAN Pada bab ini, akan dijelaskan metode-metode yang penulis gunakan dalam penelitian ini. Adapun metode yang akan digunakan dalam penelitian ini adalah Metode Simpleks dan Metode Branch

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Program Linier Menurut Aminudin (2005), program linier merupakan suatu model matematika untuk mendapatkan alternatif penggunaan terbaik atas sumber-sumber yang tersedia. Kata linier

Lebih terperinci

BAB I PENDAHULUAN. 1.1 Latar Belakang

BAB I PENDAHULUAN. 1.1 Latar Belakang BAB I PENDAHULUAN Pada bab pertama ini akan diuraikan mengenai latar belakang, rumusan masalah, tujuan, batasan masalah, metodologi, dan sistematika pembahasan dalam Tugas Akhir ini. 1.1 Latar Belakang

Lebih terperinci

Bab 2 2. Teknik Pencarian

Bab 2 2. Teknik Pencarian Bab 2 2. Teknik Pencarian Bab ini membahas bagaimana membuat ruang masalah untuk suatu masalah tertentu. Sebagian masalah mempunyai ruang masalah yang dapat diprediksi, sebagian lainnya tidak. 1.1 Pendefinisian

Lebih terperinci

BAB II MODEL KOMPUTASI FINITE STATE MACHINE. Pada Bab II akan dibahas teori dasar matematika yang digunakan

BAB II MODEL KOMPUTASI FINITE STATE MACHINE. Pada Bab II akan dibahas teori dasar matematika yang digunakan BAB II MODEL KOMPUTASI FINITE STATE MACHINE Pada Bab II akan dibahas teori dasar matematika yang digunakan dalam pemodelan sistem kontrol elevator ini, yaitu mengenai himpunan, relasi, fungsi, teori graf

Lebih terperinci

BAB II DASAR TEORI 2.1 Deskripsi Perjalanan Kereta Api Jalur Tunggal Pokok-Pokok Perjalanan Kereta Api Jalur Tunggal

BAB II DASAR TEORI 2.1 Deskripsi Perjalanan Kereta Api Jalur Tunggal Pokok-Pokok Perjalanan Kereta Api Jalur Tunggal BAB II DASAR TEORI Pada bab ini akan diuraikan mengenai deskripsi perjalanan kereta api yang terkait dengan masalah penjadwalan. Hal ini meliputi pokok-pokok perjalanan kereta api dan aturan-aturan atau

Lebih terperinci

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem)

Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-Queens Problem) Pembentukan Pohon Pencarian Solusi dalam Persoalan N-Ratu (The N-ueens Problem) Pradipta Yuwono NIM 350603 Prodi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi andung, Jalan

Lebih terperinci

Oleh Lukman Hariadi

Oleh Lukman Hariadi ANALISIS PENYELESAIAN PUZZLE SUDOKU DENGAN MENERAPKAN ALGORITMA BACKTRACKING (berbentuk piramida terbalik) PROPOSAL JUDUL Diajukan Untuk Menempuh Tugas Akhir Oleh Lukman Hariadi 14201045 PROGRAM STUDI

Lebih terperinci

PENYELESAIAN GAME TEKA-TEKI SILANG DENGAN MENERAPKAN ALGORITMA BACKTRACKING

PENYELESAIAN GAME TEKA-TEKI SILANG DENGAN MENERAPKAN ALGORITMA BACKTRACKING PENYELESAIAN GAME TEKA-TEKI SILANG DENGAN MENERAPKAN ALGORITMA BACKTRACKING Tiffany Adriana - 13505068 Teknik Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung if15068@students.if.itb.ac.id

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Model Matematika Model matematika adalah suatu rumusan matematika (dapat berbentuk persamaan, pertidaksamaan, atau fungsi) yang diperoleh dari hasil penafsiran seseorang ketika

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Teori Graf 2.1.1 Defenisi Graf Graf G didefenisikan sebagai pasangan himpunan (V,E), ditulis dengan notasi G = (V,E), yang dalam hal ini V adalah himpunan tidak kosong dari simpul-simpul

Lebih terperinci

TEKNIK PENCARIAN HEURISTIK (HEURISTIC SEARCHING)

TEKNIK PENCARIAN HEURISTIK (HEURISTIC SEARCHING) TEKNIK PENCRIN HEURISTIK (HEURISTIC SERCHING) Teknik pencarian heuristik (heuristic searching) merupakan suatu strategi untuk melakukan proses pencarian ruang keadaan (state space) suatu problema secara

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI Perancangan program aplikasi yang akan dibuat menggabungkan algoritma Brute Force dan algoritma Greedy yang digunakan secara bergantian pada tahap-tahap tertentu. Karena itu, pada

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Optimasi adalah suatu proses pencarian hasil terbaik. Proses ini dalam analisis sistem diterapkan terhadap alternatif yang dipertimbangkan, kemudian dari hasil tersebut

Lebih terperinci

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin

Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin Perbandingan Algoritma Depth-First Search dan Algoritma Hunt-and-Kill dalam Pembuatan Labirin Arie Tando - 13510018 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

Algoritma Brute Force (lanjutan)

Algoritma Brute Force (lanjutan) Algoritma Brute Force (lanjutan) Contoh-contoh lain 1. Pencocokan String (String Matching) Persoalan: Diberikan a. teks (text), yaitu (long) string yang panjangnya n karakter b. pattern, yaitu string dengan

Lebih terperinci

BAB III PEMODELAN MASALAH

BAB III PEMODELAN MASALAH BAB III PEMODELAN MASALAH Masalah penjadwalan kereta api jalur tunggal dapat dimodelkan sebagai sebuah kasus khusus dari masalah penjadwalan Job-Shop. Hal ini dilakukan dengan menganggap perjalanan sebuah

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Traveling Salesmen Problem (TSP) Travelling Salesman Problem (TSP) merupakan sebuah permasalahan optimasi yang dapat diterapkan pada berbagai kegiatan seperti routing. Masalah

Lebih terperinci

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang

BAB III ALGORITMA BRANCH AND BOUND. Algoritma Branch and Bound merupakan metode pencarian di dalam ruang BAB III ALGORITMA BRANCH AND BOUND Algoritma Branch and Bound merupakan metode pencarian di dalam ruang solusi secara sistematis. Ruang solusi diorganisasikan ke dalam pohon ruang status. Pohon ruang status

Lebih terperinci

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour

Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour Penerapan Algoritma Runut-Balik dan Graf dalam Pemecahan Knight s Tour Krisnaldi Eka Pramudita NIM-13508014 Prodi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Bandung 40135, Email : if18014@students.if.itb.ac.id

Lebih terperinci

ALGORITMA PENJADWALAN PRODUKSI PADA LINGKUNGAN MESIN JOB SHOP DENGAN MINIMALISASI RATAAN WAKTU TUNGGU OPERASI

ALGORITMA PENJADWALAN PRODUKSI PADA LINGKUNGAN MESIN JOB SHOP DENGAN MINIMALISASI RATAAN WAKTU TUNGGU OPERASI ALGORITMA PENJADWALAN PRODUKSI PADA LINGKUNGAN MESIN JOB SHOP DENGAN MINIMALISASI RATAAN WAKTU TUNGGU OPERASI Gamma/13502058 Abstraksi. Pada makalah ini dijelaskan mengenai pengembangan algoritma untuk

Lebih terperinci

PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG

PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG PENERAPAN ALGORITMA A* PADA PERMASALAHAN OPTIMALISASI PENCARIAN SOLUSI DYNAMIC WATER JUG Firman Harianja (0911519) Mahasiswa Program Studi Teknik Informatika STMIK Budidarma Medan Jl. Sisingamangaraja

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB LANDASAN TEORI. Teori Graf Teori graf merupakan pokok bahasan yang sudah tua usianya namun memiliki banyak terapan sampai saat ini. Graf digunakan untuk merepresentasikan objek-objek diskrit dan hubungan

Lebih terperinci

TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI

TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI TEKNIK PENYELESAIAN MASALAH BERDASARKAN AI 1. Definisikan masalah dengan tepat 2. Analisa masalahnya 3. Representasikan task knowledge 4. Pilih dan gunakan representasi dan teknik reasoning Untuk mendefinisikan

Lebih terperinci

Algoritma Branch & Bound

Algoritma Branch & Bound Algoritma Branch & Bound Bahan Kuliah IF2211 Strategi Algoritma Program Studi Informatika STEI ITB 2018 Overview Pembentukan pohon ruang status (state space tree) dinamis untuk mencari solusi persoalan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

BAB 1 PENDAHULUAN. 1.1 Latar Belakang BAB 1 PENDAHULUAN 1.1 Latar Belakang Permainan (game) merupakan bidang usaha manusia terhadap kecerdasan buatan, salah satunya adalah sliding puzzle. Permainan ini merupakan permainan yang dapat melatih

Lebih terperinci

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug

Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug Aplikasi dan Analisis Algoritma BFS dan DFS dalam Menemukan Solusi pada Kasus Water Jug Rizkydaya Aditya Putra NIM : 13506037 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Program Linier Program linier merupakan suatu model matematika untuk mendapatkan alternatif penggunaan terbaik atas sumber-sumber yang tersedia. Kata linier digunakan untuk menunjukkan

Lebih terperinci

BAB 1 PENDAHULUAN. 1.1 Pendahuluan

BAB 1 PENDAHULUAN. 1.1 Pendahuluan BAB 1 PENDAHULUAN 1.1 Pendahuluan Seiring dengan berkembangnya ilmu pengetahuan, penyelesaian suatu masalah dapat ditangani oleh suatu algoritma. Jenis masalah dapat berkisar dari masalah yang mudah sampai

Lebih terperinci

Penyelesaian Sum of Subset Problem dengan Dynamic Programming

Penyelesaian Sum of Subset Problem dengan Dynamic Programming Penyelesaian Sum of Subset Problem dengan Dynamic Programming Devina Ekawati 13513088 1 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10

Lebih terperinci

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block

Penerapan Algoritma BFS dan DFS dalam Mencari Solusi Permainan Rolling Block Penerapan Algoritma dan DFS dalam Mencari Solusi Permainan Rolling Block Zakiy Firdaus Alfikri 13508042 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata

Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata Penerapan Algoritma Runut-Balik untuk Menyelesaikan Permainan Pencarian Kata Arfinda Ilmania /13515137 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 17 BAB 2 LANDASAN TEORI 2.1 Permasalahan Optimasi Optimasi adalah proses memaksimasi atau meminimasi suatu fungsi tujuan dengan tetap memperhatikan pembatas yang ada. Optimasi memegang peranan penting

Lebih terperinci

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS

Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS Pencarian Pohon Solusi Permainan Alchemy Menggunakan Algoritma BFS dan DFS Emil Fahmi Yakhya - 13509069 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones

Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones Penggunaan Algoritma DFS dan BFS pada Permainan Three Piles of Stones Muharram Huda Widaseta NIM 13508033 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung,

Lebih terperinci

Strategi Algoritma Penyelesaian Puzzle Hanjie

Strategi Algoritma Penyelesaian Puzzle Hanjie Strategi Algoritma Penyelesaian Puzzle Hanjie Whilda Chaq 13511601 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia

Lebih terperinci

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik

Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik Implementasi Algoritma Greedy dalam Pembagian kerja pada Mesin yang Identik William Sentosa / 13513026 Program Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl.

Lebih terperinci

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek Hugo Toni Seputro Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika Jl. Ganesha 10 Bandung Jawa Barat Indonesia

Lebih terperinci

Kecerdasan Buatan/ Artificial Intelligence

Kecerdasan Buatan/ Artificial Intelligence Kecerdasan Buatan/ Artificial Intelligence Constraint Satisfaction Problem (CSP) Rekyan Regasari Mardi Putri, ST, MT Lailil Muflikhah, S.Kom, M.Sc Imam Cholissodin, S.Si., M.Kom M. Ali Fauzi, S.Kom, M.Kom

Lebih terperinci

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA BAB 2 TINJAUAN PUSTAKA 2.1 Graf 2.1.1 Definisi Graf Graf adalah pasangan himpunan (V, E), dan ditulis dengan notasi G = (V, E), V adalah himpunan tidak kosong dari verteks-verteks {v 1, v 2,, v n } yang

Lebih terperinci

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square

Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square Penggunaan Algoritma Runut-balik Pada Pencarian Solusi dalam Persoalan Magic Square Tahir Arazi NIM : 1350505 Program Studi Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung

Lebih terperinci

Algoritma Backtracking Pada Permainan Peg Solitaire

Algoritma Backtracking Pada Permainan Peg Solitaire Algoritma Backtracking Pada Permainan Peg Solitaire Gilbran Imami, 13509072 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Program Linier Program linier adalah suatu cara untuk menyelesaikan persoalan pengalokasian sumber-sumber yang terbatas di antara beberapa aktivitas yang bersaing, dengan cara

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Konsep Dasar Graf Definisi 2.1.1 Sebuah graf didefinisikan sebagai pasangan terurut himpunan dimana: 1. adalah sebuah himpunan tidak kosong yang berhingga yang anggotaanggotanya

Lebih terperinci

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI

PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI PERBANDINGAN ALGORITMA BFS DAN DFS DALAM PEMBUATAN RUTE PERJALANAN OBJEK PERMAINAN 2 DIMENSI David Steven Wijaya NIM : 13505044 Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika,

Lebih terperinci

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU

PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU PENERAPAN ALGORITMA RUNUT-BALIK (BACKTRACKING) DALAM PENYELESAIAN PERMAINAN SUDOKU Sibghatullah Mujaddid Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung

Lebih terperinci

Penerapan Algoritma Backtracking pada Pewarnaan Graf

Penerapan Algoritma Backtracking pada Pewarnaan Graf Penerapan Algoritma Backtracking pada Pewarnaan Graf Deasy Ramadiyan Sari 1, Wulan Widyasari 2, Eunice Sherta Ria 3 Laboratorium Ilmu Rekayasa dan Komputasi Departemen Teknik Informatika, Fakultas Teknologi

Lebih terperinci

Relasi dan Fungsi Matematika Diskret (TKE132107) Program Studi Teknik Elektro, Unsoed

Relasi dan Fungsi Matematika Diskret (TKE132107) Program Studi Teknik Elektro, Unsoed Relasi dan Fungsi Matematika Diskret (TKE132107) Program Studi Teknik Elektro, Unsoed Iwan Setiawan Tahun Ajaran 2013/2014 Himpunan. Mempunyai elemen atau anggota. Terdapat hubungan.

Lebih terperinci

BAB II MASALAH MATEMATIKA DAN STRATEGI PEMECAHANNYA

BAB II MASALAH MATEMATIKA DAN STRATEGI PEMECAHANNYA BAB II MASALAH MATEMATIKA DAN STRATEGI PEMECAHANNYA Soal-soal matematika yang muncul dalam IMO dan OMN umumnya merupakan soal yang memberikan tantangan untuk dikerjakan, tetapi tidak atau belum jelas benar

Lebih terperinci

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle

Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle Perbandingan Algoritma Brute Force dan Backtracking dalam Permainan Word Search Puzzle Veren Iliana Kurniadi 13515078 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

Analisis Penggunaan Algoritma Backtracking dalam Penjadwalan Kuliah

Analisis Penggunaan Algoritma Backtracking dalam Penjadwalan Kuliah Analisis Penggunaan Algoritma Backtracking dalam Penjadwalan Kuliah Farhan Makarim 13515003 Teknik Informatika Institut Teknologi Bandung Bandung, Indonesia Farhan_makarim@student.itb.ac.id Abstrak model

Lebih terperinci

Relasi, Fungsi, dan Transformasi

Relasi, Fungsi, dan Transformasi Modul 1 Relasi, Fungsi, dan Transformasi Drs. Ame Rasmedi S. Dr. Darhim, M.Si. M PENDAHULUAN odul ini merupakan modul pertama pada mata kuliah Geometri Transformasi. Modul ini akan membahas pengertian

Lebih terperinci

Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila /

Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila / Branch and Bound untuk Rute Terpendek Tur Pengenalan Labtek V Gedung Benny Subianto Chita Najmi Nabila - 13509015 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

Algoritma Brute Force (lanjutan)

Algoritma Brute Force (lanjutan) Algoritma Brute Force (lanjutan) Contoh lain Mencari Pasangan Titik yang Jaraknya Terdekat Persoalan: Diberikan n buah titik (2-D atau 3- D), tentukan dua buah titik yang terdekat satu sama lain. y p 5

Lebih terperinci

Diktat Kuliah. Oleh:

Diktat Kuliah. Oleh: Diktat Kuliah TEORI GRUP Oleh: Dr. Adi Setiawan UNIVERSITAS KRISTEN SATYA WACANA SALATIGA 2015 Kata Pengantar Aljabar abstrak atau struktur aljabar merupakan suatu mata kuliah yang menjadi kurikulum nasional

Lebih terperinci

Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015

Sistem Kecerdasan Buatan. Masalah, Ruang Masalah dan Pencarian Solusi. Masalah. Masalah Sebagai Ruang Keadaan 10/7/2015 Sistem Kecerdasan Buatan Masalah, Ruang Masalah dan Pencarian Solusi Bahan Bacaan : Sri Kusumadewi, Artificial Intelligence. Russel, Artificial Intelligence Modern Approach 2 bagian utama kecerdasan buatan

Lebih terperinci

APLIKASI ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN INTEGER PROGRAMMING. Enty Nur Hayati Dosen Fakultas Teknik Universitas Stikubank Semarang

APLIKASI ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN INTEGER PROGRAMMING. Enty Nur Hayati Dosen Fakultas Teknik Universitas Stikubank Semarang 2010 Enty Nur Hayati 13 APLIKASI ALGORITMA BRANCH AND BOUND UNTUK MENYELESAIKAN INTEGER PROGRAMMING Enty Nur Hayati Dosen Fakultas Teknik Universitas Stikubank Semarang DINAMIKA TEKNIK Vol. IV, No. 1 Januari

Lebih terperinci

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf Abstrak Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf Neni Adiningsih, Dewi Pramudi Ismi, Ratih Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut

Lebih terperinci

BAB 2 OPTIMISASI KOMBINATORIAL

BAB 2 OPTIMISASI KOMBINATORIAL BAB 2 OPTIMISASI KOMBINATORIAL Optimisasi kombinatorial merupakan suatu cara yang digunakan untuk mencari semua kemungkinan nilai real dari suatu fungsi objektif. Proses pencarian dapat dilakukan dengan

Lebih terperinci

Penerapan Teori Graf Pada Algoritma Routing

Penerapan Teori Graf Pada Algoritma Routing Penerapan Teori Graf Pada Algoritma Routing Indra Siregar 13508605 Program Studi Teknik Teknik Informatika, Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jalan Ganesha 10, Bandung

Lebih terperinci

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic

Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic Penerapan Algoritma Brute-Force serta Backtracking dalam Penyelesaian Cryptarithmetic Jason Jeremy Iman 13514058 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

Journal of Informatics and Technology, Vol 1, No 1, Tahun 2012, p

Journal of Informatics and Technology, Vol 1, No 1, Tahun 2012, p PENENTUAN JALUR TERPENDEK PADA PELAYANAN AGEN TRAVEL KHUSUS PENGANTARAN WILAYAH SEMARANG BERBASIS SIG DENGAN ALGORITMA BRANCH AND BOUND Windi Rayina Rosa, Drs. Suhartono, M.Kom, Helmie Arif Wibawa, S.Si,

Lebih terperinci

PEMBANGUNAN SISTEM PENJADWALAN KULIAH MENGGUNAKAN ALGORITMA PEWARNAAN GRAF

PEMBANGUNAN SISTEM PENJADWALAN KULIAH MENGGUNAKAN ALGORITMA PEWARNAAN GRAF PEMBANGUNAN SISTEM PENJADWALAN KULIAH MENGGUNAKAN ALGORITMA PEWARNAAN GRAF Rusmala1, Heliawaty Hamrul2 Dosen Universitas Cokroaminoto Palopo Email : rusmalaoddang@yahoo.com Abstrak Penjadwalan kuliah merupakan

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Program Linier Program linier adalah suatu teknik penyelesaian optimal atas suatu problema keputusan dengan cara menentukan terlebih dahulu fungsi tujuan (memaksimalkan atau meminimalkan)

Lebih terperinci

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir Algoritma Runut-balik (Backtracking) Bahan Kuliah IF2251 Strategi Algoritmik Oleh: Rinaldi Munir 1 Pendahuluan Runut-balik (backtracking) adalah algoritma yang berbasis pada DFS untuk mencari solusi persoalan

Lebih terperinci

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni

Kecerdasan Buatan. Penyelesaian Masalah dengan Pencarian... Pertemuan 02. Husni Kecerdasan Buatan Pertemuan 02 Penyelesaian Masalah dengan Pencarian... Husni Lunix96@gmail.com http://komputasi.wordpress.com S1 Teknik Informatika, STMIK AMIKOM, 2013 Outline Konsep Pencarian Pencarian

Lebih terperinci

I. Aljabar Himpunan Handout Analisis Riil I (PAM 351)

I. Aljabar Himpunan Handout Analisis Riil I (PAM 351) I. Aljabar Himpunan Aljabar Himpunan Dalam bab ini kita akan menyajikan latar belakang yang diperlukan untuk mempelajari analisis riil. Dua alat utama analisis riil, yakni aljabar himpunan dan fungsi,

Lebih terperinci

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB

Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB Algoritma Branch & Bound untuk Optimasi Pengiriman Surat antar Himpunan di ITB Mohamad Ray Rizaldy - 13505073 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi

Lebih terperinci

UNIVERSITAS GUNADARMA

UNIVERSITAS GUNADARMA UNIVERSITAS GUNADARMA SK No. 92 / Dikti / Kep /1996 Fakultas Ilmu Komputer, Teknologi Industri, Ekonomi,Teknik Sipil & Perencanaan, Psikologi, Sastra Program Diploma (D3) Manajemen Informatika, Teknik

Lebih terperinci

DYNAMMIC PROGRAMMING DALAM MENENTUKAN ARTI URUTAN UNTAIAN GEN

DYNAMMIC PROGRAMMING DALAM MENENTUKAN ARTI URUTAN UNTAIAN GEN DYNAMMIC PROGRAMMING DALAM MENENTUKAN ARTI URUTAN UNTAIAN GEN David Soendoro Program Studi Teknik Informatika, Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Alamat: Jalan Ganeca No.

Lebih terperinci

LESSON 6 : INFORMED SEARCH Part II

LESSON 6 : INFORMED SEARCH Part II LESSON 6 : INFORMED SEARCH Part II 3.3 Itterative deepening A* search 3.3.1 Algoritma IDA* Itterative deepening search atau IDA* serupa dengan iterative deepening depth first, namun dengan modifikasi sebagai

Lebih terperinci

Pengertian Fungsi. MA 1114 Kalkulus I 2

Pengertian Fungsi. MA 1114 Kalkulus I 2 Fungsi Pengertian Fungsi Relasi : aturan yang mengawankan himpunan Fungsi Misalkan A dan B himpunan. Relasi biner dari A ke B merupakan suatu ungsi jika setiap elemen di dalam A dihubungkan dengan tepat

Lebih terperinci

Solusi UTS Stima. Alternatif 1 strategi:

Solusi UTS Stima. Alternatif 1 strategi: Solusi UTS Stima 1. a. (Nilai 5) Representasikanlah gambar kota di atas menjadi sebuah graf, dengan simpul merepresentasikan rumah, dan bobot sisi merepresentasikan jumlah paving block yang dibutuhkan.

Lebih terperinci

PENERAPAN METODE BRANCH AND BOUND DALAM PENYELESAIAN MASALAH PADA INTEGER PROGRAMMING

PENERAPAN METODE BRANCH AND BOUND DALAM PENYELESAIAN MASALAH PADA INTEGER PROGRAMMING Jurnal Manajemen Informatika dan Teknik Komputer Volume, Nomor, Oktober 05 PENERAPAN METODE BRANCH AND BOUND DALAM PENYELESAIAN MASALAH PADA INTEGER PROGRAMMING Havid Syafwan Program Studi Manajemen Informatika

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA 2.1 Graf (Graph) Graf G didefinisikan sebagai pasangan himpunan (V, E) yang dinotasikan dalam bentuk G = {V(G), E(G)}, dimana V(G) adalah himpunan vertex (simpul) yang tidak kosong

Lebih terperinci

POHON CARI BINER (Binary Search Tree)

POHON CARI BINER (Binary Search Tree) POHON CARI BINER (Binary Search Tree) 50 24 70 10 41 61 90 3 12 35 47 55 67 80 99 POHON CARI BINER (Binary Search Tree) Definisi : bila N adalah simpul dari pohon maka nilai semua simpul pada subpohon

Lebih terperinci

SISTEM BILANGAN REAL. 1. Sistem Bilangan Real. Terlebih dahulu perhatikan diagram berikut: Bilangan. Bilangan Rasional. Bilangan Irasional

SISTEM BILANGAN REAL. 1. Sistem Bilangan Real. Terlebih dahulu perhatikan diagram berikut: Bilangan. Bilangan Rasional. Bilangan Irasional SISTEM BILANGAN REAL Sebelum membahas tentag konsep sistem bilangan real, terlebih dahulu ingat kembali tentang konsep himpunan. Konsep dasar dalam matematika adalah berkaitan dengan himpunan atau kelas

Lebih terperinci

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian

Kecerdasan Buatan Penyelesaian Masalah dengan Pencarian Kecerdasan Buatan Pertemuan 02 Penyelesaian Masalah dengan Pencarian Kelas 10-S1TI-03, 04, 05 Husni Lunix96@gmail.com http://komputasi.wordpress.com S1 Teknik Informatika, STMIK AMIKOM, 2012 Outline Pendahuluan

Lebih terperinci

Algoritma Brute Force(lanjutan) Lecture 6 CS3024

Algoritma Brute Force(lanjutan) Lecture 6 CS3024 Algoritma Brute Force(lanjutan) Lecture 6 CS3024 String Matching Persoalan: Diberikan a. teks (text), yaitu (long) stringyang panjangnya n karakter b. pattern, yaitu string dengan panjang m karakter (m

Lebih terperinci

BAB I HIMPUNAN. Contoh: Himpunan A memiliki 5 anggota, yaitu 2,4,6,8 dan 10. Maka, himpunan A dapat dituliskan: A = {2,4,6,8,10}

BAB I HIMPUNAN. Contoh: Himpunan A memiliki 5 anggota, yaitu 2,4,6,8 dan 10. Maka, himpunan A dapat dituliskan: A = {2,4,6,8,10} BAB I HIMPUNAN 1 1. Definisi Himpunan Definisi 1 Himpunan (set) adalah kumpulan dari objek yang berbeda. Masing masing objek dalam suatu himpunan disebut elemen atau anggota dari himpunan. Tidak ada spesifikasi

Lebih terperinci

METODE PENCARIAN DAN PELACAKAN

METODE PENCARIAN DAN PELACAKAN METODE PENCARIAN DAN PELACAKAN SISTEM INTELEGENSIA Pertemuan 4 Diema Hernyka S, M.Kom Materi Bahasan Metode Pencarian & Pelacakan 1. Pencarian buta (blind search) a. Pencarian melebar pertama (Breadth

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI Pada bab ini akan diuraikan mengenai teori dan terminologi graph, yaitu bentukbentuk khusus suatu graph dan juga akan diuraikan penjelasan mengenai shortest path. 2.1 Konsep Dasar

Lebih terperinci

Fungsi. Pengertian Fungsi. Pengertian Fungsi ( ) ( )

Fungsi. Pengertian Fungsi. Pengertian Fungsi ( ) ( ) Fungsi Pengertian Fungsi Relasi : aturan yang mengawankan/ mengkaitkan/ menugaskan himpunan Fungsi Misalkan A dan B himpunan. Relasi biner dari A ke B merupakan suatu ungsi jika setiap elemen di dalam

Lebih terperinci

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound

Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound Menentukan Susunan Pengambil Tendangan Penalti dalam Skema Adu Penalti pada Pertandingan Sepak Bola dengan Algoritma Branch and Bound Ari Pratama Zhorifiandi / 13514039 Program Studi Teknik Informatika

Lebih terperinci

III KERANGKA PEMIKIRAN

III KERANGKA PEMIKIRAN III KERANGKA PEMIKIRAN 3.1 Kerangka Pemikiran Teoritis 3.1.1 Sistem Produksi Secara umum produksi dapat diartikan sebagai suatu kegiatan atau proses yang mentransformasikan masukan (input) menjadi hasil

Lebih terperinci

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound

Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound Menentukan Titik Evakuasi Selanjutnya bagi Sekelompok Regu Tim SAR dengan Algoritma Branch and Bound Willy Fitra Hendria / 13511086 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika

Lebih terperinci

Analisis Kesalahan Konten Matematika pada Buku Siswa Tematik Sekolah Dasar Kelas V Semester I Kurikulum 2013

Analisis Kesalahan Konten Matematika pada Buku Siswa Tematik Sekolah Dasar Kelas V Semester I Kurikulum 2013 Suska Journal of Mathematics Education (p-issn: 2477-4758 e-issn: 2540-9670) Vol. 3, No. 2, 2017, Hal. 74 82 Analisis Kesalahan Konten Matematika pada Buku Siswa Tematik Sekolah Dasar Kelas V Semester

Lebih terperinci

TARGET BERORIENTASI METODE CABANG DAN BATAS UNTUK OPTIMISASI GLOBAL

TARGET BERORIENTASI METODE CABANG DAN BATAS UNTUK OPTIMISASI GLOBAL TARGET BERORIENTASI METODE CABANG DAN BATAS UNTUK OPTIMISASI GLOBAL Mochamad Suyudi 1, Sisilia Sylviani 2 1,2 Departmen Matematika FMIPA Universitas Padjadjaran moch.suyudi@gmail.com Abstrak: Fokus utama

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1. Pengertian Algoritma Algoritma merupakan urutan langkah langkah untuk menyelesaikan masalah yang disusun secara sistematis, algoritma dibuat dengan tanpa memperhatikan bentuk

Lebih terperinci

Bab 2 LANDASAN TEORI

Bab 2 LANDASAN TEORI Bab 2 LANDASAN TEORI 2.1 Linear Programming Linear Programming (LP) merupakan metode yang digunakan untuk mencapai hasil terbaik (optimal) seperti keuntungan maksimum atau biaya minimum dalam model matematika

Lebih terperinci

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test

Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test Penerapan DFS dan BFS dalam Pencarian Solusi Game Japanese River IQ Test Hanif Eridaputra / 00 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha

Lebih terperinci