Apa sajakah algoritma efisien untuk menentukan apakah polinomial multivariat kuadrat memiliki solusi?


8

Saya tahu bahwa secara umum, kepuasan polinomial multivariat setara dengan 3-SAT; Namun, saya bertanya-tanya apakah ada teknik yang baik dalam kasus kuadratik, khususnya jika ada solusi waktu polinomial.

Saya kira pertanyaan yang lebih umum adalah, adakah kelas polinomial multivarian yang masalah kepuasannya dapat dipecahkan secara efisien?


1
apa masalah kepuasan untuk polinomial?
Sasho Nikolov

Agaknya "Apakah ada tugas nilai untuk variabel yang membuat polinomial berikut ini sama dengan nol?"
Jeffε

2
Apa yang bisa Anda ceritakan kepada kami tentang rentang khas dari parameter yang Anda minati? Parameter kritis meliputi (jumlah variabel) dan F (bidang tempat Anda bekerja). Jika Anda diberi banyak polinomial yang semuanya harus dipenuhi, itu juga relevan (itu mengubah masalah). nF
DW

menambahkan solusi untuk masalah yang tidak terbatas pada real. Namun, menambahkan bahkan kendala linear membuat masalah NP-hard, dan, dan seperti @DW sebutkan itu juga penting apa bidangnya. misalnya saya tidak tahu bagaimana membuat jawaban saya bekerja di atas bidang yang terbatas, di mana hal-hal seperti kesempurnaan semit positif dan SVD tidak masuk akal.
Sasho Nikolov

Yang saya maksud dengan kepuasan adalah apa yang saya pikir lebih umum disebut kelayakan, yaitu pertanyaan apakah sistem persamaan polinomial memiliki solusi atas beberapa bidang.
Nick

Jawaban:


9

Anda dapat memutuskan apakah polinomial kuadrat : R nR memiliki akar nyata dengan beberapa aljabar linier. Seperti yang Anda perhatikan, kasus umumnya harus sulit.p:RnR

Amati dulu bahwa untuk semua x R n jika p ( x ) > 0 atau p ( x ) < 0 untuk semua x (ini diikuti oleh kontinuitas). Jadi itu sudah cukup untuk dapat memutuskan apakah p ( x ) > 0 untuk semua x . Secara umum ini terkait dengan versi kompleksitas-teori dari masalah ke-17 Hilbert: a polinomial p ( x )p(x)0xRnp(x)>0p(x)<0xp(x)>0xp(x)positif atas real jika dan hanya jika Anda dapat menulis sebagai jumlah kuadrat dari fungsi rasional dan konstanta positif c (ini adalah teorema oleh Artin). Menemukan dekomposisi ini atau menyelesaikan masalah keputusan kemungkinan besar sulit secara umum, tetapi kasus kuadrat mudah, karena keajaiban teorema spektral. Untuk informasi lebih lanjut tentang kasus umum, lihat survei Devanur, Lipton, Vishnoi , dan Monique Laurent .pc

Mari kita menulis mana p 2 adalah homogen dari derajat 2, p 1 adalah linier, dan c adalah konstanta. Mari kita mendefinisikan q ( x 0 , x ) = p 2 ( x ) + x 0 p 1 ( x ) + c x 2 0p(x)=p2(x)+p1(x)+cp2p1cq(x0,x)=p2(x)+x0p1(x)+cx02menjadi homogenisasi , di mana x 0 adalah variabel tambahan.px0

Klaim . p(x)>0x00:q(x0,x)>0

