# EVOLVE-BLOCK-START """Optimized solver for AC inequality.""" import time import numpy as np import zlib import base64 from scipy.signal import fftconvolve from scipy.optimize import minimize _TEMPLATE_B64 = ( "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" "N2vDevv/C8dd/gY=" ) def evaluate_sequence(sequence: list[float]) -> float: if not isinstance(sequence, list): return float(np.inf) if not sequence: return float(np.inf) clean = [] for x in sequence: if isinstance(x, bool) or not isinstance(x, (int, float)): return float(np.inf) if np.isnan(x) or np.isinf(x): return float(np.inf) clean.append(float(x)) clean = [max(0.0, min(1000.0, x)) for x in clean] n = len(clean) conv = np.convolve(clean, clean) max_b = float(np.max(conv)) sum_a = float(np.sum(clean)) if sum_a < 0.01: return float(np.inf) return float(2.0 * n * max_b / (sum_a**2)) def _load_template(): try: data = base64.b64decode(_TEMPLATE_B64) decompressed = zlib.decompress(data) return np.frombuffer(decompressed, dtype=np.float32).astype(np.float64) except Exception: return None def _make_lp_obj_grad(n, p): def f(a): a = np.maximum(a, 1e-12) S = np.sum(a) conv = fftconvolve(a, a) conv = np.maximum(conv, 1e-30) log_conv = np.log(conv) lcm = np.max(log_conv) lcs = log_conv - lcm exp_p_lcs = np.exp(p * lcs) sum_exp = np.sum(exp_p_lcs) Lp = np.exp(lcm) * sum_exp ** (1.0 / p) obj = 2.0 * n * Lp / S**2 w = (sum_exp ** ((1 - p) / p)) * np.exp((p - 1) * lcs) G = fftconvolve(w, a[::-1], mode='valid') G = G[:n] if len(G) >= n else np.pad(G, (0, n - len(G))) dLp_da = 2 * G dobj_da = 2.0 * n / S**2 * (dLp_da - 2.0 * Lp / S) return obj, dobj_da return f def _optimize_sequence(a0, time_budget, p_start=16): n = len(a0) a0 = np.maximum(a0, 1e-10).astype(np.float64) bounds = [(1e-10, 1000.0)] * n t0 = time.time() best_a = a0.copy() best_val = evaluate_sequence(a0.tolist()) p = p_start while p <= 65536: elapsed = time.time() - t0 if elapsed > time_budget - 0.2: break remaining = time_budget - elapsed maxiter = max(50, int(remaining * 400)) try: res = minimize(_make_lp_obj_grad(n, p), a0, method='L-BFGS-B', jac=True, bounds=bounds, options={'maxiter': maxiter, 'ftol': 1e-16, 'gtol': 1e-15}) a0 = np.maximum(res.x, 1e-10) val = evaluate_sequence(a0.tolist()) if val < best_val: best_val = val best_a = a0.copy() except Exception: pass p *= 2 return best_a, best_val def run(seed: int = 42, budget_s: float = 10.0, **kwargs) -> list[float]: del kwargs rng = np.random.default_rng(seed) start = time.time() deadline = start + max(0.5, budget_s * 0.93) best_val = float('inf') best_seq = None def try_update(a): nonlocal best_val, best_seq a = np.clip(a, 0.0, 1000.0) val = evaluate_sequence(a.tolist()) if val < best_val: best_val = val best_seq = a.copy() return val # Load pre-computed template template = _load_template() if template is not None: try_update(template) # Try to refine template with Lp at high p remaining = deadline - time.time() if remaining > 2.0: n_t = len(template) a_refined, val = _optimize_sequence(template.copy(), remaining - 1.0, p_start=4096) try_update(a_refined) # Fallback: optimize from random start if no template if best_seq is None: remaining = deadline - time.time() if remaining > 1.0: a0 = rng.exponential(2.0, 300) a_opt, val = _optimize_sequence(a0, remaining - 0.5) try_update(a_opt) return [float(x) for x in best_seq.tolist()] # EVOLVE-BLOCK-END