実際には、直感に反して解決できる問題はありますか?


21

最近、私は計算の複雑さの概念を非公式に説明した痛みを伴う楽しい経験を経験しました。才能のある独学のプログラマーはアルゴリズムや複雑さの正式なコースを受講したことがありません。驚くことではないが、概念の多くは、いくつかの例で最初のが、作られた意味で奇妙に思えた(PTIME、扱いにくさ、uncomputability)他の人がより自然に来るように見える一方で、(リソース、漸近解析などの削減、時間と空間を経由して、問題の分類を)SATを誤って認めるまで、すべてが順調でした効率的に解決できます*実際には...そしてそのように、私はそれらを失いました。私がどれほど説得力を持って理論を主張しようとしていたかは関係ありませんでした。子供はそれがすべて人工的なくだらない数学であると彼が気にするべきではないと確信していました。まあ...

¯\ _(ツ)_ /¯

いいえ、私は心を痛めていませんでしたし、彼が何を考えていたかについても気にしませんでした。それはこの質問のポイントではありません。私たちの会話は私に別の質問を考えさせました、

理論的には難解(超多項式時間の複雑さ)であるが、実際には(ヒューリスティック、近似、SATソルバーなどを介して)解ける問題について、実際にどのくらい知っていますか?

あまり気づかなかった。私は、巨大なインスタンスを効率的に解決するいくつかの非常に効率的なSATソルバーがあり、シンプレックスが実際にうまく機能し、さらにいくつかの問題やアルゴリズムがあることを知っています。より完全な絵を描くのを手伝ってもらえますか?このカテゴリに含まれる既知の問題または問題のクラスはどれですか?

TL; DR:実際には、直感に反して解決できる問題とはですか?さらに読むための(更新された)リソースはありますか?それらの特性はありますか?そして最後に、一般的な議論の質問として、我々はそうではないでしょうか?

EDIT#1:例えば、約私の最後の議論の質問に答えるためにしようとして特徴づけを、私はに導入された平滑化解析アルゴリズムの、連続ワーストケースの間を補間すること[1]でダニエル・スピールマンとシャン・フア・テンによって導入コンセプトとアルゴリズムの平均ケース分析。これは、上記の説明とまったく同じではありませんが、同じ概念を捉えており、興味深いものでした。

[1] Spielman、Daniel A.、およびShang-Hua Teng。「アルゴリズムのスムーズな分析:シンプレックスアルゴリズムが通常多項式時間を要する理由。」Journal of the ACM(JACM) 51、no。3(2004):385-463。


6
SATは実際に効率的に解決できると述べることはどういう意味ですか?なぜあなたの友人はインターネットのセキュリティに依存していますか?おそらく実際には難しい問題はありませんか?堅牢性は、ポリタイム/効率的な可解性の主な利点の1つです。
チャンドラチェクリ

6
グラフ同型は自然な候補です。
DW

2
ねえ、@ ChandraChekuri、私が意味したのは、実際にSATソルバーが数百万の変数と句でSATインスタンスに答えることができるということでした。または、少なくとも、そうだと思いました。「インターネット上のセキュリティ」についてあなたが何を意味するのか理解していないのですか?私は形式主義に反対しているわけではなく、理論的には扱いにくい問題に興味がありますが、すべての実用的な目的のために(おそらく、きちんとした近似のため、実世界のインスタンスの特別な構造などのために)「扱いやすい」。
コンスタンティノスコイリアリス

1
@KonstantinosKoiliarisポイントは、すべての種類の暗号化プロトコルのセキュリティが(通常はもっと強力なもの)に依存しているため、SATソルバーにとって非常に難しい日常的な問題の例を数多く提供していると思います(とにかく、そう願っています)。PNP
EmilJeřábekは、モニカをサポートします

2
このように、一般的な複雑さを確認することをお勧めします。実際、停止問題は、たとえばSATのように、ほぼ常に多項式時間で解けることが判明しています(実際、SATにはより強力な保証があります)。「ほぼ常に」とは、多項式時間でアルゴリズムが停止する(もちろん正しい答えを出力する)入力の割合が、入力の長さが長くなるにつれて1になるようなアルゴリズムを認めることです。
ギジェルモアンジェリス

回答:


