C04班 実践的な列挙アルゴリズムの理論構築 研究代表者 研究分担者 宇野 毅明 (国立情報学研究所 &総合研究大学院大学) 中野 眞一 (群馬大学) 松井 泰子 (東海大学) 岡本 吉央 (豊橋技術科学大学) 清見 礼 (北陸先端科学技術大学院大学) 2007年5月14日 新世代の計算限界 全体会議 列挙アルゴリズムの歴史 ・ 初期は、計算機パワーの不足で、数理面、理論面が中心 - ある種の構造からなる集合の、大きさ、隣接性 直径や連結性の議論へ ・ 最適化の一部として(最適化に使われるような)比較的シンプル な部分構造を列挙する問題 - パス、全張木、マッチング、サイクル、多面体の頂点など 出力の大きさに対する多項式性、計算量の減少 近年の変化 ・ 近年、計算機パワーの増大 & 計算の目的があいまい化、 により、列挙が応用に使われるようになってきた (データマイニング、データ解析、多目的最適化、厳密アルゴリズ ムなど) ・ 培われてきた技術は、いまひとつピントがぼけている (応用先、問題、データの構造・・・) どんな問題を、どのようなアルゴリズムで解くと、 どのような性質が見えるのか? 新たな問題 ・ 大きな入力、それほど大きくない解の数、という状況で、効率良 いアルゴリズムをどのように構築するか?(既存のデータ構造は 少し視点が違う) ・ 複雑な構造を列挙するにはどうしたらいいのだろうか (単純なバックトラックなどは通用しない) ・ 部分構造ではなく、ある種の構造全てを列挙するにはどうする か?(同型性が問題となる) ・ 厳密アルゴリズムや、数学の問題への列挙・数え上げの応用に は何が必要か?(多大な時間 長い時間、にする ) 解数のコントロール ・ 列挙を応用で使うための大きなボトルネックは、解の多さ ・ この問題を解決するため、極大(極小)解のみの列挙、評価値に よるフィルタリング、といった方法がとられ始めてきた ・ これによって解数は抑えられるが、解と解との距離が開きがちに なり、探索のコストは増大する ・ しかし、実際に解きたい問題は巨大な入力を持つことがしばしば ある。特にデータマイニング ・ 解1つあたりの計算時間が、入力に対して非常に小さくなる必要 がある 頻出パターン発見 ・ 例として、データマイニングの基本問題である、頻出パターン発見(マ イニング)を見てみる ・ データベースの、閾値以上の項目に含まれるパターン(頻出パターン) を全て見つける問題 ・ パターンは、集合、文字列、シークエンス、グラフ、木など ・ 閾値を調節することで、解の数をコントロールできる ・ 最適化のほうで研究されてきた k-best 問題よりも、実装が楽で実践的 ・ 現場では、データベース系の技術を中心にした議論 ・多項式性が自明であることが多く(バックトラック)、 アルゴリズム的には研究が少ない 末広がり性 ・ バックトラックは、各反復で複数の再帰呼び出しをする 計算木は、下に行くほど大きくなる 計算時間を支配するのは一番下の数レベル 計算時間長 ・・・ 計算時間短 ・ 頻出パターン列挙では、解の候補がどの項目に含まれるか調べ る必要があり、ここが計算上のボトルネック ・ 各反復ごとにデータを縮約して、見るべき領域を減らすと、末広が り性から高速化される 実装コンテストで優勝 [宇野・清見・有村] より複雑な構造へ ・ ある程度単純なパターンが発見できるようになると、次により複 雑なものができるか、より複雑な構造で解数を減らせるか、といっ た点が疑問になる ・ 解数に関しては、飽和集合という、意味的に同値なパターンの 代表のみを列挙する問題に対して効率的なアルゴリズムをいくつ か提案した(逆探索法による、初めての多項式時間アルゴリズム) (部分集合[宇野・有村]、ワイルドカード付き文字列[有村・宇野]...) ・ 極大元に関しても同様に効率的なアルゴリズムを得た (極大クリーク[牧野・宇野]、頻出集合&双対化[佐藤・宇野]...) 実用的には十分速い より複雑な構造に、極大・飽和の概念をどう持ち込むか パターン列挙 ・ より複雑なパターンにグラフ構造がある ・ 頻出するグラフを列挙する問題は興味深いが、同型性の 判定が大変 同型性が判定できるクラスを考える ・ 大きさがある程度以下のグラフ構造を、小さいものから すべて列挙するフレームワークがほしい 標準型+家系図法 ・ 同型性を排除するため、各構造に標準型、という唯一的に定 まる構造を定義 (木なら子どもの順番を決める) ・ 各構造に(1つ大きさの小さい)親を定めることで、構造全体 を連結な木でつなぐ(これを家系図という) ・ 木[中野、中野・宇野、浅井・中野・宇野・有村]、色付き木[中野・宇野]、フロ アプラン[中野]、極大2連結3角形グラフ[中野、中野・宇野]、直並列グ ラフ[中野]、 Linear Extension[中野], distance hereditary graph [上 原・宇野・中野] .. 1つあたり定数時間のものが多く、非常に効率が良い 標準型+家系図法 ・ 標準型は単純で決まりのある構造を持つので、これを使うと グラフの圧縮ができる (フロアプラン[中野]、極大平面グラフ[中野、中野]、 distance hereditary graph [上原・宇野・中野] ) ・ 平面的な構造に対して、「根」という概念を入れることで、比較 的シンプルに標準形が導入できるようになった (しかし、根のつけかたによる重複の回避が少々ボトルネックに なっている) 根を使わない、単純な標準形は作れるのか? 木構造と関連しない構造をいかに列挙するか? 複雑なグラフ構造の列挙 ・ より複雑なグラフ構造の列挙にも興味がある。ただし、こ んどはパターン列挙ではなく、部分グラフ列挙 ・ 探索・生成自体がそれほど自明でない 木などの構造は、それの生成法が(非決定性であれ ば)簡単にわかる、問題は重複の回避だった ・ 例えば、コーダルグラフ、インターバルグラフ、擬似クリー クなど ・ これらの構造では、どのように生成するか、も難しい 隣接性の解明 ・ 探索ができるようになるためには、解と解の間にある種の隣接性が成り立 たないといけない - 全体をスパンすること - 隣接する解を多項式時間で見つけられること - 近傍サイズが多項式であること、あるいは指数であっても、効率良く隣 接解の候補から隣接解を見つけられること ・ コーダルグラフ・インターバルグラフ、擬似クリーク 頂点を取り除くことで他の解が必ず得られる ・ 線形計画の多目的最適解集合 枝による隣接性が上記の条件を満たすことがわかる 上の条件を満たす 逆探索の利用 ・ 隣接性がわかったので、後は逆探索を使って列挙すればよい ・ 面白いことに、いわゆる分枝限定法的な列挙法を使うと、子問 題がNP完全になる 逆探索の優位性の、ある種の証明になる ・ さらに、+αのアルゴリズムの工夫で計算量を下げる - コーダル部分グラフ: O(1) [清見・宇野] - コーダルスーパーグラフ: O(n3) [清見・宇野・来嶋] - インターバル部分・スーパーグラフ: O(n3) [清見・宇野・来嶋] - 擬似クリーク: O(Δ(Δ+log n)) [宇野] - 多目的最小全域木: 多項式 [岡本・宇野] 厳密アルゴリズムへの適用 ・ 計算機パワーの増大は、難しい問題を素朴でない方法で厳密に 解こうという研究の流れを生んだ - 厳密アルゴリズム (固定パラメータアルゴリズムも) - 数理計画へのグレブナー基底の応用 ・ 基本的に指数個の構造を探索しなければ最適解を得ることはで きないが、探索しなければいけない構造を少なくすることで、計算 時間を短縮できる 厳密アルゴリズムへの適用 ・ 2次元幾何問題に対する固定パラメータアルゴリズム [岡本ら] - 凸包上にない点が少ない場合、それらの点のつながり方の可 能性を絞り込み、列挙して最適解を得る - TSPの計算量 O(2k k2 n) (n=点数,k=凸包上にない点数) - 最小重み三角形分割の計算量 O(6k n5 log n) ・ グラフクラスにおけるTutte多項式厳密計算アルゴリズム [岡本ら] - グラフの特徴を活かして候補を絞り込み、列挙により計算 - 単位区間グラフ O(1.9706m poly) (m=辺数) - 3正則グラフ O(1.8494m poly) (m=辺数) ・ グレブナー基底計算に用いる「変数順序」の列挙 O(N2 m) [松井] -コーダルグラフに付随する perfect sequence の列挙により実現 列挙合宿 ・ この特定領域野期間中、列挙に興味のある人間が集まって、 合宿形式、ディスカッション中心の研究会を行ってきた ・ この3月に7回目を行った 4回目あたりから、広く参加者をつのるようにしてきた ・ 非常にアクティビティが高く、毎回、ある研究に対して改良が あったり、提議された問題が解決されたりしてきた ・ このようなコミュニティーが得られたことは、大いなる成果だと 考えている ・ できれば、「列挙学校」という、チュートリアル、あるいはス クールを開きたいと思っている。いかがでしょうか?
© Copyright 2024 ExpyDoc