Implementing Balas additive algorithm using SIMD instructions
A special type of integer programming, called binary or 0/1 programming, has a wide area of application, primarily in the field of scheduling. Two main approaches to this problem are simplex algorithm based branch and cut methods and optimized Boolean enumeration. Given the time complexity of the enumerative algorithm, it is useful to find ways to speed up the process. Intel x86 processors have registers and instructions that allow simultaneous operations on 16 or 32 data items. The paper describes experiences with the transformation of an algorithm into an assembly language in order to use these instructions to increase the algorithm speed.