P対NPの問題を非数学者に説明できるようにするために、ブルートフォース検索を回避できる場合の教育的例を挙げたいと思います。問題はすぐに理解できるのが理想的であり、トリックは簡単すぎたり、難しすぎたりしてはなりません。
これまでに思いついた中で最高のものは
SUBSET_PRODUCT_IS_ZERO
問題は簡単に理解できます(整数のセットが与えられ、製品0のサブセットを形成できるか?)。サブセット)。
助言がありますか?
P対NPの問題を非数学者に説明できるようにするために、ブルートフォース検索を回避できる場合の教育的例を挙げたいと思います。問題はすぐに理解できるのが理想的であり、トリックは簡単すぎたり、難しすぎたりしてはなりません。
これまでに思いついた中で最高のものは
SUBSET_PRODUCT_IS_ZERO
問題は簡単に理解できます(整数のセットが与えられ、製品0のサブセットを形成できるか?)。サブセット)。
助言がありますか?
回答:
私はジェンガをお勧めします!
しかし実際には、Uri Zwickは、名刺に簡単に合わせることができる単純なルールのセットを使用して、3つの整数を追跡するだけでJengaを完璧にプレイできることを2005年に証明しました。あなたが必要とする3つの数字は
ここでIIは、中間のレンガを3層の上部から移動する必要があることを意味し、II-は、サイドレンガを3層から上部に移動する必要があることを意味します-I-は、サイドレンガを2層から移動する必要があることを意味します一番上に、そしてbob-ombは、死について考え、悲しいことなどをする必要があることを意味します。ボックス内に提案された移動が複数ある場合は、それらのいずれかを選択できます。トリプルをすでに知っている場合は時間で、知らない場合は時間でこの戦略を実行するのは簡単です。
モラル:ジェンガは、みんなが不器用で酔っている場合にのみ楽しいものです。
レジ係は顧客にセントの釣り銭を返さなければなりません。彼女が利用できる硬貨を考えると、彼女はそれを行うことができますか?
この問題には2つのバリアントがあります。
簡単なバリアントは、貪欲なアルゴリズムで解決できます。より難しいものは動的プログラミングを必要とします。
実際、これを提示する方法は、ブルートフォースソリューションを提案し、それが非常に非効率であることを人々に理解させ、次にレジ係が何をすべきかを最初に簡単なバリアントについて、次にハードキャッシングについて尋ねることです。簡単なものから厄介なものまで、いくつかの例があります。
私は自分で役立つ例を見つけたと思います!
おそらく少し漠然としていたかもしれませんが、次の仕様を満たす問題を探していました。
オイラーサイクルでは、すべてのノードが次数を持っていなければならないという必要条件であると説明するのは簡単ですが、十分な条件である理由を説明するのは簡単ではありません。
これは、これまでのところ、上記の仕様を最もよく満たしていると私が思う問題です。
FORM_TARGET_SET_WITH_UNIONS
セットのコレクション
ターゲットセット
質問:いくつかのセットの結合をとることによってターゲットセットを形成することは可能ですか?
明白だが効果のないアルゴリズム:
より良いアルゴリズム
姉妹問題もあります
FORM_TARGET_SET_WITH_INTERSECTIONS
より良いアルゴリズムは
ご覧のとおり、私は本当にシンプルなもの(ほぼSUBSET_PRODUCT_IS_ZEROと同じくらいシンプルなもの)を探していました。
この問題は、NPは完全であるが定式化が類似しているSUBSET SUMおよびSUBSET PRODUCTと対比することもできます。これらすべての問題において、オブジェクトのコレクションが提示され、これらのオブジェクトの選択に対する操作が望ましい結果を生成できるかどうかが尋ねられます。