Decomposition techniques in mathematical programming: engineering and science applications | Synapse