[PYTHON] Grundlagen der Quanteninformationstheorie: Horebaud-Grenzen

\def\bra#1{\mathinner{\left\langle{#1}\right|}} \def\ket#1{\mathinner{\left|{#1}\right\rangle}} \def\braket#1#2{\mathinner{\left\langle{#1}\middle|#2\right\rangle}}

Einführung

Vorheriger Artikel hat mir geholfen, die Grundlagen der "Quantenentropie" zu verstehen. Also dachte ich, dass ich als nächstes zu angewandten Technologien wie "Quantenkryptographie" übergehen würde, aber es scheint einige grundlegende Dinge zu geben, die zu beachten sind, also werde ich die Grundlagen für eine Weile weiter studieren (das heißt). Es gibt kein Ende, aber es gibt viele interessante Themen, daher kann nicht geholfen werden. Übrigens werde ich dieses Mal das "Holebo-Limit" aufnehmen. Nachdem ich die Bedeutung und Definition in der Quanteninformationskommunikation erklärt habe, möchte ich die "Grenze" mithilfe des Quantenberechnungssimulators qlazy realisieren.

Die folgenden Dokumente wurden als Referenz verwendet.

  1. Neilsen, Chan "Quantencomputer und Quantenkommunikation (3)" Ohm (2005)
  2. Ishizaka, Ogawa, Kawachi, Kimura, Hayashi "Einführung in die Quanteninformationswissenschaft" Kyoritsu Publishing (2012)
  3. Tomita "Quanteninformationstechnik" Morikita Publishing (2017)

Was ist das Horevo-Limit?

Im Gegensatz zu klassischen Bits können Quantenbits den Überlagerungszustand von 0s und 1s ausdrücken. Mit anderen Worten, da es in einem Quantenbit einen unendlichen Freiheitsgrad gibt, scheint es im Prinzip, dass dort unendliche Informationen geladen werden können. Dann habe ich das Gefühl, dass mit diesem Quantenbit eine Kommunikation mit einer enormen Übertragungskapazität realisiert werden kann. Zum Beispiel schreibt Alice irgendwie ein Bit unendlicher Länge in ein einzelnes Quantenbit, das sie hat, und überträgt es an Bob [^ 1]. Bob muss Messungen durchführen, um aussagekräftige Informationen aus den empfangenen Quantenbits zu extrahieren. Unter Berücksichtigung der verallgemeinerten Messung (POVM-Messung) ist es jedoch möglich, eine beliebige Anzahl von Messergebnissen zu erhalten. Wenn Sie ein gutes POVM entwerfen können, um die korrekt vorbereiteten Informationen zu unendlicher Länge abzurufen, sollten Sie in der Lage sein, Ihre Trauminformationskommunikation zu verwirklichen!

[^ 1]: Zum Beispiel unendliche Ziffern im Koeffizienten $ a $ oder im Koeffizienten $ b $ des Quantenzustands $ \ ket {\ psi} = a \ ket {0} + b \ ket {1} $ (tatsächlich) Ist eine sehr lange Ziffer) Bitfolge. Insbesondere wird vor der Übertragung eine Art Rotationstor angewendet (wenn es sich beispielsweise um ein Photon handelt, wird es in einem bestimmten Winkel polarisiert), und eine Bitfolge wird in diesem Winkel geladen.

Ist diese Geschichte wahr?

Die Welt ist nicht so süß. Tatsächlich ist die Menge an Informationen, die abgerufen werden können, begrenzt. Diese Grenze wird als "Holebo-Grenze" bezeichnet. Die traurige Schlussfolgerung ist, dass die Grenze, dh die Obergrenze der Informationsmenge, die aus einem Quantenbit extrahiert werden kann, tatsächlich nur ein Bit ist!

Theoretisch ist es wie folgt geschrieben [^ 2].

[^ 2]: Es wird als "Theorem" auf S.145 von Quantum Information Engineering beschrieben.

"Alices Quelle gibt das Symbol $ \ {X_i \}, \ space i = 1, \ cdots, n $ mit einer Wahrscheinlichkeit von $ p_i $ aus. Es wird durch $ \ rho_X $ gemäß dieser Symbolserie $ X $ dargestellt. Erstellen Sie einen Quantenzustand $ Q $ und senden Sie ihn an Bob. Bob erstellt POVM $ \ {E_Y \} = \ {E_ {1}, \ cdots, E_ {m} \} für den gesendeten Zustand. Führen Sie $ aus, um die klassische Information $ Y $ zu erhalten. Zu diesem Zeitpunkt wird die Obergrenze des Betrags der gegenseitigen Information $ I (X: Y) $ zwischen $ X $ und $ Y $ wie folgt angegeben.

I(X:Y) \leq S(\rho) - \sum_{i=1}^{n} p_i S(\rho_i)  \tag{1}

