説明

線形符号におけるLP復号器及び整数解計算方法及びプログラム

【課題】 LP復号器の実現において線形計画法を用いた際に、効率的に整数解を出力する。
【解決手段】 線形符号における最尤復号の緩和問題を線形計画法によって解き、その実行可能領域を得られた目的関数fの最適値から適切な値(例えばfの初期値)までを一定間隔εで等分した領域(スライス領域)内において、分割された各スライス領域について順に超立方体の頂点を含むか否かを判定し、該領域に頂点が含まれる場合に、含まれる頂点の座標xを整数解として出力し、含まれない場合はその時点で得られた非整数解を記憶手段に格納し、すべてのスライス領域を走査した時点でも整数解が得られない場合には、それまでに該記憶手段に格納されている解を出力する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、線形符号におけるLP(線形計画)復号器及び整数解計算方法及びプログラムに係り、特に、線形計画法を用いた符号において整数出力を効率的に実現するためのLP復号器及び整数解計算方法及びプログラムに関する。
【背景技術】
【0002】
従来、線形符号における最尤復号を実現する技術として以下のような手法がある。
【0003】
対象となるアルファベットは2値{0,1}とし、2元体としての算法(加法および乗法)が適用されるものとする。
【0004】
まず線形符号における最尤復号を定義する.最尤復号とは、{0,1}上の確率分布P、n×k行列A,及びシンドロームu∈{0,1}kが与えられたとき長さnの2値系列x∈{0,1]n
【0005】
【数1】

として与えるものである。
【0006】
ここで、記号argは右辺のmaxを達成する
【0007】
【数2】

を左辺のxとして出力するという意味である。
【0008】
注目すべきことは式(1)をそのまま実行するのならばnに関して指数オーダーの実行時間が必要となるが、非特許文献1にて提案された緩和法を適用することによって近似的に線形計画法で記述できることが示されているということである。従って、もしAが疎行列、すなわち要素が1である個数が0である個数に比べて圧倒的に少ないならば、シンプレックス法や内点法を適用して式(1)の緩和問題を解けば符号長nに関して多項式オーダーの実行時間となる。式(1)を緩和法によって線形計画問題に書き換えて得られる近似解法をLP復号と呼ぶ(非特許文献1参照)。
【0009】
しかし一方で式(1)の条件部分を緩和したことによって、線形計画問題を解いて得られる解は必ずしも整数解とはならないという不都合が生じる。このとき、どのようにして整数解を得るのかが新たな問題である。例えば特許文献1では得られた非整数解において疎行列Aの冗長行と対応する成分を四捨五入によって固定し、残りの成分を連立一次方程式を解くことで求めている。しかしながら、このような方法はヒューリスティックな性質が強く、得られる整数解は確かに式(1)の拘束条件は満たすが、最適値を与えるという保証を与えるものではなかった。
【0010】
また、非特許文献2では適応的切除平面法という緩和条件に新たな条件を追加する方式で整数解を得る可能性を高めた。しかしながら追加する条件は必ずしも拘束条件の疎行列性を保持しなくなるので実行時間が符号長nに関して多項式オーダーである保証がなくなるという欠点を持つ。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2010−016684号公報
【非特許文献】
【0012】
【非特許文献1】J. Feldman, M. J. Wainwright, and D. R. Karger, "Using linear programming to decode binary linear codes," IEEE Trans. Inform. Theory, vol. 51, no. 3, pp. 954-972, 2005.
【非特許文献2】村松 純, "線形計画法を用いた2元線形符号の復号における適応的切除平面法の改良," 信学技報, vol. IT2010, no. 40, pp. 37-42, 2010.
【発明の概要】
【発明が解決しようとする課題】
【0013】
上記のように、従来の手法では、LP復号器の実現において線形計画法を用いた際に、出力が非整数解となる、アルゴリズムの実行時間が符号長に関して多項式オーダーである保証がなくなるという欠点があった。
【0014】
本発明は、上記の点に鑑みなされたもので、前述の式(1)を緩和した線形計画問題をシンプレックス法などの適切な方法を用いて解いた際に最適な整数解を得やすくするために全体のアルゴリズムを見直し、また、見直した後のアルゴリズムの実行時間は符号を構成する行列が疎行列である場合、符号長nに関して多項式オーダーとなるようなLP復号器及び整数解計算方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0015】
上記の課題を解決するため、対象となるアルファベットを2値{0,1}とし、該{0,1}上の確率分布P、n×k行列A,及びシンドロームu∈{0,1}kが与えられたとき長さnの2値系列x∈{0,1}n
【0016】
【数3】

