削除された内容 追加された内容
m編集の要約なし
編集の要約なし
1行目:
[[Image:P_np_np-complete_np-hard.svg|thumb|300px|right| [[P (計算複雑性理論)|P]]、[[NP]]、[[NP完全問題|NP完全]]、[[NP困難]]の相関を表す[[ベン図]]]]
 
'''NP困難''' (-こんなん、NP-hard)hard)とは[[計算複雑性理論]]における問題のクラスの1つ。直観的に言えば「[[NP]]に属する最も難しい問題と比べて、少なくとも同等以上に難しい」問題である。問題 ''H'' がNP困難のクラスに属するとは、「[[NP完全問題]]に属する何れかの問題 ''L'' が ''H'' へ[[チューリング還元]]可能である」と定義される。即ち<math>\scriptstyle L\, \leq\,_T H</math>であり、NP困難問題を解ける[[神託機械]]がもしあれば、それを利用してNP完全問題を多項式時間で解くことができる。<br>
NP完全問題とは、NPの任意の問題から[[多項式時間変換|多項式時間帰着]]可能であり、かつ、<u>NPに属する</u>問題である。これと異なり、NP困難である問題は<u>NPに属するとは限らない</u>。[[P (計算複雑性理論)|P]]や[[NP]]は[[決定問題]]のクラスなので、NP完全もまた決定問題に限られるが、NP困難には決定問題、[[検索問題]]([[:en:Search problem|en]])、[[最適化問題]]など様々な問題が属しうる。
 
8行目:
* 問題 ''H'' は少なくとも L と同等以上に難しい。何故なら H を用いて ''L'' を解けるからである。
* ''L'' はNP完全であり、NPの中では最も難しいので、問題 ''H'' は少なくともNPと同等以上に難しい。しかし ''H'' はNPに属している必要はなく、従って[[決定問題]]ではなくても良い。
* NP完全問題同士は互いに多項式時間帰着可能なので、すべてのNP完全問題は ''H'' に還元して多項式時間で解ける。従ってNPに属する全ての問題も ''H'' に還元できる。ただしここでは二種類の変換を組み合わせていることに注意されたい。NP完全に属する決定問題をNP完全な問題 ''L'' に帰着する際は多項式時間変換であり、''L'' を ''H'' に変換する際はチューリング還元である。
* もし最適化問題 H の特殊例としてNP完全な決定問題 ''L'' を考えられるなら、''H'' はNP困難である。
* もし ''H'' がたまたまNPに属すなら、''H'' はNP完全。何故ならこの場合チューリング還元が多項式時間変換の要件を満たすので。