A quantum error correction method

The proposed quantum error correction method improves decoding speed and efficiency by iteratively performing linear operations on syndrome and graph data, addressing the inefficiencies of existing QLDPC code decoding methods and enabling fault-tolerant quantum computation with reduced hardware requirements.

GB2641879APending Publication Date: 2025-12-24RIVERLANE LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
GB2024007545
Authority / Receiving Office
GB · GB
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-05-28
Publication Date
2025-12-24

AI Technical Summary

Technical Problem

Current quantum error correction methods, particularly for QLDPC codes, are inefficient and slow due to the need for lengthy data processing and search procedures, limiting the size of problems that can be decoded effectively.

Method used

A quantum error correction method that iteratively performs linear operations on syndrome and graph data using a statistical model of error rates and approximate inference algorithms, dynamically selecting pivot operations to quickly generate candidate solutions and corrections, reducing computational cost and improving decoding speed.

Benefits of technology

Enables faster and more efficient decoding of QLDPC codes, allowing for the processing of larger volumes of error data in real-time, thereby supporting fault-tolerant quantum computation with reduced hardware complexity.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The quantum computer system comprises a decoder and a register of quantum devices. Syndrome data and graph data are received at the decoder, the syndrome data being representative of an error state of
Need to check novelty before this filing date? Find Prior Art

Description

