タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

qiitaとdata-structureとgraph-theoryに関するnabinnoのブックマーク (5)

  • B-treeインデックス入門 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? B-treeがMySQLで使用されている背景から、B-treeインデックスの構造、そしてそれに基づいたインデックスの使用方法の入門編です。以下の流れに沿ってまとめていきます。 インデックスってなに? B-treeってなんでインデックスに使われているの? B-treeインデックスの構造 インデックスの使用方法 ※ 勉強をかねてまとめていることもあり、間違っている箇所がございましたら教えていただけると嬉しいです。 インデックスってなに? 全体の内容の中から特定部分を探すために使用する、の索引のような概念のことです。これを用いることで、検索

    B-treeインデックス入門 - Qiita
  • 全域木を列挙する - Qiita

    はじめに 約30年前に大学で習った、全域木の列挙アルゴリズムをPythonで実装してみましたので、ご紹介します。 全域木とは、元のグラフの全ての点を含む木のことです。 アルゴリズム グラフの式表現を求めて、式表現を展開して列挙します。 例えば、三角形のグラフで各辺をそれぞれa,b,cとすると、式表現は組(abc)となり、これを展開するとab/ac/bcとなります。 グラフの式表現は以下のように求められます。 辺の最初の式表現として、アルファベット1文字を持たせます。 グラフは、式表現を維持しながら辺または辺と点を削除できます。 グラフが1点になったときに式表現が求められます。 グラフGの式表現(Expr(G))は、任意の1つの辺Eを選んで以下のように変形できます。(標準ルール) Expr(G) = 和(積(組(Expr(E)), Expr(GからEを削除)), 積(Expr(E), Exp

    全域木を列挙する - Qiita
  • RubyとグラフデータベースNeo4jでソーシャルデータをいじくる - Qiita

    ##Neo4jって何? Neo4jJavaで実装された、 オープンソースの最も人気のあるグラフデータベースです。 グラフデータベースでは、データセット全体をひとつの巨大な高密度ネットワーク構造としてモデル化します。 細かい説明は、ここを見てください。 ##Neo4jでできること グラフデータをそのままの構造でデータベースに保存することができて、そのグラフデータを元に検索やデータの引き出しなどができます。 グラフデータベースの構造は至ってシンプルで、以下の3つで構成されています。 node:関係を持つ対象 relation:方向を有する関係性 property:ノードとリレーションシップが持つ属性 具体的に、弊社で運営しているTalentBaseのデータ構造をグラフデータベースで管理したらどんなことが出来るかをまとめてみます。 TalentBaseの場合、 node:ユーザー、企業、求人

    RubyとグラフデータベースNeo4jでソーシャルデータをいじくる - Qiita
  • rubyからグラフデータベースneo4jを利用する - Qiita

    neo4jとは neo4jとはNeo Technologyが開発したJavaベースのグラフデータベースです。(日語ページ) グラフデータベースは、一つ一つのデータを行で表現するリレーショナルデータベースと異なり、 ノード(頂点)、リレーションシップ(エッジ)、プロパティ(属性)という3つの基構成要素でデータを格納します。 グラフデータベースが有用なのはTwitterやFacebookのように、フォローや友人関係を扱う時です。 「友人のそのまた友人を探す」や「任意の二人を選択し、最短の関係(パス)を探す」などの問題を解こうとしたとき、 リレーショナルデータベースでは関係の探索に大量の結合演算が必要になりますが、 グラフ構造をそのまま格納しているグラフデータベースなら高速に処理することが可能です。 neo4jはオープンソースですが、ライセンスはAGPLv3なので、商用利用などの際はライセン

    rubyからグラフデータベースneo4jを利用する - Qiita
  • Ruby製のシンプルなワークフローエンジンRukawaの紹介 - Qiita

    Bigqueryを使ったバッチジョブを色々と実行しているのですが、Rakeで複雑な依存関係を管理したり、並列実行させたりするのが辛くなってきたのでRukawaというワークフローエンジンを自作しました。 自作したのは、RailsプロダクトにAirflowとかLuigiとかAzkabanとか入れるにはちょっと重厚過ぎる感じだったのと、Rubyで書ける方が楽で良いやという理由からです。 RukawaとはRUby KAntan Workflow Assistantの略です(後付け) (当はミッチーとか水戸の方が好きなんだけど良い名前が浮かばなかった) 実際は、並列実行を可能にして書き方を変えてみたRakeとそんなに大差無い。 Rukawaの機能 ジョブの定義 まず実行したい処理をジョブクラスに記述します。 module ExecuteLog def self.store @store ||= {

    Ruby製のシンプルなワークフローエンジンRukawaの紹介 - Qiita
  • 1