def __init__(self, variables): Constraint.__init__(self, lambda *values: len([row1 for name1, row1 in zip(variables, values) if \ len([row2 for name2, row2 in zip(variables, values) if \ row2 == row1 or \ abs(name2 - name1) == abs(row2 - row1) \ ]) != 1 \ ]) == 0, variables)
def __init__(self, variables): Constraint.__init__(self, lambda *values: len([row1 for name1, row1 in zip(variables, values) if \ len([row2 for name2, row2 in zip(variables, values) if \ row2 == row1 or \ abs(name2 - name1) == abs(row2 - row1) \ ]) != 1 \ ]) == 0, variables)
def __init__(self, variables1, value1, variables2, value2): Constraint.__init__( self, lambda vars1, vars2: abs( vars1.index(value1) - vars2.index(value2)) == 1, (variables1, variables2)) self.value1 = value1 self.value2 = value2
def __init__(self, variables1, value1, variables2, value2): Constraint.__init__( self, lambda vars1, vars2: len([ i for i, val1 in enumerate(vars1) if val1 == value1 and vars2[i] == value2 ]) == 1, (variables1, variables2)) self.value1 = value1 self.value2 = value2
def __init__(self, _name, _type, _demand_list, _priority=0, _qualifier=None, _category=None, _location=None): Constraint.__init__(self, _name, _type, _demand_list, _priority) self.qualifier = _qualifier # different or same self.category = _category # disaster, region, or update self.location = _location self.comparison_operator = None if self.qualifier == "same": self.comparison_operator = operator.eq elif self.qualifier == "different": self.comparison_operator = operator.ne
def __init__(self, variables1, value1, variables2, value2): Constraint.__init__(self, lambda vars1, vars2: len([i for i, val1 in enumerate(vars1) if val1 == value1 and vars2[i] == value2]) == 1, (variables1, variables2)) self.value1 = value1 self.value2 = value2
def __init__(self, variable, value): Constraint.__init__(self, lambda var: var == value, (variable, ))
def __init__(self, prices, variables, exact_price): Constraint.__init__(self, lambda *values: sum([num*prices[var] for var, num in zip(variables, values)]) == exact_price, variables)
def __init__(self, variable1, variable2, diff): Constraint.__init__(self, lambda var1, var2: abs(var1 - var2) == diff, (variable1, variable2))
def __init__(self, variable1, variable2, variable3): Constraint.__init__(self, lambda var1, var2, var3: (var1 + var2) % 10 == var3 or (var1 + var2) % 10 + 1 == var3, (variable1, variable2, variable3))
def __init__(self, variables, value): Constraint.__init__(self, lambda vars: len([x for x in vars if x == value]) > 0, (variables,))
def __init__(self, variable1, variable2): Constraint.__init__(self, lambda var1, var2: var1 == var2, (variable1, variable2))
def __init__(self, _name, _type, _demand_list, _priority=0): Constraint.__init__(self, _name, _type, _demand_list, _priority) if not len(self.demand_list) == 2: LOG.debug("More than two demands in the list") raise ValueError
def __init__(self, variable, value): Constraint.__init__(self, lambda var: var == value, (variable,))
def __init__(self, touched_variables): Constraint.__init__(self, lambda variables: len([x for x in variables if len([y for y in variables if x == y]) > 1]) == 0, (touched_variables,))
def __init__(self, order, machine): Constraint.__init__(self) self.order = order self.machine = machine
def __init__(self, variables, value): Constraint.__init__( self, lambda vars: len([x for x in vars if x == value]) > 0, (variables, ))
def __init__(self, prices, variables, exact_price): Constraint.__init__( self, lambda *values: sum( [num * prices[var] for var, num in zip(variables, values)]) == exact_price, variables)
def __init__(self, variable1, variable2): Constraint.__init__(self, lambda var1, var2: var1 == var2, (variable1, variable2))
def __init__(self, variable1, variable2, variable3): Constraint.__init__( self, lambda var1, var2, var3: (var1 + var2) % 10 == var3 or (var1 + var2) % 10 + 1 == var3, (variable1, variable2, variable3))
def __init__(self, variable1, variable2, diff): Constraint.__init__(self, lambda var1, var2: abs(var1 - var2) == diff, (variable1, variable2))
def __init__(self, variables1, value1, variables2, value2): Constraint.__init__(self, lambda vars1, vars2: vars1.index(value1) - vars2.index(value2) == 1, (variables1, variables2)) self.value1 = value1 self.value2 = value2
def __init__(self, touched_variables): Constraint.__init__( self, lambda variables: len([ x for x in variables if len([y for y in variables if x == y]) > 1 ]) == 0, (touched_variables, ))