実数の計算の複雑さの定義を判断する方法は自然ですか、それとも適切ですか?


11

知っているように、アルゴリズムの計算の複雑さの定義はほとんど議論の余地がありませんが、実数または実数上の計算モデルの計算の複雑さの定義はそのような場合ではありません。本「Computable Analysis」で、Blum and Smalesのモデルとモデルを知っています。そして一見、Computable Analysisのモデルは古典的なモデルと一致していますが、実数の計算の複雑さの定義は古典的なモデルに移植できません。

実数の計算の複雑さの定義を判断する方法は自然ですか、それとも適切ですか?

そして、実数の計算の複雑さの定義を古典的なモデルに移植する方法は?


最初の質問では、「自然」は非常に主観的な概念であり、尋ねる人によっては、どちらか一方の定義が最も自然とみなされます。「適切」については、BSSモデルが計算幾何学または計算代数幾何学に適しているように見え、計算可能分析のモデルは...計算可能分析により適しています。2番目の質問がわかりません。
ブルーノ14年

@Bruno、コメントありがとうございます計算可能分析では、その表現、つまり計算の入力に依存します。
XL _At_Here_There 14年

3
実数の計算には複雑な概念があり、実数の表現とは独立していると思われるようです。何があなたをそう思わせますか?これは、古典的な複雑さにも当てはまりません。テープまたはRAMマシンがあるかどうか、グラフを隣接リストまたは01-マトリックスなどで表すかどうかが重要です。
Andrej Bauer

3
しかし、複雑さが表現に依存しないことは事実ではありません。愚かな表現に切り替えることで、常にアルゴリズムの複雑さを台無しにすることができます。質問は次のとおりです。「入力の適切な表現は何ですか?」離散問題の場合、これは実数の場合よりも答えるのがはるかに簡単です。「ビットを浪費しない」ことの意味をよく理解しているからです。
アンドレイバウアー14年

3
BSSモデルは計算幾何学に適しているようです関連する質問に対する私の答えをご覧ください。計算幾何学で使用されるReal RAMモデルは、ほぼ10年前にBlum、Shub、およびSmaleに先行します。
ジェフ14年

回答:


13

ここで質問が何であるかは正確にはわかりませんが、誤解を取り除くために少し言うことができます。

まず、マップ複雑さについて話している場合、「適切な表現は何ですか?」と尋ねても意味がありません。代わりに、「すべての入力の適切な表現は何ですか?」と尋ねる必要があります。状況を離散数学の簡単な状況と比較してください。入力としてグラフを使用するアルゴリズムについて説明するとき、「ピーターセングラフを隣接リストまたはバイナリマトリックスとして表現すべきか?」代わりに、すべてのグラフで機能する統一された表現を自動的に考えます。f:RR f2f

警告の別の言葉。入力データの表現を変更することにより、我々はでき常に(非計算を含む)任意の問題は自明計算する:せるために計算の要素表すペアとして。次に、2番目の射影でを「計算」できます。これは、データを表すことの意味について明確な基準が必要であることを示しています。A a f a ff:ABA(a,f(a))f

要素を表現するために必要なことについて何度か書いています。答えは何に依存した構造のあなたが撮影しようとしています。構造をキャプチャしない場合は、たとえば、空のリストですべての実数を表すことができます。表現の条件の合理的なリストは、次のようなものである必要があるということです。R RRRR

  1. 算術演算、、、は計算可能であり、絶対値。× / | |+×/||
  2. 実数のと取り、ような整数を出力するプログラムがあります、つまり、任意の適切な有理近似を計算することが可能です。のk Nの P Q | x p / q | 2 - KxkNp,q|xp/q|2k
  3. 実数と(の表現)を取り、場合にのみ終了するプログラムがあります。つまり、厳密な順序が半決定可能です。y x < yxyx<y
  4. ような(の表現の)シーケンスが与えられた場合 制限の表現を計算できます。(xn)n|xn+1xn|2nlimnxn

