Environmental Policies

Overview

Environmental policies in the Proxima simulation are designed to enforce adaptive behaviors based on environmental conditions, such as dust coverage on the lunar surface. These policies monitor key metrics from the EvaluationEngine and apply corrective actions (e.g., throttling sector activities) to maintain system stability and meet long-term goals.

The primary environmental policy is the Dust Coverage Throttle Policy, which dynamically adjusts operational tempo in response to increasing dust levels. This prevents excessive environmental degradation while allowing necessary activities to continue.

Dust Coverage Throttle Policy

Purpose

The Dust Coverage Throttle Policy (PLCY-DUST-THROTTLE) monitors the industrial dust coverage metric (IND-DUST-COV) and applies proportional throttling to affected sectors (e.g., science and manufacturing). Throttling reduces activity levels to mitigate further dust accumulation, ensuring the simulation can achieve dust-related goals without catastrophic environmental impact.

Key Parameters

  • Metric ID: IND-DUST-COV (Industrial Dust Coverage)

  • Affected Sectors: Configurable list (default: ["science", "manufacturing"])

  • Throttle Factor (\(\theta_{\text{max}}\)): Maximum throttle applied when dust levels are at their worst (default: 0.8, meaning 80% reduction in activity)

  • Throttle Start Ratio (\(r_{\text{start}}\)): Ratio of the target dust level where throttling begins (default: 0.7, i.e., 70% of target)

Operational Logic

The policy operates in a proactive manner:

  1. Monitor Dust Levels: Retrieve current dust coverage (\(D_{\text{current}}\)) from the EvaluationResult.

  2. Calculate Throttling: Determine the throttle factor based on dust levels relative to the target.

  3. Apply Throttling: Set the throttle factor on affected sectors to reduce their operational tempo.

Equations

Throttle Start Level

The level at which throttling begins is calculated as:

\[D_{\text{start}} = D_{\text{target}} \times r_{\text{start}}\]

Where:

  • \(D_{\text{target}}\): The target dust coverage from the goal definition.

  • \(r_{\text{start}}\): The throttle start ratio (default: 0.7).

Throttle Factor Calculation

The throttle factor (\(\theta\)) is computed linearly between \(D_{\text{start}}\) and \(D_{\text{target}}\):

\[\begin{split}\theta = \begin{cases} 0 & \text{if } D_{\text{current}} \leq D_{\text{start}} \\ \min\left(1.0, \frac{D_{\text{current}} - D_{\text{start}}}{D_{\text{target}} - D_{\text{start}}}\right) \times \theta_{\text{max}} & \text{if } D_{\text{start}} < D_{\text{current}} < D_{\text{target}} \\ \theta_{\text{max}} & \text{if } D_{\text{current}} \geq D_{\text{target}} \end{cases}\end{split}\]

Where:

  • \(D_{\text{current}}\): Current dust coverage value.

  • \(\theta_{\text{max}}\): Maximum throttle factor (default: 0.8).

Score Integration

The policy also considers the metric score (\(S\)) from the EvaluationResult for logging and potential future enhancements:

\[S = f(D_{\text{current}}, D_{\text{target}})\]

Where \(f\) is the scoring function defined in the EvaluationEngine (e.g., based on proximity to target).

Example Scenario

Suppose the target dust coverage is 1.0, and current dust is 0.8:

  • \(D_{\text{start}} = 1.0 \times 0.7 = 0.7\)

  • Since 0.8 > 0.7, throttling applies: \(\theta = \min(1.0, \frac{0.8 - 0.7}{1.0 - 0.7}) \times 0.8 = 0.267\)

  • Affected sectors (e.g., science) have their throttle factor set to 0.267, reducing activity by ~27%.

Configuration

The policy can be customized via its constructor:

policy = DustCoverageThrottlePolicy(
    metric_id="IND-DUST-COV",
    sectors=["science", "manufacturing"],
    throttle_factor=0.8,
    throttle_start_ratio=0.7
)

Effects and Logging

Upon application, the policy returns a dictionary of effects:

  • metric_id: The monitored metric.

  • score: Current metric score.

  • throttle_factor: Applied throttle value.

  • applied_to: List of sectors affected.

Logs are generated for transparency, e.g.:

🌪️ DUST POLICY: dust=0.800, target=1.000, start=0.700, score=0.800, throttle=0.267
🔧 Set science throttle to 0.267

Future Enhancements

  • Multi-Metric Policies: Extend to monitor additional environmental metrics (e.g., radiation levels).

  • Adaptive Ratios: Dynamically adjust \(r_{\text{start}}\) based on simulation history.

  • Sector-Specific Throttling: Apply different throttle factors per sector based on their environmental impact.

This policy ensures the simulation balances operational needs with environmental sustainability, preventing runaway dust accumulation while allowing progress toward goals.