Jedoch,

\rho = \sum_{i=1}^{n} p_i \rho_i  \tag{2}

Ist. Diese Obergrenze wird als "Horebaud-Grenze" bezeichnet. ""

Beweisen wir es [^ 3].

[^ 3]: Der Beweis von Quantum Information Engineering war sehr leicht zu verstehen, deshalb habe ich ihn nur nachverfolgt. ..

[Beweis]

Sei System A das System von Alice, die Informationsquelle, System Q das System von Quantenzuständen, die gemäß der erzeugten Information hergestellt wurden, und System B das System des Messinstruments, das den von Bob empfangenen Quantenzustand misst. Aus der Quelle von System A kommt die klassische Information $ \ {X_i \} $ mit der Wahrscheinlichkeit $ \ {p_i \} $ vor, aber $ X_i $ ist der Eigenzustand der Beobachterblase $ X $ $ \ ket Da es als eindeutiger Wert für {i} ^ A $ angesehen werden kann, ist das Auftreten von $ X_i $ dasselbe wie das Auftreten des Quantenzustands $ \ ket {i} ^ {A} \ bra {i} ^ {A} $. Das ist. Als nächstes werden wir den Quantenzustand $ \ rho_i $ gemäß dem erzeugten $ X_i $ zuweisen. Anfangs kam nichts zu Bob. Wenn Sie also $ \ ket {0} ^ {B} \ bra {0} ^ {B} $ sagen, ist das gesamte System $ \ rho ^ {total} $ Der Ausgangszustand von

\rho^{total} = \sum_{i} p_i \ket{i}^{A} \bra{i}^{A} \otimes \rho_i \otimes \ket{0}^{B} \bra{0}^{B}  \tag{3}

Kann geschrieben werden. Hier misst Bob. Wenn die dieser Messung entsprechende CPTP-Karte $ \ Gamma $ ist und der Kraus-Operator, der das Messergebnis $ y $ erhält, $ M_y $ ist,

\Gamma(\rho^{total}) = \sum_{i} p_i \ket{i}^{A} \bra{i}^{A} \otimes (\sum_{y} M_y \rho_i M_y^{\dagger} \otimes \ket{y}^{B} \bra{y}^{B})  \tag{4}

Es wird sein.

Die Menge an gegenseitigen Informationen $ I (A: Q) $ zwischen System A und System Q im Anfangszustand ändert sich nicht, selbst wenn System B, das sich in einem von ihnen unabhängigen Produktzustand befindet, hinzugefügt wird.

I(A:Q) = I(A:Q,B)  \tag{5}

ist. Unter der Annahme, dass die Systeme nach der Messung $ A ^ {\ prime}, Q ^ {\ prime} bzw. B ^ {\ prime} $ sind, nimmt die Menge der gegenseitigen Information in Abhängigkeit vom Quantenkanal ab [^ 4].

[^ 4]: Siehe "Eigenschaften (13)" in Vorheriger Artikel.

I(A:Q,B) \geq I(A^{\prime}:Q^{\prime},B^{\prime})  \tag{6}

Ist festgelegt. Wenn das System $ Q ^ {\ prime} $ nach der Messung verworfen wird, verringert sich die Menge an gegenseitiger Information [^ 5].

[^ 5]: Siehe "Eigenschaften (12)" in Vorheriger Artikel.

I(A^{\prime}:Q^{\prime},B^{\prime}) \geq I(A^{\prime}:B^{\prime})  \tag{7}

Es wird sein. Wenn die Gleichungen (5), (6) und (7) kombiniert werden,

I(A^{\prime}:B^{\prime}) \leq I(A:Q)  \tag{8}

Ist festgelegt. Hier ist $ I (A ^ {\ prime}: B ^ {\ prime}) $ eine klassische Menge gegenseitiger Informationen, sodass Sie sie als $ I (X: Y) $ schreiben können. Dann ist Gleichung (8)

I(X:Y) \leq I(A:Q)  \tag{9}

Es wird sein. $ I (A: Q) $ ist

\begin{align}
I(A:Q) &= S(A) + S(Q) - S(A,Q) \\
&= H(A) + S(\rho) - S(A,Q)  \tag{10}
\end{align}

Es kann wie folgt geschrieben werden: Wenn Sie es also in Gleichung (9) einsetzen,

I(X:Y) \leq H(A) + S(\rho) - S(A,Q)  \tag{11}

Es wird sein.

Betrachten Sie nun $ S (A, Q) $. Segmentieren Sie nun $ \ rho_i $ und

\rho_i = \sum_{j} q_{i}^{j} \ket{e_{i}^{j}} \bra{e_{i}^{j}}  \tag{12}

Angenommen, Sie können so etwas tun Dann ist $ S (A, Q) $

