class_docstr: Class for experiment with multiple trial types.
  
  A canonical use case for this is tuning a large production system
  with limited evaluation budget and a simulator which approximates
  evaluations on the main system. Trial deployment and data fetching
  is separate for the two systems, but the final data is combined and
  fed into multi-task models.
  
  See the Multi-Task Modeling tutorial for more details.
  
  Attributes:
      name: Name of the experiment.
      description: Description of the experiment.
class_docstr_tok: ["Class","for","experiment","with","multiple","trial","types",".","A","canonical","use","case","for","this","is","tuning","a","large","production","system","with","limited","evaluation","budget","and","a","simulator","which","approximates","evaluations","on","the","main","system",".","Trial","deployment","and","data","fetching","is","separate","for","the","two","systems",",","but","the","final","data","is","combined","and","fed","into","multi-task","models",".","See","the","Multi-Task","Modeling","tutorial","for","more","details",".","Attributes",":","name",":","Name","of","the","experiment",".","description",":","Description","of","the","experiment","."]
docstr: Update the default runner for an existing trial_type.
  
  Args:
      trial_type: The new trial_type to be added.
      runner: The new runner for trials of this type.
docstr_tok: ["Update","the","default","runner","for","an","existing","trial_type",".","Args",":","trial_type",":","The","new","trial_type","to","be","added",".","runner",":","The","new","runner","for","trials","of","this","type","."]
code: def update_runner(
      self, trial_type: str, runner: Runner
  ) -> "MultiTypeExperiment":
      """Update the default runner for an existing trial_type.
  
      Args:
          trial_type: The new trial_type to be added.
          runner: The new runner for trials of this type.
      """
      if not self.supports_trial_type(trial_type):
          raise ValueError(
              f"Experiment does not contain trial_type `{trial_type}`"
          )
  
      self._trial_type_to_runner[trial_type] = runner
      return self
  
imports: import logging
  from typing import Any, Dict, List, Optional, Set
  from ax.core.arm import Arm
  from ax.core.base_trial import BaseTrial
  from ax.core.data import Data
  from ax.core.experiment import DataType, Experiment
  from ax.core.metric import Metric, MetricFetchResult
  from ax.core.optimization_config import OptimizationConfig
  from ax.core.runner import Runner
  from ax.core.search_space import SearchSpace
  from ax.utils.common.docutils import copy_doc
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 3 for calling the MultiTypeExperiment obj's underlying member method code with example usage: obj.update_runner(trial_type, runner) and returns: self