Persistent Relational Memory / relational_dynamics_track.py
Beats tuned baseline
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}