I work for a municipality and we are trying to figure out which sections of sewer lines to replace first or at least identify areas that should be looked at. It was suggested I use a Fast Messy Genetic Algorithm like this.
We have records on the sewer lines like date installed, pipe type(clay, plastic, etc), life expectancy of pipe type, tree cover (roots penetrate the pipe causing breaks and blockages), ground water level(if there is a break in this area water gets into the pipe and then is unnecessarily treated), and visual inspections on 45 out of 3,500 pipes(number of breaks in pipe and how sever).
There is some interaction between these factors like clay pipes can be broken by roots more easily.
Where I am suck
I am unsure how to make a fitness function. I am thinking I would sum the values like percent of pipe covered by trees, percent of pipe blow ground water, age of pipe divided by its life expectancy. However, I am not sure how to account for clay pipes interacting with tree coverage (possibly multiply tree coverage for a some weight of each pipe type).
How do I set up a fitness function for the above parameters?