BAB III PEMODELAN MASALAH

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

BAB I PENDAHULUAN. 1.1 Latar Belakang

Implementasi Model Penjadwalan Job-Shop dalam Masalah Penjadwalan Kereta Api Jalur Tunggal dengan Pendekatan Constraint Programming

BAB VI KESIMPULAN DAN SARAN

sejumlah variabel keputusan; fungsi yang akan dimaksimumkan atau diminimumkan disebut sebagai fungsi objektif, Ax = b, dengan = dapat

III PEMODELAN MASALAH PENJADWALAN KERETA API DAN APLIKASINYA

BAB IV ANALISIS DAN PERANCANGAN

IV STUDI KASUS. sebagai stasiun awal. Rute 5 meliputi stasiun. 3, 9, 13, 14, 15, 16, 17 dengan stasiun 3. 4, 10, 15, 18, 19, 22, 23 dengan stasiun 4

Implementasi Model Penjadwalan Job-Shop dalam Masalah Penjadwalan Kereta Api Jalur Tunggal dengan Pendekatan Constraint Programming

Penggunaan Algoritma Greedy dalam Membangun Pohon Merentang Minimum

Optimisasi Penjadwalan Proses Pada Central Processing Unit Dengan Menggunakan Algoritma Greedy

APLIKASI PEWARNAAN GRAPH PADA PEMBUATAN JADWAL

Aplikasi Pewarnaan Graph pada Pembuatan Jadwal

BAB 2 LANDASAN TEORI

UKDW BAB 1 PENDAHULUAN. 1.1 Latar Belakang Masalah

ALGORITMA PENCARIAN SIMPUL SOLUSI DALAM GRAF

Representasi Graf Berarah dalam Mencari Solusi Jalur Optimum Menggunakan Algoritma A*

Penerapan Algoritma Backtracking pada Pewarnaan Graf

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

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

Analisis Pengimplementasian Algoritma Greedy untuk Memilih Rute Angkutan Umum

BAB II LANDASAN TEORI

BAB 1 PENDAHULUAN. 1.1 Pendahuluan

Penjadwalan Kereta Api di Daop VIII Surabaya

BAB 2 LANDASAN TEORI

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

Optimalisasi Susunan Tempat Duduk Kereta Api Menggunakan Algoritma Greedy dan Program Dinamis

Penentuan Rute Terpendek Tempat Wisata di Kota Tasikmalaya Dengan Algoritma Floyd-warshall

BAB II LANDASAN TEORI

TUGAS RESUME MATERI KULIAH ALGORITMA DAN STRUKTUR DATA STRATEGI ALGORITMA : H

BAB I PENDAHULUAN UKDW. dalam kehidupan kita sehari-hari, terutama bagi para pengguna sarana

Studi Algoritma Optimasi dalam Graf Berbobot

Penjadwalan Kereta Api di Daerah Operasi 8 Surabaya

Algoritma Greedy (lanjutan)

Pencarian Lintasan Terpendek Pada Aplikasi Navigasi Menggunakan Algoritma A*

Penggunaan Strategi Algoritma Backtracking pada Pencarian Solusi Puzzle Pentomino

BAB I PENDAHULUAN. hampir di seluruh dunia, termasuk Indonesia. Alat transportasi ini memiliki

BAB 2 TINJAUAN PUSTAKA

BAB 2 TINJAUAN PUSTAKA

ALGORITMA PENCARIAN. 1. Iterative-Deepening Depth-First Search (IDS) Nama : Gede Noverdi Indra Wirawan Nim : Kelas : VI A

Algoritma Greedy (lanjutan)

Penggunaan Algoritma Dijkstra dalam Penentuan Lintasan Terpendek Graf

APLIKASI SIMULATED ANNEALING UNTUK MENYELESAIKAN TRAVELLING SALESMAN PROBLEM

Pendeteksian Deadlock dengan Algoritma Runut-balik

Pelacakan dan Penentuan Jarak Terpendek terhadap Objek dengan BFS (Breadth First Search) dan Branch and Bound

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

Matematika dan Statistika

MAKALAH STRATEGI ALGORITMIK (IF 2251) ALGORITMA RUNUT BALIK DALAM GAME LABIRIN

Penerapan Algoritma Runut-Balik (Backtracking) pada Permainan Nurikabe

ALGORITMA PENCARIAN (HEURISTIC)

Algoritma Runut-balik (Backtracking)

PENERAPAN PEWARNAAN GRAF DALAM PENJADWALAN

BAB 2 LANDASAN TEORI

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI

BAB 2 LANDASAN TEORI

SOLUSI PERMAINAN CHEMICALS DENGAN ALGORITMA RUNUT BALIK

UNTUK PEMECAHAN MASALAH PADA PERMAINAN HASHIWOKAKERO

BAB I PENDAHULUAN 1.1 Latar Belakang Masalah

ALGORITMA RUNUT-BALIK UNTUK MENGGANTIKAN ALGORITMA BRUTE FORCE DALAM PERSOALAN N-RATU

BAB 2 LANDASAN TEORI

Analisis Penerapan Algoritma Backtracking Pada Pencarian Jalan Keluar di Dalam Labirin

PENGGUNAAN ALGORITMA GREEDY PADA MESIN PENCARI

Penerapan Algoritma Branch and Bound untuk Penentuan Jalur Wisata

Penggunaan Algoritma Greedy untuk menyelesaikan Permainan Othello

BAB 2 LANDASAN TEORI

Implementasi Algoritma Greedy pada Permainan Ludo

Design and Analysis Algorithm

4.6 Data Waktu Siap Setiap Mesin Pengerjaan Komponenkomponen Screw Conveyor Penentuan Due Date BAB 5 PENGOLAHAN DATA DAN ANALISIS

METODE BRANCH AND BOUND UNTUK MENEMUKAN SHORTEST PATH

