| @@ 24-55 (lines=32) @@ | ||
| 21 | } |
|
| 22 | ||
| 23 | ||
| 24 | @pytest.mark.parametrize(*optimizers_smbo) |
|
| 25 | def test_memory_Warm_start_smbo_0(Optimizer_smbo): |
|
| 26 | optimizer1 = GridSearchOptimizer() |
|
| 27 | optimizer2 = Optimizer_smbo() |
|
| 28 | ||
| 29 | opt_strat = CustomOptimizationStrategy() |
|
| 30 | opt_strat.add_optimizer(optimizer1, duration=0.8) |
|
| 31 | opt_strat.add_optimizer(optimizer2, duration=0.2) |
|
| 32 | ||
| 33 | n_iter = 100 |
|
| 34 | ||
| 35 | hyper = Hyperactive() |
|
| 36 | hyper.add_search( |
|
| 37 | objective_function, |
|
| 38 | search_space, |
|
| 39 | optimizer=opt_strat, |
|
| 40 | n_iter=n_iter, |
|
| 41 | memory=True, |
|
| 42 | ) |
|
| 43 | hyper.run() |
|
| 44 | ||
| 45 | search_data = hyper.search_data(objective_function) |
|
| 46 | ||
| 47 | optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"] |
|
| 48 | optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"] |
|
| 49 | ||
| 50 | assert len(search_data) == n_iter |
|
| 51 | ||
| 52 | assert len(optimizer1.search_data) == 80 |
|
| 53 | assert len(optimizer2.search_data) == 20 |
|
| 54 | ||
| 55 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 56 | ||
| @@ 25-57 (lines=33) @@ | ||
| 22 | } |
|
| 23 | ||
| 24 | ||
| 25 | @pytest.mark.parametrize(*optimizers) |
|
| 26 | def test_strategy_combinations_0(Optimizer): |
|
| 27 | """Test custom optimization strategy with multiple optimizers.""" |
|
| 28 | optimizer1 = Optimizer() |
|
| 29 | optimizer2 = HillClimbingOptimizer() |
|
| 30 | ||
| 31 | opt_strat = CustomOptimizationStrategy() |
|
| 32 | opt_strat.add_optimizer(optimizer1, duration=0.5) |
|
| 33 | opt_strat.add_optimizer(optimizer2, duration=0.5) |
|
| 34 | ||
| 35 | n_iter = 4 |
|
| 36 | ||
| 37 | hyper = Hyperactive() |
|
| 38 | hyper.add_search( |
|
| 39 | objective_function, |
|
| 40 | search_space, |
|
| 41 | optimizer=opt_strat, |
|
| 42 | n_iter=n_iter, |
|
| 43 | memory=False, |
|
| 44 | initialize={"random": 1}, |
|
| 45 | ) |
|
| 46 | hyper.run() |
|
| 47 | ||
| 48 | search_data = hyper.search_data(objective_function) |
|
| 49 | ||
| 50 | optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"] |
|
| 51 | optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"] |
|
| 52 | ||
| 53 | assert len(search_data) == n_iter |
|
| 54 | ||
| 55 | assert len(optimizer1.search_data) == 2 |
|
| 56 | assert len(optimizer2.search_data) == 2 |
|
| 57 | ||
| 58 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 59 | ||
| @@ 91-123 (lines=33) @@ | ||
| 88 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 89 | ||
| 90 | ||
| 91 | @pytest.mark.parametrize(*optimizers) |
|
| 92 | @pytest.mark.parametrize(*optimizers_strat) |
|
| 93 | def test_strategy_combinations_2(Optimizer, Optimizer_strat): |
|
| 94 | optimizer1 = Optimizer() |
|
| 95 | optimizer2 = Optimizer_strat() |
|
| 96 | ||
| 97 | opt_strat = CustomOptimizationStrategy() |
|
| 98 | opt_strat.add_optimizer(optimizer1, duration=0.9) |
|
| 99 | opt_strat.add_optimizer(optimizer2, duration=0.1) |
|
| 100 | ||
| 101 | n_iter = 10 |
|
| 102 | ||
| 103 | hyper = Hyperactive() |
|
| 104 | hyper.add_search( |
|
| 105 | objective_function, |
|
| 106 | search_space, |
|
| 107 | optimizer=opt_strat, |
|
| 108 | n_iter=n_iter, |
|
| 109 | memory=False, |
|
| 110 | ) |
|
| 111 | hyper.run() |
|
| 112 | ||
| 113 | search_data = hyper.search_data(objective_function) |
|
| 114 | ||
| 115 | optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"] |
|
| 116 | optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"] |
|
| 117 | ||
| 118 | assert len(search_data) == n_iter |
|
| 119 | ||
| 120 | assert len(optimizer1.search_data) == 9 |
|
| 121 | assert len(optimizer2.search_data) == 1 |
|
| 122 | ||
| 123 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 124 | ||
| 125 | ||
| 126 | @pytest.mark.parametrize(*optimizers) |
|
| @@ 56-88 (lines=33) @@ | ||
| 53 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 54 | ||
| 55 | ||
| 56 | @pytest.mark.parametrize(*optimizers) |
|
| 57 | @pytest.mark.parametrize(*optimizers_strat) |
|
| 58 | def test_strategy_combinations_1(Optimizer, Optimizer_strat): |
|
| 59 | optimizer1 = Optimizer() |
|
| 60 | optimizer2 = Optimizer_strat() |
|
| 61 | ||
| 62 | opt_strat = CustomOptimizationStrategy() |
|
| 63 | opt_strat.add_optimizer(optimizer1, duration=0.1) |
|
| 64 | opt_strat.add_optimizer(optimizer2, duration=0.9) |
|
| 65 | ||
| 66 | n_iter = 10 |
|
| 67 | ||
| 68 | hyper = Hyperactive() |
|
| 69 | hyper.add_search( |
|
| 70 | objective_function, |
|
| 71 | search_space, |
|
| 72 | optimizer=opt_strat, |
|
| 73 | n_iter=n_iter, |
|
| 74 | memory=False, |
|
| 75 | ) |
|
| 76 | hyper.run() |
|
| 77 | ||
| 78 | search_data = hyper.search_data(objective_function) |
|
| 79 | ||
| 80 | optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"] |
|
| 81 | optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"] |
|
| 82 | ||
| 83 | assert len(search_data) == n_iter |
|
| 84 | ||
| 85 | assert len(optimizer1.search_data) == 1 |
|
| 86 | assert len(optimizer2.search_data) == 9 |
|
| 87 | ||
| 88 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 89 | ||
| 90 | ||
| 91 | @pytest.mark.parametrize(*optimizers) |
|
| @@ 21-53 (lines=33) @@ | ||
| 18 | } |
|
| 19 | ||
| 20 | ||
| 21 | @pytest.mark.parametrize(*optimizers) |
|
| 22 | @pytest.mark.parametrize(*optimizers_strat) |
|
| 23 | def test_strategy_combinations_0(Optimizer, Optimizer_strat): |
|
| 24 | optimizer1 = Optimizer() |
|
| 25 | optimizer2 = Optimizer_strat() |
|
| 26 | ||
| 27 | opt_strat = CustomOptimizationStrategy() |
|
| 28 | opt_strat.add_optimizer(optimizer1, duration=0.5) |
|
| 29 | opt_strat.add_optimizer(optimizer2, duration=0.5) |
|
| 30 | ||
| 31 | n_iter = 30 |
|
| 32 | ||
| 33 | hyper = Hyperactive() |
|
| 34 | hyper.add_search( |
|
| 35 | objective_function, |
|
| 36 | search_space, |
|
| 37 | optimizer=opt_strat, |
|
| 38 | n_iter=n_iter, |
|
| 39 | memory=False, |
|
| 40 | ) |
|
| 41 | hyper.run() |
|
| 42 | ||
| 43 | search_data = hyper.search_data(objective_function) |
|
| 44 | ||
| 45 | optimizer1 = hyper.opt_pros[0].optimizer_setup_l[0]["optimizer"] |
|
| 46 | optimizer2 = hyper.opt_pros[0].optimizer_setup_l[1]["optimizer"] |
|
| 47 | ||
| 48 | assert len(search_data) == n_iter |
|
| 49 | ||
| 50 | assert len(optimizer1.search_data) == 15 |
|
| 51 | assert len(optimizer2.search_data) == 15 |
|
| 52 | ||
| 53 | assert optimizer1.best_score <= optimizer2.best_score |
|
| 54 | ||
| 55 | ||
| 56 | @pytest.mark.parametrize(*optimizers) |
|