A Mathematical Programming Approach for the Design of WDM Optical Networks