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}

0 ответов

Другие вопросы по тегам