code: def __init__(
      self, model_cls: Type[GraphModelSpace], plan_id: int = 0
  ) -> None:
      # GraphModelSpace has multiple implementations based on the framework.
      self.model_cls = model_cls
      self.lp_model = model_cls(_internal=True)
      self.id = plan_id
      self.logical_graph = cast(
          LogicalGraph,
          LogicalGraph(
              self.lp_model, self.id, name=f"{self.id}", _internal=True
          )._register(),
      )
      self.lp_model._root_graph_name = self.logical_graph.name
      self.models = []
  
imports: import copy
  from typing import Dict, Tuple, Any, Type, cast
  from nni.common.device import Device, CPUDevice
  from nni.mutable.utils import uid
  from nni.nas.space import Edge, Graph, GraphModelSpace, Node
  from nni.nas.space.graph_op import Cell, Operation, _IOPseudoOperation
label_desc: Use image node_id 1 to create a new LogicalPlan object  with example: obj = LogicalPlan(model_cls, plan_id)