Bi Level Optimization