PENJADWALAN KERETA API JALUR GANDA: MODEL JOB-SHOP DAN APLIKASINYA. Nur Aprianti Dwiyatcita, Farida Hanum, Toni Bakhtiar

BAB 3 LANDASAN TEORI

Permodelan Pohon Merentang Minimum Dengan Menggunakan Algoritma Prim dan Algoritma Kruskal

BAB V IMPLEMENTASI DAN PENGUJIAN

Penerapan Algoritma Greedy dan Algoritma BFS untuk AI pada Permainan Greedy Spiders

BAB 1 PENDAHULUAN. 1.1 Latar Belakang

PENYELESAIAN TRAVELLING SALESMAN PROBLEM MENGGUNAKAN METODE SIMPLE HILL CLIMBING

Algoritma Runut-balik (Backtracking) Bagian 1

Penggunaan Algoritma Backtracking Untuk Menentukan Keisomorfikan Graf

Pemanfaatan Teori Graf untuk Menguraikan Permasalahan dalam Pemodelan Persoalan Penjadwalan Kereta Api

BAB 2 LANDASAN TEORI

PENYELESAIAN TRAVELLING SALESMAN PROBLEM DENGAN ALGORITMA BRANCH AND BOUND

Pemanfaatan Algoritma Sequential Search dalam Pewarnaan Graf untuk Alokasi Memori Komputer

Algoritma Greedy (Bagian 2) IF2251 Strategi Algoritmik Oleh: Rinaldi Munir

Bab III Metode Perancangan Sistem

Penentuan Keputusan dalam Permainan Gomoku dengan Program Dinamis dan Algoritma Greedy

BAB 2 LANDASAN TEORI

Penerapan Algoritma DFS pada Permainan Sudoku dengan Backtracking

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI

Mendeteksi Blob dengan Menggunakan Algoritma BFS

Aplikasi Algoritma Dijkstra dalam Pencarian Lintasan Terpendek Graf

Pencarian Jalur Terpendek dengan Algoritma Dijkstra

STUDI PERBANDINGAN ALGORITMA CHEAPEST INSERTION HEURISTIC DAN ANT COLONY SYSTEM DALAM PEMECAHAN TRAVELLING SALESMAN PROBLEM

Analisis Beberapa Algoritma dalam Menyelesaikan Pencarian Jalan Terpendek

BAB IV PERANCANGAN. IV.1 Evaluasi Usulan untuk Perancangan Iteratif

BAB I PENDAHULUAN 1.1. Latar Belakang dan Permasalahan

Pembahasan Pencarian Lintasan Terpendek Menggunakan Algoritma Dijkstra dan A*

Penerapan Travelling Salesman Problem dalam Penentuan Rute Pesawat

IMPLEMENTASI ALGORITMA GREEDY PADA PERMAINAN OTHELLO

Transkripsi:

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 kereta api sebagai pekerjaan yang harus dijadwalkan pada sekumpulan sumber daya yang berupa petak-petak blok pada jalur kereta api [OLI00]. Sebuah perjalanan kereta api terdiri atas operasi-operasi yang harus dikerjakan secara berturutan dimana setiap operasi tersebut adalah bagian perjalanan kereta api melewati sebuah petak blok. Urutan operasi-operasi yang harus dikerjakan sama dengan urutan petak blok yang harus dilewati oleh kereta api tersebut. Hal ini dapat dilihat dari rute yang harus dilalui oleh kereta api. Tidak semua aturan-aturan atau batasan-batasan pada perjalanan kereta api jalur tunggal dapat direpresentasikan dengan baik dengan model masalah penjadwalan Job-Shop. Hal ini karena pencarian solusi masalah penjadwalan dengan batasan yang terlalu banyak membutuhkan waktu yang sangat lama. Selain itu, implementasi beberapa aturan tertentu bisa menyebabkan jadwal yang diperoleh memiliki total keterlambatan yang besar. Oleh karena itu, ada beberapa aturan yang dimodelkan dan ada beberapa yang tidak. Hal pertama yang dilakukan dalam penyelesaian masalah penjadwalan kereta api jalur tunggal dengan menggunakan pendekatan constraint programming adalah representasi masalah menjadi sebuah CSP. Dalam hal ini, harus ditentukan variabel, domain dan batasan-batasan pada CSP tersebut. Setelah representasi CSP selesai dibuat, urutan penggunaan petak-petak blok oleh operasi-operasi semua perjalanan kereta api direpresentasikan dengan model graf disjungtif. Algoritma Local Search yang akan digunakan pada Tugas Akhir ini untuk menyelesaikan masalah penjadwalan kereta api jalur tunggal adalah Hill Climbing. Dalam pencarian solusi dengan model penjadwalan Job-Shop, algoritma ini terdiri atas dua bagian utama [OLI00]. Bagian pertama adalah III-1

III-2 pencarian solusi awal. Solusi awal ini mungkin memiliki total keterlambatan yang cukup besar. Pencarian solusi yang memiliki total keterlambatan lebih kecil dilakukan dengan menggunakan konsep lintasan kritis dan ketetanggaan pada solusi yang telah ditemukan. Dengan konsep ketetanggaan, dimungkinkan pembangkitan sebuah solusi baru dari solusi yang telah ditemukan sebelumnya dengan cepat. Solusi baru ini kemudian dihitung total keterlambatannya, apakah lebih kecil atau lebih besar daripada solusi awal yang ditemukan sebelumnya. Proses ini dilakukan secara iteratif sampai tidak ada tetangga yang memiliki total keterlambatan yang lebih kecil. 3.1 Deskripsi Pemodelan Masalah Penjadwalan Kereta Api Jalur Tunggal dengan Model Masalah Penjadwalan Job-Shop Bagian utama pemodelan masalah penjadwalan kereta api jalur tunggal dengan model masalah penjadwalan Job-Shop telah dijelaskan sebelumnya, yaitu peran perjalanan kereta api dan petak-petak blok sebagai pekerjaan dan sumber daya pada masalah penjadwalan Job-Shop. Untuk selanjutnya, istilah pekerjaan dan perjalanan kereta api akan dianggap sama dan digunakan secara bergantian. Demikian juga dengan sumber daya dan petak-petak blok. Penggunaan istilahistilah tesebut tergantung pada representasi yang sedang digunakan. Sekarang misalkan diberikan n buah perjalanan kereta api J 1, J 2,..., J n yang harus dijadwalkan pada m buah rute. Setiap rute terdiri atas petak-petak blok dan stasiun yang berturutan. Jika sebuah perjalanan J i melewati sebuah rute yang terdiri atas k buah petak blok, maka pekerjaan yang merepresentasikan perjalanan J i tersebut terdiri atas k buah operasi o i1, o i2,..., o ik. Setiap operasi yang dilakukan dalam perjalanan J i tersebut menggunakan tepat satu sumber daya berupa satu petak blok yang ada pada rute yang dilalui, yaitu operasi o ij menggunakan petak blok ke-j pada rute yang dilalui oleh J i. Dengan demikian, urutan operasi pada pekerjaan J i ditentukan oleh urutan petak-petak blok pada rute yang dilalui oleh J i.

