Frage

Fixieren Sie einige endliche Grafik $ g= (v, e) $ , und einiger vertex $ x $ .

Angenommen, ich erwirtschaftete einen zufälligen Unterbaum von $ g $ der Größe $ n $ , enthaltend $ x $ wie folgt:

    .
  1. let $ T_0={x \} $ .
  2. für $ 0

    i. Lassen Sie $ B_N $ Seien Sie der Set von Nachbarn von $ T_ {N-1} $ außerhalb von $ T_ {n-1} $ .

    ii. Formular $ t_n $ von

      .
    • probieren ein paar $ (x_n, y_n) \ in e (g) \ cap \ links (v (t_ {n-1}) \ mal b_n \ rechts) $ < / span>, mit Wahrscheinlichkeit $ q_n (x_n, y_n | t_ {n-1}) $ ,
    • fügen Sie $ y_n $ auf $ V (T_ {N-1}) $ , und fügen Sie hinzu $ (x_n, y_n) $ bis $ E (T_ {N-1}) $ .
  3. return $ t_n $ .

  4. Angenommen, auch, dass $ q_n (x_n, y_n | t_ {n-1}) $ einfach für alle $ (T_ {N-1}, x_n, y_n) $ . Ich interessiere mich für effizient und genau berechnen die Randwahrscheinlichkeit, den Baum $ T_N $ zu erstellen, da ich anfang, dass ich es bei wächst $ T_0={x \} $ , dh

    $$ P (t_n | t_0={x \})=sum_ {x_ {1: n}, y_ {1: n}} \ prod_ {n= 1} ^ n q_n (x_n, y_n | t_ {n-1}). $$

    Meine Frage ist im Wesentlichen, ob ich erwarten sollte, einen effizienten Algorithm (d. H. Polynomialzeit), und wenn ja, was es sein könnte.

    Einige Gedanken:

      .
    • Naiv, die Summe hat exponentiell-viele Begriffe, die den Versuch ausschließen, die Summe direkt zu bewerten.

    • Andererseits ist dieses Problem auch hochstrukturiert (Bäume, Rekursion usw.), was möglicherweise darauf hindeutet, dass ein dynamischer Programmieransatz möglich wäre. Ich bin mir nicht sicher, wie man sich annähert.

    • Zusammenarbeit wissen ich, wie man unvoreingenommene, nicht negative Schätzer von $ p (t_n | t_0= {{x \}) $ , berechnet Habe vernünftige Varianzeigenschaften, indem Techniken von der sequentiellen Monte-Carlo / Partikelfilterung verwendet werden. Dies deutet darauf hin, dass das Problem zumindest möglich ist, sich in annäherbarer Zeit gut anzunähern.

War es hilfreich?

Lösung

nein. Wenn $ q (x_n, y_n | t_ {n-1}) $ willkürlich ist, kann es eine beliebige Abhängigkeit von $ T_ {n-1} $ - Dann erfordert dies eine exponentielle Zeit.

Betrachten Sie einen Baum in Betracht, $ T_N $ Das verfügt über einen einzelnen Stammknoten, $ n-1 $ Blätter und eine Kante von der Wurzel zu jedem Blatt. Es gibt $ 2 ^ N $ Teilbänder von $ t_n $ , und insbesondere gibt es $ 2 ^ N $ Mögliche Werte von $ t_n $ , die im Ausdruck auftreten können

$$ \ sum_ {x, y} \ prod_ {n= 1} ^ n q_n (x_n, y_n | t_ {n-1}). $$

Man kann ein einfaches Gegner-Argument verwenden, um zu beweisen, dass die Bewertung dieses Ausdrucks eine exponentielle Zeit erfordert. Angenommen, wir bewerten $ q_n (x_n, x_n | T_ {N-1}) $ , indem Sie ein Oracle mit $ X_N abfragen , y_n, t_ {n-1} $ . Angenommen, es gibt einen einzelnen Baum $ T $ , der niemals auf das Oracle als beliebiger $ T_ {N-1} $ abgefragt wird . Wählen Sie den gesamten $ q_n (\ CDOTs) $ Werte, um strikt positiv zu sein. Da seit $ q_n (x_n, y_n | t) $ während der Ausführung nicht abgefragt wurde, können wir sie nach der Beobachtung der Leistung des Algorithmus auswählen. Indem wir es variieren, können wir einen Wert auswählen, der den Ausgang des Algorithmus falsch macht (insbesondere der Wert des Ausdrucks abhängig von $ q_n (x_n, y_n | t) $ Aber der Ausgang des Algorithmus hängt nicht von $ q_n (x_n, y_n | t) $ , sodass der Ausgang des Algorithmus nicht korrigiert werden kann). Wir haben bewiesen, dass, um den richtigen Ausgang zu erzeugen, jeder korrekte Algorithmus das Oracle für alle $ 2 ^ N $ mögliche Teilbänder von $ T_n $ . Es dauert mindestens $ O (1) $ Zeit, um ein Oracle abzufragen.

Abschließend beweist dieses Argument, dass jeder korrekte Algorithmus zum Berechnen dieses Ausdrucks $ \ Omega (2 ^ n) $ Time dauern muss.

Ich weiß nicht, ob es immer in $ O (2 ^ n) $ Time oder ob vielleicht $ O (n!) $ Die Zeit ist möglicherweise erforderlich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit cs.stackexchange
scroll top