Enhanced chemistry library with 1QBit contribution and new numerics library
We continue to enhance the Microsoft Quantum Development Kit with new capabilities for real-world quantum computer programming. This month’s Quantum Development Kit update includes a new contribution to our chemistry library from our partner 1QBit. In today’s 0.7 update, we also introduce a new numerics library, Q# language features, and further expansion of our Quantum Katas with community contributions.
Previously, we related the tremendous potential of quantum computing to solve today’s most challenging problems by simulating molecular processes. The library also allows interoperating with classical chemistry simulation and modeling tools to gain new insights how to build solutions on quantum computers. With this month’s update, the Microsoft Quantum Chemistry Library is enhanced by supporting unitary coupled cluster methods (UCC) and variational quantum eigensolvers (VQE), the latter being an open source contribution from our Microsoft Quantum Network partner, 1QBit. The new features UCC and VQE are additions to the expanding repertoire of techniques that are available to study quantum chemistry problems with the Quantum Development Kit. UCC is a method for preparing molecular ground-states for quantum simulation, VQE is a method for evaluating molecular energies that allows to trade circuit depth against number of experiments and that allows to leverage classical optimization techniques for initial state preparation.
With this new capability, we extended the Broombridge schema that defines the molecular structure for quantum simulation. For more information on exciting new opportunities with chemical simulation and the Quantum Development Kit, check out 1QBit’s announcement of their OpenQEMIST platform, and check out this video from last month’s Microsoft Build conference featuring 1QBit’s founder and CEO, Andrew Fursman, describing the tremendous potential they see with quantum simulation and the Quantum Development Kit.
The new numerics library offers a valuable resource for quantum program developers. Many quantum algorithms rely on oracles that evaluate mathematical functions on a superposition of inputs. These functions must be written in terms of sequences of operations on qubits that can be executed on a quantum computer. The new numerics library provides this support with basic integer arithmetic consisting of integer adders and comparators and high-level integer functionality built on top of the basic functionality. The library includes signed and unsigned integer support (multiply, square, division with remainder, inversion, measurement) and fixed-point arithmetic functionality (initialization, addition, multiplication, reciprocal, polynomial evaluation and measurement) with one or two quantum numbers as input. Learn more about how to use the new numerics library and try out the new samples.
Also new this month are new Q# language capabilities. We continue to evolve the Q# language to bring modern programming efficiencies to quantum computing. We added named items for user-defined types, so that programmers can assign meaningful names to their data structures. Now programmers can use copy-and-update expressions and apply-and-reassign statements for named items in user defined types. We also added while loops in functions. For a full list of all the new Q# language features this month, see the release notes. Also, please check out our Qsharp dev blog for more information on these and other recently added Q# features.
The Quantum Katas keep growing! The Quantum Katas are our self-paced project for developers to learn how to program a quantum computer with Q#. This month, we see a new set of three community-contributed katas introducing the nonlocal/entanglement games. In a nonlocal game, several cooperating players play a game against a referee answering the referee’s questions. The players are free to share information (and qubits!) before the game starts, but cannot communicate afterwards. The players can use quantum entanglement to increase their chance of winning beyond what would be possible with a purely classical strategy. Check out the new katas here.