パッケージ mechanics.optimization

クラス OptimizerPipeline

java.lang.Object
mechanics.optimization.OptimizerPipeline

public class OptimizerPipeline extends Object
Orchestrates the two-phase artifact optimization pipeline. Phase 1 – ER Calibration

IterativeSimulator.optimizeER(java.util.function.Function<java.util.Map<java.lang.String, java.lang.Double>, simulation.CombatSimulator>, java.util.function.Consumer<simulation.CombatSimulator>, int) is called with a sim factory that ignores the DPS roll map (null) so the heuristic artifact generator drives substat allocation. After convergence the pipeline inspects the resulting simulator to extract the exact number of liquid ER rolls each character required. These counts are stored in erRollsMap and are used to shrink each character's DPS roll budget in Phase 2. Phase 2 – DPS Hill-Climbing

IterativeSimulator.optimizeJointPartyCrit(java.util.function.Function<java.util.Map<java.lang.String, java.util.Map<model.type.StatType, java.lang.Integer>>, simulation.CombatSimulator>, java.util.function.Consumer<simulation.CombatSimulator>, java.util.Map<java.lang.String, java.util.List<model.type.StatType>>, java.util.Map<java.lang.String, java.lang.Integer>) performs coordinated single-roll swaps across all DPS characters. The sim factory passed to Phase 2 always merges the hill-climber's DPS rolls with the pre-reserved ER rolls via mergeDPSAndER(java.util.Map<java.lang.String, java.util.Map<model.type.StatType, java.lang.Integer>>, java.util.Map<java.lang.String, java.lang.Integer>), ensuring artifact stats are complete without allowing the optimizer to cannibalize ER budget.

The final TotalOptimizationResult contains the converged ER targets and the fully merged party roll map ready for the final simulation.

  • コンストラクタの詳細

    • OptimizerPipeline

      public OptimizerPipeline()
  • メソッドの詳細

    • run

      public static TotalOptimizationResult run(BiFunction<Map<String,Double>,Map<String,Map<StatType,Integer>>,CombatSimulator> simFactory, Consumer<CombatSimulator> rotationRunner, Map<String,List<StatType>> dpsCharsAndStats)
      Runs the full optimization pipeline:
      1. Phase 1 – ER calibration via iterative rotation simulation.
      2. Phase 2 – DPS hill-climbing with ER rolls pre-reserved per character.

      ER roll counts are extracted automatically from the heuristic artifacts produced by Phase 1 — no extra configuration needed. Each character's liquid roll budget in Phase 2 equals 20 - erRolls[char].

      パラメータ:
      simFactory - factory that accepts an ER target map and a DPS roll map and returns a fully configured simulator; either argument may be null during calibration
      rotationRunner - consumer that drives a complete rotation on the simulator
      dpsCharsAndStats - map of charName -> substats to optimize defining which characters participate in Phase 2 and which substats the hill-climber may vary
      戻り値:
      a TotalOptimizationResult containing the converged ER targets and the final merged party roll map