問題タブ [montecarlo]

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 投票する
1 に答える
117 参照

python - 割り当てシミュレーションを繰り返し実行すると、最初の実行後に中断する

背景
私にはたくさんの学生、希望するプロジェクト、およびそれぞれのプロジェクトのスーパーバイザーがいます。私は一連のシミュレーションを実行して、学生が最終的にどのプロジェクトになるかを確認しています。これにより、フィードバックに必要な有用な統計を得ることができます。つまり、これは本質的に、Monte-Carlo学生のリストをランダム化し、それを反復して、リストの最後に到達するまでプロジェクトを割り当てるシミュレーションです。その後、プロセスが再び繰り返されます。


1 つのセッション内で、プロジェクトの割り当てが成功する たびに、次のことが行われることに注意してallocatedください。これは 1 ずつ減少します +ヒットが 0 になると、そのスーパーバイザーからのすべてのプロジェクトがなり、これはプロジェクトが
quota
quotablockedallocated

コード

の役割はresetData()、データの特定のビットを「リセット」することです。たとえば、プロジェクトが正常に割り当てられるとproject.allocated、そのプロジェクトは に反転されTrueます。これは 1 回の実行には役立ちますが、次の実行では割り当てを解除する必要があります。

上記では、情報が保存されている 3 つの辞書 (学生、プロジェクト、監督者用に 1 つずつ) を反復処理しています。

次のビットは、割り当てアルゴリズムの「モンテカルロ」シミュレーションです。

生徒のrandomiseStudents(1)順序をランダム化するだけです。

Allocated次のように定義されたクラスです。

Output and problem

これを実行すると、次のような出力が得られます (切り捨てられます):

基本的に、最初の実行では完全に機能しますが、 n回目の実行 (この場合は 50)までの後続の実行では、学生とプロジェクトの割り当てペアが 1 つだけ返されます。

したがって、私が問題を抱えている主な問題は、特に最初の実行がスムーズに機能するため、この異常な動作の原因を突き止めることです.

前もって感謝します、

アズ

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

montecarlo - モンテカルロ法を使用する理由

モンテカルロ法はいつ使用する必要がありますか?

たとえば、なぜ Joelは過去 1 年間のすべてのユーザー データを体系的に処理するのではなく、エビデンス ベースのスケジューリングにモンテカルロ法を使用することにしたのでしょうか?

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

excel - Open Officeでモンテカルロシミュレーションを実行するにはどうすればよいですか?

取り組んでいる問題に対していくつかの範囲を生成しようとしています。これらのレンジャーは、一連の数字の比率の合計に基づいています。したがって、たとえば、定数は56と7です。

私が得る範囲は5/x + 6 / y + 7 / z=Sになります

x、y、zを自分が持っている数字のリストから出してほしい-たとえば、.5、.6、.7、.8、.9、1

したがって、これを100回繰り返して実行する場合、スプレッドシートで、その数値のリストからXの値をランダムに入力し、yをランダムに選択し、さらにzをランダムに選択します。

そして、私が言ったように、私はその合計Sを、Sの値の範囲を取得するような方法で100回計算することを望みます。

私はマクロを使わずにこれを行う方法を見つけようとしてきました。

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

algorithm - ランダム化アルゴリズムの特性 (モンテカルロ、ラスベガス)

私は現在、ラスベガスとモンテカルロのアルゴリズムを自分で学んでおり、2つの質問は簡単かもしれませんが、誰かが私を助けてくれれば答えられません...事前に感謝します

  1. 確率 y(n) で正しい解を生成するサイズ n の任意のインスタンスで予想実行時間が最大 T(n) である問題 P のモンテカルロ アルゴリズム A を考えます。さらに、P の解が与えられた場合、時間 t(n) でその正しさを検証できるとします。P に対して常に正しい答えを与え、最大で期待される時間 (T(n)+t(n))/y(n) で実行されるラスベガス アルゴリズムを取得する方法を示します。

  2. 0<ε2<ε1<1 とする。入力に関係なく、少なくとも 1-ε1 の確率で問題の正しい解を与えるモンテカルロ アルゴリズムを考えてみましょう。入力に関係なく、少なくとも 1-ε2 の正しい解を得る確率を上げるには、このアルゴリズムを何回独立して実行すれば十分ですか?

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

