私の問題はすでに解決されているので、適切なリファレンスを読む必要があるだけですか?
抽象言語族の理論が関連しています。たとえば、有限状態トランスデューサーによって定義される射は、コーンファミリーにつながります。1970年からのEilenbergの短いICM講演はこのフレームワークをうまく説明しています。 1979年からのJ. HopcroftとJ. Ullmanによる「オートマトン理論、言語、および計算入門」(第1版)の第11章「言語のファミリの閉包特性」も参照してください。このフレームワークに適合するのは非決定論的な言語のみです1。最後に、 1985年のJ. BerstelおよびD. PerrinによるコードTheory of code、問題の合理的な解決策を見つけるのに役立ちました。コードとオートマトン2009年のJ.ベルステル、D。ペリン、C。ロイテナウアーによるこの本の大幅な改訂で、より広範囲をカバーしています。
この推論の行は私の問題を「解決」する可能性がありますか?私の問題自体は理にかなっていますか、またはこれは...と同じように間違っていますか?
「問題の概念を形式化する」ために言語間の同型をモデル化するための正しいカテゴリが1つあるという仮定は、誤った方向に導かれています。正式な言語のコンテキストで興味深いと思われる多くの異なるカテゴリがあります。
多項削減に関連する3つの興味深いカテゴリを以下に示します。これらは、全体、部分、および関係と呼ばれます。カテゴリのオブジェクトは、ペアで有限アルファベットのΣと言語L ⊂ Σ *以上の単語のΣ。以下のために合計、ソースオブジェクトとの間の射(Σ 、L )と対象物(Σ '、Lは')の合計の関数であるF(Σ,L)ΣL⊂Σ∗Σ(Σ,L)(Σ′,L′)と L = F - 1(L ')。以下のために部分的、射は、部分関数である F :Σ * → Σ ' *と L = F - 1(L ')、二つの部分関数 F、 Gがあれば(射として)等しいと考えられる F (X )= G (X )f:Σ∗→Σ′∗L=f−1(L′)f:Σ∗→Σ′∗L=f−1(L′)fgf(x)=g(x)すべてのためと同じソースとターゲットとの間の任意の二つの射が同じであると考えられます。許可された関数または関係のセットをさまざまな単純な「トランスレータ」に制限して、興味深い同型のカテゴリを取得できます。x∈L。以下のためにリレーショナル、射が関係しているとL = R - 1(L ')R⊂Σ∗×Σ′∗L=R−1(L′)
- からΣ ′ ∗までのモノイド準同型は、非常に基本的な合計カテゴリを提供します。このカテゴリーの同型は基本的に、ΣとΣ ′の間の全単射です。Σ∗Σ′∗ΣΣ′です。言語の合理的なファミリは、これらの同型性をより尊重する必要があります。つまり、逆準同型性の下で閉じられるべきです。
- 確定的ログスペースチューリング機械トランスレータによって定義された部分関数は、非常に自然な部分カテゴリを提供します。多くの自明な構文変換(否定を原子に移動するためにドモルガンの法則を適用するなど)を実行でき、機能的な有限状態トランスデューサーによって定義される射を含みます1ソートもできます。それでも、2つの完全に関連のない言語を同型であると識別することはありません。2つの射の構成の正体射との同等性は、双方向での多元化の存在よりもはるかに強い要件だからです。
- 非決定論的なログ空間チューリング機械翻訳によって定義された関係は、興味深い関係カテゴリを提供します。SATはこのカテゴリのHORNSATに同型ですが、TAUTOLOGYまたは他のco-NP完全問題がHORNSATに同型であるかどうかは未解決の問題です。
アルファベット上の 2つの言語とL ′は、Σ = { a 、b }とΣ ′ = { c 、d }(ここでa、b、cとdは異なる文字です)は、「正確に」同じ「問題」。しかし、実際に「正確に」同じ「問題」を説明する場合、それらは同型でなければなりません。LL′Σ={a,b}Σ′={c,d}abcd
上記の非常に基本的な合計カテゴリでこの問題を解決します。
「まったく同じ」を「ほとんどの実用的な目的ではほぼ同じ」に置き換えると、問題はさらに興味深いものになりますをΣ = { U 、C 、A 、G } 上の言語とし、L ′をΣ上の言語とします。' = { 0 、1 }から得られたL置換によってU → 00、C → 01、A → 10、及びG → 11LΣ={U,C,A,G}L′Σ′={0,1}LU→00C→01A→10G→11。注いずれかであること、全カテゴリ、およびL "のために同型ではありませんL = Σ *。同じことが真のためであろう部分「二つの部分の機能部場合、カテゴリF、Gがあれば(射として)等しいと考えられるF (X )= G (X )のすべてのためのx ∈ Lの定義から省略されました」。LL′L=Σ∗fgf(x)=g(x)x∈L
上記の非常に自然な部分カテゴリは、とL 'を同型にするのに十分です。それらを同型にするより基本的な(つまり、より制限的な)カテゴリーがあるとよいでしょう。以下の(より制限が厳しくなる)カテゴリは、私には合理的に見えます。LL′
- 唯一の受け入れ状態が初期状態である明確な有限状態トランスデューサ2によって実現される部分関数。この部分カテゴリの同型は、認識可能な可変長コード間の全単射(のサブセット)です。
- 確定的な有限状態トランスデューサーによって実現される部分関数。ここで受け入れられる状態は初期状態のみです。この部分カテゴリの同型は、プレフィックスコード間の全単射(のサブセット)です。
- 唯一の受け入れ状態が初期状態である前方および後方決定論的トランスデューサーの両方によって同時に実現される部分的な機能。この部分カテゴリの同型は、バイフィックスコード間の全単射(のサブセット)です。
- 同型写像がブロックコード間の全単射であるような部分関数のさらなる制限も意味があります。
複雑性理論の言語を使用して、「問題」の概念を形式化できます。
カテゴリ理論について学ぶ前から、「問題」の概念を形式化するための「より忠実な」方法があるかどうか疑問に思っていました。カテゴリー理論に精通した後、私は時々可能な解決策を考え出そうとしましたが、いつも最初のつまずきブロックですぐに諦めました(とにかく誰も気にしないので)。ユーリ・グレビッチがいくつかの関連する問題を解決したことを知っていますが、彼の解決策は実際に適用可能です。
過去3週間の私の暇な時間のほとんどは、ついにこの問題についていくらかの進歩を遂げることに費やされました。ほとんどの場合、時間は私が考えていた可能な解決策で迷惑な問題を見つけることに費やされていました。(古い)本や記事を読んだり、トランスデューサーや有理セットについて多くの基本的な概念や事実を学んだりすることで、進歩の感覚が生まれました。最後に、私は、接頭コードとbifixコード(以前の概念を学んだbiprefixコード私は、合理的な思い付くすることができBerstelの本の中で)、3つのカテゴリーは、上記に。
より明白なカテゴリーのいくつかの問題を見たことがない限り、それらの(コード関連の)カテゴリーを理解するのは難しいかもしれません。一般的な問題は、合成時のクロージャにより、部分関数の適切に制限されたクラスを定義することが困難になる可能性があることです。もう1つの問題は、1の加算(または定数による乗算)が、数値の桁がローエンディアンの順序で指定されている場合は「関数の計算が簡単」であるが、桁数が大きい場合はそうではないという事実に関連しています。エンディアン順。
O(n)O(1)
2
明確な有限状態トランスデューサは、各入力に対して最大1つの受け入れパスを持つ非決定性有限状態トランスデューサです。部分的な機能を実現するため、機能的な有限状態トランスデューサでもあります。与えられた有限状態トランスデューサが明確であるかどうかは決定可能です。
R⊂Σ∗×Σ′∗L=R−1(L′)−R−1(Σ′∗−L′)、および同じソースとターゲットの間の2つの射は等しいと見なされます。