PENJADWALAN DISTRIBUSI BARANG MENGGUNAKAN
MIXED INTEGER PROGRAMMING
LAISANOPACI
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
Dengan ini saya menyatakan bahwa skripsi berjudul Penjadwalan Distribusi
Barang Menggunakan
Mixed Integer Programming
adalah benar karya saya
dengan arahan dari komisi pembimbing dan belum diajukan dalam bentuk apapun
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, November 2014
Laisanopaci
ABSTRAK
LAISANOPACI
. Penjadwalan Distribusi Barang Menggunakan
Mixed Integer
Programming.
Dibimbing oleh
PRAPTO TRI SUPRIYO
dan
RUHIYAT.
Pendistribusian barang menggunakan satu kendaraan dan mempekerjakan
satu pengemudi merupakan masalah yang seringkali dihadapi oleh suatu
perusahaan atau badan usaha tertentu. Waktu istirahat dan jam kerja pengemudi,
serta
time window
yang ditetapkan oleh pelanggan akan memengaruhi durasi
pendistribusian. Oleh karena itu, penjadwalan distribusi perlu dilakukan agar
dapat meminimumkan durasi pendistribusian juga mendapatkan waktu istirahat
yang cukup bagi pengemudi. Permasalahan ini dapat dimodelkan sebagai
mixed
integer programming
. Tujuan dari karya ilmiah ini adalah memodelkan masalah
penjadwalan distribusi barang dengan mempertimbangkan waktu istirahat bagi
pengemudi dengan fungsi objektif meminimumkan durasi pendistribusian. Model
ini diimplementasikan untuk pendistribusian pakan ternak di Kota Payakumbuh
dengan mempertimbangkan waktu istirahat dan jam kerja yang ditetapkan oleh
pemerintah Indonesia. Penyelesaian masalah ini menggunakan bantuan
software
LINGO 11.0 sehingga diperoleh penjadwalan distribusi dengan durasi
pendistribusian yang minimum.
Kata kunci:
mixed integer programming
, penjadwalan distribusi,
time window
,
waktu istirahat
ABSTRACT
LAISANOPACI
. Scheduling of Goods Distribution Using Mixed Integer
Programming.
Supervised by
PRAPTO TRI SUPRIYO
and
RUHIYAT.
Scheduling of Goods Distribution using a vehicle and a driver is a problem
often faced by a particular company or business entity. Rest periods and working
hours of drivers, as well as the time window established by the customer would
affect the duration of distribution. Therefore, scheduling the distribution needs to
be done in order to minimize the duration of distribution and also to get adequate
rest periods for the driver. This problem can be modeled as a mixed integer
programming. The objective of this paper is to model the distribution of goods
scheduling problem by considering rest periods for the driver with the objective
function is to minimize the duration of distribution. This model is implemented to
distribution of animal feed in Payakumbuh by considering rest periods and
working hours established by Indonesian government. This problem is completed
by using LINGO 11.0 to obtain the distribution schedule with a minimum
duration of distribution.
Skripsi
sebagai salah satu syarat untuk memperoleh gelar
Sarjana Sains
pada
Departemen Matematika
LAISANOPACI
DEPARTEMEN MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
INSTITUT PERTANIAN BOGOR
NIM : 054080041
Drs Prapto Tri Supriyo, MKom Pem�imbing I
Tanggal Lulus:
'2
6
NOV
2014
Disetujui oleh
Pembimbing II
PRAKATA
Puji dan syukur penulis panjatkan kepada Allah
Subhanahu Wa T
a’ala
atas
segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang
dipilih dalam penelitian yang dilaksanakan sejak bulan Februari 2012 ini ialah
penjadwalan, dengan judul Penjadwalan Distribusi Barang Menggunakan
Mixed
Integer Programming
. Berbagai kendala dialami oleh penulis sehingga banyak
sekali orang yang membantu dan berkontribusi dalam pembuatan karya ilmiah ini.
Oleh karena itu, dalam kesempatan ini penulis mengucapkan terima kasih kepada:
1.
keluarga tercinta: ayah, mama, ka Cila, Fajar, ade Lili sebagai pemberi
motivasi, sumber inspirasi, dan selalu memberikan semangat dan doa,
2.
Drs Prapto Tri Supriyo, MKom selaku dosen pembimbing I dan Ruhiyat, MSi
selaku dosen pembimbing II yang telah meluangkan waktu dan pikiran dalam
membimbing, memberi motivasi, semangat, dan doa,
3.
Drs Siswandi, MSi selaku dosen penguji yang telah banyak memberikan ilmu,
saran, dan dukungan,
4.
distributor Nasa Poultry Shop yang telah membantu selama pengumpulan
data,
5.
semua dosen Departemen Matematika, terima kasih atas semua ilmu yang
telah diberikan,
6.
para staf Departemen Matematika,
7.
sahabat-sahabat yang selalu memberikan dukungan, motivasi: JONOF
(Nenek, Ade, Mela, dan Minah), tante Fenny, Gita,
8.
teman-teman Matematika 45 atas doa dan dukungan semangatnya serta selalu
menjadi bagian dari keluarga,
9.
semua pihak yang telah membantu dalam penyusunan karya ilmiah ini.
Semoga karya ilmiah ini dapat bermanfaat bagi dunia ilmu pengetahuan
khususnya bidang matematika dan menjadi inspirasi bagi penelitian selanjutnya.
Bogor, November 2014
DAFTAR TABEL
vi
DAFTAR LAMPIRAN
vi
PENDAHULUAN
1
Latar Belakang
1
Tujuan
1
Manfaat Penelitian
1
TINJAUAN PUSTAKA
2
Pemrograman Linear
2
Pemrograman Linear
Integer
3
DESKRIPSI DAN FORMULASI MASALAH
4
Deskripsi Masalah
4
Formulasi Masalah
4
STUDI KASUS DAN PENYELESAIAN
7
SIMPULAN DAN SARAN
20
Simpulan
20
Saran
20
DAFTAR PUSTAKA
20
LAMPIRAN
21
DAFTAR TABEL
1 Indeks untuk lokasi distributor, pelanggan, dan semu
9
2
Time Window
10
3 Hasil penjadwalan distribusi pakan ternak
13
DAFTAR LAMPIRAN
1 Sintaks Model LINGO 11.0.
21
2 Hasil Komputasi untuk Masalah Distribusi Barang Menggunakan
PENDAHULUAN
Latar Belakang
Peraturan mengenai jam kerja dan mengemudi bagi pengemudi truk telah
diterapkan oleh pemerintah dalam upaya meningkatkan keselamatan jalan dan
memperbaiki kinerja pengemudi truk. Pada Undang-Undang Nomor 22 Tahun
2009 tentang Lalu Lintas dan Angkutan Jalan khususnya pada Pasal 90 mengenai
waktu kerja pengemudi disebutkan bahwa:
1.
Setiap Perusahaan Angkutan Umum wajib mematuhi dan memberlakukan
ketentuan mengenai waktu kerja, waktu istirahat, dan pergantian Pengemudi
Kendaraan Bermotor Umum sesuai dengan ketentuan peraturan
perundang-undangan.
2.
Waktu kerja bagi Pengemudi Kendaraan Bermotor Umum sebagaimana
dimaksud pada ayat (1) paling lama 8 (delapan) jam sehari.
3.
Pengemudi Kendaraan Bermotor Umum setelah mengemudikan Kendaraan
selama 4 (empat) jam berturut-turut wajib beristirahat paling singkat setengah
jam.
4.
Dalam hal tertentu Pengemudi dapat dipekerjakan paling lama 12 (dua belas)
jam sehari termasuk waktu istirahat selama 1 (satu) jam.
Mengabaikan waktu istirahat dapat menyebabkan terjadinya hal-hal yang
tidak diinginkan, seperti misalnya buruknya kondisi pengemudi truk,
berkurangnya keselamatan jalan, dan rendahnya kepuasan pelanggan.
Pada karya ilmiah ini dibahas masalah penjadwalan distribusi barang oleh
sebuah distributor dengan meminimumkan durasi waktu pengiriman serta
memperhatikan waktu istirahat bagi pengemudi kendaraan. Model yang
digunakan dalam tulisan ini berasal dari artikel yang berjudul
The Minimum
Duration Truck Driver Scheduling Problem
yang ditulis oleh Goel (2012).
Tujuan
Tujuan dari karya ilmiah ini adalah memodelkan masalah penjadwalan
distribusi barang dalam bentuk
Mixed Integer Programming
dengan
mempertimbangkan waktu istirahat.
Manfaat Penelitian
TINJAUAN PUSTAKA
Pemrograman Linear
Fungsi linear dan pertidaksamaan linear merupakan salah satu konsep dasar
yang harus dipahami terkait dengan konsep pemrograman linear.
Definisi 1 (Fungsi Linear)
Suatu fungsi
f
dengan variabel
adalah suatu
fungsi linear jika dan hanya jika untuk suatu himpunan konstanta
,
dapat ditulis sebagai
f
=
(Winston 2004).
Sebagai contoh,
f
=
merupakan fungsi linear, sementara
f
=
bukan fungsi linear.
Definisi 2 (Pertidaksamaan dan Persamaan Linear)
Untuk sembarang fungsi linear
f
dan sembarang bilangan
b
, pertidaksamaan
f
dan
f
adalah pertidaksamaan linear,
sedangkan suatu persamaan
f
merupakan persamaan linear
(Winston 2004).
Pemrograman linear (PL) adalah suatu masalah pengoptimuman yang
memenuhi hal-hal berikut:
1.
Tujuan masalah tersebut adalah memaksimumkan atau meminimumkan suatu
fungsi linear dari sejumlah variabel keputusan. Fungsi yang akan
dimaksimumkan atau diminimumkan ini disebut fungsi objektif.
2.
Nilai variabel-variabel keputusannya harus memenuhi suatu himpunan kendala.
Setiap kendala harus berupa persamaan linear atau pertidaksamaan linear.
3.
Ada pembatasan tanda untuk setiap variabel dalam masalah ini. Untuk
sembarang variabel
, pembatasan tanda menentukan
harus taknegatif
(
) atau tidak dibatasi tandanya (
unrestricted in sign
)
(Winston 2004).
Definisi 3 (Bentuk Standar Pemrograman Linear)
Misalkan diberikan suatu PL dengan
m
kendala dan
n
variabel
(dilambangkan dengan
). Bentuk standar dari PL tersebut adalah:
Maksimumkan/minimumkan
z
=
terhadap kendala
A =
[
] [
] [
]
,
maka kendala ke-1 sampai dengan
kendala ke-
m
dapat ditulis sebagai sistem
persamaan
Ax = b
(Winston 2004).
Solusi Pemrograman Linear
Suatu masalah PL dapat diselesaikan dalam berbagai teknik, salah satunya
adalah metode simpleks. Metode ini dapat menghasilkan suatu solusi optimum
bagi masalah PL dan telah dikembangkan oleh Dantzig sejak tahun 1947 (Winston
2004), dan dalam perkembangannya merupakan metode yang paling umum
digunakan untuk menyelesaikan PL. Metode ini berupa metode iteratif untuk
menyelesaikan PL berbentuk standar (Winston 2004).
Definisi 4 (Daerah Fisibel)
Daerah fisibel dari suatu PL adalah himpunan semua titik yang memenuhi
semua kendala dan pembatasan tanda pada PL tersebut (Winston 2004).
Definisi 5 (Solusi Optimum)
Untuk masalah pemaksimuman, solusi optimum suatu PL adalah suatu titik
dalam daerah fisibel dengan nilai fungsi objektif terbesar. Untuk masalah
peminimuman, solusi optimum suatu PL adalah suatu titik dalam daerah fisibel
dengan nilai fungsi objektif terkecil (Winston 2004).
Pemrograman Linear
Integer
Pemrograman linear
integer
(PLI) adalah suatu model pemrograman linear
dengan variabel yang digunakan berupa bilangan bulat (
integer
). Jika semua
variabel harus berupa
integer
, maka masalah tersebut dinamakan
pure integer
programming
. Jika hanya sebagian yang harus berupa
integer
, maka disebut
DESKRIPSI DAN FORMULASI MASALAH
Deskripsi Masalah
Sebuah distributor akan mengirimkan barang menggunakan truk setiap
harinya. Distributor juga menentukan waktu distribusi barang setiap harinya, hal
ini yang akan menjadi waktu kerja pengemudi. Dalam pengiriman barang terdapat
keterbatasan, yakni:
1.
hanya ada satu truk dan satu pengemudi,
2.
pekerjaan dilakukan setiap harinya sampai satu periode sesuai jam kerja yang
ditentukan.
Pengemudi dapat mengambil waktu istirahat setelah menyelesaikan
pekerjaan atau di tempat parkir yang cocok saat perjalanan menuju lokasi
selanjutnya. Distributor ingin meminimumkan durasi pengiriman barang.
Formulasi Masalah
Parameter-parameter
I
: himpunan lokasi distributor dan pelanggan, dengan indeks
i
R
: himpunan waktu istirahat yang dilakukan pengemudi sesuai dengan
peraturan pemerintah, dengan indeks
.
C
: himpunan kendala yang ditentukan oleh peraturan dengan indeks
.
: himpunan kendala
c
yang mengharuskan bahwa pengemudi tidak
diperbolehkan mengemudi jika waktu yang terlewati semenjak waktu
istirahat terakhir dari tipe
mencapai batas, dengan
.
: himpunan kendala
c
yang mengharuskan bahwa pengemudi tidak
diperbolehkan mengemudi jika akumulasi waktu bekerja dan
mengemudi telah mencapai batas, dengan
.
: waktu tempuh dari lokasi ke-
i
menuju lokasi ke-
i
+ 1.
: durasi melakukan pekerjaan stasioner (bongkar muat barang) di lokasi
ke-
i.
: waktu horizon (jumlah waktu dalam satu periode yang telah
ditentukan).
: durasi minimum istirahat pengemudi sesuai dengan peraturan yang
berlaku.
: batas waktu pengemudi untuk bekerja dan mengemudi dalam satu
periode pada tipe
c,
dengan
atau
.
: waktu minimum memulai bongkar muat di lokasi
i
pada
time window
ke-
.
: waktu maksimum memulai bongkar muat di lokasi
i
pada
time window
ke-
.
Variabel-variabel
= waktu kedatangan barang di lokasi
i
.
= waktu memulai bongkar muat di lokasi
i
.
= waktu truk meninggalkan lokasi
i
.
,
1,
0,
i r
z
istirahat tipe dilakukan di lokasi ,
selainnya.
r
i
,
1,
0,
i
y
jika pengemudi memulai bongkar muat di lokasi pada
ke- ,
selainnya.
i
time window
1,
0,
c
jika bongkar muat diperhitungkan dalam periode bekerja,
selainnya.
Fungsi Objektif
Fungsi objektif dari kasus ini adalah meminimumkan waktu antara awal
pekerjaan di lokasi pertama dan akhir pekerjaan di lokasi terakhir sehingga
dimodelkan sebagai berikut:
Minimumkan
.
Kendala-kendala
1.
Pengemudi diperbolehkan istirahat terlebih dahulu untuk memulai pekerjaan
di setiap lokasi, dapat dimodelkan sebagai berikut:
∑
2.
Pengemudi membutuhkan waktu untuk menyelesaikan pekerjaan di setiap
lokasi.
.
3.
Waktu kedatangan ditentukan dari waktu akhir pekerjaan di lokasi
sebelumnya dan waktu tempuh yang diperlukan menuju lokasi selanjutnya.
.
4.
Pada setiap lokasi pekerjaan dimulai pada tepat satu
time window
yang
ditentukan.
∑
5.
Waktu memulai pekerjaan tidak boleh dilakukan sebelum awal
time window
yang telah ditentukan.
.
6.
Waktu memulai pekerjaan tidak boleh dilakukan setelah akhir
time window
yang telah ditentukan.
,
.
7.
Waktu yang telah terlewati dari akhir masa istirahat terakhir tidak boleh
melebihi batas waktu yang ditentukan oleh peraturan.
∑ ∑
.
8.
Pembatasan jam kerja perhari di mana akumulasi waktu pengemudi bekerja
dan mengemudi tidak melebihi total waktu maksimum mengemudi dan
bekerja ditambah jumlah istirahat yang harus dilakukan pengemudi pada
time
horizon
yang ditentukan.
∑
∑
∑ ∑
.
9.
Di lokasi
i
pengemudi hanya diperbolehkan mengambil satu tipe istirahat.
∑
10.
Variabel yang digunakan.
Pendistribusian dilakukan di dalam waktu horizon yang ditentukan.
[ ]
[ ]
[
]
.
Variabel indikator yang menyatakan pengemudi memulai bongkar muat
pada suatu
time window
atau tidak.
Variabel indikator yang menyatakan suatu tipe istirahat dilakukan
atau
tidak.
{ }
| |.
STUDI KASUS DAN PENYELESAIAN
Studi kasus pada penelitian ini dilakukan pada distributor pakan ternak yang
bernama Nasa Poultry Shop terletak di Payakumbuh, Sumatera Barat. Penelitian
ini bertujuan untuk menjadwalkan pendistribusian pakan ternak dengan
mempertimbangkan peraturan jam kerja dan waktu istirahat pengemudi yang
berlaku sehingga barang dapat dikirimkan dengan waktu pengiriman yang
minimum serta mempertimbangkan peraturan pemerintah mengenai jam kerja dan
waktu istirahat pengemudi. Pendistribusian ini dilakukan ke beberapa lokasi di
sekitar kota Payakumbuh.
Data yang digunakan pada karya ilmiah ini adalah waktu perjalanan
antarlokasi dan waktu bekerja di setiap lokasi. Waktu pendistribusian dapat
dilakukan dari hari Senin sampai hari Sabtu. Adapun peraturan yang berlaku di
Indonesia tertera pada Undang
–
Undang Nomor 22 Tahun 2009 Pasal 90 mengenai
waktu kerja pengemudi.
Asumsi-asumsi yang diperlukan untuk memodelkan masalah ini, yaitu:
1.
Pengemudi dapat mengambil waktu istirahat sebelum dan sesudah bongkar
muat pada setiap lokasi.
2.
Pengemudi harus istirahat jika telah mencapai batas maksimum waktu bekerja.
3.
Waktu tempuh yang digunakan adalah tetap.
Pada deskripsi masalah di kendala 1 istirahat dilakukan sebelum bongkar
muat dan di kendala 9 di lokasi
i
hanya diperbolehkan mengambil satu tipe
istirahat sehingga untuk mengakomodasi peraturan yang berlaku di Indonesia
maka ada tambahan dua jenis lokasi semu, yaitu:
1.
Lokasi semu jenis 1 dibuat agar pengemudi dapat beristirahat setelah bongkar
muat di lokasi.
2.
Lokasi semu jenis 2 dibuat agar pengemudi dapat istirahat di tengah perjalanan
menuju lokasi berikutnya karena dalam peraturan maksimum mengemudi 4
jam sedangkan berdasarkan data ada waktu tempuh yang lebih dari 4 jam.
Parameter-parameter
I
: himpunan lokasi distributor, pelanggan, dan semu,
{ }
(lihat Tabel 1).
R
: himpunan waktu istirahat yang dilakukan pengemudi sesuai dengan
peraturan pemerintah, dengan indeks
{ a }
.
1.
Rest
adalah istirahat panjang yang dilakukan oleh pengemudi jika
telah mencapai batas maksimum mengemudi dan bekerja.
2.
Break
adalah istirahat sejenak yang dilakukan oleh pengemudi jika
waktu yang terlewati semenjak waktu istirahat terakhir.
C
: himpunan kendala yang ditentukan oleh peraturan dengan indeks
.
: himpunan kendala
c
yang mengharuskan bahwa pengemudi tidak
istirahat terakhir dari tipe
mencapai batas, dengan
{ la a
}
{
a
}
.
: himpunan kendala
c
yang mengharuskan bahwa pengemudi tidak
diperbolehkan mengemudi jika akumulasi waktu bekerja dan
mengemudi telah mencapai batas, dengan
{ a l }
{
}
.
: waktu tempuh dari lokasi ke-
i
menuju lokasi ke-
i
+ 1 (lihat Tabel 1).
: durasi melakukan pekerjaan stasioner (bongkar muat barang) di lokasi
ke-
i
(lihat Tabel 1).
: waktu horizon (jumlah waktu dalam satu periode yang telah ditentukan)
= 109 jam.
: durasi minimum istirahat pengemudi sesuai dengan peraturan yang
berlaku,
r
= {
rest, break
} maka:
1.
,
2.
a
.
: batas waktu maksimum pengemudi untuk bekerja dan mengemudi
dalam satu periode pada tipe
c,
dengan
atau
maka:
1.
waktu maksimum yang terlewati setelah istirahat
terakhir,
2.
waktu
maksimum
akumulasi
bekerja
dan
mengemudi dalam sehari.
: waktu minimum memulai bongkar muat di lokasi
i
pada
time window
ke-
(lihat Tabel 2).
: waktu maksimum memulai bongkar muat di lokasi
i
pada
time window
ke-
(lihat Tabel 2).
: jumlah
time window
yang ditentukan oleh lokasi
i
.
Data
Berikut adalah data-data yang digunakan untuk menyelesaikan masalah
pada karya ilmiah ini.
Distributor memulai pengiriman pada hari Senin pukul 08.00 WIB sampai
hari Jumat WIB pukul 21.00 WIB yang menunjukkan sebagai rencana untuk
waktu horizon
yang terdapat pada model ini. Waktu ke-0 adalah hari Senin
pukul 08.00 WIB sebagai awal waktu horizon sedangkan waktu ke-109 adalah
hari Jumat pukul 21.00 WIB sebagai akhir dari waktu horizon.
Tabel 1 Indeks untuk lokasi distributor, pelanggan, dan semu
Lokasi
(
i
)
Keterangan
Waktu tempuh
(jam)
(
)
Durasi kerja bongkar
muat (jam)
Time window
1
Distributor
3
1
Dibatasi
2
Semu jenis 2
3
0
Tidak dibatasi
3
Pelanggan 1
0
0.5
Dibatasi
4
Semu jenis 1
1
0
Tidak dibatasi
5
Pelanggan 2
0
0.75
Dibatasi
6
Semu jenis 1
2.5
0
Tidak dibatasi
7
Semu jenis 2
2.5
0
Tidak dibatasi
8
Pelanggan 3
0
1
Dibatasi
9
Semu jenis 1
3
0
Tidak dibatasi
10
Pelanggan 4
0
0.58
Dibatasi
11
Semu jenis 1
1
0
Tidak dibatasi
12
Pelanggan 5
0
1
Dibatasi
13
Semu jenis 1
4
0
Tidak dibatasi
14
Semu jenis 2
4
0
Tidak dibatasi
15
Pelanggan 6
0
0.75
Dibatasi
16
Semu jenis 1
3.5
0
Tidak dibatasi
17
Semu jenis 2
3.5
0
Tidak dibatasi
18
Pelanggan 7
0
1
Dibatasi
19
Semu jenis 1
1
0
Tidak dibatasi
20
Pelanggan 8
0
0.58
Dibatasi
21
Semu jenis 1
3
0
Tidak dibatasi
22
Pelanggan 9
0
1
Dibatasi
23
Semu jenis 1
2
0
Tidak dibatasi
24
Distributor
0
0
Dibatasi
Waktu kerja bongkar muat di setiap lokasi berbeda tergantung dengan
barang yang dipesan. Waktu kerja bongkar muat di lokasi semu sebesar 0 karena
di lokasi semu tidak ada bongkar muat tetapi digunakan untuk waktu istirahat
pengemudi. Bongkar muat dapat dikerjakan sesampainya di lokasi pelanggan atau
pengemudi dapat istirahat terlebih dahulu sesuai jadwal yang ditentukan. Setelah
melakukan bongkar muat di lokasi
i
, truk dapat meninggalkan lokasi menuju
lokasi berikutnya (
i
+1) atau istirahat terlebih dahulu.
Pada Undang-Undang Nomor 22 Tahun 2009 tentang Lalu Lintas dan
Angkutan Jalan khususnya pada Pasal 90 mengenai waktu kerja pengemudi yang
telah dijelaskan sebelumnya, dan didapat ada 2 jenis periode istirahat yaitu
rest
sehingga pengemudi dapat beristirahat panjang atau istirahat
sejenak
{ a }
. Peraturan lainnya yaitu pengemudi tidak
diperbolehkan mengemudi jika dalam sehari telah menghabiskan waktu
maksimum 11 jam untuk mengemudi dan bekerja dinotasikan sebagai
{ a l
}
sehingga pengemudi dapat beristirahat panjang
{ }
.
Setiap lokasi distributor dan pelanggan dibatasi oleh
time window
yang
sama untuk membatasi waktu memulai bongkar muat dan berlaku untuk setiap
harinya sedangkan lokasi semu tidak dibatasi oleh
time window
. Banyaknya
time
window
pada hari pertama adalah 4, sehingga pendistribusian yang dilakukan pada
hari berikutnya memiliki
time window
sebanyak banyaknya hari dikalikan 4.
Tabel 2
Time Window
Time window
1
Pukul 08.00 WIB
Pukul 12.00 WIB
2
Pukul 13.00 WIB
Pukul 15.00 WIB
3
Pukul 16.00 WIB
Pukul 18.00 WIB
4
Pukul 19.00 WIB
Pukul 21.00 WIB
Variabel-variabel
= waktu kedatangan barang di lokasi
i
.
= waktu memulai bongkar muat di lokasi
i
.
= waktu truk meninggalkan lokasi
i
.
,
1,
0,
i r
z
istirahat tipe dilakukan di lokasi ,
selainnya.
r
i
,
1,
0,
i
y
jika pengemudi memulai bongkar muat di lokasi pada
ke- ,
selainnya.
i
time window
1,
0,
c
jika bongkar muat diperhitungkan dalam periode bekerja,
selainnya.
Fungsi Objektif
Fungsi objektif dari kasus ini adalah meminimumkan waktu antara awal
pekerjaan di lokasi pertama dan akhir pekerjaan di lokasi terakhir sehingga
dimodelkan sebagai berikut:
Minimumkan
Kendala-kendala
1.
Pengemudi diperbolehkan istirahat terlebih dahulu untuk memulai pekerjaan
di setiap lokasi, dapat dimodelkan sebagai berikut:
∑
2.
Pengemudi membutuhkan waktu untuk menyelesaikan pekerjaan di setiap
lokasi.
.
3.
Waktu kedatangan ditentukan dari waktu akhir pekerjaan di lokasi
sebelumnya dan waktu tempuh yang diperlukan menuju lokasi selanjutnya.
.
4.
Pada setiap lokasi pekerjaan dimulai pada tepat satu
time window
yang
ditentukan.
∑
5.
Waktu memulai pekerjaan tidak boleh dilakukan sebelum awal
time window
yang telah ditentukan.
.
6.
Waktu memulai pekerjaan tidak boleh dilakukan setelah akhir
time window
yang telah ditentukan.
,
.
7.
Waktu yang telah terlewati dari akhir masa istirahat terakhir tidak boleh
melebihi batas waktu yang ditentukan oleh peraturan.
∑ ∑
.
bekerja ditambah jumlah istirahat yang harus dilakukan pengemudi pada
time
horizon
yang ditentukan.
∑
∑
∑ ∑
.
9.
Di lokasi
i
pengemudi hanya diperbolehkan mengambil satu tipe istirahat.
∑
10.
Variabel yang digunakan.
Pendistribusian dilakukan di dalam waktu horizon yang ditentukan.
[ ]
[ ]
[ ]
.
Variabel indikator yang menyatakan pengemudi memulai bongkar muat
pada suatu
time window
atau tidak.
{ }
.
Variabel indikator yang menyatakan suatu tipe istirahat dilakukan
atau
tidak.
{ }
| |.
Hasil
Tabel 3 Hasil penjadwalan distribusi pakan ternak
HARI
WAKTU
KETERANGAN
Senin
21.00-22.00 Bongkar muat di lokasi distributor
22.00-
Mengemudi menuju lokasi pelanggan 1
Selasa
-01.00
01.00-04.30
Istirahat sejenak (
break
) selama 3.5 jam di tengah
perjalanan menuju lokasi pelanggan 1
04.30-07.30 Mengemudi kembali menuju lokasi pelanggan 1
07.30-08.00
Istirahat sejenak (
break
) selama 30 menit di lokasi
pelanggan 1
08.00-08.30 Bongkar muat di lokasi pelanggan 1
08.30-09.30 Mengemudi menuju lokasi pelanggan 2
09.30-10.15 Bongkar muat di lokasi pelanggan 2
10.15-10.45 Istirahat sejenak (
break
) di lokasi pelanggan 2
10.45-13.15 Mengemudi menuju lokasi pelanggan 3
13.15-16.30
Istirahat sejenak (
break
) selama 3.25 jam di tengah
perjalanan menuju lokasi pelanggan 3
16.30-19.00 Mengemudi kembali menuju lokasi pelanggan 3
19.00-
Istirahat panjang (
rest
) selama 13 jam di lokasi
pelanggan 3
Rabu
- 08.00
08.00-09.00 Bongkar muat di lokasi pelanggan 3
09.00-12.00 Mengemudi menuju lokasi pelanggan 4
12.00-12.35 Bongkar muat di lokasi pelanggan 4
12.35-13.05
Istirahat sejenak (
break
) selama 30 menit di lokasi
pelanggan 4
13.05-14.05 Mengemudi menuju lokasi pelanggan 5
14.05-14.30
Istirahat sejenak (
break
) selama 25 menit di lokasi
pelanggan 5
14.30-15.30 Bongkar muat di lokasi pelanggan 5
15.30-
Istirahat panjang (
rest
) selama 13 jam di lokasi
pelanggan 5
Kamis
- 04.30
04.30-08.30 Mengemudi menuju lokasi pelanggan 6
08.30-09.00
Istirahat sejenak (
break
) selama 30 menit di tengah
perjalanan menuju lokasi pelanggan 6
09.00-13.00 Mengemudi kembali menuju lokasi pelanggan 6
13.00-13.45 Bongkar muat di lokasi pelanggan 6
13.45-14.15
Istirahat sejenak (
break
) selama 30 menit di lokasi
pelanggan 6
14.15-17.45 Mengemudi menuju lokasi pelanggan 7
17.45 -
Istirahat panjang (
rest
) selama 13 jam di tengah
perjalanan menuju lokasi pelanggan 7
Jumat
- 06.45
Tabel 3 Hasil penjadwalan distribusi pakan ternak (
lanjutan
)
HARI
WAKTU
KETERANGAN
10.15-11.15 Bongkar muat di lokasi pelanggan 7
11.15-11.45
Istirahat sejenak (
break
) selama 30 menit di lokasi
pelanggan 7
11.45-12.45 Mengemudi menuju lokasi pelanggan 8
12.45-13.15
Istirahat sejenak (
break
) selama 30 menit di lokasi
pelanggan 8
13.15-13.50 Bongkar muat di lokasi pelanggan 8
13.50-16.50 Mengemudi menuju lokasi pelanggan 9
16.50-17.50 Bongkar muat di lokasi pelanggan 9
17.50-18.20
Istirahat sejenak (
break
) selama 30 menit di lokasi
pelanggan 9
Hari Senin
Hari Selasa
21.00
21.30
22.00
22.30
23.00
23.30
24.00
00.30
01.00
01.30
02.00
02.30
03.00
03.30
04.00
04.30
05.00
05.30
06.00
06.30
07.00
07.30
08.00
08.30
09.00
09.30
10.00
15
break
Tiba di lokasi
pelanggan 1
Lokasi
distributor
break
Hari Rabu
10.30
11.00
11.30
12.00
12.30
13.00
13.30
14.00
14.30
15.00
15.30
16.00
16.30
17.00
17.30
18.00
18.30
19.00
19.30
20.00
20.30
21.00
21.30
22.00
22.30
23.00
23.30
24.00
00.30
01.00
01.30
02.00
02.30
03.00
03.30
04.00
04.30
05.00
05.30
06.00
06.30
07.00
07.30
08.00
08.30
09.00
09.30
10.00
Tiba di lokasi
pelangggan 3
16
Hari Kamis
10.30
11.00
11.30
12.00
12.30
13.00
13.30
14.00
14.30
15.00
15.30
16.00
16.30
17.00
17.30
18.00
18.30
19.00
19.30
20.00
20.30
21.00
21.30
22.00
22.30
23.00
23.30
24.00
00.30
01.00
01.30
02.00
02.30
03.00
03.30
04.00
04.30
05.00
05.30
06.00
06.30
07.00
07.30
08.00
08.30
09.00
09.30
10.00
Tiba di lokasi
pelanggan 4
Tiba di lokasi
pelanggan 5
17
rest
Hari Jumat
10.30
11.00
11.30
12.00
12.30
13.00
13.30
14.00
14.30
15.00
15.30
16.00
16.30
17.00
17.30
18.00
18.30
19.00
19.30
20.00
20.30
21.00
21.30
22.00
22.30
23.00
23.30
24.00
00.30
01.00
01.30
02.00
02.30
03.00
03.30
04.00
04.30
05.00
05.30
06.00
06.30
07.00
07.30
08.00
08.30
09.00
09.30
10.00
Tiba di lokasi
pelanggan 6
Tiba di lokasi
pelanggan 7
18
break
rest
Ket: : bongkar muat
: mengemudi
[image:29.842.62.743.86.543.2]
: istirahat (
rest
atau
break
)
Gambar 1 Hasil penjadwalan distribusi pakan ternak
10.30
11.00
11.30
12.00
12.30
13.00
13.30
14.00
14.30
15.00
15.30
16.00
16.30
17.00
17.30
18.00
18.30
19.00
19.30
20.00
Tiba di lokasi
pelanggan 8
Tiba di lokasi
pelanggan 9
Tiba di lokasi
distributor
19
SIMPULAN DAN SARAN
Simpulan
Masalah penjadwalan distribusi barang dengan kendala:
1.
satu kendaraan (truk) dan satu pengemudi,
2.
pembatasan jam kerja, dan
3.
waktu istirahat pengemudi
dengan fungsi objektif meminimumkan waktu antara awal pekerjaan di lokasi
pertama dan akhir pekerjaan di lokasi terakhir dapat dimodelkan sebagai
Mixed
Integer Programming
. Selama proses pendistribusian diperlukan waktu istirahat
di mana istirahat dapat dilakukan sebelum atau setelah melakukan bongkar muat
atau di tengah perjalanan menuju lokasi berikutnya. Berdasarkan model pada
karya ilmiah ini distributor dapat meminimumkan durasi pendistribusian juga
mendapatkan waktu istirahat yang cukup bagi pengemudi.
Saran
Pada karya ilmiah selanjutnya disarankan untuk mempertimbangkan
menambah jumlah armada kendaraan yang akan digunakan untuk pendistribusian
barang.
DAFTAR PUSTAKA
Garfinkel RS, Nemhauser GL. 1972.
Integer Programming
. New York (US): John
Willey & Sons.
Goel A. 2012. The minimum duration truck driver scheduling problem.
EURO
Journal on Transportation and Logistics.
1(4):285-306.doi:10.1007/s13676-012-0014-9.
Winston WL. 2004.
Operations Research Applications and Algorithms.
Edisi
ke-4. New York (US): Duxbury.
Lampiran 1
Sintaks Model LINGO 11.0.
SETS
:
LOKASI/1..24/:XD,XM,XA,W;
ISTIRAHAT/1,2/:TR;
TW/1..20/;
DURASI(LOKASI,LOKASI):D;
BATAS(LOKASI,TW):TMIN,TMAX,Y;
KENDALA(LOKASI,ISTIRAHAT):Z;
ENDSETS
DATA
:
D=
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2.5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2.5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
4
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3.5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3.5
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
2
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
;
TR=13 0.5;
TC1=4;
TC2=11;
W=1 0 0.5 0 0.75 0 0 1 0 0.58 0 1 0 0 0.75 0 0 1 0 0.58 0 1 0 0;
TH=109;
TMIN=
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
5
8
11
24
29
32
35
48
53
56
59
72
77
80
83
96
101
104
107
;
TMAX=
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
109
4
7
10
13
28
31
34
37
52
55
58
61
76
79
82
85
100
103
106
109
;
ENDDATA
N=
@SIZE
(LOKASI);
T=
@SIZE
(TW);
!FO;
!KENDALA1;
@FOR
(LOKASI(I):XD(I)+
@SUM
(ISTIRAHAT(R):TR(R)*Z(I,R))<=XM(I));
!KENDALA2;
@FOR
(LOKASI(I):XM(I)+W(I)=XA(I));
!KENDALA3;
@FOR
(LOKASI(I)|I#LT#N:XA(I)+D(I,I+1)=XD(I+1));
!KENDALA4;
@FOR
(LOKASI(I):
@SUM
(TW(TAU):Y(I,TAU))=1);
!KENDALA5;
@FOR
(LOKASI(I):
@FOR
(TW(TAU):Y(I,TAU)*TMIN(I,TAU)<=XM(I)));
!KENDALA6;
@FOR
(LOKASI(I):
@FOR
(TW(TAU):XM(I)<=TH-Y(I,TAU)*(TH-TMAX(I,TAU))));
!KENDALA7;
@FOR
(LOKASI(I):
@FOR
(LOKASI(K)|K#GT#I#AND#D(
@IF
(K#EQ#1,1,K-1),K)#GT#0:XD(K)-XM(I)<=TC1+TH*
@IF
((K-I)#GT#1,
@SUM
(LOKASI(J)|J#GE#(I+1)#AND#J#LE#(K-1):
@SUM
(ISTIRAHAT(R):Z(J,R))),0)));
!KENDALA8;
@FOR
(LOKASI(I):
@FOR
(LOKASI(K)|K#GT#I#AND#W(K)#GT#0:
@SUM
(LOKASI(J)|
J#GE#I#AND#J#LE#(K-1):D(J,J+1))+
@SUM
(LOKASI(J)|J#GE#I#AND#J#LE#K:W(J))<=TC2+TH*
@SUM
(L
OKASI(J)|J#GE#(I+1)#AND#J#LE#K:
@SUM
(ISTIRAHAT(R)|R#LE#1:Z(J,R)))))
;
!KENDALA9;
@FOR
(LOKASI(I):
@SUM
(ISTIRAHAT(R):Z(I,R))<=1);
!KENDALA10;
@FOR
(LOKASI(I):XD(I)>=0);
@FOR
(LOKASI(I):XD(I)<=TH);
@FOR
(LOKASI(I):XM(I)>=0);
@FOR
(LOKASI(I):XM(I)<=TH);
@FOR
(LOKASI(I):XA(I)>=0);
@FOR
(LOKASI(I):XA(I)<=TH);
@FOR
(BATAS:
@BIN
(Y));
@FOR
(KENDALA:
@BIN
(Z));
Lampiran 2
Hasil Komputasi untuk Masalah Distribusi Barang Menggunakan
Mixed Integer Programming
Global optimal solution found.
Objective value: 95.33000
Objective bound: 95.33000
Infeasibilities: 0.1421085E-13
Extended solver steps: 969
Total solver iterations: 41672
Variable Value Reduced Cost TC1 4.000000 0.000000 TC2 11.00000 0.000000 TH 109.0000 0.000000 N 24.00000 0.000000 T 20.00000 0.000000 XD( 1) 0.000000 0.000000 XD( 2) 17.00000 0.000000 XD( 3) 23.50000 0.000000 XD( 4) 24.50000 0.000000 XD( 5) 25.50000 0.000000 XD( 6) 26.25000 0.000000 XD( 7) 29.25000 0.000000 XD( 8) 35.00000 0.000000 XD( 9) 49.00000 0.000000 XD( 10) 52.00000 0.000000 XD( 11) 52.58000 0.000000 XD( 12) 54.08000 0.000000 XD( 13) 55.50000 0.000000 XD( 14) 72.50000 0.000000 XD( 15) 77.00000 0.000000 XD( 16) 77.75000 0.000000 XD( 17) 81.75000 0.000000 XD( 18) 98.25000 0.000000 XD( 19) 99.25000 0.000000 XD( 20) 100.7500 0.000000 XD( 21) 101.8300 0.000000 XD( 22) 104.8300 0.000000 XD( 23) 105.8300 0.000000
XA( 5) 26.25000 0.000000 XA( 6) 26.75000 0.000000 XA( 7) 32.50000 0.000000 XA( 8) 49.00000 0.000000 XA( 9) 49.00000 0.000000 XA( 10) 52.58000 0.000000 XA( 11) 53.08000 0.000000 XA( 12) 55.50000 0.000000 XA( 13) 68.50000 0.000000 XA( 14) 73.00000 0.000000 XA( 15) 77.75000 0.000000 XA( 16) 78.25000 0.000000 XA( 17) 94.75000 0.000000 XA( 18) 99.25000 0.000000 XA( 19) 99.75000 0.000000 XA( 20) 101.8300 0.000000 XA( 21) 101.8300 0.000000 XA( 22) 105.8300 0.000000 XA( 23) 106.3300 0.000000 XA( 24) 108.3300 0.000000 W( 1) 1.000000 0.000000 W( 2) 0.000000 0.000000 W( 3) 0.500000 0.000000 W( 4) 0.000000 0.000000 W( 5) 0.750000 0.000000 W( 6) 0.000000 0.000000 W( 7) 0.000000 0.000000 W( 8) 1.000000 0.000000 W( 9) 0.000000 0.000000 W( 10) 0.580000 0.000000 W( 11) 0.000000 0.000000 W( 12) 1.000000 0.000000 W( 13) 0.000000 0.000000 W( 14) 0.000000 0.000000 W( 15) 0.750000 0.000000 W( 16) 0.000000 0.000000 W( 17) 0.000000 0.000000 W( 18) 1.000000 0.000000 W( 19) 0.000000 0.000000 W( 20) 0.580000 0.000000 W( 21) 0.000000 0.000000 W( 22) 1.000000 0.000000 W( 23) 0.000000 0.000000 W( 24) 0.000000 0.000000 TR( 1) 13.00000 0.000000 TR( 2) 0.500000 0.000000 D( 1, 1) 0.000000 0.000000 D( 1, 2) 3.000000 0.000000 D( 1, 3) 0.000000 0.000000 D( 1, 4) 0.000000 0.000000 D( 1, 5) 0.000000 0.000000 D( 1, 6) 0.000000 0.000000 D( 1, 7) 0.000000 0.000000 D( 1, 8) 0.000000 0.000000 D( 1, 9) 0.000000 0.000000 D( 1, 10) 0.000000 0.000000 D( 1, 11) 0.000000 0.000000 D( 1, 12) 0.000000 0.000000 D( 1, 13) 0.000000 0.000000 D( 1, 14) 0.000000 0.000000 D( 1, 15) 0.000000 0.000000 D( 1, 16) 0.000000 0.000000 D( 1, 17) 0.000000 0.000000 D( 1, 18) 0.000000 0.000000 D( 1, 19) 0.000000 0.000000 D( 1, 20) 0.000000 0.000000 D( 1, 21) 0.000000 0.000000 D( 1, 22) 0.000000 0.000000 D( 1, 23) 0.000000 0.000000 D( 1, 24) 0.000000 0.000000 D( 2, 1) 0.000000 0.000000 D( 2, 2) 0.000000 0.000000 D( 2, 3) 3.000000 0.000000 D( 2, 4) 0.000000 0.000000
D( 5, 7) 0.000000 0.000000 D( 5, 8) 0.000000 0.000000 D( 5, 9) 0.000000 0.000000 D( 5, 10) 0.000000 0.000000 D( 5, 11) 0.000000 0.000000 D( 5, 12) 0.000000 0.000000 D( 5, 13) 0.000000 0.000000 D( 5, 14) 0.000000 0.000000 D( 5, 15) 0.000000 0.000000 D( 5, 16) 0.000000 0.000000 D( 5, 17) 0.000000 0.000000 D( 5, 18) 0.000000 0.000000 D( 5, 19) 0.000000 0.000000 D( 5, 20) 0.000000 0.000000 D( 5, 21) 0.000000 0.000000 D( 5, 22) 0.000000 0.000000 D( 5, 23) 0.000000 0.000000 D( 5, 24) 0.000000 0.000000 D( 6, 1) 0.000000 0.000000 D( 6, 2) 0.000000 0.000000 D( 6, 3) 0.000000 0.000000 D( 6, 4) 0.000000 0.000000 D( 6, 5) 0.000000 0.000000 D( 6, 6) 0.000000 0.000000 D( 6, 7) 2.500000 0.000000 D( 6, 8) 0.000000 0.000000 D( 6, 9) 0.000000 0.000000 D( 6, 10) 0.000000 0.000000 D( 6, 11) 0.000000 0.000000 D( 6, 12) 0.000000 0.000000 D( 6, 13) 0.000000 0.000000 D( 6, 14) 0.000000 0.000000 D( 6, 15) 0.000000 0.000000 D( 6, 16) 0.000000 0.000000 D( 6, 17) 0.000000 0.000000 D( 6, 18) 0.000000 0.000000 D( 6, 19) 0.000000 0.000000 D( 6, 20) 0.000000 0.000000 D( 6, 21) 0.000000 0.000000 D( 6, 22) 0.000000 0.000000 D( 6, 23) 0.000000 0.000000 D( 6, 24) 0.000000 0.000000 D( 7, 1) 0.000000 0.000000 D( 7, 2) 0.000000 0.000000 D( 7, 3) 0.000000 0.000000 D( 7, 4) 0.000000 0.000000 D( 7, 5) 0.000000 0.000000 D( 7, 6) 0.000000 0.000000 D( 7, 7) 0.000000 0.000000 D( 7, 8) 2.500000 0.000000 D( 7, 9) 0.000000 0.000000 D( 7, 10) 0.000000 0.000000 D( 7, 11) 0.000000 0.000000 D( 7, 12) 0.000000 0.000000 D( 7, 13) 0.000000 0.000000 D( 7, 14) 0.000000 0.000000 D( 7, 15) 0.000000 0.000000 D( 7, 16) 0.000000 0.000000 D( 7, 17) 0.000000 0.000000 D( 7, 18) 0.000000 0.000000 D( 7, 19) 0.000000 0.000000 D( 7, 20) 0.000000 0.000000 D( 7, 21) 0.000000 0.000000 D( 7, 22) 0.000000 0.000000 D( 7, 23) 0.000000 0.000000 D( 7, 24) 0.000000 0.000000 D( 8, 1) 0.000000 0.000000 D( 8, 2) 0.000000 0.000000 D( 8, 3) 0.000000 0.000000 D( 8, 4) 0.000000 0.000000 D( 8, 5) 0.000000 0.000000 D( 8, 6) 0.000000 0.000000 D( 8, 7) 0.000000 0.000000 D( 8, 8) 0.000000 0.000000
D( 11, 11) 0.000000 0.000000 D( 11, 12) 1.000000 0.000000 D( 11, 13) 0.000000 0.000000 D( 11, 14) 0.000000 0.000000 D( 11, 15) 0.000000 0.000000 D( 11, 16) 0.000000 0.000000 D( 11, 17) 0.000000 0.000000 D( 11, 18) 0.000000 0.000000 D( 11, 19) 0.000000 0.000000 D( 11, 20) 0.000000 0.000000 D( 11, 21) 0.000000 0.000000 D( 11, 22) 0.000000 0.000000 D( 11, 23) 0.000000 0.000000 D( 11, 24) 0.000000 0.000000 D( 12, 1) 0.000000 0.000000 D( 12, 2) 0.000000 0.000000 D( 12, 3) 0.000000 0.000000 D( 12, 4) 0.000000 0.000000 D( 12, 5) 0.000000 0.000000 D( 12, 6) 0.000000 0.000000 D( 12, 7) 0.000000 0.000000 D( 12, 8) 0.000000 0.000000 D( 12, 9) 0.000000 0.000000 D( 12, 10) 0.000000 0.000000 D( 12, 11) 0.000000 0.000000 D( 12, 12) 0.000000 0.000000 D( 12, 13) 0.000000 0.000000 D( 12, 14) 0.000000 0.000000 D( 12, 15) 0.000000 0.000000 D( 12, 16) 0.000000 0.000000 D( 12, 17) 0.000000 0.000000 D( 12, 18) 0.000000 0.000000 D( 12, 19) 0.000000 0.000000 D( 12, 20) 0.000000 0.000000 D( 12, 21) 0.000000 0.000000 D( 12, 22) 0.000000 0.000000 D( 12, 23) 0.000000 0.000000 D( 12, 24) 0.000000 0.000000 D( 13, 1) 0.000000 0.000000 D( 13, 2) 0.000000 0.000000 D( 13, 3) 0.000000 0.000000 D( 13, 4) 0.000000 0.000000 D( 13, 5) 0.000000 0.000000 D( 13, 6) 0.000000 0.000000 D( 13, 7) 0.000000 0.000000 D( 13, 8) 0.000000 0.000000 D( 13, 9) 0.000000 0.000000 D( 13, 10) 0.000000 0.000000 D( 13, 11) 0.000000 0.000000 D( 13, 12) 0.000000 0.000000 D( 13, 13) 0.000000 0.000000 D( 13, 14) 4.000000 0.000000 D( 13, 15) 0.000000 0.000000 D( 13, 16) 0.000000 0.000000 D( 13, 17) 0.000000 0.000000 D( 13, 18) 0.000000 0.000000 D( 13, 19) 0.000000 0.000000 D( 13, 20) 0.000000 0.000000 D( 13, 21) 0.000000 0.000000 D( 13, 22) 0.000000 0.000000 D( 13, 23) 0.000000 0.000000 D( 13, 24) 0.000000 0.000000 D( 14, 1) 0.000000 0.000000 D( 14, 2) 0.000000 0.000000 D( 14, 3) 0.000000 0.000000 D( 14, 4) 0.000000 0.000000 D( 14, 5) 0.000000 0.000000 D( 14, 6) 0.000000 0.000000 D( 14, 7) 0.000000 0.000000 D( 14, 8) 0.000000 0.000000 D( 14, 9) 0.000000 0.000000 D( 14, 10) 0.000000 0.000000 D( 14, 11) 0.000000 0.000000 D( 14, 12) 0.000000 0.000000
D( 17, 15) 0.000000 0.000000 D( 17, 16) 0.000000 0.000000 D( 17, 17) 0.000000 0.000000 D( 17, 18) 3.500000 0.000000 D( 17, 19) 0.000000 0.000000 D( 17, 20) 0.000000 0.000000 D( 17, 21) 0.000000 0.000000 D( 17, 22) 0.000000 0.000000 D( 17, 23) 0.000000 0.000000 D( 17, 24) 0.000000 0.000000 D( 18, 1) 0.000000 0.000000 D( 18, 2) 0.000000 0.000000 D( 18, 3) 0.000000 0.000000 D( 18, 4) 0.000000 0.000000 D( 18, 5) 0.000000 0.000000 D( 18, 6) 0.000000 0.000000 D( 18, 7) 0.000000 0.000000 D( 18, 8) 0.000000 0.000000 D( 18, 9) 0.000000 0.000000 D( 18, 10) 0.000000 0.000000 D( 18, 11) 0.000000 0.000000 D( 18, 12) 0.000000 0.000000 D( 18, 13) 0.000000 0.000000 D( 18, 14) 0.000000 0.000000 D( 18, 15) 0.000000 0.000000 D( 18, 16) 0.000000 0.000000 D( 18, 17) 0.000000 0.000000 D( 18, 18) 0.000000 0.000000 D( 18, 19) 0.000000 0.000000 D( 18, 20) 0.000000 0.000000 D( 18, 21) 0.000000 0.000000 D( 18, 22) 0.000000 0.000000 D( 18, 23) 0.000000 0.000000 D( 18, 24) 0.000000 0.000000 D( 19, 1) 0.000000 0.000000 D( 19, 2) 0.000000 0.000000 D( 19, 3) 0.000000 0.000000 D( 19, 4) 0.000000 0.000000 D( 19, 5) 0.000000 0.000000 D( 19, 6) 0.000000 0.000000 D( 19, 7) 0.000000 0.000000 D( 19, 8) 0.000000 0.000000 D( 19, 9) 0.000000 0.000000 D( 19, 10) 0.000000 0.000000 D( 19, 11) 0.000000 0.000000 D( 19, 12) 0.000000 0.000000 D( 19, 13) 0.000000 0.000000 D( 19, 14) 0.000000 0.000000 D( 19, 15) 0.000000 0.000000 D( 19, 16) 0.000000 0.000000 D( 19, 17) 0.000000 0.000000 D( 19, 18) 0.000000 0.000000 D( 19, 19) 0.000000 0.000000 D( 19, 20) 1.000000 0.000000 D( 19, 21) 0.000000 0.000000 D( 19, 22) 0.000000 0.000000 D( 19, 23) 0.000000 0.000000 D( 19, 24) 0.000000 0.000000 D( 20, 1) 0.000000 0.000000 D( 20, 2) 0.000000 0.000000 D( 20, 3) 0.000000 0.000000 D( 20, 4) 0.000000 0.000000 D( 20, 5) 0.000000 0.000000 D( 20, 6) 0.000000 0.000000 D( 20, 7) 0.000000 0.000000 D( 20, 8) 0.000000 0