\begin{align}
S(A,Q) &= S(Tr_{B}(\rho^{total})) \\
&= -Tr((\sum_{i,j} p_i \ket{i}^{A} \bra{i}^{A} \otimes q_{i}^{j} \ket{e_{i}^{j}} \bra{e_{i}^{j}}) \log(\sum_{i,j} p_i \ket{i}^{A} \bra{i}^{A} \otimes q_{i}^{j} \ket{e_{i}^{j}} \bra{e_{i}^{j}})) \\
&= - \sum_{i,j} p_{i} q_{i}^{j} \log(p_{i} q_{i}^{j}) \\
&= - \sum_{i} p_{i} \log p_{i} - \sum_{i} p_i \sum_{j} q_{i}^{j} \log q_{i}^{j} \\
&= H(A) + \sum_{i} p_{i} S(\rho_{i})  \tag{13}
\end{align}

Kann berechnet werden als. Einsetzen in Gleichung (11)

I(X:Y) \leq S(\rho) - \sum_{i} p_{i} S(\rho_{i})  \tag{14}

Ist festgelegt. (Ende der Zertifizierung)

Hier ist die Obergrenze der rechten Seite von Gleichung (1),

\chi \equiv S(\rho) - \sum_{i} p_i S(\rho_i)  \tag{15}

Dies wird als "Loch-Vo-Menge" bezeichnet. Diese Menge an Horebo-Informationen wird unter Verwendung der quantenrelativen Entropie berechnet.

\chi = \sum_{i} p_i S(\rho_i||\rho)  \tag{16}

Es kann auch ausgedrückt werden als. das ist,

\begin{align}
\sum_{i} p_{i} S(\rho_i || \rho) &= \sum_{i} p_{i} Tr(\rho_{i} \log \rho_{i} - \rho_{i} \log \rho) \\
&= \sum_{i} p_{i} Tr(\rho_{i} \log \rho_{i}) - \sum_{i} p_{i} Tr(\rho_{i} \log \rho) \\
&= - \sum_{i} p_{i} S(\rho_{i}) - Tr(\sum_{i} p_{i} \rho_{i} \log \rho) \\
&= S(\rho) - \sum_{i} p_{i} S(\rho_{i})  \tag{17}
\end{align}

Daran können Sie erkennen.

Nun wird die Obergrenze der Informationsmenge, die Bob empfangen kann (dh die Informationsmenge, die auf diesem Kommunikationskanal übertragen werden kann), wie in Gleichung (15) angegeben, aber lassen Sie uns diese Grenze mit einem etwas konkreteren Beispiel untersuchen. Ich werde.

Jetzt hat Alice M Arten von Quantenzuständen $ \ {\ ket {\ phi_1}, \ ket {\ phi_2}, \ cdots, \ ket {\ phi_M} \} $ für ein Quantenbit. Es wird davon ausgegangen, dass Sie ein Gerät haben, das eines der oben genannten Geräte einstellen und auf Bob abfeuern kann. Alice verwendet dieses Gerät, um eine Nachricht mit M verschiedenen Alphabeten an Bob zu senden. Wie viele Informationen kann Bob von Alice erhalten? Sie müssen nur die soeben erläuterte "Holebo-Informationsmenge" berechnen. Ich werde es versuchen.

\rho_i = \ket{\phi_i} \bra{\phi_i}  \tag{18}

Dann der von Alice als Ganzes erzeugte Quantenzustand

\rho = \sum_{i}^{M} p_i \ket{\phi_i} \bra{\phi_i}  \tag{19}

Es wird sein. Verwenden Sie diese Option, um die Menge der Horebo-Informationen zu berechnen. Da sich Gleichung (18) in einem reinen Zustand befindet, ist der zweite Term (auf der rechten Seite) von Gleichung (15) Null. Deshalb,

\chi = S(\rho)  \tag{20}

Es wird sein. Hier ist $ \ rho $ ein Dichteoperator für ein Quantenbit (Hilbert-Raumdimension ist 2), sodass die Entropie $ \ log 2 = 1 $ nicht überschreitet. Die wichtige Nachricht, die Alice versucht hat, an Bob zu senden, kann von Bob nur als eine Reihe von Binärzahlen (= 1 Bit) erkannt werden. Dies liegt nicht an Bobs mangelnder Anstrengung, sondern an den Horevo-Grenzen. Bob hat eine Wand, die nicht überwunden werden kann, egal wie sehr er es versucht (egal wie er die POVM-Messung entwickelt) [^ 6].

[^ 6]: Man kann eher sagen, dass Alice diese Mauer baut, weil nur ein Quantenbit vorbereitet werden kann, aber es ist ein Geheimnis (lacht).

