Source: https://www.lirmm.fr/fodop08/ArticlesFODOP08/Article6.pdf