This disclosure relates to a quantum error correction method and an associated system and apparatus, and in particular to methods for decoding errors in a quantum computer system. BACKGROUND Quantum computers hold the potential to revolutionize various fields of science and technology. However, today's quantum computers cannot realise these transformational possibilities because their fundamental components, qubits, are highly error-prone. To unlock the transformative possibilities of quantum computing, the error rates for operating on quantum data must be dramatically reduced. This issue may be addressed in part by hardware improvements as physicists and engineers get better at building more stable qubits, but these advancements alone won't be enough to enable algorithms to run with millions or billions of operations reliably. There is a need for quantum error correction methods. Several error correction codes exist, such as topological error correction codes including the surface code(s). The surface code is the most prominent error correction scheme, and remains highly effective in many circumstances. The surface code can be represented by a Tanner graph which has the two-checks-per-error quality, and which therefore has a simplified representation known as a 'decoding graph'. These decoding graphs can be used in the surface code to facilitate decoding of the syndrome by grouping "defects" in the syndrome. These defects generally provide an indication of end points of chains of errors on physical data qubits in the error correction code. The most commonly used decoders in quantum research and industry rely on this graph structure to function. For example, minimum weight perfect matching techniques are able to efficiently find the single most common solution to a given syndrome, but it is only possible to do this efficiently using a decoding graph. In addition, error-correction schemes such as the surface codes rely on assemblies of physical qubits that are used to encode logical qubits; however, surface codes require a large number of such physical qubits for error correction. This problem is compounded because the surface codes also scale inefficiently, meaning the number of "extra" qubits needed for error correction increases dramatically with the size of the quantum computer. There is therefore a need for codes other than the surface code, which would preferably be able to store more logical information in a particular number of physical qubits whilst still providing a high degree of protection from errors. Advances have been made in the more general field of quantum low-density parity check (QLDPC) codes, of which the surface codes are just one example. QLDPC codes are desirable because they enable the storage of more logical information in fewer qubits. This can increase the amount of logical information which can be stored. However, many of these QLDPC codes cannot be represented as decoding graphs. There is therefore a need for an algorithm that is able to operate on the full Tanner graph representations required by this category of codes. One known decoder which is able to function on the full Tanner graph representations is known as the belief-propagation ordered statistics decoding (BP-OSD) algorithm (Pavel Panteleev and Gleb Kalachev. 2021. Degenerate Quantum LDPC Codes With Good Finite Length Performance. Quantum, 5 (2021), Nov., 585.). However, BP-OSD is much slower than conventional surface code decoding techniques. This relatively low decoding speed limits the size of problem that it is possible to decode using BP-OSD techniques. Accordingly, there is a need for a quantum error correction method that is compatible with QLDPC codes, and that has an improved speed compared to known approaches. The present application seeks to address these and other disadvantages encountered in the prior art by providing an improved quantum error correction method, and an improved system suitable for implementing such a method. SUMMARY According to an aspect of the invention, there is provided a computer-implemented method for decoding errors in a quantum computer system. The quantum computer system comprises a decoder apparatus and a register of quantum devices. The method comprises receiving, at the decoder apparatus, syndrome data in an initial state, the syndrome data being representative of an error state of the quantum devices in the register of quantum devices, and graph data representative of a graph comprising a plurality of error nodes and a plurality of check nodes. The error nodes represent error mechanisms that can occur on the register of quantum devices. Each check node is associated with one or more measurements which can be performed on the register of quantum devices. The initial state of the syndrome data indicates a check value of marked or unmarked for each check node based on an outcome of its associated one or more measurements. The method further comprises determining, based on a statistical model of error rates associated with the error mechanisms, an error probability associated with each of the one or more error nodes. The method further comprises generating modified graph data by iteratively performing linear operations on the graph data and syndrome data based on a current state of the syndrome data to determine an independent error node associated with each marked check node. The method further comprises determining, by the decoder apparatus, a correction for the error state based on the modified graph data. The syndrome data can indicate the check values by taking any suitable form from which the check values can be derived. The syndrome data may indirectly encode the marked / unmarked states. Or, the syndrome data may comprise an explicit indication, for example a data array listing a checked / unchecked state for each check node. After the iterative performance of linear operations, an independent error node is associated with each marked check node. A candidate solution to the syndrome data is derivable from the modified graph data in this form, which enables the correction to be determined. One of the advantages of the presently disclosed method over the prior art BP-OSD decoder is the syndrome data is used during an iterative process, and this results in significantly fewer linear operations being required to achieve graph data which represents a solution. The computational cost in reaching a correction is therefore significantly reduced, and the speed and efficiency of the present methos is improved compared to prior methods. The present methods can operate on the full Tanner graph representations required by codes such as QLDPC codes, and can yield solutions, and corrections, much more quickly, enabling more complicated problems to be solved using QLDPC codes. Optionally, determining the error probability associated with each of the one or more error nodes is further based on the syndrome data, wherein the error probability associated with each of the one or more error nodes is determined using an approximate inference algorithm; preferably wherein the approximate inference algorithm is a message-passing inference algorithm; and even more preferably wherein the message-passing inference algorithm is a belief-propagation algorithm. The statistical model of error rates associated with the one or more error nodes is based on statistical models of prior error probabilities. The error probability associated with each of the one or more error nodes is an updated estimate based on the statistical model of error rates and an approximate inference algorithm, such as a belief-propagation algorithm. In other words, the error probabilities represent the probability of that error mechanisms have occurred given the observed syndrome, whereas the error rates represent error mechanism probabilities without knowledge of the syndrome. Optionally, a marked check value for a check node indicates that an odd number of error mechanisms represented by error nodes joined to the check node have occurred. Optionally, the graph further comprises a first plurality of edges, wherein each edge of the first plurality of edges joins a check node with an error node if the error mechanism represented by the error node can affect the check value of the check node. Optionally, performing the one or more linear operations comprises performing one or more first pivot operations. Optionally, performing each first pivot operation modifies the graph represented by the graph data, and comprises selecting, according to first pivot selection criteria, a pivot error node and a pivot check node from among the error nodes and the check nodes which are joined by an edge; and adding the pivot check node to every other check node of the plurality of check nodes which is joined to the pivot error node by an edge. Optionally, adding the pivot check node to every other check node comprises: removing edges which join the other check node to any error nodes joined to both the pivot check node and the other check node; and adding edges between the other check node and any error node which is joined to the pivot check node and not joined to the other check node. Optionally, the first pivot selection criteria comprise one, more, or all of: a requirement that the check value associated with the pivot check node be marked in the current state of the syndrome data; a requirement that the pivot check node has not yet been used as a pivot check node, and that the pivot error node has not yet been used as a pivot error node; and selecting, subject to any other pivot selection criteria, an error node to be the pivot error node based on an error probability associated with the error node. Optionally, the first pivot selection criteria comprises a requirement, subject to any other pivot selection criteria, to select the pivot error node associated with the highest available error probability. Optionally, performing each first pivot operation comprises changing, for every check node joined to the pivot error node other than the selected pivot check node, the check value from marked to unmarked or vice versa. Optionally, each independent error node associated with a marked check node is a pair comprising a pivot check node and a pivot error node joined to one another, where the pivot error node in each pair is joined solely to its paired pivot check node. Optionally, the one or more first pivot operations comprise a plurality of first pivot operations, and wherein iteratively performing the linear operations on the graph data and syndrome data comprises performing each of the plurality of first pivot operations, one after the other, until a first stopping criterion is reached. Optionally, the first stopping criterion is reached when no further check or error nodes meet the first pivot selection criteria. Optionally, when the first stopping criterion is reached, the graph data comprises, for each marked check node, an independent error node associated solely therewith. As described elsewhere herein, in this form, the modified graph data represents a solution to the syndrome data. Optionally, determining an independent error node associated with each marked check node comprises identifying, once the first stopping criterion is reached: any check nodes selected as pivot check nodes, and any error nodes selected as pivot error nodes. Optionally, iteratively performing the linear operations on the graph data and syndrome data comprises performing a plurality of first pivot operations, wherein performing each first pivot operation comprises selecting a respective pivot error node, and wherein the independent error nodes are those error nodes selected as pivot error nodes during the performance of the plurality of first pivot operations. Optionally, each independent error node and its associated marked check node form a candidate cluster in the graph. Optionally, the candidate clusters represent a candidate solution to the syndrome data. The iterative performance of linear operations in the manner described herein, for example until a stopping criterion is reached, enables the generation of modified graph data form which a correction can be derived much more quickly than prior methods. For example, the BP-OSD algorithm slows down substantially with the size of the problem, and this is partly because of the need to run Gaussian elimination to completion to put the available data in a preferred form before a solution or correction can be derived. Optionally, the correction for the error state may be further based on the error probabilities associated with the one or more error nodes. Optionally, generating the modified graph data further comprises growing the one or more candidate clusters in the graph according to the error probabilities associated with the one or more error nodes and a current state of the syndrome data until a cluster growth termination criterion is met; wherein, when the cluster growth termination criterion is met, the one or more clusters are fully-grown clusters. Growing the candidate clusters to consider more solutions enables a number of likely solutions to be assessed. However, by restricting the number of solutions which are assessed to only those which are likely (based on the error probabilities) starting from the candidate solution, the algorithm can arrive at a viable, probable solution quickly and effectively compared to the prior art. Optionally, growing the one or more candidate clusters in the graph comprises considering a number, k, of error nodes not forming part of a candidate cluster; and adding a considered error node to either a candidate cluster or a new cluster if error node selection criteria are met; wherein the cluster growth termination criterion is met when k error nodes have been considered. Optionally, the error node selection criteria are based on the error probabilities associated with the one or more error nodes and / or the current state of the syndrome data. Optionally, the error node selection criteria comprise one, more, or all of: a requirement that the considered error node has not already been considered; a requirement that the considered error node be joined to a check node that has been a pivot check node; a requirement that the considered error node be an error node that has previously been joined to a check node involved in a pivot operation; and selecting, subject to any other error node selection criteria, an error node to be the considered error node based on an error probability associated with the error node. A check node which has been 'involved' in a pivot operation might comprise, for example, a check node that was changed by a pivot operation in some way. In particular, any check node which has had its edges changed or adjusted in any way, including having new edges added or edges removed, during the performance of the pivot operations may be considered to have been "involved" in a pivot operation. Optionally, growing the one or more candidate clusters in the graph further comprises determining, for each considered error node added to a candidate cluster, whether a second pivot operation should be performed based on one or more second pivot selection criteria and, if the one or more second pivot selection criteria are met, performing the second pivot operation. Optionally, the one or more second pivot selection criteria comprise a requirement that the considered error node be joined to at least one check node that is not already a pivot check node. Optionally, if the one or more second pivot selection criteria are not met, classifying the considered node as a dependent error node. Optionally, the method may further comprise determining a probable solution, by determining a cluster solution for each fully-grown cluster in a subset of fully-grown clusters; determining the probable solution based on: the determined cluster solutions, the error rates and / or the error probabilities associated with each error node in the subset of fully-grown clusters, and a current state of the syndrome data. Determining the correction for the error state based on the modified graph data and the error probabilities associated with the one or more error nodes may comprise determining a correction based on the probable solution. Because a search for potential solutions is not necessarily needed in respect of every one of the fully grown clusters, as will be explained, benefits are achieved in terms of improved speed and reduced computational cost compared to prior art approaches. This is in comparison with the BP-OSD approach in which, once the information has been put into the preferred form, a lengthy search is required through the data before an optimal or probable solution can be reached. The cluster solutions may comprise an estimation, for each error node within the fully-grown clusters, of whether an odd number of error mechanisms associated with the error node occurred (i.e. in other words, an estimation whether an error mechanism associated with the error node is active). Optionally, the cluster solutions comprise an estimation, for each error node within the fully-grown clusters, of whether an odd number of error mechanisms associated with the error node occurred (i.e. in other words, an estimation whether an error mechanism associated with the error node is active). Optionally, the graph data further comprises a plurality of logical nodes, wherein each logical node is associated with logical information encoded by the register of quantum devices. Optionally, the graph further comprises a second plurality of edges, wherein each edge of the second plurality of edges joins a logical node with an error node if the error mechanism represented by the error node can affect a logical state associated with the logical node. Optionally, generating the modified graph data further comprises identifying a plurality of active error nodes in the graph, wherein an error node is active if it is estimated that an odd number of its associated error mechanisms occurred; and wherein determining the correction for the error state comprises identifying a plurality of logical nodes joined with active error nodes. Optionally, the subset of the one or more fully-grown clusters comprises those fully-grown clusters which comprise at least one dependent error node joined with at least one logical node. Optionally, the probable solution to the syndrome data comprises an estimation for each of the error nodes, the estimation representing either a positive or a negative determination for whether an odd number of the error mechanisms associated with the error node occurred (i.e. whether an error mechanism associated with the error node is active). Optionally, the quantum error correction method is a quantum low density parity check, QLDPC, code error correction procedure. Optionally, the graph is a Tanner graph. Optionally, the quantum devices are qubits. According to an aspect of the invention, a decoder apparatus comprises one or more processors, and computer memory, the computer memory storing instructions which, when implemented, cause the one or more processors to perform any of the methods described above or herein. According to an aspect of the invention, a computer-readable medium comprises instructions which, when executed by one or more processors, cause the one or more processors to perform any of the methods described above or herein. FIGURES Specific implementations are now described, by way of example only, with reference to the drawings, in which: Figure 1 depicts a Tanner graph; Figure 2 depicts the matrix representation of Figure 1; Figure 3 depicts a Tanner graph; Figure 4 depicts the decoding Equations 1 and 2 based on the graph of Figure 3; Figure 5A depicts a graph of a surface code; Figure 5B depicts the graph of Figure 5B in a decoding graph representation; Figure 6 depicts a Tanner graph; Figure 7 depicts a pivot operation in matrix representation; Figure 8 depicts a pivot operation in graph representation. Figure 9 depicts a matrix; Figure 10 depicts a Tanner graph; Figure 11A-C depict matrices according to the prior art; Figure 12 depicts a matrix according to the prior art; Figure 13 depicts a method according to the present disclosure; Figure 14A depicts a method according to the present disclosure; Figure 14B depicts a method according to the present disclosure; Figure 15 depicts a pivot operation according to the present disclosure; Figure 16 depicts a Tanner graph according to the present disclosure; Figure 17 depicts cluster growth according to the present disclosure; Figure 18 depicts cluster growth according to the present disclosure; Figure 19 depicts a Tanner graph according to the present disclosure; Figure 20 depicts examples of fully-grown clusters according to the present disclosure; Figure 21 depicts Tanner graphs according to the present disclosure; Figure 22 depicts Tanner graphs according to the present disclosure; Figure 23 depicts Tanner graphs according to the present disclosure; Figure 24 depicts a matrix according to the present disclosure; Figure 25 depicts a matrix according to the present disclosure; Figure 26 depicts a matrix according to the present disclosure; Figure 27 is an example embodiment of a quantum computer system; Figure 28 is an example embodiment of a computer program product. DETAILED DESCRIPTION OVERVIEW AND INTRODUCTION In overview, and without limitation, the application discloses a method for decoding errors in a quantum computer system. Quantum devices, for example qubits, associated with quantum computer systems are inherently noisy and prone to error. The aim of a quantum decoder is to decode the error on the physical qubits based on the observed "syndrome", as errors on physical qubits cannot be directly observed without destroying the quantum state of the qubit. Known error correcting codes for decoding the errors include quantum low-density parity check (QLDPC) codes. As discussed above, surface codes are the most prominent example of a QLDPC code, and these codes enable information to be encoded into a two-dimensional grid of qubits. However, surface codes require large numbers of physical qubits, possibly millions of physical qubits, for solving problems of interest. Other types of QLDPC codes show promise for significantly reducing the number of physical qubits required relative to the surface code, by encoding more logical information with fewer physical qubits. QLDPC codes also still show the ability to maintain extremely low logical error rates, and therefore provide good encoding rates. However, when considered more generally, QLDPC codes present significant decoding challenges. Surface codes are decodable using decoders such as minimum-weight perfect matching (MWPM) or clustering decoders, but these decoders cannot be easily generalised to other QLDPC codes. Prior art methods include the beliefpropagation ordered statistics decoder (BP-OSD) algorithm. However, BP-OSD slows down substantially with the size of the problem. As will be explained in detail herein, this is partly because of the need to run Gaussian elimination to completion to put the available data in a preferred form, and partly because, once the information has been put into the preferred form, the algorithm requires a lengthy search through the data for an optimal or probable solution. These requirements make BP-OSD slow, and limit the applicability of the otherwise powerful QLDPC codes. The present method comprises receiving syndrome data in an initial state. The syndrome data is typical in form, and is representative of an error state of quantum devices in a register of quantum devices. For example, the syndrome data may be representative of an error state of qubits in a register of qubits. The method further comprises receiving graph data representative of a graph comprising a plurality of error nodes and a plurality of check nodes, wherein the error nodes represent error mechanisms that can occur on the register of quantum devices, and each check node is associated with one or more measurements which can be performed on the register of quantum devices. This graph data is dependent on the quantum error correction code being used and is inherent to the particular register of quantum devices, and in most implementations is predetermined based on the particular arrangement of the quantum devices in the quantum computer system. Once this data has been received, the method comprises determining, based on a statistical model of error rates associated with the error mechanisms, an error probability associated with each of the one or more error nodes. Optionally, these error probabilities may also be determined based on the syndrome data. This process may involve using an approximate inference algorithm such as a message-passing inference algorithm. For example, the error probabilities may be determined using a belief-propagation algorithm based on the syndrome data and the statistical model of error rates in a known way. The method then comprises generating modified graph data. Generating the modified graph data may comprise performing operations on the graph data which change, i.e. modify, the graph represented by the graph data. In particular, the method comprises iteratively performing linear operations on the graph data and syndrome data based on a current state of the syndrome data to determine an independent error node associated with each marked check node. The decoder apparatus can then determine a correction for an error state of the quantum devices in the register of quantum devices based on the optimised solution. The use of the syndrome data during the performance of the linear operations in this manner, i.e. performing linear operations on the graph data and syndrome data based on a current state of the syndrome data, guides the algorithm toward a viable solution to the syndrome data more quickly. This viable solution is represented by the determined independent error node associated with each marked check node. As will be explained, this stage of the method may involve performing a series of pivot operations. The state of the syndrome data is updated during these pivot operations, and the available data is put into a more "useful" form as the pivot operations are carried out. As will be appreciated from reading the detailed description, these pivot operations can be selected and performed dynamically, based on the latest available state of the syndrome data. This dynamic selection process guides the algorithm toward a candidate solution significantly more quickly and efficiently than is possible in the prior art. As will be explained, each instance of an independent error node joined solely to its associated marked check node forms a "cluster" in the graph. Performing the linear operations as described above can be described as a cluster formation stage, and during this stage a number of candidate clusters are found. This cluster formation stage is somewhat analogous to Gaussian elimination in the prior BP-OSD algorithm, however the presently disclosed cluster formation stage of the present invention runs only until a viable candidate solution is reached. This is in contrast with the BP-OSD algorithm, in which Gaussian elimination must run until completion. Again, as will be appreciated from reading the below detailed description, this feature of the present algorithm enables a solution and therefore a correction for the error state to be reached significantly more quickly and efficiently. In some implementations, the candidate solution represented by the candidate clusters may be taken as a final solution without exploring additional solutions. Such implementations provide speed and efficiency, and provide a level of accuracy which may be acceptable depending on the implementation. However, in some implementations, additional, or alternative, solutions are considered in addition to the initial candidate solution. This process improves the accuracy of the ultimate (e.g. final) solution, and therefore improve the accuracy of the determined correction for the error state. In such implementations, the one or more 'candidate clusters' associated with the candidate solution are grown such that the syndrome data associated with some of these clusters, as they grow, can be explained by more than one local solution. This growth process is guided by error probabilities associated with the error mechanisms and the current state of the syndrome. In this way, the algorithm grows the clusters in a way that enables an assessment of only the most likely alternative solutions compared to the candidate solution. The present method further comprises determining a correction for the error state represented by the syndrome data based on the optimised solution. In some implementations, solutions within a plurality of 'grown' or 'fully-grown' clusters are assessed. As will be explained, further speed and efficiency gains may be achieved during this stage by considering logical nodes within each of the clusters, and assessing only those clusters which are 'logically ambiguous', i.e. for which the effect on the logical data differs from local solution to local solution within the cluster. By only considering logically ambiguous clusters at this stage, and disregarding logically unambiguous clusters from further assessment, the algorithm reaches an ultimate solution more quickly. Decoding sufficiently quickly to keep up with the sheer volume of syndrome data as quantum operations are performed is one of the key limiting factors for achieving fault-tolerant quantum computation. The disclosed method improves the decoding rate, thereby increasing the rate at which this large volume of data can be processed and making fault-tolerant quantum computing more achievable. As will be explained herein, this method can be used to make QDLPC codes a reality, and thereby drastically reduce the complexity and expense associated with the hardware needed to run quantum algorithms. A quantum computing system (also referred to herein as a quantum computer) is a computing system that exploits quantum mechanical phenomena (i.e. using a register of quantum devices). The quantum devices of the register of quantum devices may be any quantum devices capable of storing quantum information (i.e. any devices suitable for encoding information using quantum computational states). The quantum devices may be qubits. Alternatively, the quantum devices may be other devices capable of storing quantum information, such as qudits or qutrits. While the description herein will primarily refer to qubits, any reference herein to qubits should be understood to also encompass other types of quantum devices unless explicitly stated otherwise. Building a useful fault-tolerant quantum computer will require quantum error correction hardware that can receive and process enormous amounts of error information (i.e. syndrome data) in realtime almost instantaneously. A delay in decoding can lead to the creation of a backlog that grows exponentially with the length of the computation, which will ultimately lead to failure of the quantum computation. The speed of the decoder acts as a bottleneck to the number of qubits in a quantum error correction code (and therefore also as a bottleneck to reducing logical error rates). Improvements to decoding hardware and algorithms help to prevent this backlog, thereby enabling quantum computers with higher numbers of qubits and lower error rates because faster decoders can handle quantum error correction codes involving more data qubits, and using more data qubits leads to a reduction in logical error rates when performing fault-tolerant quantum computation. Quantum error correction codes generally involve decoding a "syndrome", which can be considered to be a signature associated with an error state of the physical qubits in the code (two different errors can potentially have the same syndrome). Syndrome data is received at the decoder apparatus in an initial state, wherein the syndrome data is representative of an error state of the quantum devices in the register of quantum devices. A "decoder" is then used to identify an error which could have caused the syndrome (or possibly just a correction operation that can be used to correct the logical qubit states encoded in the code e.g. a single bit representing whether the eventual logical measurement outcomes need to be flipped). It is common to use a graph representation when performing quantum error correction methods when implementing QLDPC codes. The error nodes represent error mechanisms that can occur on the register of quantum devices and each check node is associated with a subset of the syndrome data. The graph used to represent the QLDPC code may be a Tanner graph. As the skilled person will know, a Tanner graph is a bipartite graph, in which vertices in the graph can be divided into two disjoint sets where edges in the graph may connect a vertex in one set to a vertex in the other set. The error nodes represent error mechanisms that can occur on a register of quantum devices, e.g. on a register of qubits. An error mechanism represents a configuration of errors associated with one or more physical qubits. The error nodes may relate to the state of one qubit, for example. Specifically, each error node may relate to one or more physical qubits. The error nodes may instead relate to the state of more than one qubit. Error nodes may instead be referred to as errors, error mechanisms, or using similar words / phrases. The skilled person will appreciate that an error node can represent a whole class of different potential physical errors, but which all have the same effect on the syndrome. The number of error mechanisms in the problem can be described using "n". These represent possible errors that could occur during the execution of a quantum circuit. During each round of decoding, each error occurs with some known probability e (in general, this is different for each error). It is not known which errors have occurred for a given shot. However, each error that occurs leaves a signature on some of the checks. An odd number of errors affecting a given check will cause a change in measurement outcome. An even number of errors affecting a given check will cause the measurement outcome to be unaffected. Depending on the execution of the quantum circuit, the probability of each error occurring may change per shot. A statistical model of error rates, e.g. a noise model, used to determine these error probabilities could also be changed per shot. An aim of quantum error correction techniques is often to provide a solution to the syndrome data, where that solution comprises an estimation or indication for each of the error nodes as to whether an odd number of the error mechanisms associated with the error node did (or did not) cause an error on the register of quantum devices. This estimation needn't be a value for each error node; it can be a single bit per logical operator indicating whether that logical operator is (believed to be) affected by an error. In the graph data, each error node may therefore be associated with being in a state of either "on" or "off". An error node being "on" depicts the presence of an error, or the presence of an odd number of errors, on the error mechanisms associated with the error node, for example associated with the one or more physical qubits associated with the error node. An error node being "off" depicts the absence of an error, or the presence of an even number of errors, on the error mechanisms associated with the error node, for example associated with the one or more physical qubits associated with the error node. Equivalently to the "on" state, error nodes can be described as being in a "1" state, "-1" state or for one or more associated qubits to have "flipped". Equivalently to the "off" state, error nodes can be described as being in a "0", "+1" state or for one or more associated qubits to have remained "unflipped". Each check node in the graph is associated with one or more measurements which can be performed on the register of quantum devices. The check nodes can represent the outcome of parity check measurements on syndrome data. Each check node in the graph may be associated with one measurement, however each check node could instead be associated with combinations of measurements. For example, each check node could be associated with combinations of measurements if doing so creates a simpler Tanner graph. The most common example of this is where a series of N physical measurements, each of the same set of physical quantum devices is mapped to N-l check nodes, where each check node represents whether the result of two consecutive measurements differ. This makes measurement errors behave in a similar way to errors on the physical quantum devices themselves. The number of check nodes in the problem may be referred to as “m". Each check node represents measurements that have been (or can be) performed on the physical qubits. The outcome of these measurements may be either 0 or 1, for each check, for each round of decoding (each 'shot'). The outcome, 0 or 1, of each of the m checks, taken together, is referred to as the syndrome s. As will be explained, in methods of the present disclosure, the "state" of the syndrome data is updated and manipulated throughout the process. This process may involve manipulating a data structure representing the syndrome data, to change the form of the data structure, in order to make the data structure more useful. The updated 'state' of the syndrome data still represents the syndrome data, but using a different form which is equivalent (or more 'helpful') for the purposes of decoding. The check value for a check node can be marked or unmarked. A marked check value indicates that an odd number of error mechanisms represented by error nodes joined to the check node have occurred. An "unmarked" check value indicates the absence of an error mechanism having occurred, or that an even number of error mechanisms represented by error nodes joined to the check node have occurred. A positive, 'marked' measurement value can also be referred to as a measurement value of "1" or "-1". A negative, 'unmarked' measurement value can also be referred to as a measurement value of "0" or "+1" (quantum measurement values are generally either referred to using eigenvalues (+1 or -1) or respective quantum states (|0) or |1)) -the "0" state (|0)) is associated with the "+1" eigenvalue, and the "1" state (11)) is associated with the "-1" eigenvalue). Check nodes may instead be referred to as checks, syndrome checks, parity checks, detectors, measurements, stabiliser measurements or using similar words / phrases. Check nodes may also represent combinations of measurements, for example to create a simpler decoding problem. At least the initial state of the syndrome data indicates a check value of marked or unmarked for each check node based on an outcome of its associated one or more measurements. The syndrome data can indicate the check values by taking any suitable form from which the check values can be derived. The syndrome data may indirectly encode the marked / unmarked states. Or, the syndrome data may comprise an explicit indication, for example a data array listing a checked / unchecked state for each check node. The graph comprising a plurality of check nodes and error nodes may also comprise a plurality of edges. The graph further comprises a first plurality of edges, wherein each edge of the first plurality of edges joins a check node with an error node if the error mechanism represented by the error node can affect an odd number of the one or more measurements associated with the check node in such a way as to affect the check value. The graph data may further comprise a plurality of logical nodes, wherein each logical node is associated with logical information encoded by the register of quantum devices. Therefore, the graph (for example a Tanner graph) may comprise logical nodes, error nodes and check nodes. It is common for a Tanner graph to represent only error nodes and check nodes, without logical nodes. This is due to the error nodes encoding the information of the logical nodes. However, considering the logical nodes is particularly important for certain implementations involving the assessment of cluster solutions using the concept of "logical ambiguity" described herein. The logical nodes in the graph may represent the state of one or more physical qubits. Specifically, the logical nodes may relate to one or more logical qubits. The state of each logical node is encoded by one or more error nodes. The state of each logical node is therefore associated with the state of the one or more error nodes. In the graph data, each logical node is associated with being in a state of either "on" or "off" at any moment in time. A logical node being "on" depicts the presence of an odd number of error mechanisms associated with the one or more logical qubits. A logical node being "off" depicts an even number of error mechanisms associated with the one or more logical qubits. Equivalently to the "on" state, logical nodes can be described as being in a "1" or "-1" state. Equivalently to the "off' state, logical nodes can be described as being in a "0" or "+1" state. Logical nodes may instead be referred to as logicals, logical operators, logical qubits, observables or similar words / phrases. A graph that comprises logical nodes, error nodes and check nodes may also contain a first plurality of edges and a second plurality of edges. As described previously, each edge of the first plurality of edges joins a check node with an error node if the error mechanism represented by the error node can affect the check value of the check node. Each edge of the second plurality of edges joins a logical node with an error node if the error mechanism represented by the error node can affect a logical state associated with the logical node. QLDPC codes can be represented not only by graphs such as Tanner graphs, but can also be described in matrix representation, for example using "parity check matrices" and "logical matrices". A parity check matrix H depicts a relationship between error mechanisms and syndrome checks. In a similar way, a parity check matrix depicts a relationship between error nodes and check nodes of a Tanner graph, wherein error mechanisms are associated with error nodes and syndrome checks are associated with check nodes. Typically the number of rows in a parity check matrix depicts the number of syndrome checks and the number of columns depicts the number of error mechanisms. However, the number of rows could instead be the number of error mechanisms and the number of columns could instead be the number of syndrome checks, or any other similar representation. Each element in a parity check matrix can represent a connection between an error mechanism and a syndrome check., Each element in a parity check matrix can represent a connection between an error node and a check node in a Tanner graph. A parity check matrix is often populated with values of 0 and 1, where a 0 represents no connection and a 1 represents a connection between an error mechanism and a syndrome check. Equivalently, an element of value 1 shows the existence of an edge on the Tanner graph between the relevant error node and check node on a Tanner graph. Equivalently, a value of 1 in a given row of a given column of a parity check matrix can mean that the error represented by the column affects the outcome of the check represented by the row. Similarly, a logical matrix G can depict a relationship between error mechanisms and logical qubits. Equivalently, a logical matrix can depict a relationship between error nodes and logical nodes of a Tanner graph. Typically the number of rows in a logical matrix depicts the number of logical qubits and the number of columns depicts the number of error mechanisms. However, the number of rows could instead be the number of error mechanisms and the number of columns could instead by the number of logical qubits, or any other similar representation. Parity check matrices and logical matrices may be "stacked" on top of each other to make an augmented matrix for clarity. One skilled in the art will appreciate that any matrix, array or similar data structure described herein (including the graph data) may be represented in any suitable form, for example as a sparse representation in which the matrix is represented as a list of non-zero values. Each element in a logical matrix can represent a connection between a logical qubit and an error mechanism. Equivalently, each element in a logical matrix can represent a connection between a logical node and an error node in a Tanner graph. Like a parity check matrix, a logical matrix is often populated with values of 0 and 1, where a 0 represents no connection and a 1 represents a connection between an error mechanism and a logical qubit. Equivalently, an element of value 1 shows the existence of an edge on the Tanner graph between the relevant error node and the logical node on a Tanner graph. Equivalently, a value of 1 in a given row of a given column of a logical matrix can mean that the occurrence of the error affects whether or not the given logical was flipped. The relationship between an observed syndrome, the errors nodes which caused the syndrome and the parity check matrix of a QLDPC code can be demonstrated by a decoding equation, as known by the skilled person. As mentioned previously, the outcome of each of the parity checks, taken together, is referred to as the syndrome. The syndrome can be denoted as the vector s. The vector s comprises elements each of value either 0 or 1. In other words, the vector comprises elements of only binary value. The error associated with the error nodes can be denoted as a vector e. A decoding equation relating the parity check matrix H, the errors associated with error nodes e and the syndrome s is He = s. Equation 1 The effect that the errors had on the stored bits of logical information can be denoted as the vector A. A decoding equation relating the logical matrix G, the errors associated with error nodes e and the state of the logical nodes A is Ge = A. Equation 2 The matrix equations in Equation 1 and Equation 2 are satisfied if the arithmetic is performed modulo two. Equivalently, Equation 1 and Equation 2 can be rewritten as a single equation in augmented matrix form: rH] rsi e = ^j. Equation 3 The goal of a decoding algorithm for classical low-density parity check codes may be to determine the error associated with the error nodes e based on the observed syndrome s. For example, solving Equation 3 for both A and e. In the quantum case, it is sufficient to find any error equivalent to the error e up to a stabiliser, where a stabiliser is any operator that acts as an identity on the logical state. On the other hand, the goal could be to determine the unknown vector of the state of the logical nodes A given the observed syndrome s. There will always be many possible sets of errors e that explain a syndrome s. In other words, there are many solutions to the syndrome data. Each solution to the syndrome data will comprise an estimation for each of the error nodes, the estimation representing either a positive or a negative determination for whether an odd number of the error mechanisms associated with the error node occurred (if an even number of error mechanisms associated with an error node occurs (e.g. the same error mechanism occurring twice) then these error mechanisms will generally cancel each other's effects). Although there are many possible solutions to the syndrome, some solutions are more likely to have occurred than others. It is preferable for a decoder to find the most likely solution to the syndrome data. In general, the effects that the different solutions have on the logical bits will vary from solution to solution, and each will have a different likelihood of having occurred. An optimal decoder will examine every possible solution to the syndrome, and add up the probabilities of all the errors which give the same logical effect A. Then the effect A with the highest total probability would be the optimal estimate. In practice, the number of solutions e is extremely large, so it is difficult, and unnecessary, to consider all of the solutions. Practical decoding algorithms focus instead on finding or approximating a small number of very likely solutions. This is because the most likely solutions ideally have a probability several orders of magnitude greater than the rest of the solutions, so the sum of probabilities associated with each A may be well approximated by just considering the largest probability in the sum. Figure 1 depicts a graph 110 of a QLDPC code which can be represented by graph data. The graph 110 is a Tanner graph. In Figure 1, the diamonds depict logical nodes 100, the circles depict error nodes 101, and the squares depict check nodes 102. The edges joining nodes are displayed as lines between nodes. The edges are separated into two groups: a first plurality of edges 103 and a second plurality of edges 104. The first plurality of edges 103 join error nodes 101 and check nodes 102. The second plurality of edges 104 join error nodes 101 and logical nodes 104. An edge between an error node 101 and a check node 102 indicates that the occurrence of a given error associated with error node 101 affects the outcome of the connected check node 102. For example, the edge joining the error node 101 and the check node 102 indicates that the occurrence of a given error mechanism associated with error node 101 affects the outcome of the connected check node 102. Equivalently, an edge between an error node 101 and a logical node 100 indicates that the occurrence of a given error associated with the error node 101 affects the outcome of the connected logical node 100. In the Tanner graph 110, there are two logical nodes 100. The two logical nodes are each potentially affected by one or more of the five error nodes 101. In the depicted Tanner graph 110 there are no errors associated with any of the error nodes. For example, each error node may be showing that its one or more associated data qubits has remained in an error-free state. Figure 2 depicts the matrix representation 210 of the graph of Figure 1. Figure 2 depicts the information associated with the check nodes 102, error nodes 101 and logical nodes 100 in Figure 1, but in an alternative representation. In Figure 2, H represents a parity check matrix 202 and G represents a logical matrix 200. In Figure 2, the parity check matrix 202 and the logical matrix 200 are stacked on top of each other, in the form of a taller augmented matrix. This means that an error is represented as a single column in the augmented matrix. The parity check matrix 202 represents the relationship between the error nodes 101 and the check nodes 102 of the Tanner graph 110. Each row in the parity check matrix 202 depicts the check nodes 102 of the Tanner graph 110. The number of rows of the parity check matrix 202 is equal to the number of check nodes 102 in the Tanner graph 110. As there are four check nodes 102 of the Tanner graph 110, there are four rows of the parity check matrix 202. Each column in the parity check matrix 202 is associated with the error nodes 101 of the Tanner graph 110. The number of columns of the parity check matrix 202 is equal to the number of error nodes 101 in the Tanner graph 110. As there are five error nodes 101 of the Tanner graph 110, there are five columns of the parity check matrix 202. Similarly, this extends to the logical matrix 200, but instead the number of rows depicts the number of logical nodes 100 of the Tanner graph 110, and so on. Each element in the parity check matrix 202 and logical matrix 200 is associated with the presence or absence of an edge in the Tanner graph 110. For example, the element shared by the first row and first column in the parity check matrix 202 has a value of 1. This means that there is an edge between the relevant error node and check node on the Tanner graph 110. Similarly the element shared by the first row and first column in the logical matrix 200 has a value of 1. This means that there is an edge between this relevant error node and logical node on the Tanner graph 110. If an element has a value of 0, no edge exists between the relevant nodes in the Tanner graph 110. Figure 3 depicts a graph showing a solution to example syndrome data. The graph 310 takes the same form as the graph 110 of Figure 1, but the graph 310 of Figure 3 depicts syndrome data in which errors are present. Figure 3 also depicts a solution to the syndrome data. The syndrome data is represented by check values of the check nodes 301, and the solution is represented in a graph by the error nodes 300 and whether they are shaded or not. The check values for the check nodes of the graph 310 are depicted by either the square being shaded or empty. Marked check nodes are depicted using shaded squares and unmarked check nodes are depicted using empty (unshaded) squares. In Figure 1, all of the check nodes 102 are empty (unmarked). In contrast, in Figure 3, there are multiple marked check nodes 301a, 301b. The check values of each of the check nodes taken together is the observed syndrome of this example syndrome data. In other words, the check values of each of these check nodes taken together forms the syndrome vector s. The logical state of the one or more logical qubits associated with the logical nodes of the graph 310 is depicted by either the diamond being marked or unmarked. Marked logical nodes are depicted by shaded diamonds and unmarked logical nodes are depicted using empty (unshaded) diamonds. The Tanner graph 310 depicts syndrome data in which one logical qubit 302 has flipped. The task of quantum error correction techniques is often to find a solution to the observed syndrome data. A solution may take the form of a graph, or a data structure representative of the graph, indicating which error nodes should be shaded or unshaded to explain the presence of the marked check nodes in the graph. The presence or absence of an error associated with the error nodes of the graph 310 is depicted by either the circle being shaded or empty (unshaded). An error node that is associated with a positive determination or estimation that an associated error mechanism (or an odd number of associated error mechanisms) occurred is depicted using a shaded circle. An error node that is associated with a negative determination or estimation that the associated error mechanism (or an odd number of the associated error mechanisms) occurred is depicted using an unshaded circle. Quantum error correction methods involve making these determinations, which can be described in graph form as a determination of whether an error node should be shaded, or unshaded. The state of the error nodes can be outputted as a binary vector of length n. It is important to note that while the decoding method or algorithm may output a "solution" of shaded error nodes which are considered likely to be associated with error mechanisms that occurred, it cannot be determined with certainty which error mechanisms did in fact occur. In Figure 3, there are 3 error nodes for which it has been determined that an associated error mechanism occurred, i.e. the shaded error nodes 300a, 300b and 300c. The information provided by the absence or presence of errors associated with error nodes form the solution to the syndrome data. For example, the shaded error nodes in Figure 3 can be used to describe the observed syndrome. Figure 4 depicts the equivalent matrix representation, using decoding Equation 3, based on the graph of Figure 3. The matrix 403 represents an augmented matrix representing the parity check matrix H on top (above the horizontal line) and the logical matrix G on the bottom (below the horizontal line) corresponding to the graph 310. The matrix 400 represents the error vector e associated with error nodes in the graph 310. The matrix 401 represents the syndrome s, in the top section of an augmented matrix, corresponding to the graph 310. The matrix 402 represents the state of the logical nodes 2, in the bottom section of an augmented matrix, corresponding to the graph 310. The matrices in Figure 4 relate to the graph 310. As mentioned previously, the elements with a value of 1 in the parity check matrix H are associated with the presence of an edge on the Tanner graph 310 between a check node and an error node. The rows of the parity check matrix H relate to check nodes and columns of the parity check matrix H relate to error nodes. Equivalently, the elements with a value of 1 in the logical matrix G are associated with the presence of an edge on the graph 310 between a logical node and a error node. The error matrix 400 is associated with the errors on the error nodes in the graph 310. For example, the matrix elements 400a,b,c have a value of 1 and depict the three shaded error nodes in the graph 310 and the 2 elements in the matrix 400 with the value 0 depict the two empty error nodes in the graph 310. The matrix 401 depicts the observed syndrome s represented in the graph 310. For example, the matrix elements 401a,b have a value of 1 and depict the two shaded check nodes in the Tanner graph 310 and the two 2 elements in the matrix 401 with the value 0 depict the two empty check nodes in the graph 310. The matrix 402 depicts the logical states of the logical nodes in the graph 310. For example, the first element with a value of 0 correlates to the empty logical node in the graph 310, and the second element with a value of 1 correlates to the shaded logical node in the graph 310. APPROXIMATE INFERENCE ALGORITHMS AND BELIEF PROPAGATION Figure 5A and 5B demonstrate the difference between a Tanner graph and decoding graph representation. Figure 5A depicts a graph 500 of a surface code. The graph 500 is a Tanner graph. The graph 500 shows a relationship between check nodes and error nodes of a surface code. In the Tanner graph 500, each error node exists in the middle of a chain of "check node - error node -check node". Figure 5B depicts the Tanner graph of Figure 5A in a decoding graph representation 501. The squares in the decoding graph 501 show check nodes and in particular, the marked check nodes are shaded. In the decoding graph representation 501, the "check node - error node - check node" chains in the Tanner graph 500 are simplified. These chains are replaced with an edge that is a "check-check" and the error nodes are removed from the representation. In this representation, the errors on error nodes are simply shown by edges of the graph. The bold edges in the decoding graph 501 show errors associated with error nodes. In this example decoding graph 501, the information about which error nodes affect which logical nodes must be stored separately, for example as a list of errors for each check node. Figure 6 depicts a Tanner graph 610. The Tanner graph 610 shows a 2D representation of a 3D lattice structure of check nodes and error nodes. In Figure 6, four check nodes are marked. The four marked check nodes are shown as a first check node 601a, a second check node 601b, a third check node 602a and a fourth check node 602b. Figure 6 demonstrates the concepts used by approximate inference algorithms within the concept of quantum computing, and in particular message-passing inference algorithms such as those based on belief propagation (BP). Belief propagation is used in the prior BP-OSD decoder, and is an example of a suitable approximate inference algorithm as may be used in the method(s) described herein. In an example first step of the presently disclosed method, BP is performed on the Tanner graph and syndrome. BP is a message-passing algorithm used for finding "posterior probabilities" associated with error nodes in a Tanner graph. The "posterior probabilities" may also be called "posteriors" or "marginal probabilities". The result of BP may be to find a posterior probability associated with each error node in a Tanner graph. The posterior probability associated with an error node is the estimated probability that one or more error mechanisms have occurred, given an observed syndrome. Put informally, BP can be said to be answering the following problem: given a statistical model of error rates (such as a noise model) and the observed syndrome, what is the probability that each error mechanism occurred? The posterior probability associated with each error node is an updated value of a "prior probability". At the beginning of the method of belief propagation, each error node may be associated with a prior probability. The prior probability associated with each error node may be based on a statistical model of error probability. An adjusted estimate for the probability associated with each error node is updated iteratively during belief propagation until a posterior probability is reached, wherein the posterior probability takes into account the observed syndrome. The statistical model of error probability may be based on quality standards given by hardware manufacturers, or inferred from syndrome data, for example. The skilled person will be familiar with statistical models of error probability. BP works by passing "messages" between check nodes and error nodes in the Tanner graph. The messages may be functions such as marginal probability functions. In general terms, the messages from the error nodes to the check nodes may take the rough form "based on what I know, I think I am...". The messages from the check nodes to the error nodes may take the rough form "based on what I know, I think you are...". After some number of iterations, a consensus is reached about how likely each error is to have occurred on the Tanner graph based on the observed syndrome. These probabilities are the posterior probabilities. This consensus can be referred to as a "solution heatmap". In Figure 6, there are 5 highlighted error nodes of interest: a first error node 600, a second error node 603a, a third error node 603b, a fourth error node 603c and a fifth error node 603d. These error nodes are highlighted in bold. The highlighted error nodes 600,603a,603b,603c in Figure 6 are the error nodes for which BP should give a high estimated posterior. In this example, it has been assumed that all the error nodes have a similar prior probability. However the prior probability associated with each error node may be different. This may depend on the statistical model used to determine the prior probabilities associated with the one or more error nodes. In some cases, there will be a highly likely candidate error node to explain a local syndrome. The first and second check nodes 601a, 601b are an example of a local syndrome. The highest posterior probability error node to have caused this local syndrome 601a,601b is the first error node 600 between the two check nodes 601a,601b. Other error nodes could have been responsible for this local syndrome 601a,601b, however the probability of these would be very low compared to this minimum-weight solution. The posterior probability associated with the first error node 600 is likely to be close to 1. In other cases, there may be multiple high probability sets of errors that could explain a local syndrome. For example, the local syndrome comprising the third and fourth check nodes 602a,602b. This local syndrome 602a,602b could be explained by either of these pairs of error nodes: the second and third error nodes 603a,603b, or the fourth and fifth error nodes 603c,603d. Each of these error nodes will have approximately a posterior probability of 0.5 in this case, as they each occur in one of the two low weight solutions to the local syndrome. The posterior probability may be referred to in association with error nodes of a Tanner graph, or equivalently, in association with columns of a matrix. LINEAR OPERATIONS A fundamental operation of the prior BP-OSD algorithm, and of the presently disclosed methods, is the pivot operation. Pivot operations are basic elements of Gaussian elimination. As will be known by the skilled person, Gaussian elimination is a standard approach in linear algebra. The computational cost of performing Gaussian elimination is usually dominated by the cost of performing pivot operations, depending on the parameters of the algorithm in question. One of the advantages of the presently disclosed methods over the prior art BP-OSD decoder is that, in the present methods, many fewer pivot operations are required to achieve a solution. Therefore, the present methods incur a much improved computational cost in reaching a solution. Figure 7 depicts a flow diagram of pivot operations in matrix representation. Figure 7 depicts three matrices: a first matrix 700, a second matrix 701 and a third matrix 702. The first matrix 700, second matrix 701 and third matrix 702 show a first, second and third stage of a pivot operation procedure, respectively. Each of these matrices depict an augmented matrix with four quadrants. The four quadrants are separated by horizontal and vertical lines. With reference to equation 3, the top left quadrant (with 3 rows and 5 columns) represents a parity check matrix H. The bottom left quadrant (with 1 row and 5 columns) represents a logical matrix G. The top right quadrant (with 3 rows and 1 column) represents the observed syndrome s. The bottom right quadrant (with 1 row and 1 column) represents the state of the one or more logical nodes A of the syndrome data. There are four rows in the augmented matrix 700: a first row 700a, a second row 700b, a third row 700c and a fourth row 700d. There are six columns in the augmented matrix 700: a first column 700e, a second column 700f, a third column 700g, a fourth column 700h, a fifth column 700i and a sixth column 700j. Pivot operations may be depicted using graphs or equivalently, matrix representation. In matrix representation, pivot operations are row operations which are used to change the form of the matrix. After performing one or more pivot operations, the matrix will be in a different form but will give the same solution to the syndrome. Pivot operations are performed on a matrix in order to put the matrix into a clearer form, in which the linear dependence / independence of multiple columns in the matrix can be seen. All operations on the matrices described herein are performed modulo 2. A pivot operation involves adding one row of the augmented matrix to another row of the augmented matrix. Adding one row of the matrix to another row of the matrix does not change the solutions to this system, as long as the operation is performed on the relevant rows of the whole matrix. For example, the pivot operations need to be applied to each relevant row of the augmented matrix, i.e. the operations are applied to rows of the syndrome s and rows of the state of the logical nodes A, as well as to the parity check matrix H and the logical matrix G. Therefore performing pivot operations can cause the state of the syndrome to change. The second matrix 701 depicts performing a pivot operation. To perform a pivot operation, a row and column in the first matrix 700 that have a shared matrix element value of 1 are chosen. This chosen element may be referred to as the "pivot". The shaded row in the second matrix 701 shows the chosen "pivot row" 701a. The shaded column in the second matrix 701 shows the chosen "pivot column" 701b. The overlapping region of the pivot row 701a and the pivot column 701b is the chosen pivot 701c. To perform the pivot operation, the pivot row 701a is added to every other row in the augmented matrix that has a value of 1 in the pivot column 701b. This addition is a vector addition, where each element of the pivot row is added to the element of the same column in the other rows that have a value of 1 in the pivot column. In the example in Figure 7, there are two rows with a value of 1 in the chosen pivot column 701b, the first row 700a and the fourth row 700d from the first matrix 700. The curved arrows on the left of the second augmented matrix 701 show which rows are to be affected by the pivot operation. The third row 700c of the second augmented matrix 701 has a value of 0 in the pivot column 701b, and therefore the elements of the third row are untouched at this stage. The result of this pivot operation is shown in the third matrix 702. As the pivot operation performs an addition modulo 2, the pivot row is the only row with a value of 1 in the pivot column. The other elements in the pivot column now have a value of 0. This pivot column 702a is now in a "reduced form". The reduced form of the pivot column 702a means that this column has a value of 1 in only one of its rows. The state of syndrome s of the third augmented matrix 702 is different to the state of syndrome s in the first augmented matrix 700. The state of syndrome s therefore changes due to one or more pivot operations. However, crucially, the solutions to the syndrome remain unchanged. Figure 8 shows the same pivot operation described with respect to Figure 7, but using a graph representation. Figure 8 depicts a first Tanner graph 800, a second Tanner graph 801 and a third Tanner graph 802. The first Tanner graph 800 correlates to the first matrix 700 of Figure 7. The second Tanner graph 801 correlates to the second matrix 701 of Figure 7. The third Tanner graph 802 correlates to the third matrix 702 of Figure 7.FigureFigure The rows 700a,b,c,d and columns 700e,f,g,h,l,j of the first matrix 700 of Figure 7 correlate to nodes of the first Tanner graph 800 of Figure 8. The rows 700a,b,c,d of the first augmented matrix 700 correlate to the check nodes 800a,b,c,d, respectively, of the first Tanner graph 800. The columns 700e,f,g,h,i,j of the first augmented matrix 700 correlate to the error nodes 800e,f,g,h,l,j, respectively, of the first Tanner graph 800. The second Tanner graph 801 depicts performing a pivot operation, as in the second matrix 701 of Figure 7. The selection of the pivot row 701a and pivot column 701b are identified with the selection of a pivot check node 801a and a pivot error node 801b in the second Tanner graph 801. The selected pivot check node 801a and pivot error node 801b are highlighted in the second Tanner graph 801. The row operations as previously described, are equivalent to "adding" nodes to one another. This "addition" can be performed by adding check nodes to one another, or by adding check nodes to logical nodes 800d. The pivot is depicted as the edge 801c joining the pivot check node 801a and the pivot error node 801b. in the graph representation, the addition involved in the pivot operation comprises removing one or more edges from and adding one or more edges to the Tanner graph. Adding the pivot check node to every other check node comprises removing edges which join the other check node to any error nodes joined to both the pivot check node and the other node. The adding also comprises adding edges between the other check node and any error node which is joined to the pivot check node and not joined to the other check node. In overview, the effect of adding a first node to a second node is that the second node loses its edges to any node that the first and second nodes were both connected to The second node also gains edges to any nodes that the first node was connected to and the second node was not previously connected to. Looking at the second Tanner graph 801, the highlighted pivot check node 801a is "added" to the only other marked check node in the second Tanner graph 801. The highlighted pivot check node 801a is also "added" to the only logical node in the second Tanner graph 801. The highlighted pivot check node 801a can be thought of as a "first node", and the two nodes it is being added to are both a "second node". This operation is represented by the curved arrows in the second Tanner graph 801. This "addition" is performed on these nodes because they are the other two nodes connected to the pivot error node 801b. This is equivalent to adding the pivot row to the other rows in the augmented matrix which have a value of 1 in the pivot column, as described with respect to Figure 7. In this pivot operation, each of the two second nodes lose their edge connected to the pivot error node 801b. Each of the two second nodes also gain edges to the nodes that the pivot error node 801b was not connected to. The third Tanner graph 802 depicts the result of the pivot operation shown in the second Tanner graph 801. Similarly to in the matrix representation, the highlighted error node 802b is said to be in a "reduced form". This means that the highlighted pivot error node 802b is connected only to a pivot check node 802a and not to any other check node. An arrow is used on the edge 802c connecting the highlighted pivot error node 802b and highlighted pivot check node 802a to depict that the pivot error node 802a is in a reduced form. As in the third matrix 702 of Figure 7, the state of the syndrome appears to have changed in the third Tanner graph 802 compared to the state of the syndrome in the second Tanner graph 801 and the state of the syndrome in the first Tanner graph 801. This can be seen by one of the check nodes from the second Tanner graph 802 changing from a marked to an unmarked value in the third Tanner graph 803. This is because the pivot operation performed in the steps of Figure 8 has altered the state of the syndrome. Specifically, as a result of a pivot operation, the state of the syndrome changes due to the state of the check nodes changing. As a result of a pivot operation, each check node joined to the pivot error node other than the selected pivot check node changes from marked to unmarked or vice versa, and hence the syndrome changes. For example, each check node joined to the pivot error node other than the selected pivot check node that was unmarked will become marked after the pivot operation. Also, each logical node joined to the pivot error node changes from "on" to "off" or vice versa. For example, each logical node joined to the pivot error node that was "off" will become "on" after the pivot operation. PIVOT SELECTION CRITERIA IN THE PRIOR ART Figure 9 shows the result of multiple pivot operations in matrix representation. Figure 9 shows an augmented matrix 900 with four quadrants. The four quadrants represent the same quantities as in Figure 7 and are separated by horizontal and vertical lines as in Figure 7. Figure 9 shows the state of the augmented matrix 900 some way through the Gaussian elimination process. One or more pivot operations have already been performed on the augmented matrix 900 in order for it to be in the state depicted in Figure 9. In Figure 9, the augmented matrix 900 has multiple pivot columns in their reduced form. The multiple pivot columns 900a are depicted by the first three shaded columns in the augmented matrix 900. These pivot columns 900a can be seen to be in reduced-form due to each of these columns having only one element of value 1 in their column. The other elements in the pivot columns are of value 0. The pivot columns 900a are linearly independent columns in the augmented matrix 900. At each stage of Gaussian elimination a pivot operation takes place. Multiple pivot operations may need to be performed to complete the Gaussian elimination process. The next pivot operation is chosen based on one or more selection criteria. The selection criteria may be used to choose a pivot based on choosing a pivot row and / or pivot column for the next pivot operation to be performed. The selection criteria used to select one or more pivot operations in the prior art BP-OSD algorithm, discussed first in matrix representation, comprise: 1) choosing a pivot row that has not been used as a pivot row before, 2) choosing a pivot column that has an element of value 1 in the chosen pivot row, and 3) choosing a pivot column with the highest posterior probability (e.g. according to BP). The numbered selection criteria may be referred to as a first selection criterion, a second selection criterion and a third selection criterion. The terms "first", "second" and "third" are used for ease of reference to the criteria, and not to refer to an order in which the criteria should be performed in. The description of using the selection criteria below is an example in which the pivot is chosen based on performing the selection criteria in order, however this does not need to be the case. For example the second selection criteria may be performed before the first selection criteria. The first selection criterion in the prior BP-OSD approach is choosing a pivot row that has not been used as a pivot row before. In the series of pivot operations performed on a matrix, it is preferable for each pivot row chosen to be different to any of the previously chosen pivot rows, such that no row is chosen more than once as a pivot row in the series of pivot operations. Choosing a row multiple times as a pivot row may work against the goal of performing the pivot operations. For example, pivot operations may result in pivot columns being put into a reduced form, and performing a pivot operation using the same pivot row again may take one or more previously used pivot columns out of reduced form. Choosing a row in the matrix that has not been used as a pivot row previously ensures that all previous reduced-form pivot columns stay in a reduced form. For any pivot operation, there may be many rows that have not already been used as pivot rows previously. The second selection criterion in the prior BP-OSD approach is choosing a pivot column that has an element of value 1 in the chosen pivot row. There may be many pivot rows and / or pivot columns that satisfy the first selection criterion and the second selection criterion. Any of the pivot operations that satisfy the criterion may be valid pivot operations in Gaussian elimination. There may be a choice to be made at each pivot operation of which of the multiple valid pivot operations to perform next. The choice of which pivot row and column to use as a pivot at each stage of Gaussian elimination differ significantly between the prior BP-OSD approach and the present approach, as described later on, and this difference in part leads to significant increases in algorithmic speed and efficiency. After the pivot row and pivot column are chosen based on the selection criteria, the pivot row is added to all the other rows that have a value of 1 in the chosen pivot column. The pivot operations are used to put the chosen pivot column into reduced-form. The pivot column may remain in reduced form until the end of the Gaussian elimination. These pivot operations may be performed iteratively until Gaussian elimination is complete. As these pivot operations are performed, more columns of the matrix will be in a reduced form. Therefore more columns in the matrix will become pivot columns as more pivot operations are performed. There will, in general, be a number of columns that are linearly dependent on the pivot columns that have been chosen. In the example of a starting matrix with only linearly independent rows, and with m rows and n>m columns, eventually all the m rows will be pivot rows, and to each will be associated a pivot column in reduced form. The remaining n-rank(H) columns will be linearly dependent on this set of m pivot columns. The remaining n-m columns will be linearly dependent on the set of n pivot columns. In Figure 9, the pivot columns 900a have each previously been used to perform a pivot operation. Two candidate pivot columns for the next pivot operation are highlighted in the augmented matrix 900 as a first candidate pivot column 900c and a second candidate pivot column 900e. The first and second candidate pivot columns 900c,e are potential candidates for being the next pivot column associated with the next pivot operation. Both the first and second candidate pivot columns 900c,e are linearly independent of the pivot columns 900a. Two of the other labelled columns are instead linearly dependent on the pivot columns 900a of the augmented matrix 900, a first linearly dependent column 900b and a second linearly dependent column 900d. The number of linearly dependent columns in the matrix may increase as more pivot operations are performed on the augmented matrix 900. In linear algebra terms, this is because the linearly dependent columns can be constructed by summing up some of the pivot columns. For example, the second linearly dependent column 900d is equal to the sum of all three columns in the set of pivot columns 900a. This result may be unchanged by performing row operations based on the criteria for choosing pivot operations already discussed, or similar criteria. For this example, if it is apparent at some point in the Gaussian elimination that a given column is linearly dependent on some set of linearly independent columns, then this was true at the start of the algorithm and will remain true all the way to the end of the Gaussian elimination process. This means that a syndrome constructed using one or more of these linearly dependent columns could just as well be constructed using some of the columns in the set upon which it is linearly dependent. This will be an important concept to consider in the context of the selection criteria for the presently disclosed methods. The third selection criterion is based on the posterior probabilities determined during belief propagation. Each of the one or more candidate pivot columns has a posterior probability associated with it. The candidate pivot column associated with the highest posterior probability is chosen as the pivot column for a pivot operation. Equivalently, the candidate pivot error node associated with the highest posterior probability is chosen as the pivot error node for a pivot operation. If the candidate pivot column associated with the highest posterior probability is linearly dependent on one or more pivot columns, this column is skipped and another pivot column is chosen. The column with the next highest posterior probability, and that is not linearly dependent on the one or more previously used pivot columns, is then chosen as the pivot column. The column with the second highest probability could be linearly dependent on the one or more columns that have already been used as pivot columns, and therefore this may be skipped, and so on. Having chosen the pivot column for the next pivot operation, the pivot row is chosen. The pivot row is chosen by finding a row that has an element with a value of 1 in the chosen pivot column for the current pivot operation. This row cannot have already been used as a pivot row. Crucially, in the prior BP-OSD approach, Gaussian elimination is run to completion by continuing to select pivot columns based on the highest available posterior probability. The syndrome data is not consulted during this process. Equivalently, the selection criteria used to select one or more pivot operations in the prior art BP-OSD algorithm, discussed now in graph representation, comprises: 1) choosing a pivot check node that has not been used as a pivot check before, 2) choosing a pivot error node that is joined by an edge to the chosen pivot check node; 3) choosing a pivot check node with the highest posterior probability (e.g. according to BP). Figure 10 shows the Tanner graph 1000 representation of Figure 9. The pivot columns 900a of Figure 9 are shown as a group of pivot error nodes 1000a in the Tanner graph 1000. The pivot error nodes 1000a are connected to only one check node each. This check node will be different for each of the pivot error nodes 1000a. The one check node that each of the pivot check nodes 1000a is connected to is a pivot check node. The pivot check between each of the reduced-form error nodes 1000a and the pivot check nodes are shown by an edge with an arrow in Figure 10. The first candidate pivot column 900c is shown as a first candidate pivot error node 1000c and the second candidate pivot column 900e is shown as a second candidate pivot error node lOOOe. These candidate pivot error nodes are visually linearly independent as they are connected to one or more check nodes that are not pivot check nodes. In other words, the first and second candidate pivot error nodes 1000c,e are each connected to one or more check nodes that the pivot error nodes 1000a are not connected to. The first linearly dependent column 900b is shown as a first linearly dependent error node 1000b and the second linearly dependent column 900d is shown as a second linearly dependent error node lOOOd. These error nodes are visually linearly dependent on the pivot error nodes 1000a because the only check nodes that these error nodes are connected to are pivot check nodes. In other words, the only check nodes that the first and second linearly dependent error nodes 1000b,d are connected to are check nodes that the pivot error nodes 1000a are connected to. THE BP-OSD APPROACH (PRIOR ART) Figures 5a, 5b, to 10 and their accompanying description describe belief propagation and the pivot operation, and selection criteria used for selecting pivot rows and columns (or equivalently pivot error nodes and pivot check nodes) in the prior BP-OSD approach. The high-level steps of the prior art BP-OSD algorithm will now be discussed, to the extent that understanding of this prior approach is useful for understanding the invention and its relationship to the prior art. Broadly, the outline of the BP-OSD algorithm may be defined in three stages: 1) performing BP, 2) performing Gaussian elimination to completion, and 3) performing a solution search. The first stage of BP-OSD is to perform BP on the syndrome data in order to produce an approximate posterior probability for each error node in the dataset. The second stage of BP-OSD is to perform Gaussian elimination to completion by performing multiple pivot operations. The pivot column (pivot error node) for each pivot operation is chosen from one or more candidate columns (candidate pivot error nodes) using the selection criteria described above. Gaussian elimination is run to completion without consulting the syndrome data. Figure 11A-C show steps as part of stage 2, i.e. the Gaussian elimination stage of the prior BP-OSD approach. Figure 11A denotes a first matrix 1100, Figure 11B denotes a second matrix 1101 and Figure 11C denotes a third matrix 1102. Each matrix is of the form [H s] where the parity check matrix H and the syndrome s are separated by a vertical line in the matrix. Compared to previous Figures involving matrices. Figure 11 does not include the logical matrix G and the state of the logical nodes A. The matrices 1101,1102,1103 of Figures 11A-C use black squares to denote matrix elements with a value of 1 and blank spaces to denote matrix elements with a value of 0. The matrices 1101,1102,1103 are schematics only and may not accurately relate to each other and may not accurately depict an associated Tanner graph. Below each matrix 1100,1101,1102 is a graph of posterior probabilities associated with each column of the matrix. Each posterior probability is denoted by a small circle. The posterior probability graphs can be read as a graph where the y axis is labelled as posterior probability and the x axis is labelled as the column index of the matrix above it / labelling of error nodes in a Tanner graph. Therefore a higher value of posterior probability will be shown by a circle being higher up in the y direction of the posterior probability graph. The first matrix 1100 has a first posterior probability graph 1105, the second matrix 1101 has a second posterior probability graph 1110 and a third matrix 1102 has a third posterior probability graph 1110. The posterior probability graphs 1105,1110,1115 show the posterior probabilities associated with each of the error nodes, and therefore columns of the relevant parity check matrix H above them. In Figure 11A, the columns of the first matrix 1100 are not ordered with respect to the posterior probabilities associated with the columns of the first matrix 1100. This can be seen by the random nature of the first posterior probability graph 1105 with respect to the column index of the first matrix 1100 above it. In Figure 11B, the columns of the second matrix 1101 are ordered with respect to the posterior probabilities of the columns of the second matrix 1101 above it. This can be seen by the decreasing trend in posterior probability in the second posterior probability graph 1100. The second posterior probability graph 1100 shows a decreasing trend in posterior probabilities with increasing column index of the second matrix 1101. The columns of the first matrix 1100 have been reordered such that the column of the matrix with the highest posterior probability is the first column of the second matrix 1101 and the column of the matrix with the lowest posterior probability is the last column of the second matrix 1101. The reordering of the first matrix 1100 in the second matrix 1101 may not be accurately portrayed in the second matrix 1101 with respect to the first matrix 1100. The second matrix 1101 may not show the values of '1' and '0' in the matrix in the correct places upon reordering, if one were to accurately reorder the columns. The reordering of the columns in the second matrix 1101 is shown purely schematically in Figure 11B in order to highlight a trend in the second posterior probability graph 1110 upon reordering. Reordering of columns is used in BP-OSD in order to choose pivot operations in an order based purely on the posterior probability of the columns. Using the second matrix 1101, Gaussian elimination proceeds from left to right and top to bottom, whilst still abiding by the selection criteria. For example, the first pivot operation may use the first column as the pivot column, and the first row with a value of '1' in this pivot column. A pivot operation is then performed by performing the addition step based on the chosen pivot row and pivot column. As the pivot operations continue iteratively, the next column from the left is considered as a candidate pivot column. For example, the first pivot column could be the first column, the second pivot column could be the second column, the third pivot column could the third column, and so on. However, as previously discussed, some columns may be skipped and not be used a pivot columns. For example, imagine that the i-th column from the left of the matrix is considered as a candidate pivot column, and each of the i-1 columns before this column have been used as pivot columns previously. If each of the Ts in the i-th column are in rows of the matrix that have already been pivot rows, then the ith column is dependent on the previous i-1 columns. In this case, the ith column is skipped and is not used as a pivot column. The next column to be looked at as a potential pivot column is the i+l-th column. If this column is not linearly dependent on the i columns before it, it may be chosen as a pivot column. Any of the rows in the bottom m-i+1 rows of the matrix with a '1' in this i+l-th pivot column may be chosen as a pivot row. The pivot operation is then performed. This process continues until all m rows in the parity check matrix H have been used as pivot rows or all rows that have not been used as pivot rows contain only zeroes. This can be considered to be performing the pivot operations, or equivalently, Gaussian elimination, to completion. This process requires significant computer resources and is a major limiting factor when it comes to the speed of the prior algorithm. After performing the pivot operations until completion, the second matrix 1101 may take the form of the third matrix 1102, as in Figure 11C. The third matrix 1102 shows the m previously-used pivot columns 1102a as shaded columns. These pivot columns 1102a are mostly towards the left of the third matrix 1102, due to the choice of pivot columns from left to right. The pivot columns 1102a are linearly independent, and said to be in reduced-form. In the pivot columns 1102a, the row in which the '1' is in the pivot column is different for each of the pivot columns 1102a. The remaining n-m unshaded columns are linearly dependent on the m pivot columns 1102a. It is also noteworthy that running the pivot operations has changed the state of the syndrome s. The syndrome s in the first matrix 1100 and the second matrix 1101 is the same, as no pivot operations have been performed at this stage. The third matrix 1102 shows a different syndrome s due to multiple pivot operations having taken place. The third stage of BP-OSD is to perform a solution search. After performing the Gaussian elimination of stage 2, multiple solutions to the syndrome s may exist. The multiple solutions are searched to choose an appropriate solution to the syndrome s. The most naive solution may be found using a version of BP-OSD often referred to as BP-OSD-O, or zeroth order BP-OSD. Figure 12 shows the second matrix 1102 of Figure 11C, but highlighting the solution to the syndrome using BP-OSD-O. In Figure 12, elements of the second matrix 1102 of interest are highlighted as white squares. Each highlighted element in the second matrix 1102 has a value of '1', as the boxes represent elements with a value of 1 in the matrix. For each highlighted element of the syndrome 1200a, there exists one column in the group of pivot columns that contains a '1' in this same row. This idea is demonstrated by connecting the highlighted syndrome element to an element in a pivot column using a dashed horizontal line. For example, for the highlighted element in the syndrome 1200a, the first column in the matrix has a highlighted element 1200b in only this row. It is only be necessary to declare that the error mechanism associated with the error nodes of these pivot columns occurred in order to recover a solution to the syndrome. The four highlighted elements of the syndrome correlate to four pivot columns of the second matrix 1102. This means that a solution to the syndrome exists based on the four pivot columns which include a highlighted element, 1200c,d,e,f. Multiple methods of solution searching exist suitable for use in BP-OSD, but whichever form of BP-OSD is used to perform the solution search, of the possible solutions considered, a solution that has the highest prior probability e is chosen as the solution to the syndrome. This solution to the syndrome is used to predict the error mechanisms that occurred on physical qubits. Searching multiple solutions is likely to yield a more optimum solution to the syndrome. Searching more solutions is therefore ideal in terms of solution accuracy. However, searching a large number of solutions results in a larger computational cost. A problem with the prior BP-OSD approach is that it slows down substantially with the size of the decoding problem. In the matrix representation of the syndrome data, this means the BP-OSD algorithm slows down with increasing numbers of columns and / or rows representing the syndrome data in the matrix. There are two reasons for this. The first reason is that Gaussian elimination running to completion in BP-OSD has a computational cost that is cubic in the size of the decoding problem. Secondly, the searching stage of the preferred method of BP-OSD (BP-OSD-CS) has a large computational cost due to the large number of solutions searched in the final stage of BP-OSD. The presently disclosed method addresses both of these highlighted issues with the prior art BP-OSD algorithm. Firstly, the present method does not perform Gaussian elimination to completion, and considers a current state of the syndrome when selecting pivot error and pivot check nodes. This significantly improves the speed of the decoding algorithm. Secondly, the present method performs searches involving smaller subsections of the decoding problem. Considering smaller subsections of the decoding problem allows for a reduced computational cost and algorithm speed-up, particularly in comparison to the prior art BP-OSD algorithm. A NEW QUANTUM ERROR CORRECTION METHOD Figure 13 depicts a quantum error correction method 1300 according to the present disclosure. The method 1300 may be described as the AC decoder algorithm herein. The method 1300 is a computer-implemented quantum error correction method for decoding errors in a quantum computer system, for example a quantum computing system 2700 as depicted in Figure 27, which comprises a decoder apparatus and a register of quantum devices such as qubits. The method is suitable for being performed by a decoder apparatus comprising one or more processors, and computer memory storing instructions which, when performed, cause the one or more processors to perform the method depicted in Figure 13. The decoding method is particularly suited for a quantum low density parity check, Q.LDPC, code error correction procedure, but the code may be a quantum stabiliser code more generally, or any of linear, quantum stabiliser, subsystem, quantum dynamical automorphism code. At step 1302, syndrome data and graph data are received at the decoder apparatus. The syndrome data is in an initial state. The syndrome data is representative of an error state of the quantum devices in the register of quantum devices. The graph data is representative of a graph comprising a plurality of error nodes and a plurality of check nodes. The error nodes represent error mechanisms that can occur on the register of the quantum devices. Each check node is associated with one or more measurements which can be performed on the register of quantum devices. The initial state of the syndrome data indicates a check value of marked or unmarked for each check node based on an outcome of its associated one or more measurements. As noted elsewhere in the description, a marked check value for a check node indicates that an odd number of error mechanisms represented by error nodes joined to the check node have occurred. The graph may further comprise edges which join the check and error nodes according to a relationship between the check and error nodes, and in particular the graph may comprise a first plurality of edges. Each of these edges joins a check node with an error node if the error mechanism represented by the error node can affect the check value of the check node, for example in such a way that the error mechanism occurring can affect whether the check node is marked or unmarked in the syndrome data. At step 1304, an error probability associated with each of the one or more error nodes is determined. The error probability associated with each of the one or more error nodes is determined based on a statistical mode of error rates associated with the error mechanisms. This determination may additionally be carried out based on, e.g. using, the syndrome data. The error probabilities may also be called posterior probabilities, as previously discussed. The error probability associated with each of the one or more error nodes may be determined using an approximate inference algorithm such as a belief-propagation method, as discussed above with respect to Figures 5a, 5b and 6 and as would be understood by the skilled person. The initial state of the syndrome data indicates a check value of marked or unmarked for each check node based on an outcome of its associated one or more measurements. As the algorithm updates and / or performs operations on the syndrome data, e.g. during step 1306, the state of the syndrome changes in a manner which may mean the state of the syndrome loses its direct relationship with these measurements, but this is done in a way which does not change the overall solutions to the syndrome. As operations are performed on the syndrome data, its relationship with the measurements is not fully lost, since the syndrome remains some linear function of the underlying measurements. Linear operations may be performed which change this linear function, but reversibly so that no information is lost. At step 1306, modified graph data is generated. This process comprises iteratively performing linear operations on the graph data and syndrome data based on a current state of the syndrome data to determine an independent error node associated with each marked check node. This process can be thought of as forming one or more clusters in the graph and updating a state of the syndrome data according to the error probabilities associated with the one or more error nodes and a current state of the syndrome data until a candidate solution to the syndrome data is reached. As part of this step, operations are performed on the graph data which modify, i.e. change, the graph represented by graph data. The skiHed person will understand that, while reference is made herein to 'modifying the graph', e.g. by forming clusters and the like, these operations should be understood within the context of a processor updating a data structure or data structures, in a manner which results in the associated graph changing form or being modified. Step 1306 may comprise performing one or more first pivot operations. The pivot operations are similar in form and function to those described above with respect to the prior BP-OSD algorithm, however the selection criteria for which check / error nodes should be selected as pivot check and error nodes differs significantly. This will be explained with respect to the flowcharts of Figure 14a and Figure 14b. At step 1308, a correction is determined, by the decoder apparatus, based on the modified graph data. For example, the correction may correct for one or more error mechanisms that occurred on the register of quantum devices. Optionally, in an implementation in which multiple possible solutions are assessed, the correction may additionally be determined based on the error probabilities (see 'Cluster Growth' below). Step 1308 may further comprise identifying a plurality of active error nodes in the graph represented by the modified graph data. An error node can be considered 'active' if it is estimated that an odd number of its associated error mechanisms occurred. Identifying a correction may then comprise identifying a plurality of logical nodes joined with active error nodes. In an example, the correction is determined based on the solution(s) to the syndrome data represented by the modified graph data. Once a solution has been reached, a correction can be determined in a known way. For example, the method may comprise measuring a logical state encoded in the quantum devices of the quantum computer to obtain a logical state measurement, and applying the correction for the error state to the logical state measurement. Step 1306, or 1308, may additionally comprise determining a solution to the syndrome data. Depending on the implementation, at the end of step 1306, the graph data may comprise, for each marked check node, an independent error node associated solely therewith. The graph is therefore in a form in which a solution to the syndrome data can be derived. Optionally, each independent error node and its associated marked check node may be described as forming a 'cluster' in the graph, and taken together these clusters represent a viable solution to the syndrome data. Further optionally, these clusters may be 'grown', as will be described, in order to explore more potential solutions with the ultimate view of selecting the most probable solution based on the error probabilities associated with the various one or more error nodes. CANDIDATE CLUSTER FORMATION Figure 14a depicts a method 1400 of performing one or more pivot operations in an iterative manner in order to generate modified graph data, and in the process to modify the graph represented by the graph data. The aim of method 1400 is to generate graph data which comprises an independent error node associated with each marked check node, i.e, to form candidate clusters in the graph. The pivot operation of method 1400 is similar to the pivot operation described above with respect to the prior BP-OSD algorithm, however the pivot selection criteria are significantly different. Method 1400 could be carried out, for example, as part of step S1306 of method 1300. The pivot operations, and the pivot selection criteria, may be described as "first" pivot operations and "first" pivot selection criteria when used in connection with the cluster formation method depicted in method 1400. This is to distinguish from the "second" pivot selection criteria and second pivot operations performed during the cluster growth stage. At step 1402, the pivot selection process begins. The selection process considers pairs of error and check nodes which are joined by an edge. The method 1400 comprises selecting a pivot error node and a pivot check node from among these error nodes and check nodes which are joined by an edge on the graph. This selection is carried out according to first pivot selection criteria, which are defined in steps 1422, 1424, and 1426. In cluster formation, pivot operations are performed, and a pivot check and pivot error are sought that satisfy: I) the check has not yet been used as a pivot check; ii) the check must be marked; lit) Given these requirements, a pair is chosen that has the highest error probability. The first pivot selection criteria can therefore comprise one, more, or all of the following requirements: 1) The check value associated with the pivot check node should be 'marked' in the current state of the syndrome data, 2) The pivot check node should not have already been used as a pivot check node, 3) Subject to any other pivot selection requirements; a pivot error node (and an associated pivot check node) should be selected based on the error probabilities, e.g. the pivot error node should be selected based on the highest available error probability. These pivot selection criteria are represented by steps 1422, 1424, and 1426 in the flowchart of Figure 14a. When a suitable pivot error node and pivot check node have been selected, a pivot operation is performed. The pivot operation is represented by box 1405 in Figure 14a. This pivot operation comprises adding, at step 1404, the pivot check node to every other check node joined to the pivot error node. Adding the pivot check node to every other check node comprises removing edges which join the other check node to any error nodes joined to both the pivot check node and the other node. The adding also comprises adding edges between the other check node and any error node which is joined to the pivot check node and not joined to the other check node. Equivalently, to describe the pivot operation with respect to matrix notation, each element of the pivot row is added to every other row in the augmented matrix that has a value of 1 in the pivot column. At step 1406, as part of the pivot operation 1405, the state of the syndrome data is updated by changing, for every check node joined to the pivot error node other than the selected pivot check node, the check value from marked to unmarked, or vice versa. The state of the syndrome data is therefore updated following selection of the pivot error and check node(s), where this selection is based on the current state of the syndrome data. By inspection of the method 1400, it will be appreciated that present methods may comprise forming one or more clusters in the graph (e.g. candidate clusters), and updating a state of the syndrome data (e.g. at step 1406) according to the error probabilities associated with the one or more error nodes and a current state of the syndrome data (as required by the selection criteria 1420). Steps 1404 and 1406 are steps performed as part of a pivot operation 1405, which are in line with the process described above with respect to the prior BP-OSD algorithm. At step 1408, it is determined whether or not a first stopping criterion is met. As can be appreciated from Figure 14a, where more than one pair of error and check nodes meet the selection criteria 1422 and 1424, one or more pivot operations will be iteratively performed until the stopping criterion (or criteria) is reached. The plurality of first pivot operations are performed, one after the other, until the first stopping criterion is reached. The first stopping criterion is reached when no further check or error nodes meet the first selection criteria 1422,1424. If the first stopping criterion is met, the one or more processors proceed to step S1410 of the method 1400. If the first stopping criterion is not met, the method continues to select an error node to be the pivot error node, and its paired check node to be the pivot check node, based on an error probability associated with the error node. In particular, the pair of error and check nodes is selected, subject to other first selection criteria 1422 and 1424, according to which of the remaining / available error nodes has the highest error probability. After a pivot operation has been performed at block 1405, the method proceeds to step 1402 and the pivot error and pivot check node selection process begins again. Assuming there is an available pair that meets the selection criteria, a different pivot error node and a different pivot check node will be chosen. The pivot error node and pivot check node will be different to the pivot error node and the pivot check node used in the previous iteration, as well as those used in any previous iteration, as defined by the first pivot selection criteria in the numbered list above. At step 1410, one or more candidate clusters are formed in the graph. The one or more candidate clusters are formed when the first stopping criterion is reached. The candidate clusters comprise: any check nodes selected as pivot check nodes, and any error nodes selected as pivot error nodes. Equivalently, the candidate clusters comprise a pair comprising a pivot check node and a pivot error node joined to one another, where the pivot error node in each pair is joined solely to its paired pivot check node. In other words, when the first stopping criterion is reached, the graph data comprises, for each marked check node, an independent error node associated solely therewith. As can perhaps best be appreciated from the graphs which will be discussed later, the candidate clusters comprise one or more pairs of pivot check nodes and pivot error nodes joined to one another, wherein the pivot error node is joined solely to its paired pivot check node. The candidate clusters represent the candidate solution to the syndrome data. In particular, the values of the error nodes in the one or more candidate clusters, i.e. whether each error node is on or off, represents a viable solution to the observed syndrome data. Figure 15 shows an example process of forming one or more clusters according to the method 1300 and the method 1400. In Figure 15 there are three graphs: a first graph 1500, a second graph 1501 and a third graph 1502. The first graph 1500 depicts example syndrome data part-way through cluster formation. The second graph 1501 depicts a first pivot operation being performed on the syndrome data of the first graph 1500. The third graph 1502 depicts the result of the first pivot operation performed in the second graph 1501. Each error node in Figure 15 is labelled with a number next to it. This number depicts the error probability associated with this error node as determined at step 1304 of method 1300. For example, in the first graph 1500, the error node 1500a is labelled with an error probability of 0.91. A cluster in the graph is depicted by an error node and a marked check node that are joined by an edge with an arrow. Error nodes and check nodes that have been previously used in pivot operations or are being currently used in a pivot operation are shown with a bold outline. These error nodes and check nodes are said to have been "considered". These nodes form part of the candidate clusters at step 1410 of method 1400. The first graph 1500 comprises two clusters, as depicted by the error node-check node pairs that are joined by an edge with an arrow. In each cluster, it can be seen that each pivot error node is joined solely to its paired pivot check node. A pivot error node and pivot check node are selected according to first pivot selection criteria. Referring to the numbered list of the first selection criteria above, and considering only criteria 1) of the first pivot selection criteria, there are two candidate pivot check nodes in the first graph 1500 in which the check values are marked, shown by the two shaded squares. There is only one pivot check node in the first graph 1500 that satisfies both criteria 1) and criteria 2), where the pivot check node is marked and has not yet been used as a pivot check node. This pivot check node is highlighted as the pivot check node 1501a in the second graph 1501. There are two error nodes, 1500h and 1500f that satisfy criteria 3) of the first pivot selection criteria 1420. According to criteria 4), error node 1500h is chosen as the pivot error node for this first pivot operation because it has the highest available error probability of the two candidate error nodes. This pivot error node is highlighted as the pivot error node 1501b in the second graph 1501. In the second graph 1501, the stage 1404 of the method 200 is depicted. In the second graph 1502, the pivot check node 1501a is added to every other check node joined to the pivot error node 1501b. The result of the first pivot operation is shown in the third graph 1502. In the third graph 1502, there are now three clusters formed. The state of the syndrome changed during this first pivot operation. This can be seen by a previously unmarked check node in the second graph 1501 becoming a marked check node 1502b in the third graph 1502. The first stopping criterion has not been reached, however, as there are further check nodes and error nodes that meet the first pivot selection criteria. Therefore another first pivot operation will continue after the state of the syndrome data shown in the third graph 1502. The marked check node 1502b is eligible to be the pivot check node of the next first pivot operation as it now satisfies criteria 1) of the first pivot selection criteria, as well as criteria 2). The highlighted error node 1502c is a candidate pivot error node for the next first pivot operation, due to satisfying criteria 3) and 4) of the first selection criteria. Figure 16 shows multiple formed clusters in a graph 1600. The graph depicts a graph 600 for which the first stopping criterion has been reached. The first stopping criterion is reached as there are no further check or error nodes that meet the first selection criteria. In the graph 1600, five clusters are present. The graph 1600 has multiple interesting properties. Firstly, each marked pivot check node is joined to a pivot error node, and this pivot error node is joined solely to its paired marked check node. This means a candidate solution to the syndrome can be found by considering all the pivot error nodes joined to marked pivot check nodes. There are also unmarked pivot check nodes, for example the check node 1600d, in the graph 1600. This occurs due to each of the one or more first pivot operations changing the state of the syndrome. Another interesting property is that no two clusters in the graph 1600 are joined to each other by an edge. Also none of the clusters in the graph 1600 are joined by an edge to a logical node, for example the logical node 1600d. Figure 16 gives an example of a final formed cluster state that provides a solution to the syndrome, and one in which there is basis for possibly growing clusters in the later stages of the presently disclosed algorithm. The cluster forming stage of the presently disclosed method can be shown in both Tanner graph representation and matrix representation of the decoding problem. Figure 24 shows the matrix representation of the end of a cluster formation stage (i.e. the end of method 1400). Criteria 1) of the first pivot selection criteria is demonstrated in the matrix view as there being a '1' in the row of the syndrome vector s corresponding to the pivot row. in Figure 24, every '1' in the syndrome vector 2400a corresponds to a check node with a marked check value in the Tanner graph representation. For every '1' in the syndrome vector 2400a, there exists a column 2400b which has a '1' in only that row 2400c. For example, the pivot column 2400c has an element of value '1' only in the row in which an element of value T exists in the syndrome vector 2400a. There are also pivot columns 2400d in Figure 24 in which the pivot rows associated with these associated pivot columns 2400d do not contain a syndrome '1'. In the example shown in Figure 24, there are no pivot columns that have a T in a row in which the logical matrix G also has a '1'. CLUSTER GROWTH At the conclusion of the cluster formation stage, i.e. after method 1400 has terminated, candidate clusters have been formed, and these candidate clusters are representative of a viable candidate solution to the observed syndrome. Among the considered parts of the graph data there will be one solution to the syndrome. As part of step 1306, the method 1300 may comprise identifying this solution. In some implementations, additional viable solutions are also explored. This is done via a cluster growth stage, in which the candidate clusters are "grown” in order to introduce additional possible solutions to the syndrome. The most likely, i.e. probable, solution available after the duster growth stage is then identified based on the error probabilities associated with the error nodes. Figure 14b depicts a method 1450 according to the present disclosure. The method 1450 can be performed as part of step 1306 defined in method 1300, and is suitable for growing the one or more candidate clusters generated by method 1400 and producing one or more "fully grown” clusters. At step 1451, the error node selection process begins. The ultimate aim of the error node selection process is to identify whether error nodes which are not currently part of a cluster should be added to a cluster and, if an error node should be added to a cluster, whether a pivot operation should be performed. At each stage, the selection criteria for the error is as follows: the error has not already been considered; the error is adjacent to a check that has been considered (a pivot check); and of all the errors satisfying these requirements, the error is selected with the highest error probability. Therefore the error node selection criteria in order to select an error node to be "considered", may comprise one, more, or all of: 1) A requirement that the error node has not already been considered; 2) A requirement that the error node be joined to a check node that has been a pivot check node; 3) Selecting, subject to any other error node selection criteria, an error node to be the considered error node based on an error probability associated with the error node. The error node selection criteria 2) and 3) together can be read as "look at the boundary of the part of the graph that we know about, and incorporate the most promising error node". The error node selection criteria are based on the error probabilities associated with the one or more error nodes and / or the current state of the syndrome data, and these error node selection criteria are represented by steps 1462, 1464, and 1466 in method 1450. In an alternative implementation, requirement 2) of the error selection criteria may be adjusted as follows: a requirement that the considered error node be an error node that has previously been joined to a check node involved in a pivot operation. A check node which has been ’'involved' in a pivot operation might comprise, for example, a check node that was changed by a pivot operation in some way. In particular, any check node which has had its edges changed or adjusted in any way during the performance of the pivot operations. in a particular implementation of the present method, criteria (2) and (3) may be replaced with a set of requirements that are in general based on any combination of: the error probabilities associated with the error nodes; the structure of the Tanner graph at the time of selection or the history of the structure; or the full history of operations performed over the course of execution of the method up to the time of selection. For example, a particular implementation may include criterion (1) and (3) as described above, and where criterion (2) is replaced with the requirement that the considered error node be joined to a check node that has been involved in a check node addition operation at any time in the execution of the method up to the time at which the selection is to be made. For the purposes of this example alternative criterion, in performing any check node addition operation, where one check node is added to a second check node, both check nodes are said to have been involved in the check node addition operation. At step 1452, it is determined whether a cluster growth criterion is met. In the cluster growth stage, an additional k error nodes are considered, k is simply a parameter of the algorithm that can be modified according to the particular implementation, for example to adjust the balance between algorithmic speed and accuracy. Therefore, the cluster growth criterion may simply be that a predetermined number, k, of error nodes have been considered. Growing the one or more candidate clusters in the graph therefore comprises considering a number, k, of error nodes not forming part of a cluster. At step 1453, the error node which meets the error node selection criteria, and which is therefore chosen as a "considered" node, is added to a candidate cluster. The considered error node is added to any cluster which it is joined to. This can have the effect of growing a single cluster, or can have the effect of joining two previously unconnected clusters together. This is best appreciated by inspection of the graphs. Examples of cluster growth are provided later. As can be appreciated from flowchart 14b and its accompanying description, the method 1450 (and therefore the method 1300) may comprise growing the one or more candidate clusters in the graph (e.g. those generated at step 1410 of method 1400) according to the error probabilities associated with the one or more error nodes (e.g. at step 1466) and / or a current state of the syndrome data until a cluster growth termination criterion is met (e.g. at step 1452). For each 'considered' node added to a cluster at step 1453, it is additionally determined at step 1454 whether a "second" pivot operation should be performed based on second pivot selection criteria. The one or more second pivot selection criteria comprise a requirement that the considered error node be joined to at least one check node that is not already a pivot check node. If the one or more second pivot selection criteria are met, the second pivot operation is performed at step 1455. The pivot operation performed at step 1455 is similar in form or function to the pivot operations described elsewhere herein and need not be discussed in further detail here. If the considered error node is connected to at least one check node that is not a pivot check node, this is referred to as a "linearly independent error node". As a result of the pivot operation at step 1455, the considered error node is added to a new cluster. In other words, if a linearly independent error node is chosen as the considered error node for a pivot operation, the result of the operation results in a new cluster being formed. If the one or more second pivot selection criteria are not met, it implies that the considered error node is a "dependent" error node, and the error node is classified, labelled or identified as such at step 1456. Again, the method dynamically determines whether pivot operations should be performed, improving algorithmic efficiency and making good use of available computer resources. As a result of the step 1456, the candidate cluster grows due to the addition of one or more nodes to the candidate cluster. Growing the one or more candidate clusters in the graph therefore comprises adding a considered error node to either a candidate cluster or a new cluster if error node selection criteria are met. In other words, the "growth" associated with the cluster growth stage may be described in terms of a growth in the number of clusters and / or a growth in the size of one or more candidate clusters. At block 1457, the modified graph data comprises one or more clusters, and these are considered to be "fully-grown". "Fully-grown" implies that the stopping criterion has been reached and the clusters will therefore not be grown any further. The number of fully-grown clusters at step 1457 may be greater than the number of candidate clusters formed at block 1410. In other words, there number of fully-grown clusters at the end of the growth stage may be more than the number of candidate dusters formed at the end of the cluster formation stage. A purpose of the duster growing stage is to identify likely solutions which should be 'searched', or assessed, as part of a determination of an optimised solution to the syndrome data at step 1308. This is sometimes described as exploring the "degeneracy" of the problem. In the duster formation stage (e.g. as exemplified by method 1400), each iteration comprises choosing an error node and a check node and performing a pivot operation, in the cluster growth stage (e.g. as exemplified by method 1450), a pivot operation may not be performed at each iteration. Whether or not a pivot operation is performed depends on the connectivity of the error that is chosen by using the error node selection criteria above. If there is at least one check node connected to the chosen error node that is not already a pivot check, then one of these non-pivot check nodes is chosen as a pivot check node, and a pivot operation is performed using the chosen error node as the pivot error. Both the pivot check node and error node are then marked as considered. If, on the other hand, every check node connected to the error is a pivot check node, then this means that the error node is linearly dependent on the error nodes that are already pivot error nodes For example, if an error node e is connected to two pivot check nodes ca and cb, then the column corresponding to the e has a '1' in rows a and b. The pivot errors associated with c0 and Ch, and eb, are both in reduced form and have, respectively, a '1' in just row a and a '1' in just row b. Therefore the sum of e0 and e* is e, so e is linearly dependent on them. in the case where the considered error node is not joined to at least one check node that is not already a pivot check node, error node e cannot be a pivot error, as discussed previously with respect to Gaussian elimination, in this case the one or more second pivot selection criteria are not met. If the one or more second pivot selection criteria are not met, the considered node is classified as a dependent error node. The error node e is marked as considered and the next iteration is performed, without doing a pivot operation. Incorporating this dependent error by marking it as considered has the effect of 'gluing' some number of clusters together, or growing an existing candidate cluster. In this way, it is the dependent errors that are responsible for the cluster structure of the final Tanner graph. As a pivot operation is not performed in the case where a dependent error node is encountered, as 'well as not removing connections between the error node and any check nodes, no connections are removed between this dependent error node and any logical nodes in this case. Therefore, these dependent errors are the only considered errors that may be connected to logical nodes at the conclusion of the algorithm. The cluster growth process is exemplified by Figures 17 and 18. Figure 17 shows a graph part-way through a cluster growth stage. Figure 17 shows the growth of one or more clusters. In Figure 17, a linearly independent error node is formed. With reference to a first graph 1700 in Figure 17, a pivot error node is chosen to consider by using the error node selection criteria. Choosing one of error nodes 1700a, 1700b or 1700c as the pivot error node would violate the error node selection criteria. This is because the error nodes 1700a, 1700b and 1700c are already considered, and therefore (with reference to the numbered list of criteria above), violate criterion 1) of the error node selection criteria. The error node 1700d is not chosen in this example as it is not connected to a considered node, violating criterion 2) of the error node selection criteria. Of error nodes 1700e and 1700f, 1700e has the higher posterior (0.84 >0.83) so it is selected, as detailed in criterion 3) of the error node selection criteria. In a second graph 1701, the check node 1701a is chosen as the pivot check node. Both the check node 1701a and the error node 1701b are marked as considered. A second pivot operation is performed using the check node 1701a and the error node 1701b. In a third graph 1702, the error has been put in reduced form, indicated by the arrow 1702a. This process is very similar to that in the cluster formation stage. Figure 18 depicts the state of the Tanner graph immediately after the process depicted in Figure 17 (1702). In a first graph 1800, the highest posterior error connected to a considered node is 1800a, so this is selected to be considered. All the check nodes connected to 1800a are already pivot checks, which means it is linearly dependent on the pivot errors associated with these checks. In this case, the error node 1801a is marked as considered and a second pivot operation is not performed. In other words, one or more second pivot selection criteria are not met and therefore the considered not is classified as a dependent error node. In a first graph 1800, there are four candidate clusters 1800b, 1800c, 1800d, 1800e. A second graph 1801 represents the result of a second pivot operation on the first graph 1800. In the second graph 1801, three of the candidate clusters have been 'glued together' into a single larger cluster 1801a. This is how this cluster growing process results in clusters growing in size. Also note that the single larger cluster 1801a is connected to the logical node 1801b via the dependent node. This marks the cluster as 'logically ambiguous'. This will be discussed later. When the cluster growth termination criteria are met, the cluster structure of the Tanner graph has reached its final form and is fixed. In other words, the one or more clusters are fully grown clusters. The cluster growth termination criteria is met when a number k of error nodes not forming part of a candidate cluster have been considered. An example of a graph comprising one or more fully grown clusters is depicted in a graph 1900 of Figure 19. Amongst a background sea of unconsidered error nodes and check nodes, there are multiple fully grown clusters. In the graph 1900 there are five fully grown clusters. Multiple of these are small 'singleton' clusters that comprise just one pivot error node and one pivot check node, e.g. 1900c and 1900d. Some of the clusters involve multiple such pairs of pivot error and pivot check, with the check nodes 'glued together' via dependent error nodes, e.g. 1900a, 1900b and 1900e. All marked check nodes in the Tanner graph exist in one of these clusters as pivot check nodes. Some of the dependent errors may be connected to logical nodes (two clusters connected only via a logical node are considered to be distinct clusters), in this case 1900a, 1900b. Figure 25 shows an example of one or more fully grown clusters in matrix representation. The use of hatching is different to that in Figure 24, in order to emphasise the linear dependence structure of the cluster. In this Figure, hatching is used to indicate considered error nodes and check nodes, and always surrounds a fully grown cluster in a box. As was the case after the cluster formation stage, all 'l's in the syndrome must fall in rows covered by pivot errors, e.g. 2400a is in the same row as the '1' in the pivot error 2400b. The single square of hatching around 2400b indicates that it is a singleton duster, with a single check node and single pivot error node, and no dependent error nodes. In contrast, the cluster consisting of the two pivot errors 2400c and single dependent error 2400d is larger, with the dependent error 'gluing together’ the two singleton clusters. This cluster is said to be logically unambiguous, as it is not connected to any logical nodes. The cluster consisting of the four pivot errors 2400e and the two dependent errors 2400f is larger, and is said to be logically ambiguous as one of its constituent dependent nodes is connected to a logical node, via the dependent error node 2400g. It is useful to note that a cluster in this matrix representation (for example, the hatched block 2400e and 2400f in Figure 24) looks like a smaller example of a matrix in the form of that in the prior art algorithm, as shown in Figure 12. The cluster formation, and growth stages are beneficial for several reasons. Both stages comprise a series of pivot operations. The first of these, cluster formation, reduces the representation of the problem just enough to make a single solution visible. The second stage considers some number of additional errors, in particular introducing dependent errors which represent alternative local solutions to each local syndrome, in both stages, pivot operations are performed, where the pivot checks and pivot errors are chosen dynamically throughout the algorithm with regard to the current state of the decoding problem, including, crucially, the syndrome. These two stages contrast with the Gaussian elimination stage of the prior BP-OSD approach, where the order of the pivot errors is based simply on the output of BP with no reference to the syndrome and is pre-determined prior to starting the pivot operations. In addition, in BP-OSD, Gaussian elimination is run to completion. Since the presently disclosed method does not run to completion, the cost associated with the pivot operations is dramatically reduced and the speed of the present algorithm is increased dramatically with respect to the prior art. CLUSTER ANALYSIS AND DETERMINING AN OPTIMISED SOLUTION At the conclusion of the cluster growth stage, the graph comprises one or more clusters which are fully-grown clusters. These fully -grown clusters may represent a plurality of potential solutions to the observed syndrome data, including the original candidate solution formed after the cluster formation stage. Once a number of fully-grown clusters have been formed in the graph, step 1308 in Figure 13 of determining an optimised solution based on the candidate solution may comprise determining a cluster solution for each fully-grown cluster in a subset of the fully-grown clusters. As will be appreciated from the following description, the subset of fully-grown clusters may comprise all, or just some of the fully-grown clusters. It may also be the case that none of the fully-grown clusters meet the criteria for being considered. Because a search for potential solutions is not necessarily needed in respect of every one of the fully grown clusters, as will be explained, benefits are achieved in terms of improved speed and reduced computational cost compared to prior art approaches. In determining the optimised solution based on the candidate solution, the space of solutions within each cluster is analysed. The aim of using a decoder may well not be to seek the error e that occurred, but instead the logical effect A that e had on the bits of logical information. Therefore, the effect that each cluster individually has on A is assessed when determining the optimised solution. In the case where the aim of the decoder is seeking the logical effect X, the error e that occurred may not need to be determined. The optimised solution may be determined based on one or more of: (i) the determined duster solutions, (ii) the error rates and / or the error probabilities associated with each error node in the subset of fully-grown clusters, and (iii) a current state of the syndrome data. Ultimately, the available cluster solutions each comprise an estimation, for each error node within the fully-grown clusters, of whether an odd number of error mechanisms associated with the error node occurred. At a high-level, the duster analysis and solution selection stage comprises assessing only a subset of the fully-grown dusters based on the logical nodes joined to each of the fully-grown dusters. As explained above, the graph represented by the graph data comprises a plurality of logical nodes. Each logical node is associated with logical information encoded by the register of quantum devices. The edges which join logical nodes with error nodes imply that the error mechanism represented by the error node can affect a logical state associated with the logical node. The subset of the available fully-grown clusters comprises those fully-grown clusters which comprise at least one dependent error node (see step 1456 of method 1450) joined with at least one logical node. These fully-grown clusters are "logically ambiguous", since they represent a plurality of potential local solutions (also referred to as cluster solutions), where the effect on the at least one logical bit (or bits) differs from local solution to local solution. The cluster analysis and solution selection stage is perhaps best described with respect to graphs. Figure 20 depicts examples of different types of fully grown clusters. In Figure 20, there are four examples of fully grown clusters 2000, 2001, 2004 and 2007. First, there are two of the simplest kind of fully-grown clusters, singleton clusters 2000, 2001. A singleton cluster comprises one pivot check node and its pivot error node. The pivot error node is joined solely to its paired pivot check node. For both of the singleton dusters 2000, 2001, there is a single solution to the local syndrome. For the singleton cluster 2000 comprising a marked pivot check node: as the pivot check node is marked, it can be determined that the error occurred 2002. For the singleton cluster 2001 comprising an unmarked pivot check node: as the pivot check node is unmarked, it can be determined that the error did not occur 2003. These are determinations (or estimations) for whether an odd number of error mechanisms associated with the error node occurred. In the example of the singleton cluster 2002, an odd number of error mechanisms is estimated to have occurred. In the example of the other singleton cluster 2003, an odd number of error mechanisms is not estimated to have occurred. Equivalently, an even number of error mechanisms (including zero error mechanisms) are estimated to have occurred. As these error nodes are pivot error nodes, they are not connected to any logical nodes. However, this does not mean that the occurrence of this error cannot have flipped a logical bit. At some point in the cluster formation and / or growth stage, a pivot operation had to be performed to put this pivot error into reduced form. The error may have initially been connected to one or more logical nodes. Taking the matrix view, in order to put the error in reduced form, the row associated with the check had to be added to any adjacent logical nodes. As part of this pivot operation, the pivot row of the vector [s / A] has to be added to the row of the vector associated with the logical operator. This amounts to changing one of the bits in A, Therefore the logical effect of the single solution to this cluster has already been accounted for in value of X. For an example of this, see Figures 7 and 8, where the value of a logical bit is flipped during a pivot operation. Clusters may be larger than these singleton clusters, as in the clusters 2004 and 2007. As discussed previously, this happens when error nodes linearly dependent on the errors in one or more duster are considered. These dependent errors 'glue together' the singleton dusters. They represent the fact that there are multiple solutions to a cluster's local syndrome. If a duster has n' error nodes in total and m' checks, then n' - m' of these nodes must be linearly dependent on the others, so there are 2.’n' local solutions to the syndrome - one solution for every possible subset of the set of n' - m' dependent errors. For example, the cluster 2004 has n' = 4 error nodes, m' = 3 check nodes. There are therefore 2(4’3! = 2 solutions, 2005 and 2006. Here, a subset of the set of dependent errors refers to the case where there are multiple dependent errors within a fuily grown cluster. It may be the case that none of the dependent errors in a cluster are connected to any logical nodes. This is the case most of the time when using the present method. For example, the dependent error 2004a is not connected to logical 2004b (assume this is the only logical in the Tanner graph). As with the singleton cluster, the effect on the logical bits of the solutions to this duster have already been imprinted on the logical vector X. The fact that there are multiple solutions makes no difference. All of the local solutions to the local syndrome have the same effect on the logical bits, and that effect is already imprinted on X. Solutions 2005 and 2006 both leave the logical 2004b un-flipped. There is therefore no need to perform any searching over the solutions to the syndrome on this cluster, as the effect on the logical is independent of which one happened. This type of duster is said to be "logically unambiguous". Clusters may contain dependent nodes which are connected to logical nodes. For example, cluster 2007 is connected to a logical node via edge 2007a. In this case, the duster is said to be "logically ambiguous”, meaning that the effect on the logics I bits differs from local solution to local solution. In other words, a "logically ambiguous" cluster is a fully-grown cluster comprising at least one dependent error node (see step 1456 in Figure 14b) joined with at least one logical node. In order to determine an optimal solution, it is of interest to determine which effect on the logical is most likely. In the case of cluster 2007, solution 2008 requires only one error to have occurred whereas 2009 requires three errors. Assuming the prior error rate for the errors is similar, solution 2008 is much more likely to be what actually happened. It is at this point that a search is performed to find the optimal solution. This search can also be referred to as "cluster analysis". A subset of the one or more fully grown clusters in the graph data may be logically ambiguous. A search will be performed on each of these one or more logically ambiguous clusters in the subset of one or more fully grown clusters. There may be many dependent errors in each of the logically ambiguous clusters. Analysing each of the solutions of a cluster may be costly in terms of computational resources and may be slow. Therefore only some of these solutions may be considered. The many possible subsets of the dependent errors in a duster are iterated over. This iteration may be potentially non-exhaustive. The solution generated by each subset within the cluster may be scored using the prior probabilities that the constituent errors in that solution occurred. For each logical connected to the node, the sum of all the probabilities of solutions that flipped the logical, and the sum of the probabilities of ali the solutions that did not flip the logical, are tracked. After each considered solution is iterated, the total sums are used to decide whether or not the logical is likely to have flipped. If the logical is determined to have flipped, the relevant one or more parts of A are updated. This process is performed for each of the one or more logically ambiguous clusters in the subset of the one or more fully grown clusters. This subset of the one or more fully grown clusters comprises those fully-grown clusters which comprise at least one dependent error node joined with at least one logical node. For each logically ambiguous cluster, solutions to a logically ambiguous cluster may be generated based on the subsets of the dependent errors within the logically ambiguous cluster. A subset of size zero refers to a subset of the error nodes in the cluster within the logically ambiguous cluster comprising zero dependent error nodes. A subset of size one refers to a subset within the logically ambiguous cluster comprising one dependent error node. A subset of size two comprises two dependent error nodes, and so on. The solutions associated with subsets of dependent errors may be searched in terms of the number of dependent errors in the subset. For example, the subsets of size 0 could be searched first, then subsets of size 1, then subsets of size 2, and so on. These subsets could be searched iri any different order or some subsets may not be searched at all, as previously described. Searching subsets of a larger order has a larger computational cost compared to searches on a subset of a smaller order. The search over all subsets of size 2, would be associated with a larger computational cost compared to a search on a subset of size 1, for example. Figures 21, 22, and 23 show examples of analysing a logically ambiguous cluster. In Figure 21, the graph 2100 shows a local syndrome 2100. This cluster is logically ambiguous because one of the dependent nodes 2100a is connected to a logical node 2100b. The solution generated by taking none of the dependent errors (i.e. the size zero subset) is shown in 2101, where errors 2101a, 2101b and 2101c must have occurred to explain the syndrome. In Figure 22, the four solutions generated by size- one subsets are shown as 2200...2203. For example, in 2200 the size-one subset of just the dependent error 2200a is taken, resulting in a solution consisting of 2200a, 2200b and 2200c. Finally, in Figure 23, there are three solutions 2300, 2301, 2302 of the (4 choose 2 = 6) solutions generated by size-two subsets. In particular, 2301 shows a solution to this cluster which requires two dependent errors 2301a, 2301b and no pivot errors. This is the optimal solution in this case (assuming similar prior probabilities on the errors). Note that the solution 2301 flips the logical, so it is likely that the algorithm will decide that this duster does flip the logical bit 2301c. Figure 26 depicts a matrix representation of duster analysis of the presently described method. As previously mentioned, the structure of a duster in the matrix representation is an a m' by n' section of the H matrix consisting of m' rows, m' pivot errors, and n' - m' additional errors linearly dependent on the pivot errors. In Figure 26 there is a logically ambiguous block 2600a, 2600b, where n' = 6, m' = 4. The cluster analysis stage is beneficial for several reasons. Clusters in the graph are produced, essentially, by ignoring some of the errors and checks in the wider graph structure. The errors and checks that are ignored in this way are not classed as considered. The algorithm then decides which of these clusters is 'ambiguous' with respect to any logical bits. For those that are logically ambiguous, the algorithm performs a search over their local solutions to find the most likely effect of those clusters on the logicals. This contrasts with the prior BP-OSD approach, which performs a search over global solutions to the entire syndrome with no regard to what the syndrome actually looks like. By forming and growing clusters, then assessing possible solutions only to those clusters, the searching 'cost' is drastically reduced, since performing a series of smaller searches over distinct clusters is much more efficient than performing one large search over the entire problem. Different strategies for searching the one or more solutions to the ambiguous clusters may be adopted. In different implementations, different cluster analysis strategies can be adopted. In the following, by a weight x solution, it is meant to take x linearly dependent columns and whichever pivot columns needed to complete a solution. In the following, by a likelihood x solution, it is meant a solution where linearly dependent columns are taken for which the product of the posterior likelihoods of error is x. Using this terminology, alternative strategies include: « Try all solutions of weight up to some bound w. * Try all solutions of likelihood at least some bound L ® Try N solutions in decreasing order of likelihood. « Try all solutions of weight 1 and all solutions of weight 2 from the t linearly dependent columns with highest posteriors. ® Try solutions in one of these orders (e.g. weight or likelihood) until we are sufficiently confident in our correction (the likelihood difference between the possible corrections is sufficiently large). ® Try all 21 solutions from the t linearly dependent columns with highest posteriors. A QUANTUM COMPUTING SYSTEM Figure 27 is a schematic of an exemplary quantum computing system 2700 comprising a decoder apparatus, also referred to as a decoding system 2702, which is suitable for performing the method of the present disclosure. The quantum computing system 2700 comprises a plurality of physical qubits 2706 (unless specified otherwise, reference herein to qubits should be understood to refer to physical qubits rather than logical qubits). The qubits 2706 include data qubits used to encode logical qubit states, and syndrome qubits (or auxiliary qubits) used to perform syndrome measurements for quantum error correction. While the exemplary quantum computing system 2700 uses qubits 2706, one skilled in the art will appreciate that the invention described herein is also applicable to quantum computing systems that use other quantum devices, such as qutrits and qudits. Accordingly, it should be understood that any reference herein to qubits is applicable to any type of quantum devices that can be used to encode quantum information. The qubits 2706 are controlled by a control system 2704 having one or more classical processors. The control system 2704 transmits control signals (e.g. RF pulses) to the qubits 2706 for performing operations on the qubits 2706 (including measurement operations) and receives measurement information from the qubits 2706. The measurement information will generally be analogue data signals, although the analogue signals may alternatively be converted to digital signals before being transmitted to the control system 2704 in some implementations (e.g. the qubits 2706 may be provided with one or more analogue to digital converters). The control system 2704 may receive high-level instructions from an algorithmic system or similar (not shown) and convert these high-level instructions (such as logic gates) into low-level qubit instructions (e.g. microwave pulses etc.), which may be in analogue format. The quantum computing system 2700 also comprises a decoding system 2702 (also referred to herein as a decoder). The decoding system 2702, which is generally a classical computing system, receives an error syndrome (also referred to as syndrome data) which may be obtained from measurements of syndrome qubits. The error syndrome may comprise raw analogue measurement data, or it may alternatively be pre-processed (e.g. into digital format) by the control system 2704. The decoding system 2702 may be connected to the control system 2704 and receive the error syndrome via the control system 2704 as illustrated in Figure 27 (potentially via one or more additional intermediary systems), or in alternative examples the decoding system 2702 may be connected directly to the qubits 2706 and receive the error syndrome from the qubits 2706 (e.g. as raw analogue signals or digital measurement values). The decoding system 2702 uses a decoding process / algorithm to decode the error syndrome to determine a correction for an error state of the qubits 2706 associated with the error syndrome (i.e. an error state that causes the measured error syndrome). One skilled in the art will appreciate that the quantum computing system 2700 may also comprise additional intermediary components positioned between the illustrated components, and that the illustrated components may be connected in a different configuration (e.g. the decoding system 2702 may be connected directly to the qubits 2706 as previously described). Figure 28 depicts a computer-readable medium according to the present disclosure. The various methods described above may be implemented by a computer program. The computer program may include computer code (e.g. instructions) 2810 arranged to instruct a computer to perform the functions of one or more of the various methods described above. The steps of the methods described above may be performed in any suitable order. The computer program and / or the code 2810 for performing such methods may be provided to an apparatus, such as a computer, on one or more computer readable media or, more generally, a computer program product), depicted in Figure 28. The computer readable media may be transitory or non-transitory. The one or more computer readable media 2800 could be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, or a propagation medium for data transmission, for example for downloading the code over the Internet. Alternatively, the one or more computer readable media could take the form of one or more physical computer readable media such as semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disc, and an optical disk, such as a CD-ROM, CD-R / W or DVD. It will be understood that the above description of specific embodiments is by way of example only and is not intended to limit the scope of the present disclosure. Many modifications of the described embodiments are envisaged and intended to be within the scope of the present disclosure.

