Variational quantum algorithms