This paper investigates the solution by integer programming of reliability optimization problems which are subject to linear and nonlinear separable restraints. In particular, the following problems are solved: (1) maximizing reliability for a parallel redundancy system subject to multiple linear restraints, (2) minimizing cost of a parallel redundancy system subject to multiple nonlinear and separable restraint functions while maintaining an acceptable level of reliability, (3) optimal choice of design for a parallel redundancy system. Also discussed are the necessary alterations to the above formulations for problems involving standby redundant units.