{'fraction_non_alphanumeric': 0.021395348837209303, 'fraction_numerical': 0.0, 'mean_word_length': 5.5212121212121215, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A Learning Automaton-Based Controller Placement Algorithm for Software-Defined Networks

Software-defined networking (SDN) moves the control plane of network devices like switches and routers to the controller. The controller is in charge of managing the whole network through application programming interfaces (APIs). Fault tolerance in the SDN networks can be handled by leveraging multiple controllers. Placing controllers in an SDN network can be seen as facility location problem which is an NP-hard problem. In this paper, we propose a simple heuristic algorithm for controller placement in SDN networks leveraging a learning automaton (LA) approach. The proposed algorithm can place the controllers based on a predefined propagation latency between the controllers and the switches while minimizing the overall propagation latency. We perform several simulations, from the available topologies of ToplogyZoo, and the results show the superiority of the proposed algorithm when compared to competing current state-of-the-art algorithms in terms of propagation latency.