The implementation of optimization in Detect3D broadly follows the basic method for constrained Genetic Algorithms (GAs). However, the details of the algorithm have been modified from “conventional” Genetic Algorithm implementations to account for the specifics of positioning flame detectors.
The GA progresses from one generation to the next, with each generation consisting of multiple possible detector layouts. The ultimate goal of the GA is that each new generation improves on the last – in other words, the layouts gradually improve with each successive generation. While this may not be true for all generations, it is generally true considering all generations.
Each generation consists of a number of "individuals”, with each individual being an entire detector layout (it is very important to understand that an individual is not a detector, but an entire layout). The very first generation is filled with random individuals, in other words, layouts with randomly positioned detectors (“random” is not quite accurate, as the possible locations and orientations of the detector are constrained to sensible values defined by the user). Many of the detectors will be oriented in obviously bad directions due to this random initialization and is to be expected.
Once the initial generation has been defined, the individuals (layouts) are ranked, with the best layout at the top, and the worst at the bottom. The ranking of the layouts is a crucial aspect to the effectiveness of the optimization, and Detect3D ranks layouts based both on the coverage of the detectors and the potential of the layout to remove one detector. The layout is assigned a single value, its fitness, based on the fitness function which accounts for these aspects of the layout. The ranked individuals are then used to create a new generation by following the standard operators of GAs:
It is important to note that all of the above operators involve random chance. The GA is a stochastic method, rather than deterministic. It is incorrect to assume that the GA will give the same answer twice – most likely this will not be the case.
A new generation is based mainly upon the best individuals from the previous generation. The process is then repeated - individuals are ranked and then used to create a new generation. Gradually the fitness of the individuals improves, and you will be able to see the coverage of the best layout gradually increase. If the simulation is set up to automate the detector count, detectors may be added or removed.