• Tidak ada hasil yang ditemukan

Mengisi atau Tidak Mengisi: Masalah SPBU

N/A
N/A
Wahyu Aditya Bagus Mahardika

Academic year: 2023

Membagikan "Mengisi atau Tidak Mengisi: Masalah SPBU"

Copied!
17
0
0

Teks penuh

(1)

Masalah optimasi yang terkait dengan penghitungan tur terpendek (atau termurah) yang mengunjungi sekumpulan lokasi, atau penghitungan jalur terpendek antara sepasang lokasi banyak ditemui dalam Ilmu Komputer dan Riset Operasi. Biasanya, ukuran yang kami optimalkan adalah dalam hal “jarak”

perjalanan, atau waktu yang dihabiskan (atau dalam beberapa kasus, kombinasi keduanya). Ada ribuan makalah yang membahas masalah yang berkaitan dengan masalah jalur terpendek dan tur.

Max-Planck-Institut bulu ¨ Informatik, Saarbruck ¨

Dalam makalah ini, kami mempertimbangkan model yang lebih umum yang menggabungkan biaya aktual en

SAMIR KHULLER

1. PERKENALAN

Departemen Ilmu Komputer

Universitas Maryland, College Park dan

JULIAN´ MESTRE

Departemen Ilmu Komputer dan Institut Studi Komputer Tingkat Lanjut Universitas Maryland, College Park AZARAKHSH

MALEKIAN

Mengisi atau Tidak Mengisi: Masalah SPBU.

Penelitian ini didukung oleh hibah NSF CCF-0430650, saat J. Mestre berada di Universitas Maryland, College Park.

Kata Kunci dan Frasa Tambahan: Algoritma Pendekatan, Jalur Terpendek, Perutean Kendaraan

Kategori dan Deskriptor Mata Pelajaran: F.2.2 [Analisis Algoritma dan Kompleksitas Masalah]: Oritma dan Masalah Algoritma Nonnumerik

Informasi Kontak: S.

Khuller dan A. Malekian: Email: {samir,malekian}@cs.umd.edu.

J. Mestre: Email: [email protected] Izin

untuk membuat salinan digital/hard copy seluruh atau sebagian materi ini tanpa biaya untuk penggunaan pribadi atau ruang kelas dengan ketentuan salinan tersebut tidak dibuat atau didistribusikan untuk keuntungan atau keuntungan komersial , pemberitahuan hak cipta/server ACM, judul publikasi, dan tanggalnya muncul, dan pemberitahuan diberikan bahwa penyalinan dilakukan dengan izin dari ACM, Inc.

Untuk menyalin sebaliknya, menerbitkan ulang, memposting di server, atau mendistribusikan ulang

ke daftar memerlukan izin khusus sebelumnya dan/atau biaya. c 20 tahun ACM 0000-0000/20 tahun/0000-0001 $5,00 Istilah Umum: Teori Graf, Algoritma

Dalam tulisan ini kita mempelajari beberapa masalah routing yang menggeneralisasi jalur terpendek dan Travelling Salesman Problem. Kami mempertimbangkan model yang lebih umum yang menggabungkan biaya aktual dengan harga gas. Kami memiliki kendaraan dengan kapasitas tangki tertentu. Kami berasumsi bahwa di setiap titik gas dapat dibeli dengan harga tertentu. Tujuannya adalah untuk menemukan rute termurah untuk berangkat dari s ke t, atau tur termurah yang mengunjungi serangkaian lokasi tertentu.

Anehnya, masalah menemukan cara termurah untuk berpindah dari s ke t dapat diselesaikan dalam waktu polinomial dan bukan merupakan NP-complete. Namun untuk sebagian besar versi lainnya, masalahnya adalah NP-lengkap dan kami mengembangkan algoritma perkiraan waktu polinomial untuk versi ini.

(2)

1Pembatasan ini masuk akal, karena dalam beberapa situasi di mana harga bahan bakar turun saat kita semakin dekat dengan tujuan, solusi termurah mungkin memerlukan pemberhentian dalam jumlah

besar, karena kita hanya mengisi bahan bakar secukupnya untuk sampai ke stasiun yang lebih murah di ujung jalan. jalur.

Di setiap SPBU kita mungkin mengisi sejumlah bahan bakar untuk “memperluas”

jangkauan kendaraan dengan jumlah tertentu. Selain itu, karena harga gas bervariasi, biayanya tergantung dari mana kita membeli gas.

(2) (Masalah SPBU dengan jalur tetap) Kasus khusus yang menarik adalah ketika kita memperbaiki jalur yang ingin kita lalui. Tujuan kami adalah menemukan tempat pemberhentian isi ulang yang optimal di sepanjang jalur.

Selain harga bahan bakar yang berfluktuasi, terdapat perbedaan harga bahan bakar yang signifikan antar SPBU di berbagai wilayah. Misalnya, di wilayah Washington DC saja, perbedaan harga bahan bakar antar SPBU di wilayah berbeda (pada hari yang sama) bisa mencapai 20%. Karena pajak negara bagian yang berbeda, harga gas di negara bagian yang berdekatan juga bervariasi. Yang terakhir, kita mungkin bertanya: mengapa kita mengharapkan informasi seperti itu tersedia? Faktanya, ada kumpulan situs web [gas ; ] yang saat ini mencantumkan harga bahan bakar di wilayah yang ditentukan oleh kode pos.

Jadi masuk akal untuk berasumsi bahwa informasi mengenai harga gas tersedia. Yang

kami minati adalah algoritme yang memungkinkan kami menghitung solusi untuk beberapa masalah dasar, berdasarkan informasi ini.

(3) (Masalah pompa bensin tur biaya seragam) Diberikan kumpulan kota T, dan sekumpulan pompa bensin S di mana kita ingin membeli bahan bakar, carilah tur terpendek yang mengunjungi T. Kita harus memastikan bahwa kita tidak pernah kehabisan bensin.

Dalam kerangka umum ini, kami tertarik pada kumpulan pertanyaan dasar.

Jelas sekali masalah ini menggeneralisasikan Masalah Traveling Salesman. Masalahnya menjadi lebih menarik ketika S = T, dan kita mengatasi kasus ini. Hal ini memodelkan situasi ketika sebuah perusahaan transportasi besar memiliki kesepakatan dengan perusahaan gas tertentu, dan kendaraan mereka dapat mengisi bahan bakar di SPBU mana pun milik perusahaan tersebut dengan harga yang telah dinegosiasikan sebelumnya. Di sini kita asumsikan harga bahan bakar di setiap SPBU sama. Hal ini juga dapat memodelkan situasi di mana beberapa SPBU dengan harga yang sangat

tinggi dikeluarkan dari pertimbangan, dan himpunan S hanyalah himpunan SPBU yang ingin kita gunakan.

(1) (Masalah pompa bensin) Diketahui node awal s dan node target t, bagaimana kita berpindah dari s ke t dengan cara yang paling murah jika kita memulai dari s dengan jumlah bahan bakar µs ? Selain itu, kami mempertimbangkan variasi di mana kami bersedia berhenti untuk mendapatkan bahan bakar paling banyak ÿ kali1 . Generalisasi lain yang kami pelajari adalah masalah urutan SPBU. Di sini, kami ingin mencari rute

termurah yang mengunjungi sekumpulan p lokasi dalam urutan tertentu (misalnya dengan kendaraan pengantaran).

dalam hal harga gas. Kita mempunyai kendaraan dengan kapasitas tangki tertentu sebesar U. Faktanya, kita asumsikan bahwa U adalah jarak yang dapat ditempuh kendaraan dengan tangki bahan bakar penuh (hal ini dapat diperoleh dengan mudah dengan mengambil hasil perkalian antara ukuran tangki dan jarak tempuh per unit bahan bakar kendaraan). Selain itu, kita dapat berasumsi bahwa kita memulai dengan sejumlah gas µ (ÿ U) dalam tangki.

Diasumsikan bahwa pada setiap titik v gas dapat dibeli dengan harga c(v). Harga ini adalah biaya bahan bakar per mil. Misalnya jika biaya bahan bakar $3,40 per galon dan kendaraan dapat menempuh jarak 17 mil per galon, maka biaya per mil adalah 20 sen.

Nama Jurnal ACM, Vol. V, No.N, Bulan 20YY.

(3)

·

ci cj

Masalah SPBU 3

