タグ付けされた質問 「np-complete」

NPで最も困難な問題、すなわち非決定性チューリングマシンによって多項式時間で解くことができる問題に関する質問。

7
立法はNP完全ですか?
法的コードを複雑性に関連付ける作業があったかどうかを知りたい。特に、「この法律の本とこの特定の状況を考えると、被告は有罪ですか?」という決定問題があると仮定します。どの複雑度クラスに属しますか? カードゲームMagic:the GatheringはNPとチューリング完全の両方であることが証明された結果があります。同様の結果が法的なコードに存在すべきではないでしょうか。

2
NP完全問題の準指数時間アルゴリズムはありますか?
準指数時間アルゴリズムであることが証明されているNP完全問題はありますか? ここでは、一般的なケースの入力を求めていますが、扱いやすい特別なケースについては説明していません。 部分指数とは、多項式より上の成長の順序を意味しますが、指数的ではありません、たとえば。nlognnlog⁡nn^{\log n}

3
ナップザックの問題—動的プログラミングソリューションにもかかわらずNP完全ですか?
ナップザックの問題は、動的プログラミングで簡単に解決できます。動的プログラミングは多項式時間で実行されます。それが我々がそうする理由ですよね? 私はそれが実際にNP完全な問題であると読んだことがありますが、それは多項式問題で問題を解くことはおそらく不可能であることを意味するでしょう。 私の間違いはどこですか?

6
一部のゲームがnp完全なのはなぜですか?
「NP完全問題のリスト」に関するウィキペディアのエントリを読んだところ、スーパーマリオ、ポケモン、テトリス、キャンディクラッシュサガなどのゲームがnp完全であることがわかりました。ゲームのNP完全性をどのように想像できますか?回答はあまり正確である必要はありません。ゲームがnp-completeになり得るということの概要を知りたいだけです。


4
PではなくNP完全ではなく、NPの問題はありますか?
N P完全ではない(Pではなく)既知の問題はありますか?私の理解では、これが事実である現在既知の問題はないが、可能性として除外されていないということです。 NPNP\mathsf{NP}PP\mathsf{P}NPNP\mathsf{NP} 存在する問題である場合(としないPが)ではなくN P - C O M P リットルのE のT E、これはその問題のインスタンスとの間の既存の同型の結果であろうN P - C O M p個のL E T Eセット?この場合、N Pの問題が現在N P - c o m p l e tNPNP\mathsf{NP}PP\mathsf{P}NP-completeNP-complete\mathsf{NP\text{-}complete}NP-completeNP-complete\mathsf{NP\text{-}complete}NPNP\mathsf{NP}セット?NP-completeNP-complete\mathsf{NP\text{-}complete}

4
巡回セールスマン問題の解を多項式時間で検証するにはどうすればよいですか?
したがって、TSP(Travelling salesman problem)決定問題はNP completeです。 しかし、多項式時間で最適な解を見つける方法がないため、TSPの特定の解が実際に多項式時間で最適であることを検証する方法を理解できません(問題はPにないためです)? 検証が実際に多項式時間で実行できることを確認するのに役立つかもしれないものはありますか?

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 

6
要素の繰り返しなしでペアのセットから組み合わせを生成する
ペアのセットがあります。各ペアの形式は(x、y)で、x、yは範囲の整数に属します[0,n)。 したがって、nが4の場合、次のペアがあります。 (0,1) (0,2) (0,3) (1,2) (1,3) (2,3) 私はすでにペアを持っています。次に、n/2整数が繰り返されないようにペアを使用して組み合わせを作成する必要があります(つまり、各整数は最終的な組み合わせで少なくとも1回出現します)。理解を深めるための正しい組み合わせと間違った組み合わせの例を次に示します 1. (0,1)(1,2) [Invalid as 3 does not occur anywhere] 2. (0,2)(1,3) [Correct] 3. (1,3)(0,2) [Same as 2] ペアができたら、可能性のあるすべての組み合わせを生成する方法を誰かが提案できますか?

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

3
NPで「明らかに」ではないNP完全問題
私が読んだすべての完全性証明(覚えている)で、問題がにあることを示し、それがであることを示すことは常に些細なことです。 -ハードは...ハードな部分です。何 -completeの問題は、その多項式時間検証非常に非自明であるこれらは何ですか?NP\textbf{NP}NP\textbf{NP}NP\textbf{NP}NP\textbf{NP}

