Stacking sequences in composite laminates through design optimization