問題間還元とは?ある問題を別の問題に作り変えて

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

問題間還元とは(全体像)

問題間還元は、解きたい問題Aを、すでに解き方が分かっている問題Bの形に作り変えて、Bのやり方でAも解いてしまう手法のこと。

身近な例が料理。「焼きそばの作り方」が分からなくても、「パスタの作り方」を知っていれば、麺をゆでて炒めて味つけ、という似た手順に作り変えて解決できる。このように「別の問題のやり方を借りる」のが還元の発想だ。

押さえたいのは、変換には条件があること。作り変える作業そのものが速く(多項式時間で)できる必要がある。変換に時間がかかりすぎると、せっかくBで速く解けても意味がなくなるからだ。


詳しく:A≦pBの向きと用途だけ覚えれば戦える

ここが記事の心臓部。還元でいちばん大事なのが、記号A≦pBの意味だ。

A≦pB の意味

項目内容
読み方AはB以下の難しさ
意味Aの入力を速くBの入力に作り変え、Bが解ければAも解ける
向きの注意「A≦B」はAが簡単という意味ではなく、AはB以下(同等か、より易しい)ということ

ここを取り違えやすい。A≦pBは「Bが解ければAも解ける」という関係で、AがBより難しくないことを表す。「Aが簡単」と単純に読まないのがコツだ。

この還元が活躍するのが、問題の難しさの証明だ。

還元の主な使いみち

用途やること
NP困難の証明すでにNP完全と分かった問題を、対象の問題に還元する
アルゴリズムの再利用既知の問題に作り変えて、その解き方を借りる

つまり、「すでに難しいと分かっている問題を、対象の問題に作り変えられれば、対象も同じくらい難しい」と言える。これがNP困難を証明する定番の方法、というわけだね。

わかりやすく言い換えると

要するに、問題間還元は「別の問題のやり方を借りて解く」やり方だ。

還元 … 問題Aを問題Bに作り変えて、Bのやり方で解く(焼きそばをパスタの手順で)

A≦pB … AはB以下の難しさ。Bが解ければAも解ける(向きに注意)

用途 … 「この問題は既知の難問と同じくらい難しい」と証明できる

「Aが簡単」ではなく「AはBより難しくない」と読むのがコツ。


試験のツボ

🔴 一番出る:AをBに作り変えて解く

①問題Aを問題Bに変換し、Bの解き方でAも解く

②変換そのものは速く(多項式時間で)できる必要がある

🔴 次に出る:A≦pBの向き

①「AはB以下の難しさ」を表す

②Bが解ければAも解ける(「Aが簡単」ではない)

🟡 押さえると安定:用途

①NP困難の証明に使う(既知の難問を対象に還元)

②既知の問題に帰着してアルゴリズムを再利用する


よくある間違い

「A≦pBはAが簡単という意味」→ ✗  AはB以下の難しさ(同等か易しい)という意味。Bが解ければAも解ける。

「還元は変換しさえすればよく、速さは関係ない」→ ✗  変換そのものが速く(多項式時間で)できる必要がある。

「還元はアルゴリズム設計とは無関係」→ ✗  既知の問題に帰着して解き方を借りる、設計の道具でもある。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(還元の考え方)

📝 オリジナル問題 1 還元の考え方

問題間還元の考え方に関する次の記述のうち、正しいものはどれか。

  1. 還元とは、問題をいっさい変換せず、まったく別の答えをそのまま書き写すことだ
  2. 還元とは、問題を解くのをあきらめて、近い答えだけを返すための手法のことだ
  3. 還元とは、問題Aを問題Bに作り変えて、Bの解き方を使ってAも解くことである
  4. 還元とは、二つの問題をただ並べて、難しさを見た目で比べるだけの操作とされる
オーエスペン
オーエスペン 解答・解説

解答は 3 だよ。

還元は問題Aを問題Bに作り変えて、Bの解き方を使ってAも解くことなんだ。焼きそばをパスタの手順で作るイメージだよ。

選択肢1の「書き写す」、選択肢2の「あきらめる」、選択肢4の「見た目で比べる」はどれも誤りだよ。

選択肢判定理由
1問題を作り変える
2あきらめではない
3AをBに変換して解く
4変換して解く手法

オリジナル問題2(A≦pBの意味)

📝 オリジナル問題 2 A≦pBの意味

A≦pBという記号の意味に関する次の記述のうち、正しいものはどれか。

  1. A≦pBは、Aが必ず簡単な問題で、Bとはなんの関係もないことを表す記号だ
  2. A≦pBは、AはB以下の難しさで、Bが解ければAも解けることを表す記号である
  3. A≦pBは、AがBより必ず難しく、Bを解いてもAは解けないことを表すものとされる
  4. A≦pBは、AとBがまったく同じ問題であることだけを表す記号のことだ
オーエスペン
オーエスペン 解答・解説

解答は 2 だよ。

A≦pBは「AはB以下の難しさで、Bが解ければAも解ける」という意味なんだ。「Aが簡単」と単純に読まないのがコツだよ。

選択肢1の「関係がない」、選択肢3の「AがBより難しい」、選択肢4の「同じ問題」はどれも誤りだよ。

選択肢判定理由
1BとのつながりでAを表す
2AはB以下・Bが解ければAも
3向きが逆
4同じ問題という意味ではない

オリジナル問題3(還元の用途)

📝 オリジナル問題 3 還元の用途

問題間還元の用途に関する次の記述のうち、正しいものはどれか。

  1. 還元は、既知の難問を対象の問題に作り変えてNP困難の証明などに使われる
  2. 還元は、問題の難しさとは無関係で、計算機科学ではいっさい使われていない
  3. 還元は変換に時間がいくらかかってもよく、速さは結果に関係しないものとされる
  4. 還元は、難しい問題を必ず簡単な問題に変えて、誰でも解けるようにする魔法だ
オーエスペン
オーエスペン 解答・解説

解答は 1 だよ。

還元は既知の難問を対象の問題に作り変えて、NP困難の証明などに使うんだ。「この問題は既知の難問と同じくらい難しい」と言えるようになるよ。

選択肢2の「使われない」、選択肢3の「速さは関係ない」、選択肢4の「必ず簡単にする魔法」はどれも誤りだよ。

選択肢判定理由
1NP困難の証明などに使う
2難しさの証明に使う
3変換は速くできる必要がある
4簡単にする魔法ではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る