1
正規表現ゴルフはNP-Completeですか?
この最近のXKCDストリップと最近のブログ投稿に見られるようにPeter Norvig(および後者を特徴とするSlashdotの物語)から、「regex golf」(正規表現分離問題と呼ばれることもあります)は、セットAのすべての単語を受け入れ、単語を受け入れない最短の正規表現を定義するパズルです。セットB. Norvigの投稿には、適度に短い候補を生成するためのアルゴリズムが含まれており、彼のアプローチはNP完全なSet Cover問題の解決を伴うことに注意しますが、そしてもちろん、彼だけが必ずしもアルゴリズムではないため、彼の解が最適であるとは限りません。また、他の確実な多項式時間アルゴリズムが同等またはより良い解を見つける可能性もあります。 具体性のために、また最適化の問題を解決する必要を避けるために、正規表現分離の最も自然な定式化は次のようになると思います。 2(有限)与えられたセットとB、いくつかのアルファベットを超える文字列のΣを、長さの正規表現があり≤ kの中のすべての文字列受け付けAをし、内のすべての文字列を拒否するBは?AAABBBΣΣ\Sigma≤k≤k\leq kAAABBB この特定の分離問題の複雑さについて何か知られていますか?(とBを文字列の有限セットとして指定しているため、問題のサイズの自然な概念はAとBのすべての文字列の合計の長さであることに注意してください。これはkからの寄与を圧倒します)。それは NP完全である可能性が非常に高いと思われますが(実際、何らかのカバー問題への削減が期待されます)、いくつかの検索は特に有用なものを見つけていません。AAABBBAAABBBkkk

2
問題がNP完全である可能性があるかどうかを知るための経験則
この質問はStackOverflowに関するコメントに触発されました。 Garey Johnsonの本や他の多くのNP完全問題を知っていることは別として、問題がNP完全な問題のように見えるかどうかを知るための経験則はありますか? 厳密なものを探しているのではなく、ほとんどの場合に機能するものを探しています。 もちろん、問題がNP完全であること、またはNP完全問題のわずかな変形であることを証明する必要があるたびに。しかし、証明に急いで行く前に、証明の肯定的な結果に一定の自信を持つことは素晴らしいことです。

1
文字列内の最長の繰り返し(散乱)サブシーケンス
非公式の問題声明: ACCABBABACCABBABACCABBABなどの文字列が与えられたとき、左から右に赤い文字のみを読むと、読むのと同じ結果が得られるように、いくつかの文字を赤、いくつかの文字を青に色付けします。青い文字のみ。 例では、次のように色を付けることができますACCABBABACCABBABA\color{blue}{C}\color{red}{CAB}B\color{blue}{AB} したがって、CABCABCABは繰り返しサブシーケンスであると言いACCABBABACCABBABACCABBABます。また、最長の繰り返しサブシーケンスです(確認しやすい)。 最長の繰り返しサブシーケンスを効率的に計算できますか? 正式な質問: 文字列といくつかのkkkについて、長さ繰り返し部分シーケンスがkkk文字列に存在するかどうかを決定するのはNP困難ですか? その場合:どの問題をこの問題に減らすことができますか? そうでない場合:効率的なアルゴリズムとは何ですか?(明らかに、このアルゴリズムを使用して、最長の繰り返しサブシーケンスを計算できます) ボーナス質問: アルファベットのサイズが定数で制限されている場合、それらは常に長さ繰り返し部分シーケンスになりn/2−o(n)n/2−o(n)n/2 - o(n)ますか? (これはバイナリアルファベットに当てはまることが知られています。) 編集2:ボーナス質問に対する否定的な答えは、少なくとも文字のアルファベットで既に知られています555。実際、サイズがアルファベットの場合、長さが単に最も長い繰り返しサブシーケンスを持つ文字列があります。これを表示するには、ランダムな文字列で十分です。結果はすでに存在していましたが、見落としていました。ΣΣΣO(n⋅Σ−1/2)O(n·Σ−1/2)O(n · Σ^{-1/2}) 編集: 注: 一部の人々は、「サブシーケンス」と言うときに「サブストリング」を意味します。しません。これは、サブストリングを2回見つける問題ではありません。

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のこちらも参照してください。

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