計算複雑性理論は複雑です。多項式時間についての私の理解は、非決定論的多項式時間などの他の時間複雑性クラスとの関係です。これはエンジニアや数学者には問題ありませんが、私は一般の人に適した簡単な用語の定義を探しています。
- 多項式時間を「(計算)演算で測定された時間」としてキャストするのは間違っているでしょうか?
明らかに、さまざまな時間複雑度クラスの後続の資格があり、時間複雑度は問題のサイズに基づいた比率であることが適切かもしれませんが、ここでも、ここで求めているものよりも少し複雑です。
計算複雑性理論は複雑です。多項式時間についての私の理解は、非決定論的多項式時間などの他の時間複雑性クラスとの関係です。これはエンジニアや数学者には問題ありませんが、私は一般の人に適した簡単な用語の定義を探しています。
明らかに、さまざまな時間複雑度クラスの後続の資格があり、時間複雑度は問題のサイズに基づいた比率であることが適切かもしれませんが、ここでも、ここで求めているものよりも少し複雑です。
回答:
「多項式時間」は、アルゴリズムの実行時間に関する記述です。理論的には、アルゴリズムの実行時間は、アルゴリズムが実行する基本的な操作の数です。これは、アルゴリズムがコンピューターで実行されるのにかかる時間に比例すると予想されます。多項式時間とは、実行時間は最大でも入力のサイズが(指定されていない)多項式であることを意味します。たとえば、入力サイズの2乗、または立方体などに比例します。多項式時間アルゴリズムは、多くの場合、実際に実装するのに十分効率的です。
https://en.wikipedia.org/wiki/Time_complexity#Polynomial_timeおよびhttps://en.wikipedia.org/wiki/Cobham%27s_thesisを参照してください。
多項式時間アルゴリズムは、入力のサイズが2倍になると、実行時間が一定の係数で増加するアルゴリズムです。
指数時間アルゴリズムは、入力サイズが1増えると実行時間が定数係数だけ増えるアルゴリズムです。
素人の場合は、おそらく、指数関数的な時間でのみ解決できる問題を含むNP完全な問題を特定できますが、これは多くの点で間違っています。
多項式時間を「(計算)演算で測定された時間」としてキャストするのは間違っているでしょうか?
はい。完全に間違っています。
「時間」は確かに「(計算)操作で測定された時間」を意味しますが、「多項式」をまったく翻訳していません。「12日間」を「地球の自転数で測定された時間」と解釈するようなものです。それがまさに「日」の意味ですが、「12」はどうなりましたか?
多項式は本質的に数学的なオブジェクトであり、数学を使用せずにそれらを説明する方法はないと思います。多項式アルゴリズムは通常、かなり効率的であると見なされていることを説明できますが、それは多項式関係が何であるかの結果であり、それを説明するものではありません。
これらの問題空間の簡単な定義を提供するためにできることは、実際にはあまりありません。PやNPなどの問題空間は、いくつかの数値n
が無限大になる漸近的な振る舞いによって定義されることに注意してください。無限に行くことが有用である平凡な状況はなく、そのように定義するために必要な精度は残忍です。
このように、私はPとNPを「高速」と「低速」と表現するのが最も簡単であり、暗号化の実際の例を使用するのは、人々にとって興味深いためです。私はNPから始めます(高速および低速のPアルゴリズムがあるため、Pを導入する前に、「低速」の概念を指数時間の概念に固定したいと思います)。たとえ複利であったとしても、誰もがどこかである種の幾何学的な成長に対処してきたので、そこから始める必要があります。
彼らが指数関数的な時間について何らかの考えを持っていると思ったら、暗号リンクを紹介します。暗号化の目標の1つは、キーに1ビットを追加すると、キーを解読するのにかかる時間が2倍になることです。重要な部分は、送信者/受信者に作業を追加すると、攻撃者が必要とする作業量が増えるという考えを結びつけることです。
これで、ムーアの法則を導き出すことができます。ムーアの法則では、計算能力は18か月ごとに2倍になります。つまり、ハードウェアが追いつくのを待つことができれば、攻撃者は2倍の作業を行うことができます。彼の攻撃能力が2倍になったら、少し追加する必要があります。それから彼は再び倍増し、私は少し追加します。彼らはすべての時間-それから私はこのゲームがどれだけ非対称を示すことができる大規模な余分な作業の量は、私も物事を保つために、ほんの少し余分な作業を行う必要があります。
これで、指数時間よりも高速に実行されるアルゴリズムとして多項式時間を教えることができます。これは少し単純化されていますが、一般の人にとっては大丈夫だと思います。私の暗号アルゴリズムが多項式時間であった場合、攻撃者の計算速度が向上したため、ビットをどんどん速く追加し、システムを停止させなければなりませんでした。 コンピュータの動作が遅いときの意味は誰もが知っています。