Python-costraint для оптимального покрытия вершин
Я новичок в программировании на CSP. У меня есть код ниже:
from constraint import *
problem = Problem()
vertex = range(1, 6)
edges = [[1, 2], [1, 3], [2, 4], [2, 5], [2, 6], [4, 6]]
problem.addVariables(vertex, [0 , 1])
for edge in edges:
problem.addConstraint(MinSumConstraint(1), edge)
solutions = problem.getSolutions()
a = min(solutions, key=lambda d: len([k for k in d.keys() if d[k] == 1]))
print(a)
Этот код успешно решает задачу графа "Оптимальное покрытие вершины".
Хотелось бы узнать, как работает эта строчка
for edge in edges:
problem.addConstraint(MinSumConstraint(1), edge)
например, если край [1, 2], какова сумма? как мы можем вычислить его, чтобы выбрать пары ребер, которые соблюдают это ограничение (MinSumConstraint)?