回路の独立した研究のトピックの続きで、トリガーのオートマトンの合成に関連する記事に注目します。
そして、それはすべてこのように始まります:
「農民はオオカミ、ヤギ、キャベツを川を渡って運ぶ必要があります。 しかし、ボートは小作人だけがそれに合うことができて、それで、1匹のオオカミ、1匹のヤギ、または1匹のキャベツです。 しかし、オオカミをヤギと一緒に離れると、オオカミはヤギを食べ、キャベツと一緒にヤギを離れると、ヤギはキャベツを食べます。 農民はどのように彼の貨物を輸送しましたか?」
タスクから少し脱線し、すでに知っていることを思い出してください。
だから。 この問題を解決するには2つの方法があります。
- ヤギから始めなければなりません。 ヤギを運んだ農民は戻ってきてオオカミを連れて行き、彼を反対側に連れて行きます。そこで彼はヤギを連れて最初の銀行に戻します。 ここで彼は彼女を離れ、オオカミにキャベツを運びます。 そして、戻った後、彼はヤギを運び、交差点は安全に終了します。
- 初めに、農民は再びヤギを運びます。 その後、キャベツを取り、反対側に持って行き、そこを出てヤギを最初の岸に戻すことができます。 それをオオカミの反対側に運び、ヤギのために戻り、再び反対側に持っていきます。 この場合、フライト数(7)は、第1の実施形態と全く同じである。
口頭での説明から表、グラフ、図に移行するには、ゲームの状態を次のようにエンコードすることを提案します。
4つの2進数を区別します。 各カテゴリは、川の土手にいるクリーチャーの責任を負います。 このカテゴリーに1が格納されている場合、クリーチャーは最初の(ソース)バンクにあり、0が2番目にある場合。 明確にするために、次の図でこれを示します。
タスクの条件から、農民の監督なしでは一緒にいられないことが明らかになります。
- ヤギとキャベツ;
- ヤギとオオカミ。
そのため、次の4つの組み合わせが失われています。
今、私たち全員が覚えているように、私たちは言葉による説明からグラフによる説明に移行する必要があります。 難しくないはずです。
CSTの初期状態に注意してください-ゲームの開始と終了はCSTからです。 特定の「START」ボタンは、マシンを状態「0000」から状態「1111」に移行すると考えられます。 これが出力ワードのコーディング方法であることに注意してください。ただし、状態は別の方法でエンコードする必要があります。 したがって、出力ワードの形成に関与する組み合わせ回路を導入する必要があります。
農民と他のエンティティを制御するには、4つの入力語が必要です。
だから。 入力および出力ワードには名前が付けられ、状態が示されます。 ムーアのアサルトライフルの数。 描画を始めましょう:
- ゼロ状態から、単語が到着するとゲームは初期位置に転送されます。
- 明らかに、農民が最初にヤギを飼う(A1)場合にのみゲームを続行できます。それ以外の場合(A2、A3、A4)は最初からやり直す必要があります。
これら2つの事実をグラフに反映します。
さらに推論します:
- ここで単語a2またはa3を入力に適用すると、農民はオオカミまたはキャベツを輸送できないため、ゲームの状態は変化しません。 しかし、彼はヤギを取り戻すことができ、ゲームは元の状態に戻ります。
- したがって、唯一の非デッドロックアクションは、農民が最初の岸に戻ることです。
これを図面に追加します。
これまでのところ、とても良い。
次に、2番目の銀行(キャベツまたはオオカミ)に誰を連れてくるかを選択する必要があります。 両方のオプションを検討するのは良いことです(読みやすくするために一部を説明します)。
つまり、この動きの後の最初の銀行には、キャベツまたはオオカミのいずれかが残ることがわかります。
よくここに! 難しいことではないと言いました! 同じ方法で議論を続けると、次のようなシンプルなスキームに到達できます。
注意:農民の3、4、5、8州で反対側に行こうとすると、ヤギはオオカミやキャベツの隣に放置されます。 さて、または上記の無効な状態の表を見てください。 それらに切り替えようとすると、ゲームは終了します。
遷移/出口テーブルがどのように構築されるかを覚えてください。 ここでこの記事を開いて、突然忘れてしまったかどうかを確認することをお勧めします。
よくここに。 これで、ほぼすべてがトリガー上のマシンの合成の準備ができました。 すぐにこのおもちゃをエミュレーターで、そして組み立てられたモデルでプレイできるようになります。
6月14〜15日に記事の第2部を公開する予定です。