(但し、記号argは右辺のmaxを達成する
【0017】
【数4】

を左辺のxとして出力するという意味である)
として与える線形符号の最適な整数解を近似的に求めるLP復号器であって、
前記式(1)の緩和問題を線形計画法によって解く線形計画問題処理手段と、実行可能領域を前記線形計画問題処理手段に用いられる目的関数fの最適値から適切な値(例えばfの初期値)までを一定間隔εで等分した領域(スライス)領域において、分割された各スライス領域について順に超立方体の頂点を含むか否かを判定し、該領域に頂点が含まれる場合に、含まれる頂点の座標xを整数解として出力し、含まれない場合はその時点で得られた非整数解を記憶手段に格納し、すべてのスライス領域を走査した時点でも整数解が得られない場合には、それまでに該記憶手段に格納されている解を出力する判別アルゴリズム実行手段と、を有する。
【発明の効果】
【0018】
上記のように、本発明によれば、LP復号問題における実行可能領域を適切に分割し、順番に各領域内に超立方体の頂点が含まれるかどうかを判別する、という方式を採用したことで、頂点を含む/含まない、の判別のための実行時間が符号長nに関して多項式オーダーであるならば符号化アルゴリズム全体も多項式オーダーとなることが示せる。
【0019】
これにより、LP復号器を用いるデータ圧縮符号化や誤り訂正符号化の実行時間を短縮することができ、効率のよい符号化の実現が可能となる。
【図面の簡単な説明】
【0020】
【図1】本発明の一実施の形態における線形符号器の構成図である。
【図2】式(1)を緩和した線形計画問題の模式図である。
【図3】本発明の一実施の形態における実行可能領域の分割の例である。
【図4】本発明の一実施の形態における判別アルゴリズム(n=2)である。
【図5】本発明の一実施の形態における全体アルゴリズムである。
【図6】本発明の一実施の形態における判別アルゴリズムである。
【図7】既存アルゴリズムとの比較である。
【発明を実施するための形態】
【0021】
以下図面と共に、本発明の実施の形態を説明する。
【0022】
図1は、本発明の一実施の形態におけるLP復号器の構成を示す。
【0023】
本発明のLP復号器は、入力部1、記憶部2、出力部3、処理部10から構成される。記憶部2は、メモリやハードディスク等の記憶媒体である。
【0024】
処理部10は、判別アルゴリズム実行部11と線形計画問題処理部12から構成される。
【0025】
入力部1は、シンドロームu(長さkの2値系列)、領域分割のパラメータε、判別アルゴリズムで拘束条件とする座標数λを入力する。
【0026】
記憶部2は、n×k行列A、{0,1}上の確率分布Pを格納する。
【0027】
判別アルゴリズム実行部11は、実行可能領域を目的関数f平行にfの最適値から適切な値(例えばfの初期値)を一定間隔(ε)で分割した領域について、順に走査して単位正方形(単位超立方体)の頂点が含まれる場合に当該含まれる頂点の座標xを最適解として出力部3に出力する。判別アルゴリズム実行部11は、走査途中の暫定解を格納するためのメモリ(図示せず)を具備しているものとする。
【0028】
線形計画問題処理部12は、前述の式(1)の緩和問題を線形計画法によって解く。
【0029】
図2は、式(1)を緩和した線形計画問題を模式化したものである。
【0030】
同図の塗りつぶされた凸領域が実行可能領域で、この領域と図中の線a(目的関数fに相当する)とが接する点が線形計画問題の解である。
【0031】
図2にて示される最適解は非整数解である。この場合、最適解を与えるxの値は(1,0)であるので、元の線形計画問題に新たな工夫を施して(1,0)を出力するようにしたい。
【0032】
まず図3で示すように図2の線a(目的関数fの最適値Slice(0))と平行な直線(Slice(r))を一定間隔(ε)で描くことで実行可能領域を分割する。分割された各領域(以下、「スライス領域」と記す)は線形計画法の最適解を含む領域から順に番号付けが可能であることに注意する。
【0033】
本実施の形態で行うことは、判別アルゴリズム実行部11において、判別アルゴリズムにより分割された各スライス領域を順に走査して、単位正方形の頂点を含むか否かをチェックすることである。単位正方形が含まれた最初の領域が見つかれば、判別アルゴリズム実行部11は領域に含まれる単位正方形の頂点座標(x0,x)を出力して終了する。ここで注意すべきことは間隔εを十分小さくとれば各領域の幅が小さくなるので、単位正方形の頂点を複数個含む場合の出現頻度は無視できることである。
【0034】
以下に、判別アルゴリズム実行部11において実行される判別アルゴリズムについて説明する。
【0035】
図4は、本発明の一実施の形態における判別アルゴリズム(n=2)の例である。
【0036】
同図は、図3に示す各領域において単位正方形の頂点が含まれるか否かをチェックする判別アルゴリズム(n=2の場合)である。
【0037】
まず、判別アルゴリズム実行部11は、拘束条件とする座標のインデックスjを0とし、領域のインデックスrを0とし、初期化を行う。
【0038】
次に、xに0及び1を代入して前述の緩和問題の式(1)の拘束条件として追加した緩和問題について領域r内に実行可能解があるかどうかをチェックする(Step1)。実行可能解が存在すれば「OK」、存在しなければ「NG」とする。チェックはCase1〜Case4に示すとおりである。
【0039】
Case1の場合(xj=0もxj=1もNG)は、r=r+1、j=0として当該Step1を繰り返す。
【0040】
Case2の場合(xj=0はOK、xj=1はNG)は、xj=0を式(1)の拘束条件に追加して、線形計画問題を解くソルバ(シンプレックス法や内点法等)を呼び出して緩和問題を解く。緩和問題を解いた結果、最適値を与えるx*が整数値をとるならば、xout=x*を整数解として出力部3に出力する。そうでない場合は、j=0のきはj=1とインクリメントして当該Step1を行う。j=1のときはr=r+1、j=0として当該Step1を行う。
【0041】
Case3の場合(xj=0はNG、xj=1はOK)は、xj=1を式(1)の拘束条件に追加して、上記と同様に、シンプレックス法や内点法等の線形計画問題を解くソルバを呼び出して緩和問題を解く。緩和問題を解いた結果、最適値を与えるx*が整数値をとるならば、xout=x*を整数解として出力部3に出力する。そうでない場合は、j=0のきはj=1とインクリメントして当該Step1を行う。j=1のときはr=r+1、j=0として当該Step1を行う。
【0042】
Case4の場合(xj=0もxj=1もOK)は、最適値を与えるx*を整数値をとるように近似したものを暫定解としてメモリに保持する。j=0のきはj=1とインクリメントして当該Step1を行う。j=1のときはr=r+1、j=0として当該Step1を行う。
【0043】
上記のStep1では、xに0及び1を代入して、式(1)の拘束条件として追加した緩和問題についてスライス領域r内に実行可能解があるかどうかをCase1〜Case4についてチェックしている。例えば、図3の領域bではx0=1の条件下で実行可能解が存在する(図4:Step 1のCase 3)が、x*は整数解とならない。整数解は図3の領域cに存在する。このとき、判別アルゴリズム(図4)のStep 1において、実行可能解の有無の判別は線形計画問題に帰着することに注意しておく。なお、図4のStep 1のCase 2およびCase 3でx*が整数値からなるかどうかを判別しているが、この際には厳密に整数かどうかの判別ではなくε/2程度の誤差を許容している。
【0044】
図4のCase 4は、条件x=0もxj=1も注目しているスライス領域と交叉するか接する場合である。この場合、x=0もxj=1も有効な拘束条件とならないため現時点で得られている最適値x*(非整数解)を適切に処理したもの(処理の仕方は特許文献1などを参照)を暫定解としてメモリに記憶することになる。この暫定解は全てのスライス領域まで走査された後でも整数解が得られない場合にその時点でメモリに保持されているものが出力される役割を持つ。
【0045】
以上は、簡単のためにn=2の場合のアルゴリズムを説明した。一般の場合のアルゴリズムは図5および図6に示すように、全体アルゴリズムと判別アルゴリズムからなる。
【0046】
まず、図5の全体アルゴリズムについて説明する。
【0047】
最初に処理部10は、入力部1より長さkの2値系列uを取得し、記憶部2よりn×k行列Aと{0,1}上の確率分布Pを取得する。さらに、領域のインデックスrを0とする。
【0048】
Step1において、線形計画問題処理部12は、入力されたu,A,Pを用いて、式(1)の緩和問題を線形計画法により解く。判別アルゴリズム実行部11は、線形計画問題処理部12で得られた値について、目的関数fの最適値(=f*)を与えるベクトルx*の各座標が全て整数値ならば、xout=xとして出力部3に出力して終了する。それ以外の場合は、
Slice(r)=目的関数の最適値,Slice(r+1)=Slice(r)+ε
として、Step2に移行する。
【0049】
Step2では、判別アルゴリズム実行部11において、
【0050】
【数5】

