Misalkan menjadi derajat d polinomial dalam variabel n lebih dari F 2 , di mana d adalah konstan (katakanlah 2 atau 3). Saya ingin mencari rumus terkecil untuk f , di mana "rumus" dan "ukuran rumus" didefinisikan dengan cara yang jelas (mis. Rumus terkecil untuk polinomial x 1 x 2 + x 1 x 3 adalah x 1 ( x 2 + x 3 ) ).
Apa kompleksitas masalah ini - apakah ini NP-hard? Apakah kompleksitasnya bergantung pada ?
[Lebih formal, rumus (alias "rumus aritmatika") adalah pohon biner yang di-root, masing-masing yang daunnya dilabeli dengan variabel input atau konstanta 1. Semua simpul lain dari pohon tersebut diberi label dengan atau × . Ukuran formula adalah jumlah daun yang digunakan. Rumus menghitung polinomial secara rekursif: + simpul menghitung jumlah anak-anak mereka lebih dari F 2 , × simpul menghitung produk. ]
sumber
Jawaban:
Anda dapat mengurangi masalah TAUTOLOGI Ko-NP-Lengkap (diberikan rumus Boolean, apakah ini tautologi?) Menjadi masalah meminimalkan ukuran rumus (karena rumus adalah tautologi jika setara dengan BENAR). Selain itu, TAUTOLOGI untuk 3DNF (analog dengan SAT untuk 3CNF) adalah co-NP-Complete.
sumber
Tidak persis jawabannya tetapi mudah-mudahan membantu:
Pertanyaan ini harus NP sulit untuk d = 2 jika Anda ingin tahu rumus minimal untuk polinomial dan bukan hanya untuk satu. Buktinya adalah sebagai berikut: Ada korespondensi satu ke satu antara n bi-linear formula (rumus jenis Σ sebuah i j x i y j ) dan tensor 3 matriks yaitu elemen dalam F n 2 ⊗ F n 2 ⊗ F n 2 . Sedemikian rupa sehingga tensor rank dari matriks adalah kompleksitas multiplikasi dari rumus n-linear.n ∑aijxiyj Fn2⊗Fn2⊗Fn2
Diketahui bahwa tensor rank adalah masalah NP-hard (mungkin kira-kira rank tensor juga NP-hard). Jadi kompleksitas multiplikasi formula n -linear adalah masalah NP-hard3 n
sumber
Setiap jawaban untuk ini sangat tergantung pada kosakata yang Anda izinkan dalam jawabannya. Jika Anda ingin jawaban Anda dalam bahasa yang sama dengan input (yaitu sebagai polinomial), itu mengarah ke satu set jawaban, yang merupakan jawaban dari poster lain.
Tetapi jika Anda membiarkan perbendaharaan jawaban Anda diperbesar, hal-hal indah dapat terjadi. Anda dapat melihat contoh dalam diferensiasi simbolis vs otomatis: dalam diferensiasi simbolis satu hanya memungkinkan 'ekspresi', yang cenderung meledak sangat buruk; dalam diferensiasi otomatis, seseorang memungkinkan program garis lurus dalam jawabannya (bahkan jika inputnya adalah ekspresi), yang sangat membantu untuk mengendalikan pembengkakan ekspresi. Untuk polinomial univariat, James Davenport dan saya telah merenung bahwa Anda perlu memasukkan polinomial siklotomik sebagai bagian dari kosakata dasar Anda juga (lihat referensi mengapa polinomial ini tampaknya menjadi satu-satunya sumber blow-up yang nyata, serta makalah yang menunjukkan berbagai hasil reducibilitas antara masalah polinomial dan 3SAT).
Dengan kata lain, jika Anda membiarkan diri Anda sedikit mengubah apa yang Anda anggap sebagai jawaban sedikit dari yang klasik, Anda mungkin hanya bisa mendapatkan jawaban yang agak berbeda, yaitu yang dengan kompleksitas yang jauh lebih baik. Tergantung pada motivasi awal Anda untuk mengajukan pertanyaan, apakah murni teoretis atau dengan aplikasi dalam pikiran, untuk memutuskan apakah variasi dalam kosa kata ini dapat Anda terima. Dalam pengaturan di mana James dan saya telah memikirkan hal ini (perhitungan simbolik), menyesuaikan kosakata untuk membuat penurunan kompleksitas sangat dapat diterima (meskipun jarang dilakukan).
sumber
Minimalisasi sirkuit / formula umum tentu saja lebih sulit daripada pengujian identitas, karena ukuran formula minimum identitas apa pun hanyalah nol. Adapun seberapa sulit, saya tidak memiliki jawaban yang pasti, tetapi mungkin "algoritma rekonstruksi" yang dipelajari di sirkuit / rumus aritmatika mungkin menjadi sesuatu di sepanjang baris ini.
sumber