code: def delete_generation_strategy(
      exp_name: str, config: Optional[SQAConfig] = None
  ) -> None:
      """Delete the generation strategy associated with an experiment
  
      Args:
          exp_name: Name of the experiment for which the generation strategy
              should be deleted.
          config: The SQAConfig.
      """
      config = config or SQAConfig()
      decoder = Decoder(config=config)
      exp_sqa_class = decoder.config.class_to_sqa_class[Experiment]
      gs_sqa_class = decoder.config.class_to_sqa_class[
          GenerationStrategy
      ]
      # get the generation strategy's db_id
      with session_scope() as session:
          sqa_gs_id = (
              session.query(gs_sqa_class.id)  # pyre-ignore[16]
              .join(
                  exp_sqa_class.generation_strategy
              )  # pyre-ignore[16]
              # pyre-fixme[16]: `SQABase` has no attribute `name`.
              .filter(exp_sqa_class.name == exp_name)
              .one_or_none()
          )
  
      if sqa_gs_id is None:
          return None
  
      gs_id = sqa_gs_id[0]
      # delete generation strategy
      with session_scope() as session:
          gs = (
              session.query(gs_sqa_class)
              .filter_by(id=gs_id)
              .one_or_none()
          )
          session.delete(gs)
          session.flush()
  
file_path: Ax/ax/storage/sqa_store/delete.py
imports: from logging import Logger
  from typing import Optional
  from ax.core.experiment import Experiment
  from ax.modelbridge.generation_strategy import GenerationStrategy
  from ax.storage.sqa_store.db import session_scope
  from ax.storage.sqa_store.decoder import Decoder
  from ax.storage.sqa_store.sqa_classes import SQAExperiment
  from ax.storage.sqa_store.sqa_config import SQAConfig
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 2 for calling a global function with example usage: delete_generation_strategy(exp_name, config) and returns: None