docstr: Get the optimization trace with respect to trial progressions instead of
  `trial_indices` (which is the behavior used in `get_trace`). Note that this
  method does not take into account the parallelism of trials and essentially
  assumes that trials are run one after another, in the sense that it considers
  the total number of progressions "used" at the end of trial k to be the
  cumulative progressions "used" in trials 0,...,k. This method assumes that the
  final value of a particular trial is used and does not take the best value
  of a trial over its progressions.
  
  The best observed value is computed at each value in `bins` (see below for
  details). If `bins` is not supplied, the method defaults to a heuristic of
  approximately `NUM_BINS_PER_TRIAL` per trial, where each trial is assumed to
  run until maximum progression (inferred from the data).
  
  Args:
      experiment: The experiment to get the trace for.
      optimization_config: An optional optimization config to use for computing
          the trace. This allows computing the traces under different objectives
          or constraints without having to modify the experiment.
      bins: A list progression values at which to calculate the best observed
          value. The best observed value at bins[i] is defined as the value
          observed in trials 0,...,j where j = largest trial such that the total
          progression in trials 0,...,j is less than bins[i].
      final_progression_only: If True, considers the value of the last step to be
          the value of the trial. If False, considers the best along the curve to
          be the value of the trial.
  
  Returns:
      A tuple containing (1) the list of observed hypervolumes or best values and
      (2) a list of associated x-values (i.e., progressions) useful for plotting.
docstr_tok: ["Get","the","optimization","trace","with","respect","to","trial","progressions","instead","of","`","trial_indices","`","(","which","is","the","behavior","used","in","`","get_trace","`",")",".","Note","that","this","method","does","not","take","into","account","the","parallelism","of","trials","and","essentially","assumes","that","trials","are","run","one","after","another",",","in","the","sense","that","it","considers","the","total","number","of","progressions","``","used","''","at","the","end","of","trial","k","to","be","the","cumulative","progressions","``","used","''","in","trials","0",",","...",",","k.","This","method","assumes","that","the","final","value","of","a","particular","trial","is","used","and","does","not","take","the","best","value","of","a","trial","over","its","progressions",".","The","best","observed","value","is","computed","at","each","value","in","`","bins","`","(","see","below","for","details",")",".","If","`","bins","`","is","not","supplied",",","the","method","defaults","to","a","heuristic","of","approximately","`","NUM_BINS_PER_TRIAL","`","per","trial",",","where","each","trial","is","assumed","to","run","until","maximum","progression","(","inferred","from","the","data",")",".","Args",":","experiment",":","The","experiment","to","get","the","trace","for",".","optimization_config",":","An","optional","optimization","config","to","use","for","computing","the","trace",".","This","allows","computing","the","traces","under","different","objectives","or","constraints","without","having","to","modify","the","experiment",".","bins",":","A","list","progression","values","at","which","to","calculate","the","best","observed","value",".","The","best","observed","value","at","bins","[","i","]","is","defined","as","the","value","observed","in","trials","0",",","...",",","j","where","j","=","largest","trial","such","that","the","total","progression","in","trials","0",",","...",",","j","is","less","than","bins","[","i","]",".","final_progression_only",":","If","True",",","considers","the","value","of","the","last","step","to","be","the","value","of","the","trial",".","If","False",",","considers","the","best","along","the","curve","to","be","the","value","of","the","trial",".","Returns",":","A","tuple","containing","(","1",")","the","list","of","observed","hypervolumes","or","best","values","and","(","2",")","a","list","of","associated","x-values","(","i.e.",",","progressions",")","useful","for","plotting","."]
code: def get_trace_by_progression(
      optimization_config: Optional[OptimizationConfig] = None,
      bins: Optional[List[float]] = None,
      final_progression_only: bool = False,
  ) -> Tuple[List[float], List[float]]:
      """Get the optimization trace with respect to trial progressions instead of
      `trial_indices` (which is the behavior used in `get_trace`). Note that this
      method does not take into account the parallelism of trials and essentially
      assumes that trials are run one after another, in the sense that it considers
      the total number of progressions "used" at the end of trial k to be the
      cumulative progressions "used" in trials 0,...,k. This method assumes that the
      final value of a particular trial is used and does not take the best value
      of a trial over its progressions.
  
      The best observed value is computed at each value in `bins` (see below for
      details). If `bins` is not supplied, the method defaults to a heuristic of
      approximately `NUM_BINS_PER_TRIAL` per trial, where each trial is assumed to
      run until maximum progression (inferred from the data).
  
      Args:
          experiment: The experiment to get the trace for.
          optimization_config: An optional optimization config to use for computing
              the trace. This allows computing the traces under different objectives
              or constraints without having to modify the experiment.
          bins: A list progression values at which to calculate the best observed
              value. The best observed value at bins[i] is defined as the value
              observed in trials 0,...,j where j = largest trial such that the total
              progression in trials 0,...,j is less than bins[i].
          final_progression_only: If True, considers the value of the last step to be
              the value of the trial. If False, considers the best along the curve to
              be the value of the trial.
  
      Returns:
          A tuple containing (1) the list of observed hypervolumes or best values and
          (2) a list of associated x-values (i.e., progressions) useful for plotting.
      """
      pass
  
imports: from abc import ABCMeta, abstractmethod
  from functools import partial
  from logging import Logger
  from typing import Dict, Iterable, List, Optional, Tuple
  import numpy
  import torch
  from ax.core.experiment import Experiment
  from ax.core.map_data import MapData
  from ax.core.objective import ScalarizedObjective
  from ax.core.optimization_config import MultiObjectiveOptimizationConfig, OptimizationConfig
  from ax.core.types import TModelPredictArm, TParameterization
  from ax.modelbridge.generation_strategy import GenerationStrategy
  from ax.modelbridge.modelbridge_utils import extract_objective_thresholds, extract_objective_weights, extract_outcome_constraints, observed_hypervolume, predicted_hypervolume, validate_and_apply_final_transform
  from ax.modelbridge.registry import get_model_from_generator_run, ModelRegistryBase
  from ax.modelbridge.torch import TorchModelBridge
  from ax.modelbridge.transforms.derelativize import Derelativize
  from ax.models.torch.botorch_moo_defaults import get_outcome_constraint_transforms, get_weighted_mc_objective_and_objective_thresholds
  from ax.plot.pareto_utils import get_tensor_converter_model
  from ax.service.utils import best_point
  from ax.service.utils.best_point import extract_Y_from_data, fill_missing_thresholds_from_nadir
  from ax.utils.common.logger import get_logger
  from ax.utils.common.typeutils import checked_cast, not_none
  from botorch.utils.multi_objective.box_decompositions import DominatedPartitioning
label_desc: Use image node_id 6 for calling the BestPointMixin obj's underlying member method code with example usage: obj.get_trace_by_progression(optimization_config, bins, final_progression_only) without return types