def move_nodes(self, partition, consider_comms=None):
if (consider_comms is None):<EOL><INDENT>consider_comms = self.consider_comms<EOL><DEDENT>diff =  _c_louvain._Optimiser_move_nodes(self._optimiser, partition._partition, consider_comms)<EOL>partition._update_internal_membership()<EOL>return diff<EOL>
Move nodes to alternative communities for *optimising* the partition.

        Parameters
        ----------
        partition
          The partition for which to move nodes.

        consider_comms
          If ``None`` uses :attr:`consider_comms`, but can be set to
          something else.

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

        Notes
        -----
        When moving nodes, the function loops over nodes and considers moving the
        node to an alternative community. Which community depends on
        ``consider_comms``. The function terminates when no more nodes can be moved
        to an alternative community.

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