- Forward


Unconstrained Multidimensional Optimization
An Introduction with Examples in Java


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu

Print

Motivation
Back SMYC Forward
  • A Question:
    • How would you climb to the top of a hill on a foggy night?
  • One Approach:
    • Wander aimlessly until you can't take an uphill step in any direction
  • Another Approach:
    • Only walk uphill
    • Don't walk too far
      toofar
    • Stop when you can't find an uphill direction to walk in
Motivation (cont.)
Back SMYC Forward

An Illustration of the Ascent Algorithm

ascent
A Generic Ascent Algorithm
Back SMYC Forward

In Pseudocode

while (You are not at the top of the hill) { Find an uphill direction and face that way Walk as far uphill as you can in the direction you are facing }
Choosing an Uphill Direction
Back SMYC Forward

A Series of "Bad" Directions

spiral
Choosing an Uphill Direction (cont.)
Back SMYC Forward

A Really Good Direction

steepest
Choosing an Uphill Direction (cont.)
Back SMYC Forward

Greed is Not Always Good

ridge
A Visualization Technique
Back SMYC Forward

Generating Level Sets

levelset1
A Visualization Technique (cont.)
Back SMYC Forward

The Level Sets for this Example

levelset2
A Visualization Technique (cont.)
Back SMYC Forward

Level Sets in General

levelset3
The Cyclic Coordinates Method
Back SMYC Forward

An Illustration

levelset4
The Cyclic Coordinates Method (cont.)
Back SMYC Forward

In Pseudocode

while (You are not at the top of the hill) { Walk as far uphill as you can in the north/south direction Walk as far uphill as you can in the east/west direction }
The Cyclic Coordinates Method (cont.)
Back SMYC Forward

For Minimization (NOT Maximization)

javaexamples/optimization/CyclicCoordinates.java
 
An Abstract Objective Function
Back SMYC Forward

One Approach

javaexamples/optimization/Objective.java
 
An Example
Back SMYC Forward

Triangulation on the Plane

triangulation-example
An Example (cont.)
Back SMYC Forward

An Objective Function for Triangulation on the Plane

javaexamples/optimization/TriangulationObjective.java
 
There's Always More to Learn
Back -