diff options
| author | blendoit <blendoit@gmail.com> | 2019-11-01 18:12:34 -0700 | 
|---|---|---|
| committer | blendoit <blendoit@gmail.com> | 2019-11-01 18:12:34 -0700 | 
| commit | 8b6f11119790c8c930734894a37d2a4aaa42462d (patch) | |
| tree | 9d6b9013ad4522f9a5598f30b4d3a0fcd26810ac /aircraftstudio/generator | |
| parent | 5ab73817371c1b4fedbd98838d3cf28984d73004 (diff) | |
Diffstat (limited to 'aircraftstudio/generator')
| -rw-r--r-- | aircraftstudio/generator/__init__.py | 1 | ||||
| -rw-r--r-- | aircraftstudio/generator/generator.py | 43 | 
2 files changed, 44 insertions, 0 deletions
diff --git a/aircraftstudio/generator/__init__.py b/aircraftstudio/generator/__init__.py new file mode 100644 index 0000000..4f233cb --- /dev/null +++ b/aircraftstudio/generator/__init__.py @@ -0,0 +1 @@ +from .generator import * diff --git a/aircraftstudio/generator/generator.py b/aircraftstudio/generator/generator.py new file mode 100644 index 0000000..898683a --- /dev/null +++ b/aircraftstudio/generator/generator.py @@ -0,0 +1,43 @@ +""" +The generator.py module contains classes describing genetic populations +and methods to generate default aircraft. +""" + +from aircraftstudio import creator + + +def default_fuselage(): +    pass + + +def default_propulsion(): +    pass + + +class Population(): +    """Represents a collection of aircraft.""" +    def __init__(self, size): +        self.aircrafts = [] +        for _ in range(size): +            self.aircrafts.append(creator.base.Aircraft.from_random()) +        self.size = size +        self.results = None +        self.gen_number = 0  # incremented for every generation + +    #TODO class methods for default and random population +    # def from_default(self, size): +    #     for i in range(size): +    #         self.aircrafts.append(creator.base.Aircraft.from_default()) + +    # def from_random(self, size): +    #     for i in range(size): +    #         self.aircrafts.append(creator.base.Aircraft.from_random()) + +    def mutate(self, prob_mt): +        """Randomly mutate the genes of prob_mt % of the population.""" +    def crossover(self, prob_cx): +        """Combine the genes of prob_cx % of the population.""" +    def reproduce(self, prob_rp): +        """Pass on the genes of the fittest prob_rp % of the population.""" +    def fitness(): +        """Rate the fitness of an individual on a relative scale (0-100)"""  |