File size: 1,283 Bytes
3bf8430
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
from typing import Dict, List, Optional
from ...parameter_controller import ParameterController

class Bridge_ParameterController(ParameterController) :
    def __init__(self, edge_density_list : Optional[List] = None, component_num_density_list : Optional[List] = None, **kwargs) :
        super().__init__(**kwargs)
        self.N = 4

        if edge_density_list is None :
            edge_density_list = [0.02, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9]
        self.edge_density_list = edge_density_list

        if component_num_density_list is None :
            component_num_density_list = [0.05, 0.1, 0.2, 0.3, 0.5, 0.7, 0.8]
        self.component_num_density_list = component_num_density_list

    def update(self) -> None :
        self.N = int(self.N * 1.1 + 1)

    def get_parameter_list(self) -> List[Dict] :
        component_nums = set()
        for component_num_density in self.component_num_density_list :
            component_num = int(component_num_density * self.N)
            if component_num >= 2 :
                component_nums.add(component_num)
        return [dict(N = self.N, edge_density = edge_density, component_num = component_num) for edge_density in self.edge_density_list for component_num in component_nums]