Problemi facili con versioni conteggio difficile


20

Wikipedia fornisce esempi di problemi in cui la versione di conteggio è difficile, mentre la versione di decisione è semplice. Alcuni di questi contano gli abbinamenti perfetti, contando il numero di soluzioni su SAT e il numero di ordinamenti topologici.2

Ci sono altre classi importanti (ad esempio esempi in reticoli, alberi, teoria dei numeri e così via)? Esiste un compendio di tali problemi?

Esistono molti tipi di problemi in che hanno versioni di conteggio di errori # .# PP#P

Esiste una versione di un problema naturale in che è più completamente compreso o più semplice della corrispondenza perfetta bipartita generale (si prega di includere dettagli sul perché più semplice come essere provabile nelle classi più basse della gerarchia e così via) in qualche altra area (come teoria dei numeri, reticoli) o almeno per particolari grafici bipartiti semplici, la cui versione di conteggio è -hard?P# PNC#P

Saranno apprezzati esempi da reticoli, polipropilene, conteggio dei punti, teoria dei numeri .


1
Presumibilmente desideri problemi naturali , poiché [per riduzione da #SAT, problemi che # P-hard in [riduzioni che si moltiplicano per un numero diverso da zero] hanno problemi di decisione HP-hard] e [dalla funzione identità, {x: x è 1+ (numero_di_variabili_ ( )) o [uno zero seguito da un'assegnazione soddisfacente a ]} è # P-difficile sotto il tipo di riduzione più prossimo, ma la sua versione della decisione è banale]. ϕϕϕ

@RickyDemer la tua scrittura è succinta. Sì, voglio problemi naturali.
T ....

Davvero non comprendiamo completamente le corrispondenze perfette nei grafici bipartiti? Inoltre, esiste un algoritmo RNC2 per il problema.
Sasho Nikolov,

1
Sì, non lo facciamo. Non abbiamo un algoritmo deterministico . NC
T ....

Risposte:


8

Ecco un esempio davvero eccellente (potrei essere di parte).

Dato un set parzialmente ordinato:
a) ha un'estensione lineare (cioè un ordine totale compatibile con l'ordine parziale)? Trivial: tutti i poset hanno almeno un'estensione lineare
b) Quanti ne ha? # P-complete per determinare questo (Brightwell and Winkler, Counting Linear Extensions , Order, 1991)
c) Possiamo generarli tutti rapidamente? Sì, in tempo ammortizzato costante (Pruesse e Ruskey, Generating Linear Extensions Fast , SIAM J Comp 1994)


3
+1: Sono d'accordo che sia un esempio davvero eccellente (pensavo di pubblicarlo da solo e ho visto questa risposta). Inoltre, affinché qualcuno non dica "Che ne dici se c'è almeno un'altra estensione lineare", quel problema è anche completamente banale: un ordine totale ha 1 estensione, tutti gli altri poset hanno> 1. E anche rilevare esattamente 2 estensioni è facile (questo succede se esiste esattamente una coppia di elementi incomparabili). In effetti, esiste una classificazione completa dei poset con un massimo di 7 estensioni lineari (vedi Hanamura-Iwata, IPL 2011 ).
Joshua Grochow,

Questo è davvero un bell'esempio. Esiste un problema molto più "semplice" che gode tuttavia dello stesso tipo di proprietà (più semplice nel senso che queste proprietà sono quasi banali da dimostrare). Contare il numero di assegnazioni soddisfacenti di un DNF: a) ogni DNF non vuoto è soddisfacente b) il conteggio è # P-completo (riduzione a #SAT) c) l'enumerazione può essere eseguita con ritardo polinomiale (un tempo ammortizzato forse costante, avere a pensarci)
lupo,

Sarei molto interessato a sapere se i compiti soddisfacenti DNF possono essere generati in tempo ammortizzato costante (CAT). All'epoca e nel mio articolo con Frank, nel 1994, le estensioni lineari erano il primo oggetto "naturalmente definito" per il quale il conteggio era difficile e la generazione era più veloce che mai, quando ammortizzata (cioè, CAT). Anche le soluzioni DNF sembrano un probabile candidato per questo. Qualcuno ha un riferimento?
Gara Pruesse,

@GaraPruesse Non ho riferimenti per questo. Per DNF monotono, equivale a enumerare il set di colpire di ipergrafi e alcune tecniche per migliorare il ritardo sono presentate in "Algoritmi efficienti per la dualizzazione di ipergrafi su larga scala" di Keisuke Murakami e Takeaki Uno dl.acm.org/citation.cfm? id = 2611867 . Dovremmo verificare se fornisce CAT. Per DNF, la mia intuizione è che se esiste una piccola clausola, hai già abbastanza soluzioni per forzare brutalmente. Altrimenti, hai solo clausole di grandi dimensioni e che quindi hanno maggiori probabilità di scontrarsi e che possono essere utilizzate per progettare un algoritmo CAT.
lupo

17

Un esempio interessante della teoria dei numeri è l'espressione di un numero intero positivo come somma di quattro quadrati. Questo può essere fatto relativamente facilmente in un tempo polinomiale casuale (vedi il mio articolo del 1986 con Rabin su https://dx.doi.org/10.1002%2Fcpa.3160390713 ), e se ricordo bene, ora esiste persino un tempo polinomiale deterministico soluzione. Ma contare il numero di tali rappresentazioni ti permetterebbe di calcolare la funzione somma dei divisori , che è un tempo polinomiale casuale equivalente al factoring . Quindi il problema del conteggio è probabilmente difficile.nσ(n)n