Claims

1. A computer-implemented quantum error correction method for decoding errors in a quantum computer system, the quantum computer system comprising a decoder apparatus and a register of quantum devices; the method comprising:receiving, at the decoder apparatus, syndrome data in an initial state, the syndrome data being representative of an error state of the quantum devices in the register of quantum devices, and graph data representative of a graph comprising a plurality of error nodes and a plurality of check nodes; wherein: the error nodes represent error mechanisms that can occur on the register of quantum devices; each check node is associated with one or more measurements which can be performed on the register of quantum devices; and the initial state of the syndrome data indicates a check value of marked or unmarked for each check node based on an outcome of its associated one or more measurements;determining, based on a statistical model of error rates associated with the error mechanisms, an error probability associated with each of the one or more error nodes;generating modified graph data, wherein generating the modified graph data comprises iteratively performing linear operations on the graph data and syndrome data based on a current state of the syndrome data to determine an independent error node associated with each marked check node; anddetermining, by the decoder apparatus, a correction for the error state based on the modified graph data.

2. The method of claim 1, wherein determining the error probability associated with each of the one or more error nodes is further based on the syndrome data, and wherein the error probability associated with each of the one or more error nodes is determined using an approximate inference algorithm; preferably wherein the approximate inference algorithm is a message-passing inference algorithm; and even more preferably wherein the messagepassing inference algorithm is a belief-propagation algorithm.

