問題タブ [fsm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
5529 参照

scala - 有限ステート マシンとインター FSM シグナリング

ステート マシンの開発と実行、およびメッセージ/シグナルの受け渡しをサポートするネイティブ (FSM 生成ツールがない) 言語の推奨事項。これはテレコム用です。たとえば、このレベルの複雑さの FSM の実装などです。

私は Erlang を検討しましたが、フィードバック、提案、チュートリアルへのポインタ、代替案、特に Java ベースのフレームワークを歓迎します。もしかしてスカラ?

オープンソースのみ。UML や正規表現に関連するソリューションは探していません。

これは通信プロトコルの実装のためのものであるため、FSM は自明ではない可能性があります。多くの状態、多くの遷移、信号ベース、入力制約/ガード。動的なインスタンス化はプラスになります。switch ステートメントは問題外です。すぐにネストして使用できなくなります。if/else よりもかろうじて優れています。

グラフィックデザインに依存したくない形式の FSM 記述は、人間が判読可能/編集可能/管理可能でなければなりません。

--

C++ のアクター ベースのソリューションに集中することにしました。

たとえば、Theron フレームワークは開始点http://theron.ashtonmason.net/を提供し、FSM ベースのイベント ハンドラーで switch ステートメントを回避するには、この C++ FSM テンプレート フレームワークが役立ちますhttp://satsky.spb.ru/articles/ fsm/fsmEng.php

0 投票する
2 に答える
1795 参照

fsm - モジュラス 4 をバイナリで表示する有限ステート マシンの作成方法

モジュラス 4 をバイナリで表示する有限ステート マシンの作成方法を教えてもらえますか?

0 投票する
4 に答える
713 参照

python - int()呼び出しでPythonの優雅な失敗?

クラスで初歩的な FSM を作成する必要があり、Python で作成しています。この割り当てでは、マシンのトランジションをテキスト ファイルから読み取る必要があります。したがって、たとえば、3 つの状態を持つ FSM で、それぞれに 2 つの可能な遷移があり、可能な入力が 'a' と 'b' の場合、次のようなテキスト ファイルが作成されます。

入力値を文字列として保持しながら、一度に1行ずつ読み取り、状態をintに変換する、よりpythonicな方法を考え出そうとしています。基本的に、これはアイデアです:

もちろん、int("a") しようとすると、ValueError がスローされます。従来のループを使用して ValueError をキャッチできることはわかっていますが、より Pythonic な方法でこれを行うことを望んでいました。

0 投票する
2 に答える
2485 参照

python - tkinterで2つの状態円を矢印で接続する方法は?

現在、tkinter を使用して fsm エディターを作成しています。しかし、私は 2 つの状態を接続することにこだわりました。2 つの質問があります。

1)マウスの動きに応じて遷移矢印を成長可能にするにはどうすればよいですか?

2) 矢印の始点を状態に、矢印の終点を別の状態に貼り付けるにはどうすればよいですか?

PS。tkinter のドキュメントは十分だと思いますか?

0 投票する
2 に答える
284 参照

c++ - C++ テンプレートに関するヘルプが必要

他の方法では解決できないように見えるので、これはテンプレートの質問であると確信していますが、テンプレート以外のソリューションも歓迎します。

有限ステート マシンには多数のプログラム ステートがあり、各ステートは多数のイベントに反応できます。

そこで、Event、State、FSM のクラスを定義したいと思います。FSM には状態のコレクション (おそらくベクトル、STL が組み込みシステムで問題を起こす場合はリンク リスト) があり、State にはイベントのコレクションがあります。

各状態とイベントには、ネズミイルカをデバッグするための一意の ID と名前文字列があります。

厄介なことに、ID を整数にするのではなく、列挙型の要素にしたいのです。各 FSM は、その状態とイベントに対して異なる列挙型を持っています。

これをどのようにコーディングするのが最善ですか?2 つの単純な FSM、またはそれぞれ 2 つのイベントを持つ 2 つの状態を持つ 1 つの FSm の例を挙げていただけますか?

