def test_GSO_with_report_in_file_and_saving_intermediary_files(self): objective_function = J5() self.gso_parameters.initial_vision_range = 3.0 self.gso_parameters.max_vision_range = 3.0 bounding_box = BoundingBox( [Boundary(-2.0 * pi, 2.0 * pi), Boundary(-2.0 * pi, 2.0 * pi)]) number_of_glowworms = 5 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create_from_file( number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box, self.golden_data_path + 'initial_positions_redux.txt') gso.run(5, saving_path=self.test_path, save_intermediary=True, save_all_intermediary=True) for i in range(5): assert os.path.exists(self.test_path + 'gso_%d.out' % (i + 1)) gso.report(self.test_path + 'report.out') lines = open(self.test_path + 'report.out').readlines() assert 14 == len(lines)
def test_GSOBuilder_using_RandomInitializer(self): builder = GSOBuilder() gso = builder.create(self.number_of_glowworms, self.random_number_generator, self.gso_parameters, self.objective_function, self.bounding_box) population_lines = str(gso.swarm).split(os.linesep) expected_lines = open(self.golden_data_path / 'initial_population_random.txt').readlines() assert len(expected_lines) == len(population_lines) for line1, line2 in zip(expected_lines, population_lines): assert line1.rstrip() == line2.rstrip()
def test_GSOBuilder_using_RandomInitializer(self): builder = GSOBuilder() gso = builder.create(self.number_of_glowworms, self.random_number_generator, self.gso_parameters, self.objective_function, self.bounding_box) population_lines = str(gso.swarm).split(os.linesep) expected_lines = open(self.golden_data_path+'initial_population_random.txt').readlines() assert len(expected_lines) == len(population_lines) for line1, line2 in zip(expected_lines, population_lines): assert line1.rstrip() == line2.rstrip()
def test_GSO_with_J1(self): objective_function = J1() bounding_box = BoundingBox([Boundary(-3.0, 3.0), Boundary(-3.0, 3.0)]) number_of_glowworms = 50 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box) gso.run(200) # Function peak coordinates peak_coordinates = [[1.28, 0.0], [0.0, 1.58], [-0.46, -0.63]] # Check with auxiliar function the position of the glowworms assert self.found_peaks(peak_coordinates, 2, gso.swarm.glowworms)
def test_GSO_with_report(self): objective_function = J5() self.gso_parameters.initial_vision_range = 3.0 self.gso_parameters.max_vision_range = 3.0 bounding_box = BoundingBox([Boundary(-2.0*pi, 2.0*pi), Boundary(-2.0*pi, 2.0*pi)]) number_of_glowworms = 5 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box) gso.run(5) report = gso.report() assert 14 == len(report.split(os.linesep)) assert str(gso) == report
def test_GSO_with_J2(self): objective_function = J2() self.gso_parameters.initial_vision_range = 2.0 self.gso_parameters.max_vision_range = 2.0 bounding_box = BoundingBox([Boundary(-1.0, 1.0), Boundary(-1.0, 1.0)]) number_of_glowworms = 70 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box) gso.run(200) # Function peak coordinates peak_coordinates = [[-0.5, -0.5], [-0.5, 0.5], [0.5, -0.5], [0.5, 0.5]] # Check with auxiliar function the position of the glowworms assert self.found_peaks(peak_coordinates, 2, gso.swarm.glowworms, 3)
def test_GSO_with_report(self): objective_function = J5() self.gso_parameters.initial_vision_range = 3.0 self.gso_parameters.max_vision_range = 3.0 bounding_box = BoundingBox( [Boundary(-2.0 * pi, 2.0 * pi), Boundary(-2.0 * pi, 2.0 * pi)]) number_of_glowworms = 5 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box) gso.run(5) report = gso.report() assert 14 == len(report.split(os.linesep)) assert str(gso) == report
def test_GSO_with_J4(self): objective_function = J4() self.gso_parameters.initial_vision_range = 0.75 self.gso_parameters.max_vision_range = 0.75 bounding_box = BoundingBox([Boundary(-2.0, 2.0), Boundary(-2.0, 2.0)]) number_of_glowworms = 100 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box) gso.run(50) # Save last step gso.swarm.save(50, self.test_path, 'gso_j4_50.out') assert filecmp.cmp(self.test_path + 'gso_j4_50.out', self.golden_data_path + 'gso_j4_50.out')
def test_GSO_with_J5(self): objective_function = J5() self.gso_parameters.initial_vision_range = 3.0 self.gso_parameters.max_vision_range = 3.0 bounding_box = BoundingBox([Boundary(-2.0*pi, 2.0*pi), Boundary(-2.0*pi, 2.0*pi)]) number_of_glowworms = 100 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box) gso.run(70) # Save last step gso.swarm.save(70, self.test_path, 'gso_j5_70.out') assert filecmp.cmp(self.test_path + 'gso_j5_70.out', self.golden_data_path + 'gso_j5_70.out')
def test_GSO_with_report_in_file_and_saving_intermediary_files(self): objective_function = J5() self.gso_parameters.initial_vision_range = 3.0 self.gso_parameters.max_vision_range = 3.0 bounding_box = BoundingBox([Boundary(-2.0*pi, 2.0*pi), Boundary(-2.0*pi, 2.0*pi)]) number_of_glowworms = 5 random_number_generator = MTGenerator(324324) builder = GSOBuilder() gso = builder.create_from_file(number_of_glowworms, random_number_generator, self.gso_parameters, objective_function, bounding_box, self.golden_data_path + 'initial_positions_redux.txt') gso.run(5, saving_path=self.test_path, save_intermediary=True, save_all_intermediary=True) for i in range(5): assert os.path.exists(self.test_path + 'gso_%d.out' % (i+1)) gso.report(self.test_path + 'report.out') lines = open(self.test_path + 'report.out').readlines() assert 14 == len(lines)
#!/usr/bin/env python3 # coding: utf-8 from lightdock.gso.parameters import GSOParameters from lightdock.gso.searchspace.benchmark_ofunctions import J2 from lightdock.gso.algorithm import GSOBuilder from lightdock.gso.boundaries import Boundary, BoundingBox from lightdock.mathutil.lrandom import MTGenerator gso_parameters = GSOParameters() objective_function = J2() bounding_box = BoundingBox([Boundary(-4.0, 4.0), Boundary(-4.0, 4.0)]) number_of_glowworms = 200 random_number_generator = MTGenerator(324324324) builder = GSOBuilder() gso = builder.create(number_of_glowworms, random_number_generator, gso_parameters, objective_function, bounding_box) gso.swarm.save(0, '.', file_name='gso_0.out') for glowworm in gso.swarm.glowworms: print(glowworm.landscape_positions[0]) print('Step 1') gso.run(100) print('Step 100')