Programming Challenge 5:

EVOLUTIONARY CONCERT TOUR (ECT)
Just as evolution transformed (and continues to transform) the face of our planet towards complexity and life, evolutionary computation offers us a method for transforming our simulations into adaptive programs, capable of finding creative solutions to novel problems. The ECT (alias Traveling Salesman's Problem) is a simple example of evolutionary programming, incorporating many of the elements of the mechanisms evolution through natural selection as described by both Dariwn and Wallace: natural selection and reproduction with variation.

EXPLORE and ENHANCE
How often does the simulation arrive at Fogel's optimum solution? How, and why, does it find it in some cases and fail to find it in others? (Some screen shots should help you illustrate your analysis.) In what ways does this success and failure follow patterns of natural evolution. How might we vary some of the evolutionary parameters (either before or during the run) so that we might arrive at the optimal solution more often and earlier? Could we evolve some of those parameters inside the evolutionary programming example? How might we do that? Is there an optimal set of evolutionary parameters which should serve all evolutionary problems? Present some ideas for functional enhancements to the application. How might we implement sexual reproduction? Explain them in a language that is as close to C++ as possible (pseudocode) or actually implement them in C++.