3. The method of any preceding claim, wherein a marked check value for a check node indicates that an odd number of error mechanisms represented by error nodes joined to the check node have occurred.4.The method of any preceding claim, wherein the graph further comprises a first plurality of edges, wherein each edge of the first plurality of edges joins a check node with an error node if the error mechanism represented by the error node can affect the check value of the check node.

5. The method of any preceding claim, wherein performing the one or more linear operations comprises performing one or more first pivot operations.

6. The method of claim 5, wherein performing each first pivot operation modifies the graph represented by the graph data, and comprises:selecting, according to first pivot selection criteria, a pivot error node and a pivot check node from among the error nodes and the check nodes which are joined by an edge; andadding the pivot check node to every other check node of the plurality of check nodes which is joined to the pivot error node by an edge.

7. The method of claim 6, wherein adding the pivot check node to every other check node comprises:removing edges which join the other check node to any error nodes joined to both the pivot check node and the other check node; andadding edges between the other check node and any error node which is joined to the pivot check node and not joined to the other check node.

8. The method of claim 6 or claim 7, wherein the first pivot selection criteria comprise one, more, or all of: a requirement that the check value associated with the pivot check node be marked in the current state of the syndrome data; a requirement that the pivot check node has not yet been used as a pivot check node, and that the pivot error node has not yet been used as a pivot error node; and selecting, subject to any other pivot selection criteria, an error node to be the pivot error node based on an error probability associated with the error node.

