QUICK REVIEW
[論文レビュー] A simple linear space algorithm for computing a longest common increasing subsequence
Daxin Zhu, Lei Wang|arXiv (Cornell University)|Aug 25, 2016
Algorithms and Data Compression参考文献 11被引用数 6
ひとこと要約
この論文は、新しい再帰的公式を用いて、2つの列の最長共通増加部分列(LCIS)を計算する、単純で線形空間のアルゴリズムを提示する。時間計算量はO(nm)で、使用するメモリはmin{n,m}+1にまで制限され、従来の手法よりも大幅に単純化されつつ、最適な時間効率を維持している。
ABSTRACT
This paper reformulates the problem of finding a longest common increasing subsequence of the two given input sequences in a very succinct way. An extremely simple linear space algorithm based on the new formula can find a longest common increasing subsequence of sizes $n$ and $m$ respectively, in time $O(nm)$ using additional $\min\{n,m\}+1$ space.
研究の動機と目的
- 2つの列の最長共通増加部分列(LCIS)を計算する、空間効率の良いアルゴリズムの開発。
- 動的計画法の計算を単純化するため、LCIS問題を新しい再帰的公式で再定式化すること。
- 空間計算量をO(nm)からO(min{n,m}+1)に削減しながら、時間効率を損なわないこと。
- 従来の分割統治法よりも単純で実装可能な線形空間アルゴリズムを提供すること。
- 追加でO(m)時間で実際にLCIS列を再構築できるようにすること。
提案手法
- Xのi番目の要素を処理しているとき、列Yのj番目の位置で終わるLCISの長さf(i,j)を表すための新しい再帰的公式を提案する。
- x_i = y_j であることを検出するためのマッチ関数δ(i,j)を用い、このときf(i,j) = 1 + max_{t ∈ β(i,j)} f(i-1,t) と更新する。
- 現在行と直前の行の値のみを格納する、サイズm+1のローリング配列Lを用いて、空間をmin{n,m}+1にまで削減する。
- 増加部分列の延長に最適な以前の値を効率的に追跡するため、走査中の最大値θ(L[0]に格納)を維持する。
- 再帰的スキャン関数Next(j,v,len)を用いて逆方向にトレースすることで、実際にLCIS列を再構築する。
- 再構築フェーズを主アルゴリズムに統合し、追加でO(m)時間のコストしかかからないようにする。
実験結果
リサーチクエスチョン
- RQ1従来の分割統治法よりも単純な動的計画法の定式化を用いて、LCIS問題を線形空間で解くことは可能か?
- RQ2LCIS問題において、時間計算量をO(nm)に保ちながら、空間使用量をO(min{n,m}+1)に削減することは可能か?
- RQ3時間効率を損なわず、実際にLCIS列を効率的に再構築できる空間効率の良いアルゴリズムを設計することは可能か?
- RQ4LCISのための新しい再帰的公式は、従来の手法よりも直感的で実装が容易なアルゴリズムを可能にするか?
- RQ5時間計算量を増加させず、実装を複雑にすることなく、空間の削減を達成できるか?
主な発見
- 提案されたアルゴリズムは、O(nm)時間で動作し、min{n,m}+1のメモリしか使用せず、最適な空間効率を達成している。
- Hirschbergの分割統治法に基づく従来の線形空間手法よりも、本アルゴリズムは単純である。
- 実際にLCIS列は、後向きスキャン手順を用いて追加でO(m)時間で再構築できる。
- 新しい再帰的公式により、複雑な再帰や状態追跡を避ける、洗練された効率的な実装が可能になった。
- 空間使用量はO(min{n,m}+1)にまで最小限に抑えられ、この問題に対して漸近的に最適である。
- 標準的な動的計画法の時間計算量を維持しつつ、メモリ使用量を著しく削減している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。