Skip to content

Implement Study module: multi-phase orchestration #30

@jc-macdonald

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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions