Optimization methods applied to ship design