Kita dapat menjalankan algoritma untuk masalah SPBU tur biaya seragam dengan himpunan Sij dan kota T. Ini akan menghasilkan tur T [i,j]. Kita mengamati bahwa biaya tur T [i,j] paling banyak adalah O( ) kali biaya solusi optimal, karena kemungkinan kita selalu membayar faktor ÿij lebih besar dari solusi optimal, di setiap stasiun tempat kita mengisi gas. Mengambil solusi terbaik atas semua pilihan O(n memberikan solusi

yang valid untuk masalah pompa bensin tur.

Kami sekarang memberikan ringkasan singkat hasil di makalah:

Salah satu masalah yang terkait erat adalah masalah Orienteering [Arkin et al. 1998; Awer buch dkk. 1998; Emas dkk. 1987; Blum dkk. 2003]. Dalam soal ini tujuannya adalah menghitung jalur dengan panjang tetap L yang mengunjungi sebanyak mungkin lokasi,

kamu 2 ,

(1) (Masalah SPBU) Untuk permasalahan SPBU dasar, algoritme kami berjalan dalam waktu O(ÿn log n) dan menghitung solusi optimal. Jika kita ingin mengunjungi rangkaian p kota, kita dapat menemukan solusi optimal dalam waktu O(ÿ(np) log(np)).

3 diberikan oleh Li dkk. [Li dkk. 1992] untuk masalah perutean kendaraan dengan batasan jarak 2(1ÿÿ) .

bahwa harga di stasiun yang berbeda dapat bervariasi.

1.1 Pekerjaan Terkait

(4) (Masalah SPBU tur) Untuk soal tur dengan harga sewenang-wenang, kita dapat menggunakan skema berikut: urutkan semua harga bahan bakar dalam urutan tidak menurun c1 ÿ c2 ÿ . . . cn. Sekarang tebak kisaran harga [ci . . . cj ] ada yang bersedia membayar, dan misalkan ÿij = . Misalkan Sij mencakup semua SPBU v sehingga ci ÿ c(v) ÿ cj . Dari semua permasalahan di atas, hanya permasalahan tur saja yang NP-hard. Untuk dua algoritma pertama kami mengembangkan algoritma waktu polinomial, dan untuk masalah tur kami mengembangkan algoritma perkiraan.

Masalah penghitungan jalur terpendek dan tur TSP terpendek jelas merupakan masalah yang paling relevan di sini dan dipelajari secara luas, serta dibahas dalam beberapa buku [Lawler

et al. 1985; Papadimitriou dan Steiglitz 1998].

( (3) (Masalah pompa bensin tur biaya seragam) Karena masalah ini adalah NP-hard, kami fokus

pada algoritma perkiraan waktu polinomial. Kita asumsikan bahwa setiap kota mempunyai SPBU dalam jarak ÿ untuk beberapa ÿ < 1. Asumsi ini masuk akal karena bagaimanapun juga, setiap kota harus mempunyai SPBU dalam jarak tersebut, jika tidak maka tidak ada cara untuk mengunjunginya. Asumsi serupa dibuat dalam pekerjaan pada masalah perutean kendaraan yang dibatasi jarak [Li et al. 1992]. Kami ). mengembangkan algoritma aproksimasi dengan faktor aproksimasi sebesar Kami juga mempertimbangkan

kasus khusus, yaitu ketika hanya ada satu SPBU.

) mungkin Hal ini sama dengan memiliki depo pusat, dan mengharuskan kendaraan untuk kembali ke depo setelah menempuh jarak maksimum U. Untuk kasus khusus ini, kami

mengembangkan algoritma dengan faktor O(ln ) dan ini meningkatkan batas (4) (Masalah SPBU wisata) Sama saja dengan masalah sebelumnya, hanya saja

Selain itu, kami mengembangkan algoritma kedua untuk versi semua pasangan yang berjalan dalam waktu O(n 3ÿ2 ). Metode ini lebih baik daripada mengulangi algoritma tujuan tetap sebanyak n kali ketika ÿ < log n.

(2) (Masalah SPBU jalur tetap) Untuk versi jalur tetap dengan jumlah pemberhentian yang tidak terbatas, kami mengembangkan algoritma waktu O(n log n) yang cepat.

3 2

1 1ÿÿ 2

1+ÿ 1ÿÿ

kamu

2

ÿij 1ÿÿ

2 2

(4)

3 2

Ada beberapa penelitian terbaru yang dilakukan oleh Nagarajan dan Ravi [Nagarajan dan Ravi 2006] tentang rute kendaraan minimum yang berkaitan erat dengan masalah tur pompa bensin tunggal. Dalam soal ini, titik akar (depot) yang ditentukan dan batas waktu D diberikan dan tujuannya adalah menggunakan jumlah minimum kendaraan dari akar sehingga setiap lokasi dipenuhi oleh setidaknya satu kendaraan, dan setiap kendaraan menempuh panjang paling banyak D. (Dalam definisinya, kendaraan tidak harus kembali ke akar.) Mereka memberikan perkiraan 4 untuk kasus di mana lokasi berada di pohon dan perkiraan O(log D) untuk grafik dengan bobot bilangan bulat.

masalah. Selain itu, ketika ÿ = n kami menunjukkan cara menyelesaikan masalah dalam waktu O(n untuk grafik umum, dan waktu O(n log n) untuk kasus di mana G adalah jalur tetap.

Kami juga ingin mencatat bahwa strategi kami menghasilkan solusi dimana tangki bensin akan kosong ketika seseorang mencapai lokasi dimana gas dapat diisi dengan murah. Dalam praktiknya, hal ini tidak aman dan seseorang mungkin kehabisan bahan bakar (misalnya jika terjebak kemacetan). Oleh karena itu kami menyarankan untuk mendefinisikan U lebih kecil dari kapasitas tangki sebenarnya

sehingga kita selalu mempunyai kapasitas

“cadangan”. log n) algoritma waktu untuk pompa bensin ) Karya lain yang terkait erat adalah karya Arkin dkk. [Arkin dkk. 2006] yang menghitung

tutupan pohon dan tur dengan panjang terbatas. Apa yang membuat masalah mereka lebih mudah adalah tidak adanya simpul akar tertentu, atau sekumpulan pompa bensin yang salah satunya harus disertakan dalam pohon atau tur dengan panjang terbatas. Beberapa pekerjaan menangani masalah perutean kendaraan [M. Khaimovich 1985; 1988;

Frederickson dkk. 1978] dengan beberapa kendaraan, yang tujuannya adalah untuk membatasi total biaya solusi, atau untuk meminimalkan tur terpanjang. Namun masalah ini jauh lebih mudah untuk dikembangkan algoritma perkiraannya.

Salah satu generalisasi yang menarik dari masalah ini adalah masalah barisan SPBU dimana kita diberikan barisan s1, s2, . . . , sp dari simpul yang harus kita kunjungi dalam urutan yang ditentukan. Varian ini dapat direduksi menjadi versi st dengan cara yang tepat 2. MASALAH SPBU

Pada bagian ini kita mengembangkan O(ÿn

Masukan ke soal kita terdiri dari grafik lengkap G = (V, E) dengan panjang rusuk d : E ÿ R+, biaya bahan bakar c : V ÿ R+ dan kapasitas tangki U. (Ekuivalennya, jika kita tidak diberikan grafik lengkap kita dapat mendefinisikan duv sebagai jarak antara u dan v di G.) Tujuan kita adalah berpindah dari sumber s ke tujuan t dengan cara yang paling murah dengan menggunakan paling banyak ÿ pemberhentian untuk mengisi bahan bakar. Untuk

kemudahan eksposisi kita berkonsentrasi pada kasus di mana kita memulai dari s dengan tangki kosong. Kasus dimana kita memulai dengan satuan µs gas dapat direduksi menjadi

yang pertama sebagai berikut. Tambahkan simpul baru s seperti = U ÿ µs dan c(s ) = 0.

Permasalahan memulai dari s dengan satuan µs dari gas ds s tersebut dan memulai dari s dengan tangki kosong menggunakan satu pemberhentian tambahan adalah ekuivalen.

dimulai dari titik tertentu. Untuk masalah ini, pendekatan faktor 3 baru-baru ini diberikan oleh Bansal et al. [Bansal dkk. 2004]. (Faktanya, mereka dapat memperbaiki simpul awal dan akhir.) Algoritma ini digunakan sebagai subrutin untuk mengembangkan bikriteria yang terikat pada Deadline TSP. Dengan menggunakan pendekatan 3 untuk masalah teering Orien, kami mengembangkan perkiraan O(log |T|) untuk masalah tur pompa bensin tunggal. Hal ini tidak mengherankan, karena kami ingin mencakup semua lokasi dengan mencari jalan yang panjangnya paling banyak U.

(5)

3

2 A(u, q, g) = menit

tabel tersebut membutuhkan O(ÿn

SEBUAH(v, qÿ1, 0) + (duv ÿ g) c(u) | c(v) ÿ c(u) ÿ g ÿ duv

Kesulitan utama dalam menyelesaikan masalah ini berasal dari kenyataan bahwa, pada prinsipnya, kita perlu mempertimbangkan setiap nilai g ÿ [0,U]. Salah satu cara untuk menghindari hal ini adalah dengan mendiskritisasi nilai yang dapat diambil g. Sayangnya ini hanya menghasilkan algoritma waktu pseudo-polinomial. Untuk menyiasatinya kita perlu melihat lebih dekat pada struktur solusi optimal.

Teorema 2.2. Ada O(ÿn lem dengan ÿ berhenti.

SEBUAH(v, qÿ1,U ÿ duv) + (U ÿ g) c(u) | c(v) > c(kamu)

Lemma 2.1. Misalkan s = u1, u2, . . . , itu adalah pemberhentian isi ulang dari solusi optimal yang menggunakan paling banyak ÿ pemberhentian. Berikut ini adalah strategi optimal untuk menentukan berapa banyak bahan bakar yang harus diisi pada setiap pemberhentian: Pada saat pengisian bahan

bakar cukup untuk mencapai t dengan tangki kosong; untuk

j < li) Jika c(uj ) < c(uj+1) maka di uj isi tangki. ii) Jika c(uj ) ÿ c(uj+1) maka pada uj isi gas secukupnya hingga mencapai uj+1.

Pengulangan berikut memungkinkan kita menghitung A(u, q, g) untuk setiap g ÿ GV (u):

2.1 Masalah SPBU menggunakan ÿ stop Masalah

SPBU akan diselesaikan dengan rumusan program dinamis (DP) sebagai berikut:

Biaya solusi optimal adalah min1ÿlÿÿ A(s, l, 0). Cara pengisian yang naif

SEBUAH(kamu, 1, g) =

Biaya minimum perjalanan dari u ke t menggunakan q perhentian isi ulang, dimulai A(u,

q, g) = dengan g unit gas. Kami menganggap Anda sebagai salah satu perhentian q.

(dut ÿ g) c(u) jika g ÿ dut ÿ U sebaliknya

Pertimbangkan pemberhentian isi ulang u = s dalam solusi optimal. Biarkan kami berhenti tepat di depan Anda. Lemma 2.1 menyiratkan bahwa jika c(w) ÿ c(u), kita mencapai u dengan tangki kosong, jika tidak, kita mencapai u dengan gas U ÿ dwu . Oleh karena itu, dalam formulasi DP kita perlu mencatat paling banyak n nilai gas yang berbeda untuk u. Misalkan GV (u) adalah himpunan nilai-nilai tersebut, yaitu

log n) algoritma waktu untuk masalah SPBU

