Quantum optimization algorithms