ならば終了する。この場合は走査中の暫定解を格納するメモリ上にある値が出力される。ここで、fmaxは目的関数fの最大値(もしくはfの初期値)である。そうでないならば、図6に示す判別アルゴリズムを実行する。
【0051】
図6の判別アルゴリズムについて説明する。
【0052】
判別アルゴリズム処理部11は、入力部1より領域のインデックスr、領域の下限のSlice(r)、記憶部2より拘束条件とする座標数λ、領域分割のパラメータεを取得する。更に、初期化処理として、拘束条件のインデックスjを0とし、
【0053】
【数6】

を[0:n-1]よりランダムに選ぶ。
【0054】
Step1において、座標集合I1,I2について、
【0055】
【数7】

を求める。
【0056】
Step2において、I2 =I1ならばStep4に移行し、そうでないならばI2:=I1, i:=0とし、Step3に移行する。
【0057】
Step3において、i ∈ I1ならば、i:= i + 1とし、Step3へ進む。この処理は既定の拘束条件I1に加え、新たな拘束条件に対応するインデックスを探すためのものである。i ∈ I1でないならば、線形計画問題処理部12において、xに0もしくは1を代入して、xの値及びIndexにおいて2以外の値をとる座標の値及びSlice(r)≦f<Slice(r+1)を拘束条件に追加した式(1)の緩和問題における実行可能解の有無を線形計画法で解き、実行可能解が存在する場合はOK、そうでない場合はNGとする。
【0058】
Case1の場合(x=0もx=1もNG)は、j:=j+1としてI1を別の拘束条件の組にインクリメントし、Step1に戻る。もし、
【0059】
【数8】

