Exemple #1
0
        nodes.append(Square())
    else:
        nodes.append(Triangle())

for edge in edges:
    adjacent_nodes = edge.split()
    first_node = nodes[int(adjacent_nodes[0])]
    second_node = nodes[int(adjacent_nodes[1])]
    first_node.add_adjacent_node(second_node)
    second_node.add_adjacent_node(first_node)

node_domain = {}
for node in nodes:
    domain = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    node_domain[node] = domain

algorithm = Algorithm(node_domain)
print("Answer for backtracking with forward checking")
result = algorithm.bt_fc_search({}, node_domain)
if result is not None:
    for key in result.keys():
        print(result[key], end=' ')
    print()
else:
    print("there is no answer")

print("Answer for backtracking with forward checking and MRV")
result = algorithm.bt_fc_mrv({}, node_domain)
for key in result.keys():
    print(result[key], end=' ')