タグ付けされた質問 「reductions」

計算可能性と複雑さにおいて、別の問題のソリューションを使用して1つの問題を解決できる問題間のマッピングを見つけること。プログラミング言語理論の削減(ベータ削減など)については、[lambda-calculus]または[term-rewriting]を参照してください。

4
互いに問題を減らすための一般的なテクニックは何ですか?
計算可能性と複雑さの理論(およびおそらく他の分野)では、縮約は遍在しています。そこに多くの種類がありますが、原理は同じまま:1の問題というのショー他のいくつかの問題として、ハードとして少なくともあるからのマッピングのインスタンスによる内の溶液と同等のものに。基本的に、プリプロセッサとしてリダクション関数を使用できるようにすると、ソルバーはすべてを解決できることを示します。L 2 L 2 L 1 L 1 L 2L1L1L_1L2L2L_2L2L2L_2L1L1L_1L1L1L_1L2L2L_2 私は長年にわたって削減のシェアを実行してきましたが、何かが私を悩ませ続けています。すべての新しい削減には(多かれ少なかれ)創造的な構築が必要ですが、タスクは繰り返し感じることができます。正規のメソッドのプールはありますか? 削減関数を構築するために定期的に使用できるテクニック、パターン、およびトリックは何ですか? これは参照質問になると思われます。したがって、少なくとも1つの例で説明されているが、多くの状況をカバーする、一般的で教訓的に提示された答えを与えるように注意してください。ありがとう!

2
Cのvoid型がempty / bottom型と類似していないのはなぜですか?
ウィキペディアと私が見つけた他のソースはvoid、空のタイプではなくユニットタイプとしてリストCのタイプを見つけました。void空の/下の型の定義によりよく適合するように思えるので、この混乱を見つけます。 void私が知る限り、値は存在しません。 戻り値の型がvoidの関数は、関数が何も返さないため、何らかの副作用しか実行できないことを指定します。 タイプのポインターvoid*は、他のすべてのポインタータイプのサブタイプです。また、void*C との間の変換は暗黙的です。 最後の点voidに、空の型であることの引数としてのメリットがあるかどうかはわかりvoid*ませんvoid。 一方、voidそれ自体は他のすべてのタイプのサブタイプではありません。これは、タイプがボトムタイプであるための要件であると言えます。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

2
問題がNP完全であることを証明するために、問題間の縮約を構築するにはどうすればよいですか?
私は複雑なコースを取っているのですが、NPCの問題を減らすのに苦労しています。問題間の削減を見つけるにはどうすればよいですか?使用できる一般的なトリックはありますか?問題がNPCであることを証明するように要求する問題にどのようにアプローチすればよいですか?