ならば、r:=r+1として図5の全体アルゴリズムのStep2へ戻る。
【0060】
Case2の場合(x=0はOK、x=1はNG)は、Indexの第i座標を0にセットし、
【0061】
【数9】

とし、i<nならばStep3へ移行し、i=nならばStep2へ戻る。
【0062】
Case3の場合(x=0はNG、x=1はOK)は、Indexの第i座標を1にセットする。
【0063】
【数10】

とし、i<nならばStep3へ移行し、i=nならばStep2へ戻る。
【0064】
Case4の場合(x=0もx=1もOK)は、i:=i+1とし、i<nならばStep3へ移行し、i=nならばStep2へ戻る。各rに対して拘束条件の集合I1が大きくなれば次のStep4において整数解を得やすくなるというのが本アルゴリズムの眼目である.
Step4において、線形計画問題処部12は、Indexにおいて2以外の値をとる座標の値及びSlice(r)≦f<Slice(r+1)を拘束条件に追加した式(1)の緩和問題を線形計画法で解く。その結果、目的関数fの最適値(=f*)を与えるベクトルx*の各座標が全て整数値ならばxout=x*として終了する。それ以外の場合は、適切な方法(例えば、非特許文献1)による出力をxoutの暫定解としてメモリに保持し、r:=r+1として図5の全体アルゴリズムのStep2へ戻る。
【0065】
上記の図5・図6と図4との大きな違いは、座標に関する拘束条件(x=0またはxj=1)を式(1)に追加に追加する前に、新たに前提
【0066】
【数11】

を既定の拘束条件としてアドホックに固定していることである。この前提条件は図6のStep 1において
【0067】
【数12】

の全ての場合を(最悪の場合)尽くすことになる(図7で示すシミュレーションではλ=3である)。
【0068】
また、図6のStep 1で定義する座標集合Indexはその要素の値が2以外の座標についてはIndexにある値が注目しているスライス領域での拘束条件となる。
【0069】
なお、図6のStep 2においてI2=I1となる場合は、その前処理のStep 3においてI1に入っていない全ての座標xjに関してxj=0もxj=1も新たな拘束条件として追加されなかったことを示すことに注意する。このときは、最終的な拘束条件I1(もしくはIndex)を用いてStep 4にて最適化を実行する。
【0070】
また、図6のStep 4で保持される暫定解は、全てのスライス領域まで走査された後でも整数解が得られない場合にその時点で保持されているものが出力される役割を持つ。
【0071】
上記のように、本実施の形態では、式(1)の近似解法を念頭に置いた。情報理論では式(1)は情報源符号化問題において出現する最適化問題である。一方、通信路符号化問題や有歪み情報源符号化問題においても式(1)と等価な問題に帰着できることが知られている(文献:S. Miyake and J. Muramatsu, "Construction of a lossy source code using LDPC matrices," IEICE Trans. Fundam., vol. E-91A, no. 6, pp. 1488-1501, 2008.)。従って、データ圧縮、誤り訂正に関する問題における符号を疎行列を用いて構成する場合、本アルゴリズムを線形計画法と併用することによって効率良い符号化実現が可能となる。
【0072】
なお図7は、式(1)を緩和して線形計画法で解く際に非整数解出力を回避するための既存のアルゴリズム(非特許文献2)と比較したものである。同図中、"Standard","Cutting Plane","Slice"はそれぞれ式(1)を緩和したものを線形計画問題で解いただけのもの、Standardの条件に加え切除平面法を用いたもの、Standardの条件に加え本アルゴリズムを用いたものである。切除平面法を用いたアルゴリズムの結果が復号誤りの観点からは最も良く、本発明によるものがそれに次ぐ。ただし、非特許文献2の切除平面法は、符号を構成する行列から新たな拘束条件を見出し追加するという方式であるため、必ずしも行列の疎行列性は有効に利用されない。従って本方式とは異なり符号長nに関する多項式オーダーの実行時間は保証されていない。
【0073】
なお、上記の実施の形態では、図1の線形符号器の構成に基づいて説明したが、当該装置は、コンピュータとプログラムによっても実現でき、プログラムを記憶媒体に記録することも、ネットワークを通して提供することも可能である。
【0074】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【符号の説明】
【0075】
1 入力部
2 記憶部
3 出力部
10 処理部
11 判別アルゴリズム実行部
12 線形計画問題処理部

【特許請求の範囲】
【請求項1】
対象となるアルファベットを2値{0,1}とし、該{0,1}上の確率分布P、n×k行列A,及びシンドロームu∈{0,1}kが与えられたとき長さnの2値系列x∈{0,1}n
【数13】

(但し、記号argは右辺のmaxを達成する
【数14】

を左辺のxとして出力することを意味する)
として与える線形符号の最適な整数解を求める最尤復号器であって、
前記式(1)の緩和問題を線形計画法によって解く線形計画問題処理手段と、
実行可能領域を前記線形計画問題処理手段により得られた目的関数fの最適値から適切な値(例えばfの初期値)までを一定間隔εで等分した領域(スライス領域)において、分割された各スライス領域について順に超立方体の頂点を含むか否かを判定し、該領域に頂点が含まれる場合に、含まれる頂点の座標xを整数解として出力し、含まれない場合はその時点で得られた非整数解を記憶手段に格納し、すべてのスライス領域を走査した時点でも整数解が得られない場合には、それまでに該記憶手段に格納されている解を出力する判別アルゴリズム実行手段と、
を有することを特徴とするLP復号器。
【請求項2】
対象となるアルファベットを2値{0,1}とし、該{0,1}上の確率分布P、n×k行列A,及びシンドロームu∈{0,1}kが与えられたとき長さnの2値系列x∈{0,1}n
【数15】

(但し、記号argは右辺のmaxを達成する
【数16】

を左辺のxとして出力することを意味する)
として与える線形符号の最適な整数解を求める整数解計算方法であって、
線形計画問題処理手段が、前記式(1)の緩和問題を線形計画法によって解く線形計画問題処理ステップと、
判別アルゴリズム実行手段が、実行可能領域を前記線形計画問題処理ステップで得られた目的関数fの最適値から適切な値(例えばfの初期値)までを一定間隔εで等分した領域(スライス領域)内において、分割された各スライス領域について順に超立方体の頂点を含むか否かを判定し、該領域に頂点が含まれる場合に、含まれる頂点の座標xを整数解として出力し、含まれない場合はその時点で得られた非整数解を記憶手段に格納し、すべてのスライス領域を走査した時点でも整数解が得られない場合には、それまでに該記憶手段に格納されている解を出力する判別アルゴリズム実行ステップと、
を行うことを特徴とする整数解計算方法。
【請求項3】
コンピュータを、
請求項1記載のLP復号器の各手段として機能させるための整数解計算プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−257108(P2012−257108A)
【公開日】平成24年12月27日(2012.12.27)
【国際特許分類】
【出願番号】特願2011−129334(P2011−129334)
【出願日】平成23年6月9日(2011.6.9)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】