class_docstr: An approximation method to deal with intractably
  large size of graph tuning problem.
  
  This graph coloring algorithm mainly comes from:
  
  Lang Hames and Bernhard Scholz.
  Nearly optimal register allocation with pbqp.JMLC 2006.
  LNCS, vol.4228,pp. 346-361, 2016
class_docstr_tok: ["An","approximation","method","to","deal","with","intractably","large","size","of","graph","tuning","problem",".","This","graph","coloring","algorithm","mainly","comes","from",":","Lang","Hames","and","Bernhard","Scholz",".","Nearly","optimal","register","allocation","with","pbqp.JMLC","2006",".","LNCS",",","vol.4228",",","pp",".","346-361",",","2016"]
docstr: Insert an edge between two nodes.
docstr_tok: ["Insert","an","edge","between","two","nodes","."]
code: def _insert_edge(self, node_x, node_y, adj_cost_matrix):
      """Insert an edge between two nodes."""
      self._layout_transform_interlayer_cost[
          (node_x, node_y)
      ] = adj_cost_matrix
      self._layout_transform_interlayer_cost[(node_y, node_x)] = []
      for i in range(len(adj_cost_matrix[0])):
          self._layout_transform_interlayer_cost[
              (node_y, node_x)
          ].append([])
          for cost_vec in adj_cost_matrix:
              self._layout_transform_interlayer_cost[(node_y, node_x)][
                  i
              ].append(cost_vec[i])
  
      self._adj_dict[node_x].append(node_y)
      self._adj_dict[node_y].append(node_x)
  
file_path: tvm/python/tvm/autotvm/graph_tuner/pbqp_tuner.py
imports: from ._base import INVALID_LAYOUT_TIME
  from .base_graph_tuner import BaseGraphTuner
  from .utils import is_boundary_node, has_multiple_inputs
label_desc: Use image node_id 5 for calling the PBQPTuner obj's underlying member method code with example usage: obj._insert_edge(node_x, node_y, adj_cost_matrix) without return types