Distributed optimization based algorithms for vehicle platooning