Algoritmi sorprendenti per il conteggio dei problemi


54

Ci sono alcuni problemi di conteggio che coinvolgono il conteggio esponenziale di molte cose (rispetto alla dimensione dell'input), e tuttavia hanno sorprendenti algoritmi deterministici, esatti nel tempo polinomiale. Esempi inclusi:

Un passaggio chiave in entrambi questi esempi è la riduzione del problema di conteggio al calcolo del determinante di una determinata matrice. Un determinante è di per sé, naturalmente, una somma di molte cose in modo esponenziale, ma può sorprendentemente essere calcolato in tempo polinomiale.

La mia domanda è: esistono algoritmi esatti e deterministici "sorprendentemente efficienti" noti per il conteggio dei problemi che non si riducono al calcolo di un determinante?


8
A proposito, molti altri problemi di conteggio si riducono al calcolo del determinante. Il determinante intero è completo per la classe GapL, che contiene #L.
5501

Risposte:


11

Non so se i seguenti problemi si riducano o meno al calcolo del determinante, ma elencherò comunque:

1) Contando il numero di percorsi in un DAG da un nodo a un nodo v f . Ma questo non è sorprendente. Determinare semplicemente se v f è raggiungibile da v 0 è in NL, e quindi in DET . Non ho idea della versione di conteggio.v0vfvfv0

2) Contando il numero di soluzioni di problemi definibili nella logica MSO in strutture con larghezza dell'albero limitata. Vedi ad esempio il documento che fa acquisti su opere di Courcelle, Arnborg e altri .

3) Se hai una funzione , che può essere espressa da un circuito boleano di larghezza dell'albero logaritmico, allora puoi contare il numero di ingressi x tale che f ( x ) = 1 inventando un circuito quantico U f che invia | x | Da 0⟩ a | x | f ( x ) f:{0,1}n{0,1}Xf(X)=1Uf|X|0|X|f(X)e simulando classicamente la probabilità di misurare nel secondo registro dopo l'applicazione di U f H n | 0 | 0 utilizzando questi risultati .|1UfHn|0|0


Grazie - gli articoli (2) e (3) sono interessanti ma in qualche modo non proprio quello che stavo cercando; il conteggio dei problemi con larghezza dell'albero limitata sembra più un caso speciale in cui la struttura con cui si sta lavorando è in realtà limitata polinomialmente. Ero più interessato ai casi in cui ci sono "davvero" molti oggetti in modo esponenziale da contare, ma possono in qualche modo magicamente essere contati in tempi polinomiali.
Ashley Montanaro,

Ciò non significherebbe che, se si utilizza una codifica unaria, l'algoritmo necessita di tempo esponenziale solo per scrivere il numero? È possibile che questo problema venga superato usando la codifica binaria, ma questo mi sembra intuitivo.
Antonio Valerio Miceli-Barone,

2
@ Miceli-Barone, Quello che dici si applicherebbe praticamente a qualsiasi algoritmo di poli-tempo che genera un numero. Il determinante stesso sarebbe piuttosto grande nel caso peggiore in unario.
Raffaello

(n+1)n+122n


11

Nel quadro di Holant, ci sono diversi casi che sono ragioni trattabili (per non banali) oltre che attraverso le porte di corrispondenza nei grafici planari.

1) Porte Fibonacci

2) Qualsiasi set di firme affini .

3) #CSP ponderati non negativi

...per dirne alcuni.

Inoltre, il Teorema MIGLIORE fornisce un algoritmo temporale polinomiale per contare il numero di circuiti euleriani in un grafico diretto, sebbene parte dell'algoritmo utilizzi un calcolo determinante.

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.