問題タブ [non-deterministic]

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

macros - マクロまたはプロシージャとしての`amb`演算子?

このページでは、投稿の後に、手順としての非常に短い実装を示すコメントがあります。amb

しかし、私は通常amb、マクロとして実装されていると考えています。schemers.orgのFAQや、DoraiSitaramの本にもあります。

つまり、マクロバージョンは長く、理解するのが少し難しくなります。プロシージャバージョンと比べて利点はわかりませんでした。もちろん、マクロよりもプロシージャを使用したいと思います。見逃したことはありますか?

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

haskell - Haskellの公正な同時「マップ」機能?

ある種のネットワークをシミュレートしていて、チャンのリストを介して値をブロードキャストする関数があるとします。

これにより、データが各レシーバーに順番に「送信」されます。代わりに、すべてのレシーバーに非決定論的にブロードキャストしたいと思います。

手がかりをありがとう。

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

multithreading - Perl:特別な変数はスレッドセーフですか?

私は$@グローバル変数に関するいくつかの質問を読んでいて、評価が成功してそれをきれいに消去したために、処理される前にそれをどのように壊すことができるかを読んでいました。

しかし、並行スレッドで発生するエラーによってそれが破壊された場合はどうなりますか?新しいスレッドパッケージは、デフォルトでは共有されないことを示しています。つまり、「$ a =$a;」を作成する数少ない主流言語の1つです。デフォルトでは決定論的です(そして、大規模なプロジェクトでは、C#とJavaがPerlよりも優れていると人々が言うと思います)。しかし、特別なグローバル変数についてはよくわかりません。

私の本能は、それらが他の変数とまったく同じであると言っているので、それらは共有されません。私の脳の本能は、「Stackoverflowのウィザードで確認しましょう」と言っています。

Perldocのスレッドチュートリアルを確認しました。共有セクションで通常の変数について説明していますが、特別な変数については説明していません。

最初にローカライズしなくても、他のスレッドによってそれらが破壊されるリスクなしに特別な変数を使用できますか?たとえば、並列スレッドで発生するエラーを心配せずに$ @から値を引き出すことはできますか?

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

c++ - 非決定論的出力のためのCUDAデバッグ手順

Ubuntu10.1064ビットシステムでCUDA4.0/ Thrustベースの画像再構成コードをデバッグしていて、出力画像がランダムに表示されるこのランタイムエラーをデバッグする方法を見つけようとしています。 "ノイズ。" 私のコードには乱数ジェネレーターの出力がないので、たとえ間違っていても、実行間で出力が一貫していると思います。しかし、そうではありません...

このようなCUDAランタイムエラーをデバッグするための一般的な手順を誰かが持っているかどうか疑問に思っていました。cudaカーネルで共有メモリを使用していません。グローバルメモリを含む競合状態を回避するために苦労しましたが、何かを逃した可能性があります。

gpu ocelotを使用してみましたが、CUDAおよびCUSPARSE関数呼び出しの一部を認識できません。

また、私のコードは一般的に機能します。これらの非決定論的な結果が得られるのは、この1つの設定を変更したときだけです。その設定に関連するすべてのコードを確認しましたが、何が間違っているのか理解できません。ここに投稿できるものに蒸留できれば、そうするかもしれませんが、現時点では複雑すぎてここに投稿できません。

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

java - ユーザー提供のクラス ファイルを監査して、パッケージ、クラス、およびメソッドをブラックリストに登録する方法

Java クラス ファイルとして提供されるユーザー定義のストアド プロシージャをホストするアプリケーションに取り組んでいます。手順は決定論的である必要があり、非決定論の原因となるさまざまなパッケージとメソッドをブラックリストに載せたいと思います。java.lang.Class と javax.tools.* で利用できるものを見てきました。

java.lang.Class を使用して、メンバー、メソッド パラメーター、戻り値の型を監査できるようです。ただし、メソッドの内容を監査するには、生のクラス ファイルを分析する必要があるようです。

監査が必要な静的初期化ブロックやメンバー変数の初期化などのまれなケースもあります。デフォルトのコンストラクターが非決定論的である java.util.Date のようなケースがありますが、それ以外は問題ありません。

クラスファイルのこれらの側面を簡単に分析できるフレームワークまたはツールはありますか?

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

java - Java の誤った for ループ?

次の Java コードを実行すると、誤った動作が発生することがわかりました。

どちらのループもまったく同じです。それにもかかわらず、2番目のものは非決定論的な誤った値を出力します。バージョンを使用してLinuxでコードを実行しています:

サンプル出力:

再現できますか?バグですか?

編集:奇妙な

正常に動作します。

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

algorithm - 非決定的アルゴリズム

非決定性アルゴリズムの簡単な説明が必要です。非決定性アルゴリズムを並列プロセッサを搭載したコンピュータと比較できますか? 非決定性アルゴリズムについて誰か正確に説明してください

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

lambda - Mercury:高次データ型の決定論を宣言する方法は?

以下のMercuryコードをコンパイルすると、コンパイラから次のエラーが発生します。

コンパイラが言っているのは、「型を宣言したときtest_case、決定論を指定しなかったので、意味があると思いましdetた。しかし、semidetラムダを渡した」と思います。

私の質問:

  • 型の決定論を宣言するための構文は何ですか?私が試した推測はすべて構文エラーを引き起こしました。
  • 誰かがのインスタンス化の/* unique */部分が何を意味するのか説明できますか?TestCaseそれは、与えられたインスタンス化と期待されるインスタンス化の間に不一致を引き起こしますか?
  • でラムダを宣言するためのより冗長でない方法はありmainますか?ラムダ内のコードと同じくらい、ラムダに関する宣言があります。

コード:

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

finite-automata - 非決定的な有限自動化の問題

私はいくつかの研究を行っており、1を処理するときにこの小さな非決定論的アルゴリズムについて少し混乱しています。0または1がリダイレクトされるため、q1のブランドに分割され、q2への出口矢印があることを理解していますは 1 ですが、なぜ q3 に分割されるのでしょうか? (0,空の文字列) を読み間違えているように感じます。

ここに画像の説明を入力

ここに画像の説明を入力

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

selenium - クリックは Selenium で常に機能するとは限りません

clickAndWait私は PHPUnit で Selenium を使用していますが、ブラウザーが呼び出しを無視していることが原因であると思われるエラー状態でテストが失敗することがあります。テストの実行はclickAndWait(大きなタイムアウトを設定した場合でも) 遅延なくコマンドを渡し、次のアサーションまたは要素アクセスは失敗します。スクリーンショットを作成すると、クリック コマンドがまったく実行されなかったかのように前のページが表示されます。これは、リンクと送信ボタンの両方で発生します (どちらも通常、いいえjavascript:または同様のトリック)、非決定論的に。特定のコントロールでは他のコントロールよりも頻繁に発生するようで (多くはまったく影響を受けません)、テストが失敗する頻度は短期的には多かれ少なかれ一定ですが、長期的には大きく変化します (100 分の 1 になることもあります)。 、時には2分の1)。なんらかのサーバー負荷の影響を受けていると推測していますが、明らかな相関関係は見られませんでした。