Aber was ist, wenn sich Alices Gerät so entwickelt hat, dass zwei Quantenbits gleichzeitig gezündet werden können? In diesem Fall ist der in Gleichung (20) gezeigte Wert von $ S (\ rho) $ 2, sodass Bob 2 Informationsbits empfangen kann, wenn er hart arbeitet. Außerdem kann Bob N Bits empfangen, wenn er gleichzeitig N Quantenbits abfeuern kann.

Daher wird hier die Realität der "Trauminformationskommunikation", eine Bitfolge unendlicher Länge in einem Quantenbit aufzuladen und zu übertragen, absolut unmöglich dargestellt [^ 7]. (Es tut mir Leid!).

[^ 7]: [Übung 12.3] von Neilsen Chan ist ein Klassiker von n Bits oder mehr mit n q Bits. Besprechen Sie anhand der Grenzen von Holevo, dass Informationen nicht übertragen werden können. “Ich denke, dies ist die Antwort.

Spezifisches Beispiel eines Quantenkommunikationskanals

Na dann würde ich diese "Grenze" gerne mit einem Simulator realisieren, aber als ich auf ein konkretes Beispiel hoffte, nur Neilsen Chan In "Übungsübung 12.4" von .jp / book / 9784274200090 /) gab es ein gutes Thema, daher werde ich es mit dem dort beschriebenen Quantenkommunikationskanal versuchen. So sieht es aus.

Der Quantenzustand eines Quantenbits, den Alice, die Absenderin, vorbereiten kann, ist

\begin{align}
\ket{X_1} &= \ket{0} \\
\ket{X_2} &= \frac{1}{3} (\ket{0} + \sqrt{2} \ket{1}) \\
\ket{X_3} &= \frac{1}{3} (\ket{0} + \sqrt{2} e^{2\pi i/3} \ket{1}) \\
\ket{X_4} &= \frac{1}{3} (\ket{0} + \sqrt{2} e^{4\pi i/3} \ket{1}) \tag{21}
\end{align}

Es gibt vier Typen: Wählen Sie einen entsprechend der Zeichenfolge (klassische Informationen) aus, die Sie senden möchten, und feuern Sie ihn nacheinander auf Bob ab. Bob, der es empfängt, ist ein Quantenkommunikationskanal, der klassische Informationen durch Messen von POVM erhält. Um die Art dieser Quantenkommunikation zu bewerten, werden wir Alice bitten, diese vier zufällig auszuwählen und zu starten. Aus der vorherigen Diskussion ist es möglich, bis zu 1 Bit zu übertragen, da es nur ein Quantenbit gibt. Mit anderen Worten, wenn Sie die Menge an Holebaud-Informationen vom Dichteoperator des Zustands berechnen, den Alice auslöst, ist (sollte) 1. In der Realität beträgt die abrufbare Information (= gegenseitige Informationsmenge) jedoch nicht 1 Bit, wenn Bob kein geeignetes POVM entwirft. Neilsen Chan gibt an, dass "POVMs bekannt sind, die 0,415 Bit erreichen". Was ist der POVM zu dieser Zeit? Das ist die Frage dieser Übung.

Nehmen wir also Bobs Standpunkt und entwerfen vorerst ein POVM mit dem Ziel "0,415".

Das erste, was mir in den Sinn kommt, ist eine Projektionsoperation unter Verwendung der vier Grundlagen von Gleichung (21). Mit anderen Worten

【POVM #1】

\begin{align}
E_1 &= \frac{1}{2} \ket{X_1} \bra{X_1} \\
E_2 &= \frac{1}{2} \ket{X_2} \bra{X_2} \\
E_3 &= \frac{1}{2} \ket{X_3} \bra{X_3} \\
E_4 &= \frac{1}{2} \ket{X_4} \bra{X_4} \tag{22}
\end{align}

ist. Hier haben wir den Koeffizienten $ 1/2 $ für alle POVMs multipliziert, so dass $ \ sum_ {i} E_i = I $.

Das nächste Muster, das mir in den Sinn kommt, ist die Basis, die orthogonal zu jeder Basis in Gleichung (21) ist.

\begin{align}
\ket{\tilde{X}_1} &= \ket{1} \\
\ket{\tilde{X}_2} &= \sqrt{\frac{1}{3}} (\sqrt{2} \ket{0} - \ket{1}) \\
\ket{\tilde{X}_3} &= \sqrt{\frac{1}{3}} (\sqrt{2} \ket{0} - e^{2 \pi i/3} \ket{1}) \\
\ket{\tilde{X}_4} &= \sqrt{\frac{1}{3}} (\sqrt{2} \ket{0} - e^{4 \pi i/3} \ket{1}) \tag{23}
\end{align}

Es ist eine Projektionsoperation mit. Mit anderen Worten

【POVM #2】