Daripada menghabiskan O(n) waktu menghitung satu entri tabel, kami menghabiskan O(log n) waktu diamortisasi per entri. Lebih tepatnya, untuk u ÿ V tetap dan 1 < q ÿ ÿ

GV (u) = {U ÿ dwu | w ÿ V dan c(w) < c(u) dan dwu ÿ U} ÿ {0}

grafik yang ditentukan.

Bukti. Jika c(uj ) < c(uj+1) dan solusi optimal tidak terisi di uj maka kita dapat menambah jumlah yang terisi di uj dan mengurangi jumlah yang terisi di uj+1.

ÿ

Hal ini meningkatkan biaya solusi, yang bertentangan dengan asumsi optimalitas. Demikian pula, jika c(uj ) ÿ c(uj+1) maka kita dapat mengurangi jumlah pengisian pada uj dan menambah jumlah pengisian pada uj+1 (tanpa meningkatkan biaya keseluruhan penyelesaian) hingga kondisi terpenuhi.

) waktu. Namun hal ini dapat dilakukan dengan lebih efisien.

Masalah SPBU 5

v st duvÿU

·

(6)

Kita dapat mereduksi permasalahan tersebut menjadi pertanyaan lintasan terpendek pada graf baru H. Titik-titik dari H berpasangan (u, g), dimana u ÿ V dan g ÿ GV (u). Sisi dari H dan bobotnya w(·) ditentukan oleh perulangan DP. Yaitu, untuk setiap u, v ÿ V dan g ÿ GV (u) sehingga duv ÿ U kita mempunyai w (u, q),(v, 0) = (duvÿg) c(u) jika c(v) ÿ c(u) dan g ÿ duv, atau w (u, q),(v,U ÿduv = (U ÿg) c(u) jika c(v) > c(u).

Rekursi DP untuk A(u, q, g) menemukan nilai minimum, dari seluruh v sehingga duv ÿ U, dari suku-suku yang berhubungan dengan biaya untuk berpindah dari u ke t melalui v.

Pisahkan masing-masing suku ini menjadi dua bagian berdasarkan apakah mereka bergantung pada g atau tidak.

Tujuan kita adalah mencari jalur terpendek dari (s, 0) ke (t, 0). Perhatikan bahwa H memiliki 2 3 sisi.

Menggunakan algoritma Dijkstra [Cormen et al. terbanyak n simpul dan paling banyak n 2001] teorema

berikut.

Teorema 2.3. Ketika ÿ = n masalahnya dapat diselesaikan dalam O(n

Jadi kita mempunyai bagian independen, yaitu A(v, q ÿ 1, 0) + duv c(u) atau A(v, q ÿ 1,U ÿ duv) + Uc(u); dan bagian terikat, ÿgc(u).

2.2 Algoritma yang lebih cepat untuk versi all-

pair Pertimbangkan kasus di mana kita ingin memecahkan masalah untuk semua node awal i, dengan jumlah µi gas di dalam tangki pada awalnya. Menggunakan metode yang dijelaskan dalam

) waktu.

Prosedur kami dimulai dengan mengurutkan bagian independen dari setiap istilah.

Perhatikan bahwa nilai minimumnya sesuai dengan entri untuk g = 0. Saat kita meningkatkan g, suku-sukunya berkurang secara seragam. Jadi, untuk menghitung entri tabel untuk g > 0 cukup kurangi gc(u) dari bagian independen terkecil yang tersedia. Satu-satunya peringatan adalah bahwa suku yang bersesuaian dengan simpul v sedemikian rupa sehingga c(v) ÿ c(u) tidak boleh dipertimbangkan lagi ketika g > duv, kita katakan suku tersebut berakhir setelah g > duv. Karena suku-suku independen telah diurutkan, setelah suku independen terkecil habis masa berlakunya, kita dapat menelusuri daftar yang telah diurutkan untuk menemukan simpul berikutnya yang belum habis masa berlakunya. Prosedurnya didominasi

oleh waktu yang dihabiskan untuk menyortir suku-suku independen yang memakan waktu O(n log n). Pseudocode-nya diberikan pada Gambar 1.

kami menunjukkan cara menghitung semua entri dalam bentuk A(u, q, ÿ) dalam waktu O(n log n) menggunakan entri dalam bentuk A(ÿ, qÿ1, ÿ). Teorema 2.2 segera menyusul.

9

6 urutkan R dalam nilai indep(·) yang meningkat 7 misalkan v ÿ R menjadi yang pertama dalam urutan yang terurut 8 untuk g ÿ GV (u) dalam nilai yang

meningkat do sementara

g > duv misalkan v ÿ R menjadi simpul berikutnya dalam urutan yang terurut 11

10

C[u, q, g] ÿ indep(v) ÿ gc(u) baris isian(u, q)

Gambar 1. Prosedur waktu O(n log n) untuk menghitung C[u, q, ÿ].

4

1 R ÿ {v ÿ V | duv ÿ U} 2 untuk v ÿ R lakukan jika

c(v) ÿ c(u) 3

maka indep(v) ÿ C[v, q ÿ 1, 0] + duvc(u) else indep(v) ÿ C [ v, q ÿ 1, U ÿ duv] + Uc(u)

5

3

(7)

st

B(i, h, p) = menit menit

Jika kita dapat menghitung C(i, k, q) secara efisien maka B(i, h, p) dapat dihitung.

Kita mendefinisikan C(i, k, q) sebagai cara biaya minimum untuk berpindah dari i ke k dengan jumlah pemberhentian paling banyak q untuk mendapatkan bahan bakar, sehingga kita mulai dari i dengan tangki kosong (dan mendapatkan bahan bakar di i, yang dihitung sebagai berhenti) dan akhirnya mencapai k dengan tangki kosong. Selain itu, harga bahan bakar di stasiun perantara juga mengalami kenaikan kecuali di pemberhentian terakhir.

Tujuan kita adalah menghitung B(i , h, ÿ + 1) yang merupakan solusi biaya minimum untuk berpindah dari i ke h dengan paling banyak ÿ perhentian di antaranya. Perhatikan bahwa pengisian pertama adalah yang terjadi di node i setelah itu kita berhenti paling banyak ÿ kali.

Ada n 2ÿ keadaan dalam program dinamis, dan masing-masing keadaan dapat dihitung dalam waktu O(nÿ). Ini menghasilkan waktu berjalan O(n 3ÿ2 ). Kita akan melihat bahwa waktu yang diperlukan untuk menghitung C(i, k, q) adalah O(n 3ÿ) untuk semua pilihan i, k, q yang relevan.

Misalkan dalam perjalanan dari i ke k kita berhenti di i1 = i, . . . ,iq,iq+1 = k . Perhatikan bahwa c(i1) ÿ c(i2) ÿ . . . ÿ c(iq), namun c(iq) > c(iq+1). Faktanya, pada i1 kita akan mendapatkan sejumlah U gas. Ketika kita mencapai ij untuk 1 < j < q, kita akan mendapatkan dijÿ1ij unit gas (jumlah yang kita konsumsi sejak pengisian sebelumnya) dengan biaya c(ij ) per unit

Kita definisikan B(h, h, p) = 0. Untuk i = h misalkan B(i, h, 1) = c(i) dih jika dih ÿ U, dan Sekarang kita akan menunjukkan cara menghitung B(i, h, p). Ada dua pilihan:

Tambahkan node baru i sehingga di i = U ÿ µi dan c(i ) = 0. Jika kita memulai dari i dengan µi satuan gas, maka sama dengan memulai dari i yang gasnya bebas. Kita mengisi tangki hingga kapasitas U, dan pada saat kita mencapai i, kita akan mempunyai tepat µi unit gas di dalam tangki.

(Karena gas bebas di setiap node i dalam solusi optimal apa pun, kita mengisi tangki hingga kapasitas U). Ini akan menggunakan satu perhentian tambahan.

q+1

Kita mendefinisikan B(i, h, p) sebagai solusi biaya minimum untuk berpindah dari i ke h (tujuan), dengan p berhenti untuk mendapatkan bahan bakar, mengingat kita memulai dengan tangki kosong di i. Karena kita memulai dengan tangki kosong, kita harus mengisi bahan bakar di titik awal (dan ini termasuk sebagai salah satu perhentian). Jelasnya, kita juga akan mencapai h (tujuan) dengan tangki kosong, dengan asumsi tidak ada solusi sepele, seperti solusi yang tiba di tujuan tanpa ada pengisian di jalan.

B(i, h, p) = C(i, k, q) + B(k, h, p ÿ q) B(i, h, p) = B(k, h, p ÿ 1) + dikc(i)

C(i, k, q) + B(k, h, pÿq), min B(k, h, pÿ1) + dik c(i)

—Jika tempat pertama di mana biaya bahan bakar turun dari perhentian sebelumnya adalah

perhentian tersebut dan harga berada dalam urutan kenaikan pada q perhentian pertama, maka bagian sebelumnya, kita mendapatkan waktu berjalan O(n 3ÿ log n) karena kita menjalankan

algoritma untuk setiap tujuan yang mungkin. Kita akan menunjukkan bahwa untuk ÿ < log n kita dapat memperbaikinya dan mendapatkan batasan O(n 3ÿ2 ).

,

B(i, h, 1) = ÿ sebaliknya. Secara umum:

—Jika harga bahan bakar di perhentian pertama setelah i (misalnya k) lebih murah daripada c(i) maka kita akan mencapai stasiun tersebut dengan tangki kosong setelah mengisi dik satuan gas di i (selama dik ÿ U):

Masalah SPBU 7

1ÿkÿn 1<qÿp

1ÿkÿn stdikÿU

·

(8)

Gambar 2. Contoh untuk menampilkan C(i, k, q) untuk q = 4.

k = i5

saya = i1 Biaya bahan bakar

Jangkau dengan tangki kosong

Mulailah dengan tangki kosong

Isi ulang berhenti

i3 i4

i2

Kita mendefinisikan ED sebagai berikut: tambahkan sisi berarah dari setiap j ÿ V ke k untuk masing-masingnya

Sekarang kita dapat menyatakan C(i, k, q) sebagai Sp(i, k , q)+Uc(i) dimana Sp(i, k , q) adalah jalur terpendek dari i ke k pada graf G dengan menggunakan at sebagian besar sisi q.

Untuk melihat mengapa hal ini benar, kita dapat melihat bahwa untuk setiap urutan perhentian antara i dan k (di mana harga bahan bakar berada dalam urutan kenaikan dalam perhentian yang berurutan), biaya minimum sama dengan bobot jalur di G yang dimulai dari i, menuju perhentian kedua dalam urutan tertentu (misalnya, i2) dan kemudian melintasi simpul V dalam urutan yang sama dan dari perhentian kedua terakhir menuju k . Mungkin juga q = 2 dan jalurnya langsung dari i = i1 ke k dalam kasus ini, dan i2 adalah pilihan untuk z yang mencapai biaya minimum untuk sisi (i, k ).

, simpul k ÿ VD \ {j } sehingga U < djk ÿ 2U. Berat tepi ini adalah

Kami menghitung C(i, k, q) sebagai berikut. Perhatikan dulu jika dik ÿ U maka jawabannya adalah dikc(i). Jika tidak, kita akan membuat graf berarah G = (V ÿ VD, E ÿ ED), dengan V adalah himpunan simpul, dan VD = {i |i ÿ V }.

gas. Jumlah bahan bakar yang kita peroleh di iq hanya cukup untuk mencapai k dengan tangki kosong. Sekarang kita dapat melihat bahwa total biayanya sama dengan Uc(i1) + di1i2 c(i2) + . . . + diqÿ2iqÿ1 c(iqÿ1) + (diqÿ1 iq + diq k ÿ U)c(iq). Perhatikan bahwa suku terakhir tidak negatif, karena kita tidak dapat mencapai k dari iqÿ1 bahkan dengan tangki penuh di iqÿ1, tanpa berhenti untuk mendapatkan sejumlah kecil bahan bakar.

Untuk setiap jalur tertentu P di G antara i dan k

Kita mendefinisikan E: tambahkan sisi berarah dari i ÿ V ke j untuk setiap titik j ÿ V \ {i}

jika bobot jalurnya adalah WP, kita dapat menemukan rencana yang layak untuk mengisi tangki di stasiun sehingga biayanya sama dengan WP + Uc(i). Pengisian tangki cukup di stasiun-stasiun yang ada di jalurnya, kecuali stasiun terakhir yang tangkinya diisi hanya sampai batas yang diperlukan untuk mencapai k.

menit (djz + dzk ÿ U)c(z)| c(j), c(k) < c(z) dan djz, dzk ÿ U sehingga dij ÿ U dan c(i) ÿ c(j). Berat sisi ini adalah dij c(j).

Dapat disimpulkan bahwa C(i, k, q) sama dengan Sp(i, k , q) + Uc(i).

Waktu berjalan untuk menemukan jalur terpendek antara semua pasangan node dengan jumlah pemberhentian yang berbeda (paling banyak ÿ) dapat dihitung dalam O(n 3ÿ) dengan pemrograman dinamis [Lawler 2001]. Jika kita menghitung terlebih dahulu C(i, k, q) waktu berjalan untuk

menghitung B(i , h, ÿ + 1) adalah O(n 3ÿ2 ) dengan asumsi kita mulai dari i dengan jumlah gas µi . Jadi secara umum waktu berjalannya adalah O(n 3ÿ2 ).

Nama Jurnal ACM, Vol. V, No.N, Bulan 20YY.

(9)

·

Nama Jurnal ACM, Vol. V, No.N, Bulan 20YY.

Masalah SPBU 9

Perhatikan bahwa kita tidak dapat mereduksi masalah ini menjadi p submasalah sumber- tujuan yang terpisah dan menggabungkan solusinya secara langsung. Untuk mengetahui alasannya, pertimbangkan kasus dimana harga bahan bakar sangat tinggi di beberapa SPBU si dan dalam perjalanan dari siÿ1 ke si terdapat sebuah SPBU yang sangat murah di dekat si . Jika kita ingin menggunakan solusi untuk sub-masalah yang terpisah dan kemudian

menggabungkannya, kita akan mencapai si dengan tangki kosong sehingga kita harus mengisi tangki pada si karena kita kehabisan bahan bakar; namun solusi optimalnya adalah mencapai si dengan sejumlah bahan bakar di dalam tangki agar memungkinkan untuk mencapai stasiun

berikutnya setelah si tanpa mengisi tangki pada si . antara beberapa node sj dan sj+1 bukanlah cara optimal yang akan dipilih dalam

Lemma 2.5. Biarkan aku menjadi titik istirahat. Ada solusi optimal yang mencapai i masalah tion dengan jumlah perhentian yang tidak terbatas.

Untuk mengatasi masalah ini, kita akan membuat grafik baru sebagai berikut: Buatlah p ÿ 1 salinan baru dari grafik saat ini G dan beri nama G1, . . . , Gpÿ1. G akan menjadi G0. Panggil vi di Gj sebagai vi,j . Sekarang hubungkan Gi dan Gi+1 dengan menggabungkan si+1,i dan si+1,i+1 menjadi satu node. Solusi dari permasalahan awal adalah mencari cara termurah untuk berpindah dari s1,0 ke sp,pÿ1 pada grafik baru. kita dapat melihat bahwa setiap jalur pada grafik ini yang bergerak dari s1,0 ke sp,pÿ1 akan melalui si+1,i ÿi 0 ÿ i ÿ p ÿ 1.

Langkah pertama terdiri dari mencari, untuk setiap SPBU i, SPBU sebelumnya dan berikutnya.

Definisikan prev(i) sebagai stasiun j ÿ i dengan bahan bakar termurah di antara stasiun yang memenuhi dji ÿ U. Misalkan next(i) juga merupakan stasiun j > i dengan bahan bakar termurah sehingga dij ÿ U. Ikatan apa pun akhirnya putus dengan memihak stasiun terdekat dengan n.

2.4 Jalur Tetap

Beri nomor pada node sepanjang jalur dari 1 sampai n, sehingga kita mulai dari 1 dan ingin mencapai n. Tanpa kehilangan keumuman, asumsikan kita mulai dengan tangki kosong. Kami menyajikan algoritme yang cepat, namun sederhana, dan tepat untuk kasus di mana jumlah perhentian tidak terbatas.

Untuk menghitung kedua nilai ini kita menyimpan antrian prioritas pada stasiun-stasiun yang terletak pada jendela bergerak dengan panjang U. Mulai dari 1, kita menggeser jendela ke arah n dan menyisipkan dan menghapus stasiun-stasiun seiring berjalannya waktu. Tepat setelah memasukkan ke dalam (menghapus dari) antrian beberapa stasiun i, menanyakan nilai minimum dalam antrian memberi kita prev(i) (berikutnya(i)). Seluruh prosedur memakan waktu O(n log n).

Teorema 2.4. Ada algoritma waktu O(n log n) untuk sta gas jalur tetap 2.3 Masalah urutan pompa bensin Misalkan

alih-alih menentukan sumber dan tujuan, kita diminta menemukan cara termurah untuk memulai dari lokasi tertentu, mengunjungi beberapa lokasi dalam urutan tertentu selama perjalanan, dan kemudian mencapai tujuan akhir. Kita mendefinisikan permasalahan secara formal sebagai berikut: Diberikan sebuah

graf berbobot sisi G = (V, E) dan daftar simpul s0, . . . , sp, kami ingin mencari cara termurah untuk memulai dari s0, kunjungi s1, . . . , spÿ1 dalam urutan ini dan kemudian mencapai sp.

Stasiun i dikatakan break point jika prev(i) = i. Mengidentifikasi stasiun-stasiun tersebut penting karena kita dapat memecah masalah kita menjadi submasalah yang lebih kecil (dari satu break point ke break point berikutnya) dan kemudian menempelkan solusi-solusi ini untuk mendapatkan solusi optimal global.

(10)

xy ,

Secara lebih formal, masukan untuk permasalahan kita terdiri dari graf tak berarah lengkap G = (V, E) dengan panjang sisi d : E ÿ R+, himpunan kota T ÿ V himpunan SPBU S ÿ V dan kapasitas tangki U untuk kendaraan kita. Tujuannya adalah untuk menemukan durasi tur minimum yang mengunjungi semua kota di T, dan mungkin beberapa SPBU di S. Kami diperbolehkan mengunjungi suatu lokasi beberapa kali jika perlu.

Kami mengharuskan setiap segmen tur sepanjang U memiliki setidaknya satu pompa bensin, hal ini memastikan kami tidak pernah kehabisan bahan bakar. Kami menyebutnya masalah pompa bensin tur biaya seragam. Kita berasumsi bahwa kita memulai dengan tangki kosong di sebuah pompa bensin.

Sekarang perhatikan submasalah dari i ke k yang dimulai dan diakhiri dengan tangki kosong, sehingga tidak ada titik henti di (i, k). Algoritma berikut memecahkan submasalah kami secara optimal.

Permasalahannya adalah NP-hard karena ia menggeneralisasi masalah penjual keliling yang terkenal: atur saja kapasitas tangki ke jarak terjauh antara dua kota dan misalkan T = S. Faktanya, terdapat hubungan yang lebih dekat antara kedua masalah tersebut: Jika setiap kota mempunyai SPBU yaitu T ÿ S maka permasalahan SPBU dapat direduksi menjadi TSP. Pertimbangkan contoh TSP pada T di bawah metrik : T × T ÿ R+, di mana adalah biaya minimum perjalanan antar kota x dan y dimulai dengan tangki kosong (ini dapat dihitung dengan teknik standar). Karena biaya bahan bakar sama di semua tempat, tur TSP dapat diubah menjadi rencana berkendara yang mengunjungi semua kota dengan biaya yang sama dan sebaliknya. Misalkan OPT menyatakan solusi optimal dan c(OPT) adalah biayanya.

berkendara ke berikutnya(i, k)

Catatan: meskipun drive-to-next menyelesaikan submasalah khusus kami secara optimal, strategi tersebut tidak berfungsi secara umum. Untuk mengetahui alasannya, pertimbangkan sebuah contoh di mana c(i) > c(i + 1) dan d1n = U. Meskipun perhentian optimal di setiap stasiun, perjalanan ke-berikutnya akan meminta kita untuk berjalan lurus dari 1 ke n.

Bukti. Misalkan j < i adalah stasiun terakhir yang kita singgahi untuk mengambil bahan bakar sebelum mencapai i.

3. MASALAH SPBU WISATA BIAYA SERAGAM

Karena i adalah break point, kita mempunyai c(i) ÿ c(j). Oleh karena itu di j kita mengisi bahan bakar secukupnya untuk mencapai i dengan tangki kosong.

Pada bagian ini kita mempelajari varian masalah SPBU dimana kita harus mengunjungi sekumpulan kota T secara acak. Kami mempertimbangkan kasus dimana harga bahan bakar sama di setiap SPBU, namun beberapa kota mungkin tidak memiliki SPBU.

3 Jika tidak, isi penuh dan lanjutkan ke berikutnya (x). Biarkan x menjadi berikutnya (x), lanjutkan ke langkah 2.

Pengamatan utamanya adalah untuk setiap stasiun x yang dipertimbangkan oleh algoritma, jika dxk > U maka c(x) ÿ c(berikutnya(x)). Karena semua stasiun dalam kisaran U setelah x menawarkan bahan bakar dengan biaya setidaknya c(x), solusi optimal akan terisi pada x dan naik ke stasiun termurah berikutnya, yaitu berikutnya(x).

dengan tangki kosong.

1 Misalkan x menjadi i.

, 2 Jika dxk ÿ U maka cukup isi bensin hingga mencapai k.

(11)

·

1 1ÿÿ

kamu

xy

xy.

3

xy

yx kamu paling 2

banyak ÿ 2

xy.

Masalah SPBU 11

Pada Gambar 3 kami mengilustrasikan definisi fungsi

tidak ada cara untuk mengunjunginya. Kami menunjukkan a

kamu 2 ,

3(1+ÿ) tidak ada pompa bensin dalam jarak perkiraan 2(1ÿÿ) untuk masalah ini. Perhatikan bahwa ketika ÿ = 0, ini memberikan batasan yang sama seperti metode Christofides untuk TSP.

Sayangnya pengurangan TSP ini gagal ketika kota tidak memiliki jaminan untuk memiliki pompa bensin. Pertimbangkan untuk pergi dari x ke y, di mana x tidak memiliki pompa bensin. Jarak antara x dan y akan bergantung pada berapa banyak bahan bakar yang kita miliki di x, yang selanjutnya bergantung pada kota mana yang dikunjungi sebelum x dan rute apa yang kita ambil untuk sampai ke sana.

Buatlah sebuah graf yang himpunan simpulnya adalah S, himpunan SPBU. Pada grafik ini tambahkan x dan y. Kami sekarang menambahkan sisi dari x ke semua SPBU dalam jarak U ÿ dx dari x. Demikian pula kita menambahkan sisi dari y ke semua SPBU dalam jarak U ÿ dy ke y.

3.1 Permasalahan SPBU wisata Untuk

setiap kota x ÿ T misalkan g(x) ÿ S adalah SPBU terdekat ke x, dan misalkan dx adalah jarak dari x ke g(x). Kita asumsikan setiap kota mempunyai SPBU dengan jarak untuk semua x ÿ T.

Kasus yang menarik dari masalah pompa bensin tur adalah sebuah contoh dengan satu pompa bensin. Hal ini juga dikenal sebagai masalah perutean kendaraan dengan batasan jarak dan dipelajari oleh Li et al. [Li dkk. 1992] yang memberikan algoritma perkiraan 2(1ÿÿ) , dimana jarak dari SPBU ke kota yang paling jauh adalah perkiraan algoritma ÿ. Tanpa membuat asumsi apa pun pada ÿ, kami

menunjukkan bahwa algoritme serakah yang menemukan tur berbatas yang mengunjungi sebagian besar kota dalam satu waktu adalah perkiraan faktor O(log |T|).

kamu 2 ,

Untuk kasus umum kita berasumsi bahwa setiap kota mempunyai SPBU 2 . Anggapan ini beralasan, karena jika suatu kota mempunyai

Di antara semua pasang SPBU, kita tambahkan sebuah rusuk jika jarak antar pasang SPBU paling banyak adalah U. Semua rusuk mempunyai panjang yang sama dengan jarak antara titik ujungnya.

Panjang jalur terpendek pada grafik ini dari x ke y adalah Perhatikan bahwa jalur terpendek (secara umum) akan dimulai dari x dan kemudian melalui serangkaian SPBU sebelum mencapai y.

Jalur ini menghasilkan rencana yang valid untuk berkendara dari x ke y tanpa kehabisan bahan bakar, setelah kita mencapai x dengan unit bahan bakar U ÿ dx . Saat kita mencapai y, kita mempunyai cukup bahan bakar untuk menuju ke gy. Perhatikan juga bahwa karena jalur tersebut pada dasarnya

“dapat dibalik”.

Ingatlah bahwa harga bahan bakar diasumsikan sama di semua SPBU. Kami mendefinisikan fungsi jarak baru untuk jarak antara setiap pasangan kota. Jarak didefinisikan sebagai berikut: Untuk setiap pasangan kota x dan y, xy adalah panjang lintasan terpendek dari x ke y dimulai dengan jumlah gas U ÿ dx dan mencapai y dengan jumlah gas dy . Jika dxy ÿ U ÿ dx ÿ dy maka kita dapat langsung dari x ke y, dan = dxy. Jika tidak, kita dapat menghitungnya sebagai berikut.

U pada jarak paling banyak ÿ

Seperti disebutkan sebelumnya, kita dapat menggunakan algoritma untuk kasus biaya seragam untuk mendapatkan algoritma perkiraan untuk kasus umum dengan membayar faktor ÿ dalam rasio perkiraan. Di sini ÿ adalah rasio harga maksimum yang dibayarkan oleh solusi optimal untuk membeli satu unit gas, dengan harga minimum yang dibayarkan untuk membeli satu unit gas (dalam

praktiknya berkisar antara 1 hingga 1,2).

Kami berasumsi di sini bahwa semuanya

; dengan kata lain, dx ÿ ÿ

untuk beberapa ÿ < 1. Kami memperbaikinya dengan menyediakan O(log

=

(12)

kamu

X

xz

2 . Namun, jika kita menghitung xz,

kamu

4

3c(OP T)

4

kamu

yz

2 2

3

kamu

c(OPT) 3

c(OP T) xy

xy

kamu

2 2

4

pada tindak lanjut ini.)

seperti yang ditunjukkan sebelumnya.

Dapat ditunjukkan bahwa panjang total MST kurang dari solusi optimal

Dan

= kita mempunyai tiga kota x, y, z. Misalkan dxy = dyz =

(2) Temukan pohon merentang minimum di (G , ). Temukan juga berat minimum yang sempurna

Kami

jarak adalah Euclidean. Perhatikan bahwa dari x, kita hanya bisa pergi ke B dan bukan A sejak itu

(3) Mulailah melintasi tur Euler. Tambahkan perjalanan isi ulang kapan pun diperlukan. (Rincian

Jelasnya, biaya untuk berpindah dari xi ke xi+1 dalam solusi optimal adalah paling sedikit.

Karena himpunan sisi-sisinya (xi , xi+1) membentuk pohon merentang, kita dapat menyimpulkan kamu akan lebih pendek. Dari C kita menuju ke E karena melalui F akan memakan waktu yang lebih lama

=

. Misalkan simpul-simpul berderajat ganjil berada dalam solusi optimal dalam

Tur Euler T paling banyak

U unit gas saat kita mulai

, dengan simpul untuk setiap kota. Untuk setiap pasangan kota x, y

Perhatikan bahwa fungsi tersebut mungkin tidak memenuhi pertidaksamaan segitiga. Untuk melihat ini, misalkan

xxi+1 .

=

menghitung

satuan gas. Jadi kita harus mengunjungi gy sepanjang jalan,

(1) Buat grafik baru G

kamu.

mencocokkan M pada simpul derajat ganjil di MST. Gabungkan MST dan

bahwa bobot (MST) ÿ c(OPT). Selanjutnya kita tunjukkan bahwa biaya M adalah pada kita mulai dari x dengan U ÿ dx satuan gas. Dari B, kita tidak bisa pergi ke D karena

dxz = U. Pertama-tama kita amati bahwa

tidak dapat berpindah dari x ke z secara langsung karena kita hanya punya

paling

biaya. Misalkan x1, . . . , xn adalah urutan solusi optimal mengunjungi kota-kota.

pesan o1, . . . , oke. Kita dapat melihat

bahwa solusi optimal beralih dari oi ke oi+1. Jadi biaya tertimbang minimum

pencocokan pada simpul-simpul berderajat ganjil adalah yang paling banyak. Jadi total biayanya

Sekarang kita perlu mengubah tur Eulerian menjadi rencana yang layak. Pertama, setiap .

M untuk menemukan tur Euler T .

jarak antara B dan D lebih jauh dari pada U, padahal jalurnya melalui D ke

x dan perlu mencapai z dengan dan dengan

demikian Algoritmanya adalah sebagai berikut:

2 . Misalkan dx = dy = dz =

paling banyak sama dengan jarak yang kita tempuh jalur, karena dari F kita tidak bisa langsung menuju ke y.

F

E A

C

D

B gx

gi

kamu - dx

xy.

kamu ÿ kamu dy

dx

Jalur yang ditampilkan adalah jalur valid terpendek dari x ke y.

Gambar 3. Fungsi

oioi+1

(13)

13

. . .

Masalah SPBU

Gambar 4. Penguraian larutan menjadi untaian.

0 x saya

1 x saya

3 x saya 2 x saya

k+1 x saya 4

x saya

k x i

Saya

1

Saya

0

Saya

2ÿ 1ÿÿ

Saya

Saya

Saya

xy.

th

Saya

k

jqi j0 0 . Juga beri label xx sebagai x i , . . . , ii

Saya

0ÿpÿqiÿ1

Li.

k+1

isi ulang perjalanan tidak langsung tepi

langsung pompa bensin kota

2Li jp+2 )) ÿ qi(1 ÿ ÿ)U =ÿ qi ÿ (1 ÿ ÿ)U

