Pembentukan pohon
7.2.3 Pembentukan pohon
Pembentukan pohon adalah tahapan penting dalam setiap model pemilihan rute karena dua alasan utama. Pertama, hal ini sangat sering dilakukan dalam algoritma pemecahannya, minimal sekali per pengulangan. Kedua, algoritma pembentukan pohon yang baik dapat menghemat waktu dan biaya komputer. Algoritma yang baik bukan hanya efisien, tetapi harus ditulis dalam bentuk program komputer, tergantung pada bahasa komputer yang digunakan. Van Vliet (1978) membahas dengan sangat baik algoritma yang paling sering digunakan.
Secara umum terdapat dua algoritma dasar yang sering digunakan untuk mencari rute tercepat (atau termurah) dalam suatu jaringan jalan. Kedua algoritma itu adalah Moore (1957) dan Dijkstra (1959). Keduanya diterangkan dengan menggunakan notasi berorientasi simpul: jarak (biaya) ruas antara dua titik A dan B dalam suatu jaringan dinotasikan dengan d A,B . Rute didefinisikan dalam bentuk urutan simpul
H dan seterusnya, sedangkan jarak rute adalah penjumlahan setiap ruas yang ada dalam rute tersebut.
yang saling berhubungan, A − C − D −
Anggap d A adalah jarak minimum antara zona asal dari pohon S ke simpul A; P A adalah simpul-sebelum A sehingga ruas (P A ,A) adalah bagian dari rute terpendek dari S ke A. Prosedur untuk menghasilkan rute tercepat dari S ke setiap simpul yang lain dijelaskan sebagai berikut.
Tetapkan semua d A = ∞ (dengan jumlah simpul yang dise- suaikan dengan kapasitas kemampuan memori komputer) kecuali d S yang harus sama dengan nol. Tetapkan juga tabel-tidak-berujung-akhir L yang nantinya akan berisi data simpul yang sudah dicapai oleh algoritma, tetapi belum semuanya dianalisis apakah simpul tersebut merupakan simpul-sebelum bagi simpul
7.2.3.1 Inisialisasi
seterusnya. Inisialkan semua masukan L i dalam L ke nol dan semua P A ke suatu nilai tertentu yang ditentukan.
7.2.3.2 Prosedur
Mulailah dengan simpul asal S sebagai simpul awal = A;
1 Periksa setiap ruas (A,B) dari simpul awal A secara bergantian jika d A +d A,B <
d B , kemudian tetapkan d B =d A +d A,B dan P B = A dan tambah B ke L;
2 Pindahkan A dari L jika tabel-tidak-berujung-akhir telah kosong, lalu stop.
3 Jika tabel belum kosong, pilih simpul lainnya dari tabel-tidak-berujung-akhir dan kembali ke tahap 1 dengan simpul asal berikutnya.
Terdapat tiga komentar yang harus diberikan. Pertama, secara umum rute tidak diperbolehkan menggunakan pusat zona; karena itu, dalam tahap 1, B tidak boleh digabungkan ke dalam L jika B adalah pusat zona. Kedua, perbedaan utama antara
286 Ofyar Z Tamin, Perencanaan dan pemodelan transportasi 286 Ofyar Z Tamin, Perencanaan dan pemodelan transportasi
Hal ini membutuhkan beberapa perhitungan tambahan (termasuk penyortiran simpul), tetapi menjamin bahwa setiap ruas hanya diperiksa sekali saja. Algoritma Dijkstra lebih baik dari Moore, terutama untuk penggunaan pada jaringan yang luas; karena itu, lebih sulit membuat programnya. Akhirnya, pohon biasanya disimpan di komputer dalam bentuk set simpul-sebelum yang berurutan dengan A merupakan simpul-sebelum dari B jika ruas (A,B) membentuk bagian dari pohon; atau suatu set ruas-sebelum dengan definisi yang serupa.
Van Vliet (1977) berhasil mengidentifikasi algoritma yang sangat baik untuk digunakan pada jaringan yang luas, disebut algoritma D’Esopo yang telah diuji oleh Pape (1974). D’Esopo menggunakan dua buah tabel-tidak-berujung-akhir sehingga simpul B dapat dimasukkan pada salah satu simpul ujung, tergantung pada ‘status’-nya. Jika B belum dicapai oleh pohon, harus dimasukkan pada dasar L; jika sudah ada dalam tabel, data tersebut tidak boleh dimasukkan; tetapi, jika sudah dimasukkan ke dalam L, periksa dan pindahkan dari tabel, kemudian masukkan paling atas.
Suatu deret sederhana dapat digunakan untuk menyimpan status dengan tiga nilai potensial (+1, 0, atau − 1), tergantung pada status simpul yang ditinjau. Seperti diterangkan oleh Van Vliet (1977), algoritma D’Esopo dapat mengurangi waktu proses komputer sebanyak 50%, relatif terhadap algoritma Moore. Selain itu, unjuk kerjanya sangat mirip dan biasanya lebih baik dibandingkan dengan algoritma Dijkstra. Algoritma D’Esopo mempunyai nilai tambah yang besar dibandingkan dengan kedua algoritma yang dijelaskan sebelumnya.
Pohon mempunyai dua kegunaan tambahan penting dalam perencanaan dan pemodelan transportasi, yang sering digunakan untuk menjelaskan biaya. Sebagai contoh, total waktu tempuh antara dua zona bisa didapat dengan mengikuti urutan ruas dalam pohon dan menjumlahkan waktu tempuhnya. Operasi ini sering disebut proses penguraian pohon. Pohon diperlukan, jika waktu tempuh dapat diuraikan dalam bentuk atribut lainnya, misalnya biaya gabungan, jarak, dan jumlah simpul.
Pohon dapat juga digunakan untuk menghasilkan informasi pada saat pasangan Asal − Tujuan sudah pasti memilih rute tertentu. Fasilitas ini, sering disebut analisis
ruas terpilih, memungkinkan mengenali pengendara yang terpengaruh oleh perubahan jaringan. Selain itu, dapat juga digunakan untuk mengidentifikasi titik masuk dan keluar ke suatu daerah kajian yang kecil dan pohon yang menggabungkan zona awal ke zona eksternal dari kawasan baru.