///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Case I:
（Initial Program）
Twodimentional case in the polar coordinate

We begin with some initial input curve rinit.

We perturb by adding some noise: rnew = rinit + Σcmcos(mθ).

The coefficients cm are pseudorandom numbers from Mathematica.
Case II：
Τhe Parabola Problem
Consider a smooth curve connecting the points (0, 0) and (1, 0) with light rays shining vertically on to it. Which curve, or curves, will reflect all of the light to a single point?
Once again, this problem has a known solution: the parabola.
Τhe Methodology

Start with random polynomial f of degree n.

Generate vertical rays and their reflections off f at various xvalues.

Find all intersections of reflection rays and add their distances.

Keep better curves, randomly perturb their coefficients, and try again. (Better curves have lower total distance.)
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Given a fixed length curve,
What is the largest area it encloses?
Given a fixed area surface,
What is the largest volume it encloses?
The project The Evolution of Curves and Surfaces used to be a James Scholar course project in UIUC conducted by a student, Prathum Saraf. And now it is a project of Illinois Geometry Lab.
Consider a piece of string tied in a loop, and imagine that you are trying to maximize the area enclosed by this loop without breaking or stretching the string. What shape should you make?
The above problem is not a new one; its solution has been known for well over 100 years. The curve you seek is a circle. In our project, we use random perturbations of the curve, and see how it evolves over many iterations.
Project Overview
Preliminaries
Why Solve This?
We chose this problem, even though its solution is known, because it helps illustrate our methods for attacking optimization problems:

Begin with some trial solution, or guess.

Randomly perturb this solution.

Accept the new solution if it is better and reject if it is not. Repeat this procedure many times.

In this way we hope that the solution will improve.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Case I:
(Improved Program）
Twodimentional case in the polar coordinate

Initially noise amplitude was constant.

We let the amplitude decrease proportionally to the number of failed iterations.

This produced generally better results.