5

Recently, I came across ZX calculus. It is an interesting method to describe quantum circuits. However, it seems to me, too complicated for day-to-day use in circuit design (something like to program an application in assembler instead of in higher level language) because it uses only few quantum gates ($Rx$, $Ry$, $H$ and $CNOT$).

My question is for what purposes the ZX calculus was developed?

met927
  • 3,251
  • 1
  • 10
  • 22
Martin Vesely
  • 15,244
  • 4
  • 32
  • 75

3 Answers3

7

The ZX calculus was not designed to be a programming language, or a language in which to specify things at a high level. It is a language for reasoning about things on a relatively low level, albeit without digging into the actual physics.

What it was designed for is hinted at in your observations, and by the name of the ZX calculus itself.

  • It can describe individual quantum gates: so it is a notation for circuits (and other quantum procedures — one of the things the ZX calculus was explicitly designed for was to analyse measurement based quantum computing [arXiv:0906.4725]; and Dom Horsman and I showed that it has a very close connection to surface code lattice surgery [arXiv:1704.08670]).

  • It is a calculus : it is a notation in which you can actually do calculations. If you're good with reasoning about commutation relations, you can do this to a limited extent with ordinary circuit diagrams; for the ZX calculus you can in principle do this entirely with diagrams.

There are people who are working on higher-level ZX descriptions of procedures on multiple qubits — eg. [arXiv:1905.00041] — which might become suitable to actually program with if developed further. But the existing version of the ZX calculus is more suitable for an intermediate representation of a compiler, or indeed performing computations or analysis by hand, than as a programming language.

Niel de Beaudrap
  • 12,522
  • 1
  • 33
  • 73
2

Since the question was for what purpose the ZX-calculus was developed, let me answer this with the original use case: understanding Measurement-Based Quantum Computation (MBQC). The ZX-calculus was originally introduced by Bob Coecke and Ross Duncan in a 2007 preprint here and first appeared in a published paper here.

Bob and Ross told me that they were looking for a way to better understand MBQC and graph states. When working on a language for this they noticed the connection between the strong complementarity of the Z and X observables, and the already established rewrite rules of bialgebras and Hopf algebras. The first paper wherein ZX was used to describe MBQC was this paper.

John
  • 546
  • 2
  • 7
1

To complete the answer of Niel de Beaudrap, note that the book "Picturing Quantum Processes: A First Course in Quantum Theory and Diagrammatic Reasoning" (Coecke, Kissinger) presents a more top-down/high-level view of diagrammatic reasoning, where we can reason on arbitrary quantum process: the ZX-calculus is then just seen as a way to "open the box" and describe quantum processes on a more low level basis, but is not strictly necessary to reason on arbitrary processes.

Léo Colisson
  • 696
  • 4
  • 12