prompt_front: Now, answer the following question based on the text below, only give me the answer and do not output any other words.

Question: What are the three teams that used conflict optimization in the challenge?

Read the following text and answer briefly.

Context 1: Paper Info

Title: Conflict Optimization for Binary CSP Applied to Minimum Partition into Plane Subgraphs and Graph Coloring
Publish Date: 25 Mar 2023
Author List: Loïc Crombez (from LIMOS, Université Clermont Auvergne), Guilherme Da Fonseca (from LIS, Aix-Marseille Université), Florian Fontan (from Independent Researcher), Yan Gerard (from LIMOS, Université Clermont Auvergne), Aldo Gonzalez-Lorenzo (from LIS, Aix-Marseille Université), Pascal Lafourcade (from LIMOS, Université Clermont Auvergne), Luc Libralesso (from LIMOS, Université Clermont Auvergne), Benjamin Momège (from Independent Researcher), Jack Spalding-Jamieson (from David R  Cheriton School of Computer Science, University of Waterloo), Brandon Zhang (from Independent Researcher), Da Zheng (from Department of Computer Science, University of Illinois at Urbana-Champaign)

Figure

Figure 1: A partition of the input graph of the CG:SHOP2022 instance vispecn2518 into 57 plane graphs It is the smallest instance of the challenge with 2518 segments On top left, you see all 57 colors together On top right, you see a clique of size 57, hence the solution is optimal Each of the 57 colors is then presented in small figures 
Figure 2: Number of colors over time for the instance vispecn13806 using different values p The algorithm uses σ = 0 15, easy vertices, q max = 59022, but does not use the BDFS nor any clique 
Figure 3: Number of colors over time with different values of q max obtained on the instance vispecn13806 Parameters are σ = 0 15, p = 1 2, no clique knowledge, and no BDFS 
Figure 4: Number of colors over time with and without clique knowledge and BDFS obtained on the instance vispecn13806 Parameters are σ = 0 15, p = 1 2, and q max = 1500000 
Figure 5: Number of colors over time for the instance vispecn13806 for different values of σ In both figures the algorithm uses p = 1 2, easy vertices, q max = 59022, but does not use the BDFS nor any clique For σ ≥ 0 25, no solution better than 248 colors is found 
Figure 6: Number of colors over time (in hours) for the instance vispecn13806 
Several CG:SHOP 2022 results We compare the size of the largest known clique to the smallest coloring found by each team on a selection of 14 CG:SHOP 2022 instances 
[20][21][22][23][24][25] with state-of-the-art graph coloring algorithms The conflict optimizer underperforms except on the geometric graphs r* and dsjr* CE39-0007), SEVERITAS (ANR-20-CE39-0005) and by the French government IDEX-ISITE initiative 16-IDEX-0001 (CAP[20][21][22][23][24][25] The work of Luc Libralesso is supported by the French ANR PRC grant DECRYPT (ANR-18-CE39-0007) 

abstract

CG:SHOP is an annual geometric optimization challenge and the 2022 edition proposed the problem of coloring a certain geometric graph defined by line segments  Surprisingly, the top three teams used the same technique, called conflict optimization  This technique has been introduced in the 2021 edition of the challenge, to solve a coordinated motion planning problem 
In this paper, we present the technique in the more general framework of binary constraint satisfaction problems (binary CSP)  Then, the top three teams describe their different implementations of the same underlying strategy  We evaluate the performance of those implementations to vertex color not only geometric graphs, but also other types of graphs 

Introduction

The CG:SHOP challenge (Computational Geometry: Solving Hard Optimization Problems) is an annual geometric optimization competition, whose first edition took place in 2019  The 2022 edition proposed a problem called minimum partition into plane subgraphs  The input is a graph G embedded in the plane with edges drawn as straight line segments, and the goal is to partition the set of edges into a small number of plane graphs (Fig  )  
This goal can be formulated as a vertex coloring problem on a graph G defined as follows  The vertices of G are the segments defining the edges of G, and the edges of G correspond to pairs of crossing segments (segments that intersect only at a common endpoint are not considered crossing)  The three top-ranking teams (Lasa, Gitastrophe, and Shadoks) on the CG:SHOP 2022 challenge all used a common approach called conflict optimization while the fourth team used a SAT-Boosted Tabu Search  
Conflict optimization is a technique used by Shadoks to obtain the first place in the CG:SHOP 2021 challenge for low-makespan coordinated motion planning , and the main ideas of the technique lent themselves well to the 2022 challenge  Next, we describe the conflict optimizer as a metaheuristic to solve constraint satisfaction problems (CSP)  
We start by describing a CSP  A CSP is a triple of • variables X = (x 1 ,       , x n ), Each of the 57 colors is then presented in small figures  • domains D = (D 1 ,       , D n ), and • constraints R  Each variable x i must be assigned a value in the corresponding domain D i such that all constraints are satisfied 
In general, the constraints may forbid arbitrary subsets of values  We restrict our attention to a particular type of constraints (binary CSP ), which only involve pairs of assignments  A partial evaluation is an assignment of a subset of the variables, called evaluated, with the remaining variables called non-evaluated 
All constraints involving a non-evaluated variable are satisfied by default  We only consider assignments and partial assignments that satisfy all constraints  The conflict optimizer iteratively modifies a partial evaluation with the goal of emptying the set S of non-evaluated variables, at which point it stops 
At each step, a variable x i is removed from S  If there exists a value x ∈ D i that satisfies all constraints, then we assign the value x to the variable x i   Otherwise, we proceed as follows  For each possible value x ∈ D i , we consider the set K(i, x) of variables (other than x i ) that are part of constraints violated by the assignment x i = x 
We assign to x i the value x that minimizes where w(j) is a weight function to be described later  The variables x j ∈ K(i, x) become non-evaluated and added to S  The weight function should be such that w(j) increases each time x j is added to S, in order to avoid loops that keep moving the same variables back and forth from S  Let q(j) be the number of times x j became non-evaluated 
A possible weight function is w(j) = q(j)  More generally, we can have w(j) = q(j) p for some exponent p (typically between 1 and 2)  Of course, several details of the conflict optimizer are left open  For example, which element to choose from S, whether some random noise should be added to w, and the decision to restart the procedure from scratch after a certain time 
The CSP as is, does not apply to optimization problems  However, we can, impose a maximum value k of the objective function in order to obtain a CSP  The conflict optimizer was introduced in a low makespan coordinated motion planning setting  In that setting, the variables are the robots, the domains are their paths (of length at most k) and the constraints forbid collisions between two paths 
In the graph coloring setting, the domains are the k colors of the vertices and the constraints forbid adjacent vertices from having the same color  The conflict optimizer can be adapted to non-binary CSP, but in that case multiple variables may be unassigned for a single violated constraint  The strategy has some resemblance to the similarly named min-conflicts algorithm , but notable differences are that a partial evaluation is kept instead of an invalid evaluation and the weight function that changes over time 
While the conflict optimization strategy is simple, there are different ways to apply it to the graph coloring problem  The goal of the paper is to present how the top three teams applied it or complemented it with additional strategies  We compare the relative benefits of each variant on the instances given in the CG:SHOP 2022 challenge 
We also compare them to baselines on some instances issued from graph coloring benchmarks  The paper is organized as follows  Section 2 presents the details of the conflict optimization strategy applied to graph coloring  In the three sections that follow, the three teams Lasa, Gitastrophe, and Shadoks present the different parameters and modified strategies that they used to make the algorithm more efficient for the CG:SHOP 2022 challenge 
The last section is devoted to the experimental results 

Literature Review

The study of graph coloring goes back to the 4-color problem (1852) and it has been intensively studied since the 1970s (see for surveys)  Many heuristics have been proposed , as well as exact algorithms   We briefly present two classes of algorithms: greedy algorithms and exact algorithms  Greedy algorithms 
These algorithms are used to find good quality initial solutions in a short amount of time  The classic greedy heuristic considers the vertices in arbitrary order and colors each vertex with the smallest non-conflicting color  The two most famous modern greedy heuristics are DSATUR and Recursive Largest First (RLF )  
At each step (until all vertices are colored), DSATUR selects the vertex v that has the largest number of different colors in its neighbourhood  Ties are broken by selecting a vertex with maximum degree  The vertex v is colored with the smallest non-conflicting color  RLF searches for a large independent set I, assigns the vertices I the same color, removes I from G , and repeats until all vertices are colored 
Exact algorithms  Some exact methods use a branch-and-bound strategy, for example extending the DSATUR heuristic by allowing it to backtrack   Another type of exact method (branch-and-cut-and-price) decomposes the vertex coloring problem into an iterative resolution of two sub-problems   The "master problem" maintains a small set of valid colors using a set-covering formulation 
The "pricing problem" finds a new valid coloring that is promising by solving a maximum weight independent set problem  Exact algorithms are usually able to find the optimal coloring for graphs with a few hundred vertices  However, even the smallest CG:SHOP 2022 competition instances involve at least a few thousands vertices 

Conflict Optimization for Graph Coloring

Henceforth, we will only refer to the intersection conflict graph G induced by the instance  Vertices will refer to the vertices V (G ), and edges will refer to the edges E(G )  Our goal is to partition the vertices using a minimum set of k color classes C = {C 1 ,       , C k }, where no two vertices in the same color class C i are incident to a common edge 

Conflict Optimization

TABUCOL inspired neighbourhood One classical approach for the vertex coloring involves allowing solutions with conflicting vertices (two adjacent vertices with the same color)  It was introduced in 1987 and called TABUCOL  It starts with an initial solution, removes a color (usually the one with the least number of vertices), and assigns uncolored vertices with a new color among the remaining ones 
This is likely to lead to some conflicts (i e  two adjacent vertices sharing a same color)  The local search scheme selects a conflicting vertex, and tries to swap its color, choosing the new coloring that minimises the number of conflicts  If it reaches a state with no conflict, it provides a solution with one color less than the initial solution 
The process is repeated until the stopping criterion is met  While the original TABUCOL algorithm includes a "tabu-list" mechanism to avoid cycling, it is not always sufficient, and requires some hyper-parameter tuning in order to obtain a good performance on a large variety of instances  To overcome this issue, we use a neighbourhood, but replace the "tabu-list" by the conflict optimizer scheme presented above 
PARTIALCOL inspired neighbourhood PARTIALCOL another local search algorithm solving the vertex coloring problem was introduced in 2008  This algorithm proposes a new local search scheme that allows partial coloring (thus allowing uncolored vertices)  The goal is to minimize the number of uncolored vertices 
Similarly to TABUCOL, PARTIALCOL starts with an initial solution, removes one color (unassigning its vertices), and performs local search iterations until no vertex is left uncolored  When coloring a vertex, the adjacent conflicting vertices are uncolored  Then, the algorithm repeats the process until all vertices are colored, or the stopping criterion is met 
This neighbourhood was also introduced alongside a tabu-search procedure  The tabu-search scheme is also replaced by a conflict-optimization scheme  Note that this neighbourhood was predominantly used by the other teams 

Finding Initial Solutions

Lasa team used two approaches to find initial solutions: 1  DSATUR is the classical graph coloring algorithm presented in Section 1  2  Orientation greedy is almost the only algorithm where the geometry of the segments is used  If segments are almost parallel, it is likely that they do not intersect (thus forming an independent set) 
This greedy algorithm first sorts the segments by orientation, ranging from − π 2 to π 2   For each segment in this order, the algorithm tries to color it using the first available color  If no color has been found, a new color is created for coloring the considered segment  This algorithm is efficient, produces interesting initial solutions and takes into account the specificities of the competition 

Solution Initialization

The gitastrophe team uses the traditional greedy algorithm of Welsh and Powell to obtain initial solutions: order the vertices in decreasing order of degree, and assign each vertex the minimum-label color not used by its neighbors  During the challenge Gitastrophe attempted to use different orderings for the greedy algorithm, such as sorting by the slope of the line segment associated with each vertex (as the orientation greedy initialization presented in Section 3), and also tried numerous other strategies 
Ultimately, after running the solution optimizer for approximately the same amount of time, all initializations resulted in an equal number of colors 

Modifications to the Conflict Optimizer

Taking inspiration from memetic algorithms, which alternate between an intensification and a diversification stage, the algorithm continually switched between a phase using the above conflict score, and one minimizing only the number of conflicts  Thus during the conflict-minimization phase, the random variables f (C j ) and w(u) are both fixed equal to 1 leading to a conflict score
Each phase lasted for 10 5 iterations  Adding the conflict-minimization phase gave minor improvements to some of the challenge instances 

Shadoks

In this section, we describe the choices used by the Shadoks team for the options described in Section 2 1  The Shadoks generally chose to eliminate the color with the smallest number of elements  However, if the multistart option is toggled on, then a random color is used each time  The conflict set S is stored in a queue 
The Shadoks tried other strategies, but found that the queue gives the best results  The weight function used is w(u) = 1 + q(u) p , mostly with p = 1 2  The effect of the parameter p is shown in Fig    Notice that in all figures, the number of colors shown is the average of ten executions of the code using different random seeds 
The algorithm uses σ = 0 15, easy vertices, q max = 59022, but does not use the BDFS nor any clique  If q(u) is larger than a threshold q max , the Shadoks set w(u) = ∞ so that the vertex u never reenters S  If at some point an uncolored vertex v is adjacent to some vertex u of infinite weight in every color class, then the conflict optimizer is restarted 
When restarting, the initial coloring is shuffled by moving some vertices from their initial color class to a new one  Looking at Fig  , the value of q max does not seem to have much influence as long as it is not too small  Throughout the challenge the Shadoks almost exclusively used q max = 2000 • (75000/m) 2 , where m is the number of vertices 
This value roughly ensures a restart every few hours  q max =0 5k q max =5k q max =50k q max =100k q max =250k The Shadoks use the function f as a Gaussian random variable of mean 1 and variance σ  A good default value is σ = 0 15  The effect of the variance is shown in Fig    Notice that setting σ = 0 gives much worse results 
Option (e) The goal of BDFS is to further optimize very good solutions that the conflict optimizer is not able to improve otherwise  Fig  shows the influence of BDFS  While on this figure, the advantages of BDFS cannot be noticed, its use near the end of the challenge improved about 30 solutions  The bounded depth-first search (BDFS) algorithm tries to improve the dequeuing process 
The goal is to prevent a vertex in conflict with some adjacent colored vertices from entering in the conflict set  At the first level, the algorithm searches for a recoloring of some adjacent vertices which allows us to directly recolor the conflict vertex  If no solution is found, the algorithm  In both figures the algorithm uses p = 1 2, easy vertices, q max = 59022, but does not use the BDFS nor any clique 
For σ ≥ 0 25, no solution better than 248 colors is found  could recolor some vertices at larger distances from the conflict vertex  To do so, a local search is performed by trying to recolor vertices at a bounded distance from the conflict vertex in the current partial solution  The BDFS algorithm has two parameters: adjacency bound a max and depth d 
In order to recolor a vertex v, BDFS gets the set C of color classes with at most a max neighbors of v  If a class in C has no neighbor of v, v is assigned to C  Otherwise, for each class C ∈ C, BDFS tries to recolor the vertices in C which are adjacent to v by recursively calling itself with depth d − 1 
At depth d = 0 the algorithm stops trying to color the vertices  During the challenge the Shadoks used BDFS with parameters a max = 3 and d = 3  The depth was increased to 5 (resp  7) when the number of vertices in the queue was 2 (resp  1)  Degeneracy order Given a target number of colors k, we call easy vertices a set of vertices Y such that, if the remainder of the vertices of G are colored using k colors, then we are guaranteed to be able to color all vertices of G with k colors 
This is obtained using the degeneracy order Y   To obtain Y we iteratively remove from the graph a vertex v that has at most k − 1 neighbors, appending v to the end of Y   We repeat until no other vertex can be added to Y   Notice that, once we color the remainder of the graph with at least k colors, we can use a greedy coloring for Y in order from last to first without increasing the number of colors used 
Removing the easy vertices reduces the total number of vertices, making the conflict optimizer more effective  The Shadoks always toggle this option on (the challenge instances contain from 0 to 23% easy vertices) 

Results

We provide the results of the experiments performed with the code from the three teams on two classes of instances  First, we present the results on some selected CG:SHOP 2022 instances  These instances are intersection graphs of line segments  Second, we execute the code on graphs that are not intersection graphs, namely the classic DIMACS graphs , comparing the results of our conflict optimizer implementations to previous solutions 
The source code for the three teams is available at: • Lasa: https://github com/librallu/dogs-color • Gitastrophe: https://github com/jacketsj/cgshop2022-gitastrophe • Shadoks: https://github com/gfonsecabr/shadoks-CGSHOP2022

CG:SHOP 2022 Instances

We selected 14 instances (out of 225) covering the different types of instances given in the CG:SHOP 2022 challenge  The results are presented in Table   For comparison, we executed the HEAD code on some instances using the default parameters  The table shows the smallest number of colors for which HEAD found a solution 
We ran HEAD for 1 hour of repetitions for each target number of colors on a single CPU core (the HEAD solver takes the target number of colors as a parameter and we increased this parameter one by one)  At the end of the challenge, 8 colorings computed by Lasa, 11 colorings computed by Gitastrophe, and 23 colorings computed by Shadoks over 225 instances have been proved optimal (their number of colors is equal to the size of a clique) 
In order to compare the efficiency of the algorithms, we executed the different implementations on the CG:SHOP instance vispecn13806  The edge density of this graph is 19%, the largest clique that we found has 177 vertices and the best coloring found during the challenge uses 218 colors  Notice that vispecn13806 is the same instance used in other Shadoks experiments in Section 5  Notice also that HEAD algorithm provides 283 colors after one hour compared to less than 240 colors for the conflict optimizers 
We ran the three implementations on three different servers and compared the results shown in Figure   For each implementation, the x coordinate is the running time in hours, while the y coordinate is the smallest number of colors found at that time 

Results on DIMACS Graphs

We tested the implementation of each team on the DIMACS instances to gauge the performance of the conflict optimizer on other classes of graphs  We compared our results to the best known bounds and to the state of the art coloring algorithms HEAD and QACOL   The time limit for Lasa's algorithms is 1 hour 
CWLS is Lasa's conflict optimizer with the neighbourhood presented in TABUCOL , while PWLS is the optimizer with the neighbourhood presented in PARTIALCOL   Gitastrophe algorithm ran 10 minutes after which the number of colors no longer decreases  Shadoks algorithm ran for 1 hour without the BDFS option (results with BDFS are worse) 
Results are presented in Table   We only kept the difficult DIMACS instances  For the other instances, all the results match the best known bounds  The DIMACS instances had comparatively few edges (on the order of thousands or millions); the largest intersection graphs considered in the CG:SHOP challenge had over 1 5 billion edges 
We notice that the conflict optimizer works extremely poorly on random graphs, but it is fast and appears to perform well on geometric graphs (r250 5, r1000 1c, r1000 5, dsjr500 1c and dsjr500 5), matching the best-known results   Interestingly, these geometric graphs are not intersection graphs as in the CG:SHOP challenge, but are generated based on a distance threshold 
On the DIMACS graphs, Lasa implementation shows better performance than the other implementations 
Context 2: Paper Info

Title: Compressed quantum error mitigation
Publish Date: 10 May 2023
Author List: Maurits Tepaske (from Physikalisches Institut, Universität Bonn), David Luitz (from Physikalisches Institut, Universität Bonn)

Figure

FIG 3 The out-of-time-ordered correlator C otoc i=L/2,j (t) as a function of the operator position j and time t, for the infinite temperature initial state, for a denoised second-order Trotter supercircuit with Trotter depth Mtrot = 32 and denoiser depth M = 2 We consider evolution times t = 0 5, 1,    , 5, for the periodic L = 14 Heisenberg chain that is affected by two-qubit depolarizing noise with p = 0 01 
FIG  4  The complex eigenvalues λ of the noisy second-order Trotter supercircuit with Mtrot = 16 at time t = 1 (left), the corresponding optimized denoiser with M = 4 (center), and the denoised Trotter supercircuit (right) The Trotter circuit is for a L = 6 Heisenberg model with PBC, and all twoqubit channels are affected by depolarizing noise with p = 0 0046 The unit circle, on which unitary eigenvalues must lie, is shown in black, and the noiseless eigenvalues are shown as blue bars It is evident that the denoiser recovers all the noiseless eigenvalues from the noisy circuit 
FIG  2  The complex eigenvalues λ of the noisy second-order Trotter supercircuit with Mtrot = 16 at time t = 1 (left), the corresponding optimized denoiser with M = 4 (center), and the denoised Trotter supercircuit (right) The Trotter circuit is for a L = 6 Heisenberg model with PBC, and all twoqubit channels are affected by depolarizing noise with p = 0 036 The unit circle, on which unitary eigenvalues must lie, is shown in black, and the noiseless eigenvalues are shown as blue bars It is clear that the denoiser recovers with high accuracy the noiseless eigenvalues from the noisy circuit 
FIG  3  The half-chain channel entanglement entropy S at different two-qubit depolarizing noise strengths p, for a secondorder Trotter supercircuit with Mtrot = 16 and t = 2, for a M = 4 denoiser The Trotter circuit is for a Heisenberg model with PBC of size L = 6 The different curves correspond to the different supercircuits, i e  the noisy supercircuit, the denoiser, the corresponding denoised supercircuit, and the noiseless variant 
FIG  4  The out-of-time-ordered correlator C otoc i=L/2,j (t) as a function of the operator position j and stacked time t, for the infinite temperature initial state, for a denoised secondorder Trotter supercircuit with Trotter depth Mtrot = 32 and denoiser depth M = 2 It is optimized at t = 2 and stacked up to ten times The calculations are for the periodic L = 14 Heisenberg chain that is affected by two-qubit depolarization with p = 0 01 The denoiser is affected by the same noise 
FIG 6 The distribution of the ZZ angle α of M = 2 denoisers (top panels) and M = 8 denoisers (bottom panels), with the lightest color corresponding to the denoiser for the Trotter supercircuit with t = 0 5, and the darkest color with t = 5 As usual, we consider the Heisenberg model on a periodic chain, and second-order Trotter supercircuits with depths Mtrot = 8, 16, 32, 64, which together with the denoiser is affected by a two-qubit depolarizing noise with p = 0 01 The panels are arranged as Mtrot = 8, 16, 32, 64 for top left, top right, bottom left, bottom right, respectively 
FIG  7  The sampling overhead γ of the optimized denoisers from Fig  2 of the main text, with denoiser depths M = 1, 2, 4, 6, 8 and Trotter depths Mtrot = 8, 16, 32, 64 at times t = 0 5, 1,    , 5, for the Heisenberg model on a chain with PBC affected by two-qubit depolarizing noise with p = 0 01 The panels are arranged as Mtrot = 8, 16, 32, 64 for top left, top right, bottom left, bottom right, respectively 
FIG 8 The domain wall magnetization Z dw after evolving a periodic density wall |dw |dw * with the denoised second-order Trotter supercircuits D C from Fig 2of the main text These supercircuits have various Trotter depths Mtrot = 8, 16, 32, 64, denoiser depths M = 1, 2, 4, 6, 8, and evolution times t = 0 5, 1,    , 5, for the periodic L = 14 Heisenberg chain that is affected by two-qubit depolarizing noise of strength p = 0 01 The denoiser is affected by the same noise The non-denoised results are labelled with M = 0 and the noiseless results with p = 0 The panels are arranged as Mtrot = 8, 16, 32, 64 for top left, top right, bottom left, bottom right, respectively We see that the denoiser allows us to recover the noiseless behavior 

abstract

We introduce a quantum error mitigation technique based on probabilistic error cancellation to eliminate errors which have accumulated during the application of a quantum circuit  Our approach is based on applying an optimal "denoiser" after the action of a noisy circuit and can be performed with an arbitrary number of extra gates 
The denoiser is given by an ensemble of circuits distributed with a quasiprobability distribution  For a simple noise model, we show that efficient, local denoisers can be found, and we demonstrate their effectiveness for the digital quantum simulation of the time evolution of simple spin chains  Introduction 
-Quantum information processing has been theoretically shown to hold great promises, and quantum algorithms were developed which can in principle achieve an exponential speed-up over their classical counterparts, both for general purpose computing and quantum simulation   However, present day quantum computing prototypes still suffer from significant noise processes which hinder the execution of many potentially groundbreaking quantum algorithms  
Nontrivial quantum algorithms typically require large sequences of quantum gates, each of which introduces dissipation and hence an overall loss of coherence, eventually rendering the results useless  Until quantum error correction becomes practical, quantum error mitigation seems to be more feasible to increase the accuracy of expectation values 
Here the goal is to induce the (partial) cancellation of errors that stem from noisy quantum gates by extending the circuit corresponding to the desired algorithm with an ensemble of gates , sampled from a quasiprobability distribution  The traditional way to accomplish this is with the gatewise method from , where noise is mitigated by inverting the noise channel of each gate separately, i e  the cancellation of errors is performed for each gate on its own 
Here the local noise channel is approximated in a way such that it can be easily inverted analytically, e g  using Pauli twirling   Gates are then sampled from the inverted noise channel by interpreting it as a quasiprobability distribution  Because in this gate-wise approach every noisy gate has to be modified separately, the sign problem is exponentially large in the number of gates, limiting the practicality of the mitigation 
The success of the gate-wise approach resulted in a large body of work concerning these methods , including extensions for simultaneous mitigation of multiple gates by Pauli-twirling entire layers or variationally constructing a mitigating matrix product operator   In principle, errors during the execution of a circuit can propagate and accumulate 
These propagated errors * david luitz@uni-bonn de ≈ C

C

FIG  1  An example of the quantum error mitigation procedure used in this work for the time evolution of the wave function of a spin chain  The ideal second-order Trotter supercircuit C of depth Mtrot = 1 (light blue) is approximated by applying a denoiser D of depth M = 1 (red) to the noisy Trotter supercircuit C (dark blue) 
Because the denoiser is applied after fully executing the noisy Trotter supercircuit, it represents an approximate inverse of the global noise channel with a precision tunable by the depth of the denoiser  can potentially blow up and lead to large errors for the circuit as a whole   Here we introduce a mitigation technique that takes into account the propagation of errors, can be performed with a tunable number of extra gates, and works for non-Clifford local noise channels since the inversion of the accumulated global noise channel is implicit 
We first execute the targeted noisy circuit completely, letting the noise propagate and accumulate, and only afterwards we apply an extra random circuit sampled from a quasiprobability distribution  We call the corresponding ensemble of random circuits a denoiser, and we construct it such that upon averaging the accumulated errors cancel 
Essentially, the denoiser inverts a global noise channel  Since we will construct it as a local brickwall circuit, following the classical preprocessing approach from , we call this compressed quantum error mitigation  Method  -Due to the inevitable coupling of a quantum processor to its environment, every qubit operation is affected by noise 
Therefore, the simplest technique to minimize the impact of the resulting noise is to minimize the number of operations when performing a quantum algorithm  In we showed that many-body time evolution operators can be efficiently compressed into brick-wall circuits with high fidelity per gate  In this Letter, we consider the noise explicitly by treating quantum operations as (generally non-unitary) quantum channels, corresponding to completely positive and trace preserving (CPTP) maps  
For example, instead of a noiseless two-qubit gate G, which acts on a quantum state |ρ in superoperator form as G|ρ = G⊗G * |ρ , we get the noisy channel G = N G, where the noise channel N implements the two-qubit noise   These channels are used to construct a "supercircuit" C = N G i=1 Gi , consisting of N G channels, which is affected by multi-qubit accumulated noise 
This supercircuit encodes an ensemble of circuits   For simplicity, we assume that the noisy channels Gi in each half brickwall layer are lattice inversion and translation invariant, such that we can construct a denoiser with these properties, limiting the number of variational parameters  The purpose of quantum error mitigation is to modify the ensemble of circuits described by C in a way that we can use it to obtain the noiseless expectation values 
In superoperator language, we do this by following the supercircuit C with a denoiser supercircuit D, such that D C is as close to the noiseless supercircuit C = C ⊗ C * as possible  Here C is the target unitary circuit  Because the noise channel N is non-unitary, hence making the supercircuit C non-unitary, we need to use a non-unitary denoiser to retrieve the unitary C 
We illustrate the mitigation procedure in Fig  , where a denoiser with one layer is used to mitigate errors for a second-order Trotter supercircuit with one layer  This circuit architecture is commonly used to simulate the time evolution of a quantum many-body system, until some time t, with controllable precision , and we will use it to benchmark the denoiser 
In practice, we cannot directly implement a supercircuit, and so we have to utilize its interpretation as an ensemble of circuits  Essentially, after executing a shot of the noisy circuit we sample the denoiser and apply it  The goal is to construct the denoiser in a way that averaging over many of its samples cancels the accumulated errors and gives us a good approximation of the noiseless expectation values 
It should be noted that our approach requires more gate applications on the quantum processor than with the gate-wise scheme, since there each sample from the mitigation quasiprobability distribution can be absorbed into the original circuit, whereas our approach increases the circuit depth  We take this into account by imposing the same noise on the denoiser 
Furthermore, within our scheme, the dimensionality of the quasiprobabilistic mitigating ensemble can be controlled, in contrast to the gate-wise approach where it is equal to the gate count  To facilitate the stochastic interpretation we parameterize each two-qubit denoiser channel G i as a sum of CPTP maps, such that we can sample the terms in this sum and execute the sampled gate on the quantum processor 
Concretely, we use a trace preserv-ing sum of a unitary and a non-unitary channel  For the unitary part we take a two-qubit unitary channel U( φ i ) = U ( φ i ) ⊗ U * ( φ i ), with U ( φ i ) a two-qubit unitary gate parameterized by φ i   For this we take the two-qubit ZZ rotation exp(−iα(σ z ⊗ σ z )) with angle α, which can be obtained from native gates on current hardware , and dress it with four general one-qubit unitaries, only two of which are independent if we want a circuit that is space inversion symmetric around every bond 
The resulting gate has 7 real parameters φ i   For the non-unitary part, which is essential because D has to cancel the non-unitary accumulated noise to obtain the noiseless unitary circuit, we use a general onequbit measurement followed by conditional preparation channel M( , with V a general one-qubit unitary and each κ i a 3-dimensional vector, resulting in a real 9-dimensional ζ i  
This yields the two-qubit correlated measurement M( With these parts we construct the parameterization with coefficients η i ∈ R that satisfy η 0 + η 1 = 1 because G i is trace preserving  Note that here the tensor product symbol corresponds to combining two one-qubit channels to make a two-qubit channel, whereas in most of the paper it is used to link the column and row indices of a density matrix 
We construct the denoiser from the noisy channels Gi = N G i   With this parameterization one denoiser channel has 17 independent real parameters, such that a denoiser of depth M , i e  consisting of M brickwall layers, has 34M real parameters (we use one unique channel per half brickwall layer)  For reference, a general channel has 544M parameters 
To determine the mitigated expectation values we use the full expression where |ρ 0 is the initial state and |1 is the vectorized identity operator on the full Hilbert space  To evaluate this on a quantum processor, we use the stochastic interpretation of (1) to resample   In particular, from each channel (1) we get a unitary with probability p 0 = |η 0 |/γ and a measurement followed by conditional preparation with probability p 1 = |η 1 |/γ 
Here γ = |η 0 | + |η 1 | is the sampling overhead, which characterizes the magnitude of the sign problem from negative η i   For quasiprobability distributions, i e  with γ > 1, every denoiser sample has an extra sign sgn(η) = N G g=1 sgn(η g ), 2  The normalized distance between the denoised Trotter supercircuit D C and the noiseless Trotter supercircuit C (top panels), at evolution times t = 0 5, 1,    , 5, and the twopoint z-spin correlator C zz i=L/2,j=L/2 (t) of a spin on the middle site at times 0 and t (bottom panels), for the infinite temperature initial state 
We consider denoisers with depths M = 1, 2, 4, 6, 8 and second-order Trotter circuits with depths Mtrot = 16, 32, 64  In the top panels we use a Heisenberg chain with L = 8, and in the bottom panels with L = 14, both with periodic boundary conditions  All gates are affected by two-qubit depolarizing noise with p = 0 01 
The non-denoised results are labelled with M = 0, and the noiseless values with p = 0  where sgn(η g ) is the sign of the sampled coefficient of the gth channel  γ = 1 means that all signs are positive  Observables Ô p=0 for the noiseless circuit are then approximated by resampling the observables from the denoiser ensemble
where γ = N G g=1 γ g is the overall sampling overhead, with γ g the overhead of the gth gate  Clearly, a large γ implies a large variance of Ô p=0 for a given number of samples, with accurate estimation requiring the cancellation of large signed terms  The number of samples required to resolve this cancellation of signs is bounded by Hoeffding's inequality, which states that a sufficient number of samples to estimate Ô p=0 with error δ at probability 1 − ω is bounded by (2γ 2 /δ 2 ) ln(2/ω)  
Since γ scales exponentially in γ g , it is clear that a denoiser with large M and γ 1 will require many samples  We observed that decompositions with γ > 1 are crucial for an accurate denoiser  Restricting to γ = 1 leads to large infidelity and no improvement upon increasing the number of terms in or the depth M of the denoiser 
Simply put, probabilistic error cancellation of gate noise introduces a sign problem and it is crucial to find optimal parameterizations (1) which minimize γ to make the approach scalable  This issue arises in all high performance error mitigation schemes , because the inverse of a physical noise channel is unphysical and cannot be represented as a positive sum over CPTP maps 
This is clearly visible in the spectra of the denoiser, which lies outside the unit circle (cf  Fig  )  This makes the tunability of the number of gates in each denoiser sample a crucial ingredient, which allows control over the sign problem, because we can freely choose the η i in   For the parametrization (1) of denoiser channels, we try to find a set of parameters for error mitigation by minimizing the normalized Frobenius distance between the noiseless and denoised supercircuits
which bounds the distance of output density matrices and becomes zero for perfect denoising  We carry out the minimization of on a classical processor, using gradient descent with the differential programming algorithm from   Instead of explicitly calculating the accumulated global noise channel and subsequently inverting it, we approximate the noiseless supercircuit C with the denoised supercircuit D C, effectively yielding a circuit representation D of the inverse noise channel 
Results  -To benchmark the denoiser we apply it to the second-order Trotter circuits of the spin-1/2 Heisenberg chain with periodic boundary conditions (PBC) where is the Pauli algebra acting on the local Hilbert space of site i  A second-order Trotter circuit for evolution time t with depth M trot consists of M trot − 1 half brickwall layers with time step t/M trot and two layers with half time step  
We consider circuits that are affected by uniform depolarizing noise with probability p for simplicity, but our approach can be used for any non-Clifford noise  The two-qubit noise channel is which acts on neighboring qubits i and i + 1 and is applied to each Trotter and denoiser gate, and p = 0 01 unless stated otherwise 
We study circuits with depths M trot = 16, 32, 64 for evolution times t = 0 5, 1,    , 5, and denoisers D with depths M = 1, 2, 4, 6, 8  In the top panels of Fig  we show (4) for a chain of size L = 8 as a function of time t  Here it can be seen that even for M trot = 32 a denoiser with M = 1 already improves by roughly an order of magnitude at all considered t 
Depending on M trot and t, further increasing M lowers , with the biggest improvements occurring for high precision Trotter circuits with large depth M trot = 64 and short time t = 0 5, where the Trotter gates are closer to the identity than in the other cases  At the other extreme, for M trot = 16 the improvements are relatively small upon increasing M > 2  In all cases the denoiser works better at early times than at late times, again indicating that it is easier to denoise Trotter gates that are relatively close to the identity 
To probe the accuracy of the denoiser on quantities that do not enter the optimization, as a first test we consider the two-point correlator between spins at different times where we have chosen the infinite temperature initial state, and C(t) is the Trotter supercircuit for time t  In the bottom panels of Fig  we show C zz i=L/2,j=L/2 (t) for the supercircuits from the upper panels, now for a L = 14 chain 
Here we see that at M trot = 16 we can retrieve the noiseless values already with M = 1, but that increasing M trot makes this more difficult  At M trot = 64 we see larger deviations, and improvement upon increasing M is less stable, but nonetheless we are able to mitigate errors to a large extent  As a further test, we compute the out-of-time-ordered correlator (OTOC) ]
In Fig  we show the results for i = L/2, for a Trotter circuit with depth M trot = 32 and a denoiser with depth M = 2  Here we see that a denoiser with M M trot is able to recover the light-cone of correlations, which are otherwise buried by the noise  In the Supplementary Material we consider how the denoiser performs at different noise levels p, and how the denoised supercircuits perform under stacking 
There we also calculate domain wall magnetization dynamics, and show the distribution of the optimized denoiser parameters and the sampling overhead associated to the denoiser as a whole  In Fig  we show the eigenvalues of the noisy supercircuits for a noisy second-order Trotter supercircuit with M trot = 16 at t = 1 (left), the corresponding optimized denoiser with M = 4 (center), and the denoised supercircuit (right) 
The eigenvalues λ of a unitary supercircuit lie on the unit circle, and in the presence of dissipation they are pushed to the center  We see that the spectrum of the denoiser lies outside the unit circle, making it an unphysical channel which cures the effect of the noise on the circuit, such that the spectrum of the denoised circuit is pushed back to the unit circle 
The noiseless eigenvalues are shown as blue bars, making it clear that the denoiser is able to recover the noiseless eigenvalues from the noisy circuit  In the Supplementary Material we show the spectra for a p = 0 036 denoiser, where we observe a clustering of eigenvalues reminiscent of Refs    There we also investigate the channel entropy of the various supercircuits  
Conclusion  -We have introduced a probabilistic error cancellation scheme, where a classically determined denoiser mitigates the accumulated noise of a (generally non-Clifford) local noise channel  The required number of mitigation gates, i e  the dimensionality of the corresponding quasiprobability distribution, is tunable and the parameterization of the corresponding channels provides control over the sign problem that is inherent to probabilistic error cancellation 
We have shown that a denoiser with one layer can already significantly mitigate errors for second-order Trotter circuits with up to 64 layers  This effectiveness of low-depth compressed circuits for denoising, in contrast with the noiseless time evolution operator compression from , can be understood from the non-unitarity of the denoiser channels 
In particu-lar, measurements can have non-local effects, since the measurement of a single qubit can reduce some highly entangled state (e g  a GHZ state) to a product state, whereas in unitary circuits the spreading of correlations forms a light-cone  To optimize a denoiser with convenience at L > 8, the optimization can be formulated in terms of matrix product operators or channels , which is convenient because the circuit calculations leading to the normalized distance and its gradient are easily formulated in terms of tensor contractions and singular value decompositions  
This provides one route to a practical denoiser, which is relevant because the targeted noiseless circuit and the accompanying noisy variant in (4) need to be simulated classically, confining the optimization procedure to limited system sizes with an exact treatment or limited entanglement with tensor networks 
Nonetheless, we can use e g  matrix product operators to calculate (4) for some relatively small t, such that the noiseless and denoised supercircuits in (4) have relatively small entanglement, and then stack the final denoised supercircuit on a quantum processor to generate classically intractable states 
Analogously, we can optimize the channels exactly at some classically tractable size and then execute them on a quantum processor with larger size  Both approaches are limited by the light-cone of many-body correlations, as visualized in Fig  , because finite-size effects appear when the light-cone width becomes comparable with system size 
1  The normalized distance (left) and z spin correlator C zz i=L/2,j=L/2 (right), for a second-order Trotter supercircuit of depth Mtrot = 16 for time t = 1, affected by various twoqubit depolarizing errors p  We compare the values obtained with and without a denoiser, i e  M > 0 and M = 0, to the noiseless values (p = 0) 
The denoiser is affected by the same noise as the Trotter circuit  We consider denoisers with depths M = 1, 2, 4, 6, 8, and we use a L = 8 Heisenberg chain with PBC for the normalized distance, while for the correlator we use L = 14  * david luitz@uni-bonn de to observe that even for larger noise strength p, the local observable C zz improves significantly even with denoisers of depth M = 1 
For large noise strengths, we generally see that the optimization of the denoiser becomes difficult, leading to nonmonotonic behavior as a function of p, presumably because we do not find the global optimum of the denoiser  It is interesting to analyze the spectra of the supercircuits considered in this work 
As mentioned in the main text, the spectrum of the ideal, unitary supercircuit C lies on the unit circle  The comparison to this case is therefore instructive  In the main text, we showed an example of the spectra in Fig  for moderate noise strength  Here, we show additional data for stronger noise p = 0 036 in Fig  for a denoiser with M = 4 layers, optimized to mitigate errors for a second-order Trotter supercircuit with M trot = 16 layers at time t = 1 
The eigenvalues λ of the noisy supercircuit C are clustered close to zero, far away from the unit circle (except for λ = 1), showing that the circuit is strongly affected by the noise  To mitigate the impact of the noise, the denoiser consequently has to renormalize the spectrum strongly  If it accurately represents the inverse of the global noise channel, its spectrum has to lie far outside the unit circle, which is the case 
Interestingly, we observe a clustering of eigenvalues which is reminiscent to the spectra found in   By comparison to these works, we suspect that this is due to the local nature of the denoiser, and warrants further investigation  The right panel of Fig  shows the result of the denoiser, pushing the eigenvalues back to the unit circle, nearly with the exact same distribution along the circle as the noiseless eigenvalues (blue bars) 
Due to the strong noise, this is not achieved perfectly, and it is clear that this cannot work in principle if the global noise channel has a zero eigenvalue  The complexity of an operator can be quantified by its operator entanglement entropy   Here we calculate the half-chain channel entanglement entropy S of the noiseless C, noisy C, denoiser D, and denoised D C supercircuits 
We define S as the entanglement entropy of the state that is related to a supercircuit C via the Choi-Jamio lkowski isomorphism, i e  ψ C = χ C /N , where the process matrix χ ab,cd C = C ac,bd is simply a reshaped supercircuit and N ensures normalization  Then we have S = −Tr [ψ C ln ψ C ]  This entropy measure is a particular instance of the "exchange entropy", which characterizes the information exchange between a quantum system and its environment  
In Fig  we plot the various S for a second-order Trotter circuit with M trot = 16 at t = 2, for a denoiser with M = 4, both affected by two-qubit depolarizing noise with p ∈ [10 −3 , 10 −1 ]  The Trotter circuit is for a Heisenberg model with L = 6 and PBC  We see that at large p, the noise destroys entanglement in the noisy supercircuit, and that the denoiser S increases to correct for this, such that the denoised supercircuit recovers the noiseless S 
Here we investigate how denoised supercircuits perform upon repeated application  We optimize the denoiser for a Trotter supercircuit for a fixed evolution time t  Then, to reach later times, we stack the denoised supercircuit n times to approximate the evolution up to time nt: In Fig  we stack a denoised t = 1 supercircuit up to n = 20 times and calculate the correlation function, defined in the main text, for the middle site 
We consider Trotter depths M trot = 8, 16, 32, 64 and denoiser depths M = 1, 2, 4, 6, 8, for a L = 14 Heisenberg chain with p = 0 01 depolarizing two-qubit noise  The noisy results correspond to M = 0 and the noiseless results to p = 0  In Fig  we calculate the OTOC, defined in the main text, with stacked time evolution for a denoised t = 2 supercircuit with M trot = 32 and M = 2, stacked up to ten times 
We see that the stacked supercircuit performs very well, and the additional precision obtained by using deep denoisers (M = 8) pays off for long evolution times, where we see convergence to the exact result (black dashed lines in Fig  ) as a function of M   FIG    The two-point z-spin correlator C zz i=L/2,j=L/2 (t) of a spin on the middle site at times 0 and t, for the infinite temperature initial state, for denoised second-order Trotter supercircuits that are optimized at evolution time t = 1 and then stacked up to twenty times 
We use Trotter depths Mtrot = 8, 16, 32, 64 and denoiser depths M = 1, 2, 4, 6, 8  The calculations were performed for a periodic Heisenberg model with L = 14 and PBC, affected by two-qubit depolarizing noise with strength p = 0 01, which also affects the denoiser  The non-denoised results are labelled with M = 0, and the noiseless results with p = 0 
The panels are arranged as Mtrot = 8, 16, 32, 64 for top left, top right, bottom left, bottom right, respectively  The costliest and most noise-susceptible operation is the two-qubit ZZ rotation with angle α, which is the foundation of the unitary piece in our channel parameterization, defined in the main text 
For completeness, we here present the α angles of the optimized denoisers  The results are shown in Fig  , which contains histograms for the channel count N G versus α  The histograms are stacked, with the lightest color corresponding to the angles of the denoiser at t = 0 5 and the darkest at t = 5  The top four panels are for a denoiser with M = 2 and the bottom four with M = 8 
We consider M trot = 8, 16, 32, 64  We see that in both cases the distribution widens upon increasing M trot , indicating that the unitary channels start deviating more from the identity  Moreover, while the M = 2 denoisers in all cases except M trot = 64 have ZZ contributions close to the identity, this is clearly not the case for M = 8 
For simplicity, we did not focus on obtaining denoisers with the smallest sampling overhead γ, which is required to minimize the sign problem and hence ease the sampling of mitigated quantities  Instead, we let the optimization freely choose the η i in the denoiser parameterization, as defined in the main text 
In Fig  we show the sampling overhead of the denoisers from Fig  of the main text  We see that for M = 1 and M = 2 the sampling overhead is relatively small and uniform across the different t, whereas for M > 2 the optimization sometimes yields a denoiser with large γ and other times with small γ  This could be related to the difference in α distributions from Fig   
The large fluctuations of γ appears to stem from the difficulty in finding optimal deep denoisers, and our optimization procedure likely only finds a local minimum in these cases  Here C(t) is the Trotter supercircuit for time t  In Fig  we show Z dw for the circuits from Fig 



ground_truth: Lasa, Gitastrophe, and Shadoks.

prompt_front: Now, answer the following question based on the text below, only give me the answer and do not output any other words.

Question: Can the denoiser be applied to circuits with non-Clifford noise?

Read the following text and answer briefly.

Context 3: Weep Not, Child is a 1964 novel by Kenyan author Ngũgĩ wa Thiong'o  It was his first novel, published in 1964 under the name James Ngugi  It was among the African Writers Series  It was the first English language|English novel to be published by an East African  Thiong'o's works deal with the relationship between Africans and white settlers in colonial Kenya, and are heavily critical of colonial rule  Specifically, Weep Not, Child deals with the Mau Mau Uprising, and "the bewildering dispossession of an entire people from their ancestral land " Ngũgĩ wrote the novel while he was a student at Makerere University 

The book is divided into two parts and eighteen chapters  Part one deals mostly with the education of Njoroge, while part two deals with the rising Mau Mau movement 

Plot summary

Njoroge, a little boy, is urged to attend school by his mother  He is the first one of his family able to go to school  His family lives on the land of Jacobo, an African made rich by his dealings with white settlers, namely Mr  Howlands, the most powerful land owner in the area  Njoroge's brother Kamau works as an apprentice to a carpenter, while Boro, the eldest living son, is troubled by his experiences while in forced service during World War II, including witnessing the death of his elder brother  Ngotho, Njoroge's father and a respected man in the surrounding area, tends Mr  Howlands' crops, but is motivated by his passion to preserve his ancestral land, rather than for any compensation or loyalty 

One day, black workers call for a strike to obtain higher wages  Ngotho is ambivalent about participating in the strike because he fears he will lose his job  However, he decides to go to the gathering, even though his two wives do not agree  At the demonstration, there are calls for higher wages  Suddenly, the white police inspector brings Jacobo to the gathering to pacify the native people  Jacobo tries to put an end to the strike  Ngotho attacks Jacobo, and the result is a riot where two people are killed  Jacobo survives and swears revenge  Ngotho loses his job and Njoroge’s family is forced to move  Njoroge’s brothers fund his education and seem to lose respect for their father 

Mwihaki, Jacobo's daughter and Njoroge's best friend, enters a girls' only boarding school, leaving Njoroge relatively alone  He reflects upon her leaving, and realizes that he was embarrassed by his father's actions towards Jacobo  For this reason, Njoroge is not upset by her exit and their separation  Njoroge switches to another school 

For a time, everyone's attention is focused on the upcoming trial of Jomo Kenyatta – a revered leader of the movement  Many blacks think that he is going to bring forth Kenya’s independence  But Jomo loses the trial and is imprisoned  This results in further protests and greater suppression of the black population 

Jacobo and a white landowner, Mr  Howlands, fight against the rising activities of the Mau Mau, an organization striving for Kenyan economic, political, and cultural independence  Jacobo accuses Ngotho of being the leader of the Mau Mau and tries to imprison the whole family  Meanwhile, the situation in the country is deteriorating  Six black men are taken out of their houses and executed in the woods 

One day Njoroge meets Mwihaki again, who has returned from boarding school  Although Njoroge had planned to avoid her due to the conflict between their fathers, their friendship is unaffected  Njoroge passes an important exam that allows him to advance to High School  His village is proud of him, and collects money to pay Njoroge's High School tuition 

Several months later, Jacobo is murdered in his office by a member of the Mau Mau  Mr  Howlands has Njoroge removed from school for questioning  Both father and son are brutally beaten before release and Ngotho is left barely alive



ground_truth: Yes, the denoiser works for non-Clifford local noise channels.

prompt_front: Now, answer the following question based on the text below, only give me the answer and do not output any other words.

Question: How many brother does Njoroge have?

Read the following text and answer briefly.

Context 3:  Although there doesn't seem to be a connection between Njoroge's family and the murder, it is eventually revealed that Njoroge's brothers are behind the assassination, and that Boro is the real leader of the Mau Mau  Ngotho soon dies from his injuries and Njoroge finds out that his father was protecting his brothers  Kamau has been imprisoned for life  Only Njoroge and his two mothers remain free, and Njoroge is left as the sole provider of his two mothers  Njoroge fears that he cannot make ends meet; he gives up hope of continuing in school and loses faith in God 

Njoroge asks Mwihaki's for support, but she is angry because of her father’s death  When he finally pledges his love to her, she refuses to leave with him, realizing her obligation to Kenya and her mother  Njoroge decides to leave town and makes an attempt at suicide; however, he fails when his mothers find him before he is able to hang himself  The novel closes with Njoroge feeling hopeless, and ashamed of cowardice 

Characters in Weep Not, Child
 Njoroge: the main character of the book whose main goal throughout the book is to become as educated as possible 
 Ngotho: Njoroge's father  He works for Mr Howlands and is respected by him until he attacks Jacobo at a workers strike  He is fired and the family is forced to move to another section of the country  Over the course of the book his position as the central power of the family weakened, to the point where his self-realization that he has spent his whole life waiting for the prophecy (that proclaims the blacks will be returned their land) to come true rather than fighting for Kenyan independence, leads to his depression 
 Nyokabi and Njeri: the two wives of Ngotho  Njeri is Ngotho's first wife, and mother of Boro, Kamau, and Kori  Nyokabi is his second wife, and the mother of Njoroge and Mwangi 
 Njoroge has four brothers: Boro, Kamau, Kori and Mwangi (who is Njoroge's only full brother, who died in World War II) 
 Boro: Son of Njeri who fights for the Allies in World War II  Upon returning his anger against the colonial government is compounded by their confiscation of the his land  Boro's anger and position as eldest son leads him to question and ridicule Ngotho, which eventually defeats their father's will (upon realizing his life was wasted waiting and not acting)  It is eventually revealed that Boro is the leader of the Mau Mau (earlier alluded to as "entering politics") and murders Mr Howlands  He is caught by police immediately after and is scheduled to be executed by the book's end  It is highly likely that it is also Boro who kills Jacobo 
 Mwihaki: Njoroge's best friend (and later develops into his love interest)  Daughter of Jacobo  When it is revealed that his family killed Jacobo (most likely Boro), Mwihaki distances herself from Njoroge, asking for time to mourn her father and care for her mother 
 Jacobo: Mwihaki's father and an important landowner  Chief of the village 
 Mr  Howlands: A white settler who emigrated to colonial Kenya and now owns a farm made up of land that originally belonged to Ngotho's ancestors  Has three children: Peter who died in World War II before the book's beginning, a daughter who becomes a missionary, and Stephen who met Njoroge while the two were in high school 

Themes and motifs
Weep Not, Child integrates Gikuyu mythology and the ideology of nationalism that serves as catalyst for much of the novel's action  The novel explores the negative aspects of colonial rule over Kenya  Njoroge's aspiration to attend university is frustrated by both the violence of the Mau Mau rebels and the violent response of the colonial government  This disappointment leads to his alienation from his family and ultimately his suicide attempt 

The novel also ponders the role of saviours and salvation  The author notes in his The River Between: "Salvation shall come from the hills  From the blood that flows in me, I say from the same tree, a son shall rise  And his duty shall be to lead and save the people " Jomo Kenyatta, the first prime minister of Kenya, is immortalised in Weep Not, Child  The author says, "Jomo had been his (Ngotho's) hope  Ngotho had come to think that it was Jomo who would drive away the white man  To him, Jomo stood for custom and traditions purified by grace of learning and much travel " Njoroge comes to view Jomo as a messiah who will win the struggle against the colonial government 



ground_truth: Four.