In[]:=
2+2
Out[]=
4
In[]:=
PacletInstall["https://wolfr.am/DevWQCF",ForceVersionInstall->True]
Out[]=
PacletObject
In[]:=
Needs["Wolfram`QuantumFramework`"]
In[]:=
TQDepol[ϵ_]:=QuantumOperator["IX"],QuantumOperator["IY"],QuantumOperator["IZ"],QuantumOperator["XI"],QuantumOperator["XX"],QuantumOperator["XY"],QuantumOperator["XZ"],QuantumOperator["YI"],QuantumOperator["YX"],QuantumOperator["YY"],QuantumOperator["YZ"],QuantumOperator["ZI"],QuantumOperator["ZX"],QuantumOperator["ZY"],QuantumOperator["ZZ"],QuantumOperator["II"];
ϵ
15.0
ϵ
15.0
1-ϵ
ϵ
15.0
In[]:=
TQDepolChannel[ϵ_,i_,j_]:=QuantumChannel[TQDepol[ϵ],{i,j}]
In[]:=
Test=TQDepolChannel,2,3[QuantumState["0000"]]
-3
10
15
16
Out[]=
QuantumState
In[]:=
OddCouplings[N_]:=Sum[QuantumOperator["XX",{i,i+1}],{i,1,N,2}];EvenCouplings[N_]:=Sum[QuantumOperator["XX",{i,i+1}],{i,2,N-1,2}]+QuantumOperator["XX",{N,1}];FieldOps[N_]:=Sum[QuantumOperator["Z",{i}],{i,N}];Ham[N_,α_,β_]:=βOddCouplings[N]+βEvenCouplings[N]+αFieldOps[N];
In[]:=
OddGates[N_,β_]:=Exp[-βOddCouplings[N]];EvenGates[N_,β_]:=Exp[-βEvenCouplings[N]];SQGates[N_,α_]:=Exp[-αFieldOps[N]];FullHamProp[N_,α_,β_,T_]:=Exp[-Ham[N,α,β]T];
Build noisy gate layers
In[]:=
Num=4;ϵ=;β=1.0;α=1.0;
-3
10
In[]:=
OddGatesβ1Num4=OddGates[Num,β];EvenGatesβ1Num4=EvenGates[Num,β];SQGatesα1Num4=SQGates[Num,α];TQDepolChannel12=TQDepolChannel[ϵ,1,2];TQDepolChannel23=TQDepolChannel[ϵ,2,3];TQDepolChannel34=TQDepolChannel[ϵ,3,4];TQDepolChannel14=TQDepolChannel[ϵ,1,4];
In[]:=
OddNoise=TQDepolChannel12@TQDepolChannel34;EvenNoise=TQDepolChannel23@TQDepolChannel14;
First construct the noiseless circuit
First construct the noiseless circuit
In[]:=
EvenGatesβ1Num4@OddGatesβ1Num4@EvenGatesβ1Num4@OddGatesβ1Num4@EvenGatesβ1Num4@OddGatesβ1Num4@EvenGatesβ1Num4@OddGatesβ1Num4
Out[]=
QuantumOperator
That works fine
Now try to include the noise
Now try to include the noise
In[]:=
NoisyEvenGates=EvenNoise@EvenGatesβ1Num4;NoisyOddGates=OddNoise@OddGatesβ1Num4;
In[]:=
NoisyEvenGates@NoisyOddGates
Out[]=
QuantumChannel
In[]:=
NoisyEvenGates=EvenNoise@EvenGatesβ1Num4
Out[]=
QuantumChannel
In[]:=
NoisyOddGates=OddNoise@OddGatesβ1Num4
Out[]=
QuantumChannel
In[]:=
HalfStep=NoisyOddGates@SQGatesα1Num4
Out[]=
QuantumChannel
In[]:=
TQStep=NoisyEvenGates@NoisyOddGates
Out[]=
QuantumChannel
In[]:=
EvenNoise@OddNoise@EvenNoise
Out[]=
$Aborted
In[]:=
TQDepolChannel[ϵ,1,2]@TQDepolChannel[ϵ,1,2]@TQDepolChannel[ϵ,3,4]
Out[]=
QuantumChannel
In[]:=
TQDepolChannel[ϵ,1,2]@TQDepolChannel[ϵ,1,2]@TQDepolChannel[ϵ,3,4]@TQDepolChannel[ϵ,1,2](*@TQDepolChannel[ϵ,1,2]@TQDepolChannel[ϵ,3,4]*)
Out[]=
QuantumChannel
In[]:=
2+2
Out[]=
4
