個人財務 ストリーミングアルゴリズムとブルームフィルタ - 多くのストリーミングアルゴリズムの中心にあるダミー

ストリーミングアルゴリズムとブルームフィルタ - 多くのストリーミングアルゴリズムの中心にあるダミー

Anonim

多くのストリーミングアルゴリズムの中心はブルームフィルタです。ほぼ50年前にBurton H. Bloomによって作成されました。コンピュータサイエンスがまだまだ若い時期に、このアルゴリズムの作成者の元の意図は、スペース(メモリ)や時間(複雑さ)を 許容誤差。 彼の原著論文は、 許容誤差を伴うハッシュコード化における空間/時間トレードオフ と題されている。

<! - 1 - >

Bloomが自分のアルゴリズムで動機付けを考慮する空間と時間について疑問に思うかもしれません。すでに説明したデータ構造を使用して、要素がストリームにすでに出現しているかどうかを判断する必要があるとします。ストリーム内で何かを見つけることは、録音と検索が高速であることを意味します。したがって、ハッシュテーブルは理想的な選択肢です。 ハッシュテーブル は、記録したい要素を追加するだけです。ハッシュテーブルは、要素自体ではなく要素を表現するために簡単に操作された値を使用するため、ハッシュテーブルから要素を復元するのは高速です(非常に複雑かもしれません)。しかし、両方の要素とその要素へのインデックスを格納することには限界があります。ハッシュテーブルが、連続して潜在的に無限のストリーム内の要素など、処理できる以上の要素に面していると、ある時点でメモリの問題が発生することになります。

<! - 2 - >

ブルームフィルタの基本的な考慮事項は、誤検出が発生する可能性がありますが、偽陰性は不可能です。たとえば、データストリームに発電所のリアルタイム監視データが含まれている場合があります。ブルームフィルタを使用する場合、データストリームの分析では、予想される読み値が許可された読み取り値の一部である可能性があり、一部のエラーは許可されていることが示されます。しかし、システムにエラーが発生した場合、同じ分析では、読み取り値が許可された読み取り値の一部ではないことが示されます。偽陽性は問題を起こす可能性は低いですが、偽陰性がないことは誰もが安全であることを意味します。偽陽性の可能性があるため、Bloomフィルターなどのフィルターは確率的なデータ構造です。特定の答えを提供するのではなく、可能性のあるものを提供します。

<!ハッシュテーブルの個々のエントリは、書籍のインデックスのように動作するため、高速です。ハッシュ関数を使用してハッシュを生成します。入力は複合データを含む要素であり、出力はその要素のインデックスとして機能する単純な数値です。ハッシュ関数は、特定のデータ入力をフィードするたびに同じ数を生成するため、決定論的です。ハッシュを使用して、必要な複雑な情報を探します。 Bloomフィルタは、ハッシュテーブルのようにそれらを保存せずに多くの要素の痕跡を記録する倹約的な方法であるため、有用です。それらは簡単な方法で動作し、以下を主な要素として使用します:

ビットベクトル:

  • 要素の各ビットが0または1の値を持つことができるビット要素のリスト。リストは長いmと呼ばれるビット数。 mが大きければ大きいほど、そのサイズを最適に定義する方法はありますが、より良い方法です。 一連のハッシュ関数:
  • 各ハッシュ関数は異なる値を表します。ハッシュ関数は、データを迅速にクランクし、一様に分散した結果を生成することができ、結果はハッシュの最小出力値から最大出力値まで等しくなる。

ストリーミングアルゴリズムとブルームフィルタ - 多くのストリーミングアルゴリズムの中心にあるダミー

エディタの選択

自転車の点検チェックリスト - ダミー

自転車の点検チェックリスト - ダミー

すぐに自転車の点検をするために数分。あなたの自転車を一時的に与えることは、あなたの次の乗り心地の安全性、快適性、そして楽しさを高めることができます。乗車準備の一環として、次の手順に従ってください:車輪のクイックリリースレバーを開閉して、確認します。

必須サイクリング用具 - ダミー

必須サイクリング用具 - ダミー

あなたはバイクの乗り心地をさらに楽しくするために何百万ものものを買うことができます。自転車用に必要なアクセサリーをいくつかご紹介します。ヘルメット:ヘルメットを着用することはオーストラリアとニュージーランドの法律です。

自転車の範囲を閲覧可能 - ダミー

自転車の範囲を閲覧可能 - ダミー

あなたはサイクリングをすることに決めましたが、その重要なキットを欠いている - バイク!あなたが望む自転車のタイプを正確に知っていない限り、良いアドバイスは、あなたの時間を費やして、自転車で何をするのか、どこに乗るのかを本当に考えてみることです。

エディタの選択

アプリとプライバシー - ダミーを特定する

アプリとプライバシー - ダミーを特定する

Spotifyアプリケーションに登録すると、あなたの個人的な詳細の一部にアクセスする。たとえば、Top10アプリを使用してプレイリストを公開するには、既存のFacebookアカウントにリンクする必要があります。このプロセス中、Facebookはあなたに特定の種類の共有を許可するかどうか尋ねます。

モバイル対応携帯電話を識別する - ダミー

モバイル対応携帯電話を識別する - ダミー

SpotifyモバイルはiPhoneで最も人気がありますが、優れたAndroidバージョン(basks Androidマーケットの5つ星評価のうち5つの評価では5位に入っています)が急速に追いついています。

特集 - ダミー

特集 - ダミー

スポットメイキングは、モバイルでも、あらゆる音楽への普遍的な即時アクセスを可能にしますデバイスまたはデスクトップコンピュータ。 Facebookは人々が古い友達と再会して新しい友達を作るのを助け、Spotifyの助けを借りて青春の歌を再発見し、友人や検索を通じて新鮮な音楽を発見しました。

エディタの選択

IOSアプリケーションでオブジェクト指向設計を使用する方法 - ダミー

IOSアプリケーションでオブジェクト指向設計を使用する方法 - ダミー

IOSは、動作がオブジェクトに関連付けられているプログラムを設計するさまざまな方法です。説明するために、紅茶とスープの作り方を検討することを検討してください。しかし、即座に代わりに活動に飛び込んではいけません。探偵が犯罪現場に入るように行動してください。

IOSアプリケーションでハイレベル抽象化を使用してビデオを再生する方法 - ダミー

IOSアプリケーションでハイレベル抽象化を使用してビデオを再生する方法 - ダミー

このセクションでは、MPMoviePlayerViewControllerクラスの高レベル抽象化を使用してiOSアプリケーションでビデオを再生する方法を説明します。 - (IBAction)playVideo:(id)sender {MPMoviePlayerViewController * moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL];このコードは、ビデオビューコントローラ内のTTTVideoViewControllerファイルからです。 [self presentMoviePlayerViewControllerAnimated:moviePlayer];}シンプルさ自体!必要なのはURLです。

IOSアプリケーションでJavaスクリプトオブジェクト表記を使用する方法 - ダミー

IOSアプリケーションでJavaスクリプトオブジェクト表記を使用する方法 - ダミー

JavaScript Object Notation (JSON)はiOSアプリのデータを表現する上で事実上の標準になっています。 JSONを使用して、Web上でデータを転送したり、長期保存データを保存および取得するためのフォーマットとして使用することができます。 JSONは、人間が読める形式であり、マシンが理解しやすい形式です。 JSONのデータは1つにまとめることができます...