コード例 #1
0
            print("{} {}".format(assignments[key], key))
        print("--------------------")
        print("Total: {0: .2f}".format(
            sum([
                num * appetizer_prices[var]
                for var, num in assignments.items()
            ])))
    except (TypeError, KeyError):
        print("No Solution!")


constraints = [
    exact_price_constraint(appetizer_prices, variable_names, TOTAL_PRICE)
]

if __name__ == "__main__":
    problem = Problem()
    for variable in variable_names:
        values = list(
            range(0, int(TOTAL_PRICE / appetizer_prices[variable] + 1)))
        problem.add_variable(variable, values)

    problem.add_constraints(constraints)

    solver = ConstraintProblemSolver(problem)
    assignments = solver.solve()
    if assignments != None:
        print("Failed Constraints: {}".format(
            problem.check_constraints(assignments)))
    print_assignments(assignments)
コード例 #2
0
    same_house_constraint(nationality_variable_names, 'Ukraine', drink_variable_names, 'Tea'),
    right_of_constraint(color_variable_names, 'green', color_variable_names, 'white'),
    same_house_constraint(cigarette_variable_names, 'Atem-Gold', pet_variable_names, 'Snails'),
    same_house_constraint(cigarette_variable_names, 'Kools', color_variable_names, 'yellow'),
    equals_value_constraint('house3drink', 'Milk'),
    equals_value_constraint('house1nationality', 'Norway'),
    next_to_constraint(cigarette_variable_names, 'Chesterfield', pet_variable_names, 'Fox'),
    next_to_constraint(cigarette_variable_names, 'Kools', pet_variable_names, 'Horse'),
    same_house_constraint(cigarette_variable_names, 'Lucky-Strike', drink_variable_names, 'Orange juice'),
    same_house_constraint(nationality_variable_names, 'Japan', cigarette_variable_names, 'Parliaments'),
    next_to_constraint(nationality_variable_names, 'Norway', color_variable_names, 'blue'),
    #exists_constraint(drink_variable_names, 'Water'),
    #exists_constraint(pet_variable_names, 'Zebra')
]

if __name__ == "__main__":
    problem = Problem()
    problem.add_variables(color_variable_names, color_variable_values)
    problem.add_variables(nationality_variable_names, nationality_variable_values)
    problem.add_variables(pet_variable_names, pet_variable_values)
    problem.add_variables(drink_variable_names, drink_variable_values)
    problem.add_variables(cigarette_variable_names, cigarette_variable_values)

    problem.add_constraints(constraints)

    solver = ConstraintProblemSolver(problem)
    assignments = solver.solve()
    if assignments != None:
        print("Failed Constraints: {}".format(problem.check_constraints(assignments)))
    print_assignments(assignments)