<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Boost Graph Library, Algorithmus um alle Pfade von den Inputs zu den Outputs enumerieren]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe benutze die Boost Graph Library um digitale Schaltungen abzubilden,<br />
in digitalen Schaltungen gibt es Inputs und Outputs.<br />
Logik-Gatter sind Nodes in meinem Graphen und Kanten sind die Kabel zwischen den Gattern.<br />
Ich moechte jetzt alle Pfade von den Inputs zu den Outputs ausgeben, gibt es da einen schoenen eleganten Algorithmus in der BGL der das kann oder allgemein<br />
gibt es einen Algorithmus der alle Pfade in einem Graph enumerieren kann. In der Doku finde ich viele Algorithmen aber keinder schint genau zu passen.<br />
Meine Graphen sind immer Directed Acylic Graphs (DAG)</p>
<p>Besten Dank,<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316801/boost-graph-library-algorithmus-um-alle-pfade-von-den-inputs-zu-den-outputs-enumerieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Jul 2026 13:56:41 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316801.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 17 May 2013 07:49:03 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Boost Graph Library, Algorithmus um alle Pfade von den Inputs zu den Outputs enumerieren on Fri, 17 May 2013 07:49:03 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>ich habe benutze die Boost Graph Library um digitale Schaltungen abzubilden,<br />
in digitalen Schaltungen gibt es Inputs und Outputs.<br />
Logik-Gatter sind Nodes in meinem Graphen und Kanten sind die Kabel zwischen den Gattern.<br />
Ich moechte jetzt alle Pfade von den Inputs zu den Outputs ausgeben, gibt es da einen schoenen eleganten Algorithmus in der BGL der das kann oder allgemein<br />
gibt es einen Algorithmus der alle Pfade in einem Graph enumerieren kann. In der Doku finde ich viele Algorithmen aber keinder schint genau zu passen.<br />
Meine Graphen sind immer Directed Acylic Graphs (DAG)</p>
<p>Besten Dank,<br />
<img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323919</guid><dc:creator><![CDATA[Ku-Klux-Klowns]]></dc:creator><pubDate>Fri, 17 May 2013 07:49:03 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Graph Library, Algorithmus um alle Pfade von den Inputs zu den Outputs enumerieren on Fri, 17 May 2013 11:37:58 GMT]]></title><description><![CDATA[<p>Im Prinzip <a href="http://www.boost.org/doc/libs/1_53_0/libs/graph/doc/graph_theory_review.html#sec:dfs-algorithm" rel="nofollow">DFS</a> ohne den Check ob ein Knoten bereits gesucht wurde.</p>
<pre><code class="language-cpp">void visit_all_paths(node n, node to, std::vector&lt;int&gt;&amp; callstack)
{
  if (n == to) {
    output(callstack);
    return;
  }
  for (node m : n.adjacent_nodes) {
    callstack.push_back(n);
    visit_all_paths(m, to, callstack);
    callstack.pop_back();
  }
}
</code></pre>
<p>(ich kenne BGL nicht, da geht das aber sicher ganz einfach)</p>
<p>Die Performance ist sowieso im A... weil das unter Umständen sehr viele Wege sein können, O(N!) um genau zu sein. Willst du wirklich <em>alle</em> ausgeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323990</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323990</guid><dc:creator><![CDATA[dfs]]></dc:creator><pubDate>Fri, 17 May 2013 11:37:58 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Graph Library, Algorithmus um alle Pfade von den Inputs zu den Outputs enumerieren on Fri, 17 May 2013 11:43:09 GMT]]></title><description><![CDATA[<p>Oh, wenn das ein DAG ist, dann hast du &quot;nur&quot; O(exp(N)).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2323993</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2323993</guid><dc:creator><![CDATA[dfs]]></dc:creator><pubDate>Fri, 17 May 2013 11:43:09 GMT</pubDate></item><item><title><![CDATA[Reply to Boost Graph Library, Algorithmus um alle Pfade von den Inputs zu den Outputs enumerieren on Sat, 18 May 2013 00:57:11 GMT]]></title><description><![CDATA[<p>Zu Beginn moechte ich alle ausgeben. Spaeter kann ich evtl. einschraenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2324190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2324190</guid><dc:creator><![CDATA[Ku-Klux-Klowns]]></dc:creator><pubDate>Sat, 18 May 2013 00:57:11 GMT</pubDate></item></channel></rss>