"Quindi il problema del conteggio è probabilmente difficile" intendi probabilmente difficile? hai prove? #P
T ....

Con "probabilmente difficile" intendo che è un tempo polinomiale casuale equivalente alla fattorizzazione a numeri interi.
Jeffrey Shallit,

3
Quindi, per renderlo esplicito: il problema non è # P-difficile (a meno che non si scateni l'inferno).
Emil Jeřábek sostiene Monica il

@JeffreyShallit C'è un esempio ? #P
T ....

Penso che il seguente sia un esempio ancora più semplice: " ha un divisore proprio maggiore di " vs. "Quanti divisori propri maggiori di ha ?". La versione della decisione è equivalente a " è composita", quindi è in , ma la versione di conteggio non sembra più facile del factoring. 1 1 n n Pn11nnP
Dan Brumleve,

17

Un esempio molto bello e semplice della teoria dei grafi è il conteggio del numero di circuiti di Eularian in un grafico non orientato.

La versione decisionale è semplice (... e il problema dei sette ponti di Königsberg non ha soluzione :-)

La versione di conteggio è # P-hard: Graham R. Brightwell, Peter Winkler: Conteggio dei circuiti di Eulerian è # P-Complete . ALENEX / ANALCO 2005: 259-262


Quel documento "Il nostro approccio è mostrare che, con l'aiuto di un oracolo che conta i circuiti euleriani, una macchina di Turing può ... e" Vogliamo calcolare il numero degli orientamenti euleriani di "Paragrafo-break" Costruiamo per ogni primo dispari , un grafico cui numero di sfere è equivalente a modulo . "E" Ripetiamo questo processo per ogni primo p compreso tra e , dove , e ... "suggeriscono certamente che danno solo una riduzione parallela, piuttosto che una riduzione -query.G p G p N p m m 2 | E | = m m ϵNGpGpNpmm2|E|=mmϵ

@MarzioDeBiasi è la decisione del circuito di Eulerian in NC?
T ....

1
@AJ. Devi solo calcolare la parità del grado di ciascun nodo e verificare che siano tutti pari. Sembra decisamente di essere in NC.
Sasho Nikolov,

4
Puoi prendere la parità di bit usando una formula di dimensione o un circuito di dimensione lineare di profondità . Quindi, se il tuo grafico è dato come una matrice di adiacenza, calcola la parità di ogni riga, annulla e prendi un AND. E di bit può essere fatto con una formula di dimensione lineare, quindi nel complesso si ottiene una formula booleana di dimensione e un circuito booleano di profondità di profondità (sopra il Base AND-OR). Quindi il problema è in effetti in . O ( n 2 ) O ( log n ) n O ( n 3 ) O ( n 2 ) O ( log n ) N C 1nO(n2)O(logn)nO(n3)O(n2)O(logn)NC1
Sasho Nikolov,

2
In effetti, il problema è in . AC0[2]
Emil Jeřábek sostiene Monica il

6

Per quanto riguarda la tua seconda domanda, problemi come Monotone-2-SAT (decidere della soddisfacibilità di una formula CNF con al massimo 2 letterali positivi per clausola) è completamente banale (devi solo verificare se la tua formula è vuota o no) ma il problema del conteggio è # P-difficile. Anche approssimare il numero di incarichi soddisfacenti di tale formula è difficile (vedi Sulla durezza del ragionamento approssimativo, Dan Roth, Artificial Intelligence, 1996).


5

Da [Kayal, CCC 2009] : Valutazione esplicita dei polinomi annichilanti ad un certo punto

Dall'estratto: `` Questo è l'unico problema computazionale naturale in cui determinare l'esistenza di un oggetto (il polinomio annichilante nel nostro caso) può essere fatto in modo efficiente ma il calcolo effettivo dell'oggetto è notevolmente difficile. ''

Ff=(f1,...,fk)F[x1,...,xn]kd nF.fAA(f1,...,fk)=0.

k(f1,...,fk)kn+1,A(f1,...,fk)

p,(f1,...,fk)Z[x1,...,xn]A(t1,...,tk)Z[t1,...,tk],A(0,...,0)modp.

ANNIHILATING-EVAL è -hard. Inoltre, il polinomio annichilante non ha una piccola rappresentazione circuitale a meno che collassi. A ( t 1 , . . . , T k ) P H#PA(t1,...,tk)PH


1
Come nell'esempio di Marzio, la prova del reclamo 15.2 sembra indicare che mostrano durezza solo con riduzioni parallele, piuttosto che anche con riduzioni di query . mϵ

1
Le risorse che riesco a trovare sembrano non essere d'accordo sulle definizioni. Lascia che AE sia il problema della tua risposta. (... continua)

1
(continua ...) Non ho provato a lavorare di più esattamente ciò che della classe base che usano, ma sarebbe molto sorpreso se il loro risultato è stato migliore rispetto #P =( TC uniforme DLOGTIME0 ) || AE [n]

1
AE[n3]/poli .

1
knmaxdegfiNP#P
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.