The automatic optimization of separations in high-performance liquid chromatography