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++.