Appendix B. C++ Examples

Table of Contents
Overview of C++ Examples
Step 1: Installation of NetSolve
Step 2: Installation of Server service
Step 3. Installation of Client Software
Step 4. Starting the NetSolve Agent/Server
Start Optimization

Overview of C++ Examples

The C++ examples make use of NetSolve Farming. In these examples, the optimum points of the test functions are derived by GA.

Genetic Algorithm

Genetic Algorithm (GA) is the optimization algorithm that imitates the evolution of living creatures. In nature, inadaptable creatures to an environment meet extinction, and only adapted creatures can survive and reproduce. A repetition of this natural selection spreads the superior genes to conspecifics and then the species prospers. GA models this process of nature on computers. GA can be applied to several types of optimization problems by encoding design variables of individuals. Searching for the solution proceeds by performing the three genetic operations on the individuals; selection, crossover, and mutation, which play an important role in GA. Selection is an operation that imitates the survival of the fittest in nature. The individuals are selected for the next generation according to their fitness. Crossover is an operation that imitates the reproduction of living creatures. The crossover exchanges the information of the chromosomes among individuals. Mutation is an operation that imitates the failure that occurs when copying the information of DNA. Mutating the individuals in a proper probability maintains the diversity of the population.

Distributed Genetic Algorithm (DGA)

Since GA is a stochastic and multi-point search, a lot of iterations are necessary to derive the optimum solution. This leads to take a huge time. One of the solutions of this problem is performing GA in parallel. There are several types of parallel GA. Distributed Genetic Algorithm is one of models of parallel GAs. In a conventional GA, there is only one population. In DGA, total population is divided into sub populations. In each population, normal GA operations are performed for several iterations. After some iterations, some of the individuals are chosen and moved to the other islands. This operation is called migration. Therefore, sometimes, sub population is called an island and DGA is called island model. After the migration, normal GA operations restart again. The population size of each island is small. That leads the early convergence. However, because of the existence of migration operation, total diversity of the solutions is maintained. Compared to the conventional model, DGA has higher searching capability. It can be said that DGA is suitable model not only from the parallel point of view but also from the searching capability.


ga2k is an implementation of DGA that is developed by Intelligent Systems Design Lab/Doshisha University . The web page (Japanese) of ga2k is You can access this document in English here