A multiple exchange algorithm in convex programming