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?

È stato utile?

Soluzione

inferiore limite. per $ G \ le c \ cdot \ sqrt {\ log n} $ esiste un algoritmo polinomiale . L'idea è la seguente: Se alcune clausole hanno troppe variabili, dovrebbe essere banale per selezionare alcune variabili per soddisfare questa clausola, senza ferire clausole con poche variabili. Ripetiamo quanto segue:

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top