9. The method of any of claims 6 or claim 8, wherein the first pivot selection criteria comprises a requirement, subject to any other pivot selection criteria, to select the pivot error node associated with the highest available error probability.

10. The method of any of claims 6 to 9, wherein performing each first pivot operation comprises changing, for every check node joined to the pivot error node other than the selected pivot check node, the check value from marked to unmarked or vice versa.

11. The method of any of claims 6 to 10, wherein each independent error node associated with a marked check node is a pair comprising a pivot check node and a pivot error node joined to one another, where the pivot error node in each pair is joined solely to its paired pivot check node.

12. The method of any of claims 6 to 11, wherein the one or more first pivot operations comprise a plurality of first pivot operations, and wherein iteratively performing the linear operations on the graph data and syndrome data comprises performing each of the plurality of first pivot operations, one after the other, until a first stopping criterion is reached.

13. The method of claim 12, wherein the first stopping criterion is reached when no further check or error nodes meet the first pivot selection criteria.

14. The method of claim 12 or claim 13 wherein, when the first stopping criterion is reached, the graph data comprises, for each marked check node, an independent error node associated solely therewith.

15. The method of any of claims 12 to 14, wherein determining an independent error node associated with each marked check node comprises identifying, once the first stopping criterion is reached: check nodes with a marked check value; any check nodes selected as pivot check nodes, and any error nodes selected as pivot error nodes.

