Size and Topology Optimization for Trusses with Discrete Design Variables by Improved Firefly Algorithm