TrainingMatrix.app

Training matrix was built from a customer demand/requirement, essentially it is a web app providing a way for a companies to track which equipment employees are authorized to work with, or operate. It falls in the employee training management software space, but not necessarily a tool for conducting the training or hosting it, like a traditional Learning Management System.

The reason the name of “Training matrix” came about is that managers or supervisors can get a concise overview of which employees are trained to work in various work area, in a matrix like view.

Acquiring your first 1,000 users

My biggest takeaways from this research:

  • Just seven strategies account for every consumer apps’ early growth.
  • Most startups found their early users from just a single strategy. A few like Product Hunt and Pinterest found success using a handful. No one found success from more than three.
  • The most popular strategies involve going to your user directly — online, offline, and through friends. Doing things that don’t scale.
  • To execute on any of these strategies, it’s important to first narrowly define your target user. Andy Johns recently shared some great advice about this.
  • The tactics that you use to get your first 1,000 users are very different from your next 10,000. A topic for a different post.
  • read more

    IBM Quantum Challenge

    This was a fun 4 day program with the IBM Quantum Challenge. I probably spent +- 30 hours working through the 4 challenges, and during this time I recognized I really needed to learn more of the fundamental math aspects which Physics is built upon. In the end I completed all the work, the final challenge was a monster for someone with little theoretical knowledge in the field but after a few hints and tips from the team, I had a score which was acceptable.

    This was the final requirements:

    What circuit would make such a complicated unitary?

    Is there some symmetry, or is it random? We just updated Qiskit with the introduction of a quantum circuit library (https://github.com/Qiskit/qiskit-terra/tree/master/qiskit/circuit/library). This library gives users access to a rich set of well-studied circuit families, instances of which can be used as benchmarks (quantum volume), as building blocks in building more complex circuits (adders), or as tools to explore quantum computational advantage over classical computation (instantaneous quantum polynomial complexity circuits).from qiskit import QuantumCircuit from may4_challenge.ex4 import check_circuit, submit_circuit

    Using only single qubit rotations and CNOT gates, find a quantum circuit that approximates that unitary  by a unitary  up to an error , such that  !

    Note that the norm we are using here is the spectral norm, .

    This can be seen as the largest scaling factor that the matrix  has on any initial (normalized) state . One can show that this norm corresponds to the largest singular value of , i.e., the square root of the largest eigenvalue of the matrix , where  denotes the conjugate transpose of .

    When you submit a circuit, we remove the global phase of the corresponding unitary  before comparing it with  using the spectral norm. For example, if you submit a circuit that generates , we remove the global phase  from  before computing the norm, and you will have a successful submission. As a result, you do not have to worry about matching the desired unitary, , up to a global phase.

    As the single-qubit gates have a much higher fidelity than the two-qubit gates, we will look at the number of CNOT-gates, , and the number of u3-gates, , to determine the cost of your decomposition as

    Try to optimize the cost of your decomposition.

    Note that you will need to ensure that your circuit is composed only of  and  gates. The exercise is considered correctly solved if your cost is smaller than 1600.

    import qiskit.extensions.quantum_initializer.isometry as isometry from qiskit.quantum_info.operators import Operator import qiskit.compiler.transpile as transpile from scipy.linalg import hadamard from math import pi qc = QuantumCircuit(4) #apply hadamard using u3 gates qc.u3(pi/2,0,pi,[0]) qc.u3(pi/2,0,pi,[1]) qc.u3(pi/2,0,pi,[2]) qc.u3(pi/2,0,pi,[3]) #k=HUH Y=np.diag(k*np.exp(-2j*pi/3)) qc.diagonal(list(Y),[0,1,2,3]) qc.u3(pi/2,0,pi,[0]) qc.u3(pi/2,0,pi,[1]) qc.u3(pi/2,0,pi,[2]) qc.u3(pi/2,0,pi,[3]) qc3=transpile(qc, basis_gates=['u3', 'cx'],optimization_level=3) check_circuit(qc3) Circuit stats: ||U-V||_2 = 2.5785120546697708e-15 (U is the reference unitary, V is yours, and the global phase has been removed from both of them). Cost is 51 Great! Your circuit meets all the constrains. Your score is 51. The lower, the better! Feel free to submit your answer and remember you can re-submit a new circuit at any time! qc3.draw(output='mpl') read more

    #IBM Quantum Challenge

    I just got finished submitting my last optimization circuit for the 2020 IBM Quantum Challenge. It was a hectic 4 days of spare time working through their challenges but very rewarding. It’s amazing what a small concept like a “Challenge” can do for your motivation to understand more about a technology or field, but to me the size of Quantum Computing community seems to have, all of a sudden, grown larger.

    There have been over 5 billion circuits run against IBM Q, 1,745 participants, over 1000 people in a Slack channel who were sharing, bantering and encouraging their peers and a considerable amount of learning about circuit optimization. If I had only brushed up on my linear algebra I think I would have done a little better 😉 read more