In this paper, we study cluster synchronization in networks of coupled
non-identical dynamical systems. The vertices in the same cluster have the same
dynamics of uncoupled node system but the uncoupled node systems in different
clusters are different. We present conditions guaranteeing cluster
synchronization and investigate the relation between cluster synchronization
and the unweighted graph topology. We indicate that two condition play key
roles for cluster synchronization: the common inter-cluster coupling condition
and the intra-cluster communication. From the latter one, we interpret the two
well-known cluster synchronization schemes: self-organization and driving, by
whether the edges of communication paths lie at inter or intra-cluster. By this
way, we classify clusters according to whether the set of edges inter- or
intra-cluster edges are removable if wanting to keep the communication between
pairs of vertices in the same cluster. Also, we propose adaptive feedback
algorithms on the weights of the underlying graph, which can synchronize any
bi-directed networks satisfying the two conditions above. We also give several
numerical examples to illustrate the theoretical results.