Ejemplo n.º 1
0
 def test_no_weighted_hamiltonian(self):
     """test_known_no_hamiltonian_weighted: Test a weighted directed graph with no
     hamiltonian cycles
     """
     node0 = WeightedNode(0, [1, 3], {(0, 1): 4, (0, 3): 5})
     node1 = WeightedNode(1, [0, 3, 4, 2], {
         (1, 0): 2,
         (1, 3): 3,
         (1, 4): 6,
         (1, 2): 1
     })
     node2 = WeightedNode(2, [1, 4], {(2, 1): 2, (2, 4): 5})
     node3 = WeightedNode(3, [0, 1], {(3, 0): 2, (3, 1): 5})
     node4 = WeightedNode(4, [1, 2], {(4, 1): 3, (4, 2): 5})
     graph = WeightedGraph([node0, node1, node2, node3, node4])
     self.assertEqual(graph.get_hamiltonian_cycles(), [])
Ejemplo n.º 2
0
 def test_known_weighted_hamiltonian(self):
     """test_known_weighted_hamiltonian_cycles: Weighted directed graph which is known
     to have hamiltonian cycles
     """
     node0 = WeightedNode(0, [1, 3], {(0, 1): 4, (0, 3): 3})
     node1 = WeightedNode(1, [0, 3, 4, 2], {
         (1, 0): 3,
         (1, 3): 4,
         (1, 4): 4,
         (1, 2): 3
     })
     node2 = WeightedNode(2, [1, 4], {(2, 1): 1, (2, 4): 3})
     node3 = WeightedNode(3, [0, 1, 4], {(3, 0): 5, (3, 1): 3, (3, 4): 6})
     node4 = WeightedNode(4, [1, 2, 3], {(4, 1): 2, (4, 2): 6, (4, 3): 7})
     graph = WeightedGraph([node0, node1, node2, node3, node4])
     self.assertEqual(
         graph.get_hamiltonian_cycles(),
         [[0, 3, 4, 2, 1, 0], [0, 1, 2, 4, 3, 0], [1, 2, 4, 3, 0, 1],
          [1, 0, 3, 4, 2, 1], [2, 4, 3, 0, 1, 2], [2, 1, 0, 3, 4, 2],
          [3, 4, 2, 1, 0, 3], [3, 0, 1, 2, 4, 3], [4, 3, 0, 1, 2, 4],
          [4, 2, 1, 0, 3, 4]])