III-3 Dalam masalah penjadwalan Job-Shop secara umum, waktu penggunaan sumber daya oleh suatu operasi diberikan sebagai input. Dalam masalah penjadwalan kereta api, waktu ini sama dengan lama waktu perjalanan kereta api melewati sebuah petak blok. Hal ini dapat ditentukan dari kecepatan kereta api dan jarak petak blok dengan rumus waktu = jarak / kecepatan. Karena kecepatan hanya digunakan untuk penentuan lama penggunaan petak blok oleh suatu kereta api, maka dalam Tugas Akhir ini, kecepatan kereta api diasumasikan selalu konstan. Percepatan ketika meninggalkan stasiun maupun perlambatan ketika kereta berhenti di stasiun tidak akan diperhitungkan. Ada satu perbedaan antara masalah penjadwalan Job-Shop yang digunakan untuk memodelkan masalah penjadwalan kereta api jalur tunggal ini dengan masalah penjadwalan Job-Shop secara umum. Pada masalah penjadwalan Job-Shop secara umum, sebuah pekerjaan dapat ditunda di awal operasi manapun ketika operasi tersebut harus menunggu sebuah sumber daya yang sedang digunakan oleh pekerjaan lain. Pada masalah penjadwalan kereta api, hal ini tidak berlaku karena kereta api hanya boleh berhenti di stasiun dan tidak bisa berhenti di awal sembarang petak blok (di persinyalan). Dengan demikian, penundaan sebuah perjalanan kereta api hanya bisa dilakukan di awal operasi jika akhir dari operasi sebelumnya menggunakan petak blok yang berakhir di stasiun. Secara ringkas, pemetaan (mapping) yang dilakukan dalam pemodelan ini disajikan pada Tabel III-1 berikut. Tabel III-1 Pemetaan (Mapping) Masalah Penjadwalan Kereta Api Jalur Tunggal dengan Model Masalah Penjadwalan Job-Shop Unsur-Unsur Masalah Penjadwalan Model Masalah Penjadwalan Job-Shop Kereta Api Jalur Tunggal Perjalanan kereta api Pekerjaan PetakBlok Sumber daya atau mesin

III-4 Unsur-Unsur Masalah Penjadwalan Kereta Api Jalur Tunggal Bagian perjalanan melewati satu petak blok Jarak petak blok dibagi kecepatan kereta api di petak blok Rute perjalanan sebagai urutan stasiun dan petak-petak blok yang harus dilalui perjalanan tersebut Konflik terjadi jika dua perjalanan menggunakan satu petak blok yang sama Penundaan atau pemberhentian perjalanan kereta api di stasiun Waktu keberangkatan perjalanan di stasiun untuk menggunakan petak jalan di depannya Waktu tiba suatu perjalanan di stasiun tujuan jika tidak terjadi penundaan Waktu tiba suatu perjalanan di stasiun tujuan setelah terjadi penundaan (untuk mencegah terjadinya konflik) Model Masalah Penjadwalan Job-Shop Operasi Lama waktu penggunaan sumber daya oleh operasi Urutan penggunaan sumber daya oleh sutau pekerjaan Konflik terjadi jika dua operasi menggunakan sumber daya yang sama Pekerjaan menunggu beberapa waktu untuk menggunakan suatu sumber daya Waktu pelepasan pekerjaan untuk menggunakan sumber daya atau sama juga dengan waktu pelepasan operasi Waktu harapan selesai suatu pekerjaan Waktu selesai sebenarnya suatu pekerjaan Penjadwalan masalah kereta api jalur tunggal selanjutnya didefinisikan sebagai pencarian waktu keberangkatan setiap kereta api di stasiun-stasiun yang harus dilaluinya. Dengan menggunakan model masalah penjadwalan Job-Shop, penjadwalan perjalanan kereta api ini kemudian didefinisikan sebagai pencarian waktu pelepasan operasi-operasi yang membentuk perjalanan-perjalanan yang ada.