Arah "jika" itu mudah. Dalam arah non-sepele, asumsikan untuk semua x dan anggap x 00 : q ( x 0 , x ) = x 2 0 q ( 1 , xp(x)>0xx00 QED

q(x0,x)=x02q(1,xx0)=x02p(xx0)>0.

Perhatikan juga bahwa, karena kontinu, jika p ( x ) > 0 untuk semua x maka q ( x 0 , x ) 0 untuk semua ( x 0 , x ) (termasuk x 0 = 0 ) .q(x0,x)p(x)>0xq(x0,x)0(x0,x)x0=0

Karena homogen, kita dapat menulis q ( x 0 , x ) = y T Q y , di mana Q adalah matriks simetris dan y = ( x 0 , x ) . Dengan cara di atas, jika p ( x ) > 0 untuk semua x , maka Q adalah semidefinit positif. Selain itu, q ( x 0 , x ) > 0 untuk semua x 0qq(x0,x)=yTQyQy=(x0,x)p(x)>0xQq(x0,x)>0 jika dan hanya jika kernel Q adalah subset dari hyperplane { y = ( 0 , x ) : x R n } . Kedua kondisi ini dapat diputuskan dalam waktu polinomial dengan menghitung SVD dari Q .x00Q{y=(0,x):xRn}Q


Terima kasih sp banyak Sasho, saya terlalu asing dengan polinomial untuk datang dengan metode ini sendiri. Ada pertanyaan lain yang saya ajukan di situs ini tentang mendeteksi apakah matriks permutasi terletak pada ruang vektor dalam waktu polinomial. Saya sendiri mengurangi pertanyaan untuk memecahkan masalah polinomial ini, jadi dikombinasikan dengan jawaban Anda sekarang ada algoritma waktu polinomial untuk melakukan hal ini. Anda dapat melihat pertanyaan di tautan ini jika Anda tertarik
Nick

Nick, saya telah melihat pertanyaannya, dan ini yang menarik. Tapi sejauh yang saya ingat, pengurangan Anda di sana (yang sekarang hilang, sayangnya) mengurangi pertanyaan matriks permutasi Anda untuk memecahkan subjek polinomial kuadrat untuk kendala ketimpangan linear. Khususnya, Anda perlu menentukan diameter polytope. Saya pikir ini mungkin masalah yang sulit. Solusi saya di atas tidak menangani kendala ketimpangan linear sejauh yang saya tahu.
Sasho Nikolov

2

Berikut adalah pendekatan yang akan bekerja untuk beberapa polinomial, tetapi tidak dijamin untuk semuanya.

Ini dijamin bekerja untuk semua polinomial kuadrat multilinear. Ini juga dijamin berfungsi jika ada variabel sedemikian rupa sehingga p ( , x , ) tidak mengandung istilah x 2 . Namun, untuk polinomial bentuk p ( x , , z ) = c xx 2 + + c zz 2 + p ( x , , z )xp(,x,)x2p(x,,z)=cxx2++czz2+p(x,,z)di mana adalah polinomial kuadrat multilinear (yaitu, polinomial di mana setiap variabel muncul kuadrat), saya hanya dapat menyajikan heuristik. Heuristik mungkin sering berhasil dalam praktek, tetapi saya tidak punya bukti.p

(Saya merasa harus ada solusi yang lebih bersih yang mengintai di suatu tempat ....)


Biarkan menjadi bidang. Misalkan p ( x , y , z , ) F [ x , y , z , ] adalah polinomial kuadrat multivariat dengan koefisien di bidang F . Faktor faktor x , untuk mendapatkanFp(x,y,z,)F[x,y,z,]Fx

p(x,y,z,)=cx2+q(y,z,)x+r(y,z,).

Perhatikan bahwa harus linier / affine, r harus kuadratik, dan c harus berupa konstanta ( c F ). Kami ingin mencari tugas dari nilai-nilai untuk x , y , z , bahwa merekqrccFx,y,z,

cx2+q(y,z,)x+r(y,z,)=0.

Sekarang tunjukkan diskriminan dari persamaan kuadratik ini (dalam x ), yaitu,Δx

Δ(y,z,)=q(y,z,)24cr(y,z,).

Polinomial asli satisfiable jika dan hanya jika Anda dapat menemukan penugasan nilai untuk yang membuat Δ ( y , z , ) menjadi persegi (yaitu, residu kuadrat) di F . Perhatikan bahwa Δ ( y , z , ) itu sendiri merupakan polinomial kuadratik multivariat (karena q adalah afin dan r adalah kuadrat).y,z,Δ(y,z,)FΔ(y,z,)qr

Pada intinya, pendekatan solusi kami akan bercabang, berdasarkan apakah (kasing mudah) atau c 0 ( kasing lebih keras).c=0c0


Jika , menyelesaikan persamaan ini mudah: pada dasarnya hanya persamaan linear (linear dalam x , setelah Anda memperbaiki semua variabel lainnya).c=0x

Akibatnya, ada kelas polinomial khusus di mana masalah ini sangat mudah dipecahkan: setiap polinomial mana terdapat variabel - untuk kesederhanaan, kita akan menyebutnya x - sehingga x 2 tidak muncul dalam hal . Untuk kelas itu, Anda akan memiliki c = 0 di atas, dan kemudian algoritma berikut cukup untuk menyelesaikan masalah:pxx2pc=0

  • Periksa apakah memiliki penetapan nilai untuk y , z , yang membuat q ( y , z , ) 0 . Karena q linier, ini mudah untuk diperiksa.qy,z,q(y,z,)0q

    • Jika ya, maka pilih penugasan nilai tersebut untuk . Selanjutnya, atur x = - r ( y , z , ) q ( y , z , ) - 1 . Menurut definisi, q ( y , z , ) 0 , jadi q ( y , z , ) memiliki kebalikan (karena kita bekerja di bidang), jadi nilai x seperti ituy,z,x=r(y,z,)q(y,z,)1q(y,z,)0q(y,z,)xada Ini segera menghasilkan penugasan nilai ke yang membuat p nol, dan kita selesai.x,y,z,p

    • Jika tidak, maka kita tahu untuk semua kemungkinan penugasan nilai ke variabel p . Secara efektif, p tidak pernah bergantung pada x di tempat pertama, jadi itu adalah kesalahan untuk menganggapnya sebagai fungsi dari x . Atau, dengan kata lain, kami telah menghilangkan satu variabel dari p , dan kami mendapatkan contoh baru dari masalah aslinya. Secara rekursif menerapkan metode kami ke r ( y , z ,p(x,y,z,)=r(y,z,)ppxxp . Pengecualian: jika p adalah fungsi dari variabel tunggal (yaitu, p ( x ) ), maka dalam hal ini Anda dapat menyimpulkan bahwa p tidak memuaskan (identik nol untuk semua nilai yang mungkin dari variabel-variabelnya).r(y,z,)pp(x)p

Algoritma ini menangani kasus mudah: yaitu, polinomial di mana terdapat setidaknya satu variabel yang muncul di p tetapi di mana x 2 tidak muncul di p . Untuk kasus ini, algoritme berjalan dalam waktu polinomial dan menentukan apakah ada penetapan nilai pada variabel yang membuat polinomial sama dengan nol.xpx2p


Sekarang kembali ke hard case. Jika itu tidak termasuk dalam kasus mudah, maka kita harus memilikinya

p(x,,z)=cxx2++czz2+p(x,,z).

di mana tidak memiliki istilah kuadrat (multinearear). Mari kita lihat metode apa yang bisa kita gunakan untuk kasus ini.p(x,,z)

Nah, inilah satu situasi di mana kita bisa menyelesaikan ini. Misalkan ada sepasang variabel sedemikian rupa sehingga - c x / c y adalah kuadrat (residu kuadratik) dalam F , katakanlah, - c x / c y = α 2 . Kemudian kita bisa menerapkan perubahan variabel y = y + α x . Nyaman, kami punyax,ycx/cyFcx/cy=α2y=y+αx

$(y)2=(y+αx)2=y2+2αxy+α2x2=y2+2αcdotxycx/cyx2.

Memasukkan perubahan variabel ini ke , kita dapatkanp

p(x,y,)=cxx2+cyy2+2αcyxycy(cx/cy)x2+,

yaitu,

p(x,y,)=cyy2+2αcyxy+

di mana bagian yang dihilangkan tidak mengandung istilah (karena ketentuan c xx 2 dan α 2 c yx 2 membatalkan). Secara efektif, kami telah menghilangkan istilah x 2 , jadi sekarang kita dapat menerapkan metode di atas untuk p ( x , y , ) . Perhatikan bahwa p ( x , y , ) = 0 memuaskan jika dan hanya jika p ( xx2cxx2α2cyx2x2p(x,y,)p(x,y,)=0 adalah. Ketika kami menemukan solusi yang menghasilkan nol ini, kami dapat menyelesaikan kembali untuk y , dan kami mendapatkan tugas untuk x , y , z , yang membuat p ( x , y , z , ) = 0 .p(x,y,)=0yx,y,z,p(x,y,z,)=0

1Fcx/cz=(1)×(cx/cy)×(cy/cz)cx/czcy/czcx/cz11p.) Saya tidak punya solusi umum untuk kasus sulit ini.


Namun, saya dapat menyarankan heuristik yang mungkin sering berhasil, bahkan untuk kasus yang sulit ini.

F1/2y,z,Δ(y,z,)1/2Δ(y,z,)

  1. x

  2. y,z,

  3. Δ(y,z,)Fp(x,y,z,)=0xx=(q(y,z,)±Δ(y,z,))/(2c)Fx,y,z,p(x,y,z,)=0

  4. Δ(y,z,)

Jika setelah banyak langkah, Anda tidak menemukan solusi apa pun, maka Anda mungkin menebak bahwa persamaannya tidak memuaskan (tapi ini heuristik, jadi dugaan Anda bisa salah).

Δ()


px2x2+xq+rqr

x2

Saya pikir saya benar-benar memiliki solusi atas real, dengan beberapa trik yang dikenal.
Sasho Nikolov

1

RF


pp(x)=ax2+bx+cb24acF


pp(x,y)=ax2+by2+cxy+dx+ey+f

a

  • a=0

  • b=0xy

  • a0b0b/aFx=b/axy=x+yp(x,y)=p(x,y)p(x,y)x2ppp(x,y)p(x,y)

x2a=0p(x,y)x2

px2

p(x,y)=q(y)x+r(y).

xp(x,y)=0

  • yq(y)0q(y)

    • yq(y)0x=r(y)q(y)1q(y)0x,yp

    • p(x,y)=r(y)rrp(x,y)=0r(y)=0

b/a


Selanjutnya, misalkan kita memiliki polinomial kuadrat trivariat. Anehnya, kasus ini sebenarnya lebih mudah.

p(x,y,z)=ax2+by2+cz2+.

a,b,cx2α,βFbβ2+cγ2=aβ,γx=xy=βx+yz=γx+zp(x,y,z)=p(x,y,z)p(x,y,z)x2

Berlayar mulus dari sini. Kita bisa menulis

p(x,y,z)=q(y,z)x+r(y,z),

qrqry,zq(y,z)0x

(Bukankah menarik bahwa kasus 2 variabel tampaknya lebih sulit daripada kasus 3 variabel atau 1 variabel?)

Saya yakin Anda dapat melihat cara memperluas gagasan ini ke polinomial kuadrat multivarian dengan lebih dari tiga variabel.


Algoritma ini berjalan dalam waktu polinomial. Sayangnya, ada kelas polinomial yang malang di mana saya kacau dan saya dipaksa untuk menyerah. Adakah yang bisa melihat bagaimana menangani kelas polinomial kuadratik bivariat yang tersisa?


0

Ini tidak memberikan jawaban penuh untuk pertanyaan tersebut, tetapi memberikan cara yang menarik untuk memahami ruang solusi potensial untuk polinomial kuadratik multivariat.

xTAx+bTx+c=0(Dx+h)T(Dx+h)=xTDTDx+xTDTh+hTDx+hTh

(Dx+h)T(Dx+h)=xTD2x+2hTDx+hTh

xTAx+bTx+c=0AD

xTAx+bTx+c=0xTDTDx+bTx+bT(D1)2b4=bT(D1)2b4c

Karena itu,

(Dx+bTD12)T(Dx+bTD12)=bT(D1)2b4c

xbT(D1)2b4c=bTA1b4c


D

Itu poin yang bagus, sepertinya saya tidak cukup memikirkannya. Tapi saya suka fakta bahwa Anda dapat memecahkannya secara eksplisit untuk solusi.
Nick

D

Setuju, itu benar-benar hanya memberikan deskripsi ruang solusi sebagai transformasi affine yang diterapkan pada beberapa bidang. Mungkin itu dapat memberikan titik tolak bagi cara-cara lain untuk menyelesaikan masalah.
Nick
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.