Optimization of complex separations in high-performance liquid chromatography