\begin{align}
\tilde{E}_1 &= \frac{1}{2} \ket{\tilde{X}_1} \bra{\tilde{X}_1} \\
\tilde{E}_2 &= \frac{1}{2} \ket{\tilde{X}_2} \bra{\tilde{X}_2} \\
\tilde{E}_3 &= \frac{1}{2} \ket{\tilde{X}_3} \bra{\tilde{X}_3} \\
\tilde{E}_4 &= \frac{1}{2} \ket{\tilde{X}_4} \bra{\tilde{X}_4} \tag{24}
\end{align}

ist. Lassen Sie uns mit diesen beiden Mustern simulieren und überprüfen, was mit der Menge an Horebo-Informationen und der Menge an gegenseitigen Informationen passiert.

Fragen Sie beim Simulator nach

Der gesamte Python-Code ist unten.

import random
import cmath
import numpy as np
import pandas as pd
from qlazypy import QState, DensOp

MIN_DOUBLE = 0.000001

def classical_joint_entropy(A,B):

    code_num_A = max(A) + 1
    code_num_B = max(B) + 1

    prob = np.zeros((code_num_A,code_num_B))
    for i in range(len(A)):
        prob[A[i]][B[i]] += 1
    prob = prob / sum(map(sum, prob))

    ent = 0.0
    for i in range(code_num_A):
        for j in range(code_num_B):
            if abs(prob[i][j]) < MIN_DOUBLE:
                ent -= 0.0
            else:
                ent -= prob[i][j] * np.log2(prob[i][j])

    return ent
    
def classical_entropy(A):

    code_num = max(A) + 1

    prob = np.zeros(code_num)
    for a in A:
        prob[a] += 1.0
    prob = prob / sum(prob)

    ent = 0.0
    for p in prob:
        if abs(p) < MIN_DOUBLE:
            ent -= 0.0
        else:
            ent -= p * np.log2(p)

    return ent

def classical_mutual_information(A,B):

    ent_A = classical_entropy(A)
    ent_B = classical_entropy(B)
    ent_AB = classical_joint_entropy(A,B)

    return ent_A + ent_B - ent_AB
    
def holevo_quantity(X,de):

    samp_num = len(X)
    code_num = len(de)

    prob = np.zeros(code_num)
    for x in X:
        prob[x] += 1.0
    prob = prob / sum(prob)
    
    de_total = DensOp.mix(densop=de, prob=prob)

    holevo = de_total.entropy()
    for i in range(code_num):
        holevo -= prob[i]*de[i].entropy()

    de_total.free()
    
    return holevo

def transmit(X,de,povm):

    samp_num = len(X)
    dim_X = len(de)
    dim_Y = len(povm)

    Y = np.array([0]*samp_num)
    
    prob_list = [None]*len(X)
    for i in range(samp_num):
        prob_list[i] = de[X[i]].probability(povm=povm)
        r = random.random()
        p = 0.0
        mes = dim_Y - 1
        for k in range(dim_Y-1):
            p += prob_list[i][k]
            if r < p:
                mes = k
                break
        Y[i] = mes
        
    return Y

def make_densop(basis):

    qs = [QState(vector=b) for b in basis]
    de = [DensOp(qstate=[q], prob=[1.0]) for q in qs]

    for n in range(len(qs)):
        qs[n].free()
    
    return de
    
def make_povm(vec):

    return [np.outer(v,v.conjugate())/2.0 for v in vec]

def random_sample(code_num,samp_num):

    return np.array([random.randint(0,code_num-1) for _ in range(samp_num)])

if __name__ == '__main__':

    SQRT1      = cmath.sqrt(1/3)
    SQRT2      = cmath.sqrt(2/3)
    EXT2       = cmath.exp(2*cmath.pi*1j/3)
    EXT4       = cmath.exp(4*cmath.pi*1j/3)

    basis      = [np.array([1.0, 0.0]),
                  np.array([SQRT1, SQRT2]),
                  np.array([SQRT1, SQRT2*EXT2]),
                  np.array([SQRT1, SQRT2*EXT4])]
    
    basis_orth = [np.array([0.0, 1.0]),
                  np.array([SQRT2, -SQRT1]),
                  np.array([SQRT2, -SQRT1*EXT2]),
                  np.array([SQRT2, -SQRT1*EXT4])]

    de = make_densop(basis)

    code_num = 4
    samp_num = 100
    trial = 100

    povm_name  = ['#1','#2']
    povm_basis = [basis, basis_orth]
    
    for b in povm_basis:

        povm = make_povm(b)
    
        mutual = []
        holevo = []
        for _ in range(trial):
    
            X = random_sample(code_num,samp_num)
            Y = transmit(X, de, povm)

            mutual.append(classical_mutual_information(X,Y))
            holevo.append(holevo_quantity(X,de))

        df = pd.DataFrame({'holevo quantity':holevo,'mutual information':mutual})
        holevo_mean = df['holevo quantity'].mean()
        holevo_std  = df['holevo quantity'].std()
        mutual_mean = df['mutual information'].mean()
        mutual_std  = df['mutual information'].std()

        print("== povm: {:} ==".format(povm_name.pop(0)))
        print("[holevo quantity]")
        print("- mean = {0:.4f} (std = {1:.4f})".format(holevo_mean, holevo_std))
        print("[mutual information]")
        print("- mean = {0:.4f} (std = {1:.4f})".format(mutual_mean, mutual_std))
        print()
        
    for n in range(len(de)):
        de[n].free()

