  Software defined networking (SDN) represents a promising networking
architecture that combines central management and network programmability. SDN
separates the control plane from the data plane and moves the network
management to a central point, called the controller, that can be programmed
and used as the brain of the network. Recently, the research community has
showed an increased tendency to benefit from the recent advancements in the
artificial intelligence (AI) field to provide learning abilities and better
decision making in SDN. In this study, we provide a detailed overview of the
recent efforts to include AI in SDN. Our study showed that the research efforts
focused on three main sub-fields of AI namely: machine learning,
meta-heuristics and fuzzy inference systems. Accordingly, in this work we
investigate their different application areas and potential use, as well as the
improvements achieved by including AI-based techniques in the SDN paradigm.
