Skip to content

Allow non-linear rates of change between stages #1

@ArnoClaude

Description

@ArnoClaude

Description

Support non-linear parameter evolution across stages instead of only constant growth rates.

Current Behavior

  • User specifies scalar rate of change per parameter
  • Parameters grow via compound rate: value_t = value_0 * (1 + rate)^t
  • Example: demand=10000, rate=0.10 → stage 2: 11000, stage 3: 12100

Proposed Behavior

  • User selects growth type from predefined options:
    • linear: value_0 + rate * t
    • compound: value_0 * (1 + rate)^t (current default)
    • exponential: value_0 * exp(rate * t)
    • custom: user provides list of explicit values per stage
  • Alternatively: accept arbitrary expression string (e.g., "1.5 * x1 + 100")

Implementation Notes

  • Predefined functions are safer/simpler than expression parsing
  • custom list option handles any pattern without parsing complexity
  • Config example:
    demand:
      base: 10000
      growth_type: compound  # or linear, exponential, custom
      rate: 0.10
      # OR for custom:
      # values: [10000, 12000, 15000, 20000]
    

Open Questions

  • Predefined functions sufficient, or need arbitrary expressions?
  • If arbitrary: use sympy for parsing? Security concerns?
  • Should different parameters support different growth types in same run?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions