Goal programming is a branch of multiobjective optimization, which in turn is a branch of multi-criteria decision analysis. It can be thought of as an extension or generalisation of linear programming to handle multiple, normally conflicting objective measures.