Ant colony system for the multi objective problems using the collective knowledge center

Published: 14-04-2019| Version 2 | DOI: 10.17632/29y3rz5nt9.2
Contributors:
Mohamed RHAZZAF,
Tawfik MASROUR

Description

this source code proposes a dynamic parameterization approach to the ant colony optimization algorithm configuration applied to multi-objective optimization problems. Indeed, the inertia of the static vision of the pheromone or visibility preferences values makes our dynamic approach a desired approach. We propose a model based on a collective knowledge center shared by the colony members, storing the best configurations based on the old experiments of the colony during the learning phase on random problems. The construction of this center is based on a statistical and qualitative study of the evaluation criteria that will be explained over the paper. Our model gives results that show a rise in quality of the outputs, as well as a proof of concept of the artificial learning approach.

Files

Steps to reproduce

This code source implements the ant colony system for the multi objective problems using the concept of the collective knowledge center. Getting Started The project is coding with python 3 and implement other libraries for vectors and matrices computation, and also store all the actions in a MySQL database. Prerequisites In order to execute le code, you should have: Linux OS (Ubuntu 18 is favorable). Python 3.6 or higher. And MySQL server Installing After installing Linux OS, first you should install python 3 using the command: sudo apt-get install python3.6 After that, you should install pip3 for getting all the python libraries using the command: sudo apt-get install python3-pip And install the numpy library for the numeric calculation, the sqlalchemy library for the Object/Relational mapping, and mysqlclient for the connection with SQL server with python pip3 install numpy pip3 install sqlalchemy pip3 install mysqlclient Next, you should install MySQL server, and all the developpement packages using with, using the command: sudo apt-get install mysql-server sudo ufw allow mysql sudo apt install default-libmysqlclient-dev apt-get install python-mysqldb Then, you sould start MySQL Server service using the command: sudo systemctl start mysql Then, you should create a root user with a password using the command: sudo mysql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; Running the tests For running the program, you can execute python file: python3 Main_Start.py <file_configurattion> The configuration file structure is present as follow: database=<database_name> random_data_set=<tsp_file_generated_random_graph> data_test=<tsp_file_target_for_testing_graph> test_size=<test_size> random_metric=<metric_random_graph> test_metric=<metric_test_graph> ant_size=<ant_group_size> mode=<NORMAL/CKC_with_static_Q0> param_acs=<alpha> <beta> <roo> <mu> <q_0> eporch_size=<eporch_size> iteration_size=<iteration for eche running>