maximum_cut(G, sampler=None, **sampler_args)[source]#

Returns an approximate maximum cut.

Defines an Ising problem with ground states corresponding to a maximum cut and uses the sampler to sample from it.

A maximum cut is a subset S of the vertices of G such that the number of edges between S and the complementary subset is as large as possible.

  • G (NetworkX graph) – The graph on which to find a maximum cut.

  • sampler – A binary quadratic model sampler. A sampler is a process that samples from low energy states in models defined by an Ising equation or a Quadratic Unconstrained Binary Optimization Problem (QUBO). A sampler is expected to have a ‘sample_qubo’ and ‘sample_ising’ method. A sampler is expected to return an iterable of samples, in order of increasing energy. If no sampler is provided, one must be provided using the set_default_sampler function.

  • sampler_args – Additional keyword parameters are passed to the sampler.


S – A maximum cut of G.

Return type:



This example uses a sampler from dimod to find a maximum cut for a graph of a Chimera unit cell created using the chimera_graph() function.

>>> import dimod
>>> sampler = dimod.SimulatedAnnealingSampler()
>>> G = dnx.chimera_graph(1, 1, 4)
>>> cut = dnx.maximum_cut(G, sampler)


Samplers by their nature may not return the optimal solution. This function does not attempt to confirm the quality of the returned sample.