多項式時間の単純な(非数学的な)定義?


7

計算複雑性理論は複雑です。多項式時間についての私の理解は、非決定論的多項式時間などの他の時間複雑性クラスとの関係です。これはエンジニアや数学者には問題ありませんが、私は一般の人に適した簡単な用語の定義を探しています。

  • 多項式時間を「(計算)演算で測定された時間」としてキャストするのは間違っているでしょうか?

明らかに、さまざまな時間複雑度クラスの後続の資格があり、時間複雑度は問題のサイズに基づいた比率であることが適切かもしれませんが、ここでも、ここで求めているものよりも少し複雑です。


2
一定時間:一度実行するのは簡単です数百万回実行するのは簡単です、多項式時間:一度実行するのは簡単です数百万回実行するのは難しいです、指数関数時間:一度実行するのは簡単です数百万回実行するのはほとんど不可能です。
slebetman 2017

あなたは実際に一般人に多項式時間を説明しようとしていますか、それとも多項式時間アルゴリズムと指数時間アルゴリズムの実際的な違いだけですか?おそらく、彼らは「多項式時間」が実際に何を意味するのかを知る必要がないのでしょうか?
ロマン・スターコフ2017

1
@RomanStarkovおそらく、多項式時間について具体的に言及するのではなく、「時間の複雑さの非数学的な定義」という質問をしたはずです(これは、私の問い合わせの性質について混乱を引き起こしたようです)。実際には、基本的な条件と時間の複雑さの質の単純で非常に高レベルの定義。これは計算操作のようです。指示対象は熱力学的時間かもしれません。これは、科学プログラムに関する公の学者が非常に単純な用語で説明したものです。
DukeZhou 2017

回答:


9

「多項式時間」は、アルゴリズムの実行時間に関する記述です。理論的には、アルゴリズムの実行時間は、アルゴリズムが実行する基本的な操作の数です。これは、アルゴリズムがコンピューターで実行されるのにかかる時間に比例すると予想されます。多項式時間とは、実行時間は最大でも入力のサイズが(指定されていない)多項式であることを意味します。たとえば、入力サイズの2乗、または立方体などに比例します。多項式時間アルゴリズムは、多くの場合、実際に実装するのに十分効率的です。

https://en.wikipedia.org/wiki/Time_complexity#Polynomial_timeおよびhttps://en.wikipedia.org/wiki/Cobham%27s_thesisを参照してください


DWさん、ありがとうございます。質問では自分のことをうまく表現できませんでしたが、これが私が探していた答えです! (つまり、この答えは一般大衆に適していて、数学を必要としません。)
DukeZhou

41

多項式時間アルゴリズムは、入力のサイズが2倍になると、実行時間が一定の係数で増加するアルゴリズムです。

指数時間アルゴリズムは、入力サイズが1増えると実行時間が定数係数だけ増えるアルゴリズムです。

素人の場合は、おそらく、指数関数的な時間でのみ解決できる問題を含むNP完全な問題を特定できますが、これは多くの点で間違っています。


1
より正確な「多項式時間で解けない」よりも「指数時間でのみ解ける」の方が簡単ですか?
ラファエル

1
実際の信念は、これらの問題は指数関数的な時間でのみ解決可能であるということです。
Yuval Filmus

1
NPの場合、「解を検証し、それらが正しいことを多項式時間で確認する方法がある」とだけ言います。NPの完全な言い方については、「これらの問題は興味深いものです。問題の内部に実際に小さなコンピューターを構築して、他の問題を検証できるため、他のすべてのNPの問題はNP完全な問題の特殊なケースです」などです。P = NPは、「正しい解決策を認識するのに十分な知識がある場合、それは原則としてそれらを作成するのに十分な知識があることを意味しますか?ほとんどの専門家は考えていない ...」
CR Drost

1
@ rus9384いくつかのコンテキストが欠落しているので、返信している回答をもう一度読んでください。のO(n8) アルゴリズムは 28その定数として。
CR Drost 2017

1
増加には一定の要因があると思いませんか?
PyRulez 2017

38

多項式時間を「(計算)演算で測定された時間」としてキャストするのは間違っているでしょうか?

はい。完全に間違っています。

「時間」は確かに「(計算)操作で測定された時間」を意味しますが、「多項式」をまったく翻訳していません。「12日間」を「地球の自転数で測定された時間」と解釈するようなものです。それがまさに「日」の意味ですが、「12」はどうなりましたか?

多項式は本質的に数学的なオブジェクトであり、数学を使用せずにそれらを説明する方法はないと思います。多項式アルゴリズムは通常、かなり効率的であると見なされていることを説明できますが、それは多項式関係が何であるかの結果であり、それを説明するものではありません。


1

これらの問題空間の簡単な定義を提供するためにできることは、実際にはあまりありません。PやNPなどの問題空間は、いくつかの数値nが無限大になる漸近的な振る舞いによって定義されることに注意してください。無限に行くことが有用である平凡な状況はなく、そのように定義するために必要な精度は残忍です。

このように、私はPとNPを「高速」と「低速」と表現するのが最も簡単であり、暗号化の実際の例を使用するのは、人々にとって興味深いためです。私はNPから始めます(高速および低速のPアルゴリズムがあるため、Pを導入する前に、「低速」の概念を指数時間の概念に固定したいと思います)。たとえ複利であったとしても、誰もがどこかである種の幾何学的な成長に対処してきたので、そこから始める必要があります。

彼らが指数関数的な時間について何らかの考えを持っていると思ったら、暗号リンクを紹介します。暗号化の目標の1つは、キーに1ビットを追加すると、キーを解読するのにかかる時間が2倍になることです。重要な部分は、送信者/受信者に作業を追加すると、攻撃者が必要とする作業量が増えるという考えを結びつけることです。

これで、ムーアの法則を導き出すことができます。ムーアの法則では、計算能力は18か月ごとに2倍になります。つまり、ハードウェアが追いつくのを待つことができれば、攻撃者は2倍の作業を行うことができます。彼の攻撃能力が2倍になったら、少し追加する必要があります。それから彼は再び倍増し、私は少し追加します。彼らはすべての時間-それから私はこのゲームがどれだけ非対称を示すことができる大規模な余分な作業の量は、私も物事を保つために、ほんの少し余分な作業を行う必要があります。

これで、指数時間よりも高速に実行されるアルゴリズムとして多項式時間を教えることができます。これは少し単純化されていますが、一般の人にとっては大丈夫だと思います。私の暗号アルゴリズムが多項式時間であった場合、攻撃者の計算速度が向上したため、ビットをどんどん速く追加し、システムを停止させなければなりませんでした。 コンピュータの動作が遅いときの意味は誰もが知っています。

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