Quais são alguns algoritmos eficientes para determinar se um polinômio multivariado quadrático tem uma solução?


8

Eu sei que, em geral, a satisfação polinomial multivariada é equivalente a 3-SAT; no entanto, gostaria de saber se existem boas técnicas no caso quadrático, especificamente se existe uma solução de tempo polinomial.

Eu acho que a pergunta mais geral seria: existem classes de polinômios multivariados para os quais o problema de satisfação é eficientemente solucionável?


1
qual é o problema de satisfação dos polinômios?
Sasho Nikolov

Presumivelmente "Existe uma atribuição de valores para as variáveis ​​que torna o seguinte polinômio igual a zero?"
Jeffε

2
O que você pode nos dizer sobre o intervalo típico de parâmetros que você está interessado? Os parâmetros críticos incluem (o número de variáveis) e (o campo em que você está trabalhando). Se você receber vários polinômios que devem ser satisfeitos, isso também é relevante (isso muda o problema). FnF
DW

adicionou uma solução para o problema irrestrito sobre os reais. no entanto, adicionar restrições lineares torna o problema difícil para NP e, e como o @DW mencionou, também importa qual é o campo. Por exemplo, eu não sei como fazer minha resposta funcionar em um campo finito, onde coisas como semidefinitividade positiva e SVD não fazem sentido.
Sasho Nikolov

Por satisfação, quero dizer o que eu acho que é mais comumente chamado de viabilidade, a saber, se um sistema de equações polinomiais tem ou não uma solução sobre algum campo.
Nick

Respostas:


9

Você pode decidir se um polinômio quadrático tem raízes reais com alguma álgebra linear. Como você observa, o caso geral deve ser difícil.p:RnR

Observe primeiro que para todos x R n se p ( x ) > 0 ou p ( x ) < 0 para todos x (isso segue por continuidade). Portanto, basta poder decidir se p ( x ) > 0 para todo x . Em geral, isso está relacionado às versões teóricas da complexidade do 17º problema de Hilbert: um polinômio p ( x )p(x)0xRnp(x)>0p(x)<0xp(x)>0xp(x)é positivo sobre os reais se e somente se você puder escrever como a soma dos quadrados das funções racionais e uma constante positiva c (este é um teorema de Artin). Encontrar essa decomposição ou resolver o problema de decisão provavelmente é difícil em geral, mas o caso quadrático é fácil, por causa da magia do teorema espectral. Para obter mais informações sobre o caso geral, consulte a pesquisa de Devanur, Lipton, Vishnoi e Monique Laurent .pc

Escreva onde p 2 é homogêneo de grau 2, p 1 é linear e c é uma constante. Vamos definir 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)+cx02ser a homogeneização de , onde x 0 é uma variável adicional.px0

Reivindicação . p(x)>0x00:q(x0,x)>0

