diff options
author | blendoit <blendoit@gmail.com> | 2019-10-21 21:25:52 -0700 |
---|---|---|
committer | blendoit <blendoit@gmail.com> | 2019-10-21 21:25:52 -0700 |
commit | 5ab73817371c1b4fedbd98838d3cf28984d73004 (patch) | |
tree | db564394fa4db6db703738c469790d63d09e945b /generator/generator.py | |
parent | 5e82dedea4c56eafc1bba4f3ec8677b15f51c03f (diff) |
Correct implem. of evaluator.analyze_all & Evaluator declassification
Diffstat (limited to 'generator/generator.py')
-rw-r--r-- | generator/generator.py | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/generator/generator.py b/generator/generator.py index 3af4850..c2b8103 100644 --- a/generator/generator.py +++ b/generator/generator.py @@ -4,23 +4,12 @@ and methods to generate default aircraft. """ import random +import concurrent.futures import creator import evaluator -def default_aircraft(evaluator_instance): - """Generate a default aircraft with a random name.""" - name = 'default_aircraft_' + str(random.randrange(1000, 9999)) - aircraft = creator.base.Aircraft(evaluator_instance, name) - airfoil = creator.wing.Airfoil(aircraft, 'default_airfoil') - airfoil.add_naca(2412) - soar1 = creator.wing.Spar(airfoil, 'default_spar_1', 0.30) - soar2 = creator.wing.Spar(airfoil, 'default_spar_2', 0.60) - stringer = creator.wing.Stringer(airfoil, 'default_stringer') - return aircraft - - def default_fuselage(): pass @@ -30,13 +19,20 @@ def default_propulsion(): class Population(): - """Collection of random airfoils.""" + """Represents a collection of aircraft.""" def __init__(self, size): - af = creator.Airfoil - # print(af) + self.aircrafts = [] + for i in range(size): + self.aircrafts.append(creator.base.Aircraft.from_default()) self.size = size + self.results = None self.gen_number = 0 # incremented for every generation + def evaluate(self): + with concurrent.futures.ProcessPoolExecutor as executor: + for aircraft in self.aircrafts: + executor.submit(evaluator.analyze, aircraft) + def mutate(self, prob_mt): """Randomly mutate the genes of prob_mt % of the population.""" def crossover(self, prob_cx): |