問題タブ [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 投票する
2 に答える
213 参照

python - regexp を fsm に変換できるコンパイラはありますか? または人間の言葉に変換できますか?

変換できるもの

または似たようなもの

2または5で受け入れ

0 投票する
5 に答える
7484 参照

c - 有限状態マシンの実装

Cで有限状態マシンを実装しようとしていますが、非常に高速である必要があります。そこで、関数ポインタを「状態」として使用することにしました。

次に、メインのFSMループは非常に単純になります。

質問があります:

1)関数の戻り型でvoidポインタを使用しないようにすることは可能ですか?理想的には、ステート関数は、FSMでこのタイプの関数のみが使用されるように、typedefされたタイプを持つ必要があります。

2)CでFSMを実装する従来のアプローチでは、状態に列挙型とスイッチベースのディスパッチャーループを使用するため、関数ポインターベースの実装と比較すると、1つの間接レベルがあります。
しかし、よくわかりません。命令キャッシュや分岐予測に問題があるのでしょうか。言い換えれば、私のソリューションを上回ることができる実装が存在する可能性がありますか?

ありがとう。

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

python - 正規表現を有限状態マシンに変換する

正規表現を有限状態マシン (FSM) に変換するアルゴリズムのヒントを教えてください。たとえば、正規表現を解析し、状態を FSM に適切に追加するアルゴリズムは? 参照またはより深いアイデアはありますか?

私はPythonでこれを書いています

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

regex - FSM で文字列の桁数を数えることはできますか?

非数字 (aa11aa1a) を含む文字列の桁数をカウントしたい。この問題を有限ステート マシンで解決できますか? この問題は正規表現で表現できますか?

カウントが「X」かどうか知りたいのですが、性質の問題は変わりますか? もっと正確に言うと、この文字列には 3 桁の数字がありますか? FSM は問題を解決するのに十分ですか?

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

algorithm - アルゴリズム実装のテスト規則、それらは何ですか?

特定のアルゴリズムの実装をどのようにテストできるのでしょうか?

テストアプローチのさまざまなオプションは何ですか?

  1. 決定的/非決定的な最終状態マシンでアルゴリズムを分解する必要がありますか?
  2. 単体テスト?
  3. 他の何か?
0 投票する
1 に答える
99 参照

finite-automata - 与えられた正しい入力文字列に対して、わずかに間違ったDFAを修正する方法は?

DFAを生成できるプログラムを作成しました。しかし、DFAはわずかに正しくありません。つまり、正しい文字列を受け入れられない場合があります。

私の質問は、DFAを修正して、指定された正しい文字列を受け入れることができるアルゴリズムはありますか?

より正式には、

DFADが文字列strを受け入れないとします

アルゴリズムが必要A、st D'= A(D、str)およびD'はstrを受け入れます

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

java - JPanel から JPanel を削除する

ステートのスタックを含むゲームのステート マネージャーがあります。現在、状態の 1 つ (「メニュー」) では、JPanel に 2 つの JButton があります (JPanel は、すべてを表示するメインの JPanel に追加されます)。JButton の「再生」をクリックすると、メニュー状態がスタックから削除されます。ただし、JButtons は画面に残ります (peek() を実行すると、メニューがスタックから削除されていることがわかります)。

ボタンを状態から削除したくありません。メニューに戻ってボタンをもう一度表示できるようにしたいからです。状態とともにボタンを削除するにはどうすればよいですか?

0 投票する
0 に答える
370 参照

compiler-construction - 特定の正規表現に対してNFAとDFAを構築して実行するための時間のコスト

私は過去の試験を通過していて、教科書やグーグルで答えが見つからない質問に出くわしているので、助けていただければ幸いです。

私が現在問題を抱えている質問は次のとおりです。

正規表現(a | bb)*が与えられた場合、対応するNFAおよびDFAに変換するための時間内のコストの見積もりを導き出します。あなたの答えは正規表現のサイズを参照する必要があります。

別の年からの同様の質問は次のとおりです。

上記の例では、元の正規表現のサイズ|r|がわかっていると仮定します。入力文字列|x|のサイズは、同等のDFAを構築して実行するのではなく、NFAを構築して実行するための時間内のコストを計算する方法を説明します。

(a | bb)*の結果のNFAには9つの状態があり、DFAには4つの状態があります。これを知っていても、質問にどのようにアプローチするかわかりません。