III-5 3.2 CSP dari Model Masalah Setelah pemodelan masalah selesai dilakukan, hal pertama yang harus dilakukan untuk mencari solusi penjadwalan dengan pendekatan constraint programming adalah merepresentasikan model sebagai sebuah CSP [MON01]. Berikut akan diuraikan lebih jauh mengenai hal ini. 3.2.1 Variabel dan Domain CSP Masalah penjadwalan Job-Shop merupakan salah satu contoh CSP. Dengan demikian, model yang telah dibuat juga dapat direpresentasikan sebagai sebuah CSP. Misalkan d ij menyatakan waktu pelepasan setiap operasi o ij pada perjalanan kereta api J i (o ij adalah bagian perjalanan J i melewati petak blok ke-j pada rute yang dilalui). Himpunan variabel V pada CSP adalah {d ij : 1 i n dan 1 j O i }, dimana O i menyatakan himpunan operasi yang harus dijalankan pada pekerjaan J i. Hal ini karena waktu-waktu pelepasan itulah yang harus dicari dalam masalah penjadwalan kereta api. Dalam Tugas Akhir ini, satuan waktu terkecil yang digunakan dalam penjadwalan adalah satu menit dan penjadwalan kereta api dilakukan dalam satu hari. Dengan demikian, domain dari tiap variabel pada CSP tersebut adalah bilangan asli antara 1 sampai dengan 1440 (hal ini karena satu hari terdiri atas 1440 menit). Batasan-batasan dalam CSP dibuat berdasarkan aturan-aturan perjalanan kereta api seperti telah dijelaskan pada bab sebelumnya. 3.2.2 Batasan-Batasan yang Dimodelkan dalam CSP Tidak semua aturan atau batasan dalam perjalanan kereta api jalur tunggal akan dimodelkan sebagai batasan dalam CSP. Aturan-aturan yang akan dimodelkan adalah aturan persilangan, penyusulan, aturan headway, batas kecepatan maksimal petak blok dan batas waktu minimal dan maksimal penundaaan kereta api di

III-6 stasiun (batasan yang terakhir ini sama dengan aturan bahwa suatu kereta api harus berhenti di suatu stasiun tertentu). Batasan urutan prioritas kereta api yang menggunakan petak blok yang sama tidak akan dimodelkan. Hal ini karena urutan kereta api yang menggunakan petak blok akan ditentukan ketika penjadwalan berlangsung. Urutan ini akan diatur untuk mendapatkan total keterlambatan yang sekecil mungkin. Jika batasan ini diimplementasikan, bisa terjadi sebuah kereta api tidak mengalami penundaan sama sekali di stasiun. Selain itu, mungkin ada kereta api lain yang akan selalu ditunda ketika akan menggunakan suatu petak blok yang sama dengan kereta api lain dengan prioritas lebih tinggi. Hal ini bisa menyebabkan total keterlambatan yang besar. Batasan kapasitas maksimal stasiun juga tidak akan dimodelkan karena batasan tersebut merupakan batasan n-ary. Pencarian solusi CSP dengan batasan n-ary membutuhkan waktu lama [OLI01]. Selain itu, konflik karena batasan ini juga sangat jarang terjadi. Dan kalau terjadi, hal ini bisa diatasi secara manual dengan menambahkan satu batasan tambahan, yaitu salah satu kereta api harus berhenti di stasiun sebelumnya. Karena alasan ini, semua stasiun akan diasumsikan memiliki kapasitas tak-berhingga. Jalur ganda yang akan diimplementasikan dalam Tugas Akhir ini adalah jalur kembar. Jalur kembar akan dimodelkan sebagai jalur tunggal yang tidak memiliki aturan persilangan. Jalur ganda secara umum tidak diimplementasikan karena pada prakteknya, jarang terjadi dua kereta api berjalan beriring-iringan. 3.2.3 Representasi Intensional Batasan-Batasan CSP Batasan-batasan yang akan diimplementasikan akan direpresentasikan secara intensional dengan menggunakan rumus-rumus matematis. Notasi-notasi yang digunakan sama dengan penjelasan sebelumnya, yaitu d ij menyatakan operasi ke-j pada perjalanan J i dan p ij adalah lama waktu pemrosesan operasi tersebut menggunakan petak blok ke-j pada rute yang dilalui oleh perjalanan J i.

III-7 Batasan yang pertama adalah urutan operasi pada satu perjalanan kereta api. Operasi ke-(j+1) pada perjalanan J i hanya bisa dijalankan setelah operasi ke-j telah selesai dikerjakan. Dengan kata lain, waktu pelepasan operasi o i(j+1) harus lebih dari atau sama dengan waktu pelepasan operasi o ij ditambah lama waktu pemrosesan operasi tersebut. Hal ini direpresentasikan secara intensional dengan rumus [OLI01] d i(j+1) d ij + p ij. Dengan menggunakan graf disjungtif, batasan di atas akan menjadi sebuah sisi berarah konjungtif. Aturan persilangan dan aturan penyusulan pada dasarnya adalah dua batasan yang sama, yaitu dua buah kereta api tidah boleh menggunakan petak blok yang sama dalam waktu yang sama. Misalkan perjalanan J i dan perjalanan J i menggunakan petak blok yang sama, yaitu petak blok ke-j pada rute yang dilalui oleh J i dan petak blok ke-j pada rute yang dilalui oleh J i. Maka operasi o ij dan o i j akan menggunakan petak blok yang sama. Untuk itu urutan penggunakan petak blok harus ditentukan. Jika operasi o ij ingin dikerjakan lebih dulu pada petak blok tersebut, maka batasan yang harus dipenuhi direpresentasikan secara intensional sebagai d i j d ij + p ij, dan jika sebaliknya maka representasinya adalah d ij d i j + p i j. Karena urutan ini tidak diberikan ketika input (pengurutan statis), melainkan ditentukan ketika proses penjadwalan berlangsung (pengurutan dinamis), maka batasan yang harus dipenuhi menjadi [OLI01] d i j d ij + p ij atau d ij d i j + p i j. Batas kecepatan maksimal kereta api tidak perlu dimodelkan sebagai batasan dalam CSP. Hal ini karena kecepatan maksimal hanya berpengaruh pada lama waktu penggunaan petak blok oleh kereta api yang bersangkutan. Jadi, batasan ini hanya digunakan untuk perhitungan p ij saja.

