問題タブ [markov-chains]

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 に答える
445 参照

php - マルコフ連鎖PythonスクリプトをPHPに変換します。PHPの同等の関数のいくつかがわからない

Stackoverflowに関する別の質問に答えて書かれたこのマルコフ連鎖のジブリッシュ検出器を見たので、PHPに変換したいと思います。これを行う人を探していませんが、Pythonコードの一部について混乱しています。私には知らない。私はPythonのドキュメントを見てきましたが、それは私をさらに混乱させます。

  1. PHPのyieldに相当するものは何ですか?

    /li>
  2. xrangeとは正確には何ですか?PECL拡張機能がありますが、純粋なPHP実装を希望しますか?これは可能でしょうか?

    /li>
  3. assertは何をしますか?例外をスローするのと同じですか?

    /li>
  4. Python Pickle、それは本質的にシリアル化されていますか?

    /li>

助けてくれてありがとう。


編集:タイプミス。

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

redis - Redis を使用したマルコフ連鎖

独学の目的で、Redis をできるだけ多く使用し、アプリケーション レベルのロジックをできるだけ少なくして、マルコフ連鎖ジェネレーターを実装したいと考えています。

履歴の深さ N (たとえば、2) の頻度表に基づいて、単語ジェネレーターを作成したいとしましょう。

あまり興味深い例ではありませんが、 と という 2 つの単語の辞書のbar頻度baz表は次のようになります ("." はターミネータ、数字は重みです)。

単語を生成するときは、2 つのターミネーターの履歴から始めます. .

最初の 2 文字の可能な結果は 1 つだけb aです。

重みが等しいため、3 番目の文字は または のいずれrかであり、確率は同じです。z

4 番目の文字は常にターミネータです。

(辞書に長い単語があると、より興味深いものになります。)

とにかく、これを Redis でエレガントに行う方法は?

Redis セットにはSRANDMEMBERがありますが、重みはありません。

Redis の並べ替えられたセットには重みがありますが、ランダムなメンバーの取得はありません。

Redis リストでは重みをエントリのコピーとして表すことができますが、それらとの交差を設定するにはどうすればよいですか?

アプリケーションコードは、何らかのデータ処理を行う運命にあるようです...

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

matlab - 遷移行列から次の状態を見つける?ランダムウォークMatlabシミュレーション

matlabでランダムウォークモビリティモデルをモデル化しようとしています。遷移行列から次の状態を見つけることに関して問題に直面しています。状態遷移マトリックスをすでに作成しましたが、次の状態を見つける方法がわかりませんか?

トラクションマトリックスから各状態のすべての確率があることはわかっていますが、実際には、それらの確率に基づいて次の状態がどうなるかを選択する必要があります。誰かがそれを手伝ってくれる?

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

statistics - ベイズ ネット オープン ソース

良いオープンソースまたは無料のベイズ ネット ソフトウェア プログラムを推奨できる人はいますか?

授業でbaysealabを使っていたのですが、アカウントの有効期限が切れてしまい、bnsの構築と利用を続けたいと思っています。

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

r - R: How to generate a series of exponential deviates that sum to some number

I am trying to generate a series of wait times for a Markov chain where the wait times are exponentially distributed numbers with rate equal to one. However, I don't know the number of transitions of the process, rather the total time spent in the process.

So, for example:

t is a vector of the successive and independent waiting times and tt is a vector of the actual transition time starting from 0.

Again, the problem is I don't know the length of t (i.e. the number of transitions), rather how much total waiting time will elapse (i.e. the floor of last entry in tt).

What is an efficient way to generate this in R?

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

python - 文字スケールとランダムテキストのマルコフ連鎖

.txtファイルの本から文字の頻度を使用してランダムなテキストを生成したいので、新しい文字(string.lowercase + ' ')はそれぞれ前の文字に依存します。

マルコフ連鎖を使用してこれを行うにはどうすればよいですか?または、各文字に条件付き頻度で27個の配列を使用する方が簡単ですか?

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

probability - このダイスゲームのオッズは、妥当な時間/スペースで決定できますか?

私はボードゲームStackExchangeでこの質問をしました。どのキャラクターが、ボタンメンの試合に勝つ可能性が高いかについてです。それで、妥当な時間内に質問に答えるための具体的なアプローチについて考えさせられました。ゲームのルールはかなり単純です。

  • ゲームの開始時に、各プレイヤーは多面体のサイコロを振ります。

  • ダイスが最も低いプレイヤーが最初になります(タイは次に低いダイスを使用します)。

  • プレイヤーは、2つの可能な方法で敵の死を捕らえることができます。

    1)パワーアタック:1つ以上の値を持つダイスを使用します(その後、そのダイスをリロールします)。

    2)スキルアタック:対戦相手が死ぬのとまったく同じ複数のサイコロを使用します(キャプチャで使用されたすべてのサイコロをリロールします)。

    3)プレイヤーが敵の死を捕らえることができない場合、彼らは合格しなければなりません。

  • サイコロがなくなるとゲームは終了します。各プレイヤーは、対戦相手からキャプチャしたdXごとにXポイントを獲得し、残りのサイコロごとに0.5dXを獲得します。(つまり、対戦相手のd4、d4、d10、d12、d20をキャプチャし、それでも自分のd20を持っている場合、スコアは(4 + 4 + 10 + 12 + 20 + 0.5 * 20)= 60ポイントになります。)

