Cirq

{{Short description|Open-source framework for quantum computers}}

{{Infobox programming language

| name = Cirq

| logo =

| programming language = Python

| developers = [https://github.com/quantumlib quantumlib]

| latest release version =

| latest release date =

| license = [https://github.com/quantumlib/Cirq/blob/master/LICENSE Apache license]

| website = [https://github.com/quantumlib/Cirq GitHub]

}}

Cirq is an open-source framework for noisy intermediate scale quantum (NISQ) computers.{{Cite journal |arxiv = 1812.09167 |last1 = Fingerhuth|first1 = Mark |last2= Babej |first2 = Tomáš |last3 = Wittek |first3 = Peter |title = Open source software in quantum computing|journal = PLOS ONE|year = 2018|volume = 13|issue = 12|pages = e0208561|doi = 10.1371/journal.pone.0208561|pmid = 30571700|pmc = 6301779|bibcode = 2018PLoSO..1308561F|doi-access = free}}

History

Cirq was developed by the Google AI Quantum Team, and the public alpha was announced at the International Workshop on Quantum Software and Quantum Machine Learning on July 18, 2018. A demo by QC Ware showed an implementation of QAOA solving an example of the maximum cut problem being solved on a Cirq simulator.{{cite web |title=public_demos/max_cut_cirq.py at master · qcware/public_demos · GitHub |website=GitHub |url=https://github.com/qcware/public_demos/blob/master/max_cut/max_cut_cirq.py |archive-url=https://web.archive.org/web/20180720153354/https://github.com/qcware/public_demos/blob/master/max_cut/max_cut_cirq.py |url-status=dead |archive-date=20 July 2018 |accessdate=29 October 2019 |date=20 July 2018}}

Usage

Quantum programs in Cirq are represented by "Circuit" which is made up of a series of "Moments" representing slices of quantum gates that should be applied at the same time.{{cite web |url=https://quantumai.google/cirq/start/basics#circuits_and_moments |title=Cirq Circuits |website=Google Quantum AI website |publisher=Google AI Quantum Team |access-date=2022-07-06 |quote=}} The programs can be executed on local simulators{{cite web |url=https://quantumai.google/cirq/simulate |title=Cirq Simulation |website=Google Quantum AI website |access-date=2022-07-06}} or against hardware supplied by IonQ, Pasqal,{{cite web|url=https://pasqal.io/|title=Pasqal}} Rigetti, and Alpine Quantum Technologies{{cite web|url=https://www.aqt.eu/|title=AQT}}

The following example shows how to create and measure a Bell state in Cirq.

import cirq

  1. Pick qubits

qubit0 = cirq.GridQubit(0, 0)

qubit1 = cirq.GridQubit(0, 1)

  1. Create a circuit

circuit = cirq.Circuit(

cirq.H(qubit0),

cirq.CNOT(qubit0, qubit1),

cirq.measure(qubit0, key="m0"),

cirq.measure(qubit1, key="m1")

)

Printing the circuit displays its diagram

print(circuit)

  1. prints
  2. (0, 0): ───H───@───M('m0')───
  3. (0, 1): ───────X───M('m1')───

Simulating the circuit repeatedly shows that the measurements of the qubits are correlated.

simulator = cirq.Simulator()

result = simulator.run(circuit, repetitions=5)

print(result)

  1. prints
  2. m0=11010
  3. m1=11010

Projects

= OpenFermion =

OpenFermion is a library that compiles quantum simulation algorithms to Cirq.{{cite web |url=https://ai.googleblog.com/2018/07/announcing-cirq-open-source-framework.html |title=Announcing Cirq: An Open Source Framework for NISQ Algorithms |last1=Ho | first1=Alan|last2=Bacon | first2=Dave |date=2018-07-18 |website=Google AI Blog |publisher=Google AI Quantum Team |access-date=2019-03-06 |quote=}}

= TensorFlow Quantum =

TensorFlow Quantum is an extension of TensorFlow that allows TensorFlow to be used to explore hybrid classical-quantum machine learning algorithms.{{cite web|url=https://www.tensorflow.org/quantum|title=TensorFlow Quantum|website=TensorFlow|access-date=2022-07-06}}

= ReCirq =

ReCirq is a repository of research projects done using Cirq.{{cite web|url=https://github.com/quantumlib/ReCirq|title=ReCirq|website=Google Quantum Github|access-date=2022-07-06}}

= Qsim Cirq =

Qsim is a high performance wave function simulator that leverages gate fusing, AVS/FMA instructions, and OpenMP to achieve fast simulation rates. Qsimcirq allows one to use qsim from within Cirq.{{cite web|url=https://pypi.org/project/qsimcirq/|title=qsimcirq|access-date=2022-07-06}}

References