add kkt condition
add dual problem