問題タブ [robust]
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.
c++ - ポータブルな c++ boost::iterprocess::mutex、別の試み
マルチプロセッシング同期のためのポータブルで堅牢なソリューションを長い間探していました。これに触れた人は、良い解決策が boost::iterprocess という名前の同期オブジェクトであることを知っています。しかし....プロセスがnamed_mutexをロックし、プロセスが停止した場合(バグやその他だけでなく、プロセスが停止する通常の状況はたくさんあります。)その場合、named_mutexはロックされた状態のままになります。Ion Gaztanaga (www.boost.org/doc/libs/1_55_0/boost/interprocess/detail/robust_emulation.hpp)によって行われたブースト コードで、robust_mutex を作成する試みがありました。
彼は、状態チェックの放棄をどのように解決するかについて良い考えを持っていました。ゲーム内の各プロセスには独自のロック ファイルがあり、実行中はそのファイルをロックしたままにします。その後、Ion のrobust_mutex チェックは、ロック試行が失敗した場合、現在の所有者がロック ファイルを処理し、現在のミューテックス所有者が生きているかどうかを判断できます。デスミューテックスの場合は取得できます。ファイルロックのトリックは、プロセスが停止した場合にファイルロックがOSによってロック解除されるため、良いアイデアであり、これは移植性が高いようです。このソリューションは、ベースの spin_mutex をラップし、現在の所有者のプロセス ID を内部フィールドに保持します。徹底的なテストを行ったところ、2 つの大きな問題が見つかりました。
ファイル ロックの処理と実装方法は、ファイル ロックを使用するだけで高速になるようにミューテックスを遅くします。
有効なロック ゲート変数と所有者プロセス ID を分離すると、異なるプロセスによってミューテックスが盗まれる状況が発生します。
そして、ここに私の質問があります: 私は両方の問題の解決策を提案しています。
既存のプロセスごとに個別のロック ファイルを使用するのではなく、すべての最終的なプロセス ID (十分な 4MB があるはずです) に対して 1 つのファイルを使用し、各プロセス ロックに対して 1 バイトのみを使用します。そのバイトの位置は、プロセス ID 自体によって決定されます。(これは私の考えではありませんが、Howard Chu と彼の優れた LMDBのコードで見つけました)
spin_mutex をそのままラップするのではなく、コードを書き直して、0/1 の代わりに現在の所有者のプロセス ID をロック ゲートとして使用するようにします。これにより、ロックとロック解除を 1 つのアトミック CAS 操作で行うことができます。
私はそれを実装しようとし、Windowsでテストしました。オリジナルのブースト コードを使用し、必要に応じてブーストを呼び出します。ここにコードがあります。これはプロジェクト ツリーから取得したものなので、テストしたい場合は、一部のインクルードを調整する必要があります。これは提案なので、コード スタイルなどについて私を責めないでください。アイデアやモードが良ければ、どんどん完成させていきます。そうでない場合は、何か他のものを使用しますが、他に何も見つかりません。
recursive_mutex と named_mutex のバージョンもあります。次に、ある種の修正提案があります。これは、あるプロセスが以前に放棄されたミューテックスの所有権を取得した場合、何らかの整合性チェックを行う必要がある可能性が高いからです。
最終的な改善について話し合いたい
前もって感謝します
ラディスラフ。
c++ - Mac OS X に PTHREAD_MUTEX_ROBUST に相当するものはありますか?
pthread_mutex_t
共有メモリで withを使用して、PTHREAD_PROCESS_SHARED
異なるプロセス間の同期を行っています。
プロセスが終了してもミューテックスがロックされたままになっている場合、ミューテックスはデッドロックしている可能性があります。PTHREAD_MUTEX_ROBUST
POSIX 標準には があります。しかし、Mac OS X はPTHREAD_MUTEX_ROBUST
.
mutex
共有メモリで使用でき、クロスプロセスを同期し、ロックを解除せずにプロセスが終了した場合に堅牢にするために使用できる Mac OS Xのようなものはありますか?
python - PyMC(2) を使用したロバストな非線形回帰
この質問は、 PyMCを使用して非線形回帰を実行しようとしているという点で、 pyMCMC/pyMC を使用して非線形関数をデータ/観測に適合させる に似ています。
しかし、PyMC を使用して観測変数を非正規分布 (つまり、T 分布) に従う方法を誰かが知っているかどうか疑問に思っていました。T分布が含まれていることは知っていますが、これらを観測変数として含める方法がわかりませんでした。
これは、私が問題に直面している場所のいくつかの偽造データを使用した簡単なデモです: 明らかに異常なデータ ポイントのいくつかから保護する出力分布を使用したいと思います。
ありがとう!!
python - Python statsmodels の戻り値がありません
xy データの単純なテスト セットで statsmodels のロバスト線形モデルを使用しようとしています。ただし、model.params の戻り値として、単一の値しか取得しません。フィットの勾配と切片を取得するにはどうすればよいですか? 最小限の例(外れ値を適合から除外しようとしているため、rlm):
最後の行は のみを返しますarray([2.])
。同じパッケージの ols で同じことを試してみましたが、見返りにインターセプトとスロープが得られました。
matlab - 境界 (半) 楕円体を 3D データ ポイントのクラスターに適合させるにはどうすればよいですか?
(半)楕円形に似たクラスターに配置された 3D ポイントのデータセットがあります。たとえば、MATLAB 関数http://www.mathworks.com/matlabcentral/fileexchange/24693-ellipsoid-fitに実装されている標準的な楕円体フィッティングを試みると、フィッティングをすべての点に適用しても、虚数半径が得られます楕円体ボリュームまたはその凸包上にあるポイントのみ。
クラスターの形状が完全な楕円体に似ているよりも半楕円体であるという事実が、これらの不安定性につながるのでしょうか? 私の問題を解決できるより堅牢な方法はありますか?
アップデート:
これは、そのような 3D ポイントのクラスターの 1 つの例です。青い円は、クラスターの凸包にあるポイントを示しています。
凸包の場合の最小限の作業例は次のとおりです。
r - R: lts 回帰: $ 演算子は原子ベクトルに対して無効です
LTS 回帰を使用して変数を選択しようとしていますが、このエラーが発生します。
summary のエラー(ltsreg(y~x1+x2+x3+x4+x5))$scale: $ 演算子は原子ベクトルに対して無効です
誰かがこのエラーを解決するのを手伝ってくれますか?
image - 画像に目に見えない roubust 透かしを埋め込むアルゴリズム
画像セキュリティのための目に見えない堅牢な透かしに関するプロジェクトを行っています。次のタスクを達成するためのアルゴリズムを開発する必要があります。
画像から完全に削除できない透かしを作成します。また、所有権の信頼性を提供するアルゴリズムを考え出す必要があります。
これらのタスクを達成し、目に見えない透かしを画像に埋め込むために使用できるアルゴリズムは何ですか? この点に関して、サンプル/チュートリアルまたは有用な Web サイトを提案していただけると、さらに役立ちます。
r - R のサンドイッチ パッケージが線形モデルのロバストな標準誤差に対して奇妙な結果を生む
R で不均一分散性に強い標準エラーを見つけようとしていますが、見つけたほとんどの解決策はcoeftest
とsandwich
パッケージを使用することです。ただし、これらのパッケージを使用すると、奇妙な結果が得られるようです (意味がありすぎます)。私の教授も私も、結果が正しくないように見えることに同意します。誰かが私の間違いを教えてもらえますか? 適切なパッケージを使用していますか? パッケージにバグはありますか? 代わりに何を使用すればよいですか? または、同じ結果をSTATAで再現できますか?
(データは 2010 年から 2014 年 3 月のサンプルの CPS データです。データを保持するために MySQL データベースを作成し、survey
パッケージを使用して分析しています。)
前もって感謝します。(読みやすくするためにコードを多少簡略化しています。詳細が必要な場合はお知らせください。)
r - ロバストな標準誤差 (vcovHC) を計算できません: 多重共線性と NaN エラー
次のデータセットがあります。
sandwich
パッケージ を使用して、次の線形モデルを実行し、ロバストな標準誤差を計算したいと考えています。
線形モデルの出力は良好ですが、ロバストな標準誤差は計算されていません:NaN
各標準誤差に対して が返されます。
私の推測では、NaN
は変数によるものでtreat
あり、ほぼ完全に同一線上にある (とshare
の観測は 1 つしかない)。問題は、これらの変数を使用しなければならないことです。それらを交換することはできません。treat=1
share!=0
誰かがこの問題の回避策/解決策を考えられますか?