消去符号紹介

数学消去コード(消去コード)で

背景

  フォールトトレラントストレージの問題への政策効果的なソリューションの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にのみ等しいです。フルランク行列。

アルゴリズムステップ

  1. 書き込み列ベクトルの行列。
  2. 直交列ベクトルに従ってシュミット直交化。
  3. 派生行列Q 'R';
  4. 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)

参考文献:

おすすめ

転載: www.cnblogs.com/Robin5/p/11710005.html