ムーア マシンは、現在の状態と現在の入力シンボルによって次の状態が決定される有限状態マシンです。特定の時点での出力シンボルは、マシンの現在の状態にのみ依存します。ムーア マシンは 6 つのタプル (Q、q0、∑、O、δ、λ) で記述できます。
Q: finite set of states q0: initial state of machine ∑: finite set of input symbols O: output alphabet δ: transition function where Q × ∑ → Q λ: output function where Q → O
例 1:
ムーアマシンの状態図は次のとおりです。
ムーアマシンの遷移表は次のとおりです。
機械学習モデル
上記のムーア マシンでは、出力は / で区切られた各入力状態で表されます。ムーア マシンの出力の長さは入力よりも 1 長くなります。
入力: 010
遷移: δ(q0,0) => δ(q1,1) => δ(q1,0) => q2
出力: 1110(q0 に 1、q1 に 1、再び q1 に 1、q2 に 0)
例 2:
指定された 2 進数の 1 の補数を生成するムーア マシンを設計します。
解決: 指定された 2 進数の 1 の補数を生成するための単純なロジックは、入力が 0 の場合は出力が 1 になり、入力が 1 の場合は出力が 0 になるということです。つまり、3 つの状態があることを意味します。 1 つの状態は開始状態です。 2 番目の状態は、0 を入力として受け取り、1 として出力を生成します。3 番目の状態は、1 を入力として受け取り、0 として出力を生成します。
したがって、ムーアマシンは次のようになります。
たとえば、2 進数 1011 を選択すると、
入力 | 1 | 0 | 1 | 1 | |
州 | q0 | q2 | q1 | q2 | q2 |
出力 | 0 | 0 | 1 | 0 | 0 |
したがって、1011 の 1 の補数として 00100 が得られます。最初の 0 は無視できます。得られる出力は、1011 の 1 の補数である 0100 です。トランザクション テーブルは次のとおりです。
パンダシリーズの特徴
したがって、ムーアマシン M = (Q, q0, ∑, O, δ, λ);ここで、Q = {q0, q1, q2}、∑ = {0, 1}、O = {0, 1}。遷移表はδ関数とλ関数を示しています。
例 3:
バイナリ入力シーケンスに対して、部分文字列 101 がある場合はマシンが A を出力し、入力に部分文字列 110 がある場合は B を出力し、そうでない場合は C を出力するようにムーア マシンを設計します。
解決: このようなマシンを設計するために、2 つの条件をチェックします。それらは 101 と 110 です。101 を取得した場合、出力は A になり、110 を認識した場合、出力は B になります。その他の文字列の場合、出力は次のようになります。 C.
部分的な図は次のようになります。
次に、各状態に 0 と 1 の可能性を挿入します。したがって、ムーア マシンは次のようになります。
例 4:
入力文字列に偶数個の 1 が含まれるか奇数個の 1 が含まれるかを判断するムーア マシンを構築します。マシンは、文字列内に偶数個の 1 がある場合は出力として 1 を返し、それ以外の場合は 0 を出力する必要があります。
解決:
ムーア マシンは次のようになります。
これは必要なムーア マシンです。このマシンでは、状態 q1 は奇数個の 1 を受け入れ、状態 q0 は偶数個の 1 を受け入れます。ゼロの数に制限はありません。したがって、0 入力の場合、両方の状態に自己ループを適用できます。
例 5:
入力アルファベット {0, 1} と出力アルファベット {Y, N} を使用してムーア マシンを設計します。このマシンは、入力シーケンスに部分文字列として 1010 が含まれる場合は出力として Y を生成し、それ以外の場合は出力として N を生成します。
解決:
ブール値から文字列へ
ムーア マシンは次のようになります。