Come notato qui prima, l'esempio di Tardos smentisce chiaramente la prova; dà una funzione monotona, che concorda con CLIQUE su T0 e T1, ma che si trova in P. Questo non sarebbe possibile se la dimostrazione fosse corretta, poiché la dimostrazione si applica anche a questo caso. Tuttavia, possiamo individuare l'errore? Ecco, da un post sul blog di Lipton, quello che sembra essere il luogo in cui la prova fallisce:
Il singolo errore è un punto sottile nella dimostrazione del Teorema 6, vale a dire nella fase 1, pagina 31 (e anche 33, dove viene discusso il caso duale) - affermazione apparentemente ovvio che contiene tutte le clausole corrispondenti contemplate ecc., Sembra sbagliato. C N F ′ ( g )C′gCNF′(g)
Per spiegarlo in modo più dettagliato, dobbiamo entrare nel metodo di prova e approssimazione di Berg e Ulfberg, che riafferma la prova originale di Razborov della complessità monotona esponenziale per CLIQUE in termini di switch DNF / CNF. Ecco come lo vedo io:
Per ogni nodo / gate di un circuito logico (contenente solo porte binarie OR / AND), una forma normale congiuntiva , una forma normale disgiuntiva e gli approssimatori e sono allegato. e sono semplicemente le corrispondenti forme normali congiuntive e congiuntive dell'uscita del gate. e sono anche forme disgiuntive e congiuntive, ma di alcune altre funzioni, "avvicinano" l'uscita del gate. Sono tuttavia tenuti ad avere un numero limitato di variabili in ciascun monomiale perβ 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(minore di una costante r) e in ciascuna clausola per (minore di una costante k).Ckg
Si ipotizza un "errore" introdotto con questa approssimazione. Come viene calcolato questo errore? Siamo interessati solo ad alcuni set T0 di input su cui la nostra funzione totale assume valore 0, e T1 di input su cui la nostra funzione totale assume valore 1 (una "promessa"). Ora ad ogni cancello, ci si limita a questi ingressi da T0 e T1, che sono correttamente calcolati (sia e , che rappresentano la stessa funzione - uscita della porta in ) all'uscita cancello e guarda quanti errori / errori ci sono per 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βCkgDrgrispetto a quello. Se il gate è una congiunzione, allora l'uscita del gate potrebbe calcolare correttamente più ingressi da T0 (ma gli ingressi correttamente calcolati da T1 potrebbero essere ridotti). Per , che è definito come una semplice congiunzione, non vi sono tuttavia nuovi errori su tutti questi input. Ora, è definito come uno switch CNF / DNF di , quindi potrebbero esserci numerosi nuovi errori su T0, provenienti da questo switch. Anche su T1 non ci sono nuovi errori su - ogni errore deve essere presente su uno degli ingressi del gate e, analogamente su , l'interruttore non introduce nuovi errori su T1. L'analisi per OR gate è doppia.CkgDrgCkgCkgDrg
Quindi il numero di errori per gli approssimatori finali è limitato dal numero di gate in , moltiplicato per il numero massimo possibile di errori introdotto da uno switch CNF / DNF (per T0) o da uno switch DNF / CNF (per T1). Ma il numero totale di errori deve essere "grande" in almeno un caso (T0 o T1), dal momento che questa è una proprietà di forme normali congiuntive positive con clausole delimitate da , che era l'intuizione chiave della dimostrazione originale di Razborov (Lemma 5 nel documento di Blum).kβk
Quindi cosa ha fatto Blum per gestire le negazioni (che sono spinte al livello degli input, quindi il circuito contiene ancora solo porte binarie OR / AND)?β
La sua idea è quella di preformare gli switch CNF / DNF e DNF / CNF in modo restrittivo, solo quando tutte le variabili sono positive. Quindi gli interruttori funzionerebbero ESATTAMENTE come nel caso di Berg e Ulfberg, introducendo la stessa quantità di errori. Si scopre che questo è l'unico caso che deve essere considerato.
Quindi, segue le linee di Berg e Ulfberg, con alcune distinzioni. Invece di collegare , , e a ciascuna porta del circuito , collega le sue modifiche, , , e , cioè le forme normali disgiuntive e congiuntive "ridotte", che ha definito diverso da 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 gCNF(g)DNF(g)CkgDrggβCNF′(g)DNF′(g)C′kgD′rgCNF(g)DNF(g)per "regola dell'assorbimento", rimuovendo le variabili negate da tutti i monomi / clausole misti (usa anche per questo scopo operazione indicata da R, rimuovendo del tutto alcuni monomi / clausole; come abbiamo discusso prima, la sua definizione un po 'informale di R non è davvero il problema , R può essere reso preciso in modo che venga applicato a ciascun gate ma ciò che viene rimosso dipende non solo dai due ingressi precedenti ma dall'intero circuito che porta a quel gate) e dai loro approssimatori e , che ha anche introdotto.C′rgD′rg
Conclude, nel Teorema 5, che per una funzione monotona, e ridotti calcoleranno realmente 1 e 0 sugli insiemi T1 e T0, nel nodo radice (il cui output è l'output dell'intera funzione in ). Questo teorema è, credo, corretto. D N F ′ g 0 βCNF′DNF′g0β
Ora arriva il conteggio degli errori. Credo che gli errori in ciascun nodo debbano essere calcolati confrontando e ridotti (che ora sono probabilmente due diverse funzioni), a e come li ha definiti. Le definizioni di approssimatori definiscono le definizioni di e (Fase 1) quando mescolano le variabili con quelle negate, ma quando si occupa di variabili positive, usa l'interruttore come nel caso di Berg e Ulfberg (Fase 2). E in effetti, nel passaggio 2 introdurrà lo stesso numero di possibili errori di prima (è lo stesso interruttore e tutte le variabili coinvolte sono positive).D N F ′ ( g ) C ′ r g D ′ k g C N F ′ D N F ′CNF′(g)DNF′(g)C′rgD′kgCNF′DNF′
Ma la prova è sbagliata nel passaggio 1. Penso che Blum stia confondendo , , che provengono davvero, come li ha definiti, dai precedenti approssimatori (per cancelli , ), con parti positive di e . C'è una differenza, e quindi la frase " contiene ancora tutte le clausole contenute in prima dell'approssimazione del gate g che usa una clausola in o " sembra essere sbagliato in generale.γ 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