Ich werde kurz erklären, was Sie tun. Schauen Sie sich den Hauptverarbeitungsabschnitt an. Zunächst setzen die ersten vier Zeilen einfach die numerischen Konstanten auf die Variablen SQRT1, SQRT2, EXT2 und EXT4, um spätere Berechnungen zu vereinfachen.

Die Variablen base und variable base_orth sind die Basis für die Erstellung von POVM # 1 und # 2. Mit anderen Worten wird hier die Basis der Gleichungen (21) und (23) definiert.

Da die Basis auch ein Quantenzustand zum Zuweisen des Codes ist, den Sie senden möchten,

de = make_densop(basis)

Also mache ich eine Liste von Dichteoperatoren, die dem Quantenzustand entsprechen.

code_num = 4
samp_num = 100
trial = 100

code_num ist die Anzahl der Codetypen (diesmal 4), samp_num ist der zufällig generierte Code = die Anzahl der Daten und trial ist die Anzahl der Versuche, um den Durchschnitt oder die Standardabweichung zu erhalten.

povm_name  = ['#1','#2']
povm_basis = [basis, basis_orth]

for b in povm_basis:

    povm = make_povm(b)
    ...

Drehen Sie dann die äußere for-Schleife (POVM Nr. 1, Nr. 2). make_povm ist eine Funktion, die ein POVM aus der Basis erstellt.

Die innere for-Schleife ist

mutual = []
holevo = []
for _ in range(trial):

    X = random_sample(code_num,samp_num)
    Y = transmit(X, de, povm)

    mutual.append(classical_mutual_information(X,Y))
    holevo.append(holevo_quantity(X,de))
    ...

Es ist also ein wiederholter Versuch (diesmal 100 Mal).

Die Funktion random_sample erstellt eine zufällige Code- (Daten-) Sequenz und die Funktion Transmit simuliert die Übertragung. Die POVM-Messung wird innerhalb der Funktion simuliert und die Datenreihen werden extrahiert und ausgegeben. Die Funktion classic_mutual_information berechnet die Menge der gegenseitigen Informationen aus den Eingabe- und Ausgabedaten. Die Funktion holevo_quantity berechnet die Menge der Holevo-Informationen aus den Eingabedaten und der Liste der Dichteoperatoren. Dies gibt Ihnen die Menge an gegenseitigen Informationen und die Menge an Horebo-Informationen für die Anzahl der Versuche. Danach benutze ich Pandas, um den Durchschnittswert und die Standardabweichung von jedem zu berechnen. Das Programm ist fast vorbei.

Das Ausführungsergebnis lautet nun wie folgt.

== povm: #1 ==
[holevo quantity]
- mean = 0.9921 (std = 0.0066)
[mutual information]
- mean = 0.2714 (std = 0.0748)

== povm: #2 ==
[holevo quantity]
- mean = 0.9923 (std = 0.0057)
[mutual information]
- mean = 0.4547 (std = 0.0244)

Dabei ist Mittelwert der Mittelwert und Standard die Standardabweichung.

Schauen wir uns zunächst die Loch-Vo-Menge an. Die Menge an Horebo-Informationen ist definiert als die Wahrscheinlichkeitsverteilung der Informationsquelle, und der für die Codierung verwendete Quantenzustandssatz wird bestimmt, sodass er unabhängig von der Auswahl von POVM der gleiche Wert ist. In dem Programm ist es implementiert, um zufällig mit der Zufallsfunktion zu generieren, und der Wert ist leicht von 1 entfernt, da die Wahrscheinlichkeitsverteilung nicht genau gerade ist. Der Grenzwert 1 wurde jedoch bestätigt.

Was ist andererseits mit gegenseitiger Information? Da dies eine Annahme ist, dass eine praktisch zufällig erzeugte Informationsquelle mit Quantenbits codiert ist und Bob POVM-Messungen durchführt, variieren die Ergebnisse stark in Abhängigkeit von POVM. Wie Sie sehen können, ist "POVM # 2" ein besseres (näher an 1) Ergebnis. Es liegt nahe am Zielwert "0,415" von Neilsen Chan. Oder besser gesagt, es geht darüber hinaus .... Dies scheint ein Fehler zu sein, da die Zufallsfunktion verwendet wird und die Anzahl der Stichproben und die Anzahl der Versuche nicht so groß eingestellt sind. Auf jeden Fall denke ich, dass dieses "POVM # 2" die richtige Antwort ist.

