diff --git a/neat/locals/overload/mhod/multisize_estimation.py b/neat/locals/overload/mhod/multisize_estimation.py index 57b7887..3a20138 100644 --- a/neat/locals/overload/mhod/multisize_estimation.py +++ b/neat/locals/overload/mhod/multisize_estimation.py @@ -268,7 +268,8 @@ def init_request_windows(number_of_states, max_window_size): :return: The initialized request windows data structure. :rtype: list(deque) """ - return number_of_states * [deque([], max_window_size)] + return [deque([], max_window_size) + for _ in range(number_of_states)] @contract @@ -284,12 +285,12 @@ def init_variances(window_sizes, number_of_states): :return: The initialized variances data structure. :rtype: list(list(dict)) """ - data = dict(zip(window_sizes, len(window_sizes) * [1.0])) variances = [] for i in range(number_of_states): variances.append([]) for j in range(number_of_states): - variances[i].append(dict(data)) + variances[i].append(dict(zip(window_sizes, + len(window_sizes) * [1.0]))) return variances @@ -306,12 +307,12 @@ def init_deque_structure(window_sizes, number_of_states): :return: The initialized 3 level deque data structure. :rtype: list(list(dict)) """ - data = dict((size, deque([], size)) for size in window_sizes) structure = [] for i in range(number_of_states): structure.append([]) for j in range(number_of_states): - structure[i].append(dict(data)) + structure[i].append(dict((size, deque([], size)) + for size in window_sizes)) return structure diff --git a/tests/locals/overload/mhod/test_core.py b/tests/locals/overload/mhod/test_core.py index 2dfb477..c0e16bb 100644 --- a/tests/locals/overload/mhod/test_core.py +++ b/tests/locals/overload/mhod/test_core.py @@ -110,3 +110,19 @@ class Core(TestCase): def test_issue_command_deterministic(self): self.assertEqual(c.issue_command_deterministic([1]), False) self.assertEqual(c.issue_command_deterministic([]), True) + + def test_mhod(self): + from pprint import pprint + state_config = [0.99] + otf = 0.2 + window_sizes = [30, 40, 50, 60, 70, 80, 90, 100] + bruteforce_step = 0.2 + learning_steps = 30 + time_step = 300 + migration_time = 20. + state = c.init_state(window_sizes, 2) + utilization = [0.859] + + pprint(state) + pprint(c.mhod(state_config, otf, window_sizes, bruteforce_step, learning_steps, + time_step, migration_time, utilization, state))