Skip to content

Implement Study module: multi-phase orchestration #30

Description

@jc-macdonald

Summary

Port study.py for multi-phase simulation study orchestration with carry-forward.

Types and Functions to Implement

struct Phase
    name::String
    factors::Vector{Factor}
    design_method::Symbol  # :full, :lhs, :adaptive
    n_trials::Int
    scorer::AbstractScorer
    filter::Function       # e.g. top_k_pareto_filter
end

struct Study
    phases::Vector{Phase}
end
Function Description
run!(study, model) Execute all phases sequentially, carry-forward winners
top_k_pareto_filter(results, k; objectives) Keep top-k Pareto-optimal configurations

Design Notes

  • Phase N's output feeds Phase N+1's input: winners from Phase 1 screening become the reduced factor set for Phase 2's grid, etc.
  • Carry-forward pattern: each Phase stores its ResultsTable; the Study orchestrator feeds phase results into the next phase's factor reduction.
  • The Python version has 3 tiers: Screen → Grid → Adaptive. Julia should keep the same pattern but make it generic.

Acceptance Criteria

  • Two-phase study (screen → grid) executes end-to-end
  • Carry-forward correctly reduces factor set
  • Phase results accessible after study completion

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions