Persistent Relational Memory / relational_dynamics_track.py

✓✓ Beats tuned baseline

Raw ⬇ ZIP
 1"""Custom benchmark track: intermittent stable pair relations in dynamics."""
 2META = {"name":"relational_dynamics", "domain":"dynamics", "description":"Multi-agent intermittent-contact regression with stable pair identities and delayed reactivation."}
 3import numpy as np
 4T, P, F = 12, 6, 3
 5
 6def get_dataset(seed, n_train, n_test):
 7    rng = np.random.default_rng(seed)
 8    def make(n):
 9        latent = rng.normal(0, 1, (n, P)).astype(np.float32)
10        x = rng.normal(0, .08, (n, T, P, 2)).astype(np.float32)
11        active = np.zeros((n, T, P), dtype=np.float32)
12        active[:, 0:3, :] = 1
13        active[:, 9:12, :] = 1
14        x[:, 0:3, :, 0] += latent[:, None, :]
15        x[:, 0:3, :, 1] += .25 * latent[:, None, :]
16        seq = np.concatenate([x, active[..., None]], axis=-1)
17        y = (latent.sum(axis=1, keepdims=True) / np.sqrt(P)).astype(np.float32)
18        return seq.reshape(n, -1), y
19    xtr, ytr = make(n_train); xte, yte = make(n_test)
20    return {"xtr":xtr, "ytr":ytr, "xte":xte, "yte":yte,
21            "task":"regression", "metric":"mse", "input_shape":(T*P*F,), "out_dim":1}