たとえば、私が持っている場合

コンストラクタ パラメータを受け入れる Event クラスを宣言できるようにしたい

コンストラクターを単にオーバーロードしたくないことに注意してください。これには制限があるためです。新しいイベント列挙型が追加された場合はどうなるでしょうか。

州と同様に、FSM にそれぞれ州のリストを持たせます。

それとも、intを渡す方がはるかに簡単なのに、eventIdの列挙型を主張して、私は単に嫌悪感を抱いているだけですか?

ありがとう。


ところで、組み込みシステムでどれだけうまく機能するかについてはそれ自体が未定であるため、Boost は避けたいと思います。私は、完全に制御するために、社内で開発することを好みます。

0 投票する
12 に答える
52486 参照

python - Python ステートマシンの設計

このスタック オーバーフローの質問 (C ステート マシンの設計)に関連して、スタック オーバーフローの皆さん、Python ステート マシンの設計テクニックを私 (およびコミュニティ) と共有していただけますか?

現時点では、次のエンジンに基づいています。

しかし、Python の動的な性質 (動的ディスパッチなど) を活用しながら、それを行う方法はたくさんあると確信しています。

マシンの「状態」から「イベント」を受けて「発信」する「エンジン」の設計手法を追求しています。

0 投票する
1 に答える
571 参照

conditional-statements - この特定の有限状態機械をどのように設計するのですか?

次のシステムを設計する方法について頭を悩ませようとしています。これは、有限状態マシンとして定義できると思います。

城を形成する 16 個のビルディング ブロック (塔、壁、ゲート) の山があるとします。プレーヤーは、ブロックをフロアプランの 16 か所にドラッグできます。正しく行うと、城全体が表示されます。すべての塔 (4 つある) は同じなので、4 つの角のどこにでも行くことができます。一部の壁についても同様です。

全体として、フロアプランにはビルディング ブロックを配置できる 16 のスポットがあり、各スポットには 17 の「状態」があります: 空 + 16 のビルディング ブロックのいずれか 1 つ。いくつかの計算を行うと、これは 17^16=たくさんの組み合わせにつながります。

プログラムは、空のフロアプランとビルディング ブロックの山から始まります。次に、「自分の城を建てて、塔から始めましょう」のようなメッセージが表示されます。ユーザーがタワーを正しく配置すると、「よくできました。今度は 4 つのタワーをすべて構築します」と表示されます。あなたはアイデアを得る。

問題は、プレイヤーができることが非常に多いことです。ブロックを間違った場所に置いたり、ブロックを取り除いたり、与えられた指示を無視してフロアプラン全体に壁や塔を正しく配置したりします。

何千もの if-then ステートメントを使用して、次のステップに進むか、エラー メッセージを表示するか、プレーヤーの動作に基づいて前のステップに戻るかを決定する必要がないようにできれば、素晴らしいことです。

構築シーケンスの各ステップの NEXT、PREVIOUS、および ERROR 条件をどのように説明しますか? このための設計方法はありますか?ご意見をお寄せいただきありがとうございます。

0 投票する
6 に答える
54538 参照

computer-science - なぜ{a^nb ^ n | n> = 0}通常ではありませんか?

私が取っているCSコースには、規則的ではない言語の例があります。

メモリコンポーネントがないため、この入力を検証して受け入れる有限状態オートマトン/マシンを記述できないため、これは定期的ではないことを理解できます。(間違っている場合は訂正してください)

正規言語のウィキペディアのエントリにもこの例がリストされていますが、正規ではない理由の(数学的な)証明は提供されていません。

誰かがこれについて私に教えて、これの証拠を提供することができますか、または私にあまりにも良いリソースを指摘することができますか?

0 投票する
3 に答える
832 参照

c++ - 有限状態マシンのスペル チェッカー コードのデバッグ

以下に記述した C++ コードの行をデバッグして実行できるようにする必要があります。これは、状態から状態への遷移を使用して「and」という単語のスペル チェックを行うことを目的としています。