 All right. Thanks, guys, for joining us for another talk in the session. So the next speaker is Hakop Avetsian. I hope I pronounced it correctly. He's currently the director of Gate42 Quantum Computing Lab in Armenia and an associate professor at the Armenian University of, American University of Armenia. He holds a PhD in quantum optics from Universidad Federal de Minas Gerais, or UFMG, and from Brazil. It's actually working on creation of free and open source learning resources as part of Gate42, and you can find them on GitHub. Today, he will talk about the role of open source in building quantum computing ecosystems from scratch. Please welcome the speaker. Thank you. Can you hear me? So the goal of my talk will be, for example, if you are not a grant company, Google, IBM, or Regetti, or any, then how can you get involved in quantum computing? And how can you do with quantum computing? It turns out there are lots of open sources. You can start learning. And also, when learning, you can also share what you learn with others. It's a good experience and also teach. So the country I come from is Armenia, which is a developing country. And it's a, so I will talk about the country Armenia, developing country, and how quantum computing entered in Armenia. And then the second part of my talk, I will talk about the projects we are working with in Gate42. I will focus on error mitigation techniques, project we applied for in Unitary Fund. Wielzeng runs Unitary Fund and some other projects, molecular similarity, and quantum chemistry and quantum network, which you can find in our GitHub. So Armenia is a very small country. Population, 3 million. And diaspora is 8 million. And it's been famous in the Soviet Union as a Silicon Valley of Soviet Union. But as you know, Soviet Union was closed. And nobody outside of that didn't know what was happening inside Soviet Union. And mainly it was good at computing and electronics and high quality STEM education. But at this moment, no quantum computing course was taught in Armenia. So the total number of STEM students is a bit above 10,000 from almost 70,000 bachelor students overall. And it's growing, so the interesting STEM is growing. It's a good thing. And then the recent report from World Bank also says some good stuff among other areas. They mentioned also about quantum computing. So Armenia is strong from EDA, which is highly relevant for quantum computing development. It's their words. And national quantum strategy is needed. And in international collaboration, they recommend to build capacity and relevance in NASA technologies while they are still accessible. So some more facts. And then I will go to the project. The tech industry in Armenia is really thriving. And from 2006 to 2018, the GDP was from 1 to 7.4%. And favorable tax regime for tech companies. If you want to build a company in Armenia, that's a good thing. But from a natural sciences viewpoint, it's a really kind of disaster, a very big accelerate gap. Gap of people from natural sciences, once they finish their bachelor's, they go outside. So brain drain happens. So we need to fix this. Just yesterday Forbes said that welcome to the next tech hub. So I hope this becomes true for Armenia. OK, I'll talk about now Gate42 and our project. Gate42 is a nonprofit foundation founded in 2018, which is mainly based on the fundings and donations from tech companies, SmartGate, Rafa Solutions, and HexDivision. And also individual donations. And with Gate42, what to do in this kind of, when you are in this situation, what to do is, whether you want to have more control or collaborate, compete, or execute. So in this sense, we are in this bottom part, bottom left part. And we also have to do some innovations to get, say, new users. Because there is nothing you have to do. You have to do something to engage people, to start doing quantum computing. And not only students, but also you have to persuade a government also to adopt some national strategy. One way is to just popularize it. We had, there are some conferences. We have asked them to add some quantum tracks. We went there and presented our works there. Will Zeng was there also last year. And there are also some interesting things we want to also innovate, get school children also involved. So these bottom two images are creation of children that they kind of mix. We present some situation from quantum. They just do some art and connect Armenian proverbs and then quantum computing together. So it's a kind of small project that we will do next. And we have also 200 and about 40 members in Facebook group and active group. We share some information and discuss. OK, so now I will turn to our projects. So on the research side, we do quantum chemistry, quantum networks, error mitigation from Unitary Fund, and molecular similarity. On the education side, by talking to other universities, they just started, one by one, started teaching quantum computing in their curriculum. So I started teaching quantum computing in the American University of Armenia this January. And we are going to do quantum computing course, hands-on course, coding in Qiskit, PyQuil, and all other frameworks in the Innovation Center for Science and Technology, starting in February. The open source frameworks we use are these ones, PyQuil, Qiskit, Strawberry Fields, Penelain also, D-Wave, and Simulacron. I think there will be a talk about Simulacron here, but we have already heard about the rest here. And there are also some other tools, open source tools, like OpenFirmion, PyGSTI, QInfer, and QTIB, which are great things to do some things in the middle when you are doing some problem. So in our GitHub, you can find the error mitigation techniques implemented in both PyQuil and Qiskit. Also some BB84, which is a cryptography protocol. When you encode your classical messages, you encode with bitstream generated with means of quantum. So it's a quantum chat. Molecular similarity is not in the GitHub yet, but we are working. And it's using OpenFirmion as well as Xanadu's Strawberry Fields Gaussian bosom sampler. Well, there are some tutorials and guides to enter quantum computing field with lots of resources. Please check out. OK, so the error mitigation. I will mainly talk about this error mitigation techniques. And it's about noise. And we already heard from the last talk that when you want to do quantum computation, you have qubits, so let's say ions or superconducting circuits, et cetera. And then you want to apply some gates. But these gates can be noisy. Also the environment can also affect the state of the qubit and the state decoherence. That's the word. And the processes that the quantum state goes through, these channels, the simplest ones are usually called depolarization channel, where just from any parts of the block sphere, that there are some errors with flips. And then your block sphere just shrinks down in this case. And then you lose the information. And the state from pure, it becomes a mixed state. And another is decoherence, which can be defacing and amplitude damping. Well, defacing is when, for example, you create a superposition state, which means you take your qubit from the zero state to the equator. And as the states on the equator of block sphere are the equal superpositions of 0 and 1. So sometimes can the one component just go to 0 because of the interaction with the environment. And then because of this, the block sphere shrinks towards the z-axis. So you lose the superposition. You lose the coherence. And also amplitude damping, which has similar meaning. And the block sphere, well, I guess I confused this one is when the one component of the superposition goes to 0. So these are two channels to describe and model noise. And the noise processes themselves can be of two types, systematic. Like you physically implement it. You physically have a gate to apply to a qubit for it to rotate for some amount. And that would be your gate. For example, there we are supposed to do an x gate. But it over rotates or under rotates. And it's a systematic error. And each time it does the same. So by calibrating your hardware and improving your hardware, you can correct these kind of errors in drives, microwaves or lasers for different kinds of qubits. So these appear as noises when they are implemented with other gates in sequence. And in the end, they appear noise. But in fact, they are systematic things that can be calibrated. And there is also a stochastic noise which comes from the environment of your qubit. For example, in the case of superconductor circuit, there are different processes going on. And for example, flux of magnetic field, photons, phonons enter and go out. And they are uncontrollable. So these are more stochastic. Some parameters fluctuate and you don't have a control. So fluctuations in the amplitude of the control field, let's say it's a laser or a microwave, can cause. So you would have a real sinusoid here. But because of these fluctuations, you lose the thing that your gate was supposed to do. Fidelity is a measure by which you can test whether your gate or the state of the qubit you prepared via gates is the same as mathematically constructed one. So this is some kind of metric. You want to quantify your process or state. So process is also some kind of operation which is supposed to be the ideal gate. But sometimes they are not as ideal as you want. So instead of unitary operation, they become probably not unitary. But these two things, state tomography and process tomography are really resource consuming things. And they grow exponentially with the number of qubits. You want to measure the state or the processes. And there is also another technique called randomized benchmarking, which gives the net error rate. So this one in the bottom, at the bottom, is you have some known well-calibrated gates. And you want to check whether your new gates are performing well or not. So you sequentially increase the depth of these gates and interleave with the unknown gates, the green ones on the slide. And then you run the same circuit without these new gates. And the difference somehow gives you the performance of your new gate you want to evaluate performance. And you keep doing this increasingly deeper and deeper. And you get the net error rate of some toolkit of gates, not just one gate. And these are formulas for computing fidelities. The first one is for state tomography. If you have the state sigma and you mathematically you want to prepare state sigma, but what you do comes out as rho. And this is the way to compute the formula. The second one is for gates to compute the gate fidelity. And the third one is entanglement fidelity of the gate, which is better quantity to measure gate fidelity. But it's difficult to realize experimentally. But experimentally it's easy to do what's called mean gate fidelity. And then there is a connection between this mean fidelity and entanglement fidelity. OK, how to combat this noise when you have noisy hardware and noisy gates and what to do? First thing, you have to understand the noise. For example, this is in the frequency domain when the processes surrounding your qubit are too many and too complicated. But you can get some insight from the frequency domain. There are some low frequency noise. There is this thermal noise, which is proportional to temperature. There is this Nyquist noise, which is quantum noise and which is not symmetric. Because, for example, if you are in the absolute zero temperature, the qubit can give energy to the environment and cannot get back because the environment is in the vacuum state. So on the left of the diagram is when qubit absorbs from the environment. These are the frequencies. And on the right is when the qubit gives to the environment some energy. So ideally, if you are an engineer from the engineering perspective, the qubit frequencies are here, this omega q and minus omega q. You would probably want to put some filters in this region in order to filter outside interactions, interactions coming from outside and leave some window open just for your gate when you apply a gate. Because environment is also some kind of gate applying continuously on your qubit and spoiling everything you want to do. But if you do the filter, you can protect your qubit. So it turns out when you do this filter in a frequency domain, in the time domain, it corresponds to some kind of pulse sequences. And these pulse sequences are usually called spin echo or dynamical decoupling. But there are many papers with different techniques. So with dynamical decoupling, you are doing exactly this. You are creating filter in the time domain. So you are applying some pulses in some defined intervals, which turns out is the filter you want to do. So for example, this one is the Hamiltonian for the system. And the b is the environment, bath and the noise term can be constructed as this. And then u control is the drive field you want to apply. So if you do this zx, zx are the Pauli matrices or Pauli gates. So if you do zx, zx, the qubit will return where it started from. But if you don't do this and just wait, qubit will lose its coherence and go to some other place on the block sphere. If you do this, you are waking up the qubit. Qubit wants to die during the interaction with the environment. But when you interfere and go and apply these pulses, qubit starts to come back where it was, and then you apply a gate. So the third equation here is another technique for gates, not just qubits, if you want to stay in the same state as it was before, like memory. But in this case, you protect also gates with these dd sequences. And here is the diagram, pulse and pulse interval. If you choose correctly, usually when you start to model and do coding with this, it's really hard to find the right parameters to actually make this work. So this is some kind of optimization needed to do. OK, with the memory case, so the idea is to prepare a circuit here made of, so this is the state preparation part. These unitaries are made of Hadamard, T gates, square root x, square root y, and if it's more than one qubit, also controls that operations. So you randomly sample from this set of gates, and then you apply to state 0, and then you prepare your state. And just in one case, you just wait. And in the other case, you apply x, y, x, y, or xz, xz. It really doesn't matter. And in the plots, we see that this technique really works because the fidelity we measure in the end is higher than the other one. There is another technique called Richardson extrapolation to the zero noise limit. This is needed when you apply this when you want to compute or calculate the expected value of some observable you want to measure. In the beginning, you expand it in a power series here, where the coefficients depend on the noise model. And these lambdas are small noise parameters. And you want this ideal case. When there is no noise, your expectation value of the observable is the 0th term of the expansion. Well, this technique says, OK, you run your circuit, and then you run it noisy circuit. And then you run it the same circuit. But this time, all the gates as pulse is stretched. Or just increase the noise parameter. And then you keep doing this, and take this measurement from all these circuits, measurements of these noisy expected values for different noise parameters here. And then there is this set of equations, linear equations you solve for gamma. You find the gamma, and then you construct this. And this should converge to the ideal case. This is the Richardson's approach. The details are in this paper. We reproduced this for memory case. And then you can go to the first, second, and third orders. We see improvements here. And also, we did. So this is fidelity, which is equivalent for measuring Pauli sigma z expected value. But in this case, this is for hydrogen molecule. We did this expected value of the energy of hydrogen molecule. And we see that with no noise, and with noise, and in the middle here is the mitigated case. We see that it works. There is one more, another technique called Q vector, which is quantum variational error corrector. So this circuit is supposed to kind of, when you want to do logical operations, or the error corrected computation, but we know that for now we don't have error correction and fault tolerant computers. But the idea is, first you prepare your state S. So let's say it's 0, 0 plus 1, 1. So this is the state you want to encode in the logical level, not in the physical level. The second part, VP, should do that encoding from the logical state you want, from the physical to already logical level. We know that logical qubits need to be constructed at least with five qubits, one so steens code is five, distance five. And then there is also when there is noise, this third part does the recovery process. And then you reverse everything in order to have reversible computation. And then you feed this into the loop, find the, and specify the cost function as the ability, average cost fidelity, or so-called ability of the encoded recovery circuit W here. And then you do classical optimization until you find the parameters you prepared for this VP, and also WQ, the parameters that are optimized and give the right result. And this VP is just made of Pauli matrices, Pauli gates, and control Z gates. So the paper also did, the paper considered three qubit case and five qubit case. For three qubit case, I guess it's just an error mitigation technique, not logical level encoding, but five could be considered so. So another ongoing work we are doing is a few weeks ago, Q Control's team published their paper in own archive, this one. And it's a really fantastic paper. They are doing control in the lower levels of the stack. And the theory is this, the total Hamiltonian of the field is the control and also some errors that might happen. So this is the Schrodinger equation, let's say, for the unitary evolution operator. And we want to do something that this error term doesn't affect our operations. So it can be expressed this U tilde operator in terms of this total and control dagger, which is the inverse of the unitary. And we want that our target unitary or the target gate be this control, which is governed by this Hamiltonian. And the error gate will be just identity that says does nothing. And this tilde means that it's in the toggling frame, which is U, original U and U control, U control, dagger from both sides. And the procedure is the following. Construct your Hamiltonian, error Hamiltonian, with noise operators you can do, like a cross operators, et cetera. Then you can probably do this, but it's difficult. It's time ordered. And because this is time dependent Hamiltonian, it's really difficult to do. But instead, you could use filter function. There is this formula for the infidelity, so this is something you measure from your quantum computer. And this is expressed with this filter function, and this S is the power spectral density. This can be measured. Filter function can be computed using these noise operators you defined with your Hamiltonian. You take the inverse Fourier transform of this square, and this pi is just a projector into the space you want to do your computation. And once you have all this, you can deduce this SK with other techniques, which is more doable than just go directly here. So this is something that we are going to implement and include and make like one whole package with our project. We started with Unitary Fund. And one last thing is I want to talk about molecular similarity, which is an interesting thing to kind of compare molecules. There are some techniques, approaches. People just build the graphs of the molecules, and then they compare. But here we want to do this comparison with directly Hamiltonians. So the idea is you just with open fermion, open fermion has lots of functionality to work in quantum chemistry. With open fermions, you just construct a Hamiltonian of molecules. Then from this Hamiltonian in the second quantized form, these quantities can be put in a matrix, which turns out to be a symmetric matrix. These ones go to the diagonal, and the other ones to the rest of the matrix. And then we switch to Zenedus Gaussian boson sampler, which accepts symmetric matrices and produces some feature vectors. So of course, doing this on a classical computer by simulating everything is really exponentially hard problem. And there are half-news involved in this computation. But once boson sampler hardware is available, this is a real-world problem. You can compare different. So once you have the feature vectors, then you can do other classification, clustering, or other machine learning tasks to separate molecules with their similarity in Hamiltonians. So Hamiltonian is naturally the signature of the system. So I guess that that's all. And this is our team in Armenia. So four of us are working in these projects. But thank you for your attention. Any questions? Because if you have a question, just raise your hand. I'm going to come with a mic. OK, well, then in that case.