問題タブ [sliding-window]
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.
drools - Drools Fusion のスライディング ウィンドウのサンプルが機能しない
Drools の初心者で、スライディング ウィンドウの概念を試しています。
私の問題は、少なくとも 2 つの販売イベントで成功したトランザクションが発生したかどうかを検出することです。そのようなイベントが発生したかどうかにかかわらず、常に「2 つのイベントで販売が発生しました」という出力が得られます。
--------------drl----------
- - - - - - -コード - - - - -
algorithm - 無計画に保存された連続的に増加するサブシーケンスを見つける
問題は、長さの配列が与えられた場合、それらの要素がソートされたときに間隔1で等差数列を形成するように、長さN
のすべてのサブシーケンスを見つける必要があることです。ソートすると、共通の差が1のAPが生成されるため、このようなサブシーケンスの1つと見なされます。W
W
[1,4,6,3,5,2,7,9]
W
[4,6,3,5,2]
[2,3,4,5,6]
頭に浮かぶ当面の解決策は、スライディングウィンドウを用意することです。新しい要素ごとに、古い要素をポップし、新しい要素をプッシュして、ウィンドウを並べ替えます。そのウィンドウの場合window[w-1] - window[0] + 1 = w
、それはそのようなサブシーケンスです。ただし、時間がかかりますが、 CodechefO(NlogN)
のソリューションでは、両端キューを使用する時間アルゴリズムが提案されています。アルゴリズム、何がプッシュおよびポップされるのか、なぜそうなるのか、そして新しい要素ごとに頼る必要なしにウィンドウをソートされた順序で維持する方法を理解するのに苦労しています。誰か説明できますか?O(N)
matlab - スライディング ウィンドウ操作を適用した後、境界ピクセルの値を設定するにはどうすればよいですか?
MATLAB の画像にスライディング ウィンドウ操作を適用した後、境界ピクセル (パディングを使用して計算されたピクセル) を設定して、それらを意味のないものとしてマークしstdfilt(i, ones(5, 5))
たいと思います。NaN
この例では、最も外側の 2 つの行と列を に設定しますNaN
。M * M ウィンドウが与えられた場合、(M - 1) / 2 ピクセル幅の境界線を特定の値に設定するにはどうすればよいですか?
python - Pythonで大きな.txtファイルを効率的に処理する
私はPythonとプログラミング全般にまったく慣れていませんが、Pythonで約700万行を含むタブ区切りの.txtファイルに対して「スライディングウィンドウ」計算を実行しようとしています。スライディングウィンドウとは、たとえば50,000行で計算を実行し、その数を報告してから、たとえば10,000行上に移動し、さらに50,000行で同じ計算を実行することを意味します。計算と「スライディングウィンドウ」が正しく機能しており、データの小さなサブセットでテストするとうまく機能します。ただし、データセット全体に対してプログラムを実行しようとすると、非常に遅くなります(現在、約40時間実行しています)。計算は非常に単純なので、これほど長くかかることはないと思います。
私が今.txtファイルを読んでいる方法は、csv.DictReaderモジュールを使用することです。私のコードは次のとおりです。
これにより、一度に700万行すべてから辞書が作成されると思います。これが、大きなファイルの場合に非常に遅くなる理由である可能性があると思います。
一度にデータの「チャンク」または「ウィンドウ」に対して計算を実行することにのみ関心があるので、一度に指定された行のみを読み取り、計算を実行してから、新しい指定された「指定された行のチャンク」または「ウィンドウ」?
python - csv.readerは1行でのみ読み取ります
私はPythonにかなり慣れていません。非常に大きな.csvファイル(約680万行)のデータを処理しようとしています。行の例は次のようになります。
最初の列はグループを示し、2番目は位置を示し、3番目は計算を実行するために読み込んでいる値を示します。これらの計算は、位置に基づいた「スライディングウィンドウ」で実行しようとしています。もう1つの要因は、グループごとに位置番号が再開されるため、各グループが互いに別々に計算されることです。私のコードでは、何かをする前にまずグループIDをリストとして読み取ろうとし、そのリストを「一意化」してから、そのリストをその特定のグループに対してのみ「スライディングウィンドウ」を実行するための基礎として使用します。次に、一意のリスト内の次のグループIDに移動して、計算を再実行します。これが私のコードの基本です(unique1関数はリストを一意化する簡単な方法です:
私が遭遇している私の問題は、それが私のデータセットの最初の行を読み取っているだけで、それ以上は何も読み取っていないということです。したがって、「リーダーの行の場合」の直後に「行の印刷」を挿入すると、次のような出力が得られます。
これ以上の計算やループを行わずにこれとまったく同じコードを作成すると、データセット内のすべての行が出力されます。この状況では、このループの最初のすべての行をどのように読み取るのでしょうか。
python - Python:可変幅のスライディングウィンドウ
実験中に生成されたデータを処理するプログラムをPythonで作成していますが、データの傾きを推定する必要があります。私はこれを非常にうまく行うコードを書きましたが、それはひどく遅いです(そして私はあまり辛抱強くありません)。このコードがどのように機能するかを説明しましょう。
1)サイズdxの小さなデータを取得します(3つのデータポイントから開始)
2)差(すなわち| y(x + dx)-y(x-dx)|)が特定の最小値(40x標準偏差のノイズ)よりも大きいかどうかを評価します。
3)差が十分に大きい場合は、OLS回帰を使用して勾配を計算します。差が小さすぎると、dxが増加し、この新しいdxでループをやり直します。
4)これはすべてのデータポイントで継続されます
[さらに下の更新されたコードを参照してください]
約100kの測定値のデータサイズの場合、これには約40分かかりますが、プログラムの残りの部分(このビットよりも多くの処理を実行します)には約10秒かかります。これらの操作を行うにはもっと効率的な方法があると確信しています。皆さん、私を助けてくれませんか?
ありがとう
編集:
さて、私は二分探索のみを使用して問題を解決し、許可されるステップ数を200に制限しました。すべての人の入力に感謝し、最も役立つ答えを選択しました。
最終的に更新されたコード:
r - R: 指定された座標の高速スライディング ウィンドウ
nrow が約 100 万または 2 で、ncol が約 200 のデータ テーブルがあります。
行の各エントリには、座標が関連付けられています。
データのごく一部:
最初の 4 行の座標:
私が望むのは、データとウィンドウサイズを指定すると、各列に平均スライディングウィンドウが適用された同じサイズのデータテーブルを返す関数です。または、言い換えると、行エントリiごとに、coords[i]-windsize と coords[i]+windsize の間の座標を持つエントリを見つけ、初期値をその間隔内の値の平均に置き換えます (列ごとに個別に)。 .
ここでの主な問題は速度です。
これがそのような機能の私の最初のテイクです。
最後の for ループの前のコードは非常に高速で、各エントリに使用する必要があるインデックスのリストを取得します。ただし、for ループを何百万回もグラインドし、データ テーブルのサブセットを取得し、適用内のすべての列を一度に操作できるように複数の行があることを確認する必要があるため、すべてがバラバラになります。
私の 2 番目のアプローチは、実際の値を RANGE リストに貼り付け、ギャップをゼロで埋め、zoo パッケージから rollmean を実行し、列ごとに繰り返すことです。しかし、rollmean はすべてのギャップを通過し、最終的に元の座標の値のみを使用するため、これは冗長です。
Cに行かずに高速化するための助けをいただければ幸いです。
networking - 往復時間 (スライディング ウィンドウ)?
2 つの質問があります。
RTT を計算する際に、送信時間を考慮する必要がありますか?
2 つのステーション M と N の間の距離は L km です。すべてのフレームは K ビット長です。キロメートルあたりの伝搬遅延は t 秒です。T ビット/秒をチャネル容量とします。処理遅延が無視できると仮定すると、スライディング ウィンドウ プロトコルが使用されている場合、フレーム内のシーケンス番号フィールドの最小ビット数は最大利用率になりますか?
java - このコードをJavaに移植するにはどうすればよいですか?
スライディングウィンドウプロトコルをデータリンクプロトコルとして使用し、UDPソケットを使用して通信する2つのアプリケーションを実装しています。Tanembaumの本を参考にして、スライディングウィンドウプロトコルを実装しようとしています。これが私が本で見つけたコードです。
これをJavaに翻訳するのに少し混乱しています。ここでスレッドがどのように適用されるのか正確にはわかりません。これを実装するのに役立つヒントや戦略を探しています。
編集
私は最も混乱しています:
- 関数wait_for_event()およびstart_timer()を実装する場合。
- UDPソケット部分はどこに置くべきですか?UDPソケット部分はto_physical_layer()とfrom_physical_layer()内にあると思います。私が間違っている場合は訂正してください。
- プロトコルは双方向であるため、両方のアプリケーションに同じコードを含める必要がありますか?
sql - SQL-複数行の結果の違いを表示する方法
次の結果が得られるSQL2012クエリがあります。
結果は、同じ日付と異なるパーセンテージで異なる国を示しています。
私が示す必要があるのは、同じ国のみの日付間のこれらのパーセンテージの移動です。
したがって、02/01と01/01の間の差は0.02です。データを抽出してExcelでこれを実行できますが、理想的には、クエリの動きに応じて結果を出力する必要があります。