Python CSP: изменение имени переменной вызывает проблемы с ограничениями
Изменение имени переменной с P на PL приводит к тому, что ограничение не срабатывает. Что я делаю неправильно?
import sys
from constraint import *
def getsol():
solutions = problem.getSolutions()
print "SOLUTION"
for solution in solutions:
print solution
problem = Problem()
problem.addVariable("P",[4,1])
problem.addVariable("b",[3, 5])
problem.addConstraint(lambda P, b: not(P == 4))
getsol()
problemsolver.py
SOLUTION
{'P': 1, 'b': 5}
{'P': 1, 'b': 3}
Но ----------------------------------
import sys
from constraint import *
def getsol():
solutions = problem.getSolutions()
print "SOLUTION"
for solution in solutions:
print solution
problem = Problem()
problem.addVariable("PL",[4,1])
problem.addVariable("b",[3, 5])
problem.addConstraint(lambda PL, b: not(PL == 4))
getsol()
problemsolver.py
SOLUTION
{'b': 5, 'PL': 1}
{'b': 3, 'PL': 1}
{'b': 5, 'PL': 4}
{'b': 3, 'PL': 4}