Quante clausole sono necessarie per sedersi per essere NP-HARD nelle formule CNF?
-
29-09-2020 - |
Domanda
Non è difficile da vedere che si è seduto per una formula CNF con $ N $ Variabili e un numero costante di clausole può essere risolto in tempo polinomiale. D'altra parte, non è difficile vedere che una formula CNF con $ N $ variabili e $ o (n) $ Le clausole sono sufficienti per la durezza NP (considerare ad esempio le istanze di SAT associate alla formula naturale per 3-colorabilità, applicate a grafici planare).
Potremmo definire questo formalmente come $ \ text {cnfsat} -f- \ testo {clausus} $ , una famiglia di problemi parametrizzata da una funzione <="container di matematica"> $ f $ , in cui le istanze sono formule in cnf tali che se hanno $ N $ variabili, allora hanno a Most $ f (n) $ clausole> Basato su questo, quello che vorrei sapere è qual è la funzione più piccola $ G $ tale che sappiamo lì esiste $ f \ in o (g) $ in modo tale che $ \ text {cnfsat} -f- \ testo {clauses} $ è già difficile. Sappiamo che G= 1 (costante # di clausole) non funziona, e $ G= n $ (numero lineare di clausole) funziona.
Che dire di $ G=log n $ ? C'è un semplice algoritmo per CNFSAT su formule che ha $ o (\ lg \ lg n) $ clausole?
Soluzione
Trova la clausola con il numero più piccolo di variabili. Let $ x_1, \ Ldots, x_k $ Sii le variabili che partecipano a questa clausola.
- .
- se $ k> G $ , quindi l'intera formula è soddisfatta (elaboremo i clausole uno per uno e selezioniamo una variabile che non abbiamo selezionato prima).
- Altrimenti, rimuoviamo la clausola. Rimuoviamo anche $ x_1, \ ldots, x_k $ da tutte le altre clausole.
Ora, dobbiamo soddisfare le clausole rimosse. Poiché ci sono al massimo $ G $ clausole e ognuno di essi introduce al massimo $ G $ nuove variabili, Significa che ci sono al massimo $ G ^ 2= c ^ 2 \ clot \ log n $ variabili in generale. Pertanto, ci sono al massimo $ n ^ {c ^ 2} $ combinazioni variabili, e possiamo solo usare la forza bruta.
Conditional Top Bound. È quasi stretto nel senso seguente. Assumere che il limite inferiore sul sabato con $ n $ variabili e $ \ ge c \ clot n $ clausole (per alcune $ c $ , ad es. proveniente da $ 3 $ -Coloring ) è $ \ alfa ^ n $ ( $ \ alfa \ in (1, 2] $ ). Si noti che lo stesso limite inferiore detiene dopo la nostra trasformazione (dal momento che possiamo applicarlo prima di qualsiasi algoritmo). Pertanto, se ci sono almeno $ \ log ^ {1+ \ epsilon} n $ clausole, possono avere $ \ frac {\ log ^ {1+ \ epsilon} n} c $ variabili e il limite inferiore per il tempo di esecuzione Il nostro problema è
$$ \ alfa ^ {\ frac {\ log ^ {1+ \ epsilon} n} c}= n ^ {\ frac {\ log ^ \ esilon n \ cdot \ log \ alpha} {c}}, $$
che è super polinomiale.