def __init__(self, groups, size, weeks, poolsize = 25, pool = None, timeout = 600, max_learning = 30): self.groups = groups self.size = size self.weeks = weeks self.stop_time = time() + timeout if pool: # check if pool is okay for v, solution in pool: assert len(solution) == weeks for week in solution: assert len(week) == groups for group in week: assert len(group) == size self.pool = pool else: self.pool = [ (lambda sigma: (sgp.violations(sigma)[0], sigma))(sgp.generateSolution(groups, size, weeks)) for i in range(poolsize) ] self.max_learning = max_learning self.solution = None self.done = False
def setUp(self): self.solution = sgp.generateSolution(5, 4, 5)#[[[1,2,3], [4,5,6]], [[1,2,3], [4,5,6]]] self.tabu = [ { (1, 2): 2, (1, 3): 2}, { (1, 2): 2, (1, 3): 1}, ]