Ada banyak cara untuk mengatasi hal ini, tetapi beberapa menonjol karena bersifat umum dan efektif. Untuk memahami ini, mari kita sebutkan beberapa masalah yang mungkin harus ditangani:
Mungkin ada celah di antara kutub yang begitu besar, algoritme mungkin melihat celah tersebut sebagai kerusakan aktual dalam sistem transmisi.
Mungkin ada beberapa ruas jalan pendek, penting untuk menghubungkan jalan ke jaringan, yang tidak memiliki tiang di dekat mereka. Segmen ini tidak akan dipilih berdasarkan kedekatan dengan kutub tetapi merupakan bagian penting dari solusi.
Mungkin ada kutub yang tidak dapat diakses melalui jalan darat dari titik pusat. Kutub-kutub ini mungkin merupakan bagian dari jaringan transmisi lain yang berasal dari titik pusat lainnya.
Saya juga mengadopsi pendirian bahwa karena Anda sudah memiliki jaringan polyline (jalan), akan lebih menguntungkan untuk mengeksploitasinya daripada menghubungkan titik-titik tiang dengan polyline yang sama sekali baru, yang kemungkinan tidak sejajar dengan jalan dengan sangat baik.
Pertimbangan ini menunjukkan bahwa bahan-bahan dari solusi yang baik akan mencakup beberapa langkah kunci:
Hitung jarak jalan dari titik pusat ke semua kutub.
Identifikasi kutub yang memiliki jarak maksimum lokal di sepanjang ruas jalan khusus mereka : yaitu, tidak ada tetangga mereka di ruas yang sama memiliki jarak lebih besar.
Bentuk jalur terpendek dari maxima lokal ke titik pusat.
Persatuan jalur terpendek ini akan melacak jaringan transmisi. (Memang, langkah 2 tidak benar-benar diperlukan, tetapi itu akan sangat mengurangi perhitungan yang terlibat dalam langkah 3.)
Langkah 1 dan 3 dapat dilakukan dengan menggunakan representasi jaringan (dalam Analis Jaringan) atau representasi raster (dalam Analis Tata Ruang, menggunakan perhitungan CostDistance atau FlowAccumulation). Langkah 2 adalah ringkasan basis data langsung: setelah langkah 1, setiap kutub akan memiliki segmen jalan dan jarak sebagai atribut. Temukan jarak maksimum berdasarkan segmen jalan dan pilih kutub yang mencapai jarak maksimum tersebut.
Ada beberapa situasi masalah potensial:
Beberapa kutub mungkin tidak dekat dengan jalan. Tidak ada dalam pernyataan masalah yang memberi tahu kita apa yang harus dilakukan tentang ini. Mereka dapat ditangani secara otomatis dengan perhitungan raster (kisi biaya yang sesuai akan menetapkan impedansi tinggi untuk sel non-jalan, tetapi bukan impedansi tak terbatas, yang memungkinkan kutub yang terisolasi terhubung ke jalan terdekat, tetapi sayangnya tidak satu sama lain,). Paling tidak, setelah mendapatkan solusi pada langkah 3 Anda dapat memilih semua kutub tidak pada jaringan itu dan mempertimbangkan bagaimana mereka harus ditangani (mungkin dengan secara manual membuat koneksi untuk mereka atau mungkin dengan solusi pohon spanning minimum Euclidean).
Jika beberapa ruas jalan membentuk loop, Anda harus melewati langkah 2, karena jika tidak bagian dari loop tersebut dapat hilang.
Polyline jalan mungkin tidak benar-benar membentuk jaringan yang terhubung. Mungkin ada celah kecil di antara ruas-ruas jalan (kadang-kadang hanya dalam ukuran milimeter) yang memisahkan jaringan yang tampak terhubung secara visual. Ini adalah masalah kualitas data yang akan mengganggu solusi apa pun, kecuali untuk beberapa yang berbasis raster.
Pada satu titik saya menyebutkan FlowAccumulasi secara sepintas. Ini mungkin mengejutkan orang: apa hubungan masalah ini dengan aliran air dan daerah aliran sungai? Menatap gambar untuk sementara waktu. Bayangkan titik asal sebagai titik rendah pada lansekap dan jalan dengan tiang telepon sebagai jejak aliran air yang mengalir ke titik rendah itu. Jika kita dapat menciptakan permukaan yang jalan-jalan benar-benar adalahsungai, maka kita bisa membiarkan sedikit "hujan" jatuh di lokasi masing-masing kutub dan mengalir menuruni bukit. Poin yang menjadi basah adalah solusi yang kami cari: mereka menghubungkan kutub secara efisien ke jaringan yang mengikuti jalan. Perhitungan CostDistance yang tepat - dengan impedansi bukan nol yang rendah di sepanjang jalan dan impedansi yang sangat tinggi tetapi tidak terbatas di jalan - akan menciptakan permukaan yang persis seperti itu. Cara lain untuk membuat permukaan itu adalah dari grid jarak Euclidean untuk jalan. Itu sempurna, kecuali jalanannya datar. Mereka harus dimiringkan; untuk ini, tambahkan kelipatan sangat kecil dari jarak di sepanjang jalan ke grid jarak Euclidean. (Jarak jalan masih membutuhkan perhitungan CostDistance, yang mahal, tapi kali ini hanya perlu dilakukan untuk sel jalan, daripada semua sel kisi, yang akan mempercepatnya dengan urutan besarnya. Itu memungkinkan kita untuk menggunakan kisi resolusi sangat tinggi jika kita mau, sehingga menghindari kemungkinan kesalahan diskritisasi yang dibuat dengan kisi kasar.)