NextStatNextStat

RL-среда Gymnasium

экспериментально

nextstat.gym предоставляет опциональную обёртку Gymnasium/Gym, которая трактует HistFactory workspace как RL/DOE-среду. Вы предлагаете обновления номинальных yields образца (напр. сигнальную гистограмму) и получаете метрику NextStat как награду.

Установка

pip install nextstat gymnasium numpy

Быстрый старт

from pathlib import Path
from nextstat.gym import make_histfactory_env

ws_json = Path("workspace.json").read_text()

env = make_histfactory_env(
    ws_json,
    channel="singlechannel",
    sample="signal",
    reward_metric="q0",       # максимизировать значимость открытия
    max_steps=64,
    action_scale=0.02,
    action_mode="logmul",     # мультипликативные обновления в лог-пространстве
    init_noise=0.0,
)

obs, info = env.reset(seed=123)
total = 0.0
for _ in range(64):
    action = env.action_space.sample()
    obs, reward, terminated, truncated, info = env.step(action)
    total += float(reward)
    if terminated or truncated:
        break

print("episode reward:", total)

Метрики награды

МетрикаПрофилируется?Описание
nllНет-NLL при фиксированных параметрах (быстро, много шагов/сек)
q0 / z0ДаТестовая статистика открытия / значимость
qmu / zmuДа-qμ / -sqrt(qμ) для оптимизации верхнего предела

Конфигурация

  • action_mode"additive" (прямая дельта) или "logmul" (мультипликативный в лог-пространстве)
  • action_scale — масштабный фактор для действий (по умолчанию 0.02)
  • max_steps — длина эпизода до обрезки
  • init_noise — Гауссов шум, добавляемый к начальным yields при сбросе

Примечания

  • Профильные награды (q0, qmu) выполняют оптимизацию внутри — тяжелее за шаг, чем режим NLL.
  • Совместим с обоими gymnasium (предпочтительно) и устаревшим gym.
  • Среда модифицирует модель на месте, переопределяя номинальные yields одного образца.