arrays - 配列を参照するポインターを返すサブルーチンを取得し、それを main (C) で逆参照する

こんにちは、基本的な 1D モンテカルロ統合のコードを書こうとしています。そのためには、(別のサブルーチンに格納されている) 関数に入力できる疑似乱数のリストが必要です。乱数のリストにポインターを与えましたが、メインで逆参照しようとすると、「エラー: 型 'double' から型 'double[11]' に代入するときに互換性のない型です」 が発生します。誰かが私が間違っているところを教えてもらえますか? 私のコードはここにあります:

どうもありがとう。ジャック・メドレー

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

c - Cで乱数の3つの別々の配列を返すサブルーチンを取得する

現在、配列へのポインタを返すサブルーチンのコードがあります。この配列は、1次元モンテカルロ積分の乱数のリストです。私は今、乱数の3つの配列を必要とする多次元の同等物を実行しようとしています。それぞれに個別のサブルーチンを使用する代わりに、3 x N+1の配列を返すサブルーチンを作成しようとしています。誰かがこれのコーディングを手伝ってくれませんか。仲間は私がダブルポインターを必要とするだろうと言ったが、ほとんどのウェブソースはこれまで役に立たなかった。これが私の単一の配列コードです:

どうもありがとう!ジャックメドレー

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

objective-c - 集中的な科学アプリケーションの NSDecimalNumber?

ivarを含む「DayData」クラスを書いているとしましょう

最後の 4 つの ivar は、その日のその株の始値、高値、安値、終値です。

このクラスを、何十年、つまり何千日もの履歴データに沿った集中的なモンテカルロ シミュレーションの背後にある基本的なビルディング ブロック クラスとして使用しているとします。これは、シミュレーションを可能な限り高速にするために、これらの ivar に短期間で数百万回ではないにしても数千回アクセスする必要があることを意味します。

質問: double に固執する必要がありますか、それとも NSDecimalNumber を引き続き使用する必要がありますか? NSDecimalNumber は本当に速いのですか? 集中的な科学的アプリケーションのために NSDecimalNumber をテストした人はいますか?

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

c - リンク リストを使用してモンテカルロ コードを簡略化する方法はありますか

こんにちは、私のコードには現在 3 つの関数があり、それぞれが大量の乱数配列を生成しています。リンクされたリストまたは多次元配列を返す関数を1つだけにして、少しすっきりさせる方法があるかどうか疑問に思っています。

( http://pastebin.com/Y5aE6XKSからコピー)

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

multithreading - モンテカルロ統合のためのスレッドセーフな乱数生成

乱数を非常に迅速に計算し、複数のスレッドに適用できるものを作成しようとしています。私の現在のコードは次のとおりです。

これは機能しますが、リソースマネージャーを観察すると、すべてのスレッドを使用していないことがわかります。rand() はマルチスレッド コードで機能しますか? そうでない場合、良い代替手段はありますか?どうもありがとう。ジャック

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

matlab - MATLAB でランダム ウォーク シミュレーションをベクトル化する方法

読みやすさを重視して、MATLAB でモンテカルロ シミュレーション モデルを書き直しています。このモデルには、(x,y,z) として表される多くの粒子が含まれており、一定の終了確率を持つ状態の小さなセットをランダム ウォークします。出力に関連する情報は、特定の状態で終了する粒子の数です。

シミュレーションには十分な粒子が必要なため、粒子ごとに個別に実行するには法外なコストがかかります。ベクトル化は MATLAB からパフォーマンスを引き出す方法のようですが、MATLAB でこのシミュレーションのベクトル化されたバージョンを作成する慣用的な方法はありますか?

これを達成するために頭を悩ませています - 各粒子と状態の組み合わせを表す (nStates x nParticles) マトリックスを作成しようとさえしましたが、このアプローチは、粒子が状態から跳ね返るため、読みやすさの点ですぐに制御不能になります。互いに独立して述べる。弾丸を噛んで、これにより適した言語に切り替える必要がありますか?