graph TD
A[Orchestrator: Tick t] --> B[Call increment_hunger_vector]
B --> C[Loop through all user_id keys in RAM]
C --> D["New M_hunger = min(1.0, old + rate)"]
D --> E[Atoimic pointer rewrite in memory]
E --> F{Next user_id?}
F -- Yes --> C
F -- No --> G[Batch metabolic step complete]
Метод increment_hunger_vector()
In-Memory Twin Registry: Массовый пакетный инкремент метаболического истощения
1. Functional Purpose
The increment_hunger_vector method serves as the primary metabolic and physiological driver within the system runtime. Executed as a batch operation in memory by the macro-orchestrator on every intra-day tick (t), this method forces a linear increment of the dynamic hunger parameter ((M_{})) for all currently active digital twin states. This continuous drift shifts the probability density calculated by the stochastic engine toward food-related intents.
2. Mathematical Modeling of Metabolic Drift
To simulate realistic human behavior, the simulator requires a baseline continuous internal trigger. Without external interventions or a consumption action, the metabolic exhaustion of each twin accumulates linearly over time. On each micro-tick \(t\), the method recalculates the state vector element as follows:
\[M_{\text{hunger}}(t) = \min(1.0, M_{\text{hunger}}(t - 1) + \Delta m)\]
Where: * \(\Delta m\) (\(rate\)) — the constant step of metabolic depletion per simulation tick (calculated by the orchestrator based on time discretization, e.g., 15 simulated minutes). * \(1.0\) — the strict upper boundary representing total starvation, forcing the maximum probability scale into the logistical normalization phase.
3. Method Specification (IT Contract)
- Call Type: Iterative, batch memory update (RAM-Batch Write).
- Executor:
In-Memory Twin Registry Service.
3.1. Input Parameters (Call Arguments)
| Parameter | Data Type | Required | Description |
|---|---|---|---|
rate |
Float | Yes | Metabolic depletion coefficient added to the vector on each tick. |
3.2. Output Data (Return Value)
void— The method mutates the properties of existing objects within the active In-Memory memory pool in-place.
4. Operational Flow Diagram (Mermaid)
5. Production Prototype Implementation (Python)
class RegistryHungerIncrementer:
def __init__(self, states_storage: dict):
# Bind by reference to the centralized In-Memory dictionary
self._states = states_storage
def increment_hunger_vector(self, rate: float) -> None:
"""
Performs a high-speed batch increment of metabolic parameters
across all digital twin vectors locked in host RAM.
"""
if rate <= 0.0:
raise ValueError("Коэффициент метаболического сдвига должен быть строго больше нуля.")
for user_id, twin_state in self._states.items():
# Calculate linear increment with upper saturation limit
new_hunger = min(1.0, twin_state.m_hunger + rate)
# Atomic swap of the property using Pydantic update mechanics
self._states[user_id] = twin_state.copy(update={"m_hunger": new_hunger})