JP6938229B2 - クリークを介してグラフィックスを圧縮するシステム及び方法 - Google Patents

クリークを介してグラフィックスを圧縮するシステム及び方法 Download PDF

Info

Publication number
JP6938229B2
JP6938229B2 JP2017109064A JP2017109064A JP6938229B2 JP 6938229 B2 JP6938229 B2 JP 6938229B2 JP 2017109064 A JP2017109064 A JP 2017109064A JP 2017109064 A JP2017109064 A JP 2017109064A JP 6938229 B2 JP6938229 B2 JP 6938229B2
Authority
JP
Japan
Prior art keywords
creek
graph
vertices
creeks
ordered
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017109064A
Other languages
English (en)
Other versions
JP2017224287A (ja
Inventor
ライアン・エイ・ロッシ
ロン・チョウ
Original Assignee
パロ アルト リサーチ センター インコーポレイテッド
パロ アルト リサーチ センター インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パロ アルト リサーチ センター インコーポレイテッド, パロ アルト リサーチ センター インコーポレイテッド filed Critical パロ アルト リサーチ センター インコーポレイテッド
Publication of JP2017224287A publication Critical patent/JP2017224287A/ja
Application granted granted Critical
Publication of JP6938229B2 publication Critical patent/JP6938229B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/70Type of the data to be coded, other than image and sound

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Generation (AREA)

Description

本開示はグラフ圧縮に関する。より具体的には、本開示は、計算時間及び記憶要件を低減するために大きなクリークを発見して除去することによってグラフを符号化する方法及びシステムに関する。
グラフは、ノードとしても知られる頂点のセットを接続するリンク又は接続部としても知られるエッジの表現である。グラフは、ソーシャルネットワーク又は消費者製品関係、生物学及びコンピュータサイエンスなどの大規模データセットの分析を含む、多くの用途にとって重要である。関係の予測及び推薦のためを含む多くのグラフ計算方法が存在している。
グラフの重要性のために、ディスク又はメモリなどのコンピュータ化記憶装置においてグラフを表現して記憶する多数の方法が存在する。グラフの表現を圧縮するための多数の方法も存在する。例えば、エッジベースの圧縮疎列(ECSC)フォーマットは、グラフのエッジを記憶する行列の圧縮表現を利用する。ECSCフォーマットは、圧縮列記憶(CCS)としても知られる疎行列を記憶するための圧縮疎列(CSC)フォーマットに基づいている。これらのフォーマットは、ゼロを記憶するのを回避しながら非ゼロ要素を符号化することによって行列の希薄さを利用する。
そのようなグラフを圧縮する技術は、ますます重要になってきているが、グラフの圧縮は、基本的に困難なままであり、未解決の問題である。例えば、GPUなどの並列コンピューティングアーキテクチャは、メモリが限られており、それゆえに、通常は大きなグラフを扱うことができない。さらに、GPUアルゴリズムは、この制限を念頭に置いて設計されなければならず、多くの場合、追加のメモリを使用するのを回避するためにかなり多くの計算を実行する必要がある。
グラフ内のクリークを特定するための多数の方法も開発されている。クリークとは、グラフの完全に接続されたサブグラフ又は頂点のサブセットである。クリーク発見方法は、グリーディアルゴリズム、分岐限定アルゴリズム及び動的プログラミングを含む。一般に、クリーク発見は、近似するのが困難な難問であることが知られており、したがって、かなりの計算時間を要することがある。
本発明の1つの実施形態は、グラフの圧縮表現を生成するシステム及び方法を提供する。動作中において、システムは、グラフの頂点及びエッジを示すデータ構造を記憶する。システムは、グラフ内の最大クリークを特定することができる。最大クリークは、グラフ内の頂点の完全に接続された最大残存サブセット又は最大残存クリークへの近似である(大きな残存クリーク又はクリークに近い頂点の大きなセットなど)。そして、システムは、特定されたクリークを発見されたクリークのセットに追加することができる。システムは、グラフから特定されたクリークを除去することができる。特定された最大クリークのサイズが停止基準未満であること又はグラフ内に頂点が残存していないことの判定に応答して、システムは、発見されたクリークのセット及びクリークに属している頂点のセット内のクリークを順序付けることができ、発見されたクリークの順序付けられたセット及び順序付けられた頂点のセットに基づいてグラフの圧縮表現を生成することができ、グラフの圧縮表現を記憶することができる。
この実施形態の変形例において、システムは、グラフにおいて、クリーク擬似頂点によって発見されたクリークのセット内の各クリークを置き換えることができる。
この実施形態の変形例において、第1の各クリークに属している頂点の第1のサブセットは、連続的に順序付けられることができ、第2の各クリークに属している頂点の第2のサブセットは、第2の各クリークが順序付けられたクリークのセット内の第1の各クリークの後に順序付けられる場合、頂点の第1のサブセットの後に順序付けられることができる。そして、システムは、順序付けられたクリークのセット内の各クリークについて、各クリークに属している頂点の各サブセット内の第1の順序付けられた頂点に関連付けられた順序付けインデックスを符号化することができる。
この実施形態の変形例において、システムは、k−コア縮退値に基づいてグラフ内の頂点を順序付けることができる。そして、システムは、順序付けに基づいて、第1の各頂点を選択することができる。システムは、第1の頂点に接続された隣接頂点を選択することができる。システムは、第1の頂点及び隣接頂点を候補最大クリークに追加することができる。
この実施形態の変形例において、システムは、グラフトラバーサル又はソーシャルネットワーク計算の第1の部分を実行することができ、グラフトラバーサル又はソーシャルネットワーク計算は、第1の頂点及び第2の頂点が接続されるかどうかを確認する必要がある。そして、システムは、第1の頂点及び第2の頂点が接続されるかどうかを検査することができ、第1の頂点についての順序付けインデックス及び第2の頂点についての順序付けインデックスが各クリークに属している頂点の同じサブセット内に含まれるかどうかを判定することをさらに備える。そして、システムは、第1の頂点及び第2の頂点が接続されるかどうかの検査結果に基づいて、グラフトラバーサル又はソーシャルネットワーク計算の第2の部分を実行することができる。そして、システムは、グラフトラバーサル又はソーシャルネットワーク計算に基づいて、ユーザについての推薦を生成することができる。
この実施形態の変形例において、システムは、同じ独立したセットに属している2つの各頂点が共通の隣接者を有しないように、独立した頂点のセットを生成することができる。そして、システムは、第1の独立したセットが次数関数を最大化するように、独立した頂点のセットを順序付けることができる。そして、システムは、第1の独立したセットからの各頂点を各プロセッサに割り当てることができる。そして、各プロセッサは、各頂点に接続された隣接頂点を選択することができる。そして、各プロセッサは、第1の頂点及び隣接頂点を候補最大クリークに追加することができる。
図1Aは、クリークを含むグラフの例を示している。 図1Bは、図1Aのグラフにおける2つのクリークの特定を表している。 図2は、いくつかの実施形態にかかるグラフ圧縮方法を利用するグラフ計算システムの例示的なアーキテクチャを示すブロック図を表している。 図3は、本発明のいくつかの実施形態にかかる、図1Bにおいて特定された2つのクリークの符号化を示している。 図4は、本発明の実施形態にかかる図1Aのグラフにおける頂点及びクリークの例示的な符号化を表している。 図5は、本発明の実施形態にかかるグラフを圧縮する方法を示すブロック図を表している。 図6は、本発明の実施形態にかかる実際のデータセットにおけるクリーク特定を示している。 図7は、クリークを発見してグラフを圧縮するための図5に示される方法に対する並列効率及び精度の例示的な変更を示している。 図8は、本発明の実施形態にかかる例示的なグラフ圧縮装置を示すブロック図を表している。 図9は、本発明の実施形態にかかるグラフ圧縮用の例示的なコンピュータシステムを示すブロック図を表している。
図面において、同様の参照符号は同じ図要素を指している。
以下の説明は、当業者が実施形態を作製して使用するのを可能とするように提示され、特定の用途及びその要件の文脈において提供される。開示された実施形態に対する様々な変更は、当業者にとって容易に明らかであり、本願明細書において定義される一般的な原理は、本開示の精神及び範囲から逸脱することなく他の実施形態及び用途に適用されることができる。それゆえに、本発明は、示された実施形態に限定されるものではなく、本願明細書において開示される原理及び特徴と一致する最も広い範囲が与えられるべきである。
概要
本発明の実施形態は、グラフを符号化するためにその後に使用される大きなクリークを特定することによって高速並列グラフ圧縮を実行するという問題を解決する。システムはまた、正確で高速でヒューリスティックなクリーク発見方法を提供することができる。これらの方法は、1億ノードもの多数の実世界グラフにわたってグラフサイズにおいてほぼ線形にランタイムでスケーリングすることが本発明者らによって観察されている。動作中において、システムは、グラフの頂点及びエッジを示すデータを取得する。システムは、グラフ内の最大クリークを特定するためにクリーク発見方法を実行する。そして、システムは、グラフからクリークを除去し、発見されたクリークのセットにクリークを追加し、発見されたクリークのセットに基づいてグラフの圧縮表現を生成する。
システムは、コンピューティング技術と、グラフを含む任意の計算を実行するコンピュータの能力とを向上させる。本願明細書において開示されるシステム及び方法は、事実上全てのグラフ計算において使用されるグラフプリミティブ演算の計算速度を大幅に向上させることができ、それにより、一般にグラフ計算を改善することができる。同様に、システムは、グラフをコンパクトに表現することができるため、キャッシュを改善することができ、グラフ計算の全体的な性能を大幅に向上させることができる。さらに、例えばCPUからGPUへの入力/出力コストを削減することができる。そのようなグラフ圧縮技術の多くの用途及び利点がある。例えば、システムは、かなり大きなグラフ計算を記憶して処理するためのGPUなどの並列コンピューティングアーキテクチャの能力を向上させることができ、又は、グラフデータの視覚化を改善することができる。
図1Aは、クリークを含むグラフの例を示している。示されるように、グラフ100は、ノードとも称される102などの頂点と、リンク又は接続部とも称される104などのエッジとを含むことができる。図1Bは、グラフ100における2つのクリークの特定を表している。クリークは、完全に接続されたグラフ内の頂点のサブセットとして定義される。すなわち、クリーク内の各頂点は、グラフ100内の2つのクリーク106及び108について、図1Bに示されるように、クリーク内の全ての他の頂点に対するエッジを有する。本発明の実施形態は、実世界のグラフが大抵の場合に大きなサイズの多くのクリークを形成するという観察に基づいて、GraphZIPと称されるグラフ圧縮及び符号化フレームワークを提供する。システムは、永続的に記憶され且つメモリ内の双方のグラフ符号化を提供し、グラフを表現して記憶するのに必要な空間、グラフを使用するためのI/Oトラフィック、及びグラフを含むアルゴリズムの実行に必要な計算量を削減する。
システムアーキテクチャ
図2は、実施形態にかかるグラフ圧縮方法を利用するグラフ計算システム200の例示的なアーキテクチャを示すブロック図を表している。グラフ計算システム200は、複数のプロセッサを使用して、グラフの頂点を分割して符号化されたグラフ上で圧縮又は他の計算を実行することができる。グラフ計算システム200は、推薦を生成するなどの様々な用途を容易とするためにグラフプリミティブ演算を実行することができる。標準システムにおいて、システム200は、グラフの全ての頂点及びエッジを記憶する。しかしながら、本願明細書において開示された方法を使用して、システム200は、グラフの圧縮表現を利用し、それにより、記憶及び性能を改善する。
グラフ計算システム200は、サーバ206に結合された記憶装置204にインストールされたグラフ管理モジュール202を含むことができる。本発明の様々な実装形態は、任意数のサーバ及び記憶装置を含むことができることに留意されたい。様々な実装において、グラフ管理モジュール202は、本願明細書に記載された技術を実行するためにグラフ符号化モジュール又はグラフ計算システム200の他の要素を含むことができる。システム200は、頂点及びエッジ又はグラフ符号化を記述するデータを受信し、そのようなデータを記憶装置204に記憶することができる。システム200は、グラフ管理モジュール202についてのコード、頂点、エッジ及びグラフ符号化についてのデータ208を記憶装置204から読み出すことができる。システム200は、頂点、サブグラフ又は計算を動的に分割し、割り当てられた頂点、サブグラフ又は計算において動作するプロセッサ210A−210Hなどのプロセッサにそれらを割り当てることができる。
記憶及び計算省力特徴
図3は、本発明のいくつかの実施形態にかかる図1Bにおいて特定された2つのクリークの符号化を示している。本発明の実施形態において、システムは、グラフからクリークを除去することによってメモリ又は永久記憶装置のいずれかにグラフを記憶するのに必要な空間量を大幅に削減する。例えば、システムは、各クリークCに属している全ての頂点が連続的に順序付けられるように頂点を並べ替えることによってグラフを表すことができる。さらに、いくつかの実施形態において、システムは、例えば、グラフ内の頂点の順序付けの終了時に順序付けられることができるクリークを表す擬似頂点のセットとしてクリークを別個に記憶することができる。これは、図3に概略的に示されており、クリーク擬似頂点302及び304は、それぞれ、図1Bからのクリーク106及び108を表している。
そして、実際の頂点は、各クリークC及びCに属している実際の頂点の各サブセットがクリークC及びCを表す擬似頂点の順序に一致するように順序付けられることができる。例えば、C及びCが擬似頂点の順序における最初の2つのクリークである場合、順序における第1の頂点は、(vk+1,・・・,vk+m)∈Cが後に続く(v,・・・,v)∈Cである。ここで、k=|C|であり且つm=|C|である。これは図3に示され、頂点(v,・・・,v)は、クリーク106を表す擬似頂点302に関連付けられており、頂点(v,・・・,v)は、クリーク108を表す擬似頂点304に関連付けられている。これらの実施形態において、定義によってクリークが完全に接続されるように知られていることから、クリーク内のエッジを表す必要はもはやない。
これらの実施形態において、クリーク内の個々の頂点を表すことも不要である。代わりに、システムは、例えば1からkまでの全てのインデックスがクリークCに関連付けられているなど、クリークに関連付けられた頂点インデックスの範囲を単に表すことができる。これは、グラフ100並びにクリーク106及び108の符号化を表す表1によって示されている。実際のグラフは、多くの大きなクリークを有する傾向があることから、そのような表現は、表からわかるように、かなりの記憶装置及びメモリを節約する。
同様に、グラフ上で実行される事実上全ての計算は、グラフプリミティブとして知られる基本的な演算を利用する。本システム及び方法は、そのようなグラフプリミティブの計算上の複雑さを大幅に低減することができ、したがって、それらを高速化することができる。そのようにすることにより、システムは、全体的なグラフ計算を大幅に高速化することができる。
Figure 0006938229
例えば、頂点が所定のクリークCに属しているかどうかを検査することは、クリーク全体にわたるバイナリ探索を行うことにより、クリークのサイズが時間の対数、すなわちO(log|C|)をとることができる。本発明の実施形態において、同じ探索は、開示された方法にかかる圧縮符号化における頂点のインデックスがクリークCに関連付けられた範囲内であるかどうかを単に検査することによって一定時間、すなわちO(1)をとることができる。例えば、頂点vがクリーク106に属しているかどうかを検査するために、それは、表1における圧縮表現の第1の行を検査するために十分であろう。表1が示すように、1は、グラフ100内の第1のクリーク106に属している第1の頂点インデックスであり、6は、グラフ100内の第2のクリーク108の第1のインデックスであり、そのため、1から5までの範囲のインデックスを有する全ての頂点は、クリーク106に属している。したがって、インデックス3を有する頂点vは、クリーク106に属している。
同様に、システムは、グラフ及びそのクリークをよりコンパクト且つ効率的に表現することができるため、一般にキャッシュ及び性能を向上させることができる。例えば、2つの頂点が接続されているかどうかを検査することなどのグラフプリミティブは、頻繁に実行される必要がある。したがって、本発明の実施形態にかかる圧縮されたクリーク又は同様の情報の符号化は、キャッシュメモリに記憶されることができる。特に、表1の右側列に示されるものなどのクリークの非常に効率的な表現がキャッシュされることができる。キャッシュ性能を向上させることにより、システムは、グラフ計算の全体的な性能を大幅に改善することができる。さらに、例えばCPUからGPUへの入力/出力コストもまた低減されることができる。
そのようなグラフ圧縮技術の多くの用途及び利点がある。例えば、GPUなどの並列コンピューティングアーキテクチャは、メモリが限られており、したがって、本願明細書において開示された方法によって著しく大きなグラフを処理することができる。非常に重要なことに、本方法は、大きなデータに対して効率的であり、共有及び分散メモリアーキテクチャの双方について容易に並列化される。グラフ圧縮方法は、数十億以上エッジを有する巨大データに対して非常にスケーラブルであり、CPU、GPU及び分散アーキテクチャにおける実装に容易に対応することができる。
本方法はまた、推薦システム、リンク予測、相関分析、グラフ/データクラスタリング及びロール発見などの用途にも有益であり得る。本方法はまた、上述した時間及び空間の改善を超えて様々な用途を有する。例えば、大きなクリークは、他の重要な構造的特性を明らかにするために組み合わせることができるため、グラフデータをより良好に視覚化するために本方法を使用することができる。
一般化されたECSC表現
本発明の実施形態において、システムは、一般化エッジベース圧縮疎列(ECSC)符号化を利用することができる。符号化は、従来のECSC符号化とは異なり、元のグラフ内のクリークを表す擬似頂点を含むことから一般化される。
行列としての従来のグラフ符号化は、頂点インデックスによってインデックス付けされ、1という要素は、行番号及び列番号によってインデックス付けされた頂点間のエッジを示し、ゼロはそのようなエッジを表さない。この行列符号化において、対角線はゼロであり、行列はもちろん対称である。従来のECSC符号化は、このグラフ行列に圧縮疎列(CSC)行列符号化を適用する。CSCは、行インデックス配列内のそのような各要素についての行インデックスを符号化することによって非ゼロ行列要素の位置を符号化し、新たな列を開始する行インデックス配列内の各要素のインデックスを保持する列ポインタ配列を符号化する。
ECSC符号化は、上述したように符号化された隣接者の配列を含む。それはまた、エッジID配列、(隣接者配列からの)非固有エッジインデックス配列を含む。隣接者配列における重複エッジは、エッジマップ配列へのポインタとして機能する固有エッジIDが割り当てられる。これは、2つの重要な特徴を提供する。まず、エッジIDは、CSCからエッジマップ配列内のそれらの固有位置に重複エッジをマッピングする射影関数であることに留意されたい。さらに、エッジIDはまた、特定のエッジの頂点が連続的に記憶されてO(1)の時間にアクセスされることができるエッジマップ配列を指す。この機能は、CSCを使用する際の柔軟性を提供するとともに、O(1)における固有エッジ及びそれらの頂点へのランダムアクセスも提供する。エッジ−CSCは、O(|E|)時間をとって構築するために効率的であることに留意されたい。ここで、|E|は、エッジの数(ディスク又はCSCからの読み取り時)である。
本発明の実施形態において、システムは、一般化されたECSC符号化を利用することができる。一般化されたECSCにおいて、クリーク擬似頂点又はクリーク頂点と称される新たな頂点種類が導入されることがある。直感的に、クリーク頂点は、グラフG内のクリークCを表す。システムは、クリーク及び頂点の順序を使用することができ、クリーク頂点(クリーク擬似頂点)の最小インデックス(又はID)は、vn+1から開始する。ここで、vは任意の実際の頂点の最大IDである。すなわち、グラフ内の頂点のセットは、V={v,・・・v,vn+1,・・・}である。ここで、vからvは、実際の頂点であり、vn+1及び順序における全ての後続頂点は、クリーク頂点である。このように、アルゴリズムがインデックスnを把握している限り、それは、頂点がクリーク頂点であるか否かを迅速に判定することができる。後者の場合、後続イテレータは、クリークの定義を調べ、その後、正しい後続生成のためにそのクリーク内の全てのノードにわたって反復する。通常の頂点の隣接者がクリーク頂点である場合、イテレータは、クリーク頂点の隣接者を検索しなければならない。
上述した一般化されたECSC符号化は、特殊なケースとして元のECSC表現、すなわち、グラフ内にクリーク(それゆえに擬似頂点)が存在しない場合を含む。しかしながら、1つ以上のクリークが存在する場合、提案されたクリーク圧縮技術は、グラフを記憶するために必要な空間を削減することが保証される。
図4は、本発明の実施形態にかかる、一般化されたECSC表現によるグラフ100内の頂点及びクリークの例示的な符号化400を表している。図4は、図3に示される直観的符号化をより詳細に示している。図4の第1の行における頂点リスト402によって示されるように、システムは、グラフ100内の9つの頂点を表すために9つの実際の頂点(v,・・・v)による符号化を使用することができる。さらに、頂点リスト402は、それぞれクリーク106及び108を表す2つのクリーク擬似頂点v10及びv11を含む。
図4の次行は、リスト402における各頂点について、ポインタターゲットの配列406内の隣接頂点のインデックスを示すポインタ配列404を表している。したがって、例示的な符号化は、グラフ100を符号化するために使用される9つの実際の頂点及び2つの擬似頂点について、合計11個のポインタを記憶しなければならない。
最後に、図4の最後の行は、本発明の実施形態における符号化によってリスト402内の頂点に関連付けられた実際の頂点又は擬似頂点を表すポインタターゲット406の配列を示している。図4からわかるように、実際の頂点(v,・・・v)は、クリーク106を表すクリーク擬似頂点v10による符号化によって関連付けられる。実際の頂点vは、クリーク108に属している実際の頂点vと関連付けられ、同様に、頂点vは、頂点vと関連付けられる。実際の頂点(v,v,v)は、クリーク108を表すクリーク擬似頂点v11による符号化によって関連付けられる。最後に、クリーク擬似頂点v10及びv11は、各クリーク106及び108に含まれる最初に順序付けられた実際の頂点であるv及びvと関連付けられる。ポインタターゲット配列406における最後のエントリは、クリーク108に含まれるものの後の最初に順序付けられた頂点であるv10であることに留意されたい。
グラフ圧縮方法
図5は、本発明の実施形態にかかるグラフを圧縮する方法を示すフローチャート500を表している。動作中において、システムは、グラフの頂点及びエッジを示すグラフデータ及び停止基準を取得する(動作502)。そして、システムは、最大クリークを発見するためにクリーク発見方法を実行する(動作504)。最大クリークは、グラフ内の最大残存クリーク又は最大残存クリークに対する近似値として定義される。最大残存クリークに対する近似は、大きな残存クリークとすることができ、又は、クリークに近い頂点の大きなセット(すなわち、完全に接続される必要がある僅かな割合のエッジを欠いている密に接続された頂点のセット)とすることができる。
いくつかの実施形態において、クリーク発見方法は、正確であり、所定のグラフ内に正確な最大クリークを配置することができる。いくつかの実施形態において、クリーク発見方法は、近似又はヒューリスティックとすることができる。入力としてのグラフを考えると、クリーク発見方法は、正確で近似的な又はヒューリスティックな最大クリークを出力として返すことができる。正確なクリーク発見方法を提供する実施形態において、システムは、グラフの無損失圧縮を提供することができるが、これは、一般に、より高い計算コストを有する。ヒューリスティックなクリーク発見方法を提供する実施形態において、システムは、一般により低い計算コストを有する若干の損失を有する圧縮を提供することができる。正確なクリーク発見を提供する実施形態において、システムはまた、例えば、システムがより大きなクリークを発見して除去することができるため、より良好な圧縮比を提供することもできる。
次に、システムは、発見された最大クリークを発見されたクリークのセットに追加することができる(動作506)。発見されたクリークのセットは、これまでにシステムによって発見されたクリークについてのラベルを符号化することができる。システムはまた、発見されたクリークに属している頂点を追跡することもできる。いくつかの実施形態において、システムは、グラフの頂点を並べ替えることができる。例えば、システムは、発見されたクリークの順序に一致するように発見されたクリークに属している頂点を並べ替えることができる。
いくつかの実施形態において、システムは、次に、グラフから発見された最大クリークを除去することができる(動作508)。システムは、全ての頂点がグラフから除去されたかどうか、又は、発見された最大クリークが停止基準δよりも小さいかどうかを検査することができる(動作510)。そうである場合、システムは、符号化スキームによって使用するために発見されたクリークのセット及び発見されたクリークに属している頂点を返すことができる(動作512)。頂点がグラフ内に残存しており、発見された最大クリークが少なくとも停止基準と同じサイズである場合、システムは、動作504に戻ることができる。すなわち、システムは、その後の最大クリーク(グラフから以前に発見されたクリークを除去した後の正確な又は近似した最大残存クリーク)を発見するためにクリーク発見方法を実行することができる。
停止基準δは、クリークが大幅な圧縮を提供するのに十分なサイズであるかどうかを判定するために発見されたクリークのサイズと比較される数である。一般に、クリークが大きいほど、本発明の実施形態にしたがってクリークを除去することによって及び/又はクリークを符号化することによってより多くの圧縮が提供される。サイズ|C|>2のクリークは、空間及び入力/出力コストを削減することができ且つグラフ計算の性能を向上させることができるため有益であり、それゆえに、システムは、クリークがサイズ|C|=3以上であるのを必要とすることがある。同等に、システムは、少なくとも3まで停止基準δを設定することができる。停止基準δはまた、圧縮方法500のグラフの圧縮と計算コストとの間のバランスを提供することができる。一般に、グラフ内の最大クリークは、最大圧縮を提供する。それゆえに、δを小さく設定することは、方法500の追加の計算コストにおいて追加の圧縮を提供する。
図6は、本発明の実施形態にかかる実際のデータセットにおけるクリーク特定を示している。この図は、本発明者らによる実際のグラフデータについて実行されたいくつかのヒューリスティック且つ正確なクリーク発見方法についての方法400の発見されたクリークのサイズ対反復数を表している。実験において、本発明者らはまた、グラフの半分以上において正確な方法と同じ最大クリークサイズを見出すためにヒューリスティックなクリーク発見方法を観察した。さらに、本発明者らは、正確な圧縮よりも2−3倍高速な良好な圧縮を提供するためにヒューリスティックな方法を観察した。本発明者らは、システムが疎グラフ並びに密グラフの双方を圧縮するのに有効であることを観察した。
2つのクリークが著しく重複している場合、圧縮された符号化において双方を使用する利点はほとんどないことに留意されたい。しかしながら、数個のみの頂点と重複するクリークを可能とすることにより、これらのクリークを発見して著しい重複がないのを保証するために追加の計算コストを犠牲にして空間のさらなる削減を可能とすることができる。したがって、方法500のステップ508におけるように発見されたクリークを全体的に除去する代わりに、いくつかの実施形態において、システムは、クリークが許容量以上に重複するかどうかを判定するために重複閾値割合θを使用することができる。いくつかの実施形態において、システムは、重複するクリークが許容されるかどうかを判定するためにθに対してスコアリング関数を比較することができる。例えば、|C∩C|/|C∪C|などのスコアリング関数がθに対して比較されることができる。
クリークを発見する方法
ステップ504において実行されるクリーク発見方法は、正確であるか、近似であるか又はヒューリスティックとすることができる。いくつかの実施形態において、本方法は、グラフ若しくはサブグラフと関連付けられたk−コア数又は縮退に基づいて又はk−カラーリングに基づいて頂点を順序付けることができる。いくつかの実施形態において、システムは、グリーディカラーリング又は隣接又は距離−2カラーリングから独立したセットを取得することができる。いくつかの実施形態において、正確なクリーク発見方法は、ヒューリスティック方法に由来することができる最大クリークについての初期の推測を使用する分岐限定方法である。
いくつかの実施形態において、ヒューリスティックなクリーク発見方法は、グラフ内の頂点についてのk−コア数を取得し且つk−コア数を減少させるためにグラフ頂点を介してステッピングすることによって進行する。各頂点が十分に大きなコア数を有する場合、システムは、各頂点を含む候補クリークを形成することができる。システムは、各頂点の隣接者を調べ且つ十分に大きなコア数を有するそれらの隣接者を特定することによって候補クリークを探索することができる。いくつかの実施形態において、システムは、コア数がこれまで発見された最大クリークの又は他の候補クリークのサイズを超えているかどうかを判定することにより、頂点又はその隣接者が十分に大きなk−コア数を有するかどうかを判定することができる。
システムは、十分に大きなコア数を有する隣接者を介して進むことができ、各隣接者が候補クリーク内の全ての頂点に接続されている場合、候補クリークに対して各隣接者を追加することができる(すなわち、候補クリークが、隣接者の追加によってクリークを残す)。隣接者を介して進んだ後、システムは、候補クリークを発見されたクリークのセットに追加することができる。システムはまた、そのサイズがこれまでに発見された最大クリークを超えている場合、候補クリークを最大クリークとして指定することもできる。
いくつかの実施形態において、正確なクリーク発見方法は、グラフ内の頂点についてのk−コア数を計算することによって進行する。そして、システムは、グラフ内の近似最大クリークを特定するために上述したヒューリスティックなクリーク発見方法を使用することができる。そして、システムは、近似最大クリークのサイズよりも小さいコア数を有する頂点をグラフから除去することができる。そして、システムは、グラフ内に残存している最小の縮小次数を有する頂点を特定することができる。縮小された頂点の次数は、任意の他の頂点が除去された後の頂点の次数を指す。システムは、特定された頂点に基づいて分岐方法を実行することができ、候補最大クリークの成長をもたらすことができる。そして、システムは、特定された頂点をグラフから除去するか又はそれらを枝刈りしたものとしてマーキングすることができ、グラフから頂点を定期的に明示的に除去することができる。最後に、システムは、残存頂点を介して停止することができ、特定、分岐及び除去ステップを繰り返すことができる。いくつかの実施形態において、システムは、グラフが空になるまでこれらのステップを繰り返すことができる。最後に、システムは、グラフ内の最大クリークとして候補最大クリークを特定することができる。
特定された頂点に対する分岐方法は、頂点の縮小した隣接グラフ(すなわち、まだグラフから枝刈りされていない頂点及び全てのその隣接者に対応するサブグラフ)を特定することによって進めることができる。特定された縮小した隣接グラフのサイズが候補最大クリークよりも大きい場合、分岐は、この縮小した隣接グラフ内の最大コア数を求めることによって進めることができる。そして、分岐方法は、縮小した隣接グラフから候補最大クリークのサイズよりも小さいコア数を有する任意の頂点を除去することができる。そして、分岐方法は、縮小した隣接サブグラフのカラーリングについての多数の色を取得することができる。いくつかの実施形態において、このカラーリングは、グリーディ又はヒューリスティックなカラーリングとすることができる。
色数が候補最大クリークのサイズよりも大きい場合、分岐方法は、頂点を介して進むことができ、縮小した隣接サブグラフから各頂点を除去することができ、候補クリークにそれを追加することができる。この候補クリークが最大でない場合、分岐方法は、さらに分岐することができる。この候補クリークが最大であり且つ以前に特定された最大クリークよりも大きい場合、分岐方法は、新たな最大クリークとして候補クリークを特定することができる。
クリーク発見及びグラフ圧縮の並列化
いくつかの実施形態において、ステップ504において使用されるクリーク発見方法は、並列に実行されることができる。クリーク発見方法が直列に実行される場合、発見されたクリークは、後続のクリークを探索する前に除去されることができ、そのため、重複するクリークの危険性はない(すなわち、頂点を共有する)。しかしながら、並列において、システムは、異なるプロセッサによって発見されたクリークが重複しない(すなわち、頂点を共有しない)ことを確実にするために追加の方法を使用することができる。目的は、任意の各頂点について、各頂点を探索することによって発見された最大クリークが後続の頂点の探索から発見されたクリークと非重複であるように頂点の順序付けを取得することである。これは、2つの頂点が並列に探索された場合、双方のプロセッサが固有である非重複クリークを発見することを保証する。
いくつかの実施形態において、システムは、独立したセット又はカラークラス{S,・・・,S}を発見するためにグリーディカラーリングなどのk−カラーリングを実行することができる。同じカラークラスにおける2つの頂点は、接続されることができないため、同じカラークラスSにおける頂点を中心とする異なるクリークは、非重複であるべきである。これは、同じカラークラス内のクリークが並列に発見されるのを可能とする。
いくつかの実施形態において、システムは、最大クリークが典型的にはこれらの頂点から生じるため、最大のk−コアにおける頂点の最大数を含む独立したセットを選択する。そして、システムは、選択された独立したセット内の各頂点についての最大クリークを発見し、クリークのセットに追加することができる。
しかしながら、発見後、クリークは、グラフから最初に「暗黙的に」除去されることができるか又は単に枝刈りとしてマーキングされた後に「明示的に」除去されることができることに留意されたい。したがって、固有の非重複クリークの強力な保証を提供するために、いくつかの実施形態において、システムは、プロセッサに頂点を割り当てるために距離−2カラーリングとも称される隣接カラーリングを使用することができる。隣接カラーリングにおいて、任意の2つの隣接頂点には、異なる色が割り当てられ、その隣接者にもまた、互いに異なる色が割り当てられる。したがって、同じカラークラスにおける2つの頂点は非隣接であり、それらの隣接者もまた、非重複且つ非隣接である。独立したセットは、それらの隣接が重複しないことを意味する隣接−独立セットと称される。
図7は、クリークを発見してグラフを圧縮する方法500に対する例示的な並列変更例700を示している。本方法の多くの変形例が可能であり、多くのステップが必要とされず、用途領域、制約及びデータに依存することができることに留意されたい。
動作中において、システムはグラフG、停止基準δを受信する(動作702)。無向グラフを考えると、システムは、各カラークラスが非隣接である頂点を含むように、k−カラーリング又は隣接カラーリングを取得することができる(動作704)。そして、システムは、第1の順序付けられたカラークラスがいくつかの関数(最大次数、三角形の数、k−コアの和など)を最大化するように、カラークラスを順序付けることができる(動作706)。そして、システムは、そのカラークラスから選択されることになる次の頂点がいくつかの関数(最大次数など)を最大化するように、独立した各カラークラス内の頂点を順序付けることができる。そして、システムは、順次独立した各セットにわたってサイクルすることができ、そのセットから順次次の頂点を選択することができる(動作708)。そして、システムは、選択された頂点の隣接を取得することができる。そして、システムは、高速ヒューリスティックなクリークファインダーへの入力として隣接を使用することができ、最大クリークを取得することができる(動作710)。そして、システムは、探索から取得されたクリークを除去することができる(すなわち、クリークの頂点は、全ての独立したセットから除去されることができる)。この除去は、枝刈りされた頂点の配列におけるクリークの頂点をマーキングすることによって簡単に行うことができ(動作712)、O(1)時間で検査されることができる。そして、システムは、順次次のカラークラスから頂点を選択することによって上記ステップを繰り返すことができる。システムは、頂点が各カラークラスから選択されるまで、これを繰り返すことができる(動作714)。その後、単一のプロセッサは、枝刈りされた配列を使用してグラフを縮小することができ、この更新されたグラフをプロセッサに対して送信することができる(動作716)。各クリークが発見された後、それは、発見されたクリークのセットに追加されることができる(又は単一のプロセッサによって記憶媒体に書き込むことができる)。このプロセスは、停止基準δよりも大きいクリークがこれ以上存在しない場合に停止する。終了すると、発見されたクリークのセットは、メモリ内のグラフを効率的に表すために又は記憶装置にグラフを記憶するために使用されることができる。
例示的な装置
図8は、いくつかの実施形態にかかる、グラフ圧縮を容易とする例示的な装置800を示すブロック図を表している。装置800は、有線又は無線通信チャネルを介して互いに通信することができる複数のモジュールを備えることができる。装置800は、1つ以上の集積回路を使用して実現されることができ、図8に示されるものよりも少ない又は多いモジュールを含むことができる。さらに、装置800は、コンピュータシステムに内蔵されることができ、又は、他のコンピュータシステム及び/又は装置と通信することができる別個の装置として実現されることができる。具体的には、装置800は、クリーク発見モジュール802と、クリーク及び頂点順序付けモジュール804と、グラフ符号化モジュール806と、グラフプリミティブコンピューティングモジュール808と、グラフカラーリングモジュール810とを備えることができる。装置800はまた、図8には示されていない追加のモジュールを含むことができることに留意されたい。
いくつかの実施形態において、クリーク発見モジュール802は、大きなクリークを発見することができる。クリーク及び頂点順序付けモジュール804は、クリークを順序付けることができ、及び/又は、クリーク順序付けに一致するように頂点を順序付けることができる。グラフ符号化モジュール806は、グラフ、圧縮グラフ又はクリークの表現を符号化することができる。グラフプリミティブコンピューティングモジュール808は、グラフの圧縮表現にしたがって、頂点がクリークに属しているかどうかを検査することなど、グラフプリミティブを計算することができる。グラフカラーリングモジュール810は、グラフ又はサブグラフのk−カラーリング、グリーディカラーリング及び/又は隣接カラーリングを取得することができる。図2に示されたグラフ管理モジュール202は、図8に示された様々なモジュールの任意の及び全ての機能を提供してもよいことに留意されたい。
例示的なシステム
図9は、いくつかの実施形態にかかる例示的なグラフ圧縮コンピュータシステム902を示している。いくつかの実施形態において、コンピュータシステム902は、サーバとすることができる。いくつかの実施形態において、システム902は、プロセッサ904と、メモリ906と、記憶装置908とを含む。いくつかの実施形態において、904は、プロセッサのセットを含むことができる。記憶装置908は、本発明の実施形態にかかるグラフ圧縮を利用することができるアプリケーション934及び936などの多数のアプリケーションと、オペレーティングシステム916とを記憶することができる。記憶装置908はまた、クリーク発見モジュール920と、クリーク及び頂点順序付けモジュール922と、グラフ符号化モジュール924と、グラフプリミティブコンピューティングモジュール926と、グラフカラーリングモジュール928とを含むGraphZIPグラフ圧縮システム918を記憶する。システム902は、グラフ圧縮システム918に対してアクセス可能なメモリ部に頂点及びエッジデータを生成してコピーすることができる。動作中において、GraphZIPグラフ圧縮システム918などの1つ以上のアプリケーションは、記憶装置908からメモリ906にロードされ、その後、プロセッサセット904によって実行される。プログラムの実行中において、プロセッサセット904は、上述した機能を実行する。システム902は、任意のディスプレイ910、キーボード912及びポインティングデバイス914に結合されることができる。
いくつかの実施形態において、クリーク発見モジュール920は、大きなクリークを発見することができる。クリーク及び頂点順序付けモジュール922は、クリークを順序付けることができる、及び/又は、クリークの順序付けと一致するように頂点を順序付けることができる。グラフ符号化モジュール924は、グラフ、圧縮グラフ又はクリークの表現を符号化することができる。グラフプリミティブコンピューティングモジュール926は、グラフの圧縮表現にしたがって、頂点がクリークに属しているかどうかを検査することなどグラフプリミティブを計算することができる。グラフカラーリングモジュール928は、グラフ又はサブグラフのk−カラーリング、グリーディカラーリング及び/又は隣接カラーリングを取得することができる。図2に示されたグラフ管理モジュール202は、図9に示された様々なモジュールの任意の及び全ての機能を提供してもよいことに留意されたい。
この詳細な説明に記載されたデータ構造及びコードは、典型的には、コンピュータシステムによって使用するためのコード及び/又はデータを記憶することができる任意の装置又は媒体とすることができるコンピュータ可読記憶媒体上に記憶される。コンピュータ可読記憶媒体は、限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、CD(コンパクトディスク)、DVD(ディジタル多用途ディスク又はディジタルビデオディスク)などの磁気及び光記憶装置、又は、現在知られているか又は今後開発されるコンピュータ可読媒体を記憶することができる他の媒体を含む。
詳細な説明のセクションに記載された方法及びプロセスは、上述したようにコンピュータ可読記憶媒体に記憶することができるコード及び/又はデータとして具現化されることができる。コンピュータシステムがコンピュータ可読記憶媒体に記憶されたコード及び/又はデータを読み取って実行すると、コンピュータシステムは、コンピュータ可読記憶媒体内に記憶されたデータ構造及びコードとして具現化される方法及びプロセスを行う。
さらにまた、本願明細書に記載される方法及びプロセスは、ハードウェアモジュール又は装置に含まれることができる。これらのモジュール又は装置は、限定されるものではないが、特定用途向け集積回路(ASIC)チップ、フィールドプログラマブルゲートアレイ(FPGA)、特定の時間に特定のソフトウェアモジュール又はコードの一部を実行する専用又は共有プロセッサ、及び/又は、現在知られているか又は後に開発される他のプログラマブル論理デバイスを含むことができる。ハードウェアモジュール又は装置が起動される場合、それらは、それらの内部に含まれる方法及びプロセスを実行する。

Claims (10)

  1. グラフの表現を圧縮するコンピュータ実装方法であって、
    頂点及びエッジを含むグラフを表すデータ構造を持続性記憶媒体に記憶することと、
    前記グラフ内の最大クリークを特定することであって、前記最大クリークが前記グラフ内の頂点の完全に接続された最大残存サブセット又は最大残存クリークへの近似であることと、
    前記特定されたクリークを発見されたクリークのセットに追加することと、
    前記グラフから前記特定されたクリークを除去することと、
    前記特定された最大クリークのサイズが停止基準未満であること又は前記グラフ内に頂点が残存していないことの判定に応答して、
    前記発見されたクリークのセット内のクリークを順序付けることと、
    前記発見されたクリークのセット内のクリークに属している頂点のセットを順序付けることと、
    前記発見されたクリークの順序付けられたセット及び前記順序付けられた頂点のセットに基づいて前記グラフの圧縮表現を生成することと、
    前記持続性記憶媒体に前記グラフの圧縮表現を記憶することと
    を備える、方法。
  2. 前記グラフの前記圧縮表現を生成することが、前記グラフにおいて、クリーク擬似頂点によって前記発見されたクリークのセット内の各クリークを置き換えることをさらに備える、請求項1に記載の方法。
  3. 前記発見されたクリークのセット内のクリークに属している前記頂点のセットが、
    第1の各クリークに属している頂点の第1のサブセットが連続的に順序付けられ、
    第2の各クリークに属している頂点の第2のサブセットが、前記第2の各クリークが前記順序付けられたクリークのセット内の前記第1の各クリークの後に順序付けられる場合、前記頂点の第1のサブセットの後に順序付けられる
    ように順序付けられ、
    前記グラフの前記圧縮表現を生成することが、前記順序付けられたクリークのセット内の各クリークについて、前記各クリークに属している頂点の各サブセット内の第1の順序付けられた頂点に関連付けられた順序付けインデックスを符号化することを備える、
    請求項1に記載の方法。
  4. 前記最大クリークを特定することが、
    k−コア縮退値に基づいて前記グラフ内の頂点を順序付けることと、
    前記順序付けに基づいて、第1の各頂点を選択することと、
    前記第1の頂点に接続された隣接頂点を選択することと、
    前記第1の頂点及び隣接頂点を候補最大クリークに追加することとを備える、
    請求項1に記載の方法。
  5. コンピュータによって実行されたときに前記コンピュータにグラフの表現を圧縮する方法を実行させる命令を記憶する持続性コンピュータ可読記憶媒体において、前記方法が、
    頂点及びエッジを含むグラフを表すデータ構造を持続性記憶媒体に記憶することと、
    前記グラフ内の最大クリークを特定することであって、前記最大クリークが前記グラフ内の頂点の完全に接続された最大残存サブセット又は最大残存クリークへの近似であることと、
    前記特定されたクリークを発見されたクリークのセットに追加することと、
    前記グラフから前記特定されたクリークを除去することと、
    前記特定された最大クリークのサイズが停止基準未満であること又は前記グラフ内に頂点が残存していないことの判定に応答して、
    前記発見されたクリークのセット内のクリークを順序付けることと、
    前記発見されたクリークのセット内のクリークに属している頂点のセットを順序付けることと、
    前記発見されたクリークの順序付けられたセット及び前記順序付けられた頂点のセットに基づいて前記グラフの圧縮表現を生成することと、
    前記持続性記憶媒体に前記グラフの圧縮表現を記憶することと
    を備える、持続性コンピュータ可読記憶媒体。
  6. 前記グラフの前記圧縮表現を生成することが、前記グラフにおいて、クリーク擬似頂点によって前記発見されたクリークのセット内の各クリークを置き換えることをさらに備える、請求項5に記載の持続性コンピュータ可読記憶媒体。
  7. 前記発見されたクリークのセット内のクリークに属している前記頂点のセットが、
    第1の各クリークに属している頂点の第1のサブセットが連続的に順序付けられ、
    第2の各クリークに属している頂点の第2のサブセットが、前記第2の各クリークが前記順序付けられたクリークのセット内の前記第1の各クリークの後に順序付けられる場合、前記頂点の第1のサブセットの後に順序付けられる
    ように順序付けられ、
    前記グラフの前記圧縮表現を生成することが、前記順序付けられたクリークのセット内の各クリークについて、前記各クリークに属している頂点の各サブセット内の第1の順序付けられた頂点に関連付けられた順序付けインデックスを符号化することを備える、
    請求項5に記載の持続性コンピュータ可読記憶媒体。
  8. 前記最大クリークを特定することが、
    k−コア縮退値に基づいて前記グラフ内の頂点を順序付けることと、
    前記順序付けに基づいて、第1の各頂点を選択することと、
    前記第1の頂点に接続された隣接頂点を選択することと、
    前記第1の頂点及び隣接頂点を候補最大クリークに追加することと
    を備える、請求項5に記載の持続性コンピュータ可読記憶媒体。
  9. グラフの表現を圧縮するコンピュータシステムであって、
    複数のプロセッサのセットと、
    前記プロセッサのセットに接続され、前記プロセッサのセットによって実行されたときに前記プロセッサのセットにグラフの表現を圧縮する方法を実行させる命令を記憶する持続性コンピュータ可読記憶媒体とを備え、前記方法が、
    頂点及びエッジを含むグラフを表すデータ構造を持続性記憶媒体に記憶することと、
    前記グラフ内の最大クリークを特定することであって、前記最大クリークが前記グラフ内の頂点の完全に接続された最大残存サブセット又は最大残存クリークへの近似であることと、
    前記特定されたクリークを発見されたクリークのセットに追加することと、
    前記グラフから前記特定されたクリークを除去することと、
    前記特定された最大クリークのサイズが停止基準未満であること又は前記グラフ内に頂点が残存していないことの判定に応答して、
    前記発見されたクリークのセット内のクリークを順序付けることと、
    前記発見されたクリークのセット内のクリークに属している頂点のセットを順序付けることと、
    前記発見されたクリークの順序付けられたセット及び前記順序付けられた頂点のセットに基づいて前記グラフの圧縮表現を生成することと、
    前記持続性記憶媒体に前記グラフの圧縮表現を記憶することと
    を備える、コンピュータシステム。
  10. 前記グラフの前記圧縮表現を生成することが、前記グラフにおいて、クリーク擬似頂点によって前記発見されたクリークのセット内の各クリークを置き換えることをさらに備える、請求項9に記載のコンピュータシステム。
JP2017109064A 2016-06-15 2017-06-01 クリークを介してグラフィックスを圧縮するシステム及び方法 Active JP6938229B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/183,561 US10217241B2 (en) 2016-06-15 2016-06-15 System and method for compressing graphs via cliques
US15/183,561 2016-06-15

Publications (2)

Publication Number Publication Date
JP2017224287A JP2017224287A (ja) 2017-12-21
JP6938229B2 true JP6938229B2 (ja) 2021-09-22

Family

ID=59055005

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017109064A Active JP6938229B2 (ja) 2016-06-15 2017-06-01 クリークを介してグラフィックスを圧縮するシステム及び方法

Country Status (4)

Country Link
US (1) US10217241B2 (ja)
EP (1) EP3258604B1 (ja)
JP (1) JP6938229B2 (ja)
KR (1) KR102169779B1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8874477B2 (en) 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US10748312B2 (en) * 2016-02-12 2020-08-18 Microsoft Technology Licensing, Llc Tagging utilizations for selectively preserving chart elements during visualization optimizations
US10217241B2 (en) * 2016-06-15 2019-02-26 Palo Alto Research Center Incorporated System and method for compressing graphs via cliques
US11586674B2 (en) * 2016-12-28 2023-02-21 Khalifa University of Science and Technology Methods and systems for searching
JP7102790B2 (ja) * 2018-03-07 2022-07-20 富士通株式会社 データ生成方法、データ生成プログラム及び情報処理装置
US10728104B2 (en) * 2018-11-15 2020-07-28 Adobe Inc. Time-dependent network embedding
US11068458B2 (en) * 2018-11-27 2021-07-20 Advanced Micro Devices, Inc. Mechanism for distributed-system-aware difference encoding/decoding in graph analytics
US11436280B2 (en) * 2019-04-29 2022-09-06 University Of Virginia Patent Foundation Methods of providing approximate solutions to the maximum clique of a graph using expansion of cliques of subgraphs within a graph and related circuits and processor-executable instructions
US11483408B2 (en) 2019-07-10 2022-10-25 Adobe Inc. Feature-based network embedding
US11442990B2 (en) * 2020-04-08 2022-09-13 Liveramp, Inc. Asserted relationship data structure
KR102426013B1 (ko) * 2020-07-15 2022-07-29 한국과학기술원 대규모 그래프의 점진적 무손실 요약을 위한 전자 장치 및 그의 동작 방법
US11343325B2 (en) 2020-08-31 2022-05-24 Adobe Inc. Systems and methods for estimating typed graphlets in large data
KR102433897B1 (ko) * 2020-10-15 2022-08-18 고려대학교 산학협력단 키르히호프의 회로 법칙을 이용한 탐색 문제의 그래프 단순화 방법, 이를 수행하기 위한 기록 매체 및 장치
CN116600135B (zh) * 2023-06-06 2024-02-13 广州大学 基于无损压缩的溯源图压缩方法及系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5446908A (en) * 1992-10-21 1995-08-29 The United States Of America As Represented By The Secretary Of The Navy Method and apparatus for pre-processing inputs to parallel architecture computers
US6801904B2 (en) * 2001-10-19 2004-10-05 Microsoft Corporation System for keyword based searching over relational databases
US6792414B2 (en) * 2001-10-19 2004-09-14 Microsoft Corporation Generalized keyword matching for keyword based searching over relational databases
US7010520B2 (en) * 2002-04-26 2006-03-07 International Business Machines Corporation Method and system for searching documents with numbers
US8874477B2 (en) * 2005-10-04 2014-10-28 Steven Mark Hoffberg Multifactorial optimization system and method
US8250657B1 (en) * 2006-12-29 2012-08-21 Symantec Corporation Web site hygiene-based computer security
JP5186197B2 (ja) * 2007-12-19 2013-04-17 株式会社エヌ・ティ・ティ・データ 評価装置、評価方法及び評価プログラム
US8395622B2 (en) * 2008-06-18 2013-03-12 International Business Machines Corporation Method for enumerating cliques
US20100083194A1 (en) * 2008-09-27 2010-04-01 Yahoo! Inc. System and method for finding connected components in a large-scale graph
JP5087518B2 (ja) * 2008-10-29 2012-12-05 株式会社エヌ・ティ・ティ・データ 評価装置、及び、コンピュータプログラム
US8200596B2 (en) * 2009-05-28 2012-06-12 Reid Andersen Speeding up analysis of compressed web graphs using virtual nodes
US9171046B1 (en) * 2013-05-09 2015-10-27 Emcien Corporation System and method for generating an output of relevant queries for a database
CN103986498B (zh) * 2014-05-14 2016-04-27 北京理工大学 一种基于图论的伪随机码优化方法
US20160147591A1 (en) * 2014-11-20 2016-05-26 Tata Consultancy Services Limited Method and system for efficient transition of information technology operations
US9704277B2 (en) * 2015-10-15 2017-07-11 International Business Machines Corporation Vectorized graph processing
US10217241B2 (en) * 2016-06-15 2019-02-26 Palo Alto Research Center Incorporated System and method for compressing graphs via cliques

Also Published As

Publication number Publication date
KR102169779B1 (ko) 2020-10-27
JP2017224287A (ja) 2017-12-21
EP3258604A1 (en) 2017-12-20
US20170365071A1 (en) 2017-12-21
KR20170141591A (ko) 2017-12-26
EP3258604B1 (en) 2020-03-18
US10217241B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
JP6938229B2 (ja) クリークを介してグラフィックスを圧縮するシステム及び方法
ES2609445T3 (es) Método, controlador, programa y sistema de almacenamiento de datos para realizar procesado de reconciliación
US9922002B2 (en) Efficient representations of graphs with multiple edge types
US9547728B2 (en) Graph traversal operator and extensible framework inside a column store
US11144823B1 (en) Method and system for hierarchical weight-sparse convolution processing
CN112835627B (zh) 用于单指令多线程或单指令多数据类型处理器的近似最近邻域搜索
KR20150076225A (ko) 위치 정보를 가진 데이터 프로파일링
CN106852185A (zh) 基于字典的并行压缩编码器
US10191998B1 (en) Methods of data reduction for parallel breadth-first search over graphs of connected data elements
TW201602813A (zh) 用於特徵搜尋之系統,裝置及方法
US20220230369A1 (en) Generating a data visualization graph utilizing modularity-based manifold tearing
US20230056760A1 (en) Method and apparatus for processing graph data, device, storage medium, and program product
Wang et al. Fast gunrock subgraph matching (gsm) on gpus
US8650180B2 (en) Efficient optimization over uncertain data
CN115605862A (zh) 训练用于3d模型数据库查询的可微分渲染器和神经网络
Prasad et al. GPGPU-accelerated interesting interval discovery and other computations on geospatial datasets: A summary of results
EP3115909A1 (en) Method and apparatus for multimedia content indexing and retrieval based on product quantization
CN112906824B (zh) 车辆聚类方法、系统、设备及存储介质
US20220343146A1 (en) Method and system for temporal graph neural network acceleration
Xu et al. GPU accelerated image matching with cascade hashing
CN117056088B (zh) 一种基于MapReduce的多模态测图数据分布式并行计算方法及系统
CN112990433B (zh) 模型耗时预测方法、装置、电子设备以及存储介质
Stöcker et al. 2.6 Protein Complex Similarity
CN116187458B (zh) 量子电路处理方法、装置及电子设备
US20240104790A1 (en) Optimizing grid-based compute graphs

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170615

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170616

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210708

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210901

R150 Certificate of patent or registration of utility model

Ref document number: 6938229

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150