コード例 #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
                    print("{0: <3} ".format("Q"), end="")
                else:
                    print("{0: <3} ".format("x"), end="")
            print()
    except (TypeError, KeyError):
        print ("No Solution!")

if __name__ == "__main__":
    NUM_QUEENS = 8 if len(sys.argv) < 2 else int(sys.argv[1])

    variable_names = tuple(((i+1) for i in range(NUM_QUEENS)))

    constraints = [
        no_queens_check_constraint(variable_names)
    ]

    problem = Problem()
    for variable in variable_names:
        values = list(range(1, NUM_QUEENS+1))
        shuffle(values)
        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(NUM_QUEENS, assignments)