diff options
Diffstat (limited to 'generator')
-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): |