suboptimumg.sweep.pack_optimizer_models#

pydantic model suboptimumg.sweep.pack_optimizer_models.EvaluationRecord[source]#

Bases: BaseModel

Record of a single objective function evaluation.

Config:
  • frozen: bool = True

  • extra: str = forbid

  • arbitrary_types_allowed: bool = True

Fields:
Validators:
field param_names: List[str] [Required]#

Names of the modified parameters

Validated by:
field params: ndarray[tuple[Any, ...], dtype[TypeVar(_ScalarT, bound= generic)]] [Required]#

List of modified parameters

Validated by:
field mass: float [Required]#

Vehicle mass at this evaluation (kg)

Validated by:
field capacity: float [Required]#

Battery capacity at this evaluation (kWh)

Validated by:
field score: float [Required]#

Penalized score used by optimizer (points - penalty)

Validated by:
field feasible: bool [Required]#

Whether the solution is feasible (i.e., consumed energy < capacity)

Validated by:
field competition_results: CompetitionResults | None = None#

Competition Results

Validated by:
validator check_consistency  »  all fields[source]#
pydantic model suboptimumg.sweep.pack_optimizer_models.FixedPackConfig[source]#

Bases: PackOptimizerConfig

Configuration for fixed-mass optimization mode.

Config:
  • frozen: bool = True

  • extra: str = forbid

Fields:
Validators:
  • _validate_parameters » parameters

field capacity: float [Required]#

Fixed battery capacity (kWh) when fixed_pack_mode=True

pydantic model suboptimumg.sweep.pack_optimizer_models.PackOptimizationData[source]#

Bases: BaseModel

Output of a single pack optimization run.

Config:
  • frozen: bool = True

  • extra: str = forbid

  • arbitrary_types_allowed: bool = True

Fields:
field optimal_evaluation: EvaluationRecord | None = None#

Best evaluation record by penalized score

field evaluation_history: List[EvaluationRecord] [Required]#

History of all evaluations during the optimization

pydantic model suboptimumg.sweep.pack_optimizer_models.PackOptimizerConfig[source]#

Bases: BaseModel

Configuration for the pack optimizer.

Config:
  • frozen: bool = True

  • extra: str = forbid

Fields:
field parameters: List[SweepParamConfig] [Required]#

Explicit list of parameters to optimize

field max_iterations: int = 100#

Maximum number of DE generations

Constraints:
  • gt = 0

field population_size: int = 15#

DE population size multiplier

Constraints:
  • gt = 0

field seed: int | None = 42#

Random seed for reproducibility

field capacity_margin: float = 0.1#

Safety margin subtracted from battery capacity (kWh)

Constraints:
  • ge = 0