Completed
Pull Request — master (#43)
by Wojtek
06:31
created

WholeGroupPso.optimize()   A

Complexity

Conditions 2

Size

Total Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
c 1
b 0
f 0
dl 0
loc 13
rs 9.4285
1
"""Contains WholeGroupPso class."""
2
from grortir.main.pso.optimization_controller import OptimizationController
3
from grortir.main.pso.swarm import Swarm
4
5
6
class WholeGroupPso(object):
7
    """Optimize whole group."""
8
9
    def __init__(self, process, number_of_particles):
10
        self.process = process
11
        self.number_of_particles = number_of_particles
12
13
    def optimize(self, ordered_stages_to_optimize):
14
        """Optimize whole group of stages.
15
16
            Parameters:
17
                ordered_stages_to_optimize (list): List of stages which need
18
                 to be optimized
19
        """
20
        swarm = Swarm(self.process, ordered_stages_to_optimize,
21
                      self.number_of_particles)
22
        swarm.initialize()
23
        while OptimizationController.should_continue(
24
                ordered_stages_to_optimize):
25
            swarm.do_single_iteration()
26