III-8 Sekarang misalkan sebuah perjalanan J i harus berhenti di suatu stasiun antara petak blok ke-j dan petak blok ke-(j+1) pada rute yang dilaluinya. Lama waktu minimal dan maksimal perhentian kereta tersebut di stasiun berturut-turut adalah m ij dan M ij. Dengan demikian, waktu pelepasan operasi ke-(j+1) harus lebih dari atau sama dengan waktu tiba kereta api di stasiun ditambah lama waktu minimal pemberherhentian kereta api di stasiun. Representasi intensional dari batasan ini adalah d i(j+1) d ij + p ij + m ij karena d ij + p ij adalah waktu tiba kereta api di stasiun. Selain itu, waktu pelepasan operasi o i(j+1) harus kurang dari waktu tiba kereta di stasiun ditambah lama waktu maksimal pemberhentian kereta api di stasiun. Representasi intensional dari hal ini adalah d i(j+1) d ij + p ij + M ij. Jadi, batas waktu minimal dan maksimal penundaan perjalanan kereta api di stasiun dapat direpresentasikan dengan batasan d i(j+1) d ij + p ij + m ij dan d i(j+1) d ij + p ij + M ij. 3.3 Graf Disjungtif dari Model Masalah Model graf disjungtif yang digunakan untuk merepresentasikan model penjadwalan Job-Shop dari masalah penjadwalan kereta api jalur tunggal ini sama dengan graf disjungtif yang telah dijelaskan pada Bab II. Yang berbeda adalah struktur lintasan kritis dan ketetanggaan yang digunakan. 3.3.1 Struktur Lintasan Kritis Lintasan kritis dibentuk oleh beberapa operasi tertentu. Jika diberikan sebuah solusi dari masalah penjadwalan kereta api berupa jadwal yang memenuhi semua batasan yang ada, beberapa operasi yang urutan pengerjaannya tidak dapat diubah tanpa mengubah nilai fungsi objektif membentuk sebuah lintasan kritis. Definisi tersebut dapat digunakan pada masalah penjadwalan Job-Shop dengan menggunakan keterlambatan total sebagai fungsi objektifnya [OLI01].

III-9 Selama proses penjadwalan berlangung, operasi-operasi yang mengalami konflik karena menggunakan sumber daya yang sama harus ditentukan urutannya (urutan penggunaan sumber daya tersebut). Misalkan operasi o ij dengan operasi o i j mengalami konflik karena menggunakan sebuah sumber daya yang sama. Penentuan urutan tersebut dilakukan dengan menambahkan sebuah batasan urutan penggunaan sumber daya, misalnya o ij o i j yang berarti bahwa operasi o ij menggunakan sumber daya sebelum operasi o i j. Dalam kasus seperti ini, kedua operasi tersebut mungkin memiliki jadwal yang berturutan (adjacent schedule) pada solusi yang ditemukan, yaitu operasi o i j dilakukan tepat setelah operasi o ij selesai. Secara matematis hal ini dituliskan sebagai d i j = d ij + p ij. Himpunan semua operasi-operasi yang memiliki jadwal berturutan akan menjadi bagian dari lintasan kritis [OLI01]. Sisi pada graf disjungtif yang menghubungkan dua operasi dengan jadwal yang berturutan disebut sebagai sisi kritis. Algoritma untuk menjadwalkan operasi-operasi pada perjalanan kereta api didasarkan pada pengurutan operasi-operasi tersebut dalam penggunaan petakpetak blok yang ada sehingga tidak terjadi konflik. Kemudian pencarian jadwal layak yang lebih baik didasarkan pada pemilihan sisi-sisi kritis pada lintasan kritis yang akan diubah arahnya sehingga mengubah urutan operasi-operasi dalam penggunaan petak-petak blok. 3.3.2 Struktur Ketetanggaan Terdapat beberapa struktur ketetanggaan di literatur-literatur untuk masalah penjadwalan Job-Shop sebagaimana telah dijelaskan pada Bab II. Namun tidak banyak referensi yang menggunakan total keterlambatan sebagai fungsi objektif yang harus diminimalkan. Dalam Tugas Akhir ini, struktur ketetanggaan yang digunakan didasarkan pada struktur lintasan kritis dan sisi-sisi kritis yang dijelaskan pada bagian sebelumnya. Dengan menggunakan struktur ini, banyaknya tetangga dari sebuah solusi sama dengan banyaknya sisi-sisi kritis

III-10 pada solusi tersebut, yaitu banyaknya pasangan-pasangan operasi yang memiliki jadwal yang berturutan (adjacent operations). Sisi-sisi kritis ini digunakan sebagai dasar perubahan sebuah solusi yang ditemukan menjadi solusi lain (tetangga dari solusi yang telah ditemukan) dengan tujuan mencari solusi yang lebih baik (memiliki total keterlambatan yang lebih kecil). Hal ini dilakukan dengan mengubah urutan dua buah operasi yang terhubung oleh sebuah sisi kritis [OLI01]. Dengan demikian, sebuah tetangga dari suatu solusi ditentukan oleh sepasang operasi yang terhubung oleh sebuah sisi kritis. Misalkan sebuah solusi memiliki sisi kritis (o ij o i j ), yaitu operasi o i j menggunakan sumber daya yang sama dengan operasi o ij dan operasi o i j dilakukan tepat setelah operasi o ij selesai menggunakan sumber daya (kedua operasi tersebut memiliki jadwal yang berturutan atau adjacent schedule). Salah satu tetangga dari solusi tersebut adalah solusi lain yang memiliki sisi (o i j o ij ) dan sisi-sisi lainnya (baik sisi berarah konjungtif maupun disjungtif) sama dengan sisi-sisi pada solusi sebelumnya. Jadi, pengubahan urutan dua buah operasi yang terhubung oleh sebuah sisi kritis ini dapat digunakan untuk membangkitkan sebuah tetangga dari solusi asal. Hal ini mengakibatkan hilangnya beberapa sisi kritis dari solusi asal dan bisa juga menambah sisi-sisi kritis baru pada tetangga yang dibangkitkan. 3.4 Pencarian Solusi Model Masalah dengan Hill Climbing Algoritma penjadwalan kereta api jalur tunggal yang digunakan pada Tugas Akhir ini terdiri atas dua bagian utama. Bagian pertama adalah pencarian sebuah solusi awal dan bagian kedua adalah pencarian solusi lain secara progresif untuk mengurangi total keterlambatan dari solusi yang telah ditemukan sebelumnya. Dalam Tugas Akhir ini, hal tersebut dilakukan dengan menggunakan algoritma Hill Climbing. Pseudo-code dari algoritma ini adalah sebagai berikut.