1 + ÿ

x saya , saya

3

),

x saya , saya

perjalanan isi ulang paling banyak ÿUqi , dan lemma mengikuti.

c(memilih).

2 2ÿ

saya . Untuk ini kami menambahkan x

(T (x

) dengan sisanya tepi (x, y) di T diganti dengan rencana sebenarnya untuk bergerak dari x ke y yang kita temukan Jika dxy ÿ

U ÿ dx ÿ dy rencana tersebut adalah berjalan lurus dari saat menghitung x ke y, kita menyebutnya

tepi langsung . Jika tidak, maka rencana tersebut harus melibatkan pemberhentian di satu atau lebih pompa bensin di sepanjang jalan, yang kita sebut sebagai tepi tidak langsung (indirect edge). Perhatikan bahwa biaya rencana ini sama dengan biaya tur Eulerian T . Sayangnya, seperti yang akan kita lihat di bawah, rencana ini tidak dapat dilaksanakan.

2Li >

(T ) ÿ

Definisikan untaian, yaitu rangkaian kota-kota yang berurutan dalam tur yang dihubungkan oleh tepian lurus. Jika sebuah kota dihubungkan dengan dua sisi tidak langsung, maka kota itu akan membentuk untaian dengan sendirinya.

Misalkan i pompa bensin terakhir (pertama) di tepi tidak langsung yang

menghubungkan x (x tur. Setiap untai sekarang dimulai dan diakhiri dengan pompa bensin. Kita dapat melihat tur sebagai dekomposisi menjadi untaian seperti yang ditunjukkan pada Gambar 4. Catatan bahwa

jika

jarak k+1 0 antara x dan x lebih dari U maka keseluruhan rencana tidak dapat dilaksanakan. Untuk

memperbaikinya ii kami menambahkan untuk setiap kota perjalanan isi ulang ke pompa bensin terdekat dan

kemudian dengan rakus mencoba untuk menghapusnya, sambil mempertahankan kelayakan, sampai kita mendapatkan set minimal perjalanan isi ulang.

Bukti. Asumsikan ada perjalanan isi ulang qi di untaian ini. Labeli kota tersebut dengan j1 perjalanan isi ulang ke SPBU terdekat x jp+2 jp+1 )) ÿ (1 ÿ ÿ)U (jika

tidak maka perjalanan isi ulang di x

Lamanya setiap perjalanan isi ulang tidak lebih dari ÿU. Oleh karena itu, panjang totalnya

Bisa

x saya

1 ÿ ÿ

k dan x

dijatuhkan). Ini memberi kita:

