Research log
11/23
Develop the program to get the NAC for a given point in SU(N). However, it's something wrong since the output has an imaginary number that contradicts the definition of NAC. I think the function defined in the "scipy.linalg" might be the reason.
11/24
Debug. * in python doesn't mean the dot product in the matrix. Also, the function in "scipy.linalg" is right. Yet, it implies that I have no idea what's going on.
11/25
Finish the program for getting the NAC for a given point in SU(N). I have fixed the problem. The reason is as follows: I misunderstand where the tangent vector lives and so the way of using proposition 1 is wrong. Now, I might want a program to help me transfer a circuit into a point in SU(N) Tomorrow, I will try to prepare the example in papers.
11/26
Break
11/27
Prepare the circuit in "Quantum Simulation of Preferred Tautomeric State Prediction" and simplify the code.
11/28
Today, I find some limits to my origin code. My computer cannot conduct the n=8 case which means that I cannot get the NAU I want. Yet, I still get some interesting results about the Toffoli gate and control gates
1. Roughly, mapping them into their su-like matrix by global phase seems like no effect on its NAU absolute value.
2. In the Toffoli gate, I also try to replace a 1 by -1 and its NAU:
IIY:0.393
IZY:-0.393
ZIY:-0.393
ZZY:0.393
with total abs: 2.0 ( 1.571 )
At the same time, su-toffoli has NAU:
IIX:-0.393
IZI:-0.393
IZX:0.393
ZII:-0.393
ZIX:0.393
ZZI:0.393
ZZX:-0.393
with total abs: 3.0 ( 2.74925 )
3. In Quantum Computation and Quantum Information, Nielsen, Exercise 4.27 circuit has NAU:
IIY:0.7755
IXY:-0.402
IYI:-0.4305
IYX:0.632
IYZ:0.1435
IZY:-0.2585
XIY:-0.0865
XXY:-0.287
XYI:0.0285
XYX:-0.23
XYZ:0.2585
XZY:-0.1435
YII:-0.345
YIX:0.3735
YIZ:0.115
YXI:-0.5455
YXX:0.517
YXZ:0.2585
YZI:0.115
YZX:-0.1435
YZZ:0.115
ZIY:-0.2585
ZXY:-0.115
ZYI:0.1435
ZYX:-0.115
ZYZ:0.1435
ZZY:-0.2585
with total abs: 8.0 ( 7.238000000000002 )
11/29
By rewriting the code to generate the general Pauli matrix, it can run an 8-qubits case now.
12/3
To implement the geodesic, I create the INAC to transfer the coordinate in $R^n$ to $su(2^n)$. Also, there is a problem that occurs when I try to use the 3-qubits geodesic equation. The problem is the order of generalized Pauli that the NAC program generates is not 1-body, 2-body, and so on. It means that it will cost a lot to give a penalty for it.
12/4
Finish the iterator that can generate the generalized Pauli with the order I want. Also, It improves the NAC program efficiency and reduces memory occupation.
12/5
It's something strange when I try to implement the 3-qubits geodesic formula. Luckily, I come up with a solution to using a finite vector tracking the geodesic. Also, "**fundamental region**" might be good thinking to limit conjugate points.
12/7
Today, I am trying to implement the path-tracking algorithm. But I'm not sure why I can not do it with scipy.
12/8
Just like yesterday, it's still not working properly. Also, another python scipy doesn't work, either.
12/9
If we partition a line into several segments and choose the right endpoints in those segments, we will get the step's target to choose the suitable vector from the generating vectors. I will try this idea tomorrow.
12/10
It works! But not stable.
12/11
Back to exercise 4.27, I use it to demonstrate if we combine the geodesic and distance defined by Finsler metric. However, it's not working.
12/12
Analyze the relationship between geodesics and penalties and fixing the problem that I faced yesterday. Since the Path tracking algorithm may not be reliable, I can only get close to the target I desire to synthesize.
12/13-16
Verify how they reduced the qubit usage. The reason is given as follow: 1.Pauli exclusion limits the probability. 2. Use singlet to reduce further
12/17-26
Survey and Read
12/28
The path tracking method will all be a failure, since the binary operators are totally different. In $R^2$ is addition and in $SU (N)$ is the multiplication. So, it's necessary to focus on matrix multiplication in $R^2$ problem.