Пример #1
0
    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)
Пример #2
0
    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()
Пример #4
0
    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)
Пример #5
0
 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)
Пример #6
0
 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
Пример #7
0
    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)
Пример #8
0
    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
Пример #9
0
    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')
Пример #10
0
 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')
Пример #11
0
 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)
Пример #12
0
 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)
Пример #13
0
#!/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')