Как использовать корректировку ограничений Python

Я попробовал библиотеку ограничений Python для решения проблемы CSP, но не понимаю, почему я получил 2048 решений с кадром данных из 4 записей.

Мой фрейм данных представляет собой набор расстояний от ближайших элементов до фонтанов в парках, и я использую CSP для оптимизации установки фонтанов в парках.

      data = {
 'id': [0, 1, 2, 3, 4],
 'nearest_rev': [2697.5691, 2745.4515, 2744.0437, 2582.4061],
 'nearest_fountain': [48.9079, 1.4088, 1.4088, 141.3484],
 'nearest_rvertes': [2512.2950, 2541.8665, 2540.7561, 2371.0535],
 'nearest_pcyclable': [176.1136, 167.3303, 167.1909, 84.5920},
 'nearest_murbain': [2529.7020, 2495.9674, 2497.1525, 2670.5299],
 'nearest_iexterne': [21.4467, 33.0651, 32.6521, 18.8371],
}

df = pd.DataFrame(data)

def my_constraint(a, b, c, d, e, f):
  if min(a, b, c, d, e, f) <= 10:
    return True

problem = constraint.Problem()

# create variables
problem.addVariable("nearest_rev", df["nearest_rev"].tolist())
problem.addVariable("nearest_rvertes", df["nearest_rvertes"].tolist())
problem.addVariable("nearest_murbain", df["nearest_murbain"].tolist())
problem.addVariable("nearest_fountain", df["nearest_fountain"].tolist())
problem.addVariable("nearest_iexterne", df["nearest_iexterne"].tolist())
problem.addVariable("nearest_pcyclable", df["nearest_pcyclable"].tolist())

# create constraint
variables = ["nearest_rev", 
             "nearest_fountain", 
             "nearest_rvertes", 
             "nearest_pcyclable", 
             "nearest_murbain", 
             "nearest_iexterne"]

problem.addConstraint(my_constraint, variables)

solutions = problem.getSolutions()

print(solutions) # return 2048 (what wrong?)

0 ответов

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