不動点、コンピューターサイエンスの世界で何を意味するのか


19

stackexchangeの質問と回答で不動点への参照に出くわし続け、Wikipediaなどのサイトで参照を見つけていることをWebで明らかに調べています。しかし、参考文献のどれも、固定小数点とは何であり、コンピューターサイエンスの世界では何を意味するのかという私の質問に実際に答えているものはありません。


1
通常、固定小数点の概念がようないくつかのペア由来する場合でも、用語がさまざまな意味と結果で使用されるさまざまなフレームワークがあります。f,xf(x)=x
ラファエル

これは私を助けました。無料の再帰型!
ガイコーダー14年

回答:


17

コンピュータサイエンスでは、ほぼ間違いなく固定小数点の最も顕著な使用法は格子理論です ¹。ラティスは、任意の2つの要素が与えられ、追加のプロパティを持つ部分的に順序付けられたセットであり、セットは()上限と下限の両方を持ちます。(S,)x,yS{x,y}S

今、あなたは、多くの場合、考慮単調関数をいくつかのためである、「収束」、この格子上のあなたが持っている。この分野での重要な結果は、Kleeneの不動点定理Knaster-Tarski定理です。fxSf(x)=x

顕著な例は、格子であるのための一部のセット、および誘導定義によって誘導されます。例えば、聞かせて、我々は、言語定義によって(2A,)AfA={a,b}L2{a,b}

wLε,aLawLbawLbwLabw,bbwL

この帰納的定義は単調関数に対応します

f(A)={ε,a}A{bawawL}{abw,bbwbwL}

Knaster-Tarskiの定理により、はすべての小さな「中間結果」(帰納的定義のコンストラクターを有限に適用することに相当する)の上限である最小の固定点があり、その最小の固定点は実際であることがわかります。fL

ところで、最大のフィックスポイントには用途もあります。例についてはこちらをご覧ください。


再帰理論では、別の不動点定理がありますが、これもクリーンによるものです。それ ² と言います

ましょう A ゲーデル数 ³と合計、計算機能(直観:コンパイラ)。そして、となるがありますφr:NNiNφr(i)=φi

ir


  1. あなたが気付いていなくても、誰もが毎日それを使用しています。
  2. 私はそのウィキペディアの記事が好きではありません。ジャンルの本をチェックした方がいいでしょう。
  3. 特別な種類の関数番号。直観的には、それを(チューリング完全な)プログラミング言語と考えてください。

13

マイスタールクの答えについて少し詳しく説明しましょう:階乗関数を定義しようとしていると想像してください:階乗関数の定義を覚えておいてください:

fact 0     = 1
fact (n+1) = n*(fact n)

λ

Fact f 0     = 1
Fact f (n+1) = n * (f n)

Factϕ

Fact ϕ n = ϕ n
nϕ

λ

コンピューターサイエンスの固定小数点の概念には他にも多くの用途がありますが、ほとんどは上記で示したものに要約されます。つまり、特定の関数または構造が、フレームワーク(ここでは、階乗関数が存在することを示しました)。


9

f:AAxf(x)xx201x3

現在、扱っている数学的構造に応じて、固定小数点に関心を持つ理由は非常に多くあります。たとえば、世界の状態を見てそれを変更する動的システム(サーモスタットなど)を検討する場合、固定点は安定した構成に対応します。ゲームをゲーム理論の数学的な意味で考える場合、不動点は平衡に対応し、最適化ルーチンの動作を反復的に解決する場合、不動点は最適解に対応します。したがって、固定小数点の数学的概念には、さまざまなコンテキストで多くのアプリケーションがあります。

コンピュータサイエンスにおける固定小数点の非常に一般的で基本的な用途は、ループと再帰プログラムを数学的にモデル化することです。プログラムを数学関数としてモデル化しようとすると、ループと再帰の両方がモデル化されることは明らかではありません。これは、ループの本体がプログラムであり、数学関数として表現できるためです。ループの動作を表す関数をどのように導出しますか?これは、ループガードとともにループ本体を繰り返し適用し、それ以上変更ができなくなるまで対応します。同様に、再帰プログラムを数学的にモデル化する場合、関数がそれ自体を適用することの意味の数学的な概念が必要です。この答えは固定小数点によって提供されます。


7

数学の関数は、入力値と出力値の間のマップです。固定小数点は、入力と等しい条件を満たす出力値にマッピングされる(関数の)入力値です。

f(x)=xf(x)=x2{0,1}

コンピュータサイエンスに関する限り、部分関数について多くのことを話しますが、これは固定小数点の定義を変更しません。

また、まったく異なるトピックについて混乱するかもしれません。固定小数点演算は、メモリ内の実数を表現する方法の概念です。しかし、「固定点」という名前は一般にこのトピックを参照していません(1点しかないため)。


-1

ゲーム理論はCSの主要なサブエリアであり、重要な概念は不動点定理であるナッシュ均衡です。他のプレイヤーがお互いの戦略を認識している場合、最適なゲーム戦略を識別する手段を提供します。それは角谷不動点定理またはブロワー不動点定理によって証明できます。ナッシュは、この理論を発展させたことで、ノーベル経済学賞を受賞しました。

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