Saya sedang mengerjakan editor diagram. Diagram menampilkan bentuk 2D ( node ) yang terhubung dengan konektor ( tepi ).
Saya ingin menambahkan operasi yang, diberi pilihan node, "pisahkan" mereka: itu memposisikan mereka untuk mengurangi jumlah tepi yang bersilangan, jika mungkin (dan tidak apa-apa jika ujung-ujungnya harus digambar dengan titik tikungan) .
Jadi saya ingin algoritma grafik yang, diberi embedding ( topologi ) grafik dan subset dari node-nya, memodifikasi embedding ( topologi -nya ) hanya pada node-node itu untuk meminimalkan jumlah crossing edge.
Dari membaca tentang grafik puncak dan menjelajah Cabello dan Mohar (2013) , saya kira masalah ini NP-hard. Jadi saya akan senang dengan algoritma parametrized (misalnya pada jumlah tepi persimpangan) yang memiliki kompleksitas waktu, polinomial, diketahui untuk setiap nilai parameter yang diberikan. Ini tampaknya layak, tetapi saya tidak merasa mudah untuk membuat algoritma sendiri.
Pertanyaan:
- Di mana saya mencari algoritma seperti itu?
- Apakah itu ada
- Dalam perangkat lunak yang ada?
- Adakah pengalaman praktis yang signifikan dengan operasi semacam itu? (Apa yang tampak baik secara teori mungkin tidak begitu baik dalam praktiknya, atau sebaliknya.)
(Saya tidak yakin di mana sebaiknya menanyakan pertanyaan ini: di sini, di StackOverflow, atau MathOverflow?)