16. The method of any preceding claim, wherein iteratively performing the linear operations on the graph data and syndrome data comprises performing a plurality of first pivot operations, wherein performing each first pivot operation comprises selecting a respective pivot error node, and wherein the independent error nodes are those error nodes selected as pivot error nodes during the performance of the plurality of first pivot operations.

17. The method of any preceding claim, wherein each independent error node and its associated marked check node form a candidate cluster in the graph.

18. The method of claim 17, wherein the candidate clusters represent a candidate solution to the syndrome data.

19. The method of claim 18, wherein generating the modified graph data further comprises growing the one or more candidate clusters in the graph according to the error probabilities associated with the one or more error nodes and a current state of the syndrome data until a cluster growth termination criterion is met; wherein, when the cluster growth termination criterion is met, the one or more clusters are fully-grown clusters, and wherein determining the correction for the error state is further based on the error probabilities associated with the one or more error nodes.

20. The method of claim 19, wherein growing the one or more candidate clusters in the graph comprises:considering a number, k, of error nodes not forming part of a candidate cluster; andadding a considered error node to either a candidate cluster or a new cluster if error node selection criteria are met; wherein the cluster growth termination criterion is met when k error nodes have been considered.

21. The method of claim 20, wherein the error node selection criteria are based on the error probabilities associated with the one or more error nodes and / or the current state of the syndrome data.