これらの条件が正しいものである理由を説明する古い定理(参照については、このペーパーの紹介を参照)があります。また、これらの定理は、実数のそのような2つの表現が計算上同型であることを示しています。つまり、プログラム間で変換できます。これにより、誤ったアイデアを投げ出す正確性の基準が設定されます。

たとえば、「有理数は有限の情報で表すことができるので、それを有理数に使用してください。無理数は無限の情報で表現する必要があります」と言う人がいます。この種のことは、上記の4番目の条件に違反するため機能しません(無理数の制限を考慮してください。合理的に収束していることをどのように確認しますか?)。

上記の条件が排除するもう1つの例は、Blum-Shub-Smaleモデルです。このモデルでは、シーケンスの制限を計算できないためです。BSSモデルは、実数そのものではなく、実数(存在するパラメーターによって生成される)の離散的な順序付けられたサブフィールドで機能すると言う方が適切です。

実数の正しい表現の中には、実数が他のものよりも効率的であるものもありますが、実数は無限のオブジェクトであるため、これは議論がやや難しいトピックです。マティアス・シュレーダー、複雑さの合理的な理論のためには、表現の位相的性質に注意を払う必要があると指摘しました。

最後に、どのように我々は、マップの複雑さを測定する必要があり、我々は良いの表現持っていると仮定すると?ので、関数、または情報の無限ストリーム、またはいくつかの、例えば、我々は、のいずれかを使用すべきで表される複雑さの高いタイプの概念を。どちらがおそらくあなたが使用している表現に依存します。f:RRRxR

BSSモデルは、算術演算をカウントする合理的な回路複雑度モデルでもあります。このモデルは実数に関するものではなく、他の何かに関するものであることに留意してください。


2
ご回答ありがとうございました。私は計算の複雑さのいくつかの概念について不快に感じ、参考文献を読んでしばらく考えてみましょう、そして私がとても不快である理由を説明するために適切なものを見つけることができれば例を挙げましょう(これは面白いようですが、私の経験は教えてくれます不快に感じる場合、何か特異なものがあるはずです)
XL _At_Here_There 14年

4
私の経験では、新しい知識について不快に感じることは良い兆候であり、通常は啓発の前提条件です。
アンドラスサラモン

3

検討する可能性のあるもう1つのモデルは、Feasible RAMモデルです。これは、実計算用の修正されたリアルRAMモデル、実行可能RAM、または離散値演算と実数値演算の両方を使用する修正されたRAMモデルです。このモデルは実際の離散操作を可能にし、チューリングモデルはそれと交換可能です。Feasible RAMモデルには、不確実性で定義された精度があります。つまり、では、変数の不確実性1 /(k + 1)までしか実数の比較ができません。これにより、近似計算が可能になります。また、Vasco BrattkaaとPeter HertlingbがFeasible Real Random Access Machinesで述べているように、TuringのモデルとFeasible Real RAMのモデルは関連しています。時間でチューリングマシンで計算可能なすべての関数<kO(t)時間 RAMで計算可能であり、表側の場合、関数を計算するチューリングマシンのオーバーヘッドがあります(実際のRAMが関数を計算する場合、TMは関数を計算します。位相論的考察が有用であるように、実際の計算を可能にするこの計算モデルのために開発された位相論的コンテキストがあるかどうかはわかりません。正確に。O(t)O(t)O(t2log(t)log(log(t)))


実行可能なRAMモデルのリファレンスを教えてください。
XL _At_Here_There 14年

上記の「...この参照の状態...」には、記事へのリンクがあります。
user3483902

2
Brattka&Hertlingの仕事を指摘してくれてありがとう、その時までに私はそれを言及するつもりだった。Feasible RAMモデルには高次関数は含まれておらず、特に(高速)コーシーシーケンスの制限を計算できないため、「実数」を正確に実装しているとは見なしません。いわゆる「トップレベル」の制限を1つ計算できます(関数の合理的な近似について説明している論文の部分を参照)。
アンドレイバウアー14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.