コード例 #1
0
 def generateCSP(self, size, circuit_components):
     CSP.__init__(self, self.values, self.variables, self.constraints, self.init_domains, self.inference_bool)
     final_assignment = CSP.backtracking_search(self)
     return final_assignment
コード例 #2
0
 def generateCSP(self, word_values, word_variables):
     CSP.__init__(self, self.values, self.variables, self.constraints,
                  self.init_domains, self.inference_bool)
     final_assignment = CSP.backtracking_search(self)
     print("final assignment", final_assignment)
     return final_assignment
コード例 #3
0
            m = assignment['M']
            o = assignment['O']
            r = assignment['R']
            y = assignment['Y']

            #Checking if condition is satisfied
            send = s * 1000 + e * 100 + n * 10 + d
            more = m * 1000 + o * 100 + r * 10 + e
            money = m * 10000 + o * 1000 + n * 100 + e * 10 + y

            return send + more == money
        return True


if __name__ == "__main__":
    letters = ["S", "E", "N", "D", "M", "O", "R", "Y"]
    possible_digits = {}

    for letter in letters:
        possible_digits[letter] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    possible_digits["M"] = [1]  # so we don't get answers starting with a 0

    csp = CSP(letters, possible_digits)
    csp.add_constraint(SendMoreMoneyConstraint(letters))

    solution = csp.backtracking_search()
    if solution is None:
        print("No solution found!")
    else:
        for key, val in solution.items():
            print(str(key).ljust(10), str(val).ljust(30))