Przedstawienie protokołu teleportacji
Numeryczna konstrukcja kanału teleportujacego
Wierność teleportacji
Wizualizacja wyników
Zadania
Teleportacja to proces przesyłania stanu kwantowego pomiędzy dwoma osobami: Alicją (A) i Bobem (B). W rozważanym tutaj najprostszym przypadku ograniczamy się do teleportacji qubitów.
Protokół teleportacji ma następujący przebieg:
Alicja pragnie przesłać Bobowi qubit w stanie $\rho_A$. Wykorzysta do tego celu współdzieloną z Bobem parę qubitów w stanie splątanym $\chi_{AB}$. Zakadamy, że 'połowa' tej pary jest w posiadaniu Alicji, zaś druga 'połowa' jest w ręku Boba. Alicja wykonuje pomiar Bella na parze qubitów, które są w jej posiadaniu. W skłąd tej pary wchodzi qubit w stanie $\rho_A$ oraz 'połowa' pary $\chi_{AB}$. Pomiar ten wpływa na qubit, będący w posiadaniu Boba, który jest teraz w stanie $\rho_B$. Pomiar Bella wykonany przez Alicję, to jeden z czterech możliwych pomiarów rzutowych na jeden z czterech maksymalnie splątanych stanów pary qubitów. Oznacza to, że do odtworzenia przez Boba wyjściowego stanu $\rho_A$ konieczna jest klasyczny kanał komunikacyjny łączący Alicje i Boba, który pozwala na przesłania informacji o tym, który ze stanów Bella użyła Alicja. Dopiero ta informacja pozwala Bobowi na wykonanie trasformacji $\rho_B\rightarrow \rho_A$ i odtworzenie qubitu Alicji.
Protokół teleportacji może zostać sformalizowany w postaci kanału kwantowego:
$\rho_B = \Lambda(\chi_{AB} ) \rho_A$
gdzie $\rho_A$ to macierz gęstosci (stan) qubitu Alicji, który ma być przesłany Bobowi. Zauważmy, że w ogólnym przypadku stan $\chi{_AB}$ może być stanem mieszanym. Wówczas
$ \Lambda(\chi{_{AB}})\rho = \sum_{i=0}^3 \mbox{Tr}[B^i \chi{_{AB}}]\sigma_i\rho\sigma_i, $
gdzie $B^i$ są stanami Bella:
$ B^i = \left(\sigma_0\otimes\sigma_i\right)B^0\left(\sigma_0\otimes\sigma_i\right), i=1,2,3, $
zaś
$ \sigma_0 = {\mathbb{I}},\,\, \sigma_{1,2,3}=\sigma_{x,y,z}\nonumber $
podczas gdy
$ B^0 = \frac{1}{2}\left( |01\rangle+|10\rangle\right)\left( \langle 01|+\langle 10|\right). $
Naszym celem jest nuemryczna analiza procesu telportacji. W pierwszym kroku
from qutip import *
from pylab import *
%pylab inline
Populating the interactive namespace from numpy and matplotlib
WARNING: pylab import has clobbered these variables: ['power', 'linalg', 'draw_if_interactive', 'random', 'save', 'load', 'info', 'fft'] `%pylab --no-import-all` prevents importing * from pylab and numpy
Funkcja mno(,) zdefinowana poniżej służy uproszczeniu pracy
def mno(a,b):
return b*(a*b)
Podobnie jak skróty, których odtąd używamy:
up=basis(2,0)
dn=basis(2,1)
s0=qeye(2)
sx=sigmax()
sy=sigmay()
sz=sigmaz()
Można zobaczyć wyniki dla jednego z wektorów bazowych i macierzy Pauliego:
up
sx
Teraz konstruujemy bazę przestrzeni macierzy o wymiarze 2. W szczególności, dowolny stan qubitu wyraża się poprzez kombinację liniową powyższch macierzy o współczynnikach gwarantujących nieujemną określoność macierzy i jej normalizację.
rpp=up*up.dag()
rpm=up*dn.dag()
rmp=rpm.trans()
rmm=dn*dn.dag()
Zapis macierzy
$\rho=\sum_i a_i \xi_i $
za pomocą rozwinięcia w bazie macierzowej $\xi_i$ istotnie ułatwia nasze zadanie, gdyż dla dowolnego odwzorwania liniowego
$\Lambda(\rho)=\sum_i^{N^2} a_i \Lambda(\xi_i)$, gdzie $N$ to wymiar przestrzeni stanów (u nas $N=2$)
czyli wystarczy znać działanie odwzorowania $\Lambda$ na macierzach bazy.
UWAGA macierze bazowe $\xi_i$ nie muszą być stanami. W szczególności
rpp=$|1\rangle\langle 1|$ jest stanem, podczas gdy
rpp=$|1\rangle\langle 0|$ nie jest.
rpp
rmp
Postępując zgodnie z opisanym scenariuszem określmy działanie opisanego powyźej protokołu teleportacji na macierzach bazowych. Rozpocznijmy od zdefiniowania bazy przestrzeni $H\otimes H$ złożonej z maksymalnie slpątanych stanów Bella:
BB0=(tensor(rpp,rmm)+tensor(rpm,rmp)+tensor(rmp,rpm)+tensor(rmm,rpp))/2.0
BB1=(tensor(rpp,mno(rmm,sx))+tensor(rpm,mno(rmp,sx))+tensor(rmp,mno(rpm,sx))+tensor(rmm,mno(rpp,sx)))/2.0
BB2=(tensor(rpp,mno(rmm,sy))+tensor(rpm,mno(rmp,sy))+tensor(rmp,mno(rpm,sy))+tensor(rmm,mno(rpp,sy)))/2.0
BB3=(tensor(rpp,mno(rmm,sz))+tensor(rpm,mno(rmp,sz))+tensor(rmp,mno(rpm,sz))+tensor(rmm,mno(rpp,sz)))/2.0
Będą nam one niezbędne, dla zapisanie protokołu teleportacji:
def telep(Q,R):
p0=(BB0*R).tr()
p1=(BB1*R).tr()
p2=(BB2*R).tr()
p3=(BB3*R).tr()
Out=p0*mno(Q,s0)+p1*mno(Q,sx)+p2*mno(Q,sy)+p3*mno(Q,sz)
return Out
W powyższej funkcji macierz Q jest obeiektem, który ma zostać teleportowany. Stan R jest stanem współdzielonym przez Alicję i Boba, innymi słowy R=$\chi_{AB}$
Zanim skonstruujemy kanał teleportacyjny określmy postać stanu $\chi_{AB}$.
Rozważmy najprostszy możliwy wybór: depolaryzowany stan Bella. Kanał depolaryzacyjny definiuje się następujco:
$\rho\longrightarrow (1-p)+\frac{p}{N}\mathcal{I}$
gdzie $p\in[0,1]$, $N=dim H$ oraz $\mathcal(I)$ to macierz jedności.
Depolaryzacja powoduje 'domieszanie' do stanu $\rho$, z prawdopodobieństwem $p$ stanu maksymalnie mieszanego $\frac{1}{N}\mathcal{I}$. Czyli:
p=0.0
R=(1.0-p)*BB0+p/4.0*tensor(qeye(2),qeye(2))
Uwaga Zauważmy, że ze względu na strukturę iloczynu tensorowego przestrzeni dwu qubitów, konieczne jest zastosownia iloczynu tensorowego $\frac{1}{2}\mathcal{I}\otimes \frac{1}{2}\mathcal{I}$ zamiast po prostu $\frac{p}{4}\mathcal{I}$. Jest to ważna cecha składni pakietu QuTip.
Teraz nadszedł czas na określenie protokołu teleportacji:
tpp=telep(rpp,R)
tpm=telep(rpm,R)
tmp=telep(rmp,R)
tmm=telep(rmm,R)
Mając określone postaci teleportowanych macierzy bazowych można zastosować protokół do dowolnego stanu. Rozpoczniemy od stanu czystego parametryzowanego kątami Blocha:
$|\Psi\rangle=\cos(\theta/2)|1\rangle+\exp(-i\phi)|0\rangle$
czyli na wejściu protokołu mamy In=$\rho_A=|\Psi\rangle\langle\Psi|$
theta=pi/2.0
phi=0.0
In=(cos(theta/2)**2)*rpp+1/2.0*sin(theta)*exp(1j*phi)*rpm+(sin(theta/2)**2)*rmm+1/2.0*sin(theta)*exp(-1j*phi)*rmp
Wyjście protokołu, czyli stan Out=$\rho_B$ otrzymujemy przez zastąpienie macierzy bazowych poprzez ich 'teleportowane' odpowiedniki
Out=(cos(theta/2)**2)*tpp+1/2.0*sin(theta)*exp(1j*phi)*tpm+(sin(theta/2)**2)*tmm+1/2.0*sin(theta)*exp(-1j*phi)*tmp
Uzyskany wynik można przetestować, dla przypadku gdy R=$B^i$, czyli gdy $\chi_{AB}$ jest jesnym ze stanów Bella w poniższy sposób. Wynikiem mnożeń macierzowych ma być macierz zerowa.
Out-mno(In,s0) # R=B0
#Out-mno(In,sx) # R=B1
#Out-mno(In,sy) # R=B2
#Out-mno(In,sz) # R=B3
Miarą skuteczności teleoprtacji jest wieroność (___fidelity___) defionowana następująco:
$F=\mbox{Tr}(\rho_A\rho_B)$
przy założeniu, że $\rho_A\rho_A=\rho_A$, czyli, że qubit Alicji jest w stanie czystym. $F$ jest miarą 'przekrywania się' stanów wejściwego In oraz wyjściowego Out kanału kwantowego.
F=(In*Out).tr()
F
1.0
Teraz wykreślimy zależność $F$ od $p$ dla ustalonych wartości $\theta$ oraz $\phi$:
plist=linspace(0.0,1.0,20.0)
flist=zeros(len(plist))
theta=pi/4.0
phi=0.0
for i1 in xrange(len(plist)):
p=plist[i1]
R=(1.0-p)*BB0+p/4.0*tensor(qeye(2),qeye(2))
tpp=telep(rpp,R)
tpm=telep(rpm,R)
tmp=telep(rmp,R)
tmm=telep(rmm,R)
In=(cos(theta/2)**2)*rpp+1/2.0*sin(theta)*exp(1j*phi)*rpm+(sin(theta/2)**2)*rmm+1/2.0*sin(theta)*exp(-1j*phi)*rmp
Out=(cos(theta/2)**2)*tpp+1/2.0*sin(theta)*exp(1j*phi)*tpm+(sin(theta/2)**2)*tmm+1/2.0*sin(theta)*exp(-1j*phi)*tmp
flist[i1]=(In*Out).tr()
plot(plist,flist,'-.r',label='$\theta=\pi/4$', linewidth=4)
xlabel('p',fontsize=20)
ylabel('F',fontsize=20)
show()
Zapisać protokół teleportacji w przypadku, gdy $\chi_{AB}=B^i, i=0,1,2,3$
Wykreślić $F$ w przypadku, gdy Alicja i Bob wykorzystują w protokole zdepolaryzowany stan $B^1$
Wykreślić entropię von Neumanna $S(\rho_B)$ w funkcji $p$