Eine Frage hier. Es gibt einen Unterschied zwischen parallel und orthogonal, aber warum ist der Unterschied herausgekommen, obwohl wir ein ähnliches POVM vorbereitet haben? Für "POVM # 1" zum Beispiel, wenn Bobs Messergebnis "1" war, ist es am wahrscheinlichsten, dass Alices Vorzeichen "1" war, aber es gibt eine bestimmte Wahrscheinlichkeit, dass "2" oder "3" oder Es schließt auch den Fall ein, in dem es "4" war. Wenn im Fall von "POVM # 2" Bobs Messergebnis "1" ist, verschwindet die Möglichkeit, dass Alices Vorzeichen "1" war. Es sollte entweder "2", "3" oder "4" sein. Mit anderen Worten, "POVM # 2" hat weniger Unsicherheit über die Informationen, die Bob erhält. Ich denke, das ist der Unterschied zwischen den beiden [^ 8].

[^ 8]: In Vorheriger Artikel, in dem die verallgemeinerte Messung erläutert wurde, Quantum Information Engineering Ich simulierte die POVM-Messung gemäß dem in / books / book / 3109) veröffentlichten Beispiel, aber zu dieser Zeit, als POVM unter Verwendung von Basen konstruiert wurde, die orthogonal zu den zu übertragenden Quantenbits waren, wurde "eindeutige Unterscheidung (eindeutig)" durchgeführt. Es stellte sich heraus, dass "staatliche Diskriminierung") realisiert werden kann. Ich denke, das hängt damit zusammen.

Der Wert von ungefähr "0,415" scheint jedoch im Vergleich zum Grenzwert von 1 zu klein zu sein. In der Übung in Nielsen Chan wird gefragt: "Können wir eine Messung erstellen, die die Grenzen von Holevo noch besser erreicht?" Lassen Sie es mich als zukünftige Aufgabe verlassen.

Bestätigt durch theoretische Berechnung

Nun, ich kann die Geschichte damit beenden, aber ich habe theoretisch noch nicht bewiesen, ob "POVM # 2" wirklich die Menge an gegenseitigen Informationen "0,415" liefert. Es wurde nur experimentell durch Simulation als so befunden. Darüber hinaus handelt es sich um einen erheblichen Fehler (er ist bereits in der zweiten Ziffer nach dem Dezimalpunkt deaktiviert). Daher möchte ich durch theoretische Berechnung (oder eher manuelle Berechnung) bestätigen, dass die Menge der gegenseitigen Information dieser Wert ist.

Die Definition der gegenseitigen Informationsmenge ist

\begin{align}
I(X:Y) &= H(X) + H(Y) - H(X,Y) \\
&= \sum_{i,j} p(X_i, Y_j) \log \frac{p(X_i,Y_j)}{p(X_i) p(Y_j)} \tag{25}
\end{align}

war. Wenn Sie also $ p (X_i, Y_j) $ kennen, kann $ p (X_i), p (Y_j) $ mit jeder Wahrscheinlichkeitsvariablen marginalisiert werden, sodass Sie die Menge der gegenseitigen Informationen berechnen können. .. $ p (X_i, Y_j) $ ist eine gleichzeitige Wahrscheinlichkeitsverteilung, bei der $ X_i $ aus der Quelle generiert und $ Y_j $ auf der Empfangsseite decodiert wird. Derzeit haben $ i $ und $ j $ jeweils 4 Muster von 1 bis 4, sodass Sie nur insgesamt 16 Werte kennen müssen.

Lass es uns versuchen. Da es schwierig ist, $ p (X_i, Y_j) $ einzeln zu schreiben, setzen Sie es als $ p_ {ij} \ equiv p (X_i, Y_j) $.

\begin{align}
p_{ij} &= Tr(\tilde{E}_{j} \rho_{i}) \\
&= Tr(\frac{1}{2} \ket{\tilde{X}_j} \braket{\tilde{X}_j}{X_i} \bra{X_i}) \\
&= \frac{1}{2} \braket{\tilde{X}_j}{X_i} Tr(\ket{\tilde{X}_j}  \bra{X_i}) \tag{26}
\end{align}

Ersetzen Sie diese für eine stetige Berechnung durch die Gleichungen (21) und (23). Eine Normalisierung als gleichzeitige Wahrscheinlichkeitsverteilung sollte damit nicht möglich sein. Normalisieren Sie also am Ende so, dass die Summe 1 ist.

Erstens, wenn $ i = 1 $.

p_{11} = 0, \space p_{12} = \frac{1}{3}, \space p_{13} = \frac{1}{3}, \space p_{14} = \frac{1}{3}  \tag{27}

Wenn $ i = 2 $ ist,