0 投票する
0 に答える
280 参照

javascript - Javascript FSM の可能性 / アイデア

そこで、Unity3D で何かを作っていて、Playmaker という拡張機能を試してみることにしました。基本的には、FSM (Finite State Machine) を使用して状態とイベントの流れを設計します。イベントを別の状態にドラッグして、別の状態のイベントなどをトリガーすることができます試して構築したい。参考程度に。

Javascript で同様のことができるようになりたいと思っています。いくつかのロジックがダウンしていると思いますが、ユーザー エクスペリエンスについてもっと考えています。ユーザーが Javascript を使用してブラウザでロジックを使用して FSM を作成できるようにしたいと考えています。

私はJavaScriptで大部分を行うのに十分な経験があるので、誰かにこれをコーディングするように頼んでいるわけではありません。私は、あるイベントを別のイベントにドラッグする方法についてもっと考えていました。これにより、どのイベントが接続されているかをユーザーに示す視覚的な矢印が作成されます。私が提供した参照リンクの最初のチュートリアルを見ると、私の言いたいことが理解できます。矢印の長さと曲線は動的です。状態をドラッグして、状態のレイアウトを再編成できる可能性があります。これにより、矢印の向きも明らかに変わります。

すべてが理にかなっていることを願っています。

アイデア?ポインタ?誰かがすでにこのようなことをしたのではないでしょうか?Javascript ステート マシンを 1 つ見つけましたが、生成は 1 回で、ユーザーは何も移動できません。イベントを別の状態にドラッグすることは非常に重要です。

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

c++ - OOP ステート マシンの設計時にシングルトンを回避するにはどうすればよいですか?

私はプログラミングを独学しようとしている最中です。私は、ほとんどの人が始めると確信しているのと同じ方法で始めました。単純なことをそれほど単純ではない方法で行う、小さくて厄介なアプリやゲームを作成します。最近、OOP 設計を使用して、より優れた、よりモジュール化されたコードを作成する、もう少し複雑なゲームを作成することで、次のステップに進もうとしています。

私が抱えている主な問題は、メインの StateManager (FSM) クラスの設計です (イントロ/メニュー/ゲーム/その他の画面状態を切り替えるため)。私は高低を見てきましたが、それらを設計する2つの方法しか実際に見たことはありません:

  • 状態を切り替えるには、switch/case ステートメント + 列挙型を使用します。

  • ベクトルへの/からの状態のプッシュ/ポッピングを処理するシングルトン FSM クラスを作成します。

さて、私の問題は、switch case ステートメントが非常に反復的でぎこちなく、このプロジェクトを使用して OOP を独学するという私の目標に反することです。

私の2番目の大きな問題は、「シングルトン」の提案です。

前に言ったように、私は自分自身を学ぼうとしていますが、プログラミングに関しては、特に OOP やデザイン パターンなどの分野で、まだ学ぶべきことがたくさんあります。私が見つけたすべての単一の「シングルトンは悪」のスレッドと議論について、人々がコードでシングルトンを使用して「エンジン」クラスとFSMを作成するチュートリアルと参照を見つけるという問題に遭遇しました。それは非常に一貫した混合メッセージです。

理由がわからないだけだと思います...クラスの単一のオブジェクトのみを持ちたい/意図している場合でも、コンストラクターをプライベートにしてシングルトンを作成することが必要/有益なのはなぜですか? シングルトンがいかに悪いか、それらが本質的にグローバルである方法、マルチスレッドの邪魔になる方法、そしてどれだけ多くのプログラマーがそれらを使いすぎているか、単に悪い設計であると考えているかについて多くのことを読んできました...それでも私は例の後に例を見ますそれらを使用している人々の数、および代替方法を示す反例はほとんどありません。

通常のクラスだけで同じようなことができないのでしょうか?インスタンスの作成を明示的に制限する目的は何ですか? シングルトンについて否定的なことしか聞いたことがありませんが、人々は常にそれらを使用しているようです...シングルトンとOOPについて完全に何かが欠けていますか?

シングルトンの使用は単なるトレンドですか、それとも人々がシングルトンを「悪」と呼ぶときのトレンドですか? どうすればこれを回避できますか..? スイッチ/ケース FSM とシングルトン FSM の間に何かありませんか?? クラスのシングルトンを作成せずに、プログラムの状態システムをまったく同じ方法で設計できませんでしたか? それは何かを変えるでしょうか?[混乱]