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: Forward pass in PBQP to reduce nodes.
docstr_tok: ["Forward","pass","in","PBQP","to","reduce","nodes","."]
code: def _forward(self):
      """Forward pass in PBQP to reduce nodes."""
      while True:
          if self._buckets[1]:
              node_idx = self._buckets[1][0]
              self._RI_reduction(node_idx)
          elif self._max_degree >= 2 and self._buckets[2]:
              node_idx = self._buckets[2][0]
              self._RII_reduction(node_idx)
          elif self._max_degree >= 3:
              max_degree_node = -1
              for i in range(self._max_degree, 2, -1):
                  if self._buckets[i]:
                      max_degree_node = self._buckets[i][0]
                      self._RN_reduction(max_degree_node)
                      break
              if max_degree_node < 0:
                  break
          else:
              break
  
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 10 for calling the PBQPTuner obj's underlying member method code with example usage: obj._forward() without return types