Source: https://www.lirmm.fr/~sau/teaching/MathOpt/TD3_corr.pdf