(57)【特許請求の範囲】
【請求項１】
頂点の位置情報を有する埋め込みグラフを単純化する埋め込みグラフ単純化方法であって、
コンピュータが、各頂点に接続する辺の成す角度が小さくなるように頂点位置を直線整列する埋め込みグラフ直線整列処理ステップと、
コンピュータが、前記直線整列された埋め込みグラフから、接続する辺の成す角度が小さい頂点を選定し、前記接続する辺の成す角度が小さい頂点を取り除いて単純化された埋め込みグラフを生成する不要頂点除去処理ステップと、
を有する埋め込みグラフ単純化方法。
【請求項２】
前記埋め込みグラフ直線整列処理ステップは、
コンピュータが、直線整列のための凸最適化問題を立式して出力する凸最適化問題立式処理ステップと、
コンピュータが、前記凸最適化問題立式処理ステップで出力された直線整列のための凸最適化問題を求解して、直線整列された頂点位置を求める凸最適化問題求解処理ステップと、
コンピュータが、前記凸最適化問題求解処理ステップで求められた頂点位置に頂点を置き換える頂点情報置換処理ステップとを有し、
前記凸最適化問題立式処理ステップにおいて、前記コンピュータは、直線整列された埋め込みグラフの頂点位置を変数としたときに、前記変数が元の頂点位置とどれだけ乖離しているかを評価する頂点位置変化損失関数と、前記変数を用いた埋め込みグラフが直線整列されている度合いを評価する直線整列正則化関数とを線形結合して目的関数として立式するとともに、前記変数の可動範囲を制約条件として立式して、前記直線整列のための凸最適化問題として出力する、
請求項１に記載の埋め込みグラフ単純化方法。
【請求項３】
前記不要頂点除去処理ステップにおいて、前記コンピュータは、各頂点に接続する辺の角度の大きさを評価し、前記各頂点に接続する辺の角度の大きさが閾値を下回る頂点を選定して除去する、
請求項１に記載の埋め込みグラフ単純化方法。
【請求項４】
前記凸最適化問題立式処理ステップは、
コンピュータが、直線整列された埋め込みグラフの頂点位置を変数としたときに、前記変数が元の頂点位置とどれだけ乖離しているかを評価する頂点位置変化損失関数を生成する頂点位置変化損失関数立式処理ステップと、
コンピュータが、前記変数を用いた埋め込みグラフが直線整列されている度合いを評価する直線整列正則化関数を生成する直線整列正則化関数立式処理ステップと、
コンピュータが、前記直線整列正則化関数にトレードオフパラメータを乗算する乗算処理ステップと、
コンピュータが、前記頂点位置変化損失関数と、前記トレードオフパラメータが乗算された直線整列正則化関数とを線形結合して目的関数を生成する加算処理ステップと、
コンピュータが、前記頂点位置の範囲に関する制約条件を生成する制約条件立式処理ステップと、
コンピュータが、前記目的関数と前記制約条件とを合わせて凸最適化問題を生成する凸最適化問題生成処理ステップと、
を有する請求項２に記載の埋め込みグラフ単純化方法。
【請求項５】
前記頂点位置変化損失関数立式処理ステップにおいて、前記コンピュータは、前記直線整列された埋め込みグラフの頂点位置を示す変数と元の頂点位置との絶対値残差又は二乗残差を評価して頂点位置変化損失関数を生成し、
前記直線整列正則化関数立式処理ステップにおいて、前記コンピュータは、各頂点に接続する辺の成す角度を評価して前記直線整列正則化関数を生成する、
請求項４に記載の埋め込みグラフ単純化方法。
【請求項６】
前記直線整列正則化関数立式処理ステップにおいて、前記コンピュータは、各頂点に接続する辺の大きさと向きを表す辺ベクトルを生成する辺ベクトル生成線形写像と、前記辺ベクトルの成す角度を核ノルムで評価する辺ベクトル角評価関数との合成により、直線整列正則化関数を生成する、
請求項５に記載の埋め込みグラフ単純化方法。
【請求項７】
頂点の位置情報を有する埋め込みグラフを単純化する埋め込みグラフ単純化装置であって、
各頂点に接続する辺の成す角度が小さくなるように頂点位置を直線整列する埋め込みグラフ直線整列処理部と、
前記直線整列された埋め込みグラフから、接続する辺の成す角度が小さい頂点を選定し、前記接続する辺の成す角度が小さい頂点を取り除いて単純化された埋め込みグラフを生成する不要頂点除去処理部と、
を備える埋め込みグラフ単純化装置。
【請求項８】
請求項１から６のいずれか一項に記載の埋め込みグラフ単純化方法を、コンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、埋め込みグラフ単純化方法に関する。
【背景技術】
【０００２】
ネットワークや地理情報学、画像工学などの諸分野において、埋め込みグラフというデータ構造が存在する。埋め込みグラフとは、複数の頂点とその頂点同士を結ぶ辺の集合であるグラフと、その頂点位置を合わせて定義したものである。例えばネットワークでは、ネットワークノードを頂点、ネットワークリンクを辺に対応させてグラフを構成できる。このとき、ネットワークノードの物理的な位置や、ネットワークを可視化する際のノード座標を頂点位置に対応させると、埋め込みグラフを見出すことができる。また、地理情報学であれば、国境や県境、海岸線、湖岸線等の境界線データは一般に、埋め込みグラフとしてデータが保持されている。境界線上に密に頂点をプロットして辺を結ぶことで、境界線を表現している。また、画像工学分野であれば、形状や領域に関するデータの保持に埋め込みグラフが使用される。例えばベクター画像におけるオブジェクト形状、深度マップにおける深度境界線、自然画像の被写体形状やテクスチャ領域形状等のデータは、埋め込みグラフとして表現される。形状や領域の境界上に頂点をプロットすることで、境界線を辺により表現している。
【０００３】
以上で例示した埋め込みグラフにおいては、埋め込みグラフの形状をできるだけ保ちつつ、頂点数や辺数を可能な限り削減して単純化すること（以下、埋め込みグラフの単純化、あるいは単に単純化と呼ぶ）に大きなメリットがある。
【０００４】
ネットワークにおいては、頂点数、辺数が多いほど詳細なデータを表現できる一方で、一見してネットワーク構成の概要を掴むことが困難になり、加えてデータ量が膨大になるため描画に大きな負荷がかかる。このネットワークについての埋め込みグラフを単純化できれば、ネットワーク構成を視覚的に分かりやすく提示でき、頂点数、辺数を減らしてデータ圧縮し、描画の負荷を低減することが可能になる。地理情報学においては、境界線上に密に頂点をプロットすることで正確に境界線を表現するが、データ量は膨大になってしまう。境界線データを単純化することで、データ量を削減して伝送や蓄積が可能な他、境界を簡略した視覚的に分かりやすい地理情報を生成することができる。また画像工学においては、頂点数、辺数が多いほど形状や領域のデータを詳細に保持して正確に表現可能である一方で、データ量が膨大になり、伝送や蓄積に要する符号量が増えてしまう。この形状や領域を単純化できれば、表現の正確性を可能な限り保ちながら、頂点数、辺数を削減して符号量を削減できる。
【０００５】
折れ線グラフや多角形等、非常に簡単な埋め込みグラフを単純化する有効な手法として、Ｒａｍｅｒ−Ｄｏｕｇｌａｓ−Ｐｅｕｃｋｅｒ法（非特許文献１以下ＲＤＰ法）がある。以下、折れ線分にＲＤＰ法を適用する場合のアルゴリズムを説明する。この手法では、（１）まず折れ線分の両端頂点を結んだ線分を初期の折れ線分とする。（２）現在の折れ線分と最も距離の離れた頂点を現在の折れ線分に順次加える。（３）最も離れた頂点との距離が予め定めた許容誤差ε（＞０）よりも小さくなった時点で処理を終了する。
【０００６】
図９は、ＲＤＰ法の動作例を示している。図９において、白丸及び破線は入力した埋め込みグラフの折れ線成分を示し、黒丸及び実線は単純化した埋め込みグラフの折れ線成分を示す。図９（Ａ）は初期状態（状態ＳＴ０）である。初期状態では、折れ線分の端点を繋いだ線分を初期の折れ線分Ｅ１とする。次のステップで加える頂点は、折れ線分Ｅ１からもっとも離れた頂点Ｖ１である。図９（Ｂ）に示すように、状態ＳＴ１では、頂点Ｖ１を折れ線成分Ｅ１に加えて、新しい折れ線成分Ｅ２とする。次のステップで加える頂点は、折れ線分Ｅ２からもっとも離れた頂点Ｖ２である。図９（Ｃ）に示すように、状態ＳＴ２では、頂点Ｖ２を折れ線成分Ｅ２に加えて、新しい折れ線成分Ｅ３とする。次のステップで加える頂点は、折れ線分Ｅ３からもっとも離れた頂点Ｖ３である。図９（Ｄ）に示すように、状態ＳＴ３では、頂点Ｖ３を折れ線成分Ｅ３に加えて、新しい折れ線成分Ｅ４とする。状態ＳＴ３では、全ての頂点が折れ線分Ｅ４から許容誤差以内の距離となり、ここで、単純化処理は終了となる。
【０００７】
多角形の場合は両端点の代わりに、多角形頂点から適切に２点を選んで初期の折れ線分と設定することで、折れ線分のＲＤＰ法を適用可能である。さらにＲＤＰ法では、使用者が指定した特定の頂点を、入力埋め込みグラフと同じ頂点位置で、必ず含むように単純化を行うことも可能である。初期の折れ線分作成時に指定頂点を加え、処理を開始すれば良い。
【０００８】
ＲＤＰ法は形状近似の精度の高さ、実装の容易さなどから最もよく使用される方法である。例えばコンピュータビジョン向けのコンピュータプログラムライブラリであるＯｐｅｎＣＶでは、被写体形状の単純化や輪郭の近似処理としてＲＤＰ法が採用されている。
【先行技術文献】
【非特許文献】
【０００９】
【非特許文献１】Hershberger and Snoeyink,"An O (n log n) implementation of the Douglas-Peucker algorithm for line simplification," pp. 383-384, 1994.
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したＲＤＰ法では以下の２つの問題が生じる。（１）折れ線分や多角形を除く、複雑な埋め込みグラフへの適用が困難である。（２）単純化した埋め込みグラフの頂点位置は、元の埋め込みグラフの頂点位置を厳密に守るため、頂点位置を微小に変位させてより良い単純化を算出することができない。
【００１１】
上述の（１）の問題について説明する。上述したネットワークや地図・交通解析、画像・映像符号化の例でも見られるように、一般に埋め込みグラフは分岐、複数のループ、非結合グラフ等を持ち、折れ線分や多角形よりも複雑な構造を持つ。ＲＤＰ法はこのような複雑なグラフを単純化することができない。あるいは折れ線や多角形に分解する前処理と分解したグラフを結合する後処理を行えば、複雑なグラフについてもＲＤＰ法を適用できる。しかし分岐数が多い複雑なグラフでは分解数が増えて端点が増えるため、複雑なグラフほど頂点や辺の削減が困難になる。
【００１２】
上述の（２）の問題について説明する。ＲＤＰ法では元の埋め込みグラフの頂点を選択して新しい埋め込みグラフを構成するため、新しい埋め込みグラフの頂点位置は元の埋め込みグラフと同じ頂点位置に必ず限定される。一般に、頂点位置が微小に変位することを許容すればより良い単純化をすることができるが、ＲＤＰ法ではこれを算出できない。また同じ理由で、使用者が特定頂点に課す制約についても、入力と同じ頂点位置であることしか指定できない。
【００１３】
上記事情に鑑み、本発明は、複雑な埋め込みグラフにおいても頂点や辺を削減可能で、頂点位置が元の埋め込みグラフの頂点位置に限定されない、埋め込みグラフ単純化方法を提供することを目的としている。
【課題を解決するための手段】
【００１４】
本発明の一態様は、頂点の位置情報を有する埋め込みグラフを単純化する埋め込みグラフ単純化方法であって、各頂点に接続する辺の成す角度が小さくなるように頂点位置を直線整列する埋め込みグラフ直線整列処理ステップと、前記直線整列された埋め込みグラフから、接続する辺の成す角度が小さい頂点を選定し、前記接続する辺の成す角度が小さい頂点を取り除いて単純化された埋め込みグラフを生成する不要頂点除去処理ステップと、を有する埋め込みグラフ単純化方法である。
【００１５】
本発明の一態様は、上記の埋め込みグラフ単純化方法であって、前記埋め込みグラフ直線整列処理ステップは、直線整列のための凸最適化問題を立式して出力する凸最適化問題立式処理ステップと、前記凸最適化問題立式処理ステップで出力された直線整列のための凸最適化問題を求解して、直線整列された頂点位置を求める凸最適化問題求解処理ステップと、前記凸最適化問題求解処理ステップで求められた頂点位置に頂点を置き換える頂点情報置換処理ステップとを有し、前記凸最適化問題立式処理ステップは、直線整列された埋め込みグラフの頂点位置を変数としたときに、前記変数が元の頂点位置とどれだけ乖離しているかを評価する頂点位置変化損失関数と、前記変数を用いた埋め込みグラフが直線整列されている度合いを評価する直線整列正則化関数とを線形結合して目的関数として立式するとともに、前記変数の可動範囲を制約条件として立式して、前記直線整列のための凸最適化問題として出力する、埋め込みグラフ単純化方法である。
【００１６】
本発明の一態様は、上記の埋め込みグラフ単純化方法であって、前記不要頂点除去処理ステップは、各頂点に接続する辺の角度の大きさを評価し、前記各頂点に接続する辺の角度の大きさが閾値を下回る頂点を選定して除去する、埋め込みグラフ単純化方法である。
【００１７】
本発明の一態様は、上記の埋め込みグラフ単純化方法であって、前記凸最適化問題立式処理ステップは、直線整列された埋め込みグラフの頂点位置を変数としたときに、前記変数が元の頂点位置とどれだけ乖離しているかを評価する頂点位置変化損失関数を生成する頂点位置変化損失関数立式処理ステップと、前記変数を用いた埋め込みグラフが直線整列されている度合いを評価する直線整列正則化関数を生成する直線整列正則化関数立式処理ステップと、前記直線整列正則化関数にトレードオフパラメータを乗算する乗算処理ステップと、前記頂点位置変化損失関数と、前記トレードオフパラメータが乗算された直線整列正則化関数とを線形結合して目的関数を生成する加算処理ステップと、前記頂点位置の範囲に関する制約条件を生成する制約条件立式処理ステップと、前記目的関数と前記制約条件とを合わせて凸最適化問題を生成する凸最適化問題生成処理ステップと、を有する埋め込みグラフ単純化方法である。
【００１８】
本発明の一態様は、上記の埋め込みグラフ単純化方法であって、前記頂点位置変化損失関数立式処理ステップは、前記直線整列された埋め込みグラフの頂点位置を示す変数と元の頂点位置との絶対値残差又は二乗残差を評価して頂点位置変化損失関数を生成し、前記直線整列正則化関数立式処理ステップは、各頂点に接続する辺の成す角度を評価して前記直線整列正則化関数を生成する、埋め込みグラフ単純化方法である。
【００１９】
本発明の一態様は、上記の埋め込みグラフ単純化方法であって、前記直線整列正則化関数立式処理ステップは、各頂点に接続する辺の大きさと向きを表す辺ベクトルを生成する辺ベクトル生成線形写像と、前記辺ベクトルの成す角度を核ノルムで評価する辺ベクトル角評価関数との合成により、直線整列正則化関数を生成する、埋め込みグラフ単純化方法である。
【００２０】
本発明の一態様は、頂点の位置情報を有する埋め込みグラフを単純化する埋め込みグラフ単純化装置であって、各頂点に接続する辺の成す角度が小さくなるように頂点位置を直線整列する埋め込みグラフ直線整列処理部と、前記直線整列された埋め込みグラフから、接続する辺の成す角度が小さい頂点を選定し、前記接続する辺の成す角度が小さい頂点を取り除いて単純化された埋め込みグラフを生成する不要頂点除去処理部と、を備える埋め込みグラフ単純化装置である。
【００２１】
本発明の一態様は、上記の埋め込みグラフ単純化方法を、コンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【００２２】
本発明によれば、複雑な埋め込みグラフにおいても頂点や辺を削減可能で、頂点位置が元の埋め込みグラフの頂点位置に限定されず、埋め込みグラフ単純化が可能となる。
【図面の簡単な説明】
【００２３】
【図１】本発明の一実施形態による埋め込みグラフ単純化装置の構成を示すブロック図である。
【図２】本発明の一実施形態による埋め込みグラフ直線整列部のブロック図である。
【図３】本発明の一実施形態による直線整列のための凸最適化問題立式部のブロック図である。
【図４】本発明の一実施形態による埋め込みグラフ単純化処理のフローチャートである。
【図５】本発明の一実施形態による埋め込みグラフ直線整列処理のフローチャートである。
【図６】本発明の一実施形態による直線整列のための凸最適化問題立式処理のフローチャートである。
【図７】本発明の一実施形態による埋め込みグラフ単純化装置における入力とする埋め込みグラフの例を示す図である。
【図８】本発明の一実施形態による埋め込みグラフ単純化装置における直線整列された埋め込みグラフの例を示す図である。
【図９】埋め込みグラフ単純化方法であるＲＤＰ法の概略を示す図である。
【発明を実施するための形態】
【００２４】
以下、本発明の実施の形態について図面を参照しながら説明する。図１は、本発明の一実施形態による埋め込みグラフ単純化装置１の構成を示すブロック図である。埋め込みグラフ単純化装置１は、バスで接続されたＣＰＵ（Central Processing Unit）やメモリや補助記憶装置などを備え、プログラムを実行する。埋め込みグラフ単純化装置１は、プログラムの実行によって埋め込みグラフ直線整列部１１及び不要頂点除去部１２を備える装置として機能する。なお、埋め込みグラフ単純化装置１の各機能の全て又は一部は、ＡＳＩＣ（Application Specific Integrated Circuit）やＰＬＤ（Programmable Logic Device）やＦＰＧＡ（Field Programmable Gate Array）等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
【００２５】
図１において、埋め込みグラフ単純化装置１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）とトレードオフパラメータλとを入力して、単純化された埋め込みグラフＧ＊＝（Ｖ＊，Ｅ＊）を出力する。
【００２６】
ここで、Ｖは元の埋め込みグラフＧの頂点情報で、各頂点の頂点ＩＤ及び頂点の位置の情報を持つ。データ構造の例としてＤ次元座標空間上に分布するＮ個の頂点を考えると、各頂点に「１」から「Ｎ」の整数の頂点ＩＤを任意に付与して、各頂点の座標値を頂点ＩＤの順に並べたＮ行Ｄ列行列をＶとすれば、上記頂点情報の要件を満たす。本実施形態では、この例に倣って、元の頂点情報ＶをＮ行Ｄ列行列として記述するが、等価に変換可能な別のデータ構造を用いても良い。Ｅは元の埋め込みグラフＧの辺情報で、どの頂点を接続して各辺を成しているかという情報を持つ。辺情報Ｅのデータ構造の例としては、隣接リスト、隣接行列、接続行列、ラプラシアン行列、Ｔｕｔｔｅ行列等があるが、互いに等価に変換できることから、いずれを用いても良い。
【００２７】
Ｖ＊は単純化された埋め込みグラフＧ＊の頂点情報であり、Ｅ＊は単純化された埋め込みグラフＧ＊の辺情報である。単純化された埋め込みグラフＧ＊の頂点情報Ｖ＊及び辺情報Ｅ＊は、上述の元の埋め込みグラフＧの頂点情報Ｖ及び辺情報Ｅと同様のデータ構造を持つが、頂点数や辺数は減少しているものとする。
【００２８】
トレードオフパラメータλは正の実数値であり、大きいほど単純化の度合いを強くし、埋め込みグラフの頂点数が減少するよう調整することができる。
【００２９】
図１に示すように、埋め込みグラフ単純化装置１は、埋め込みグラフ直線整列部１１と、不要頂点除去部１２とを備える。
【００３０】
埋め込みグラフ直線整列部１１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）と、トレードオフパラメータλとを入力して、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を出力する。
【００３１】
埋め込みグラフＧ’の辺情報Ｅは、元の埋め込みグラフＧの辺情報Ｅと同一である。頂点情報Ｖ’は、元の頂点情報Ｖと同一のデータ構造、同一の頂点ＩＤを持つが、頂点位置のみが異なる。埋め込みグラフ直線整列部１１により、埋め込みグラフＧ’は元の埋め込みグラフＧよりも直線整列するように変形され、トレードオフパラメータλが大きいほど直線整列の度合いを強くすることができる。
【００３２】
不要頂点除去部１２は、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を入力して、単純化された埋め込みグラフＧ＊＝（Ｖ＊，Ｅ＊）を出力する。直線整列された埋め込みグラフＧ’の多くの頂点では、接続する辺の成す角度が小さくなっているため、この角度が予め定めた閾値以下の頂点を選定して取り除くことで、単純化された埋め込みグラフＧ＊＝（Ｖ＊，Ｅ＊）を生成することが可能である。
【００３３】
図２は、図１に示す埋め込みグラフ直線整列部１１の詳細な構成を示すブロック図である。図２に示すように、埋め込みグラフ直線整列部１１は、直線整列のための凸最適化問題立式部１１１と、凸最適化問題求解部１１２と、頂点情報置換部１１３とを備える。
【００３４】
直線整列のための凸最適化問題立式部１１１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）と、トレードオフパラメータλとを入力して、直線整列のための凸最適化問題を出力する。出力する凸最適化問題は、目的関数と制約条件を記述した数式であり、式（１）の構造をとる。
【００３５】
【数１】
0006514145.tif 000002
【００３６】
この式（１）は、これから求めたい直線整列された埋め込みグラフの頂点情報を示す変数をＵとして、「ｓｕｂｊｅｃｔ  ｔｏの右側の制約を満たす変数Ｕの中で、ｍｉｎｉｍｉｚｅの右側の目的関数値を最小にするＮ行Ｄ列の行列Ｕを求めよ」という最適化問題を表現している。
【００３７】
目的関数は二つの項の線形結合で構成されている。第一項は、直線整列された埋め込みグラフの頂点情報を変数Ｕとしたときに、元の埋め込みグラフの頂点情報Ｖと変数Ｕとがどれだけ乖離しているかを評価するコストである。第二項は、直線整列された埋め込みグラフの頂点情報を変数Ｕとしたときに、埋め込みグラフ（Ｕ，Ｅ）が直線整列されている度合いを評価するコストである。
【００３８】
制約条件は、直線整列された埋め込みグラフの頂点情報を示す変数Ｕの可動範囲を表している。この凸最適化問題は、後続の凸最適化問題求解部１１２により解を求めることで、直線整列された頂点情報Ｖ’が生成されるよう設計している。
【００３９】
式（１）において、ｆは頂点位置変化損失関数であり、ｇは辺ベクトル角評価関数である。頂点位置変化損失関数ｆ及び辺ベクトル角評価関数ｇは微分可能であるか近接写像計算可能な関数である。Ｌｍは辺ベクトル生成線形写像である。Ｃは制約集合である。制約集合Ｃは射影が計算可能な凸集合である。それぞれの詳細については後に図３を用いて説明する。
【００４０】
凸最適化問題求解部１１２は、凸最適化問題を入力として、その解を求め、直線整列された頂点情報Ｖ’を出力する。解を求めるためのアルゴリズムは任意に選択することができる。例えばＰＤＳ法（Ｐｒｉｍａｌ  Ｄｕａｌ  Ｓｐｌｉｔｔｉｎｇ  Ｍｅｔｈｏｄ）では、頂点位置変化損失関数ｆの勾配計算あるいは近接写像、辺ベクトル角評価関数ｇの勾配計算あるいは近接写像、辺ベクトル生成線形写像Ｌｍとその共役写像ＬｍＴ（ｍ＝１，…，Ｍ）、制約集合Ｃへの射影、四則演算を組み合わせた反復で、凸最適化問題を求解可能である。なお、ＰＤＳ法については、以下の文献に記載されている。
【００４１】
Condat, “A Generic Proximal Algorithm for Convex Optimization -Application to Total Variation Minimization,” Signal Process IEEE, vol. 21, no. 8, pp. 985-989, 2014.
【００４２】
頂点情報置換部１１３は、直線整列された頂点情報Ｖ’と、元の埋め込みグラフＧ＝（Ｖ，Ｅ）とを入力して、元の頂点情報Ｖを直線整列された頂点情報Ｖ’に置き換え、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を出力する。
【００４３】
図３は、図２に示した直線整列のための凸最適化問題立式部１１１の詳細な構成を示すブロック図である。図３に示すように、直線整列のための凸最適化問題立式部１１１は、頂点辺情報分解部１１１１と、頂点位置変化損失関数立式部１１１２と、直線整列正則化関数立式部１１１３と、乗算器１１１４と、加算器１１１５と、制約条件立式部１１１６と、凸最適化問題生成部１１１７とを備える。
【００４４】
頂点辺情報分解部１１１１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力し、元の頂点情報Ｖと元の辺情報Ｅに分解して出力する。
【００４５】
頂点位置変化損失関数立式部１１１２は、元の頂点情報Ｖを入力して、頂点位置変化損失関数ｆを出力する。頂点位置変化損失関数ｆは、直線整列された埋め込みグラフの頂点情報を変数Ｕとしたときに、元の頂点情報Ｖと変数Ｕとがどれだけ乖離しているかを評価するコストである。頂点位置変化損失関数ｆは、変数Ｕと元の頂点情報Ｖとの絶対値残差や二乗残差を評価する。頂点位置変化損失関数ｆとしては、式（２）〜（４）に例示するような凸関数を用いることができる。
【００４６】
【数２】
0006514145.tif 000003
【００４７】
ここで、ｖｎ，ｄ及びｕｎ，ｄは、それぞれ、頂点情報Ｖの行列や変数Ｕの行列のｎ行ｄ列成分であり、頂点ＩＤがｎである頂点情報の第ｄ軸成分の値を表す。
【００４８】
直線整列正則化関数立式部１１１３は、辺情報Ｅを入力して、各頂点に接続する辺の成す角度を評価する直線整列正則化関数を出力する。直線整列正則化関数は、式（５）に例示するようなものを用いることができる。
【００４９】
【数３】
0006514145.tif 000004
【００５０】
この関数は、直線整列された埋め込みグラフの頂点情報を変数Ｕとしたときに、変数Ｕを用いた埋め込みグラフ（Ｕ，Ｅ）が直線整列されている度合いを評価するコストである。このコストは、辺ベクトル生成線形写像Ｌｍ（ｍ＝１，…，Ｍ）と、辺ベクトル角評価関数ｇと、累積演算Σとで構成される。辺ベクトル生成線形写像Ｌｍ（ｍ＝１，…，Ｍ）は、直線整列された埋め込みグラフの頂点情報を示す変数Ｕから、次数（接続する辺の数）が２の頂点毎に接続する辺の大きさと向きを表すベクトル（辺ベクトル）を生成する操作を行う。辺ベクトル角評価関数ｇは、抽出した辺ベクトルの成す角度を核ノルムで評価する。累積演算Σは、これらの評価値を足し合わせる。以下に、この算出法を説明する。
【００５１】
まず、整数Ｍは、埋め込みグラフＧの頂点のうち、次数が２である頂点の個数であり、辺情報Ｅより算出する。そして、Ｍ個ある次数２の頂点に（ｍ＝１，…，Ｍ）の番号を付与し、その頂点ＩＤをｃｕｒｒ＿ｉｄ（ｍ）、隣接する２つの頂点の頂点ＩＤをそれぞれｐｒｅｖ＿ｉｄ（ｍ）、ｎｅｘｔ＿ｉｄ（ｍ）とする。
【００５２】
辺ベクトル生成線形写像Ｌｍ（ｍ＝１，…，Ｍ）は、（ｃｕｒｒ＿ｉｄ（ｍ），ｐｒｅｖ＿ｉｄ（ｍ））の辺ベクトルと、（ｃｕｒｒ＿ｉｄ（ｍ），ｎｅｘｔ＿ｉｄ（ｍ））の辺ベクトルとを算出し、算出されたこれらの辺ベクトルを２行Ｄ列の行列に並べて格納する操作である。この２行Ｄ列の行列を辺ベクトル行列Ｐｍと呼ぶことにする。
【００５３】
式で記述すると、辺ベクトル生成線形写像Ｌｍは、直線整列された埋め込みグラフの頂点情報を示す変数Ｕを入力して、式（６）により、辺ベクトル行列Ｐｍ＝ＬｍＵを出力する。
【００５４】
【数４】
0006514145.tif 000005
【００５５】
この辺ベクトル生成線形写像Ｌｍは、式（７）で示す２行Ｎ列の疎行列を変数Ｕの左から掛ける操作とも等しいため、辺ベクトル生成線形写像Ｌｍと式（７）の行列は同一のものであるとみなせる。
【００５６】
【数５】
0006514145.tif 000006
【００５７】
辺ベクトル角評価関数ｇは、２行Ｄ列の辺ベクトル行列Ｐｍに対し、各辺ベクトルの成す角の大きさを評価する。辺ベクトル角評価関数ｇには、式（８）や式（９）で例示するような凸関数を用いることができる。
【００５８】
【数６】
0006514145.tif 000007
【００５９】
ここで、σ１（Ｐｍ）とσ２（Ｐｍ）は、辺ベクトル行列Ｐｍの２つの特異値を表す。この関数は、２つの辺ベクトルの成す角度が小さいほど関数値が小さくなり、角度が大きいほど関数値が大きくなる。
【００６０】
乗算器１１１４は、式（５）の直線整列正則化関数とトレードオフパラメータλを乗算した関数を出力する。
【００６１】
加算器１１１５は、頂点位置変化損失関数ｆと乗算器１１１４が出力した関数を線形結合して、式（１）のｍｉｎｉｍｉｚｅの右側の目的関数を出力する。
【００６２】
制約条件立式部１１１６は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力し、式（１）のｓｕｂｊｅｃｔ  ｔｏの右側の制約条件式を出力する。制約条件式は、使用者が予め定めた凸制約であり、式（１０）のように幾つかの頂点情報を限定する制約や、式（１１）や式（１２）のように頂点情報の可動範囲を限定する制約などを課することができる。
【００６３】
【数７】
0006514145.tif 000008
【００６４】
ここで、ε（ｎ）は、使用者が予め定めた、頂点ＩＤがｎである頂点に対する可動範囲の最大値である。あるいは、これらの制約条件式（１０）〜（１２）のいくつかを組み合わせて制約条件式とすることもできる。あるいは、制約条件を全く課さないという制約条件式を定めることもできる。
【００６５】
凸最適化問題生成部１１１７は、目的関数と制約条件式を入力して、直線整列のための凸最適化問題を生成する。すなわち、凸最適化問題生成部１１１７は、加算器１１１５から出力された目的関数の左側に最小化を表す「ｍｉｎｉｍｉｚｅ」を加え、制約条件立式部１１１６から出力された制約条件式の左側に制約を表す「ｓｕｂｊｅｃｔ  ｔｏ」を加えて、（１）式に示した凸最適化問題を出力する。
【００６６】
次に、図４、図５及び図６を用いて、本実施形態の埋め込みグラフ単純化装置１による単純化処理を説明する。
【００６７】
図４は、埋め込みグラフ単純化装置１による埋め込みグラフ単純化処理のフローチャートである。埋め込みグラフ直線整列部１１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）と、トレードオフパラメータλとを入力して、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を出力する（ステップＳ１１）。不要頂点除去部１２は、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を入力して、単純化された埋め込みグラフＧ＊＝（Ｖ＊，Ｅ＊）を出力する（ステップＳ１２）。
【００６８】
図５は、埋め込みグラフ直線整列部１１による埋め込みグラフ直線整列処理のフローチャートである。直線整列のための凸最適化問題立式部１１１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）と、トレードオフパラメータλとを入力して、直線整列のための凸最適化問題を出力する（ステップＳ１１１）。凸最適化問題求解部１１２は、直線性列のための凸最適化問題を入力として、直線整列された頂点情報Ｖ’を出力する（ステップＳ１１２）。頂点情報置換部１１３は、直線整列された頂点情報Ｖ’と元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力して、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を出力する（ステップＳ１１３）。
【００６９】
図６は、直線整列のための凸最適化問題立式部１１１による直線整列のための凸最適化問題立式処理のフローチャートである。頂点辺情報分解部１１１１は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力して、頂点情報Ｖと辺情報Ｅに分解して出力する（ステップＳ１１１１）。頂点位置変化損失関数立式部１１１２は、頂点情報Ｖを入力して、頂点位置変化損失関数ｆを出力する（ステップＳ１１１２）。直線整列正則化関数立式部１１１３は、辺情報Ｅを入力して、直線整列正則化関数を出力する（ステップＳ１１１３）。乗算器１１１４は、直線性列正則化関数とトレードオフパラメータλとを入力し、これら２つを乗算した関数を出力する（ステップＳ１１１４）。加算器１１１５は、頂点位置変化損失関数ｆと乗算器１１１４が出力した関数を線形結合して、目的関数を出力する（ステップＳ１１１５）。制約条件立式部１１１６は、元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力し、制約条件式を出力する（ステップＳ１１１６）。凸最適化問題生成部１１１７は、目的関数と制約条件式を入力して、直線整列のための凸最適化問題を生成する。
【００７０】
次に具体例を挙げて、図１に示す埋め込みグラフ単純化装置１、図２に示す埋め込みグラフ直線整列部１１、及び図３に示す直線整列のための凸最適化問題立式部１１１が、図４、図５及び図６に示す処理を行うときの動作を説明する。
【００７１】
ここでは、画像領域の符号化のための埋め込みグラフ単純化を考え、埋め込みグラフは２次元平面上に埋め込まれたグラフ、頂点位置変化損失関数ｆは式（４）のコスト、辺ベクトル角評価関数ｇは式（８）のコスト、制約条件は画像縁に位置する頂点を式（１０）の形で制約するものとする。凸最適化問題求解部のアルゴリズムにはＰＤＳ法を用いるものとする。
【００７２】
埋め込みグラフ単純化装置１の入力である、元の埋め込みグラフＧ＝（Ｖ，Ｅ）は、図７に示す２次元平面上に埋め込まれたグラフとする。図７における丸の記号は埋め込みグラフの各頂点の位置を表し、丸の記号の右下の数字が頂点ＩＤを表している。また頂点位置は、図７における下方向を第１座標軸方向、右方向を第２座標軸方向とする直交座標系で記述する。例えば図７で最も左上にある頂点は頂点ＩＤが「２」で、その座標は（１，０）である。頂点情報ＶはＮ行２列行列とし、行番号が頂点ＩＤ、列番号が座標軸番号を示す。例えば頂点ＩＤが「２」の頂点についての情報は、頂点情報Ｖを示す行列の２行目に格納されており、（ｖ２，１＝１）であり、（ｖ２，２＝０）である。
【００７３】
頂点と頂点を結ぶ実線は、埋め込みグラフの各辺を表している。例えばＩＤが「ＩＤ＝２」の頂点と「ＩＤ＝３」の頂点の間には、この２頂点を結ぶ辺が存在する。辺情報Ｅは隣接リストとして格納されている。埋め込みグラフ単純化装置１の入力である、トレードオフパラメータλは、１．５などの任意の実数値を選ぶことができる。
【００７４】
埋め込みグラフ直線整列部１１が行う処理ステップＳ１１では、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を出力する。この例では、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）として、図８のような埋め込みグラフを出力する。図８における丸の記号は、図７と同様に、埋め込みグラフの各頂点の位置を表し、丸の記号の右下の数字が頂点ＩＤを表している。図７と図８とを比較すれば分かるように、埋め込みグラフ直線整列部１１が行う処理ステップＳ１１により、各頂点の間の辺情報は維持され、埋め込みグラフが直線整列するように、頂点の位置が変動している。また、頂点ＩＤが（ＩＤ＝１，２，４２、…，１４１）の頂点については、制約条件により、変動位置が制約されている。
【００７５】
不要頂点除去部１２が行う処理ステップＳ１２では、埋め込みグラフＧ’の頂点のうち、接続する辺の成す角度が小さくなっている頂点を予め定めた閾値（例えばπ／１００ラジアン）で選定し、この頂点を取り除いて単純化された埋め込みグラフＧ＊＝（Ｖ＊，Ｅ＊）を生成する。
【００７６】
埋め込みグラフ直線整列部１１が行う処理ステップＳ１１の詳細な動作について述べる。直線整列のための凸最適化問題立式部１１１が行う処理ステップＳ１１１では、例えば式（１３）の凸最適化問題を生成する。
【００７７】
【数８】
0006514145.tif 000009
【００７８】
ここでは、頂点位置変化損失関数ｆは、式（４）のコストを用い、辺ベクトル角評価関数ｇは式（８）のコストを用いている。また、制約条件は、画像外縁に位置する頂点はその外縁上の移動しかできない事とし、式（１０）の形式で頂点ＩＤが（ＩＤ＝１，２，４２、…，１４１）の頂点について制約している。
【００７９】
凸最適化問題求解部１１２が行う処理ステップＳ１１２では、式（１３）の凸最適化問題をＰＤＳ法で解き、頂点情報Ｖ＊を生成する。
【００８０】
式（１３）に対するＰＤＳ法では、式（４）の頂点位置変化損失関数ｆの近接写像、式（８）の辺ベクトル角評価関数ｇの近接写像、辺ベクトル生成線形写像Ｌｍとその共役写像ＬｍＴ（ｍ＝１，…，１３２）、制約集合Ｃの制約条件を表す凸集合への射影を計算する必要がある。これらが計算可能であれば反復演算により解を求めることができる。
【００８１】
式（４）の頂点位置変化損失関数ｆの近接写像は、ある任意のステップサイズμ（＞０）に対して、式（１４）により計算できる。
【００８２】
【数９】
0006514145.tif 000010
【００８３】
ここで関数ｓｉｇｎは、入力した行列の各要素の符号を抽出して−１，０，＋１に対応させ、入力と同じサイズの行列に格納して出力する関数である。また、丸で示す演算子はアダマール積で、左右の行列の要素同士を掛けあわせて同じサイズの行列に格納して出力する演算である。また、関数ｍａｘは、入力した２つの実数の値を比較して、大きい方を出力する関数である。
【００８４】
式（８）の辺ベクトル角評価関数ｇの近接写像は、ある任意のステップサイズμに対して、式（１５）により計算できる。
【００８５】
【数１０】
0006514145.tif 000011
【００８６】
ここで関数ｄｉａｇは、入力したベクトルを対角要素に並べた対角行列を出力する関数である。またＳ（Ｐ），Ｔ（Ｐ），σ（Ｐ）は行列Ｐの特異値分解であり、式（１６）が成立する。
【００８７】
【数１１】
0006514145.tif 000012
【００８８】
辺ベクトル生成線形写像Ｌｍとその共役写像ＬｍＴ（ｍ＝１，…，１３２）は、式（７）の行列やその転置行列を左から掛ける操作により計算可能である。
【００８９】
制約集合Ｃの制約条件を表す凸集合は式（１７）である。
【００９０】
【数１２】
0006514145.tif 000013
【００９１】
よって、Ｃへの射影は、式（１８）により計算できる。
【００９２】
【数１３】
0006514145.tif 000014
【００９３】
頂点情報置換部１１３が行う処理ステップＳ１１３では直線整列された頂点情報Ｖ’と元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力して、直線整列された埋め込みグラフＧ’＝（Ｖ’，Ｅ）を出力する。すなわち、頂点情報置換部１１３が行う処理ステップＳ１１３は、元の埋め込みグラフＧの頂点情報Ｖを直線整列された頂点情報Ｖ’に置き換え、直線整列された埋め込みグラフＧ’を生成する。
【００９４】
直線整列のための凸最適化問題立式部１１１が行う処理ステップＳ１１１の詳細な動作について述べる。頂点辺情報分解部１１１１が行う処理ステップＳ１１１１では、元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力して、頂点情報Ｖと辺情報Ｅに分解して出力する。
【００９５】
頂点位置変化損失関数立式部１１１２が行う処理ステップＳ１１１２では、元の頂点情報Ｖを入力して、頂点位置変化損失関数ｆを出力する。頂点位置変化損失関数ｆとしては、例えば式（４）のコストを使用する。
【００９６】
直線整列正則化関数立式部１１１３が行う処理ステップＳ１１１３では、元の辺情報Ｅを入力して、式（５）の直線整列正則化関数を出力する。辺ベクトル生成線形写像Ｌｍ（ｍ＝１，…，Ｍ）は、辺情報Ｅから各次数２の頂点の隣接頂点ＩＤを得ることで、式（７）の行列として生成することができる。また、辺ベクトル角評価関数ｇとしては、例えば式（８）のコストを使用する。
【００９７】
乗算器１１１４が行う処理ステップＳ１１１４では、式（５）の直線性列正則化関数とトレードオフパラメータλを乗算した関数を出力する。
【００９８】
加算器１１１５が行う処理ステップＳ１１１５では、頂点位置変化損失関数ｆと乗算器１１１４が出力した関数を線形結合して、式（１３）のｍｉｎｉｍｉｚｅの右側の目的関数を出力する。
【００９９】
制約条件立式部１１１６が行う処理ステップＳ１１１６では、元の埋め込みグラフＧ＝（Ｖ，Ｅ）を入力し、式（１３）のｓｕｂｊｅｃｔ  ｔｏの右側の制約条件式を出力する。
【０１００】
凸最適化問題生成部１１１７が行う処理ステップＳ１１１７は、目的関数と制約条件式を入力して、直線整列のための凸最適化問題を生成する。すなわち、凸最適化問題生成部１１１７が行う処理ステップＳ１１１７は、目的関数と制約条件式それぞれの左側に、最小化を表す「ｍｉｎｉｍｉｚｅ」と、制約を表す「ｓｕｂｊｅｃｔ  ｔｏ」を加えて出力する。
【０１０１】
このように図６で示した処理手順に従って直線整列のための凸最適化問題を生成し、図５で示した処理手順に従って埋め込みグラフの直線整列を行い、図４で示した処理手順に従って埋め込みグラフを単純化することができる。
【０１０２】
なお、埋め込みグラフ単純化装置１の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより各部の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１０３】
以上、本発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【符号の説明】
【０１０４】
１…埋め込みグラフ単純化装置、１１…埋め込みグラフ直線整列部、１２…不要頂点除去部、１１１…直線整列のための凸最適化問題立式部、１１２…凸最適化問題求解部、１１３…頂点情報置換部、１１１１…頂点辺情報分解部、１１１２…頂点位置変化損失関数立式部、１１１３…直線整列正則化関数立式部、１１１４…乗算器、１１１５…加算器、１１１６…制約条件立式部、１１１７…凸最適化問題生成部
【図１】
0006514145.tif 000015
【図２】
0006514145.tif 000016
【図３】
0006514145.tif 000017
【図４】
0006514145.tif 000018
【図５】
0006514145.tif 000019
【図６】
0006514145.tif 000020
【図７】
0006514145.tif 000021
【図８】
0006514145.tif 000022
【図９】
0006514145.tif 000023