III-11 function Find-Good-Solution () solusi Find-First-Solution () repeat himpunan tetangga Nb (solusi) kriteria penghentian True for each tetangga in himpunan tetangga do if TT (tetangga) TT (solusi) then solusi tetangga kriteria penghentian False endif endfor until kriteria penghentian = True return solusi Terdapat tiga fungsi utama pada skema di atas. Fungsi yang pertama adalah Find- First-Solution (). Fungsi ini digunakan untuk mencari satu solusi awal. Pencarian ini dilakukan secara cepat, walaupun total keterlambatan yang diperoleh masih besar. Fungsi yang kedua adalah fungsi ketetanggaan Nb yang mengembalikan himpunan tetangga dari solusi yang sudah ditemukan. Fungsi yang terakhir adalah fungsi objektif TT untuk menghitung total keterlambatan dari sebuah solusi. 3.4.1 Pencarian Solusi Pertama Implementasi fungsi Find-First-Solution () dilakukan dengan algoritma Local Search. Algoritma ini dimulai dengan pemberian nilai berupa waktu pelepasan pada operasi-operasi sedemikian hingga semua batasan urutan operasi pada satu perjalanan terpenuhi. Hal ini dapat dilakukan dengan cepat menggunakan algoritma DFS pada graf disjungtif. Pemberian nilai pertama kali ini mungkin menyebabkan terjadinya konflik, yaitu adanya dua operasi berbeda yang menggunakan petak blok yang sama. Heuristic yang digunakan dalam algoritma ini untuk menyelesaikan semua konflik yang terjadi adalah strategi kronologis (chronological strategy) dan penentuan urutan operasi yang akan menggunakan petak blok pertama kali dilakukan dengan aturan Shortest Processing Time (SPT) [OLI01].

III-12 Secara ringkas, langkah-langkah yang dilakukan dalam algoritma pencarian solusi pertama ini adalah sebagai berikut: 1. Jadwalkan operasi-operasi tanpa melanggar urutan pada satu perjalanan. 2. Buat senarai yang menyimpan konflik karena penggunaan petak blok yang sama. 3. Pilih konflik yang terjadi paling awal dan urutkan penggunaan petak blok berdasarkan aturan SPT. 4. Ubah waktu pelepasan operasi yang ditunda karena konflik dan juga waktu pelepasan operasi-operasi setelahnya pada satu perjalanan yang sama. 5. Ulangi langkah 2, 3 dan 4 di atas sampai senarai pada langkah dua kosong, yaitu tidak ada lagi konflik yang terjadi. 3.4.1.1 Strategi Kronologis dalam Penyelesaian Konflik Dalam masalah penjadwalan kereta api, penyelesaian sebuah konflik dengan cara menunda salah satu perjalanan di stasiun selalu dapat menimbulkan konflik baru. Konflik yang baru ini melibatkan operasi-operasi pada perjalanan yang ditunda. Sebagai contoh, misalkan penjadwalan dilakukan dengan menggunakan n perjalanan kereta api. Penjadwalan pertama ini menghasilkan sebuah jadwal yang hanya mengandung satu konflik saja. Pada kasus yang ekstrim (dengan kemungkinan terburuk), penyelesaian satu konflik tersebut dapat menyebabkan terjadinya n 2 konflik baru yang terjadi antara perjalanan yang ditunda dengan n 2 perjalanan lain yang pada mulanya tidak terjadi konflik. Contoh kasus terburuk dengan n = 4 disajikan dengan diagram ruang-waktu pada Gambar III-1. Pada Gambar III-1 (a), sebuah jadwal hanya mengandung satu konflik. Pada Gambar III-1 (b), sebuah jadwal baru yang diperoleh dengan menunda salah satu perjalanan mengandung 4 2 = 2 konflik baru. Oleh karena itu, diperlukan sebuah strategi penyelesaian konflik secara sistematis sehingga semua konflik selalu dapat diselesaikan. Salah satu strategi yang dapat digunakan adalah strategi kronologis (chronological strategy) [OLI01]. Strategi ini menyelesaikan semua konflik yang ada secara urut berdasarkan urutan waktu terjadinya konflik. Semua konflik baru yang terjadi karena penyelesaian sebuah

III-13 konflik juga selalu dapat diselesaikan dengan strategi ini. Hal ini karena dalam masalah penjadwalan kereta api, konflik baru selalu terjadi setelah konflik yang diselesaikan sebelumnya. Rute s 4 s 4 Rute r 3 r 3 s 3 s 3 r 2 r 2 s 2 s 2 r 1 r 1 s 1 s 1 100 110 120 130 100 110 120 130 Unit-unit Waktu Unit-unit Waktu (a) (b) Gambar III-1 Contoh Kasus Terburuk Penyelesaian Konflik 3.4.1.2 Aturan Shortest Processing Time (SPT) Untuk menyelesaikan sebuah konflik yang terjadi karena penggunaan petak blok yang sama, waktu pelepasan yang baru harus diberikan pada operasi yang ditunda perjalanannya. Dengan kata lain, konflik diselesaikan dengan mengurutkan operasi-operasi yang menggunakan petak blok yang sama. Untuk mendapatkan solusi awal yang baik dalam Local Search, heuristic yang digunakan untuk menentukan urutan ini adalah aturan Shortest Processing Time (SPT). Aturan ini mengurutkan dua buah operasi untuk mendapatkan total keterlambatan terkecil antara dua buah operasi tersebut. Sebagai contoh penggunaan aturan SPT tersebut, misalkan kereta A berangkat dari stasiun s 1 ke stasiun s 2 pada jam 115 dan kereta B berangkat dari stasiun s 2 ke stasiun s 1 pada jam 137. Antara kedua stasiun tersebut hanya terdapat sebuah petak blok r 1. Misalkan lama waktu penggunaan petak blok tersebut oleh kereta A adalah 35 dan oleh kereta B adalah 27. Akibatnya, akan terjadi konflik

