効率的な計算の概念


11

多項式時間のチューリングマシンアルゴリズムは、最悪の場合の実行時間が入力サイズの多項式関数によって制限されている場合に効率的であると見なされます。私は強い教会チューリング論文を知っています:

Turingマシンで合理的な計算モデルを効率的にシミュレーションできます

しかし、私は -calculusのアルゴリズムの計算の複雑さを分析するための確かな理論を知りません。λ

既知のすべての計算モデルについて、計算効率の概念はありますか?計算可能性の質問だけに役立つが、計算の複雑さの質問には役に立たないモデルはありますか?

回答:


9

私の知る限り、計算可能性の主なモデルは、λ計算、チューリングマシン、再帰関数です。私は再帰関数の複雑さに関する状況を知りません、それらは複雑さのために役に立たないかもしれません。

非常に非効率的なマシンであるチューリングマシンも複雑さの非常に優れたモデルであることは、幸運な偶然と見なすことができます。物事を自然にしたのは、多項式であるTMを含む多くの変換があることです。(ユニバーサルマシン、1テープマシンを使用したテープマシンのシミュレーション、任意のアルファベットから2進数のマシンへのシミュレーション、PRAMのシミュレーションなど)そして、その多項式は、算術演算と合成によって安定した関数のクラスです–これは、それらを複雑性理論の優れた候補にします。n

純粋なλ計算はそれ自体、複雑さのために役に立たなかった。しかし、単純な型システムが登場し、非常に簡単な方法でいくつかのλ項の終了の保証が可能になりました。次に、他のいくつかのシステム(システムTF、..)は、終了を維持しながら優れた表現力を許可しました。

効率や複雑さは終端の改良であり、タイプはロジックに密接に関連していますが、後にいくつかのクラスの複雑さを特徴付ける軽い線形ロジックが登場しました。(基本、P、およびPSPACEおよびその他のいくつかのバリエーション)。この分野の研究は非常に活発であり、これらの複雑さのクラスに制限されておらず、λ計算にも制限されていません

tl; dr: λ計算は、計算可能性、終了、複雑性理論に役立ちました。

ただし、クレジットが原因でクレジットを付与するチューリングマシンは、複雑さを定義するための優れた満場一致の方法ですが、これは「多項式」などの緩い境界にのみ当てはまり、PRAMのようなモデルがより適切な厳密な境界には当てはまりません。


では、RAMのようなモデルを使用してほとんどのランタイム分析を行うのはなぜですか。
ラファエル

現実には、基本的なメモリ操作が(と主張し)、RAMのようなモデルは、ような厳しい境界にはるかに適しています。だからあなたは正しい:PRAMからの変換があなたの境界にあまり影響を与えないとき、チューリングマシンは素晴らしいです。(たとえば、問題がPまたはL / NLにあることを証明した場合)O log | m e m o r y |n log 2 7O(1)O(log|memory|)nlog27
jmad

@Raphael:あなたは私の最後の文章に反応しましたよね?
jmad 2012年

はい、ありました(経験の浅い読者のために)。
ラファエル

1

時間の複雑さに関しては、ラムダ計算ではこれは難しいと思います。その理由は、ラムダ計算の単位計算ステップが -reduction(wikipedia entry):すべての式に関係なくこの長さの場合、このモデルでは計算時間ステップがかかります。λ X T E R MV T E R M [ X = V ] 1β

(λx.term)vterm[x:=v]
1

redexeの数またはサイズの点で -reductionにコストをかけることができます。これは実際に広範囲にわたって研究されてきました(たとえば、最適な削減に関するリファレンスを探してください)。β
Gilles 'SO-悪をやめる'

@ギレス:最適な削減を実装するための実際の(単一モデルの)コストがわからないため、あなたの発言はあまり関係ありません。とりあえず、これらの研究はこの回答で述べられた問題の洗練を提供するだけです。
ステファン・ヒメネス

1

標準的な複雑性モデルにλ計算を含めることについて、これは主題に関するいくつかの(非常に)新鮮な研究からの要約です。これは、いくつかの制限された形のβ還元についてこの質問への回答を提供します。基本的に、標準コストモデルの複雑さは、ヘッド削減(名前による呼び出しと値による呼び出しの戦略を含む)に制限されている場合の β削減ステップのカウントに似ています。

Beniamino AccattoliとUgo Dal Lagoによる頭部縮小のための単一コストモデルの不変性について。(WST2012、議事録へのリンク

λ計算は、高次関数プログラムの広く受け入れられている計算モデルですが、直接かつ普遍的に受け入れられているコストモデルはありません。結果として、λ項を通常の形式に減らす計算の難しさは、具体的な実装アルゴリズムを推論することにより、通常研究されます。ここでは、ヘッド削減が基本的なダイナミクスである場合、ユニタリーコストモデルが実際に不変であることを示します。これは、弱い(値による呼び出しまたは名前による呼び出し)削減のみを処理する既知の結果を改善します。不変性は、明示的な置換の線形計算によって証明されます。これにより、λ計算のヘッド削減ステップをより基本的な置換ステップにうまく分解できるため、ヘッド削減の組み合わせ論をより簡単に推論できます。


OPは、複雑さの分析を認めないモデルを求めました。 -calculusは動機としてのみ機能しました。λ
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.