Homeworks from the Solving Optimization Problems Using Evolutionary Computation Algorithms in Java course.
Solving the Tri SAT problem by using 3 different approaches:
- Checking all the solutions
- Greedy iterative algorithm that tries to change the solution in just one bit. After trying out all the changes, the algorithm will continue with one of the solutions that were better than the previous one.
- Greedy iterative algorithm that changes one bit, but uses a fitness function that will generate the fitness bases on how many times a clause is true. This will result in giving the clauses that are true almost all the time a lower priority.
Minimizing and maximizing different functions using:
- Gradient descent
- Newton's method
Minimizing a function using simulated annealing with various solution representations and temperature schedules.
- Minimizing a function using an elitist genetic algorithm.
- Solving the "Box Packing Problem" using a steady-state genetic algorithm.
- Maximizing a function that has a large contant area using RAPGA (Relevant Alleles Preserving Genetic Algorithm). Tested different parameters and selection methods for the algorithm.
- Solving the quadratic assignment problem using SASEGASA (Self Adaptive Segregative Genetic Algorithm with Simulated Annealing aspects).
Solving the travelling salesman problem using Max-Min Ant System Algorithm.
Created an Feedforward artificial neural network to classify different species of Iris. The neural network is trained using different approaches:
- Particle Swarm Optimization algorithm using global neigborhood
- Particle Swarm Optimization algorithm using local neigborhood
- Clonal Selection Artificial Immune Systems Algorithm
Created two artificial neural networks: a Time Delay Neural Network and an Elman Neural Network, in order to predict the next value from the given series of data. Both neural networks are trained using a Differential Evolution algorithm.
Solved two multiple objective optimization problems using the NSGA algorithm (Non-dominated Sorting Genetic Algorithm).
Solved two multiple objective optimization problems using the NSGA II algorithm (Non-dominated Sorting Genetic Algorithm II).
Created a thread safe random number generator that uses the default Java Random class from java.util. Created two versions of a genetic algorithm that takes a grayscale image and tries to create it using only a given number of rectangles. In the first version, only the evaluation is done multithreaded. In the second solution the job of creating a new child is done multithreaded (parent selection, crossover, mutation and evaluation), while the main thread is used just to create the tasks and new population.
Solved a problem of finding the best path for an ant to get the maximum food on a given map using genetic programming. Created GUI using Swing to simulate the movements.