Esempio n. 1
0
    return False


if __name__ == "__main__":
    graph = Graph()
    graph.add_node("S")
    graph.add_node_from(["S", "A", "B", "C", "D", "E", "F", "G", "H"])
    graph.add_edges_from(
        [
            ("S", "A", 3),
            ("S", "B", 6),
            ("S", "C", 2),
            ("A", "D", 3),
            ("B", "D", 4),
            ("B", "G", 9),
            ("B", "E", 2),
            ("C", "E", 1),
            ("D", "F", 5),
            ("E", "H", 5),
            ("F", "E", 6),
            ("H", "G", 8),
            ("F", "G", 5),
        ],
        is_duplicated=True  # Bỏ qua hướng của các đường đi
    )
    # initial setup
    graph.nodes[0].cost = 0  # cost của node S = 0
    graph.nodes[0].path = ['S']  # S -> S là S
    result = uniform_cost_search(graph, graph.nodes[0],
                                 graph.nodes[7])  # Tìm đường đi từ S -> G
    # In kết quả có tìm ra đường đi hay ko
    print(result)

if __name__ == "__main__":
    graph = Graph()
    graph.add_node_from([
        "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
        "O"
    ])
    graph.add_edges_from([
        ("A", "B", 2),
        ("A", "C", 1),
        ("A", "D", 3),
        ("B", "E", 5),
        ("B", "F", 4),
        ("C", "G", 6),
        ("C", "H", 3),
        ("D", "I", 2),
        ("D", "J", 4),
        ("F", "K", 2),
        ("F", "L", 1),
        ("F", "M", 4),
        ("H", "N", 2),
        ("H", "O", 4),
    ])
    # initial setup
    graph.nodes[0].goal_cost = 6  # goal_cost của node A = 6
    graph.nodes[0].cost = 0  # Set cost node A = 0
    graph.nodes[
        0].f = graph.nodes[0].cost + graph.nodes[0].goal_cost  # f cua Node A
    graph.nodes[1].goal_cost = 3  # goal_cost của node B = 3
    graph.nodes[2].goal_cost = 4  # goal_cost của node C = 4
    graph.nodes[3].goal_cost = 5  # goal_cost của node D = 5
Esempio n. 3
0

if __name__ == "__main__":
    graph = Graph()
    graph.add_node_from([
        "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N",
        "O"
    ])
    graph.add_edges_from([
        ("A", "B"),
        ("A", "C"),
        ("A", "D"),
        ("B", "E"),
        ("B", "F"),
        ("C", "G"),
        ("C", "H"),
        ("D", "I"),
        ("D", "J"),
        ("F", "K"),
        ("F", "L"),
        ("F", "M"),
        ("H", "N"),
        ("H", "O"),
    ], )
    # initial setup
    graph.nodes[0].goal_cost = 6  # goal_cost của node A = 6
    graph.nodes[1].goal_cost = 3  # goal_cost của node B = 3
    graph.nodes[2].goal_cost = 4  # goal_cost của node C = 4
    graph.nodes[3].goal_cost = 5  # goal_cost của node D = 5
    graph.nodes[4].goal_cost = 3  # goal_cost của node E = 3
    graph.nodes[5].goal_cost = 1  # goal_cost của node F = 1
    graph.nodes[6].goal_cost = 6  # goal_cost của node G = 6