From 5ab73817371c1b4fedbd98838d3cf28984d73004 Mon Sep 17 00:00:00 2001 From: blendoit Date: Mon, 21 Oct 2019 21:25:52 -0700 Subject: Correct implem. of evaluator.analyze_all & Evaluator declassification --- generator/generator.py | 26 +++++++++++--------------- 1 file changed, 11 insertions(+), 15 deletions(-) (limited to 'generator/generator.py') 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): -- cgit v1.2.3