3
NP完全性の教育-チューリング削減対カープ削減
コンピューターサイエンス専攻にNP完全性を教えるのに最適な方法についての質問に興味があります。特に、Karp削減またはチューリング削減を使用してそれを教える必要がありますか? NP完全性と削減の概念は、すべてのコンピューターサイエンス専攻が学ぶべきものだと思います。しかし、NP完全性を教えるとき、カープ削減の使用にはいくつかの欠点があることに気付きました。 第一に、カープの削減は一部の学生にとって不必要に混乱させるようです。削減の直感的な概念は、「問題Xを解決するアルゴリズムがあれば、それを使用して問題Yも解決できます」です。これは非常に直感的ですが、カープの削減よりもチューリングの削減にはるかに良く対応します。その結果、NP完全性を証明しようとする学生は、直感に惑わされ、誤った証明を形成することがわかります。両方の種類の縮約を教えようと試み、カープ縮約のこの側面を強調することは、不必要な形式主義のように感じられ、不必要な授業時間と不必要な技術的詳細のように感じることに学生が注意を払うことがあります。このより制限された削減の概念を使用する理由は自明ではありません。 カープ削減とチューリング(クック)削減の違い、およびそれらがどのようにNP完全性の異なる概念につながるかを理解しています。カープの削減により、複雑さのクラス間の区別がより細かくなります。したがって、複雑性理論を真剣に研究するためには、カープ削減が明らかに正しいツールです。しかし、これを学んでいるだけで複雑性理論に進まないコンピューターサイエンスの学生にとって、この細かい区別が重要であるかどうかは、彼らがさらされるために重要です。 最後に、学生として、私は「トートロジー」のような問題に出くわしたとき戸惑っていたのを覚えています。たとえば、ブール式を与えられ、それがトートロジーであるかどうかを確認します。紛らわしいのは、この問題が明らかに難しいことです。そのための多項式時間アルゴリズムは、P=NPP=NPP=NP; この問題を解決することは、明らかにトートロジーの問題を解決するのと同じくらい難しいです。ただし、直感的にトートロジーは充足可能性と同じくらい困難ですが、トートロジーはNP困難ではありません。はい、今日これがなぜそうなのか理解していますが、当時私はこれに戸惑っていたことを覚えています。(結局、頭を突き抜けたのは、どうしてNPハードとコNPハードを区別するのかということです。とにかく、それは人為的なものであり、実践によってあまり動機付けられていないようです。実際の観点から見ると、co-NPの硬度はNPの硬度と本質的に同じ実際的な結果をもたらすように思われますが、なぜこの区別にすべてがこだわるのでしょうか?はい、私は知っています答えですが、学生として、私はこれが主題をより不可解でやる気が少ないと感じただけだったことを覚えています) だから、私の質問はこれです。NP完全性を生徒に教えるとき、カープ削減またはチューリング削減を使用して教える方が良いですか?チューリング縮約を使用してNP完全性の概念を教えようとした人はいますか?もしそうなら、それはどうでしたか?チューリング簡約を使用して概念を教え、カープ簡約に関連する概念上の問題をスキップした場合、非自明な落とし穴または欠点はありますか? 関連:こことここを参照してください。文献でKarpリダクションを使用する理由は、NP硬度とco-NP硬度を区別できるためです。ただし、この能力がすべてのCS専攻で取られるべきアルゴリズムクラスの学習目標にとって重要であるかどうかの教育学的観点に焦点を当てた答えを与えていないようです。同様の議論があるcstheory.SEのこちらも参照してください。

1
線形プログラムとしてソートする
驚くほど多くの問題が、線形計画法(LP)をかなり自然に削減しています。ネットワークフロー、2者間マッチング、ゼロサムゲーム、最短パス、線形回帰、および回路評価などの例については、[1]の第7章を参照してください。 回路評価は線形計画法に帰着するため、問題には線形計画法の定式化が必要です。したがって、線形プログラムへの還元を介した「新しい」ソートアルゴリズムがあります。だから、私の質問はPPP 実数の配列をソートする線形プログラムとは何ですか?nnn LPへの還元と解決のソートアルゴリズムの実行時間は? S. Dasgupta、C。Papadimitriou、U。Vaziraniによるアルゴリズム(2006)

2
数独を解決できる場合、巡回セールスマン問題(TSP)を解決できますか?もしそうなら、どのように?
任意のサイズの部分的に満たされた数独を与えると、対応する完成した数独を与えるプログラムがあるとしましょう。 このプログラムをブラックボックスとして扱い、これを使用してTSPを解決できますか?つまり、TSP問題を部分的に満たされた数独として表現する方法はありますか?その数独の答えを与えると、TSPの解を多項式時間で伝えることができますか? はいの場合、どのように?TSPを部分的に満たされた数独としてどのように表現し、対応する満たされた数独を結果として解釈しますか。

3
(数学)問題をSATインスタンスに変換する
私がやりたいのは、数学の問題をブール充足可能性問題(SAT)に変え、SATソルバーを使用してそれを解くことです。誰かが私の問題をSATインスタンスに変換するのに役立つマニュアル、ガイド、または何かを知っているのだろうか。 また、指数関数的な時間よりも良い方法でこれを解決したいです。SAT Solverが役立つことを願っています。

