def task1(): functions = ['rastrigin', 'rosenbrock', 'eggholder', 'ackley'] topologies = ['ring', 'star'] print('task1:') total_time = time.time() for F, T in itertools.product(functions, topologies): print(F, T, 'time: ', end='') t = time.time() pso = PSO(function=F, topology=T, seed=19520624) pso.optimize() pso.print_log() print(time.time() - t) print('Total time: ', time.time() - total_time)
def _task2(F, T, N): a = np.zeros((10, )) for i in range(10): t = time.time() pso = PSO(num_var=10, population_size=N, max_generation=10**9 + 7, function=F, topology=T, seed=19520624 + i) fitness = pso.optimize()[1] pso.print_log() del pso gc.collect() a[i] = fitness print('\t', i, F, T, N, 'time: ', time.time() - t) return (F, T, N), np.mean(a), np.std(a)