III-14 penggunaan petak blok r 1 oleh kedua perjalanan tersebut. Hal ini terlihat dari diagram ruang-waktu pada Gambar III-2. s 2 kereta A kereta B s 1 100 200 Gambar III-2 Jadwal Dua Kereta yang Bertabrakan Untuk menyelesaikan konflik yang terjadi di atas, terdapat dua pilihan cara. Cara yang pertama adalah kereta A ditunda perjalanannya di stasiun s 1 dan yang kedua adalah stasiun B ditunda perjalanannya di stasiun s 2. Dengan menggunakan aturan SPT, kereta yang harus ditunda perjalanannya adalah kereta B. Hal ini karena penundaan tersebut menimbulkan keterlambatan yang lebih kecil daripada keterlambatan yang terjadi jika kereta A ditunda. Hal ini terlihat dari diagram ruang-waktu pada Gambar III-3. s2 s 2 kereta A kereta B kereta B kereta A s 1 s 1 100 200 100 200 Gambar III-3 Jadwal Dua Kereta dengan Penundaan di Stasiun 3.4.2 Pencarian Solusi yang Lebih Baik Pencarian solusi yang lebih baik ini dilakukan dengan menggunakan struktur ketetanggaan yang telah dijelaskan sebelumnya. Fungsi ketetanggaan Nb dan fungsi objektif TT memiliki peran sangat penting pada bagian ini. Solusi-solusi yang lebih baik daripada solusi sebelumnya dipilih dari tetangga-tetangga yang dihasilkan oleh fungsi Nb. Fungsi TT digunakan untuk mengukur apakah sebuah tetangga memiliki total keterlambatan lebih kecil daripada solusi yang telah ditemukan sebelumnya.

III-15 Fungsi ketetanggaan ini didasarkan pada lintasan kritis dan struktur ketetanggaan yang telah dijelaskan sebelumnya juga. Satu hal yang harus diperhatikan dalam implementasi fungsi ini adalah tetangga yang baru mungkin memiliki lintasan kritis yang berbeda dari solusi asal. Proses pencarian tetangga baru dilakukan dengan cara mengubah arah sebuah sisi pada lintasan kritis. Hal ini juga harus diperhatikan karena dapat menyebabkan terjadinya konflik baru. Konflik baru yang mungkin terjadi di bagian ini juga diselesaikan dengan cara yang sama pada bagian sebelumnya, yaitu menggunakan aturan SPT. Setelah mengetahui tetangga-tetangga dari sebuah solusi, pencarian solusi yang lebih baik dilakukan dengan membandingkan total keterlambatan antara solusi asal dengan tetangga-tetangganya. Jika ada tetangga yang memiliki total keterlambatan lebih kecil, tetangga ini akan digunakan sebagai solusi berikutnya. Iterasi berhenti ketika tidak ada lagi tetangga yang memiliki total keterlambatan yang lebih kecil. Solusi yang terakhir ditemukan inilah yang akan menjadi solusi algoritma Hill Climbing. 3.5 Contoh Kasus Penjadwalan dengan Algoritma Hill Climbing Untuk mengilustrasikan algoritma yang digunakan dalam Tugas Akhir ini, digunakan sebuah contoh perjalanan kereta api jalur tunggal sederhana dengan menggunakan empat stasiun, tiga perjalanan dan antara satu stasiun dengan stasiun berikutnya hanya terdapat satu petak blok saja. Rute ini dapat dilihat pada Gambar III-4 berikut. Gambar III-4 Rute Perjalanan Kereta Api Sederhana

III-16 Selanjutnya, data perjalanan ketiga perjalanan tersebut disajikan pada Tabel III-2. Perjalanan kereta api Tabel III-2 Data Perjalanan Kereta Api Urutan petak blok Waktu berangkat 1 r 1, r 2, r 3 100 20, 15, 15 2 r 3, r 2, r 1 100 20, 17, 20 3 r 1, r 2 160 15, 12 Lama waktu penggunaan masing-masing petak blok Hal pertama yang dilakukan dalam algoritma Hill Climbing adalah mencari sebuah jadwal layak yang tidak melanggar aturan-aturan perjalanan kereta api. Untuk itu, langkah pertama dilakukan adalah menjadwalkan operasi-operasi setiap perjalanan kereta api tanpa melanggar urutan operasi-operasi pada satu perjalanan. Dari data perjalanan pada Tabel III-2, operasi pertama pada perjalanan 1 dijalankan sama dengan waktu perjalanan tersebut, yaitu 100. Operasi tersebut menggunakan petak blok r 1 selama 20 menit sehingga perjalanan 1 sampai di stasiun s 2 pada waktu 120. Dengan demikian, operasi kedua pada perjalanan 1 dijalankan pada waktu 120. Operasi kedua ini menggunakan petak blok r 2 selama 15 menit, sehingga perjalanan 1 sampai di stasiun s 3 pada waktu 135. Cara penjadwalan operasi-operasi seperti ini dilakukan pada setiap operasi pada setiap perjalanan yang ada. Hasilnya adalah jadwal kereta api yang mungkin mengandung konflik. Dalam contoh kasus ini, jadwal yang dihasilkan disajikan dalam diagram ruang-waktu pada Gambar III-5. Pada Gambar III-5, terlihat bahwa perjalanan 1 dan 2 mengalami konflik penggunaan petak blok r 2 dan tidak ada konflik lain yang terjadi. Secara otomatis, konflik tersebut adalah konflik paling awal yang terjadi dalam langkah pertama algoritma sehingga konflik itulah yang akan diselesaikan (jika pada langkah pertama ini terdapat lebih dari satu konflik yang terjadi, maka konflik yang diselesaikan pertama kali adalah konflik yang paling awal).

