Nonlinear Mixed Integer Programming