Source: https://perso.telecom-paristech.fr/angelini/master_spsiv/optimization/iup1.opti.chp7.pdf