Adding a figure showing the state diagram for the Nelder Mead Simplex Tuning Algorithm.
authorIsaac Dooley <idooley2@illinois.edu>
Thu, 18 Mar 2010 15:32:05 +0000 (10:32 -0500)
committerIsaac Dooley <idooley2@illinois.edu>
Thu, 18 Mar 2010 15:32:05 +0000 (10:32 -0500)
src/ck-cp/NelderMeadStateDiagram.pdf [new file with mode: 0644]
src/ck-cp/controlPoints.C
src/ck-cp/controlPoints.h

diff --git a/src/ck-cp/NelderMeadStateDiagram.pdf b/src/ck-cp/NelderMeadStateDiagram.pdf
new file mode 100644 (file)
index 0000000..9686079
Binary files /dev/null and b/src/ck-cp/NelderMeadStateDiagram.pdf differ
index 647ed1453e35246d73491416e86b52c7ff683a51..521a343d763947a818ada977ffb4a605b25bc0b6 100644 (file)
@@ -1684,6 +1684,20 @@ int controlPoint(const char *name, int lb, int ub){
 
 
 
+/** Determine the next configuration to try using the Nelder Mead Simplex Algorithm.
+
+    This function decomposes the algorithm into a state machine that allows it to
+    evaluate one or more configurations through subsequent clls to this function.
+    The state diagram is pictured in the NelderMeadStateDiagram.pdf diagram.
+
+    At one point in the algorithm, n+1 parameter configurations must be evaluated,
+    so a list of them will be created and they will be evaluated, one per call.
+
+    Currently there is no stopping criteria, but the simplex ought to contract down
+    to a few close configurations, and hence not much change will happen after this 
+    point.
+
+ */
 void simplexScheme::adapt(std::map<std::string, std::pair<int,int> > & controlPointSpace, std::map<std::string,int> &newControlPoints, const int phase_id, instrumentedData &allData){
 
        if(useBestKnown){
index dcf1876305c36fa6a1a38842a2168876f46ac8ca..b5e803d760e0cb09dfa919916dddb9470f13d8d5 100644 (file)
@@ -581,6 +581,9 @@ public:
 /** A class that implements the Nelder Mead Simplex Optimization Algorithm */
 class simplexScheme {
 private:
+        /** The states used by the Nelder Mead Simplex Algorithm. 
+           The transitions between these states are displayed in the NelderMeadStateDiagram.pdf diagram.
+       */
        typedef enum simplexStateEnumT {beginning, reflecting, expanding, contracting, doneExpanding, stillContracting}  simplexStateT;
 
        /// The indices into the allData->phases that correspond to the current simplex used one of the tuning schemes.