STAR
Cal STAR — firmware, DAQ server, and engine design
Loading...
Searching...
No Matches
test_hybrid_optimizer.py
Go to the documentation of this file.
2import numpy as np
3import sys
4import os
5
6# Add project root to path
7sys.path.append(os.getcwd())
8
9from engine.optimizer.layers.layer1_static_optimization import run_hybrid_optimization
10from engine.pipeline.config_schemas import HybridOptimizerConfig
11
13 """Rosenbrock function (standard benchmark)."""
14 return sum(100.0*(x[1:]-x[:-1]**2.0)**2.0 + (1-x[:-1])**2.0)
15
17 print("Testing Hybrid Optimizer on Rosenbrock function (dim=5)...")
18
19 dim = 5
20 bounds = [(-5.0, 5.0)] * dim
21 x0 = np.zeros(dim)
22
23 config = HybridOptimizerConfig(
24 elite_k=20,
25 block_method="corr_greedy", # Test correlation method
26 num_blocks=2,
27 cycles=2,
28 per_block_budget_fraction=0.6,
29 lambda0=0.1,
30 refresh_every_pass=True,
31 refresh_budget_fraction=0.1,
32 refresh_sigma_scale=0.2
33 )
34
35 # Run with small budget
36 best_x, best_f, evals = run_hybrid_optimization(
37 rosenbrock,
38 bounds,
39 x0,
40 config,
41 total_budget=500,
42 logger=None # Print to stdout
43 )
44
45 print(f"\nOptimization Complete:")
46 print(f"Best f: {best_f:.6f}")
47 print(f"Best x: {best_x}")
48 print(f"Evals: {evals}")
49
50 if best_f < 1.0:
51 print("SUCCESS: Found reasonable solution.")
52 else:
53 print("WARNING: Solution might be suboptimal (expected for very low budget).")
54
55if __name__ == "__main__":