·H算法
  
  H算法以h()最大为目标,在覆盖C中立方体之间求一公因子 。求出之后,把覆盖C分解为两个子集:
  也就是说 是S中每一元素的因子。
      S=∩D
  D是对S提取公因子 后的剩余部分
  把二级电路转化为多级电路是一个反复提取公因子的过程.下一步则应当对D和N分别提取公因子…….直到提不出新的公因子时为止。
   以下叙述对覆盖C提取一个公因子的详细步骤:
   (1) 形成覆盖c的列高度函数:
     h(0) = a1a2 ...ai... an
     h(1) = b1b2 ...bi... bn
   式中ai是一整数,代表覆盖C中变量xi取值为0的个数;bi代表C中变量xi取值为1的个数。
   (2) 求出最大列高度:
     ak = MAX(a1a2... ai... an )    k∈(1, 2,... n )
     bj = MAX(b1b2 ...bi... bn )    j∈(1, 2,... n )
   (3) 若ak < 2且bj < 2则停止。
   (4) 若ak > bj则 k = 0且 i = X ( i≠k ) ;
   否则  j =1且 j =X (i≠j )。
  实例:设覆盖C为:
  最大列高度
       a2 = 3
       b1 = 3
  提取公因子 = 1 X X X X X
  把C分解为:
  对S提出公因子后,剩余部分为D:
  下面分别对D和N进一步提取公因子。因N中只有一个元素,不可能再提公因子,只需对D提公因子。令 C = D,重复H算法的整个过程:
  最大列高度
    a2 = 2
    b4 = 2
  提取公因子 = XXX1XX
  把C分解为:
  对S提公因子后,剩余部分为D:
  至此,N和D都不存在公因子,结束。所得结果为:
  对应的布尔表达式为: