  Controller placement problem (CPP) is a key issue for Software-Defined
Networking (SDN) with distributed controller architectures. This problem aims
to determine a suitable number of controllers deployed in important locations
so as to optimize the overall network performance. In comparison to
communication delay, existing literature on the CPP assumes that the influence
of controller workload distribution on network performance is negligible. In
this paper, we tackle the CPP that simultaneously considers the communication
delay, the control plane utilization, and the controller workload distribution.
Due to this reason, our CPP is intrinsically different from and clearly more
difficult than any previously studied CPPs that are NP-hard. To tackle this
challenging issue, we develop a new algorithm that seamlessly integrates the
genetic algorithm (GA) and the gradient descent (GD) optimization method.
Particularly, GA is used to search for suitable CPP solutions. The quality of
each solution is further evaluated through GD. Simulation results on two
representative network scenarios (small-scale and large-scale) show that our
algorithm can effectively strike the trade-off between the control plane
utilization and the network response time.
