def get_optimization_results( t, population, factorial_cost, scalar_fitness, skill_factor, pairs=None, tasks=None): K = len(set(skill_factor)) N = len(population) // 2 results = [] for k in range(K): result = OptimizeResult() x, fun = get_best_individual( population, factorial_cost, scalar_fitness, skill_factor, k) result.x = x result.fun = fun result.nit = t result.nfev = (t + 1) * N if pairs is not None: result.pair = pairs[k, :] else: result.pair = None if tasks is not None: result.ucb_value = tasks[k].ucb_solver.value else: result.ucb_value = None results.append(result) return results
def get_results(self, t): K = self.K N = self.args.pop_size results = [] for k in range(K): result = OptimizeResult() x, fun = self.stos[k].population[0], self.stos[k].fitness[0] result.x = x result.fun = fun result.nit = t result.nfev = (t + 1) * N result.pair = self.stos[k].pair result.ucb_value = self.stos[k].ucb.value results.append(result) return results