Completed
Push — master ( 40c094...b6a1c4 )
by Wojtek
02:30
created

WholeGroupPso.optimize()   A

Complexity

Conditions 2

Size

Total Lines 17

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 8
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
c 1
b 0
f 0
dl 0
loc 17
rs 9.4285
ccs 8
cts 8
cp 1
crap 2
1
"""Contains WholeGroupPso class."""
2
3 1
from grortir.main.pso.swarm import Swarm
4
5
6 1
class WholeGroupPso(object):
7
    """Optimize whole group."""
8
9 1
    def __init__(self, process, number_of_particles):
10 1
        self.process = process
11 1
        self.number_of_particles = number_of_particles
12
13 1
    def optimize(self, ordered_stages_to_optimize, group_optimization_strategy):
14
        """Optimize whole group of stages.
15
16
         Parameters:
17
            group_optimization_strategy (GroupOptimizationStrategy):
18
                strategy for optimizing groups
19
            ordered_stages_to_optimize (list): List of stages which need
20
                 to be optimized
21
        """
22 1
        swarm = Swarm(self.process, ordered_stages_to_optimize,
23
                      self.number_of_particles)
24 1
        swarm.initialize()
25 1
        group_optimization_strategy.initialize()
26 1
        while group_optimization_strategy.should_continue(swarm.best_particle):
27 1
            swarm.do_single_iteration()
28 1
        swarm.post_processing()
29
        print("Optimization for group finished.")
30