karush kuhn tucker conditions provide the necessary conditions for a solution to be optimal