2
「サブセット製品」の問題はNP完全ですか?
サブセット合計問題は、古典的なNP完全問題です。 数字のリストとターゲットが与えられた場合、合計がになる数字サブセットはありますか?LLLkkkLLLkkk 学生から、「サブセット製品」問題と呼ばれるこの問題の変種がNP完全かどうかを尋ねられました。 数値のリストとターゲットが与えられた場合、積がからの数値のサブセットはありますか?k L kLLLkkkLLLkkk 私はいくつかの検索を行ったが、おそらく私はそれらを逃したが、この問題について話しているリソースを見つけることができなかった。 サブセット製品の問題はNP完全ですか?

2
次の問題をSATに減らす
ここに問題があります。与えられた各。すべてのに対してとなるようなサイズが最大サブセットがありますか?この問題をSATに還元しようとしています。解決策の私の考えは、それぞれに変数を持たせることです。場合、各に対して句ます。次に、これらのすべての句をまとめます。しかし、これは、Sという制約を表していないため、明らかに完全なソリューションではありません。Tは、I ⊆ { 1 、... 、N } S ⊆ { 1 、... 、N } K S ∩ T I ≠ ∅ I X 、I N T I(X I 1 ∨ ⋯ ∨ x i k)T i = { i 1、k,n,T1,…,Tmk,n,T1,…,Tmk, n, T_1, \ldots, T_mTi⊆{1,…,n}Ti⊆{1,…,n}T_i \subseteq \{1, \ldots, n\}S⊆{1,…,n}S⊆{1,…,n}S \subseteq \{1, …

2
サブセットの合計:特殊なケースから一般的なケースに削減
ウィキペディアでは、サブセットの合計問題を、合計がゼロの整数の特定のマルチセットのサブセットを見つけることとして説明しています。さらにそれは和とサブセット発見と同等であると述べている任意の所与のため。ssssss したがって、それらは同等であるため、どちらの側にも削減が必要だと思います。から0 まで値は、設定することで簡単になります。しかし、私はゼロから削減見つけ運がなかったすなわち整数の集合与えられ、、整数の集合構築の和とのサブセット含む(いずれについてもとのサブセットとして存在している場合にのみ場合、)と合計ゼロ。ssss=0s=0s = 0sssAAABBBssssssAAA いくつかのポインタを教えてもらえますか?


3
HALF CLIQUE-NP完全問題
これが宿題の問題であることに注意して始めましょう。アドバイスと関連する所見のみを提供してください。直接の回答はありません。とはいえ、ここに私が見ている問題があります: HALF-CLIQUE = { | は、少なくとも個のノードを持つ完全なサブグラフを持つ無向グラフです。ここで、nは } のノードの数です。HALF-CLIQUEがNP完全であることを示します。G N / 2 G⟨ G ⟩⟨G⟩\langle G \rangleGGGn / 2n/2n/2GGG また、私は次のことを知っています: この問題に関して、クリークは、入力グラフの無向サブグラフとして定義され、2つのノードごとにエッジで接続されます。 -cliqueが含まクリークであるノード。kkkkkk 私たちの教科書によると、Michael Sipserの「計算理論入門」、268ページ、問題CLIQUE = { | は -cliqueを持つ無向グラフですNPはNPですG K⟨ G 、K ⟩⟨G,k⟩\langle G,k\rangleGGGkkk さらに、同じソース(ページ283)によると、CLIQUEはNP-Complpeteにある(したがって、明らかにNPにもある)と述べています。 私はここに答えの核心があると思うが、私はそれの何が間違っているのか、答えに関連するかもしれない関連ポイントのいくつかの兆候を使用することができます。これは私がこれまでに持っている一般的な考え方です、 さて、証明書は単に HALF-QLIQUEであることに最初に注意し。これで、CLIQUE(NP-Completeであることがわかっている)からHALF-CLIQUEへの多項式時間短縮である検証ツールを作成する必要があります。私のアイデアは、HALF-CLIQUEの追加の制約を使用して、CLIQUEの本のチューリングマシン検証ツールを実行するチューリングマシンを作成することによってこれが行われるということです。サイズ≥ N / 2size≥n/2\text{size} \geq n/2 これは私には正しいように聞こえますが、私はこの主題についてはまだ自分を本当に信用していません。繰り返しになりますが、これは宿題ですので、質問には答えないようにしてください。これに満たないガイダンスは大歓迎です!

2
チューリング削減によってNP硬度を示すことはできますか?
Ramírez-Alfonsínによる論文「フロベニウス問題の複雑さ」では、チューリング縮約を使用して問題がNP完全であることが証明されました。それは可能ですか?正確にどのように?これは、多項式時間の多倍数削減によってのみ可能だと思いました。これに関する参照はありますか? NP硬度、さらにはNP完全性という2つの異なる概念がありますか?しかし、実際の観点から、私の問題がNP困難であることを示したい場合、私はどちらを使用するのですか? 彼らは次のように説明を始めました: 問題から減少チューリング多項式時間P1P1P_1 別の問題に 解くアルゴリズムAで 「解決するための仮想的なサブルーチンAを使用して、 のための多項式時間アルゴリズムであったAが場合は、そのような」 次いでAは多項式であろう時間アルゴリズム 。 はチューリングを還元できると 言い ます。P2P2P_2P1P1P_1P2P2P_2P2P2P_2P1P1P_1P1P1P_1P2P2P_2 問題 は、NP完全決定問題 があり、 をチューリング還元してできる 場合、NP困難(チューリング)と呼ばれます。P1P1P_1P2P2P_2P2P2P_2P1P1P_1 そして、彼らはNP完全問題からのそのようなチューリング簡約を使用して、他の問題のNP完全性を示します。

1
最小カットはネットワークフローより簡単ですか?
max-flow min-cut定理のおかげで、任意のアルゴリズムを使用してネットワークグラフの最大フローを計算し、 -min-cut を計算できることがわかります。したがって、最小の計算の複雑さ最大値の計算の複雑度以下である留分 -flowを。(s 、t )(s 、t )(s,t)(s,t)(s,t)(s,t)(s,t)(s,t)(s,t)(s,t)(s,t) 少なくてもいいですか?最小カットを計算するアルゴリズムは、max-flowアルゴリズムよりも高速ですか?(s 、t )(s,t)(s,t) 私は、削減の削減発見しようとしたに)-max-フローの問題を -minカット問題は、しかし、私は1つを見つけることができませんでした。私が最初に考えたのは、分割統治アルゴリズムを使用することでした。まず、グラフを2つの部分に分割する最小カットを見つけます。ここで、左部分の最大フローと右部分の最大フローを再帰的に見つけ、それらをカットを横断するすべてのエッジと結合します。これは実際に最大フローを生成するために機能しますが、その最悪の場合の実行時間は、min-cutアルゴリズムの実行時間の倍にもなります。より良い削減はありますか?(s 、t )O (| V |)(s 、t(s,t(s,t(s 、t )(s,t)(s,t)O (| V| )O(|V|)O(|V|) max-flow min-cut定理は、max-flowの値を計算する複雑さがmin-cutの容量を計算する複雑さと同じであることを示していますが、それは私が求めていることではありません。最大フローを見つけ、最小カットを(明示的に)見つける問題について質問しています。 これは、以下を除き、min-cutからのmax-flowの計算と非常に密接に関連しています。おそらく与えられた我々は見つけることができますいくつかのグラフの最小カットするような、それは簡単の最大フローを計算することができます、他の質問の範囲外だものです。G ' G ' GGGGG′G′G'G′G′G'GGG

2
NP完全問題から有界PCPへの多項式簡約
テキストブックはどこにでもいると仮定有界ポストの対応問題が NP完全である(せいぜい回の繰り返しで許可されたインデックスを)。ただし、別のNP完全問題からの単純な(学部生が理解できるような)多項式時間の短縮を示すものはどこにもありません。NNN しかし、私が考えることができるすべての削減は、実行時に指数関数的(またはシリーズのサイズ)です。おそらく、SATに還元可能であることを示すことができますか?NNN

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.