def _min_conflicts_value(problem, assignment, variable): ''' Return the value generate the less number of conflicts. In case of tie, a random value is selected among this values subset. ''' return argmin(problem.domains[variable], lambda x: _count_conflicts(problem, assignment, variable, x))
def test_random_tie(self): a = 0 for x in range(100): if argmin(['a', 'b', 'c'], lambda x: self.d[x]) == 'a': a += 1 self.assertTrue(25 < a < 75)
def test_return_max(self): self.assertEqual('b', argmin(['c', 'b'], lambda x: self.d[x]))
def _min_conflicts_value(problem, assignment, variable): ''' Return the value generate the less number of conflicts. In case of tie, a random value is selected among this values subset. ''' return argmin(problem.domains[variable], lambda x: _count_conflicts(problem, assignment, variable, x))