A solution to a multi-variable data optimization problem using artificial intelligence
Genetic Algorithm (GA) is the one of the most efficient metaheuristic search algorithm out there in the field of Artificial Intelligence. It is a very general purpose algorithm and can be used anywhere for solving both constrained and unconstrained multivariable optimization problems. This project attempts to create an optimization program using the Genetic Algorithm that optimizes some task allocations to a set of computers in a way that the total time taken and the total energy consumed to perform the tasks are minimized respecting the memory and network constraints of the computers. There are custom format files specific for the program given as input (*.tff) which is then read to get the information about the tasks and the computers available. The program is then run to find the most efficient allocations of the tasks. For faster execution of the algorithm the concept of parallel computing is used and also network load distribution is used too. The program has two parts, one of them is the server side part that executes the algorithm and the other one is the front-end GUI part that communicates with the server side to give data for the optimization to run. The total task after reading from the input file is divided into two parts and sent to two different servers hosted on the cloud that runs the algorithm simulatneously. The reports are continiously fed back to the main program and when the desired allocations are found the program signals the servers to stop executing the process. The average time it takes for a 100 by 100 allocation problem to solve is around 15-20 seconds which is surprisingly fast and one of the perks of the GA. The GA works based on the process of genetic evolution. It forms a population from the given data and attempts to create new generation of population by mutating and crossovering the genes which is essentially the indivual allocation combination and pass it on to a fitness function which evaluates whether the new mutation resolves the criteria. Based on this choice a new population is created and the process repeats until desired result is found.


