code: def __init__(self, operation_types: List[str]):
      super().__init__(operation_types)
      self.params: List[dict] = [
          self.operation_params_with_bounds_by_operation_name.get(
              operation_type
          )
          for operation_type in self.operation_types
      ]
      self.num_vars: int = sum(
          [
              len(operation_params)
              for operation_params in self.params
              if operation_params is not None
          ]
      )
      self.names: List[str] = list()
      self.names_per_node: dict = dict()
      self.bounds: List[list] = list()
      for index, operation_params in enumerate(self.params):
          if operation_params is not None:
              self.names.extend(list(operation_params.keys()))
              self.names_per_node[str(index)] = list(
                  operation_params.keys()
              )
              self.bounds.extend(list(operation_params.values()))
          else:
              self.names_per_node[str(index)] = None
  
imports: import json
  from abc import abstractmethod
  from os.path import join
  from typing import List, Union
  from fedot.core.utils import fedot_project_root
  from fedot.utilities.custom_errors import AbstractMethodNotImplementError
label_desc: Use image node_id 1 to create a new MultiOperationsProblem object from inherited base classes: Problem with example: obj = MultiOperationsProblem(operation_types)