ゾゾウスキー微分とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > ゾゾウスキー微分の意味・解説 

ゾゾウスキー微分

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/11/08 15:06 UTC 版)

Brzozowski derivative (on red background) of a dictionary string set with respect to the string "con"

論理計算機械学、特に 形式言語理論において、 ゾゾウスキー微分 とは、 文字列集合 と文字列 に対して、 に属する文字列から 接頭辞 を切り取ることで得られるすべての文字列の集合である。

形式的には、

とあらわされる。

例えば、

などである。


ゾゾウスキー微分は1950年代後半以降、様々な名称で使用されてきた。[1][2][3] 現在では、その性質を研究し、一般化正規表現 の導関数を計算するアルゴリズムを与えた、コンピュータ・サイエンティストのJanusz Brzozowski 氏にちなんで命名されている.[4]

定義

もともとは正規表現のために研究されたものの、この定義は任意の形式言語に適用される。

形式言語 が、アルファベット 上に定義され、任意の文字列 に対して、 に関するの導関数は次のように定義される。[5]


ゾゾウスキー微分は、と表せるような、 のみを含む単項集合による左商の特殊な場合である。

等価的ににすべての に対して以下が成立する。

定義より、すべての に対して以下が成り立つ。

なぜならば、すべての に対して、

であるからである。

任意の文字列に対する導関数は、その文字列の記号に対する逐次的な導関数に還元される。なぜなら、すべての に対して、となるからである。

言語 は空文字列 を含む限り、nullableであると呼ばれる。各言語 は、その導関数がnullableであるかによって一意に決定される。言語は、(潜在的に無限の) ブール値ラベル付き木 (木 (集合論) 及び 無限木オートマトンを参照)とみなすことができる。 可能な各文字列 は木上のノードを表し、ラベルは の場合は真、それ以外の場合は偽となる。

この解釈において、記号 に関する導関数は、根から辺 を辿って得られる部分技に対応する。木を根と部分技 に分解することは、以下の等式に対応し、これは任意の言語に対して成立する。

一般化正規表現の導出

正規表現によって言語が与えられる場合、導関数の概念は、与えられた単語が正規表現に属するかどうかを判定するアルゴリズムにつながる。

有限の記号集合であるアルファベット A が与えられたとき[6]一般化正規表現 R は、その A 上の有限長文字列からなる、有限または無限集合を表し、R言語と呼ばれ L( R ) と表記される。

一般化された正規表現は、以下のいづれかである。(ここで a はアルファベット A の記号であり、R および S は一般化正規表現である。)

  • "∅" は空集合を表す: L(∅) = {}
  • "ε" は空文字列を含む単一要素集合を表す: L(ε) = {ε}
  • "a" は単一文字 a を含む単項集合を表す: L(a) = {a}
  • "RS" はRS の和集合を表す: L(RS) = L(R) ∪ L(S)
  • "RS" は RS の共通部分を表す: L(RS) = L(R) ∩ L(S)
  • R" は R の補集合(A*, A 上のすべての文字列集合に対する)を表す: LR) = A* \ L(R)
  • "RS" は RS の連結を表す: L(RS) = L(R) · L(S)
  • "R*" は Rクリーネ閉包 を表す : L(R*) = L(R)*


一般的な正規表現では、∧も¬も使用することができない。

計算

任意の一般化正規表現 R と任意の文字列 u に対して、導関数 u−1R は再び正規表現 (言語 u−1L(R)を表す)となる。[7]

これは、以下のように再帰的に計算できる。[8]

(ua)−1R = a−1(u−1R)       記号 a 及び 文字 u に対して
ε−1R = R


前述の2つの規則を用いることで、任意の文字列に対する導関数は単一記号文字列 a に対する導関数によって説明できる。後者は以下のように計算できる。[9]

a−1a = ε
a−1b = ∅ ただし、 ba
a−1ε = ∅
a−1 = ∅
a−1(R*) = (a−1R)R*
a−1(RS) = (a−1R)S ∨ ν(R)a−1S
a−1(RS) = (a−1R) ∧ (a−1S)
a−1(RS) = (a−1R) ∨ (a−1S)
a−1R) = ¬(a−1R)

