Probabilità marginale di generare un albero
-
29-09-2020 - |
Domanda
Correggi alcuni grafico finito $ g= (v, e) $ e alcuni vertice $ x $ .
Supponiamo di generare un sottobero casuale di $ G $ di taglia $ n $ , contenente $ x $ , come segue:
- .
- Let $ T_0={x \} $ .
-
per $ 0
i. Let $ B_N $ Sii il set di vicini di $ t_ {n-1} $ al di fuori di $ t_ {n-1} $ .
II. Modulo $ T_N $ per
- .
- Esempio una coppia $ (x_n, y_n) \ in e (g) \ cap \ sinistra (V (T_ {n-1}) \ volte B_n \ destra) $ < / span>, con probabilità $ q_n (x_n, y_n | t_ {n-1}) $ ,
- Aggiungi $ y y_n $ a $ v (t_ {n-1}) $ e aggiungi $ (x_n, y_n) $ a $ e (t_ {n-1}) $ . .
-
ritorno $ t_n $ .
-
ingenua, la somma è esponenzialmente-molti termini, che preclude il tentativo di valutare direttamente la somma.
-
D'altra parte, questo problema è anche altamente strutturato (alberi, ricorsioni, ecc.), che potrebbe suggerire che una sorta di approccio dinamico di programmazione sarebbe fattibile. Non sono sicuro di come affrontare questo.
-
PAnnemente, so come calcolare gli stimatori non negativi, non negativi di $ p (t_n | t_0={x \}) $ , che Avere proprietà di varianza ragionevole, utilizzando tecniche dal filtro Sequenziale Monte Carlo / Particle. Ciò suggerisce che il problema è almeno possibile per approssimare bene in una ragionevole quantità di tempo.
Supponiamo anche che $ q_n (x_n, y_n | t_ {n-1}) $ può essere calcolato facilmente per tutto $ (T_ {n-1}, x_n, y_n) $ . Sono interessato a calcolare in modo efficiente ed esattamente calcolando la probabilità marginale di generare l'albero $ t_n $ , dato che ho iniziato a crescerlo a $ T_0={X \} $ , IE
$$ p (t_n | t_0={x})=sum_ {x_ {1: n}, y_ {1: n}} {1: n}} \ PROD_ {N= 1} ^ n q_n (x_n, y_n | t_ {n-1}). $$
La mia domanda è essenzialmente se dovrei aspettarmi di essere in grado di trovare un algoritmo efficiente (I.e. polinomiale-tempo) algoritmo per questo, e in tal caso, cosa potrebbe essere.
Alcuni pensieri:
- .
Soluzione
no. Se $ Q (x_n, y_n | t_ {n-1}) $ è arbitrario - può esserci una dipendenza arbitraria da $ T_ {N-1} $ - Quindi ciò richiede tempo esponenziale.
Considera un albero $ t_n $ che ha un singolo nodo radice, $ n-1 $ foglie e un bordo dalla radice a ciascuna foglia. Ci sono $ 2 ^ N $ Subrei di $ t_n $ , e in particolare, ci sono $ 2 ^ N $ Valori possibili di $ t_n $ che può verificarsi nell'espressione
$$ \ sum_ {x, y} \ PROD_ {N= 1} ^ N Q_N (X_N, Y_N | T_ {N-1}). $$
Si può utilizzare un semplice argomento avversario per dimostrare che la valutazione di questa espressione richiede tempo esponenziale. Supponiamo che valutiamo $ Q_n (x_n, x_n | t_ {n-1}) $ interrogando un oracolo con $ T $ che non viene mai interrogato all'oracle come alcuna classe $ T_ {N-1} $ . Scegli tutta la $ Q_N (\ cdots) $ valori per essere rigorosamente positivi. Poi da $ Q_N (X_N, Y_N | T) $ non è stato interrogato durante l'esecuzione, possiamo sceglierlo dopo aver osservato l'uscita dell'algoritmo; Ma variandolo, possiamo scegliere un valore che rende il errore di uscita dell'algoritmo (in particolare, il valore dell'espressione dipende da $ q_n (x_n, y_n | t) $ Ma l'output dell'algoritmo non dipende da $ q_n (x_n, y_n | t) $ , quindi l'output dell'algoritmo non può correggere). Abbiamo dimostrato che, per produrre l'output corretto, qualsiasi algoritmo corretto deve interrogare l'Oracle per tutti $ 2 ^ n $ possibili sottoschetti di $ T_N $ . Ci vuole almeno $ o (1) $ tempo per interrogare un oracolo.
In conclusione, questo argomento dimostra che qualsiasi algoritmo corretto per il calcolo di questa espressione deve prendere $ \ omega (2 ^ n) $ tempo.
Non so se può sempre essere fatto in $ o (2 ^ n) $ tempo o se forse $ O (n!) $ Il tempo potrebbe essere richiesto.