def optimise_partition(self, partition):
    """ Optimise the given partition.

    Parameters
    ----------
    partition
      The :class:`~VertexPartition.MutableVertexPartition` to optimise.

    Returns
    -------
    float
      Improvement in quality function.

    Examples
    --------

    >>> G = ig.Graph.Famous('Zachary')
    >>> optimiser = louvain.Optimiser()
    >>> partition = louvain.ModularityVertexPartition(G)
    >>> diff = optimiser.optimise_partition(partition)

    """
    # Perhaps we
    diff = _c_louvain._Optimiser_optimise_partition(self._optimiser, partition._partition)
    partition._update_internal_membership()
    return diff
Optimise the given partition.

    Parameters
    ----------
    partition
      The :class:`~VertexPartition.MutableVertexPartition` to optimise.

    Returns
    -------
    float
      Improvement in quality function.

    Examples
    --------

    >>> G = ig.Graph.Famous('Zachary')
    >>> optimiser = louvain.Optimiser()
    >>> partition = louvain.ModularityVertexPartition(G)
    >>> diff = optimiser.optimise_partition(partition)