ここで、 ν(R) は 補助関数 であり、R の言語が ε を含む場合に空文字列 ε に評価され、そうでない場合は∅に評価された一般化された正規表現を生成する。この関数は以下の規則によって計算できる。[10]

ν(a) = ∅ 任意の a について
ν(ε) = ε
ν(∅) = ∅
ν(R*) = ε
ν(RS) = ν(R) ∧ ν(S)
ν(RS) = ν(R) ∧ ν(S)
ν(RS) = ν(R) ∨ ν(S)
ν(¬R) = ε ν(R) = ∅ の場合
ν(¬R) = ∅ ν(R) = ε の場合

性質

文字列 u が一般化正規表現 R で表される文字列集合の要素であるのは、ε が導関数 u−1R で表される文字列集合の要素である場合に限られる。[11]

固定された一般化正規表現 R のすべての導出形を考慮すると、有限個の異なる言語のみが生じる。それらの数を dR とすると、これらすべての言語は、長さ dR 未満の文字列に関して R の導出形として得られる。[12]

さらに、マイヒル=ネロデの定理 によれば、 R で与えられる正規言語を認識する dR 個の状態を持つ完全決定有限オートマトン が存在する。

文脈自由言語の導出

導関数は 文脈自由文法と同値な正規表現演算子を用いた再帰的に定義された方程式に対しても効果的に計算可能である。この知見は文脈自由文法構文解析アルゴリズムの導出に利用された[13]

このようなアルゴリズムの実装は、一般の文脈自由文法に対するアーリー法の複雑度に相当する時間計算量を持つことが示されている。[14]

関連項目

  • Quotient of a formal language

参考文献

  1. ^ George N. Raney (Apr 1958). “Sequential functions”. Journal of the ACM 5 (2): 177–180. doi:10.1145/320924.320930. https://dl.acm.org/doi/10.1145/320924.320930. 
  2. ^ Dana Scott and Michael O. Rabin (Apr 1959). “Finite Automata and Their Decision Problems”. IBM Journal of Research and Development 3 (2): 114–125. doi:10.1147/rd.32.0114. http://www.cse.chalmers.se/~coquand/AUTOMATA/rs.pdf. 
  3. ^ C. C. Elgot; J. D. Rutledge (Oct 1961). “Operations on finite automata”. In Robert S. Ledley. 2nd Annual Symposium on Switching Circuit Theory and Logical Design (SWCT 1961). pp. 129–132. doi:10.1109/FOCS.1961.26 
  4. ^ Janusz A. Brzozowski (1964). “Derivatives of Regular Expressions”. J ACM 11 (4): 481–494. doi:10.1145/321239.321249. 
  5. ^ Janusz A. Brzozowski (1964). “Derivatives of Regular Expressions”. J ACM 11 (4): 481–494. doi:10.1145/321239.321249. 
  6. ^ Brzozowski (1964), p.481, required A to consist of the 2n combinations of n bits, for some n.
  7. ^ Brzozowski (1964), p.483, Theorem 4.1
  8. ^ Brzozowski (1964), p.483, Theorem 3.2
  9. ^ Brzozowski (1964), p.483, Theorem 3.1
  10. ^ Brzozowski (1964), p.482, Definition 3.2
  11. ^ Brzozowski (1964), p.483, Theorem 4.2
  12. ^ Brzozowski (1964), p.484, Theorem 4.3
  13. ^ Matthew Might; David Darais; Daniel Spiewak (2011). Parsing with derivatives: a functional pearl. Proceeding of the 16th ACM SIGPLAN international conference on Functional Programming (ICFP). pp. 189–195. doi:10.1145/2034773.2034801.
  14. ^ Michael D. Adams; Celeste Hollenbeck; Matthew Might (2016). Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation. Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). pp. 224–236. doi:10.1145/2908080.2908128. ISBN 9781450342612.



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  
  •  ゾゾウスキー微分のページへのリンク

辞書ショートカット

すべての辞書の索引

ゾゾウスキー微分のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ゾゾウスキー微分のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのゾゾウスキー微分 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS