数学消去コード(消去コード)で
背景
フォールトトレラントストレージの問題への政策効果的なソリューションの3つのコピーを持つデータストレージ、Hadoopの分野ではなく、政策の3つのディスクコピーの利用効率は、時宜を得た、唯一の33%は比較的低く、コスト圧力のコピーが高すぎます消去符号の概念の登場。N + M冗長性レベル、これらのデータブロックは、(初期データのN個存在すると仮定して)Mの公差のためにハードドライブ番目のN + Mでドライブ障害が記憶されています。これ以上M以下のハードディスクに障害が発生していない場合、唯一通常は任意に選択されたn個のデータ・ブロックは、すべての生データについて計算することができます。低ストレージコストで有利な消去符号は、現在、マイクロソフト、グーグル、フェイスブック、アマゾン、淘宝網(TFS)は、自社製品に消去コードを採用しています。
上記背景に基づいて、消失訂正の資料のコードは、数学的知識マトリックス用いる数学、分解及び分析に使用される行列のLU分解を復号化、符号化、および対応するコード例は、テキストの末尾に与えられています。
消去符号の説明に動作します:
RS(リード - Solomom)は、比較的一般的なコードの消失訂正され、その2つのパラメータは、mおよびnパリティ・ブロックの数と、元のデータブロックの数を表します。
消失訂正符号化するプロセス。
チェックブロックの図、Cの符号化過程では、Dは、元のデータ・ブロックを表します。
一部のデータは、図に失われた場合。
消失訂正復号処理:
ステップ1:欠落しているデータ・ブロックと行に対応するデータブロックを削除するためにマトリックスをコードします。すなわち、B、N×N行列となる 組み合わせ(N + M)列の行列正方形、C、及びDの寸法となるn行、上記の仮定の過程で、我々は、関係に対応する新たな行列と行列演算を取得し、前記データブロックの一部が欠落した後に、元のデータブロックDは、目標と要件によって表されます。
ステップ2:逆行列のB」を求めています。
ステップ3:逆行列をBを乗じての解を得られるように、」式の両側に同時に使用することができます。
そのBを確保するために行列チェックサム・データ・ブロックVandermonde行列を使用して、黄色の部分のために、計算の従来のプロセスでは、可逆である「Bが確認する必要があり、逆行列が存在しています」。
の逆行列、Iは単位行列を表すの逆関数[B「]代表B」:
逆[B '] * B' * D = 逆[B '] * S I * D = インバース[B '] * S D =インバース[B '] * S
Pythonのアナログ消失訂正データ復旧プロセス
#消去コード NPとしてnumpyのインポート #バックアップの数 backup_up = 2 #オリジナルデータ データ= np.array([1、2、3、4、5]) #原理に従ってデータ消去コードを生成 vander_data = np.concatenate((np.identity(LEN(データ))、np.vander(データ、3)(.transpose):: - 1])、軸= 0) storage_data = vander_data.dot(データ) 印刷( 'データを生成する'、storage_data) #シミュレーションデータの損失 loss_data = np.concatenate((storage_data [0:3]、storage_data [5:7])、軸= 0)、印刷( 'データの後に失われた'、loss_data) #データを復元 recover_data = np.linalg.inv(np.concatenate((vander_data [0:3]、vander_data [5:7])、軸= 0))。ドット(loss_data) 印刷( 'データ復旧'、recover_data) #出力 生成データ#[1. 2. 3. 4. 5. 15 55 225] データ#[1 15 55]の損失後 #データ復旧[1. 2. 3. 4. 5.]
直交分解
また、QR分解として知られている直交分解行列、直交行列Q及び製品の形で上三角行列に行列です。任意の実数行列A、に分けることができます。Qは直交行列単位であり、すなわち、Rは上三角行列です。この分解は、QR分解と呼ばれています。QR分解アルゴリズムはまた、いくつかの一般的なグラム・シュミット、世帯主ギブンスアルゴリズムが含まれています。QR分解は、直交行列及び三角行列乗算に行列です。最初の演算処理(MATLABコード、および演算処理の一例)の分解を記録するにはここをクリックしてください。
シュミット直交化
定理レッツA nは×N行列が正則であり、その後、AのQR分解と直交行列Qと上三角行列正則Rが存在し、全体ISの対角要素(型)のいずれかの差の絶対値を除去することは、1に等しいです外側の対角行列因子は、分解は一意です。
定理を2レットAはM×N個の実数行列、及びn個の列ベクトルが線形独立である、分解A = Qをm QR、×nの実行列、及び満足QHTQ = E、Rがn×nの正則一つのコーナー素子(ダイ)の差の絶対値の上三角行列の分解と除去マトリックス上、マトリックスシュミット直交化分解法にQR分解を使用するカラムでなければならない場合、完全な外側の対角行列因子1にのみ等しいです。フルランク行列。
アルゴリズムステップ
- 書き込み列ベクトルの行列。
- 直交列ベクトルに従ってシュミット直交化。
- 派生行列Q 'R';
- R金型の各列に」Rによって各行の「Q、Rの列ベクトルユニットを得ました」
MathWorks社のMATLABコード
関数[X、Q、R] = QRSchmidt(A、B)
グラム・シュミット直交化QR分解法の二乗%、および方程式AX = B [M、N] =サイズ(A)を解くために使用されます。
もしメートル〜= N
%ない正方形の場合は、QR分解は、要件を満たしていません
DISP(「QR分解の要件を満たしていません」);
終わり
Q =ゼロ(M、N)。
X =ゼロ(N、1)。
R =ゼロ(N)。
K = 1の場合:NRの(K、K)=ノルム(A(:、K))。
R(K、K)== 0の場合
ブレーク;
終わり
Q(:、K)= A(:、K)/ R(K、K);
N:J = K + 1のために
R(K、J)= Q(:、k)は '* A(:、j)は、
(:、J)= A(:、J)-R(K、J)* Q(:、k)は、
終わり
関数nargin == 2の場合
B = Q '* B;
X(N)= B(N)/ R(N、N)。
iがN-1 =ために:-1:1
X(I)=(B(I)-sum(R(I、I + 1:N)* X(I + 1:N) '))/ R(I、I)。
終わり
他
X = [];
終わり
終わり
細切り計算
独自の方法をMathWorks社のMATLAB
3×3マトリックスキューブサイズを生成する%
A =マジック(3)
[Q、R] = QR(A)