Multi-objective adjoint optimization