Apakah ada cara terdokumentasi untuk menghitung simpul? (Lingkaran tertanam dalam ruang Euclidean 3 dimensi).
Maksud saya, tipe data untuk mewakili mereka, dan suatu algoritma untuk menentukan apakah dua contoh dari tipe data mewakili simpul yang sama.
Jika jawabannya positif, bagaimana dengan kompleksitas masalah itu?
ds.algorithms
computability
jota.191
sumber
sumber
Jawaban:
Cara paling alami untuk merepresentasikan simpul adalah dengan menyematkannya secara linear dalam (simpan saja koordinat simpul dan tempat Anda ingin meletakkan segmen) (simpul jinak apa pun dapat disematkan secara lurus linear) atau dengan diagram simpul, yaitu menyimpan proyeksi pada sebagai grafik di mana pada setiap persimpangan Anda menentukan untai mana yang di atas.R3 R2
Seperti yang Suresh tunjukkan, memeriksa kesetaraan simpul adalah sangat non-sepele (tidak diketahui berada di P), tetapi hasil eksperimen untuk pengenalan yang tidak ditandai adalah seperti polinomial - kesetaraan simpul terlihat jauh lebih sulit. Jika Anda mencari perangkat lunak, intip Regina .
sumber
Salah satu cara tradisional untuk merepresentasikan simpul adalah melalui diagram simpul. Untuk diskusi tentang diagram simpul, lihat "Simpul, tautan, kepang, dan 3 lipatan" oleh Prasolov dan Sossinsky
Program SnapPea mewakili simpul dalam tiga bola dengan mengubah diagram simpul yang diberikan menjadi triangulasi komplemen simpul. Teknik penyederhanaan triangulasi dalam SnapPea tampaknya mengenali yang tidak memiliki hubungan dalam hitungan detik, untuk semua diagram simpul "seukuran manusia". Untuk perangkat lunak SnapPy (peningkatan Python dari SnapPea) dan banyak lagi, lihat situs web CompuTop, dikelola oleh Nathan Dunfield.
Ivan Dynnikov dalam makalahnya "Pendekatan tiga halaman untuk teori simpul" telah memberikan struktur data baru dan sangat menarik untuk mewakili simpul. Ini juga mengenali unknots dengan sangat cepat, dan telah menyebabkan perkembangan menarik dalam homologi Heegaard Floer - lihat diskusi di sana pada tautan jaringan.
sumber