code: def pipeline_first():
      #    RF
      #  |     \
      # RF     KNN
      # |  \    |  \
      # LR LDA LR  LDA
      pipeline = Pipeline()
  
      root_of_tree, root_child_first, root_child_second = [
          PipelineNode(model) for model in ("rf", "rf", "knn")
      ]
  
      for root_node_child in (root_child_first, root_child_second):
          for requirement_model in ("logit", "lda"):
              new_node = PipelineNode(requirement_model)
              root_node_child.nodes_from.append(new_node)
              pipeline.add_node(new_node)
          pipeline.add_node(root_node_child)
          root_of_tree.nodes_from.append(root_node_child)
  
      pipeline.add_node(root_of_tree)
      return pipeline
  
file_path: FEDOT/test/unit/pipelines/test_pipeline_comparison.py
imports: import itertools
  from copy import deepcopy
  import pytest
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
label_desc: Use image node_id 1 for calling a global function with example usage: pipeline_first() and returns: pipeline