22. The method of any of claims 20 or 21, wherein the error node selection criteria comprise one, more, or all of: a requirement that the considered error node has not already been considered; a requirement that the considered error node be joined to a check node that has been a pivot check node; a requirement that the considered error node be an error node that has previously been joined to a check node involved in a pivot operation; and selecting,subject to any other error node selection criteria, an error node to be the considered error node based on an error probability associated with the error node.

23. The method of any of claims 20 to 22, wherein growing the one or more candidate clusters in the graph further comprises determining, for each considered error node added to a candidate cluster, whether a second pivot operation should be performed based on one or more second pivot selection criteria and, if the one or more second pivot selection criteria are met, performing the second pivot operation.

24. The method of claim 23, wherein the one or more second pivot selection criteria comprise a requirement that the considered error node be joined to at least one check node that is not already a pivot check node.

25. The method of claim 23 or claim 24, wherein, if the one or more second pivot selection criteria are not met, classifying the considered node as a dependent error node.

26. The method of any of claims 19 to 25, further comprising determining a probable solution, by:determining a cluster solution for each fully-grown cluster in a subset of fully-grown clusters;determining the probable solution based on one or more of: the determined cluster solutions, the error rates, the error probabilities associated with each error node in the subset of fully-grown clusters, and a current state of the syndrome data; andwherein determining the correction for the error state based on the modified graph data and the error probabilities associated with the one or more error nodes comprises determining a correction based on the probable solution.

