A Comparative Analysis of Community Detection Algorithms on Artificial Networks