A direção "se" é fácil. Na direção não trivial, assuma para todos x e assuma x 00 : q ( x 0 , x ) = x 2 0 q ( 1 , xp(x)>0xx00 QED

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

Observe também que, porque é contínuo, se p ( x ) > 0 para todos x, então q ( x 0 , x ) 0 para todos ( x 0 , x ) (incluindo x 0 = 0 ) .q(x0,x)p(x)>0xq(x0,x)0(x0,x)x0=0

Como é homogêneo, podemos escrever q ( x 0 , x ) = y T Q y , onde Q é uma matriz simétrica e y = ( x 0 , x ) . Pelo exposto, se p ( x ) > 0 para todo x , então Q é semidefinido positivo. Além disso, q ( x 0 , x ) > 0 para todos x 0qq(x0,x)=yTQyQy=(x0,x)p(x)>0xQq(x0,x)>0 se e somente se o kernel de Q for um subconjunto do hiperplano { y = ( 0 , x ) : x R n } . Ambas as condições podem ser decididas em tempo polinomial, calculando a SVD de Q .x00Q{y=(0,x):xRn}Q


Muito obrigado Sasho, estou muito familiarizado com polinômios para ter inventado esse método pessoalmente. Há outra pergunta que fiz neste site sobre a detecção ou não de uma matriz de permutação em um espaço vetorial no tempo polinomial. Eu mesmo reduzi a pergunta para resolver esse problema polinomial; portanto, combinado com a sua resposta, agora existe um algoritmo de tempo polinomial para fazer exatamente isso. Você pode ver a pergunta neste link se estiver interessado
Nick

Nick, eu já tinha visto a pergunta, e é interessante. Mas, tanto quanto me lembro, sua redução ali (que agora se foi, infelizmente) reduziu a questão das matrizes de permutação para resolver um polinômio quadrático sujeito a restrições lineares de desigualdade. Especificamente, você precisava determinar o diâmetro de um politopo. Eu acho que isso pode ser um problema difícil. Minha solução acima não lida com restrições de desigualdade linear, até onde eu sei.
Sasho Nikolov

2

Aqui está uma abordagem que funcionará para alguns polinômios, mas não é garantido que funcione para todos eles.

É garantido que funcione para todos os polinômios quadráticos multilineares. Também é garantido que funcione se houver alguma variável tal que p ( , x , ) não contenha um termo x 2 . No entanto, para polinômios da forma p ( x , , z ) = c xx 2 + + c zz 2 + p ( x , , z )xp(,x,)x2p(x,,z)=cxx2++czz2+p(x,,z)onde é um polinômio quadrático multilinear (isto é, polinômios em que todas as variáveis ​​aparecem ao quadrado), eu só sou capaz de apresentar uma heurística. A heurística geralmente pode funcionar bem na prática, mas não tenho provas.p

(Eu sinto que deve haver uma solução mais limpa escondida aqui em algum lugar ....)


Seja um campo. Suponhamos que P ( x , y , z , ) F [ x , y , z , ] é um polinomial quadrática multivariada com coeficientes no campo F . Fatore os fatores de x para obterFp(x,y,z,)F[x,y,z,]Fx

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

Observe que deve ser linear / afim, r deve ser quadrático ec deve ser uma constante ( c F ). Queremos encontrar uma atribuição de valores para x , y , z , que fazqrccFx,y,z,

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

Agora vamos denotar o discriminante desta equação quadrática (em x ), isto é,Δx

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

O polinomial original for satisfeita se e somente se pode encontrar uma atribuição de valores de que faz Δ ( y , z , ) ser um quadrado (ou seja, um resíduo quadrático) em F . Observe que Δ ( y , z , ) é ele próprio um polinômio quadrático multivariado (já que q é afim e r é quadrático).y,z,Δ(y,z,)FΔ(y,z,)qr

No momento, nossa abordagem de solução será ramificada, com base em (um caso fácil) ou c 0 (o caso mais difícil).c=0c0


Se , resolver esta equação é fácil: é basicamente apenas uma equação linear (é linear em x , depois de corrigir todas as outras variáveis).c=0x

Como resultado, existe uma classe especial de polinômios em que esse problema é especialmente fácil de resolver: qualquer polinômio em que exista uma variável - por simplicidade, chamaremos de x - de modo que x 2 não apareça em p . Para essa classe, você terá c = 0 acima e o algoritmo a seguir é suficiente para resolver o problema:pxx2pc=0

  • Verificar se tem qualquer atribuição de valores de y , z , que faz q ( y , z , ) 0 . Como q é linear, é fácil verificar isso.qy,z,q(y,z,)0q

    • Se sim, escolha qualquer atribuição de valores para . Em seguida, defina x = - r ( y , z , ) q ( y , z , ) - 1 . Por definição, q ( y , z , ) 0 , então q ( y , z , ) tem um inverso (já que estamos trabalhando em um campo), então esse valor de xy,z,x=r(y,z,)q(y,z,)1q(y,z,)0q(y,z,)xexiste. Isso gera imediatamente uma atribuição de valores para que faz p zero, e estamos a fazer.x,y,z,p

    • Se não, então sabemos que para todas as atribuições possíveis de valores às variáveis ​​de p . Efetivamente, p nunca dependeu de x em primeiro lugar, por isso foi um erro pensar nisso como uma função de x . Ou, dito de outra forma, eliminamos uma variável de p e obtemos uma nova instância do problema original. Aplique recursivamente nossos métodos a r ( y , z ,p(x,y,z,)=r(y,z,)ppxxp . Exceção: se p fosse uma função de uma única variável (ou seja, p ( x ) ), nesse caso, você poderá concluir que p não é satisfatório (é identicamente zero para todos os valores possíveis de suas variáveis).r(y,z,)pp(x)p

Este algoritmo lida com o caso fácil: polinômios onde existe pelo menos uma variável que aparece em p, mas onde x 2 não aparece em p . Nesse caso, o algoritmo é executado no tempo polinomial e determina se existe uma atribuição de valores para as variáveis ​​que tornam o polinômio igual a zero.xpx2p


Agora, de volta ao caso difícil. Se não se encaixar no caso fácil, devemos ter

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

onde não possui termos ao quadrado (é multilinear). Vejamos quais métodos podemos usar para este caso.p(x,,z)

Bem, aqui está uma situação em que podemos resolver isso. Suponha que exista um par de variáveis tal que - c x / c y seja um quadrado (um resíduo quadrático) em F , digamos, - c x / c y = α 2 . Então podemos aplicar a alteração das variáveis y = y + α x . Convenientemente, temosx,ycx/cyFcx/cy=α2y=y+αx

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

Ao conectar essa alteração de variáveis ​​em , obtemosp

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

ou seja,

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

onde a parte omitida não contém um termo (uma vez que os termos c xx 2 e α 2 c yx 2 são cancelados). Efetivamente, eliminamos o termo x 2 , e agora podemos aplicar o método acima a p ( x , y , ) . Observe que p ( x , y , ) = 0 é satisfatório se e somente se p ( xx2cxx2α2cyx2x2p(x,y,)p(x,y,)=0 é. Quando encontramos uma solução que zera esse valor, podemos resolver novamente y , e obtemos uma atribuição para x , y , z , que torna p ( x , y , z , ) = 0 .p(x,y,)=0yx,y,z,p(x,y,z,)=0

É possível que nenhum par de variáveis ​​nos permita eliminar um termo ao quadrado? Se é um resíduo quadrático (um quadrado) em F , e se tivermos pelo menos 3 variáveis, isso não é possível: - c x / c z = ( - 1 ) × ( - c x / c y ) × ( - c y / c z ) , e como o produto de um não-resíduo quadrático e de um não-resíduo quadrático é um resíduo quadrático, garantimos que pelo menos um de - c1Fcx/cz=(1)×(cx/cy)×(cy/cz) , - c y / c z , ou - c x / c z é um resíduo quadrático, pelo menos um dos termos ao quadrado pode ser cancelado. No entanto, se - 1 for um não-resíduo quadrático, ou tivermos apenas 1 ou 2 variáveis, talvez não seja possível eliminar um termo ao quadrado. Esse é o caso difícil restante. (A situação com apenas 1 ou 2 variáveis ​​não é difícil de lidar, então, na verdade, o caso mais difícil é onde - 1 é um não-resíduo quadrático e onde cada variável aparece ao quadrado em pcx/czcy/czcx/cz11p.) Não tenho uma solução geral para este caso difícil.


No entanto, posso sugerir uma heurística que pode frequentemente funcionar, mesmo para este caso difícil.

Em qualquer campo , aproximadamente metade de todos os elementos do campo são quadrados (resíduos quadráticos); se você escolher um elemento de campo aleatório, será um quadrado com probabilidade cerca de 1 / 2 . Portanto, se nós escolhemos valores para y , z , ... aleatoriamente, podemos prever que (heurística) Δ ( y , z , ) deve ser um quadrado com probabilidade 1 / 2 , se Δ ( y , z , ) age como uma função aleatória. Isso sugere o seguinte algoritmo heurístico:F1/2y,z,Δ(y,z,)1/2Δ(y,z,)

  1. Escolha aleatoriamente uma variável para eliminar, diga .x

  2. Escolha valores para aleatoriamente.y,z,

  3. Se é um quadrado em F , então a equação p ( x , y , z , ) = 0 tem uma solução para x , a saber x = ( - q ( y , z , ) ± Δ(y,z,)Fp(x,y,z,)=0x(assumindo queFnão tem a característica 2). Isso nos dá uma atribuição para as variáveisx,y,z,que fazemp(x,y,z,)=0, então terminamos.x=(q(y,z,)±Δ(y,z,))/(2c)Fx,y,z,p(x,y,z,)=0

  4. Se não for um quadrado, volte para a etapa 1.Δ(y,z,)

Se, após várias etapas, você não encontrar nenhuma solução, poderá adivinhar que a equação é insatisfatória (mas essa é uma heurística, portanto, sua suposição pode estar errada).

Esse algoritmo pode funcionar bem para muitos dos polinômios restantes restantes, mas não tenho provas de que sempre funcionará. Em particular, existe o risco de que todos os polinômios discriminantes possíveis possam ter a propriedade de que seus valores são sempre não quadrados (não resíduos quadráticos), caso em que o algoritmo acima falhará.Δ()


Isto parece ok para um polinômio multilinear, mas, em geral, pode haver um x 2 prazo e a decomposição será x 2 + x q + r , onde q e r são como na sua respostapx2x2+xq+rqr
Sasho Nikolov

Oh, certo. Obrigado, @SashoNikolov. Adicionei um algoritmo heurístico que pode funcionar para alguns polinômios que contêm um termo , mas não todos. x2
DW

Eu acho que realmente tenho uma solução sobre os reais, com alguns truques conhecidos.
Sasho Nikolov

1

Sua pergunta não especifica o campo em que você está trabalhando. Sasho Nikolov deu uma excelente resposta se você estiver trabalhando com , mas não se estende a campos finitos - por isso acho que continua sendo interessante olhar para o seu problema. caso de um campo finito F . Não tenho uma solução completa, mas aqui está um algoritmo que funcionará para todos os polinômios quadráticos multilineares, exceto para uma classe específica de polinômios (com os quais ainda não sei lidar). Parece próximo: se pudéssemos encontrar alguma extensão para resolver esse problema para todos os polinômios bivariados, as técnicas abaixo poderiam cuidar do resto.RF


Se é univariada, ou seja, p ( x ) = a x 2 + b x + c , em seguida, o problema é fácil: simplesmente teste se b 2 - 4 um c é um quadrado em F .pp(x)=ax2+bx+cb24acF


Se é bivariado, ou seja, p ( x , y ) = a x 2 + b y 2 + c x y + d x + e y + f , então podemos usar o seguinte procedimento:pp(x,y)=ax2+by2+cxy+dx+ey+f

Primeiro, faremos algumas transformações para "forçar" a zero, pois isso é particularmente conveniente para o seguinte:a

  • Se já, então não há nada a fazer.a=0

  • Se , podemos trocar o papel de x e y .b=0xy

  • Como alternativa, suponha que e b 0 . Se - b / a não for quadrado em F , estou ferrado e não tenho uma solução (neste caso, desisto e vou para casa). Caso contrário, aplique uma alteração das variáveis x = a0b0b/aF,y=x+ye definap(x,y)=p(x,y), observando quep(x,y)não temx2termos (cancela após a mudança de variáveis). Observe quepé equisatisfatável comp(qualquer solução parap(xx=b/axy=x+yp(x,y)=p(x,y)p(x,y)x2pp pode ser traduzido imediatamente para uma solução para p ( x , y ) aplicando a alteração de variáveis ​​e vice-versa).p(x,y)p(x,y)

Após esta etapa, temos um polinômio sem termo . Portanto, sem perda de generalidade, podemos assumir que a = 0 ( p ( x , y ) não tem x 2 termos).x2a=0p(x,y)x2

Como não tem um termo x 2 , podemos reescrevê-lo comopx2

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

Convenientemente, esta é uma função linear de . Portanto, podemos testar se existe uma solução para p ( x , y ) = 0 , da seguinte maneira:xp(x,y)=0

  • Verifique se existe tal q ( y ) 0 . Convenientemente, considerações sobre graus garantem que q ( y ) é linear / afim, portanto é fácil verificar isso.yq(y)0q(y)

    • Se sim, então seja qualquer valor tal que q ( y ) 0 . Agora podemos deixar x = - r ( y ) q ( y ) - 1 . Como q ( y ) 0 , o inverso certamente existe, então isso fornece uma atribuição x , y que faz p zero, e terminamos.yq(y)0x=r(y)q(y)1q(y)0x,yp

    • Se não, então sabemos que . Por considerações de grau, r deve ser um polinômio quadrático. Portanto, podemos aplicar recursivamente nosso algoritmo para r (que possui uma variável a menos). Haverá uma solução para p ( x , y ) = 0 se e somente se houver uma solução para r ( y ) = 0 .p(x,y)=r(y)rrp(x,y)=0r(y)=0

Esse algoritmo lida com todos os polinômios bivariados, exceto no infeliz caso em que é um quadrado não.b/a


Em seguida, suponha que tenhamos um polinômio quadrático trivariado. Estranhamente, este caso é realmente mais fácil.

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

Se todos os forem diferentes de zero, eliminaremos o termo x 2 usando um truque fofo. Encontre α , β F tal que b β 2 + c γ 2 = - a (por exemplo, usando o algoritmo aqui ; tais β , γ são sempre garantidos). Agora aplique a transformação de mudança de variável x = x , y = β x +a,b,cx2α,βFbβ2+cγ2=aβ,γx=x , z = γ x + z , produzindo o polinômio p ( x , y , z ) = p ( x , y , z ) . Observe que, graças à cuidadosa escolha da transformação, p ( x , y , z ) não tem x 2 termos.y=βx+yz=γx+zp(x,y,z)=p(x,y,z)p(x,y,z)x2

É bom velejar daqui. Nós podemos escrever

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

onde é linear er é quadrático. Se q for idêntico a zero, recuaremos em r . Caso contrário, podemos escolher qualquer valor de y , z que faça q ( y , z ) 0 e, em seguida, resolva imediatamente para x , como antes.qrqry,zq(y,z)0x

(Não é interessante que o caso de 2 variáveis ​​pareça ser mais difícil do que o caso de 3 variáveis ​​ou 1 variável?)

Tenho certeza de que você pode ver como estender essas idéias para um polinômio quadrático multivariado com mais de três variáveis.


Este algoritmo é executado em tempo polinomial. Infelizmente, há uma classe de polinômios infelizes em que estou ferrado e sou forçado a desistir. Alguém pode ver como lidar com a classe restante de polinômios quadráticos bivariados?


0

Isso não fornece uma resposta completa para a pergunta, mas fornece uma maneira interessante de entender o espaço de possíveis soluções para um polinômio quadrático multivariado.

Seja uma equação polinomial quadrática multivariada. Observe que ( D x + h ) T ( D x + h ) = x T D T D x + x T D T h + h T D x + h T h . Se D é uma matriz diagonal, isso fornece:xTAx+bTx+c=0(Dx+h)T(Dx+h)=xTDTDx+xTDTh+hTDx+hTh

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

Retornando à nossa equação original, , observe que, sem perda de generalidade, podemos assumir que A é simétrico, então ela possui uma raiz quadrada definida positiva única que pode ser calculada em tempo polinomial. Chame essa raiz D , então temos:xTAx+bTx+c=0AD

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

Portanto,

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

Portanto, as soluções podem ser obtidas aplicando uma transformação afim em vetores da norma x.bT(D1)2b4c=bTA1b4c


não pode ser um valor complexo? D
Sasho Nikolov 12/12

Esse é um bom ponto, parece que eu não pensei o suficiente sobre isso. Mas gosto do fato de que você pode resolver tão explicitamente soluções.
Nick

mas se é complexo, você só sabe que existe uma solução complexa e que sempre existe (por causa do teorema fundamental da álgebra). por isso não estou certo de que você está realmente aprendendo nada aquiD
Sasho Nikolov

Concordado, ele realmente apenas fornece uma descrição do espaço da solução como uma transformação afim aplicada a alguma esfera. Talvez isso possa fornecer um ponto de partida para outras maneiras de resolver o problema.
Nick
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.