JustinTX's picture
Add files using upload-large-folder tool
2facf1f verified
# 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