つまり、単語のリストを取得し、少なくともすべての単語 (またはそれ以上) に一致する単純な正規表現を作成したいと考えています。
そのためのアルゴリズムが必要です。つまり、そのアルゴリズムの入力は単語のリストであり、出力は正規表現です。明らかに、いくつかの制限があります。同様に、正規表現は、無限の量の単語に一致する必要がある場合、常により多くの単語に一致し、有限数の単語のみを指定します。または、入力のよりコンパクトな表現が必要になります。または、入力として正規表現と追加の単語のリストを与えることも考えており、それらすべてに一致する正規表現を取得したいと考えています (さらに多くの場合もあります)。いずれにせよ、できるだけ単純な正規表現の構築を試みる必要があります。
それを行うことができるテクニックは何ですか?
かなり誤解していました。正規表現の背後にある一般原則を知っています。私はそれが何であるかを知っています。ほとんどの場合、ある言語の正規表現を手で簡単に思いつくことができます。しかし、私はそれを行うアルゴリズムを探しています。
再び少し異なる定式化:
L を正規言語とする。M_n を n 個の要素を持つ L の有限サブセットとします。M_n を M_(n+1) のサブセットとします。
有限の単語セットを取得して正規表現を出力するアルゴリズム LRE が必要です。そして、私はプロパティを持ちたい:
lim_n->無限 | diff( LRE(M_n), L ) | = 0