強引な エイビスキャラクターは、d4、d4、d10、d12、およびdXをロールします(dXはd4、d6、d8、d10、d12、またはd20です)。これは、最初のロール後に最大(4 * 4 * 10 * 12 * 20)38,400の状態があることを意味します。イアーゴーのキャラクターは最大4d20(「dX」スイングダイにd20を使用する場合)で、160,000の開始状態が可能です。合わせて、それは61億4400万の可能な開始状態につながり、事態はここから悪化します。最良の動きを整理しようとする知性がなければ、考えられるすべての動きを試す必要があります。最悪の場合、プレイヤーはスキル攻撃ですべてのサイコロを振り直す可能性があります。ゲームが終了する前に最大8回のキャプチャを行う必要があるため、各サイドのパワーアタックで1つのd20をリロールしても、合計されます(20 ^ 8 = 256億)。強引な方法は、157以上のQuintillion以上の可能な状態を評価することにつながる可能性があります。これは実行可能ではありませんが、より良い方法があります。ブルートフォースメソッドは、同じゲーム状態を複数回再評価していました。

マルコフ連鎖 最終的にエンドゲームに移行する一連の可能な状態をゲームで見ると、ゲーム内のある状態から別の状態に逆方向に移動する確率を評価し、最終的に各キャラクターが勝つ確率に到達できます。ゲームの開始。ゲームは(比較的言えば)いくつかの可能な状態でのみ終了します。1人のプレーヤーにはサイコロがなく、もう1人のプレーヤーには自分のサイコロの組み合わせが残っています(以下の例では、dXスイングダイスがd20として選択されています。これは現在の概念実証にすぎないので、心配しないでください。このサイコロはゲームごとに異なります)。

  • エイビス:d4 | d10 | d12 | d20

  • エイビス:d4、d4 | d4、d10 | d4、d12 | d4、d20

  • エイビス:d4、d4、d10 | d4、d4、d12 | d4、d4、d20 | d4、d10、d12 | d4、d10、d20 | d4、d12、d20 | d10、d12、d20

  • エイビス:d4、d4、d10、d12 | d4、d4、d10、d20 | d4、d10、d12、d20

  • エイビス:d4、d4、d10、d12、d20

  • イアーゴ:d20

  • イアーゴ:d20、d20

  • イアーゴ:d20、d20、d20

  • イアーゴ:d20、d20、d20、d20

これらのゲーム終了状態が各プレイヤーに対してスコアリングされ、その状態が各キャラクターの勝ち負けであるかどうかが判断されると、「最後から2番目」のゲーム状態を調べることができます。同様の方法で、各「最後から2番目」のゲーム状態がエンドゲーム状態の1つにつながる可能性についてオッズを決定できます。いくつかの簡単なスプレッドシートの計算により、約99億のゲーム状態の結果が得られます(ゲーム状態の勝ち負けの性質を保存するだけでよいので、この情報を1ビットにまとめることができるはずですよね?)。これは、保存/評価するゲームの状態の数が克服できないほどではないようです。

マルコフ連鎖を使用して、妥当な時間で、かなり安価なハードウェアを使用して、どのキャラクターが優れているかを答えることは可能ですか?

この種の問題を解決するためのより良い方法はありますか?

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

python - 行列からのマルコフ モデルの生成

定義が間違っている可能性があるので、そうである場合は修正してください。次の種類の行列からマルコフ モデルを生成する必要があります。

次のような出力が必要です: {"four":[{2:"two", 3:"one",2:"exit"},{...}],"three":[{.. .}]}

上記の数値は基本的に、特定の状態への遷移が発生する回数です..

これにはpythonを使用しています。

「何を試しましたか?」というよくある質問への回答: 「いくつかのアプローチを試しましたが、うまくいきませんでした。そのため、答えの 1 つが物事を少し明確にするのに役立つことを願っています」.

どうもありがとう。

編集、完全なマトリックスを表示するように更新。

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

java - DTMC の定常状態ソリューションの Java ライブラリ

CTMCの分析に jMarkov使用しています。これは、この目的のために最もよく定義された Java ライブラリのようです。私の分析の一部には、DTMC の定常状態解も必要です。jMarkov のマニュアルには、DTMC も処理できると記載されていますが、作成者はそのケースを無視しているようです。したがって、ライブラリのドキュメントは不完全なようです。

誰かが jMarkov を案内してくれますか、またはマニュアルの有用な部分を教えてくれますか? 私が使用できる別のライブラリがあれば、それも素晴らしいでしょう。さらに、誰かが行列の固有ベクトルを見つけるのに役立つ Java 実装を教えてくれれば大丈夫です。

ありがとう!