Biaya solusinya adalah total panjang untaian (yang merupakan panjang tur) ditambah total biaya perjalanan isi ulang. (Perhatikan bahwa tanpa kehilangan keumuman kita dapat berasumsi bahwa tur kita selalu dimulai dari pompa bensin. Untuk kasus yang hanya memiliki sisi lurus, terdapat tepat satu jalur, dimulai dan diakhiri di kota pertama dengan pompa bensin tersebut).

1 untai memiliki kota x i , . . . ,

ÿUqi ÿ 1 + 1 ÿ ÿ (T ) +

Dengan kata lain, total biaya solusinya adalah:

kx _

sebagai

Mari kita batasi biaya tambahan yang dikeluarkan untuk perjalanan ini.

(X

melakukan perjalanan isi ulang ke kota-kota di wilayah tersebut paling banyak Lemma 3.1. Biarkan Li menjadi panjang untaian ke-i. Maka jarak totalnya

jp jqi+ 1jp . Perhatikan bahwa (T

(x

·

(14)

Perhatikan bahwa untuk ÿ ÿ 0,5 rasio perkiraan di atas adalah ÿ 1.

Pertidaksamaan kedua berlaku jika kita mengasumsikan ÿ1 ÿ 0,5. Yang ketiga berasal dari penggunaan algoritma Christofides [Christofides 1976] [Christofides 1976] untuk menemukan tur TSP dan fakta bahwa OPT adalah tur TSP yang valid.

biaya(TSP) ÿ ÿ1U (1 ÿ ÿ1)U

Perhatikan bahwa hal ini tidak akan berfungsi dengan baik jika kota berada jauh dari pompa bensin (ÿ ÿ 1). Dalam skema kami, kota-kota yang jauh tersebut akan dikunjungi dengan cara yang berbeda. Pada iterasi ke-i kita mengunjungi kota Ci pada jarak (ÿi ] dengan mencari kumpulan jalur dengan panjang paling banyak (1ÿÿi+1)U yang mencakup Ci dan kemudian mengubah segmen ini menjadi loop.

Misalkan kita mengetahui bahwa dalam solusi optimal terdapat perulangan ki yang menjangkau suatu kota di Ci—jumlah ini dapat ditebak. Pertama kita jalankan algoritma Kruskal tetapi berhenti setelah jumlah komponen menjadi ki, biarkan Ri menjadi hutan yang dihasilkan. Setiap

pohon digandakan untuk membentuk lingkaran dan kemudian dipotong menjadi segmen-segmen dengan panjang (1 ÿ ÿi+1)U.

biaya (TSP) Teorema 3.3. Ada 6.362 ln

biaya(Ci) ÿ 2 biaya(Ri) + k lem.

paling banyak (2ÿ + 1)ki.

ÿ

konstan, setelah iterasi logÿ kita akan mengunjungi semua kota. Kami akan berpendapat bahwa dalam setiap iterasi kami menempuh jarak O(c(OPT)), yang memberi kami hasil yang diinginkan.

Nilai ÿi akan dipilih untuk meminimalkan konstanta yang terlibat untuk mendapatkan teorema berikut.

Pertama kita pertimbangkan kota C0 pada jarak ÿ1 atau kurang dari pompa bensin.

3

Temukan tur TSP di pompa bensin dan C0 dan potong menjadi beberapa bagian dengan panjang (1ÿÿ1)U. Jarak dari SPBU ke lokasi mana pun paling banyak ÿ1 sehingga ruas-ruas tersebut dapat dilalui dengan panjang putaran paling banyak U. Sebenarnya kita dapat mulai memotong tur TSP di SPBU dan menjadikan ruas pertama dan terakhir menjadi dengan panjang (1 ÿ )U.

Total durasi tur ini adalah:

biaya (C0) ÿ

= ÿ a

,

Lemma 3.4. Jumlah segmen k

ÿ1,534 perkiraan faktor untuk masalah SPBU tur biaya seragam dengan satu SPBU, untuk ÿ ÿ 0,5.

Bukti. Tepian di Ri membentuk hutan berbobot minimum dengan komponen ki , hal ini dapat

kita kaitkan dengan biaya OPT. Pertimbangkan untuk mengubah setiap loop di OPT menjadi sebuah jalur

kamu 2

ÿ1 2

1 1ÿÿ

kamu 2

ÿi+1U

Saya

Misalkan k adalah banyaknya segmen tersebut. Oleh karena itu, biaya loop ini adalah, i

kamu 2

· PILIH 2(1 ÿ ÿ1)

kamu 2

1ÿÿ1 1ÿÿ 3.2 SPBU Tunggal Dalam versi ini, hanya

ada satu SPBU dan kendaraan kita mulai dari sana. Harus kembali ke SPBU sebelum kehabisan bensin setelah menempuh jarak paling banyak U dari pengisian sebelumnya. Perbaiki konstanta (ÿ1, ÿ2, . . . , ÿl). Algoritme kami dari pompa bensin (kami menyebut kota-kota ini sebagai kota kunjungan pertama pada jarak ÿ1 C0). Di luar ÿ1 kami bekerja dalam iterasi. Pada iterasi ke-i kita mengunjungi kota (Ci) 2 ÿi+1 dari SPBU. Jika kita membuat 1ÿÿi yang terletak

pada jarak

kamu 2

2 saya ,

2 , ÿi+1 3 (1+ÿ)

-perkiraan untuk soal pompa bensin tur Teorema 3.2. Ada 2 (1ÿÿ)

kamu

kamu

kamu ÿ (1 ÿ ÿ1)

kamu

Saya

1ÿÿi+1

(15)

·

kamu 2 Saya

aku

saya=1

ÿ1 1ÿÿ1

1ÿÿ

1 ÿ ÿ1 + (2ÿ + 1) logÿ + 1 + 2(1 ÿ ÿ1) 1 ÿ ÿ ÿ1

Setelah l = logÿ iterasi kami akan mengunjungi semua kota dengan biaya:

2 (1 ÿ ÿi)Uki (1 ÿ ÿi+1)U

3

k ÿ saya

3.3 Algoritma Greedy

Dalam hal ini kita tidak membuat asumsi apapun mengenai jarak maksimum dari suatu kota ke SPBU terdekat. Kami akan menggunakan jalur Orienteering Point-to-Point sebagai dasar skema serakah. Dalam soal Orienteering Point-to-Point, setiap titik pada graf mempunyai hadiah. Tujuannya adalah untuk menemukan jalur P dengan panjang maksimum d (yang telah ditentukan sebelumnya) antara dua simpul s dan t sehingga total hadiah P dimaksimalkan. Algoritma 3-perkiraan untuk masalah ini dijelaskan dalam [Bansal et al.

2004]. Algoritma serakah bekerja sebagai berikut: Pada awalnya, hadiah semua kota diinisialisasi menjadi 1. Ketika algoritma melanjutkan setiap kali kita mengunjungi sebuah kota dalam tur, kita mengatur ulang hadiahnya menjadi 0. Algoritma serakah akan berulang kali memilih Point- jalur Orienteering ke Titik yang dimulai dan berakhir di s dengan panjang maksimum U, hingga hadiah semua simpul disetel ulang ke nol. Dengan menggunakan argumen serupa dengan set-cover dapat ditunjukkan bahwa total biaya dan jumlah siklus yang diberikan oleh pendekatan ini paling banyak adalah O(log |T|) dikali biaya optimal.

ÿi+1U

ÿ 2 biaya(OPT) ÿ 2kiÿiU + (2 ÿ + 1) ki ÿi+1U ÿ 2

biaya(OPT) + (2 ÿ ÿ 1)(biaya(OPT) ÿ kiÿiU) ÿ 2kiÿiU + (2 ÿ + 1) ki ÿi+1U ÿ (2 ÿ + 1) biaya(OPT) + (2 ÿ + 1) ki (ÿi+1 ÿ ÿi)U

Dengan menggunakan ini kita dapat membatasi jumlah segmen yang kita peroleh setelah menggandakan dan memotong Ri :

2 biaya(Ri) (1 ÿ ÿi+1)U

Misalkan k adalah jumlah loop dalam solusi optimal yang panjangnya lebih besar dari ÿ1U, perhatikan bahwa loop yang mencakup kota-kota di luar ÿ1 setidaknya harus sepanjang ini, oleh karena itu k ÿ ki untuk semua i. Menjumlahkan semua iterasi yang kita dapatkan:

1 ÿ ÿ1 ÿ (2 ÿ + 1) aku +

Kami sekarang terikat biaya mengunjungi kota-kota di Ci .

Kita dapat menggunakan optimasi numerik untuk meminimalkan rasio perkiraan dalam ekspresi di atas. Nilai ÿ1 = 0,7771 dan ÿ = 3,1811 menghasilkan Teo rem 3.3.

biaya (OPT) biaya(Ci) ÿ 2 biaya(Ri) + k

dengan menjaga jarak antara kota pertama dan kota terakhir di Ci . Himpunan P dari jalur tersebut adalah hutan dengan komponen ki , oleh karena itu biaya(Ri) ÿ biaya(P) ÿ (1 ÿ ÿi)Uki

ÿ 1 biaya (OPT) + ki ÿ

biaya(Ci) ÿ (2 ÿ + 1)(l biaya(OPT) + k(ÿl ÿ ÿ1)U)

+ ki ÿ (2 ÿ + 1) ki

1

Masalah SPBU 15

(16)

1 3J

J 2

3J

kamu 2

N

N

3J

Saya

3J

3J siÿ1 +

Awerbuch, B., Azar, Y., Blum, A., dan Vempala, S. 1998. Jaminan perkiraan baru untuk k-tree dengan berat minimum dan salesman pengumpul hadiah. Jurnal SIAM tentang Komputasi 28, 1, 254–262.

Arkin, EM, Hassin, R., dan Levin, A. 2006. Perkiraan masalah perutean kendaraan minimum dan min-maks. Jurnal Algoritma 59, 1, 1–18.

REFERENSI

Arkin, EM, Mitchell, JSB, dan Narasimhan, G. 1998. Optimasi jaringan geometri terbatas sumber daya. Dalam Prosiding Simposium Tahunan ke-14 tentang Geometri Komputasi (SoCG). 307–

316.

http://www.gasbuddy.com/.

http://www.aaa.com/.

nÿsiÿ1 nÿsiÿ1

Masalah yang menarik saat ini adalah mengeksplorasi peningkatan faktor perkiraan untuk kasus khusus metrik Euclidean, dan grafik planar. Selain itu kami juga ingin mengembangkan algoritme yang lebih cepat untuk kasus sumber dan tujuan tunggal, mungkin dengan

mengorbankan optimalitas solusi.

Bukti. Perhatikan bahwa jika suatu algoritma memperkirakan jumlah siklus dalam solusi optimal, maka algoritma tersebut juga memperkirakan total panjang tur terhadap solusi

optimal. Untuk solusi apa pun, kita dapat menggabungkan masing-masing dua siklus yang panjangnya kurang dari

saya = 1

)

bersama. Wisata baru masih layak dan panjangnya kurang atau sama dengan wisata awal.

saya > 1

Setelah menyelesaikan rekursi di atas, kita melihat bahwa si ÿ n(1 ÿ . Tujuan kita adalah mencari i terkecil sehingga si > n ÿ 1. Oleh karena itu, jika melakukan iterasi untuk i > J × O(log n), semua kota Jadi metode serakah akan memberi kita solusi perkiraan O(log n) untuk panjang dan jumlah siklus.

si ÿ

Jadi, terdapat solusi panjang minimum dimana jumlah panjang dua siklus paling sedikit adalah U . Pertimbangkan solusi dengan panjang minimum dan dengan properti yang tidak dapat kita gabungkan lagi siklusnya. Jika jumlah siklus dalam tur ini adalah Nc dan total panjang yang dilalui adalah L, berdasarkan argumen di atas kita menyimpulkan bahwa U.

Sekarang, misalkan kita memberikan algoritma yang mencakup semua titik dalam aOPTc L ÿ siklus dimana OPTc adalah bilangan optimal siklus untuk mencakup semua titik. Kita dapat menyimpulkan bahwa durasi tur paling banyak 2aT. Mulai sekarang kami mencoba mencari faktor perkiraan jumlah siklus dalam solusi kami. Misalkan jumlah siklus yang optimal adalah J. Total panjang tur paling banyak adalah U × J. Misal ui dan si menyatakan jumlah elemen yang tercakup dalam putaran i dan jumlah total elemen yang tercakup dari awal hingga putaran ini, masing-masing. Oleh karena itu, dengan

mempertimbangkan cara kita memilih siklus, kita dapat menegaskan bahwa u1 ÿ (di mana n adalah jumlah kota), dan juga untuk setiap ui ui ÿ berlaku. Algoritma berlanjut hingga si ÿ n. Kami mendefinisikan si , dengan rekursi berikut:

Teorema 3.5. Metode serakah memberikan jaminan perkiraan O(log |T|) untuk total biaya dan jumlah siklus dalam permasalahan SPBU tunggal.

4. KESIMPULAN

(17)

·

Nama Jurnal ACM, Vol. V, No.N, Bulan 20YY.

masalah. Perutean Kendaraan: Metode dan Studi, 47–61.

masalah perutean. Riset Operasi 40, 4, 790–799.

Christofides, N. 1976. Analisis kasus terburuk dari heuristik baru untuk masalah travelling salesman.

M. Haimovich, ARK 1985. Batasan dan heuristik untuk masalah routing berkapasitas. Matematika Riset Operasi 10, 4, 527–542.

Teknologi. rep., Sekolah Pascasarjana Administrasi Industri, Universitas Carnegie-Mellon.

Lawler, EL 2001. Optimasi Kombinatorial: Jaringan dan Matroid. Publikasi Dover.

Blum, A., Chawla, S., Karger, DR, Lane, T., Meyerson, A., dan Minkoff, M. 2003.

Inc.

Lawler, EL, Lenstra, JK, Kan, AHGR, dan Shmoys, DB 1985. Masalah Traveling Salesman: Tur Terpandu Optimasi Kombinatorial. John Wiley & Putra.

Algoritme perkiraan untuk orienteering dan TSP dengan imbalan diskon. Dalam Prosiding Simposium IEEE Tahunan ke-44 tentang Yayasan Ilmu Komputer (FOCS). 46.

Li, C.-L., Simchi-Levi, D., dan Desrochers, M. 1992. Pada jarak kendaraan yang dibatasi Frederickson, GN, Hecht, MS, dan Kim, CE 1978. Algoritma perkiraan untuk beberapa masalah

routing. Jurnal SIAM tentang Komputasi 7, 2, 178–193.

Nagarajan, V. dan Ravi, R. 2006. Rute kendaraan minimum dengan tenggat waktu yang sama. Dalam Prosiding Lokakarya Internasional ke-9 tentang Algoritma Pendekatan untuk Masalah Optimasi Kombinatorial (APPROX). 212–223.

Papadimitriou, CH dan Steiglitz, K. 1998. Optimasi Kombinatorial. Publikasi Dover,

Golden, BL, Levy, L., dan Vohra, R. 1987. Masalah orienteering. Logistik Penelitian Angkatan Laut 34, 307–318.

Bansal, N., Blum, A., Chawla, S., dan Meyerson, A. 2004. Algoritma perkiraan untuk tenggat waktu- TSP dan perutean kendaraan dengan jendela waktu. Dalam Prosiding simposium ACM tahunan ke-36 tentang Teori Komputasi (STOC). 166–174.

Cormen, TH, Leiserson, CE, Rivest, RL, dan Stein, C. 2001. Pengantar Algoritma.

M. Haimovich, AG Rinnoooy Kan, LS 1988. Analisis heuristik untuk routing kendaraan MIT Press dan McGraw-Hill.

Masalah SPBU 17

Referensi

Dokumen terkait

Analisis deskriptif digunakan untuk melihat .gambaran Rasio Struktur Modal dan Tingkat Pengembalian Invesrasi Pada Stasiun Pengisian Bahan Bakar Umum (SPBU) 14.227.318

Sedangkan tujuan dilakukannya penelitian ini adalah: (1) Untuk mengetahui reaksi harga saham terhadap peristiwa kenaikan harga Bahan Bakar Minyak Mei 2008.. (2) Untuk

Kenaikan ongkos sudah pasti akan menaikkan harga- harga, ditambah lagi dengan kenaikan ongkos produksi akibat komponen bahan bakar.. Tapi secara riil harga ini akan naik

Kebijakan ini dilakukan dikarenakan bersamaan dengan kenaikan harga Bahan Bakar Minyak (BBM) beberapa tahun terakhir ini yang diikuti dengan kenaikan harga kebutuhan

Ology Karimun Bumi Sukses adalah penambahan Stasiun Pengisian Bahan Bakar Umum yang berada Di Kabupaten Karimun agar ditambahkannya kuota Bahan Bakar Minyak oleh

Kenaikan harga terjadi pada Kelompok Komoditas Makanan Jadi, Minuman, Rokok dan Tembakau (0,19 persen); Kelompok Komoditas Perumahan, Air, Listrik, Gas dan Bahan Bakar (0,35

Dalam proses ini, bahan bakar padat mengalami proses kenaikan temperatur yang akan mengakibatkan menguapnya kadar air yang berada pada permukaan bahan bakar padat

SIMPULAN Adanya kenaikan harga bahan bakar minyak BBM yang berarti pengurangan subsidi BBM akan berdampak adanya anggaran tambahan atau dana segar baru untuk pendanaan pembangunan di