https://vivu.tv/what-are-the-methods-of-solving-non-linear-programming-problems/