III-17 Rute s 4 r 3 kereta 2 s 3 r 2 s 2 r 1 kereta 1 kereta 3 s 1 100 110 120 130 140 150 160 170 180 Unit-unit Waktu Gambar III-5 Diagram Ruang-Waktu dari Data pada Tabel III-1 Penyelesaian konflik ini dilakukan dengan mengurutkan penggunaan petak blok r 2 oleh perjalanan 1 dan 2. Jika perjalanan 1 dilakukan lebih dulu, maka perjalanan 2 harus ditunda di stasiun s 3 sampai perjalanan 1 selesai menggunakan petak blok r 2, yaitu pada waktu 135. Dengan demikian, perjalanan 2 harus menunda perjalanan selama 135 120 = 15 menit. Sebaliknya, jika perjalanan 2 dikerjakan lebih dulu, maka perjalanan 1 harus ditunda di stasiun 2. Lama penundaan ini adalah 17 menit. Berdasarkan aturan SPT, perjalanan 1 lah yang akan dikerjakan lebih dulu. Hasil dari langkah ini adalah sebuah jadwal baru yang disajikan pada Gambar III-6. s 4 Rute r 3 kereta 2 s 3 r 2 s 2 kereta 3 r 1 kereta 1 s 1 100 110 120 130 140 150 160 170 180 Unit-unit Waktu Gambar III-6 Penyelesaian Konflik Pertama pada Penjadwalan

III-18 Penundaan perjalanan 2 di stasiun s 2 selama 15 menit ini berarti waktu pelepasan operasi kedua dari perjalanan ini berubah dari 120 menajdi 135. Secara otomatis hal ini juga menyebabkan perubahan waktu pelepasan operasi ketiga dari perjalanan 2, yaitu dari 137 menjadi 152. Akibat lain dari penundaan ini adalah terjadinya konflik baru antara perjalanan 2 dan perjalanan 3 di petak blok r 1 seperti terlihat pada diagram ruang-waktu pada Gambar III-6. Karena konflik tersebut adalah konflik paling awal yang terjadi pada jadwal yang baru ini, maka konflik tersebut diselesaikan aturan SPT dengan menunda perjalanan 3 di stasiun s 1. Perjalanan 2 sampai di stasiun s 1 pada waktu 172, sehingga perjalanan 3 harus menunda perjalanannya selama 172 160 = 12 menit. Hasilnya disajikan pada Gambar III-7. s 4 Rute r 3 kereta 2 s 3 r 2 s 2 r 1 kereta 1 kereta 3 s 1 100 110 120 130 140 150 160 170 180 Unit-unit Waktu Gambar III-7 Penyelesaian Konflik Kedua pada Penjadwalan Jadwal terakhir ini sudah tidak mengandung konflik sama sekali sehingga merupakan sebuah solusi. Total keterlambatan yang terjadi adalah 15 + 12 = 27 menit. Langkah selanjutnya adalah mencari tetangga dari solusi yang ditemukan dengan total keterlambatan yang lebih kecil. Untuk itu dilakukan identifikasi sisisisi kritis pada graf disjungtif yang merepresentasikan solusi yang telah ditemukan. Representasi graf disjungtif tersebut disajikan pada Gambar III-8 berikut.

III-19 Gambar III-8 Graf Disjungtif dari Solusi yang Ditemukan Pada Tugas Akhir ini, definisi sisi kritis yang digunakan adalah sisi disjungtif yang menghubungkan dua operasi yang dijadwalkan secara berurutan (adjacent schedule). Dengan demikian, pada solusi di atas, sisi kritisnya adalah sisi disjungtif yang menghubungkan operasi kedua pada perjalanan 1 dengan operasi kedua dari perjalanan 2, yaitu (o 12 o 22 ) dan juga operasi ketiga dari perjalanan 2 dan operasi petama dari perjalanan 3, yaitu (o 23 o 31 ). Dengan demikian, terdapat dua tetangga dari graf disjungtif yang dapat dilihat pada Gambar III-9. Gambar III-9 Graf Disjungtif Tetangga dari Graf pada Gambar III-8

III-20 Tetangga pada Gambar III-9 (a) diperoleh dengan mengubah arah sisi kritis (o 12 o 22 ) menjadi (o 22 o 12 ) dan tetangga pada Gambar III-9 (b) diperoleh dengan mengubah arah (o 23 o 31 ) menjadi (o 31 o 23 ). Representasi diagram ruangwaktu dari jadwal yang baru ini berturut-turut disajikan dalam Gambar III-10 (a) dan (b). s 4 Rute r 3 kereta 2 s 3 r 2 s 2 r 1 kereta 1 kereta 3 s 1 100 110 120 130 140 150 160 170 180 Unit-unit Waktu (a) s 4 Rute r 3 kereta 2 s 3 r 2 s 2 r 1 kereta 1 kereta 3 s 1 100 110 120 130 140 150 160 170 180 Unit-unit Waktu (b) Gambar III-10 Jadwal yang Diperoleh dari Graf Disjungtif Tetangga

III-21 Jadwal pada Gambar III-10 (a) memiliki total keterlambatan 17 menit sedangkan jadwal pada gambar III-10 (b) memiliki total keterlambatan 38 menit. Jadi, tetangga yang pertama memiliki total keterlambatan lebih kecil daripada total keterlambatan solusi yang telah ditemukan, yaitu 27 menit. Dengan demikian, tetangga tersebut dijadikan solusi berikutnya pada iterasi yang dilakukan. Algoritma ini dilanjutkan dengan menganalisa tetangga-tetangga dari solusi yang baru tersebut. Iterasi berakhir jika tetangga-tetangga dari solusi yang telah ditemukan tidak memiliki total keterlambatan yang lebih kecil. Pada contoh kasus ini, solusi yang terakhir ditemukan di atas merupakan solusi terakhir algoritma ini.