def austrailia_test(): domain = ["Red", "Green", "Blue"] variables = [ Variable("WA", set(domain)), Variable("NT", set(domain)), Variable("SA", set(domain)), Variable("Q", set(domain)), Variable("NSW", set(domain)), Variable("V", set(domain)), Variable("T", set(domain)) ] constraints = [ Constraint([variables[0], variables[1]], test_not_equal), Constraint([variables[0], variables[2]], test_not_equal), Constraint([variables[1], variables[2]], test_not_equal), Constraint([variables[1], variables[3]], test_not_equal), Constraint([variables[2], variables[3]], test_not_equal), Constraint([variables[2], variables[4]], test_not_equal), Constraint([variables[2], variables[5]], test_not_equal), Constraint([variables[3], variables[4]], test_not_equal), Constraint([variables[4], variables[5]], test_not_equal) ] problem = ConstraintSatisfactionProblem(variables, constraints) return problem.solve()
def schedule_test(): variables = [ Variable("Event1", set([("6:00", 90), ("6:25", 90)])), Variable("Event2", set([("5:30", 60), ("11:00", 30)])), Variable("Event3", set([("5:10", 15), ("1:00", 30)])), Variable("Event4", set([("7:00", 60), ("4:30", 30)])) ] constraints = [ Constraint([variables[2], variables[3]], test_in_order, order=[variables[2], variables[3]]), # Constraint([variables[0], variables[1]], test_no_overlap), # Constraint([variables[0], variables[2]], test_no_overlap), # Constraint([variables[0], variables[3]], test_no_overlap), # Constraint([variables[1], variables[2]], test_no_overlap), # Constraint([variables[1], variables[3]], test_no_overlap), # Constraint([variables[2], variables[3]], test_no_overlap) Constraint(variables, test_no_overlap) ] problem = ConstraintSatisfactionProblem(variables, constraints) return problem.solve()