Пример #1
0
    def test_graphs(self):

        H = nx.complete_graph(2)
        H.add_edge(2, 3)

        graphs = [
            nx.complete_graph(7),
            dnx.chimera_graph(2, 1, 3),
            nx.balanced_tree(5, 3),
            nx.barbell_graph(8, 11),
            nx.cycle_graph(5), H
        ]

        for G in graphs:
            tw, order = dnx.treewidth_branch_and_bound(G)
            self.assertEqual(dnx.elimination_order_width(G, order), tw)

            tw, order = dnx.min_width_heuristic(G)
            self.assertEqual(dnx.elimination_order_width(G, order), tw)

            tw, order = dnx.min_fill_heuristic(G)
            self.assertEqual(dnx.elimination_order_width(G, order), tw)

            tw, order = dnx.max_cardinality_heuristic(G)
            self.assertEqual(dnx.elimination_order_width(G, order), tw)
    def test_variable_order(self):
        n = 4
        p = dnx.pegasus_graph(n, fabric_only=False)
        o = dnx.pegasus_elimination_order(n)
        tw = dnx.elimination_order_width(p, o)
        self.assertEqual(tw, 12*n-4)

        p = dnx.pegasus_graph(n, fabric_only=False, coordinates=True)
        o = dnx.pegasus_elimination_order(n, coordinates=True)
        tw = dnx.elimination_order_width(p, o)
        self.assertEqual(tw, 12*n-4)
    def test_exceptions(self):

        G = nx.complete_graph(6)
        order = range(4)

        with self.assertRaises(ValueError):
            dnx.elimination_order_width(G, order)

        order = range(7)
        with self.assertRaises(ValueError):
            dnx.elimination_order_width(G, order)
Пример #4
0
    def test_variable_order(self):
        n = 8
        m = 10
        p = dnx.chimera_graph(n, m)
        o = dnx.generators.chimera.chimera_elimination_order(n, m)
        tw = dnx.elimination_order_width(p, o)
        self.assertEqual(tw, 4*n)

        p = dnx.chimera_graph(m, n)
        o = dnx.generators.chimera.chimera_elimination_order(m, n)
        tw = dnx.elimination_order_width(p, o)
        self.assertEqual(tw, 4*n)
 def test_trivial(self):
     G = nx.Graph()
     tw = dnx.elimination_order_width(G, [])
     self.assertEqual(tw, 0)