Como observado aqui antes, o exemplo de Tardos refuta claramente a prova; fornece uma função monótona, que concorda com CLIQUE em T0 e T1, mas está em P. Isso não seria possível se a prova estivesse correta, pois a prova também se aplica a esse caso. No entanto, podemos identificar o erro? Aqui está, em uma postagem no blog do lipton, o que parece ser o lugar onde a prova falha:
O erro único é um ponto sutil na prova do Teorema 6, ou seja, na Etapa 1, na página 31 (e também 33, onde o caso duplo é discutido) - uma alegação aparentemente óbvia de que contém todas as cláusulas correspondentes contidas em etc, parece errado. C N F ′ ( g )C′gCNF′( g)
Para explicar isso com mais detalhes, precisamos entrar no método de prova e aproximação de Berg e Ulfberg, que reafirma a prova original de Razborov da complexidade exponencial de monótonos para CLIQUE em termos de comutadores DNF / CNF. É assim que eu vejo:
Para cada nó / porta de um circuito lógico (contendo apenas portas binárias OR / AND), uma forma normal conjuntiva , uma forma normal disjuntiva e aproximadores e são em anexo. e são simplesmente as formas normais disjuntivas e conjuntivas correspondentes da saída do gate. e também são formas disjuntivas e conjuntivas, mas de algumas outras funções, "aproximando" a saída do portão. No entanto, eles precisam ter um número limitado de variáveis em cada monômio paraβ C N F ( g ) D N F ( g ) C k g D r g C N F D N F D r g C k g D r g C k ggβCNF(g)DNF(g)CkgDrgCNFDNFDrgCkgDrg(menor que uma constante r) e em cada cláusula para (menor que uma constante k).Ckg
Existe a noção de um "erro" introduzido com esta aproximação. Como esse erro é calculado? Estamos interessados apenas em algum conjunto T0 de entradas nas quais nossa função total assume o valor 0 e T1 em entradas nas quais nossa função total assume o valor 1 (uma "promessa"). Agora, em cada porta, examinamos apenas as entradas de T0 e T1, que são computadas corretamente (por e , que representam a mesma função - saída da porta em ) na saída da porta , e veja quantos erros / erros existem para eC N F ( g ) g β C k g D r g C k g D r g C k g C k g D r gDNF(g)CNF(g)gβCkgDrg, comparado a isso. Se o gate for uma conjunção, a saída do gate poderá calcular mais entradas de T0 corretamente (mas as entradas calculadas corretamente de T1 possivelmente diminuirão). Para , que é definido como uma conjunção simples, no entanto, não há novos erros em todas essas entradas. Agora, é definido como um comutador CNF / DNF de , portanto, pode haver vários erros novos em T0, provenientes desse comutador. Também em T1 não há novos erros em - cada erro deve estar presente em qualquer uma das entradas de porta e, da mesma forma em , o switch não introduz novos erros em T1. A análise para o portão OR é dupla.CkgDrgCkgCkgDrg
Portanto, o número de erros para os aproximadores finais é limitado pelo número de portas em , vezes o número máximo possível de erros introduzidos por um comutador CNF / DNF (para T0) ou por um comutador DNF / CNF (para T1). Mas o número total de erros deve ser "grande" em pelo menos um caso (T0 ou T1), já que essa é uma propriedade de formas normais conjuntivas positivas com cláusulas delimitadas por , que foi o principal insight da prova original de Razborov (Lemma 5 no artigo de Blum).kβk
Então, o que Blum fez para lidar com negações (que são empurradas para o nível de entradas, para que o circuito ainda contenha apenas portas binárias OR / AND)?β
Sua idéia é pré-formatar os comutadores CNF / DNF e DNF / CNF de forma restritiva, somente quando todas as variáveis forem positivas. Em seguida, os comutadores funcionariam exatamente como no caso de Berg e Ulfberg, introduzindo a mesma quantidade de erros. Acontece que este é o único caso que precisa ser considerado.
Então, ele segue as linhas de Berg e Ulfberg, com algumas distinções. Em vez de anexar , , e a cada porta do circuito , ele anexa suas modificações, , , e , ou seja, as formas normais disjuntivas e conjuntivas "reduzidas", que ele definiu como diferentes das eD N F ( g ) C k g D r g g β C N F ' ( g ) D N F ' ( g ) C ' k g D ' r g C N F ( g ) D N F ( g ) C ′ r g D ′ rCNF(g)DNF(g)CkgDrggβCNF′(g)DNF′(g)C′kgD′rgCNF(g)DNF(g)por "regra de absorção", removendo variáveis negadas de todos os monômios / cláusulas mistas (ele também usa para esse propósito a operação indicada por R, removendo totalmente alguns monômios / cláusulas; como discutimos anteriormente, sua definição um tanto informal de R não é realmente o problema , R pode ser tornado preciso para que seja aplicado em cada porta, mas o que é removido depende não apenas das duas entradas anteriores, mas de todo o circuito que antecede essa porta) e de seus aproximadores e , que ele também apresentou.C′rgD′rg
Ele conclui, no Teorema 5, que para uma função monótona, e reduzidos realmente computarão 1 e 0 nos conjuntos T1 e T0, no nó raiz (cuja saída é a saída de toda a função em ). Acredito que esse teorema esteja correto. D N F ′ g 0 βCNF′DNF′g0β
Agora vem a contagem de erros. Eu acredito que os erros em cada nó devem ser calculados comparando e (que agora são possivelmente duas funções diferentes), com e como ele os definiu. As definições de aproximação aproximam as definições de e (Etapa 1) ao misturar variáveis com negadas, mas quando ele lida com variáveis positivas, ele usa a opção como no caso de Berg e Ulfberg (Etapa 2). E, de fato, na Etapa 2, ele apresentará o mesmo número de erros possíveis como antes (é a mesma opção e todas as variáveis envolvidas são positivas).D N F ′ ( g ) C ′ r g D ′ k g C N F ′ D N F ′CNF′(g)DNF′(g)C′rgD′kgCNF′DNF′
Mas a prova está errada na Etapa 1. Acho que Blum está confundindo , , que realmente vem, como ele os definiu, de aproximadores anteriores (para portões , ), com partes positivas da e . Existe uma diferença e, portanto, a instrução " ainda contém todas as cláusulas contidas no antes da aproximação do gate g que usa uma cláusula em ou " parece ser errado em geral.γ 2 h 1 h 2 C N F ′ β ( h 1 ) C N F ′ β ( h 2 ) C ′ g C N F ′ β ( g ) γ ′ 1 γ ′ 2γ1γ2h1h2CNF′β(h1)CNF′β(h2)C′gCNF′β(g)γ′1γ′2