Jika Anda memodelkan masalah Anda dengan grafik, masalah Anda seperti masalah Steiner Tree :
Lihat di sini untuk definisi sesederhana mungkin.
Diberikan grafik berbobot di mana subset simpul diidentifikasi sebagai terminal, temukan subgraf terhubung bobot minimum yang mencakup semua terminal.
Seperti yang Anda lihat itu adalah NPC pada umumnya, tetapi dalam kasus Anda grafik Anda adalah grafik kotak, mungkin Anda dapat menemukan solusi yang baik untuk itu, tetapi untuk contoh Anda saat ini (ketika terminal berada dalam batas) Anda dapat melihat pohon Steiner di kertas grafik grid .
Lagi pula ada heuristik yang sangat baik untuk masalah Steiner Tree, Anda dapat menerapkan pendekatan yang serupa dengan masalah Anda.
PS: Anda dapat mengasumsikan tetangga 1 adalah node yang terhubung, setelah itu Anda dapat mengontrak sisi-sisinya untuk membuat grafik baru, grafik baru yang Anda buat adalah planar, dan jika Anda dapat memecahkan Steiner Tree untuk itu Anda dapat menyelesaikan masalah Anda, tetapi mungkin ada solusi yang baik untuk masalah Anda yang independen dari Steiner Tree.