p_{21} = \frac{1}{3}, \space p_{22} = 0, \space p_{23} = \frac{2}{9} (1-\cos \frac{2\pi}{3}), \space p_{24} = \frac{2}{9} (1-\cos \frac{4\pi}{3}) \tag{28}

Wenn $ i = 3 $,

p_{31} = \frac{1}{3}, \space p_{32} = \frac{2}{9} (1-\cos \frac{2\pi}{3}), \space p_{33} = 0, \space p_{34} = \frac{2}{9} (1-\cos \frac{2\pi}{3}) \tag{29}

Wenn $ i = 4 $,

p_{41} = \frac{1}{3}, \space p_{42} = \frac{2}{9} (1-\cos \frac{4\pi}{3}), \space p_{43} = \frac{2}{9} (1-\cos \frac{2\pi}{3}), \space p_{44} = 0 \tag{30}

Kann berechnet werden als. Hier,

\begin{align}
\frac{2}{9} (1-\cos \frac{2\pi}{3}) &= \frac{2}{9} (1 - (-\frac{1}{2})) = \frac{1}{3} \\
\frac{2}{9} (1-\cos \frac{4\pi}{3}) &= \frac{2}{9} (1 - (-\frac{1}{2})) = \frac{1}{3} \tag{31}
\end{align}

Also ist $ p_ {ij} $

\begin{pmatrix}
p_{11} & p_{12} & p_{13} & p_{14} \\
p_{21} & p_{22} & p_{23} & p_{24} \\
p_{31} & p_{32} & p_{33} & p_{34} \\
p_{41} & p_{42} & p_{43} & p_{44}
\end{pmatrix}
= \frac{1}{12}
\begin{pmatrix}
0 & 1 & 1 & 1 \\
1 & 0 & 1 & 1 \\
1 & 1 & 0 & 1 \\
1 & 1 & 1 & 0
\end{pmatrix}  \tag{32}

Es ist also eine sehr einfache Form (hier haben wir die Summe der gleichzeitigen Wahrscheinlichkeitsverteilungen auf 1 normalisiert).

\begin{align}
& p(X_i,Y_j) = p_{ij} \\
\\
& p(X_i) = \sum_{j} p_{ij} \\
& p(Y_j) = \sum_{i} p_{ij} \tag{33}
\end{align}

Als Ersatz für Gleichung (25)

I(X:Y) = 12 \times \frac{1}{12} \log \frac{\frac{1}{12}}{\frac{1}{4} \times \frac{1}{4}} = \log \frac{4}{3} = 2 - \log 3 = 0.415037\cdots  \tag{34}

Es wurde bestätigt, dass die Menge an gegenseitiger Information "0,415" betragen würde. Glückwunsch Glückwunsch.

abschließend

Dank der Grundkenntnisse der Quantenentropie habe ich das Gefühl, dass ich die Geschichte der Quanteninformationskommunikation recht leicht verstehen kann (obwohl dies möglicherweise nur ein Berührungsteil ist). Ich gehe in diesem Zustand nach Zunsun!

Das nächste Thema ist jedoch wie gewohnt unentschieden.

das ist alles

Recommended Posts

Grundlagen der Quanteninformationstheorie: Horebaud-Grenzen
Grundlagen der Quanteninformationstheorie: Entropie (2)
Grundlagen der Quanteninformationstheorie: Datenkomprimierung (1)
Grundlagen der Quanteninformationstheorie: Spurenentfernung
Grundlagen der Quanteninformationstheorie: Quantenzustands-Tomographie
Grundlagen der Quanteninformationstheorie: Datenkomprimierung (2)
Grundlagen der Quanteninformationstheorie: Topologische Oberflächencodes
Grundlagen der Quanteninformationstheorie: Fehlertolerante Quantenberechnung
Grundlagen der Quanteninformationstheorie: Quantenfehlerkorrektur (Shor Code)
Grundlagen der Quanteninformationstheorie: Quantenfehlerkorrektur (Stabilisatorcode: 4)
Grundlagen der Quanteninformationstheorie: Quantenfehlerkorrektur (klassischer linearer Code)
Grundlagen der Quanteninformationstheorie: Universelle Quantenberechnung durch Oberflächencode (1)
Grundlagen der Quanteninformationstheorie: Logische Operation durch Oberflächencode (Brading)
Lesen Sie "Grundlagen des Quantenglühens", Tag 5
Lesen Sie "Grundlagen des Quantenglühens", Tag 6
Grundlagen der Tableau-Grundlagen (Visualisierung mit geografischen Informationen)
Python-Grundlagen ①
Grundlagen der Python-Scraping-Grundlagen
# 4 [Python] Grundlagen der Funktionen
Grundlagen von Netzwerkprogrammen?
Die Gründung der Perceptron-Stiftung
Grundlagen der Regressionsanalyse
Grundlagen von Python: Ausgabe