a multi-agent data clustering algorithm