頂点被覆
グラフ理論において、グラフGの頂点からなるある集合VがGの頂点被覆（ちょうてんひふく、英: vertex cover）であるとは、Gのどの辺をとってもその端点のどちらかがVに含まれるという意味である。最小頂点被覆を求める問題は計算機科学における古典的な最適化問題であり、近似アルゴリズムのある典型的なNP困難な問題でもある。その決定問題版である頂点被覆問題は計算複雑性理論における古典的なNP完全問題である。さらに頂点被覆問題には固定パラメータ容易性 (fixed-parameter tractability) があり、パラメータ化計算量理論の中心問題の1つである。
最小頂点被覆問題は、整数計画問題に定式化でき、その双対問題は最大マッチング問題である。
グラフ "G" の頂点被覆とは頂点の集合 "C" であり、"G" の各辺は "C" 内の少なくとも1つの頂点と接合する。このとき集合 "C" は "G" の辺を「被覆 (cover)」すると言う。次の図は2つのグラフの頂点被覆の例を表したものである（集合 "C" は赤で示されている）。
最小頂点被覆 (minimum vertex cover) は、最も小さい大きさの頂点被覆である。頂点被覆数 (vertex cover number) formula_1 は最小頂点被覆の大きさである。次の図は2つのグラフの最小頂点被覆の例を表したものである。
最小頂点被覆問題は、与えられたグラフの最小頂点被覆を求める最適化問題である。
決定問題とする場合は、これを頂点被覆問題と呼び、次のように定式化される。
頂点被覆問題はNP完全問題である。カープの21のNP完全問題の1つになっており、他の問題がNP困難であることを示す手段として計算複雑性理論でよく利用される。
各頂点にはコスト formula_4 が対応するものとする。（重み付き）最小頂点被覆問題は、次のように整数計画問題として定式化できる。
この整数計画問題(ILP)は、被覆問題と呼ばれるより大きなILPクラスに属する。このILPの整数性ギャップは "2" であり、その緩和から最小頂点被覆問題に対して係数 "2" の近似アルゴリズムが得られる。さらに言えばこのILPの線形計画緩和は "half-integral" であり、全ての formula_10 について formula_11 の最適解が存在する。
頂点被覆問題の決定問題版はNP完全であり、正確にそれを解く効率的アルゴリズムは存在しないと思われる。NP完全であることは、3-充足可能性問題からの還元や、カープが行ったようにクリーク問題からの還元で証明できる。立体グラフであっても頂点被覆はNP完全であるし、次数が高々3の平面グラフでもNP完全である。
2部グラフの場合、 から頂点被覆と最大マッチングの等価性が示されているので、2部頂点被覆問題は多項式時間で解ける。
力まかせ探索アルゴリズムを使えば、"2n" の時間で問題を解くことができる。したがって頂点被覆は固定パラメータ容易性があり、小さい "k" のみに着目する場合は多項式時間で問題を解くことができる。このときのアルゴリズム的技法として "bounded search tree algorithm" があり、頂点の選択を繰り返し、現在の頂点を頂点被覆に含めるか、隣接する全頂点を頂点被覆に含めるかを再帰的に選択していくものである。計算複雑性理論における exponential time hypothesis という仮説によれば、この方式の実行時間は "2n" より改善されることはない。
平面グラフでは、大きさ "k" の頂点被覆は "formula_12" という時間で求めることができ、準指数固定パラメータ容易性がある。exponential time hypothesis によれば、平面グラフの頂点被覆問題について "formula_13" という時間未満で解けるアルゴリズムは存在しない。
係数が2の近似アルゴリズムがあり、辺を選んでその両端の頂点を頂点被覆に入れ、グラフからそれらを削除するということを繰り返す。あるいは、力まかせアルゴリズムで極大マッチング "M" を求め、"M" に属する全端点から頂点被覆 "C" を構築するという方法もある。次の図では、極大マッチング "M" を赤で示し、頂点被覆 "C" を青で示している。
このように構築した集合 "C" は頂点被覆である。辺 "e" が "C" によって被覆されていないとする。すると、"M" ∪ {"e"} がマッチングであり、かつ "e" ∉ "M" ということになり、"M" が極大マッチングであるという前提と矛盾する。さらに "e" = {"u","v"} ∈ "M" とすると、任意の頂点被覆（最小頂点被覆も含む）は "u" か "v"（または両方）を含まなければならず、さもなくば "e" が被覆されない。したがって最小頂点被覆は、"M" の各辺の両端の少なくとも一方を含む。まとめると、集合 "C" は最小頂点被覆に対して高々2倍の大きさに収まる。
この単純なアルゴリズムは、Fanica Gavril と Mihalis Yannakakis が発見した。
より複雑な技法を使うと、近似係数が若干よい近似アルゴリズムがあることが示される。例えば、近似係数 formula_14 の近似アルゴリズムが知られている。
上述したものより良い固定係数近似アルゴリズムは知られていない。最小頂点被覆問題はAPX完全であり、P=NPでなければ任意の係数で近似することはできない。Dinur と Safra はPCP定理の技法を使い、P=NP でなければ十分に大きな次数のグラフにおける最小頂点被覆は係数 1.3606 以内で近似できないことを証明した。さらには、 が真なら、最小頂点被覆は2よりよい近似係数で近似できない。
最小な頂点被覆を求めることは最大の独立集合を求めることと等価だが、近似という面からは両者は等価ではない。P=NPでなければ、独立集合問題には固定係数の近似アルゴリズムが存在しない。
頂点被覆はハイパーグラフにも自然に一般化でき、単に「ハイパーグラフの頂点被覆」とも呼ばれるが、ヒッティングセット (hitting set) という呼び方が一般化している。また、組合せ論的には横断 (transversal) とも呼ぶ。さらに言えば、ヒッティングセットと集合被覆は等価である。
形式的には、ハイパーグラフ "H=(V,E)" は頂点集合 "V" とハイパーエッジ集合 "E" から成る。集合 "S ⊆ V" がヒッティングセットとなるのは、全てのハイパーエッジ "e ∈ E" について "S ∩ e ≠ ∅" が成り立つ場合である。計算問題としての「最小ヒッティングセット」と「ヒッティングセット問題」はグラフの場合と同様に定義される。
なお、ハイパーエッジの最大サイズが2のハイパーグラフは普通のグラフと同じである。ハイパーエッジの大きさを "d" までに制限すると、最小"d"-ヒッティングセットを求める問題にはアルゴリズムがある。
ヒッティングセット問題においては、パラメータ化は異なる意味を持つ。ヒッティングセット問題はパラメータ formula_15 について formula_16-完全であり、formula_17 という時間内で動作するアルゴリズムは存在しないと思われる。ここで formula_15 は最小ヒッティングセットの濃度である。ヒッティングセット問題はパラメータ formula_19 について固定パラメータ容易性を持つ。ここで formula_20 はそのハイパーグラフの最大ハイパーエッジの大きさ formula_21 である。より正確には、ヒッティングセット問題には formula_22 という時間内で動作するアルゴリズムが存在する。
ヒッティングセット問題は集合被覆問題と等価である。集合被覆問題の具体例は、左側に集合を頂点として置き、右側に全ての元を頂点として置き、元と集合の包含関係を辺で表した2部グラフで表すことができる。すると問題は、右側の頂点を全て被覆する左側の頂点の最小濃度の部分集合を求めることとなる。ヒッティングセット問題では、左側の頂点を全て被覆する右側の頂点の最小濃度の部分集合を求めることである。したがって、頂点の左右を入れ替えると全く同じ問題であることがわかる。