17
  • 高度に構造化されたSATインスタンス(何百万もの変数であっても)は、実際に解決できることがよくあります。ただし、数百個の変数を含む充足可能性しきい値に近いランダムなSATインスタンスはまだ開いています(実際には、そのようなものを生成した場合、生成したものが充足可能かどうかは宇宙の寿命の中で決してわからない可能性があります現在のSATソルバーを使用)。この関連する質問とその回答に興味があるかもしれません。

  • クリークファインダは、「実際に」衝撃的に優れています

  • 整数計画法と混合整数線形計画法(一部の有理変数と一部の整数変数を使用)は、Operations Research部門全体の焦点であり、しばしば(常にではないが)実際に解決できる

  • 私が理解していることから、検証で発生する多くの完全な問題は実際に解決できることがよくありますが、「実際」は通常「高度に構造化されたインスタンス」を意味します。(対照的に、Goのゲームの非常に小さなインスタンスで誰が勝つかはまだわかりません。これは別のP S P A C E完全な問題です。)PSPACEPSPACE

  • 計算代数幾何学の多くの問題は、Grobnerベースを使用する小さなインスタンスで実際に解決できますが、これらは大きなインスタンス、または「複雑性」の高い小さなインスタンス(Castelnuovo-Mumford規則性で測定)で惨めに失敗します。そして、これらの問題は完了です!EXPSPACE

  • DWのコメントで既に指摘したように、グラフ同型は実際にはほとんど解決できます。nauty、bliss、saucyなどの最新のGIソフトウェアを切り詰めるのは非常に困難です。


ジョシュアに感謝します。最も興味深い/広範な問題が提案された場合、私はあなたにそれを与えています。
コンスタンティノスKoiliaris

1
クリークファインダは実際には常に良いとは限りません。本当にグラフに依存します。そして、あなたのリンクはランダムなグラフについてのみ話しているようです。
ピーターショー

GIについてもう少し詳しく:言及されたものなど、ほとんどの最先端のGIソルバーは、最適化された個別化-洗練アプローチを使用します(洗練は色の洗練であり、ほぼすべてのグラフに対して準線形GIテストとして既に機能します) 、しかし、NeuenとSchweitzerは最近、このメソッドの指数関数的な下限を示し、(実際に)ハードインスタンスを構築しました。
ウォータークリスタル

1
@JoshuaGrochow:はい、これについては同意します。OPは、指数関数的な下限が既知であり、ここでも同じ状況になっているにもかかわらず、シンプレックスが実際に非常にうまく機能することを具体的に述べているように、質問の「直感に反する」部分を拡大したかっただけです。
ウォータークリスタル

1
私はケラーの予想を経験したばかりで、(明らかに大きい)グラフは多くのクリーク発見アルゴリズムを妨害しました。
ピーターショー

14

ヒンドリー-ミルナーのタイプのシステムは、機能プログラミング言語(ハスケル、SML、OCamlの)に使用されます。型推論アルゴリズムは実際にはほぼ線形であり、驚くほどうまく機能しますが、DEXPTIME完全であることが知られています!

一般的なコメント:最悪の時間の複雑さが必ずしもアルゴリズムの実際のパフォーマンスの非常に良い尺度ではないことは驚くことではありません。しかし、理論と実践の不一致が複雑性理論を役に立たないと言うのは、利用可能なすべての数のごくわずかな量しか使用しないため、自然数は無駄だと言うようなものです。有名な哲学者はかつて「理論のない経験は盲目ですが、経験のない理論は単なる知的遊びです」と言っていました


FPL

6

主にプログラミング言語のその他の例:

  1. k-CFA(k-Control Flow Analysis)はEXPTIME完全(Van Horn&Mairson 2008)ですが、MLtonのようなプログラム全体最適化コンパイラーはとにかくそれを実行します。コンパイル時間は長くなりますが、めったに壊滅的ではありません。
  2. (動的な)オーバーロードの解決は、通常NP完全です(Palsberg 2012)。しかし、それは現実の世界ではめったに問題ではありません。
  3. k
  4. SMTソルバは一般にNP完全ですが、市販のSMTソルバ(Z3やCVC4など)は通常かなり高性能です。私はSMTソルバーを直接使用していませんが、Liquid HaskellとDafnyからZ3を間接的に使用しており、チェック時間は問題ないようです。
  5. プレスバーガー算術の決定問題は本当に複雑ですが(Fischer&Rabin 1974)、ビルピューの決定アルゴリズムであるオメガテスト(Pugh 1991)は、一般に低次の多項式時間内で実行されます。

Onn


参照:

[1]デビッドヴァンホーンとハリーG.メアソン。2008. EXPTIMEのkCFAの決定が完了しました。で関数型プログラミング第13回ACM SIGPLAN国際会議の議事録(ICFP '08)。ACM、ニューヨーク、ニューヨーク、米国、275〜282。

[2] http://web.cs.ucla.edu/~palsberg/paper/dedicated-to-kozen12.pdf

[3] MJフィッシャーとMOラビン。1974年。プレスバーガー算術の超指数関数的複雑さ。テクニカルレポート。米国マサチューセッツ州ケンブリッジのマサチューセッツ工科大学。

[4]ウィリアム・ピュー。1991. Omegaテスト:依存性解析のための高速で実用的な整数プログラミングアルゴリズム。ではスーパーコンピューティングの1991 ACM / IEEE会議の議事録(スーパーコンピューティング'91)。ACM、ニューヨーク、ニューヨーク、米国、4-13。


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