Observability-Gated Spectral Phase Initialization / phase_track.py

✓✓ Beats tuned baseline

Raw ⬇ ZIP
 1import numpy as np
 2
 3META = {
 4    "name": "phase_synchronization_regression",
 5    "domain": "geometry/graph synchronization",
 6    "description": "Multi-view rotated node vectors with noisy pairwise relative-phase observations; predict a gauge-invariant latent regression target.",
 7}
 8N = 8
 9EDGES = [(i, j) for i in range(N) for j in range(i + 1, N)]
10
11
12def _make(seed, n):
13    rng = np.random.default_rng(seed)
14    theta = rng.uniform(-np.pi, np.pi, N)
15    theta -= theta[0]
16    phi = np.array([theta[i] - theta[j] + rng.normal(0.0, 0.28) for i, j in EDGES], dtype=np.float32)
17    x = np.empty((n, N, 2), dtype=np.float32)
18    y = np.empty(n, dtype=np.float32)
19    c, s = np.cos(theta).astype(np.float32), np.sin(theta).astype(np.float32)
20    for k in range(n):
21        u = rng.normal(0.0, 1.0, (N, 2)).astype(np.float32)
22        x[k, :, 0] = c * u[:, 0] - s * u[:, 1]
23        x[k, :, 1] = s * u[:, 0] + c * u[:, 1]
24        y[k] = np.tanh(u[:, 0].sum() / 3.0) + 0.25 * np.sin(u[:, 1].sum())
25    obs = np.tile(phi, (n, 1)).astype(np.float32)
26    return np.concatenate([x.reshape(n, -1), obs], axis=1), y[:, None]
27
28
29def get_dataset(seed, n_train, n_test):
30    xtr, ytr = _make(seed, n_train)
31    xte, yte = _make(seed + 5000, n_test)
32    return {"xtr": xtr, "ytr": ytr, "xte": xte, "yte": yte,
33            "task": "regression", "metric": "mse", "out_dim": 1}