27. The method of claim 26, wherein the cluster solutions comprise an estimation, for each error node within the fully-grown clusters, of whether an odd number of error mechanisms associated with the error node occurred.

28. The method of any preceding claim, wherein the graph data further comprises a plurality of logical nodes, wherein each logical node is associated with logical information encoded by the register of quantum devices.

29. The method of claim 28, wherein the graph further comprises a second plurality of edges, wherein each edge of the second plurality of edges joins a logical node with an error node if the error mechanism represented by the error node can affect a logical state associated with the logical node.

30. The method of claim 29, wherein determining the correction comprises identifying a plurality of active error nodes in the graph represented by the modified graph data, wherein an error node is active if it is estimated that an odd number of its associated error mechanisms occurred; andidentifying a plurality of logical nodes joined with active error nodes.

31. The method of any one of claims 28 to 30 when dependent on claim 26 or claim 27, wherein the subset of the one or more fully-grown clusters comprises those fully-grown clusters which comprise at least one dependent error node joined with at least one logical node.

32. The method of any of claims 26 to 31, wherein the probable solution to the syndrome data comprises an estimation for each of the error nodes, the estimation representing either a positive or a negative determination for whether an odd number of the error mechanisms associated with the error node occurred.

33. The method of any preceding claim, wherein the quantum error correction method is a quantum low density parity check, QLDPC, code error correction procedure.

34. The method of any preceding claim, wherein the graph is a Tanner graph.

35. The method of any preceding claim, wherein the quantum devices are qubits.

36. A decoder apparatus comprising one or more processors, and computer memory, the computer memory storing instructions which, when implemented, cause the one or more processors to perform the method of any preceding claim.

37. A computer-readable medium comprising instructions which, when executed by one or more processors, cause the one or more processors to perform the method of any of claims 1 to 35.