Spaces:
Sleeping
Sleeping
File size: 1,145 Bytes
6e72b95 e75c8ce 6e72b95 e75c8ce 6e72b95 e75c8ce 6e72b95 e75c8ce 6e72b95 e75c8ce 6e72b95 e75c8ce 6e72b95 e75c8ce | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import random
from env.tasks import get_task
def generate_env(task_id, rng=None):
"""Build initial items and hidden dynamics. Use *rng* for reproducible episodes."""
r = rng if rng is not None else random
config = get_task(task_id)
state_items = []
hidden_items = []
current_time = 0
for i in range(config["num_items"]):
base_ttl = r.randint(3, 8)
update_freq = r.uniform(0.1, config["volatility"])
last_update = r.randint(0, 3)
age = current_time - last_update
is_stale = age > base_ttl or r.random() < update_freq
last_result = "stale" if is_stale and r.random() < 0.7 else "hit"
state_items.append(
{
"key": f"item_{i}",
"age": max(age, 0),
"access_count": r.randint(1, 20),
"last_result": last_result,
}
)
hidden_items.append(
{
"base_ttl": base_ttl,
"update_freq": update_freq,
"last_update": last_update,
}
)
return state_items, hidden_items, current_time
|