Integer Linear Programming is a technique for solving combinatorial optimization problems exactly using two main techniques: branch and bound, which involves branching on integer variables in a search tree, and cutting planes, which adds linear inequalities to strengthen formulations. MILP modeling formulates problems as integer programs that can then be solved using these techniques.