Menemukan bidang pemotongan yang membagi polihedron secara merata


10

Katakanlah kita memiliki polyhedron dalam bentuk standar:

SEBUAHx=bx0

Adakah metode yang diketahui untuk menemukan hyperplane yang membagi polyhedron sedemikian rupa sehingga jumlah simpul di setiap sisi hyperplane kira-kira sama? (Yaitu algoritma yang meminimalkan perbedaan absolut kardinalitas verteks pada dua sisi split).dx+d0=0

Juga, apakah ada hasil yang diketahui mengenai kompleksitas masalah ini?

Tambahan: Membatasi jenis pemotongan:

Berikut adalah variasi dari masalah asli dengan harapan lebih mudah diselesaikan daripada yang asli:

Apakah ada cara untuk menghitung atau memperkirakan secara efisien yang mengkoordinasikan hyperplane dari bentuk d i x i + d 0 = 0 akan menghasilkan perbedaan absolut terendah kardinalitas vertex di kedua sisi split? Dengan efisien, saya maksudkan sesuatu yang lebih efisien daripada enumerasi lengkap kardinalitas verteks untuk semua kemungkinan perpecahan tersebut.sayadsayaxsaya+d0=0

Catatan: Setelah beberapa hari mengalami sedikit kemajuan, saya juga memposting pertanyaan ini di MathOverflow .


Tidakkah orang bisa membuktikan ini masalah NP-hard?
Peter Shor

Terima kasih @Peter. Sebuah bukti akan sangat bagus. Yang mengatakan, saya menganggap masalahnya sulit, dan saya pikir saya lebih tertarik pada heuristik atau algoritma perkiraan. Motivasi di balik gagasan membatasi jenis pemotongan sebagian untuk melihat apakah ada variasi yang lebih mudah dari masalah umum yang kita sudah tahu solusi atau algoritma perkiraan.
Amelio Vazquez-Reina

Bagaimana dengan sesuatu di sepanjang garis ini (tidak yakin apakah itu berfungsi) - Kita tahu menghitung jumlah pencocokan bipartit maksimum adalah # P-hard. Kita juga tahu bahwa program linier untuk menemukan pencocokan bipartit maksimum benar-benar unimodular dan dengan demikian setiap titik sudut / solusi layak dasar adalah integral. Untuk masalah pencocokan bipartit maksimum, cari nilai pencocokan. Bangun program linier dengan batasan bahwa setiap solusi harus memiliki nilai optimal. Maka setiap titik sudut cocok. Mampu membagi berulang kali secara merata berarti Anda harus dapat menghitung jumlah pertandingan.
Memilih

Sudahlah. Kita juga harus bisa menghitung jumlah simpul yang ditambahkan oleh bidang pemotongan.
Memilih

Jawaban:


-2

Saya tidak ingat cara analitik untuk melakukan ini!

Tapi ini masalah klasik untuk Pemrograman Genetik! Jika Anda terbiasa dengan itu, Anda dapat menggunakan vektor yang dinormalisasi di tengah polyhedron yang menggambarkan bidang pemotongan.

Jadi populasi Anda adalah sekumpulan vektor dinormalisasi [x, y, z, ...] dan sebagai fungsi pas Anda menggunakan perbedaan antara 2 volume terbagi!

Jadi, jika perbedaannya cenderung nol lebih "cocok" adalah vektor / bidang Anda!


Maaf, bisakah Anda mengatakannya lagi tanpa menggunakan bahasa pemrograman genetika? Apa itu "populasi"? Apa itu "fungsi pas"?
Jeffε
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.