PENYELESAIAN PERMAINAN FLOW COLORS DENGAN MEMINIMUMKAN DEVIASI PANJANG TIAP JALUR
IRFAN CHAHYADI
DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR 2014
PERNYATAAN MENGENAI SKRIPSI DAN SUMBER INFORMASI SERTA PELIMPAHAN HAK CIPTA Dengan ini saya menyatakan bahwa skripsi berjudul Penyelesaian Permainan Flow Colors dengan Meminimumkan Deviasi Panjang Tiap Jalur adalah benar karya saya dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apa pun kepada perguruan tinggi mana pun. Sumber informasi yang berasal atau dikutip dari karya yang diterbitkan maupun tidak diterbitkan dari penulis lain telah disebutkan dalam teks dan dicantumkan dalam Daftar Pustaka di bagian akhir skripsi ini. Dengan ini saya melimpahkan hak cipta dari karya tulis saya kepada Institut Pertanian Bogor. Bogor, Juni 2014
Irfan Chahyadi NIM G54100057
ABSTRAK IRFAN CHAHYADI. Penyelesaian Permainan Flow Colors dengan Meminimumkan Deviasi Panjang Tiap Jalur. Dibimbing oleh AMRIL AMAN dan FARIDA HANUM. Flow Colors adalah permainan puzzle asah otak. Tugas pemain adalah menghubungkan setiap pasangan titik berwarna sama dengan pipa sehingga memenuhi area permainan dengan warna. Pipa-pipa yang berbeda warna tidak boleh bersilangan/overlapping. Permasalahan permainan ini dapat dimodelkan sebagai masalah pembuatan rute pada graf yang merupakan modifikasi dan pengembangan dari model Traveling Salesman Problem (TSP). Dalam karya ilmiah ini akan dibahas bagaimana memformulasikan Puzzle Flow Colors dengan meminimumkan deviasi panjang semua jalur menggunakan integer linear programming serta menyelesaikannya dengan software LINGO 11.0. Kata kunci: integer linear programming, puzzle Flow Colors, Traveling Salesman Problem
ABSTRACT IRFAN CHAHYADI. Solving Flow Colors Game to Minimize Length Deviation of Each Line. Supervised by AMRIL AMAN and FARIDA HANUM. Flow Colors is a puzzle game, where players must connect every pair of points of the same color with a pipe so that the pipes cover all the game areas with colors. Pipes with different colors should not be intersected/ overlapped. This problem can be modelled as a problem of making routes on a graph which is a modification of Traveling Salesman Problem (TSP). This study presents how to formulate puzzle of Flow Colors to minimize length deviation of the lines represented by the pipes by applying method of integer linear programming and solving it by using LINGO 11.0 computer software. Key words: integer linear programming, puzzle Flow Colors, Traveling Salesman Problem
PENYELESAIAN PERMAINAN FLOW COLORS DENGAN MEMINIMUMKAN DEVIASI PANJANG TIAP JALUR
IRFAN CHAHYADI
Skripsi sebagai salah satu syarat untuk memperoleh gelar Sarjana Sains pada Departemen Matematika
DEPARTEMEN MATEMATIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR BOGOR NAMA2014 PENULIS
Judul Skripsi : Penyelesaian Permainan Flow Colors dengan Meminimumkan Deviasi Panjang Tiap Jalur Nama : Irfan Chahyadi NIM : G54100057
Disetujui oleh
Dr. Ir. Amril Aman, M.Sc. Pembimbing I
Dra. Farida Hanum, M.Si. Pembimbing II
Diketahui oleh
Dr. Toni Bakhtiar, M.Sc. Ketua Departemen
Tanggal Lulus:
PRAKATA Puji dan syukur penulis ucapkan kepada Allah SWT. atas segala nikmat, rahmat, karunia dan pertolongan yang telah diberikan sehingga karya ilmiah ini berhasil diselesaikan. Judul karya ilmiah ini adalah Penyelesaian Permainan Flow Colors dengan Meminimumkan Deviasi Panjang Tiap Jalur. Penyusunan karya ilmiah ini tidak lepas dari bantuan beberapa pihak. Oleh karena itu, penulis mengucapkan terima kasih kepada: 1 Allah SWT atas segala rahmat dan karunia-Nya, 2 Nabi besar Muhammad SAW sebagai nabi akhir zaman, 3 Keluarga tercinta: Ayah dan Mamah yang selalu memberi nasihat, motivasi dan doa, 4 Dr. Ir. Amril Aman, M.Sc. selaku Pembimbing I atas kesabaran dalam membimbing penulis serta saran dan ilmunya yang bermanfaat, 5 Dra. Farida Hanum, M.Si. selaku Pembimbing II yang telah membimbing dan memotivasi penulis dalam menulis karya ilmiah ini, 6 Drs. Prapto Tri Supriyo, M.Kom. selaku Dosen Penguji yang telah memberikan ilmu, saran, serta dukungan, 7 seluruh dosen Departemen Matematika IPB yang telah membimbing dan memberikan ilmunya selama ini, 8 para staf Departemen Matematika IPB yang telah membantu dalam berbagai hal 9 teman seperjuangan bimbingan: Kak Razon, Kak Fardan, Kak Dina, Kak Gita, Kak Elisa, Kak Suzie, Kak Agung, Eric, Pupu, Alin, 10 Kamil, Danang, Ayun, Vina, Imad, Fikri, Fajar, Syafi’i, Rendi, Komti, Adi, Tri, Nyoman, Irfan N, Bonno, Tuty, Susi, Abi, Irma, Aul, Dedi, Syika dan seluruh teman-teman seperjuangan di Gumatika, 11 Kak Rio, Kak Dayat, Kak Mirna, Kak Galih dan semua Kakak kelas Matematika 46 sebagai contoh yang baik, 12 semua sahabat Matematika 47 sebagai keluarga yang ceria, 13 semua adik-adik Matematika 48 dan 49 yang selalu mendukung, 14 dan semua pihak yang telah membantu penulis dalam menyelesaikan karya ilmiah ini. Penulis menyadari bahwa dalam karya ilmiah ini masih terdapat banyak kekurangan dan masih jauh dari kesempurnaan. Oleh karena itu, penulis mengharapkan kritik dan saran yang membangun agar karya ilmiah ini dapat terus menambah wawasan pembaca sekalian. Semoga karya ilmiah ini bermanfaat bagi dunia ilmu pengetahuan, khususnya bidang matematika.
Bogor, Juni 2014 Irfan Chahyadi
DAFTAR ISI DAFTAR TABEL DAFTAR GAMBAR DAFTAR LAMPIRAN PENDAHULUAN Latar Belakang Perumusan Masalah Tujuan Penelitian Ruang Lingkup Penelitian LANDASAN TEORI Linear Programming Ekuivalensi Formulasi Integer Programming Traveling Salesman Problem DESKRIPSI DAN FORMULASI MASALAH Deskripsi Masalah Pemodelan STUDI KASUS Skenario 1 Skenario 2 Skenario 3 Skenario 4 HASIL DAN PEMBAHASAN SIMPULAN DAN SARAN Simpulan Saran DAFTAR PUSTAKA LAMPIRAN RIWAYAT HIDUP
viii viii viii 1 1 2 2 2 2 2 3 4 4 5 5 6 9 9 12 12 13 14 17 17 18 18 19 27
DAFTAR TABEL
1 2 3 4 5 6 7 8
Matriks kemungkinan pembuatan ruas jalur 3 × 3 Sel given pada Flow Colors berukuran 6 × 6 dengan 6 warna Sel given pada Flow Colors berukuran 6 × 6 dengan 3 warna Sel given pada Flow Colors berukuran 9 × 9 Panjang tiap jalur hasil solusi Skenario 1 Panjang tiap jalur hasil solusi Skenario 2 Panjang tiap jalur hasil solusi Skenario 3 Panjang tiap jalur hasil solusi Skenario 4
9 12 13 13 14 14 16 16
DAFTAR GAMBAR 1 2 3 4 5 6 7 8 9 10 11 12 13
Flow Colors 9 × 9 Ilustrasi permainan Flow Colors 5 × 5 dengan 5 warna dan solusinya Perbedaan dengan kendala eliminasi subtur (kiri) dan tanpa kendala eliminasi subtur (kanan) Kasus Flow Colors berukuran 3 × 3 Kasus Flow Colors berukuran 6 × 6 dengan 6 warna Kasus Flow Colors berukuran 6 × 6 dengan 3 warna Kasus Flow Colors berukuran 9 × 9 Hasil solusi Skenario 1 Hasil solusi Skenario 2 Hasil solusi Skenario 3 Hasil solusi Skenario 4 Solusi optimal yang tak tunggal Karakteristik kasus yang tidak memiliki solusi
1 5 8 9 12 12 13 14 14 15 15 16 17
DAFTAR LAMPIRAN 1 2 3 4 5 6 7 8 9
Script komputasi MATLAB untuk membangkitkan matriks 𝐴𝑛 (𝑖, 𝑗) Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 1 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 2 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 3 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 4 Hasil komputasi LINGO 11.0 untuk Skenario 1 Hasil komputasi LINGO 11.0 untuk Skenario 2 Hasil komputasi LINGO 11.0 untuk Skenario 3 Hasil komputasi LINGO 11.0 untuk Skenario 4
19 20 21 22 23 24 24 25 26
PENDAHULUAN Latar Belakang Dalam perkembangannya matematika memiliki peranan penting dalam memecahkan masalah kehidupan sehari-hari. Tidak hanya permasalahan dalam dunia nyata, matematika juga dapat menyelesaikan beberapa permasalahan yang ditemukan dalam sebuah permainan. Beberapa permainan dapat diselesaikan dengan matematika seperti Sudoku, Challenger puzzle, N-Queens problem, dan masih banyak lagi. Dalam karya ilmiah ini akan dibahas pemecahan masalah permainan Flow Colors dengan pendekatan matematika. Flow Colors adalah permainan puzzle asah otak yang dikembangkan oleh Mohammed Nafiz Almadhoun. Selain di website-nya, permainan ini dapat ditemui di beberapa platfom seperti Android sebagai sebuah aplikasi. Dalam permainan Flow Colors, tugas pemain adalah menghubungkan setiap pasangan titik berwarna sama dengan pipa sehingga memenuhi area permainan dengan warna. Namun pipa-pipa tersebut tidak boleh bersilangan/overlapping. Contoh kasus dapat dilihat pada Gambar 1. Area permainan merupakan persegi dengan banyak sel. Tingkat kesulitan puzzle ini ditentukan oleh besarnya area permainan dan banyaknya warna. Permasalahan permainan ini dapat dimodelkan sebagai masalah pembuatan rute pada graf yang merupakan modifikasi dan pengembangan dari model Traveling Salesman Problem (TSP) sehingga dapat diselesaikan dengan metode Integer Linear Programming (ILP). Dalam karya ilmiah ini akan dibahas bagaimana memformulasikan permainan puzzle Flow Colors dengan metode integer linear programming, serta menyelesaikannya menggunakan software LINGO 11.0.
Gambar 1 Flow Colors 9 × 9
2 Perumusan Masalah Permainan ini mengundang beberapa pertanyaan menarik untuk bidang ilmu matematika: 1. Dapatkah permainan ini dipecahkan dengan konsep matematika? 2. Teknik matematika apa yang dapat digunakan untuk menyelesaikan permasalahan ini? Tujuan Penelitian Tujuan penelitian ini ialah memodelkan puzzle Flow Colors menggunakan Integer Linear Programming dengan meminimumkan deviasi panjang tiap jalur dan menyelesaikannya dengan software LINGO 11.0. Ruang Lingkup Penelitian Puzzle yang akan dibahas dalam karya ilmiah ini adalah Flow Colors dengan ukuran 𝑛 × 𝑛. Puzzle ini dapat dikembangkan sampai ukuran berapapun. Dalam karya ilmiah ini, penulis membatasi pembahasan hanya sampai Flow Colors berukuran 9 × 9.
LANDASAN TEORI Untuk dapat memodelkan puzzle Flow Colors, diperlukan beberapa pemahaman teori tentang linear programming, Ekuivalensi Formulasi, integer programming, dan Traveling Salesman Problem. Linear Programming Fungsi linear dan pertidaksamaan linear merupakan konsep-konsep dasar yang harus dipahami terkait dengan linear programming. Sebuah fungsi 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) dari variabel 𝑥1 , 𝑥2 , … , 𝑥𝑛 adalah fungsi linear jika dan hanya jika untuk suatu himpunan konstanta 𝑐1 , 𝑐2 , … , 𝑐𝑛 , fungsi 𝑓 berbentuk 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) = 𝑐1 𝑥1 + 𝑐2 𝑥2 + ⋯ + 𝑐𝑛 𝑥𝑛 , sedangkan untuk suatu fungsi linear 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) dan sembarang bilangan 𝑏, pertidaksamaan 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) ≤ 𝑏 dan 𝑓(𝑥1 , 𝑥2 , … , 𝑥𝑛 ) ≥ 𝑏 disebut pertidaksamaan linear (Winston 2004). Dalam Winston (2004), masalah linear programming (LP) adalah masalah pengoptimuman yang memenuhi ketentuan-ketentuan berikut ini: 1. Tujuan masalah tersebut adalah memaksimumkan (atau meminimumkan) fungsi linear dari variabel keputusan. Fungsi yang ingin dimaksimumkan atau diminimumkan disebut fungsi objektif. 2. Nilai dari variabel keputusan harus memenuhi sekumpulan kendala. Setiap kendala harus berupa persamaan linear atau pertidaksamaan linear. 3. Terdapat pembatasan tanda untuk setiap variabel. Untuk sembarang variabel 𝑥𝑖 , pembatasan tanda mengharuskan 𝑥𝑖 taknegatif (𝑥𝑖 ≥ 0) atau tidak dibatasi tandanya (unrestricted in sign).
3 Ekuivalensi Formulasi Dalam memformulasikan permasalahan dunia nyata banyak terdapat model yang kompleks. Untuk beberapa kasus, formulasi tersebut dapat diekspresikan secara matematik dengan lebih dari satu cara. Ekspresi yang berbeda tersebut mungkin tidak ekuivalen secara matematik namun secara komputasi lebih mudah untuk diselesaikan (Dantzig dan Thapa 1997). Misalkan dalam suatu model matematik terdapat fungsi nilai mutlak yang didefinisikan sebagai fungsi terhadap 𝑥 dengan: |𝑥| = {
𝑥, −𝑥,
𝑥≥0 𝑥 < 0.
Permasalahan tersebut bukan LP karena terdapat fungsi nilai mutlak yang merupakan fungsi taklinear. Menurut Dantzig dan Thapa (1997), jika fungsi nilai mutlak muncul dalam persamaan umum, maka tidak mungkin memformulasikan ulang fungsi tersebut menjadi persamaan linear. Namun jika fungsi tersebut hanya terdapat pada fungsi objektif, maka model tersebut dapat diformulasikan ulang menjadi pemrograman linear. Misalkan diberikan fungsi objektif untuk meminimumkan jumlah bobot dari nilai mutlak dengan 𝑐𝑗 taknegatif terhadap sekumpulan kendala linear, yaitu: 𝑛
Minimumkan
𝑧 = ∑ 𝑐𝑗 |𝑥𝑗 | 𝑛
dengan kendala
dengan 𝑐𝑗 ≥ 0 untuk 𝑗 = 1, … , 𝑛
𝑗=1
∑ 𝑎𝑖𝑗 𝑥𝑗 = 𝑏𝑖 ,
untuk 𝑖 = 1, … , 𝑚.
𝑗=1
Didefinisikan 𝑥𝑗 = 𝑥𝑗+ − 𝑥𝑗− dengan 𝑥𝑗+ ≥ 0, 𝑥𝑗− ≥ 0 sehingga model tersebut menjadi: 𝑛
Minimumkan
𝑧 = ∑ 𝑐𝑗 |𝑥𝑗+ − 𝑥𝑗− | 𝑛
dengan kendala
dengan 𝑐𝑗 ≥ 0 untuk 𝑗 = 1, … , 𝑛
𝑗=1
∑ 𝑎𝑖𝑗 (𝑥𝑗+ − 𝑥𝑗− ) = 𝑏𝑖 ,
untuk 𝑖 = 1, … , 𝑚.
𝑗=1
Menurut Lema Dantzig dan Thapa (1997) jika 𝑐𝑗 ≥ 0 untuk semua 𝑗, maka salah satu dari 𝑥𝑗+ atau 𝑥𝑗− akan bernilai nol saat solusi optimum atau secara matematik 𝑥𝑗+ ∙ 𝑥𝑗− = 0, sehingga akan terdapat tiga kemungkinan yaitu: 𝑥𝑗+ > 0 dan 𝑥𝑗− = 0, 𝑥𝑗+ = 0 dan 𝑥𝑗− = 0, 𝑥𝑗+ = 0 dan 𝑥𝑗− > 0. Dari definisi nilai mutlak: 𝑥𝑗+ − 𝑥𝑗− , 𝑥𝑗+ ≥ 𝑥𝑗− + − |𝑥𝑗 − 𝑥𝑗 | = { + −𝑥𝑗 + 𝑥𝑗− , 𝑥𝑗+ < 𝑥𝑗−
4 Dari 3 kemungkinan tersebut diperoleh: (i) Jika 𝑥𝑗+ > 𝑥𝑗− , maka 𝑥𝑗+ > 0 dan 𝑥𝑗− = 0 sehingga 𝑥𝑗+ − 𝑥𝑗− = 𝑥𝑗+ − 0 = 𝑥𝑗+ + 0 = 𝑥𝑗+ + 𝑥𝑗− (ii) Jika 𝑥𝑗+ = 𝑥𝑗− , maka 𝑥𝑗+ = 𝑥𝑗− = 0 sehingga 𝑥𝑗+ − 𝑥𝑗− = 0 = 𝑥𝑗+ + 𝑥𝑗− (iii) Jika 𝑥𝑗+ < 𝑥𝑗− , maka 𝑥𝑗+ = 0 dan 𝑥𝑗− > 0 sehingga 𝑥𝑗+ − 𝑥𝑗− = 0 − 𝑥𝑗− = 0 + 𝑥𝑗− = 𝑥𝑗+ + 𝑥𝑗− . Dari tiga hal tersebut dapat disimpulkan bahwa jika 𝑥𝑗+ ∙ 𝑥𝑗− = 0 , maka |𝑥𝑗+ − 𝑥𝑗− | = 𝑥𝑗+ + 𝑥𝑗− . Formulasi masalahnya menjadi Linear Programming berikut: 𝑛
Minimumkan 𝑧 = ∑ 𝑐𝑗 (𝑥𝑗+ + 𝑥𝑗− ) 𝑛
Kendala
dengan 𝑐𝑗 ≥ 0 untuk 𝑗 = 1, … , 𝑛
𝑗=1
∑ 𝑎𝑖𝑗 (𝑥𝑗+ − 𝑥𝑗− ) = 𝑏𝑖
untuk 𝑖 = 1,2, … , 𝑚
𝑗=1
𝑥𝑗+ ≥ 0, 𝑥𝑗− ≥ 0 untuk 𝑗 = 1,2, … , 𝑛. Dalam karya ilmiah ini akan dilakukan proses pengubahan fungsi nilai mutlak menjadi fungsi linear dalam fungsi objektifnya. Integer Programming Pemrograman integer atau integer programming (IP) adalah LP dengan sebagian atau seluruh variabel diharuskan bilangan bulat taknegatif. Jika seluruh variabel diharuskan bilangan bulat (integer) maka masalah tersebut disebut pure integer programming. Jika hanya sebagian variabel diharuskan integer maka disebut mixed integer programming. Integer programming dengan variabel harus bernilai 0 atau 1 disebut 0-1 IP (Winston 2004). Traveling Salesman Problem Menurut Fournier (2009), Traveling Salesman Problem (TSP) dapat dipandang sebagai permasalahan penentuan cycle Hamilton pada suatu graf yaitu cycle yang melewati semua verteks dari graf tersebut tepat satu kali. TSP merupakan permasalahan seorang penjual yang harus melakukan tur ke sejumlah kota, berangkat dari sembarang kota awal, melewati setiap kota tepat sekali, dan terakhir kembali ke kota di mana ia berangkat. Penentuan rute ditetapkan berdasarkan jarak minimum yang akan ditempuh. Persamaan permasalahan TSP dengan Flow Colors adalah setiap sel harus terlewati tepat satu kali, dan tidak diperbolehkan adanya subtur; sedangkan perbedaannya, pada Flow Colors rute tidak kembali ke titik awal (bukan cycle Hamilton), dan rute tidak tunggal. Misalkan sebuah permasalahan TSP terdiri dari N kota dan 𝑐𝑖𝑗 adalah jarak dari kota 𝑖 ke kota 𝑗 untuk 𝑖 ≠ 𝑗 dan 𝑐𝑖𝑖 = 𝑀 dengan 𝑀 adalah bilangan yang relatif besar. Didefinisikan variabel keputusan: 𝑥𝑖𝑗 = {
1, 0,
jika perjalanan dari kota 𝑖 ke kota 𝑗 termasuk solusi TSP jika selainnya.
5 Solusi permasalahan TSP tersebut didapatkan dengan menyelesaikan formulasi berikut: 𝑁
Minimumkan
𝑁
𝑧 = ∑ ∑ 𝑐𝑖𝑗 𝑥𝑖𝑗
dengan 𝑐𝑗 ≥ 0 untuk 𝑗 = 1, … , 𝑛
𝑖=1 𝑗=1 𝑁
dengan kendala
∑ 𝑥𝑖𝑗 = 1,
untuk 𝑖 = 1,2, … , 𝑁
𝑖=1 𝑁
∑ 𝑥𝑖𝑗 = 1,
untuk 𝑗 = 1,2, … , 𝑁
𝑗=1
𝑢𝑖 − 𝑢𝑗 + 𝑁 ∙ 𝑥𝑖𝑗 ≤ 𝑁 − 1
; ∀𝑖 ≠ 𝑗, 𝑖 ≠ 1, 𝑗 ≠ 1, 𝑢𝑖 ≥ 0. (Winston 2004) Kendala terakhir disebut kendala penghilang subtur atau Subtour Eliminating Constraint (SEC) yaitu kendala yang mencegah terjadinya cycle Hamilton yang tidak memuat semua verteks. Kendala ini selanjutnya akan dimodifikasi sesuai dengan permasalahan Flow Colors.
DESKRIPSI DAN FORMULASI MASALAH Deskripsi Masalah Pada puzzle Flow Colors, area permainan merupakan sel-sel persegi dengan ukuran 𝑛 × 𝑛 sehingga total sel dalam satu permainan adalah 𝑛2 . Contoh puzzle Flow Colors dapat dilihat pada Gambar 2. Terdapat 2𝑚 titik given, yaitu 𝑚 pasang
Gambar 2 Ilustrasi permainan Flow Colors 5 × 5 dengan 5 warna dan solusinya titik berbeda warna yang telah diberikan di awal permainan dan diletakkan di sel𝑛2
sel yang berbeda dengan 1 ≤ 𝑚 ≤ 2 . Tugas pemain ialah menghubungkan kedua titik given yang warnanya sama hanya dengan sebuah jalur sehingga solusi yang diharapkan adalah 𝑚 buah jalur dengan warna sesuai given-nya. Ruas jalur antara dua sel yang berdekatan hanya dapat dibuat dengan arah kanan, kiri, atas, bawah,
6 dan tidak boleh diagonal. Jadi, jalur merupakan sekumpulan ruas jalur yang saling terhubung dan berlanjut. Permasalahan lain yang harus dihadapi pemain adalah setiap jalur tidak boleh saling bersilangan atau overlapping dan setiap sel harus terlewati oleh tepat satu jalur (Madhoun 2014). Dalam karya ilmiah ini akan dicari solusi terbaik dengan kriteria deviasi dari panjang tiap jalur adalah minimum. Pemodelan Berdasarkan analisis masalah, maka dapat dibuat formulasi masalah tersebut ke dalam bentuk integer linear programming (ILP). Bentuk formulasi masalah puzzle Flow Colors berukuran 𝑛 × 𝑛 dengan 𝑚 buah warna diberikan sebagai berikut: Indeks 𝑖, 𝑗 = indeks sel; 𝑖, 𝑗 = 1,2, … , 𝑛2 , 𝑘
= indeks warna; 𝑘 = 1,2, … , 𝑚,
dengan 1 ≤ 𝑚 ≤
𝑛2 2
.
Himpunan 𝐺 = himpunan pasangan terurut (𝑖, 𝑘), dengan 𝑖 ialah indeks sel titik given dan 𝑘 ialah indeks warna given tersebut Parameter 1 ; jika ruas jalur antara 𝑖 dan 𝑗 mungkin dibuat 𝐴𝑛 (𝑖, 𝑗) = { 0 ; selainnya, 𝑛 = ukuran puzzle, 𝑁 = jumlah total sel (𝑛2 ), 𝑚 = jumlah total warna, 𝑁−𝑚 𝑅 = rata-rata ideal panjang tiap jalur ( ). 𝑚
Variabel keputusan 1 ; jika sel 𝑖 dan 𝑗 terhubung dengan ruas jalur berwarna 𝑘 𝑋(𝑖, 𝑗, 𝑘) = { 0 ; selainnya, 𝑌(𝑖, 𝑘)
={
1 ; jika sel 𝑖 terisi warna 𝑘 0 ; selainnya,
panjang jalur berwarna 𝑘: 𝑊(𝑘)
= ∑ ∑ 𝑋(𝑖, 𝑗, 𝑘) ∀𝑖
; ∀𝑘.
∀𝑗
Fungsi Objektif Fungsi objektif dari masalah ini ialah meminimumkan deviasi panjang tiap jalur. Hal ini dapat diperoleh dengan meminimumkan jumlah selisih panjang tiap jalur berwarna 𝑘 dengan rata-ratanya: Minimumkan ∑|𝑅 − 𝑊(𝑘)| ∀𝑘
7 Dengan fungsi nilai mutlak sebagai fungsi objektif, maka permasalahan ini menjadi pemrograman taklinear. Dalam komputasinya, LINGO 11.0 tidak dapat menjamin diperolehnya solusi optimum global jika model tersebut adalah pemrograman taklinear. Oleh sebab itu perlu adanya ekuivalensi formulasi fungsi nilai mutlak menjadi fungsi linear. Model tersebut dapat diformulasikan ulang menjadi pemrograman linear dengan mengganti nilai mutlaknya dengan bagian positif dan negatifnya, yaitu 𝑇1 (𝑘) dan 𝑇2 (𝑘). 𝑇1 (𝑘) ≥ 0 ; 𝑘 = 1,2, … , 𝑚 𝑇2 (𝑘) ≥ 0 ; 𝑘 = 1,2, … , 𝑚 sehingga 𝑅 − 𝑊(𝑘) = 𝑇1 (𝑘) − 𝑇2 (𝑘) ; ∀𝑘 dengan fungsi nilai mutlaknya |𝑅 − 𝑊(𝑘)| = 𝑇1 (𝑘) + 𝑇2 (𝑘) ; ∀𝑘 maka fungsi objektif dapat diubah menjadi: Minimumkan ∑(𝑇1 (𝑘) + 𝑇2 (𝑘)) ∀𝑘
Kendala Kendala dalam permasalahan ini ialah: 1. Kemungkinan pembuatan ruas jalur dibatasi oleh parameter 𝐴. 𝐴𝑛 (𝑖, 𝑗) − 𝑋(𝑖, 𝑗, 𝑘) ≥ 0 ; ∀𝑖, 𝑗, 𝑘. 2. Semua sel terisi tepat satu warna. ∑ 𝑌(𝑖, 𝑘) = 1
; ∀𝑖.
∀𝑘
3. Semua sel given sudah terisi satu warna. 𝑌(𝑖, 𝑘) = 1 ; ∀(𝑖, 𝑘) ∈ 𝐺. 4. Semua sel given terhubung dengan tepat satu ruas jalur. ∑ 𝑋(𝑖, 𝑗, 𝑘) + ∑ 𝑋(𝑗, 𝑖, 𝑘) = 1 ∀𝑗
; ∀(𝑖, 𝑘) ∈ 𝐺.
∀𝑗
5. Untuk setiap sel nongiven, terdapat tepat satu ruas jalur yang menghubungkan sel tersebut menuju ke sembarang sel. ∑ 𝑋(𝑖, 𝑗, 𝑘) − 𝑌(𝑖, 𝑘) = 0
; ∀𝑘, 𝑖 = {𝑖|(𝑖, 𝑘) ∉ 𝐺}.
∀𝑗
6. Untuk setiap sel nongiven, terdapat tepat satu ruas jalur yang menghubungkan sembarang sel menuju sel tersebut. ∑ 𝑋(𝑗, 𝑖, 𝑘) − 𝑌(𝑖, 𝑘) = 0
; ∀𝑘, 𝑖 = {𝑖|(𝑖, 𝑘) ∉ 𝐺}.
∀𝑗
7. Untuk setiap ruas jalur, dua sel yang dihubungkannya berwarna sama dengan ruas jalur tersebut. 𝑌(𝑖, 𝑘) + 𝑌(𝑗, 𝑘) − 2 ∙ 𝑋(𝑖, 𝑗, 𝑘) ≥ 0 ; ∀𝑖, 𝑗, 𝑘. 8. Setiap ruas jalur tidak diperbolehkan bolak-balik. 𝑋(𝑖, 𝑗, 𝑘) + 𝑋(𝑗, 𝑖, 𝑘) ≤ 1 ; ∀𝑖, 𝑗, 𝑘.
8 9. Tidak diperbolehkan adanya suatu subtur. Dalam pembuatan solusi, terdapat kemungkinan terjadinya subtur seperti pada Gambar 3 sehingga perlu dibuat kendala eliminasi subtur.
Gambar 3 Perbedaan dengan kendala eliminasi subtur (kiri) dan tanpa kendala eliminasi subtur (kanan) Tanpa kendala eliminasi subtur, akan terdapat subtur sehingga terdapat lebih dari 𝑚 buah jalur (dengan 𝑚 adalah banyaknya warna, 𝑚 = 4 ). Hal ini melanggar aturan permainan yaitu hanya terdapat 𝑚 buah jalur. Kendala tersebut dituliskan sebagai berikut: 𝑈(𝑖, 𝑘) − 𝑈(𝑗, 𝑘) + 𝑁 ∙ 𝑋(𝑖, 𝑗, 𝑘) ≤ 𝑁 − 1 ; ∀𝑖, 𝑗, 𝑘. Subtur yang terjadi pada Gambar 3 yaitu subtur 16-17-23-29-28-22-16 yang berwarna biru muda. Misalkan 𝑘 = 3 untuk warna biru muda, sehingga 𝑋(16,17,3) = 𝑋(17,23,3) = ⋯ = 𝑋(22,16,3) = 1 dengan 𝑁 = 36 . Subtur ini menghasilkan 6 pertidaksamaan berikut: 𝑈(16,3) − 𝑈(17,3) + 36 ≤ 35 𝑈(17,3) − 𝑈(23,3) + 36 ≤ 35 𝑈(23,3) − 𝑈(29,3) + 36 ≤ 35 𝑈(29,3) − 𝑈(28,3) + 36 ≤ 35 𝑈(28,3) − 𝑈(22,3) + 36 ≤ 35 𝑈(22,3) − 𝑈(16,3) + 36 ≤ 35 Jika semua pertidaksamaan ini dijumlahkan maka hasilnya: 6 ∙ 36 ≤ 6 ∙ 35 (kontradiksi) 36 ≤ 35, sehingga subtur tersebut (dan semua subtur lain yang mungkin) dihilangkan oleh kendala eliminasi subtur. 10. Persamaan tambahan untuk pelinearan fungsi nilai mutlak. 𝑅 − 𝑊(𝑘) = 𝑇1 (𝑘) − 𝑇2 (𝑘) ; ∀𝑘 11. Kendala ketaknegatifan variabel 𝑋(𝑖, 𝑗, 𝑘) ∈ {0,1} ; ∀𝑖, 𝑗, 𝑘 ( ) { } 𝑌 𝑖, 𝑘 ∈ 0,1 ; ∀𝑖, 𝑘 𝑈(𝑖, 𝑘) ≥ 0 ; ∀𝑖, 𝑘 𝑇1 (𝑘) ≥ 0 ; ∀𝑘 𝑇2 (𝑘) ≥ 0 ; ∀𝑘.
9
STUDI KASUS Permasalahan Flow Colors yang akan dibahas pada karya ilmiah ini diperoleh dari website Mohammed Almadhoun yang beralamat di Madhoun (2014). Selanjutnya akan dibahas empat skenario dengan tingkat kesulitan yang berbeda. Perlu diperhatikan bahwa di website tersebut hanya disajikan soal-soal Flow Colors berukuran 5 × 5 hingga 14 × 14. Skenario pertama dan ketiga tidak diperoleh dari website tersebut. Skenario 1 Skenario pertama menguji model dengan soal Flow Colors berukuran 3 × 3 dan 2 warna. Misalkan diberikan 4 titik given, yaitu 2 titik berwarna merah pada sel 1 dan 6 serta berwarna biru pada sel 3 dan 5. Sebelum memformulasikan masalah tersebut, perlu dibuat model tiruan dari Flow Colors. Sel-sel dalam area permainan direpresentasikan sebagai berikut:
Gambar 4 Kasus Flow Colors berukuran 3 × 3 Pada skenario ini area permainan berukuran 3 × 3 sehingga diperoleh matriks kemungkinan pembuatan ruas jalur: Tabel 1 Matriks kemungkinan pembuatan ruas jalur 3 × 3 Sel 1 2 3 4 5 6 7 8 9
1 0 1 0 1 0 0 0 0 0
2 1 0 1 0 1 0 0 0 0
3 0 1 0 0 0 1 0 0 0
4 1 0 0 0 1 0 1 0 0
5 0 1 0 1 0 1 0 1 0
6 0 0 1 0 1 0 0 0 1
7 0 0 0 1 0 0 0 1 0
8 0 0 0 0 1 0 1 0 1
9 0 0 0 0 0 1 0 1 0
Tabel tersebut selanjutnya disebut matriks 𝐴3 yang merepresentasikan kemungkinan dibuatnya suatu ruas jalur pada Flow Colors berukuran 3 × 3. Jika 𝐴𝑛 (𝑖, 𝑗) bernilai 0 (nol), maka tidak mungkin dibuat suatu ruas jalur dari sel 𝑖 ke sel 𝑗. Sebaliknya, jika 𝐴𝑛 (𝑖, 𝑗) bernilai 1 (satu), maka ruas jalur dari sel 𝑖 ke sel 𝑗 mungkin dibuat.
10 Matriks 𝐴𝑛 dapat dibangkitkan dengan cara sebagai berikut:
𝐴𝑛 (𝑖, 𝑗) = {
[𝑖 > 𝑗 ∧ mod(𝑗, 𝑛) ≠ 0] |𝑖 − 𝑗| = 𝑛 ∨ [|𝑖 − 𝑗| = 1 ∧ ( ∨ )] [𝑖 < 𝑗 ∧ mod(𝑖, 𝑛) ≠ 0] selainnya
1, 0,
Matriks 𝐴3 dapat juga dibangkitkan dengan software MATLAB dengan script pada Lampiran 1 dengan 𝑛 = 3. Indeks 𝑖, 𝑗 = indeks sel, 𝑖, 𝑗 = 1,2, … ,9 𝑘 = indeks warna, 𝑘 = 1 merah 𝑘 = 2 biru. Himpunan 𝐺 = himpunan pasangan terurut (𝑖, 𝑘), dengan 𝑖 ialah indeks sel titik given dan 𝑘 ialah indeks warna given tersebut = {(1,1), (6,1), (3,2), (5,2)}. Parameter 1 ; jika ruas jalur antara 𝑖 dan 𝑗 mungkin dibuat 0 ; selainnya = ukuran puzzle = 3 = jumlah total sel = 9 = jumlah total warna = 2 9−2 = rata-rata ideal panjang tiap jalur = 2 = 3.5
𝐴3 (𝑖, 𝑗) = { 𝑛 𝑁 𝑚 𝑅
Variabel keputusan 1 ; jika sel 𝑖 dan 𝑗 terhubung dengan ruas jalur berwarna 𝑘 𝑋(𝑖, 𝑗, 𝑘) = { 0 ; selainnya 𝑌(𝑖, 𝑘)
={
1 ; jika sel 𝑖 terisi warna 𝑘 0 ; selainnya
panjang jalur berwarna 𝑘: 9
𝑊(𝑘)
9
= ∑ ∑ 𝑋(𝑖, 𝑗, 𝑘)
; ∀𝑘
𝑖=1 𝑗=1
Fungsi Objektif Fungsi objektif dari masalah ini ialah meminimumkan jumlah selisih panjang tiap jalur berwarna 𝑘 dengan rata-ratanya. Hasil pelinearan fungsi objektifnya sebagai berikut: 2
Minimumkan ∑(𝑇1 (𝑘) + 𝑇2 (𝑘)) 𝑘=1
11 Kendala Kendala dalam permasalahan ini ialah: 1. Kemungkinan pembuatan ruas jalur dibatasi oleh parameter 𝐴. 𝐴3 (𝑖, 𝑗) − 𝑋(𝑖, 𝑗, 𝑘) ≥ 0 ; ∀𝑖 = 1,2, … ,9; 𝑗 = 1,2, … ,9; 𝑘 = 1,2 2. Semua sel terisi tepat satu warna. 2
∑ 𝑌(𝑖, 𝑘) = 1
; ∀𝑖 = 1,2, … ,9
𝑘=1
3. Semua sel given sudah terisi satu warna. 𝑌(𝑖, 𝑘) = 1 ; ∀(𝑖, 𝑘) ∈ {(1,1), (6,1), (3,2), (5,2)} 4. Semua sel given terhubung dengan tepat satu ruas jalur. 9
9
∑ 𝑋(𝑖, 𝑗, 𝑘) + ∑ 𝑋(𝑗, 𝑖, 𝑘) = 1 𝑗=1
; ∀(𝑖, 𝑘) ∈ {(1,1), (6,1), (3,2), (5,2)}
𝑗=1
5. Untuk setiap sel nongiven, terdapat tepat satu ruas jalur yang menghubungkan sel tersebut menuju ke sembarang sel. 9
∑ 𝑋(𝑖, 𝑗, 𝑘) − 𝑌(𝑖, 𝑘) = 0
; ∀𝑖 ∉ {1,6,3,5}; 𝑘 = 1,2
𝑗=1
6. Untuk setiap sel nongiven, terdapat tepat satu ruas jalur yang menghubungkan sembarang sel menuju sel tersebut. 9
∑ 𝑋(𝑗, 𝑖, 𝑘) − 𝑌(𝑖, 𝑘) = 0
; ∀𝑖 ∉ {1,6,3,5}; 𝑘 = 1,2
𝑗=1
7. Untuk setiap ruas jalur, dua sel yang dihubungkannya berwarna sama dengan ruas jalur tersebut. 𝑌(𝑖, 𝑘) + 𝑌(𝑗, 𝑘) − 2 ∙ 𝑋(𝑖, 𝑗, 𝑘) ≥ 0 ; ∀𝑖 = 1,2, … ,9; 𝑗 = 1,2, … ,9; 𝑘 = 1,2 8. Setiap ruas jalur tidak diperbolehkan bolak-balik. 𝑋(𝑖, 𝑗, 𝑘) + 𝑋(𝑗, 𝑖, 𝑘) ≤ 1 ; ∀𝑖 = 1,2, … ,9; 𝑗 = 1,2, … ,9; 𝑘 = 1,2 9. Tidak diperbolehkan adanya suatu subtur. 𝑈(𝑖, 𝑘) − 𝑈(𝑗, 𝑘) + 9 ∙ 𝑋(𝑖, 𝑗, 𝑘) ≤ 8 ∀𝑖 = 1,2, … ,9; 𝑗 = 1,2, … ,9; 𝑘 = 1,2 10. Persamaan tambahan untuk pelinearan fungsi nilai mutlak. 3.5 − 𝑊(𝑘) = 𝑇1 (𝑘) − 𝑇2 (𝑘) ; ∀𝑘 = 1,2 11. Kendala ketaknegatifan variabel 𝑋(𝑖, 𝑗, 𝑘) ∈ {0,1} ; ∀𝑖 = 1,2, … ,9; 𝑗 = 1,2, … ,9; 𝑘 = 1,2 𝑌(𝑖, 𝑘) ∈ {0,1} ; ∀𝑖 = 1,2, … ,9; 𝑘 = 1,2 𝑈(𝑖, 𝑘) ≥ 0 ; ∀𝑖 = 1,2, … ,9; 𝑘 = 1,2 𝑇1 (𝑘) ≥ 0 ; ∀𝑘 = 1,2 𝑇2 (𝑘) ≥ 0 ; ∀𝑘 = 1,2
12 Skenario 2 Skenario kedua diambil dari website Madhoun (2014) yaitu penyelesaian Flow Colors berukuran 6 × 6 dengan 6 warna seperti pada Gambar 5.
Gambar 5 Kasus Flow Colors berukuran 6 × 6 dengan 6 warna Matriks 𝐴6 dapat dibangkitkan dengan script pada Lampiran 1 dengan 𝑛 = 6. Sel given pada Skenario 2 diberikan dalam Tabel 2. Tabel 2 Sel given pada Flow Colors berukuran 6 × 6 dengan 6 warna Indeks warna (𝑘) 1 2 3 4 5 6
Warna
Sel
merah hijau orange kuning biru biru muda
4,17 6,18 8,24 10,22 21,31 23,27
Skenario 3 Skenario ketiga yaitu penyelesaian Flow Colors berukuran 6 × 6 dengan 3 warna seperti pada Gambar 6. Sel given Skenario 3 diberikan dalam Tabel 3.
Gambar 6 Kasus Flow Colors berukuran 6 × 6 dengan 3 warna
13 Tabel 3 Sel given pada Flow Colors berukuran 6 × 6 dengan 3 warna Indeks warna (𝑘) 1 2 3
Warna merah biru kuning
Sel 4,15 8,18 17,26
Skenario 4 Skenario keempat diambil dari website Madhoun (2014) yaitu penyelesaian Flow Colors berukuran 9 × 9 dengan 9 warna seperti pada Gambar 7.
Gambar 7 Kasus Flow Colors berukuran 9 × 9 Matriks 𝐴9 dapat dibangkitkan dengan script pada Lampiran 1 dengan 𝑛 = 9. Sel given Skenario 4 diberikan dalam Tabel 4. Tabel 4 Sel given pada Flow Colors berukuran 9 × 9 Indeks warna (𝑘) 1 2 3 4 5 6 7 8 9
Warna
Sel
biru muda biru merah ungu coklat hijau kuning ungu muda orange
9,81 14,65 16,66 25,31 40,67 41,70 42,79 51,53 60,80
14
HASIL DAN PEMBAHASAN Data dan formulasi yang telah dipaparkan pada Skenario 1, 2, ,3 dan 4 dimasukkan ke dalam proses komputasi menggunakan software LINGO 11.0. Script setiap skenario disajikan pada Lampiran 2, 3, 4 dan 5. Solusi Flow Colors dari skenario tersebut diperoleh dari hasil proses komputasi dapat digambarkan sebagai berikut:
Gambar 8 Hasil solusi Skenario 1 Tabel 5 Panjang tiap jalur hasil solusi Skenario 1 Jalur Panjang merah 5 biru 2 Pada Skenario 1 rata-rata ideal panjang tiap jalur adalah 3.5 sehingga deviasi minimumnya ialah |3.5 − 5| + |3.5 − 2| = 3. Pada Skenario 2 hasil komputasinya sebagai berikut:
Gambar 9 Hasil solusi Skenario 2 Tabel 6 Panjang tiap jalur hasil solusi Skenario 2 Jalur merah hijau orange kuning biru biru muda
Panjang 3 2 10 2 10 3
15 Hasil solusi untuk Skenario 2 menghasilkan deviasi minimum 20, sedangkan pada Skenario 3 menghasilkan deviasi minimum 12. Hasil komputasinya sebagai berikut:
Gambar 10 Hasil solusi Skenario 3 Hasil solusi untuk Skenario 4 menghasilkan deviasi minimum 44. Hasil komputasinya sebagai berikut:
Gambar 11 Hasil solusi Skenario 4
16 Panjang tiap jalur hasil solusi Skenario 3 dan 4 dapat dilihat pada Tabel 7 dan 8. Tabel 7 Panjang tiap jalur hasil solusi Skenario 3 Jalur merah biru kuning
Panjang 11 17 5
Tabel 8 Panjang tiap jalur hasil solusi Skenario 4 Jalur Panjang biru muda 8 biru 9 merah 10 ungu 4 coklat 3 hijau 5 kuning 27 ungu muda 2 orange 4 Untuk suatu kasus tertentu, solusi optimal Flow Colors dapat tidak tunggal. Hal ini dicontohkan pada kasus berikut:
Gambar 12 Solusi optimal yang tak tunggal Hasil solusi kasus tersebut selalu menghasilkan panjang jalur masing-masing 5, 5, dan 3 namun dengan kombinasi yang berbeda. Nilai optimum yang dihasilkan selalu sama yaitu 2.6667. Selain kasus-kasus di atas, terdapat beberapa kasus yang tidak memiliki solusi. Beberapa karakteristik yang menyebabkan suatu kasus tidak memiliki solusi ialah sebagai berikut: 1 Terdapat titik given yang berhimpit dan bersilangan antara dua warna given, karena untuk setiap pembuatan jalur dari satu warna akan memotong jalur warna lainnya. 2 Terdapat titik given yang terapit di tengah dengan empat given lain. Karena setiap titik given harus terhubung dengan tepat satu ruas jalur, maka terdapat 4 kemungkinan pembuatan ruas jalur (kanan, kiri, atas, dan bawah)
17 dan setiap dua sel yang dihubungkan satu ruas jalur harus berwarna sama dengan ruas jalur tersebut. Dalam kasus ini, sel given tersebut dikelilingi oleh given berwarna berbeda sehingga tidak ada solusi yang memenuhi. 3 Terdapat titik given yang terapit di sisi dengan tiga given lain. Sama dengan kasus sebelumnya namun hanya terdapat 3 kemungkinan pembuatan ruas jalur karena 1 kemungkinan lainnya dibatasi oleh 1 sisi area permainan. 4 Terdapat titik given yang terapit di sudut dengan dua given lain. Sama dengan kasus sebelumnya namun hanya terdapat 2 kemungkinan pembuatan ruas jalur karena 2 kemungkinan lainnya dibatasi oleh 2 sisi area permainan. 5 Terdapat titik given yang berseberangan dan bersilangan di sisi antara dua warna given. Setiap titik given dengan warna tertentu harus saling terhubung. Jika keempat given tersebut berada pada sisi area permainan dan saling bersilangan, maka akan ada satu sel yang terlewati oleh kedua jalur berbeda warna tersebut. Namun setiap sel hanya boleh terisi tepat satu warna sehingga tidak ada solusi yang memenuhi.
Gambar 13 Karakteristik kasus yang tidak memiliki solusi
SIMPULAN DAN SARAN Simpulan Dalam karya ilmiah ini diperlihatkan bahwa permainan Flow Colors dapat dipandang sebagai permasalahan riset operasi yang diformulasikan menggunakan integer linear programming dan dapat diselesaikan menggunakan software LINGO 11.0. Dari keempat skenario, terlihat bahwa model yang dibuat mampu menyelesaikan permasalahan Flow Colors dengan tingkat kesulitan yang cukup tinggi hingga ukuran 9 × 9 dengan 9 warna. Deviasi panjang tiap warna bervariasi
18 bergantung pada banyaknya sel, banyaknya warna dan posisi given. Ada pula kasus Flow Colors yang menghasilkan solusi optimum yang tidak tunggal. Serta, tidak semua kombinasi posisi given dalam sebuah kasus Flow Colors memiliki solusi. Beberapa karakteristik khusus dapat menyebabkan satu kasus tidak memiliki solusi. Saran Pada karya ilmiah ini hanya dibahas tentang penyelesaian Puzzle Flow Colors dengan meminimumkan deviasi panjang tiap warna. Saran untuk penulisan selanjutnya adalah dengan mencari penyelesaian dari Puzzle Flow Colors jenis lain yang lebih rumit seperti Bridge Colors dll. Dapat pula dicari pola variasi solusi dan menentukan posisi given yang diberikan agar variasi solusi Flow Colors tunggal. Selain itu, perbaikan model dan formulasi masalah masih mungkin dilakukan agar efektif dalam menyelesaikan puzzle Flow Colors dengan tingkat kesulitan yang lebih tinggi.
DAFTAR PUSTAKA Fournier JC. 2009. Graph Theory and Applications. New Jersey (US): John Wiley & Sons. Dantzig GB, Thapa MN. 1997. Linear Programming 1: Introduction. California (US): Springer. Madhoun, MN. 2014. Flow Colors [Internet]. [diunduh 2014 Mar 17]. Tersedia pada: http://moh97.us/flow/. Winston WL. 2004. Operations Research Applications and Algorithms. Ed ke-4. New York (US): Duxbury.
19 Lampiran 1 Script komputasi MATLAB untuk membangkitkan matriks 𝐴𝑛 (𝑖, 𝑗) function F=Aij(n) %Matriks kemungkinan pembuatan ruas jalur A=zeros(n^2)+triu(ones(n^2),1)-triu(ones(n^2),2)+tril(ones(n^2),1)-tril(ones(n^2),-2)+triu(ones(n^2),n)triu(ones(n^2),n+1)+tril(ones(n^2),-n)-tril(ones(n^2),-n-1); for i=1:n-1 A(i*n,i*n+1)=0; A(i*n+1,i*n)=0; end disp(A) end
LAMPIRAN
20 Lampiran 2 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 1 MODEL: TITLE:SKENARIO 1; SETS: SEL/1..9/; WARNA/1..2/:W,T1,T2; GIVEN(SEL)/1,6,3,5/:WG; NONGIVEN(SEL)|#NOT#@IN(GIVEN,&1); SELW(SEL,WARNA):Y,U; JALUR(SEL,SEL):A; JALURW(SEL,SEL,WARNA):X; ENDSETS DATA: A=@OLE('A(i,j).xlsx','JALUR3'); ENDDATA !PARAMETER; N=@SIZE(SEL); M=@SIZE(WARNA); R=(N-M)/M; !PANJANG RUAS BERWARNA-K; @FOR(WARNA(K):W(K)=@SUM(JALUR(I,J):X(I,J,K))); !FUNGSI OBJEKTIF; MIN=@SUM(WARNA(K):T1(K)+T2(K)); !KENDALA 1; @FOR(JALURW(I,J,K):A(I,J)-X(I,J,K)>=0); !KENDALA 2; @FOR(SEL(I):@SUM(WARNA(K):Y(I,K))=1); !KENDALA 3; @FOR(GIVEN(I):WG(I)=@FLOOR((@INDEX(GIVEN,I)+1)*0.5)); @FOR(GIVEN(I):Y(I,WG(I))=1); !KENDALA 4; @FOR(GIVEN(I):@SUM(SEL(J):X(I,J,WG(I)))+@SUM(SEL(J):X(J,I,WG(I)))= 1); !KENDALA 5; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(I,J,K))-Y(I,K)=0)); !KENDALA 6; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(J,I,K))-Y(I,K)=0)); !KENDALA 7; @FOR(JALURW(I,J,K):Y(I,K)+Y(J,K)-2*X(I,J,K)>=0); !KENDALA 8; @FOR(JALURW(I,J,K):X(I,J,K)+X(J,I,K)<=1); !KENDALA 9; @FOR(WARNA(K):@FOR(SEL(I):@FOR(SEL(J):U(I,K)-U(J,K)+N*X(I,J,K)<=N1))); !KENDALA 10; @FOR(WARNA(K):R-W(K)=T1(K)-T2(K)); !KENDALA 11; @FOR(JALURW:@BIN(X)); @FOR(SELW:@BIN(Y)); @FOR(SELW:@GIN(U)); @FOR(WARNA:T1>=0); @FOR(WARNA:T2>=0); END
21 Lampiran 3 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 2 MODEL: TITLE:SKENARIO 2; SETS: SEL/1..36/; WARNA/1..6/:W,T1,T2; GIVEN(SEL)/4,17,6,18,8,24,10,22,21,31,23,27/:WG; NONGIVEN(SEL)|#NOT#@IN(GIVEN,&1); SELW(SEL,WARNA):Y,U; JALUR(SEL,SEL):A; JALURW(SEL,SEL,WARNA):X; ENDSETS DATA: A=@OLE('A(i,j).xlsx','JALUR6'); ENDDATA !PARAMETER; N=@SIZE(SEL); M=@SIZE(WARNA); R=(N-M)/M; !PANJANG RUAS BERWARNA-K; @FOR(WARNA(K):W(K)=@SUM(JALUR(I,J):X(I,J,K))); !FUNGSI OBJEKTIF; MIN=@SUM(WARNA(K):T1(K)+T2(K)); !KENDALA 1; @FOR(JALURW(I,J,K):A(I,J)-X(I,J,K)>=0); !KENDALA 2; @FOR(SEL(I):@SUM(WARNA(K):Y(I,K))=1); !KENDALA 3; @FOR(GIVEN(I):WG(I)=@FLOOR((@INDEX(GIVEN,I)+1)*0.5)); @FOR(GIVEN(I):Y(I,WG(I))=1); !KENDALA 4; @FOR(GIVEN(I):@SUM(SEL(J):X(I,J,WG(I)))+@SUM(SEL(J):X(J,I,WG(I)))= 1); !KENDALA 5; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(I,J,K))-Y(I,K)=0)); !KENDALA 6; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(J,I,K))-Y(I,K)=0)); !KENDALA 7; @FOR(JALURW(I,J,K):Y(I,K)+Y(J,K)-2*X(I,J,K)>=0); !KENDALA 8; @FOR(JALURW(I,J,K):X(I,J,K)+X(J,I,K)<=1); !KENDALA 9; @FOR(WARNA(K):@FOR(SEL(I):@FOR(SEL(J):U(I,K)-U(J,K)+N*X(I,J,K)<=N1))); !KENDALA 10; @FOR(WARNA(K):R-W(K)=T1(K)-T2(K)); !KENDALA 11; @FOR(JALURW:@BIN(X)); @FOR(SELW:@BIN(Y)); @FOR(SELW:@GIN(U)); @FOR(WARNA:T1>=0); @FOR(WARNA:T2>=0); END
22 Lampiran 4 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 3 MODEL: TITLE:SKENARIO 3; SETS: SEL/1..36/; WARNA/1..6/:W,T1,T2; GIVEN(SEL)/4,15,8,18,17,26/:WG; NONGIVEN(SEL)|#NOT#@IN(GIVEN,&1); SELW(SEL,WARNA):Y,U; JALUR(SEL,SEL):A; JALURW(SEL,SEL,WARNA):X; ENDSETS DATA: A=@OLE('A(i,j).xlsx','JALUR6'); ENDDATA !PARAMETER; N=@SIZE(SEL); M=@SIZE(WARNA); R=(N-M)/M; !PANJANG RUAS BERWARNA-K; @FOR(WARNA(K):W(K)=@SUM(JALUR(I,J):X(I,J,K))); !FUNGSI OBJEKTIF; MIN=@SUM(WARNA(K):T1(K)+T2(K)); !KENDALA 1; @FOR(JALURW(I,J,K):A(I,J)-X(I,J,K)>=0); !KENDALA 2; @FOR(SEL(I):@SUM(WARNA(K):Y(I,K))=1); !KENDALA 3; @FOR(GIVEN(I):WG(I)=@FLOOR((@INDEX(GIVEN,I)+1)*0.5)); @FOR(GIVEN(I):Y(I,WG(I))=1); !KENDALA 4; @FOR(GIVEN(I):@SUM(SEL(J):X(I,J,WG(I)))+@SUM(SEL(J):X(J,I,WG(I)))= 1); !KENDALA 5; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(I,J,K))-Y(I,K)=0)); !KENDALA 6; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(J,I,K))-Y(I,K)=0)); !KENDALA 7; @FOR(JALURW(I,J,K):Y(I,K)+Y(J,K)-2*X(I,J,K)>=0); !KENDALA 8; @FOR(JALURW(I,J,K):X(I,J,K)+X(J,I,K)<=1); !KENDALA 9; @FOR(WARNA(K):@FOR(SEL(I):@FOR(SEL(J):U(I,K)-U(J,K)+N*X(I,J,K)<=N1))); !KENDALA 10; @FOR(WARNA(K):R-W(K)=T1(K)-T2(K)); !KENDALA 11; @FOR(JALURW:@BIN(X)); @FOR(SELW:@BIN(Y)); @FOR(SELW:@GIN(U)); @FOR(WARNA:T1>=0); @FOR(WARNA:T2>=0); END
23 Lampiran 5 Script komputasi LINGO 11.0 untuk menyelesaikan Skenario 4 MODEL: TITLE:SKENARIO 4; SETS: SEL/1..81/; WARNA/1..9/:W,T1,T2; GIVEN(SEL)/9,81,14,65,16,66,25,31,40,67,41,70,42,79,51,53,60,80/:W G; NONGIVEN(SEL)|#NOT#@IN(GIVEN,&1); SELW(SEL,WARNA):Y,U; JALUR(SEL,SEL):A; JALURW(SEL,SEL,WARNA):X; ENDSETS DATA: A=@OLE('A(i,j).xlsx','JALUR9'); ENDDATA !PARAMETER; N=@SIZE(SEL); M=@SIZE(WARNA); R=(N-M)/M; !PANJANG RUAS BERWARNA-K; @FOR(WARNA(K):W(K)=@SUM(JALUR(I,J):X(I,J,K))); !FUNGSI OBJEKTIF; MIN=@SUM(WARNA(K):T1(K)+T2(K)); !KENDALA 1; @FOR(JALURW(I,J,K):A(I,J)-X(I,J,K)>=0); !KENDALA 2; @FOR(SEL(I):@SUM(WARNA(K):Y(I,K))=1); !KENDALA 3; @FOR(GIVEN(I):WG(I)=@FLOOR((@INDEX(GIVEN,I)+1)*0.5)); @FOR(GIVEN(I):Y(I,WG(I))=1); !KENDALA 4; @FOR(GIVEN(I):@SUM(SEL(J):X(I,J,WG(I)))+@SUM(SEL(J):X(J,I,WG(I)))= 1); !KENDALA 5; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(I,J,K))-Y(I,K)=0)); !KENDALA 6; @FOR(WARNA(K):@FOR(NONGIVEN(I):@SUM(SEL(J):X(J,I,K))-Y(I,K)=0)); !KENDALA 7; @FOR(JALURW(I,J,K):Y(I,K)+Y(J,K)-2*X(I,J,K)>=0); !KENDALA 8; @FOR(JALURW(I,J,K):X(I,J,K)+X(J,I,K)<=1); !KENDALA 9; @FOR(WARNA(K):@FOR(SEL(I):@FOR(SEL(J):U(I,K)-U(J,K)+N*X(I,J,K)<=N1))); !KENDALA 10; @FOR(WARNA(K):R-W(K)=T1(K)-T2(K)); !KENDALA 11; @FOR(JALURW:@BIN(X)); @FOR(SELW:@BIN(Y)); @FOR(SELW:@GIN(U)); @FOR(WARNA:T1>=0); @FOR(WARNA:T2>=0); END
24
Lampiran 6 Hasil komputasi LINGO 11.0 untuk Skenario 1 Sel Sel Warna awal tujuan jalur 1 4 1 2 3 2 4 7 1 5 2 2 7 8 1 8 9 1 9 6 1
Lampiran 7 Hasil komputasi LINGO 11.0 untuk Skenario 2 Sel Sel Warna Sel Sel Warna awal tujuan jalur awal tujuan jalur 1 7 5 19 25 5 2 1 5 20 26 3 3 2 5 21 15 5 5 4 1 22 16 4 7 13 5 25 31 5 8 14 3 26 32 3 9 3 5 27 28 6 11 5 1 28 29 6 12 6 2 29 23 6 13 19 5 30 24 3 14 20 3 32 33 3 15 9 5 33 34 3 16 10 4 34 35 3 17 11 1 35 36 3 18 12 2 36 30 3
25 Lampiran 8 Hasil komputasi LINGO 11.0 untuk Skenario 3 Sel Sel Warna Sel Sel Warna awal tujuan jalur awal tujuan jalur 1 2 2 21 20 1 2 3 2 22 21 1 3 9 2 23 17 3 4 5 1 24 30 2 5 6 1 25 19 2 6 12 1 26 27 3 7 1 2 27 28 3 9 8 2 28 29 3 10 16 1 29 23 3 11 10 1 30 36 2 12 11 1 31 25 2 13 7 2 32 31 2 14 15 1 33 32 2 16 22 1 34 33 2 18 24 2 35 34 2 19 13 2 36 35 2 20 14 1
26 Lampiran 9 Hasil komputasi LINGO 11.0 untuk Skenario 4 Sel Sel Warna Sel Sel awal tujuan jalur awal tujuan 1 2 7 39 30 2 3 7 40 49 3 4 7 43 42 4 5 7 44 43 5 6 7 45 54 6 7 7 46 37 7 8 7 47 56 8 17 7 48 39 9 18 1 49 58 10 1 7 50 41 11 20 2 52 51 12 11 2 53 52 13 12 2 54 63 14 13 2 55 46 15 16 3 56 65 17 26 7 57 48 18 27 1 58 67 19 10 7 59 50 20 29 2 60 61 21 22 3 61 62 22 23 3 62 71 23 24 3 63 72 24 15 3 64 55 26 35 7 66 57 27 36 1 68 59 28 19 7 69 68 29 38 2 70 69 30 21 3 71 80 31 32 4 72 81 32 33 4 73 64 33 34 4 74 73 34 25 4 75 74 35 44 7 76 75 36 45 1 77 76 37 28 7 78 77 38 47 2 79 78
Warna jalur 3 5 7 7 1 7 2 3 5 6 8 8 1 7 2 3 5 6 9 9 9 1 7 3 6 6 6 9 1 7 7 7 7 7 7 7
27
RIWAYAT HIDUP Penulis dilahirkan di Bogor pada tanggal 4 Desember 1992 sebagai anak tunggal dari pasangan Bapak Sunardi dan Ibu Siti Asiyah. Tahun 2010 Penulis lulus dari SMA Negeri 3 Bogor dan diterima di Institut Pertanian Bogor di Departemen Matematika Fakultas Matematika dan Ilmu Pengetahuan Alam melalui jalur Undangan Seleksi Masuk IPB dengan memperoleh Beasiswa BidikMisi. Selama mengikuti perkuliahan penulis menjadi asisten matakuliah Kalkulus II tahun ajaran 2011/2012 dan 2012/2013. Penulis juga aktif mengajar matakuliah Pengantar Matematika, Landasan Matematika, dan Kalkulus di Bimbingan Belajar Mafia Clubs. Penulis juga aktif di berbagai kegiatan kemahasiswaan. Penulis pernah menjadi staf Divisi Internal Unit Kegiatan Mahasiswa (UKM) Karate IPB. Penulis memegang amanah sebagai Ketua Departemen Public Relation Gugus Mahasiswa Matematika (Gumatika) pada tahun kepengurusan 2013 dan sebagai Ketua Pelaksana Seminar Nasional IPB Mathematics Challenge 2013.