Balancing task allocation in multi-robot systems using K -means clustering and auction based mechanisms