Deprecated: Return type of ResultWrapper::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/db/DatabaseUtility.php on line 174

Deprecated: Return type of ResultWrapper::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/db/DatabaseUtility.php on line 192

Deprecated: Return type of ResultWrapper::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/db/DatabaseUtility.php on line 185

Deprecated: Return type of ResultWrapper::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/db/DatabaseUtility.php on line 202

Deprecated: Return type of ResultWrapper::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/db/DatabaseUtility.php on line 163

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: Return type of FileBackendStoreShardListIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FileBackendStore.php on line 1893

Deprecated: Return type of FileBackendStoreShardListIterator::rewind() should either be compatible with FilterIterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FileBackendStore.php on line 1908

Deprecated: Return type of FSFileBackendList::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FSFileBackend.php on line 892

Deprecated: Return type of FSFileBackendList::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FSFileBackend.php on line 900

Deprecated: Return type of FSFileBackendList::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FSFileBackend.php on line 884

Deprecated: Return type of FSFileBackendList::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FSFileBackend.php on line 928

Deprecated: Return type of FSFileBackendList::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/filebackend/FSFileBackend.php on line 914

Warning: Trying to access array offset on value of type null in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/profiler/SectionProfiler.php on line 104

Warning: Trying to access array offset on value of type null in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/profiler/SectionProfiler.php on line 104

Warning: Trying to access array offset on value of type null in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/profiler/SectionProfiler.php on line 105

Warning: Trying to access array offset on value of type null in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/profiler/SectionProfiler.php on line 105

Warning: Trying to access array offset on value of type null in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/profiler/SectionProfiler.php on line 106

Warning: Trying to access array offset on value of type null in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/profiler/SectionProfiler.php on line 106

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Deprecated: trim(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/skins/SkinTemplate.php on line 313

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104

Deprecated: explode(): Passing null to parameter #2 ($string) of type string is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/languages/Language.php on line 2104
Difference between revisions of "Optimize tab" - Rave Documentation

Difference between revisions of "Optimize tab"

From Rave Documentation
Jump to: navigation, search
(Created page with "=Introduction=")
 
(Save/Export Results Button)
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
=Introduction=
 
=Introduction=
 +
The '''Optimize Tab''' is where you set up and run optimizations.
 +
 +
The controls on the Optimize Tab are arranged from top to bottom in the order in which you should use the controls. The sections below also follow this order, so you can read this page from top to bottom to learn the process of setting up and running [[optimization]].
 +
 +
The Optimize Tab is shown below with its controls labeled. See the Appropriate section below for help on a particular control.
 +
 +
[[File:Optimizetab_labeled.png]]
 +
 +
=Optimize Tab Controls=
 +
 +
==Data Set Menu==
 +
Select the [[data set]] that contains the variables you wish to optimize.
 +
 +
==Analysis Menu==
 +
Select the Analysis that you wish to use for this [[optimization]] run. The analysis controls:
 +
*The feasible ranges/values of each [[independent variable]].
 +
 +
==Algorithm Menu==
 +
 +
The Algorithm Menu lists all the [[optimization]] algorithms available in your Rave installation. Use this menu to select the algorithm that you wish to use.
 +
 +
 +
There are three categories of algorithms:
 +
*'''Single-Objective''' - These are standard [[optimization]] algorithms that optimize a single function (variable) in your [[data set]]. They usually return a single point -- the best point found by the [[optimization]] run.
 +
*'''Multi-Objective''' - These are algorithms used to find the Pareto frontier of a set of functions in your [[data set]]. They usually return multiple points that span the frontier. Multi-Objective [[optimization]] algorithms usually require many more function calls than Single-Objective algorithms. Some multi-objective algorithms call single-objective [[optimization]] algorithms in a loop to generate many sampled points along the frontier.
 +
*'''Ranking''' - These algorithms simply select the row or rows in your [[data set]] that best satisfy some criteria. These algorithms do not generate any new data and they work even if your [[data set]] does not contain any [[functional variables]].
 +
 +
For information about specific [[optimization]] algorithms, see: [[List of optimization algorithms]]
 +
 +
==Objective Function Menu==
 +
Use the objective function menu to select the variable that you wish to optimize.
 +
 +
*If you have selected a single-objective algorithm from the Algorithm menu, you must select a single variable from this list.
 +
*If you have selected a multi-objective algorithm from the Algorithm menu, you must select more than one variable from this list. Some algorithms may require a specific number of variables; you will be notified if you select an invalid number of variables.
 +
 +
==Edit Ranges Button==
 +
Click this button to make changes to the [[independent variables]]' allowable ranges/values. This button opens the [[Allowable values GUI]], which can also be accessed from the [[Manage analyses GUI]]. Any changes you make here are permanent; they do NOT only affect your current [[optimization]] run(s).
 +
 +
==Edit Targets Button==
 +
Click this button to make changes to the variables' target values. This button opens the [[Define targets GUI]], which can also be accessed from the [[Manage data sets GUI]]. Any changes you make here are permanent; they do NOT only affect your current [[optimization]] run(s).
 +
 +
==Side Constraints Checkbox==
 +
'''Note:''' Rave does not yet use this control.
 +
 +
"Side Constraints" refer to the upper and lower limits on the [[independent variables]].
 +
 +
Future versions of Rave will allow you to uncheck this box to run fully unconstrained [[optimization]].
 +
 +
Currently versions of Rave  '''always''' enforce the upper and lower limit constraints.
 +
 +
==Constraint Menu==
 +
If you have created any constraints for this [[data set]], they will be listed in this menu. You must select (highlight) the constraints that you wish to enforce. '''Unhighlighted constraints will not be enforced.''' If you have no constraints or do not wish to enforce any constraints, just select the first (blank) row of this menu.
 +
 +
See [[Contrain tab]] for information on creating constraints.
 +
 +
==Animate Checkbox==
 +
Check this box to animate the progress of your next [[optimization]] run. You must have a valid graph on [[the workspace]], which is displaying the appropriate [[data set]], in order for Rave to animate the optimizer.
 +
 +
See [[Animating optimizer runs]] for more information.
 +
 +
==Animation Settings Button==
 +
Press this button to access options for how Rave animates [[optimization]] runs and whether/how it saves the animations.
 +
 +
See [[Animating optimizer runs]] for more information.
 +
 +
==Save Settings Button==
 +
Clicking this button saves the current values in the Algorithm Settings Table to a text file. This lets you create a record of your [[optimization]] runs.
 +
 +
You can enter comments in the first line of this file, after the name of the algorithm. For example, when you save a settings file for the fmincon algorithm, the top line of the file will read:
 +
 +
<pre>
 +
%#fmincon <name these settings here>
 +
</pre>
 +
 +
You can enter a short description such as:
 +
<pre>
 +
%#fmincon For use with homework problem 5.4
 +
</pre>
 +
 +
'''Important:''' When you enter a description, do not change the name of the algorithm (except perhaps to the name of another algorithm that shares an identical set of settings) or remove the "%#" before its name.
 +
 +
===Using Saved Settings to Parameterize Subproblems===
 +
Some [[optimization]] algorithms call other [[optimization]] algorithms. The most common case is when a multi-objective algorithm calls a single-objective algorithm to solve [[optimization]] subproblems.
 +
 +
In such cases, the settings for the main algorithm will appear in the Algorithm Settings Table, but the settings of the subproblem algorithm will not. Instead, there will be a row in the Algorithm Settings Table in which you can specify either:
 +
* The file name of a saved optimizer settings file, created by clicking the save button.
 +
* The string "default" to simply use the subproblem [[optimization]] algorithm's default settings.
 +
 +
An example of this situation is shown below:
 +
[[File:Optimization_subproblem_settings.png]]
 +
 +
The first row of the settings table contains the name of the subproblem algorithm, in this case "fmincon". The second row of the table contains the string "default", indicating that the default parameters of fmincon should be used (i.e. the settings that appear in the table when you select fmincon from the Algorithm Menu). Alternately, a file name could be entered in the second row, for example "mysettings.txt" to use the fmincon settings stored in that file.
 +
 +
'''Note:''' As always, the file name you specify must be on your [[MATLAB search path]] so that MATLAB can access it.
 +
 +
The general procedure for setting up and running an algorithm that use subproblems is:
 +
#Select the algorithm you wish to use to solve the subproblems from the Algorithms menu. You do not need to specify the Objectives or Constraints; skip straight to the Algorithm Settings Table.
 +
#Make the desired changes in the Algorithm Settings Table.
 +
#Click the Save Settings button. Give the file a unique name and put it on your [[MATLAB search path]].
 +
#Select the main algorithm (the one that calls the algorithm specified in Step 1) from the Algorithm Menu
 +
#Use the remaining controls on the Optimize Tab to set up your problem
 +
#Locate the row in the Algorithm Settings Table that indicates the name of the subproblem algorithm to use (If you are unsure, see the algorithm's help page.)
 +
#Enter the name of the algorithm you chose in Step 1 in this row.
 +
#Locate the row in the Algorithm Settings Table that indicates the name of the [[optimization]] settings file to use (If you are unsure, see the algorithm's help page.)
 +
#Enter the name of the file you saved in Step 3 in this row.
 +
#Click the Start Button to run your optimizer.
 +
 +
==Load Settings Button==
 +
 +
The load settings button lets you load the algorithm settings stored in a file that you created by clicking the Save Settings Button. Use this button to quickly update the Algorithms Table to a previously saved state.
 +
 +
'''Note:''' You can only load a saved [[optimization]] settings file that matches the algorithm currently selected in the Algorithms menu. If you attempt to load settings for another algorithm, you will see an error message.
 +
 +
==Algorithm Settings Table==
 +
The algorithm settings table is used to specify all parameters that affect the optimizer aside from the objective function and constraints. The settings that are displayed in this table change depending on which algorithm is selected in the Algorithm Menu. For help on a particular [[optimization]] algorithm's settings, see the help page for that algorithm.
 +
 +
===Linking settings to problem parameters===
 +
Settings that require numerical values can be specified by directly entering the desired number into the settings table, or by entering a function of one or more of the following variables:
 +
 +
*nVars = the number of [[independent variables]] (Rave determines this automatically based on the function that calculates the variable selected to serve as the objective
 +
*numberofequalities = the number of equality constraints
 +
*numberofinequalities = the number of inequality constraints (excluding upper/lower bounds on the [[independent variables]]
 +
*numberofbounds = the number of bound constraints (since in Rave each variable has an upper and a lower bound, this is always even)
 +
 +
The variable names must appear exactly as shown here (case sensitive).
 +
 +
===Default settings===
 +
The default settings for each algorithm are stored in a file named "raveopt<keyword>settings.m," which you can find in that optimizer's directory under rave\optimizers\.
 +
 +
You can change the default settings by modifying these files. If you later update Rave, make sure you back up these files and copy them to your new install directory!
 +
 +
'''Note:''' It is possible that the list of settings for an algorithm may change in newer versions of Rave. If you modify these files and wish to copy them to a new version of Rave, you should not simply replace the files in the new version with your modified copies, but check the new version to see if any new settings have appeared or old settings have been removed, and merge the two files as appropriate.
 +
 +
==Start/Stop Button==
 +
When you have filled out all of the controls on the Optimize tab and you are ready to start your optimizer, click the Start button.
 +
 +
While your optimizer is running, the start button will turn into a "Stop" of "Pause" button and will turn red.
 +
*The choice between Stop and Pause depends solely on the algorithm being run. Most optimizers do not support pausing.
 +
*Clicking the Stop button will abort your [[optimization]] run. f you stop an optimizer, any progress that has been made will be lost. No results will be saved.
 +
*Clicking the Pause button will temporarily halt your [[optimization]] run. After an [[optimization]] has been paused, you can resume the run by clicking "Continue" or start a new [[optimization]] by clicking "Start"
 +
 +
If an error occurs during your [[optimization]] run, it will appear in on your MATLAB command line. Check the error messages to see what went wrong. The Stop button will turn back into a Start button.
 +
 +
==Continue Button==
 +
Click the Continue Button to resume an [[optimization]] that has been paused (by clicking the Stop button).
 +
 +
'''Note:''' Most optimizers do not support pausing/resuming.
 +
 +
==Batch Button==
 +
'''Note:''' Rave does not yet use this control.
 +
 +
Future versions of Rave will allow you to set up multiple [[optimization]] runs by clicking the Batch button. You will then be able to run all the batched runs in sequence without having to click Start for each run.
 +
 +
==Save/Export Results Button==
 +
Click this button to save the results of any previous [[optimization]] run that successfully completed during this Rave session.
 +
 +
You are given four options for saving the results:
 +
*Create as a new [[data set]] - this option is not intended for use with single-objective optimizers, which usually only return a single point. This option is for multi-objective optimizers, which usually return many points.
 +
*Export to file - save to a text file. The text files are saved in the standard Rave file format and can be loaded into Rave as a new [[data set]] if desired.
 +
*Append to current [[data set]] - this option adds the optimizers results to your [[data set]]. They will appear at the bottom of the data table. You can specify a color for the rows; you may wish to choose a color you are not currently using so that you can easily identify these rows in your data table and visualizations.
 +
*Replace Current [[data set]] - this option replaces your current [[data set]] with the results of the selected [[optimization]] run. All existing rows in your [[data set]] will be deleted. '''This cannot be undone''' so use it carefully.
 +
 +
 +
'''Note:''' The most recent [[optimization]] run that successfully completed will be initially selected when you click the Save/Export Results Button. Use the menu at the top of the GUI to save older results.
 +
 +
=If Something Breaks...=
 +
Unlike the other tabs, Rave saves the current state of the optimize tab when you switch to another tab, and restores it when you switch back to the optimize tab. This means that if something on the Optimize Tab breaks, simply switching tabs will not restore it to working order. The most common cause for this is if you are debugging an optimizer and you quit the optimizer from MATLAB's debug mode. This will cause the Stop button to not turn back into a Start button.
 +
 +
If this happens, you can completely reset the Optimize Tab by doing either of the following:
 +
*Click the "Rave" Logo that appears below the tabs. This will completely reset the tabs and will display the [[Manage tab]].
 +
*Enter full screen mode by clicking the Fullscreen mode button or by right clicking an empty place on [[the workspace]] and selecting "Full Screen Mode" from the [[Workspace context menu|context menu]].

Latest revision as of 20:20, 7 September 2013

Introduction

The Optimize Tab is where you set up and run optimizations.

The controls on the Optimize Tab are arranged from top to bottom in the order in which you should use the controls. The sections below also follow this order, so you can read this page from top to bottom to learn the process of setting up and running optimization.

The Optimize Tab is shown below with its controls labeled. See the Appropriate section below for help on a particular control.

Optimizetab labeled.png

Optimize Tab Controls

Data Set Menu

Select the data set that contains the variables you wish to optimize.

Analysis Menu

Select the Analysis that you wish to use for this optimization run. The analysis controls:

Algorithm Menu

The Algorithm Menu lists all the optimization algorithms available in your Rave installation. Use this menu to select the algorithm that you wish to use.


There are three categories of algorithms:

  • Single-Objective - These are standard optimization algorithms that optimize a single function (variable) in your data set. They usually return a single point -- the best point found by the optimization run.
  • Multi-Objective - These are algorithms used to find the Pareto frontier of a set of functions in your data set. They usually return multiple points that span the frontier. Multi-Objective optimization algorithms usually require many more function calls than Single-Objective algorithms. Some multi-objective algorithms call single-objective optimization algorithms in a loop to generate many sampled points along the frontier.
  • Ranking - These algorithms simply select the row or rows in your data set that best satisfy some criteria. These algorithms do not generate any new data and they work even if your data set does not contain any functional variables.

For information about specific optimization algorithms, see: List of optimization algorithms

Objective Function Menu

Use the objective function menu to select the variable that you wish to optimize.

  • If you have selected a single-objective algorithm from the Algorithm menu, you must select a single variable from this list.
  • If you have selected a multi-objective algorithm from the Algorithm menu, you must select more than one variable from this list. Some algorithms may require a specific number of variables; you will be notified if you select an invalid number of variables.

Edit Ranges Button

Click this button to make changes to the independent variables' allowable ranges/values. This button opens the Allowable values GUI, which can also be accessed from the Manage analyses GUI. Any changes you make here are permanent; they do NOT only affect your current optimization run(s).

Edit Targets Button

Click this button to make changes to the variables' target values. This button opens the Define targets GUI, which can also be accessed from the Manage data sets GUI. Any changes you make here are permanent; they do NOT only affect your current optimization run(s).

Side Constraints Checkbox

Note: Rave does not yet use this control.

"Side Constraints" refer to the upper and lower limits on the independent variables.

Future versions of Rave will allow you to uncheck this box to run fully unconstrained optimization.

Currently versions of Rave always enforce the upper and lower limit constraints.

Constraint Menu

If you have created any constraints for this data set, they will be listed in this menu. You must select (highlight) the constraints that you wish to enforce. Unhighlighted constraints will not be enforced. If you have no constraints or do not wish to enforce any constraints, just select the first (blank) row of this menu.

See Contrain tab for information on creating constraints.

Animate Checkbox

Check this box to animate the progress of your next optimization run. You must have a valid graph on the workspace, which is displaying the appropriate data set, in order for Rave to animate the optimizer.

See Animating optimizer runs for more information.

Animation Settings Button

Press this button to access options for how Rave animates optimization runs and whether/how it saves the animations.

See Animating optimizer runs for more information.

Save Settings Button

Clicking this button saves the current values in the Algorithm Settings Table to a text file. This lets you create a record of your optimization runs.

You can enter comments in the first line of this file, after the name of the algorithm. For example, when you save a settings file for the fmincon algorithm, the top line of the file will read:

%#fmincon <name these settings here>

You can enter a short description such as:

%#fmincon For use with homework problem 5.4

Important: When you enter a description, do not change the name of the algorithm (except perhaps to the name of another algorithm that shares an identical set of settings) or remove the "%#" before its name.

Using Saved Settings to Parameterize Subproblems

Some optimization algorithms call other optimization algorithms. The most common case is when a multi-objective algorithm calls a single-objective algorithm to solve optimization subproblems.

In such cases, the settings for the main algorithm will appear in the Algorithm Settings Table, but the settings of the subproblem algorithm will not. Instead, there will be a row in the Algorithm Settings Table in which you can specify either:

  • The file name of a saved optimizer settings file, created by clicking the save button.
  • The string "default" to simply use the subproblem optimization algorithm's default settings.

An example of this situation is shown below: Optimization subproblem settings.png

The first row of the settings table contains the name of the subproblem algorithm, in this case "fmincon". The second row of the table contains the string "default", indicating that the default parameters of fmincon should be used (i.e. the settings that appear in the table when you select fmincon from the Algorithm Menu). Alternately, a file name could be entered in the second row, for example "mysettings.txt" to use the fmincon settings stored in that file.

Note: As always, the file name you specify must be on your MATLAB search path so that MATLAB can access it.

The general procedure for setting up and running an algorithm that use subproblems is:

  1. Select the algorithm you wish to use to solve the subproblems from the Algorithms menu. You do not need to specify the Objectives or Constraints; skip straight to the Algorithm Settings Table.
  2. Make the desired changes in the Algorithm Settings Table.
  3. Click the Save Settings button. Give the file a unique name and put it on your MATLAB search path.
  4. Select the main algorithm (the one that calls the algorithm specified in Step 1) from the Algorithm Menu
  5. Use the remaining controls on the Optimize Tab to set up your problem
  6. Locate the row in the Algorithm Settings Table that indicates the name of the subproblem algorithm to use (If you are unsure, see the algorithm's help page.)
  7. Enter the name of the algorithm you chose in Step 1 in this row.
  8. Locate the row in the Algorithm Settings Table that indicates the name of the optimization settings file to use (If you are unsure, see the algorithm's help page.)
  9. Enter the name of the file you saved in Step 3 in this row.
  10. Click the Start Button to run your optimizer.

Load Settings Button

The load settings button lets you load the algorithm settings stored in a file that you created by clicking the Save Settings Button. Use this button to quickly update the Algorithms Table to a previously saved state.

Note: You can only load a saved optimization settings file that matches the algorithm currently selected in the Algorithms menu. If you attempt to load settings for another algorithm, you will see an error message.

Algorithm Settings Table

The algorithm settings table is used to specify all parameters that affect the optimizer aside from the objective function and constraints. The settings that are displayed in this table change depending on which algorithm is selected in the Algorithm Menu. For help on a particular optimization algorithm's settings, see the help page for that algorithm.

Linking settings to problem parameters

Settings that require numerical values can be specified by directly entering the desired number into the settings table, or by entering a function of one or more of the following variables:

  • nVars = the number of independent variables (Rave determines this automatically based on the function that calculates the variable selected to serve as the objective
  • numberofequalities = the number of equality constraints
  • numberofinequalities = the number of inequality constraints (excluding upper/lower bounds on the independent variables
  • numberofbounds = the number of bound constraints (since in Rave each variable has an upper and a lower bound, this is always even)

The variable names must appear exactly as shown here (case sensitive).

Default settings

The default settings for each algorithm are stored in a file named "raveopt<keyword>settings.m," which you can find in that optimizer's directory under rave\optimizers\.

You can change the default settings by modifying these files. If you later update Rave, make sure you back up these files and copy them to your new install directory!

Note: It is possible that the list of settings for an algorithm may change in newer versions of Rave. If you modify these files and wish to copy them to a new version of Rave, you should not simply replace the files in the new version with your modified copies, but check the new version to see if any new settings have appeared or old settings have been removed, and merge the two files as appropriate.

Start/Stop Button

When you have filled out all of the controls on the Optimize tab and you are ready to start your optimizer, click the Start button.

While your optimizer is running, the start button will turn into a "Stop" of "Pause" button and will turn red.

  • The choice between Stop and Pause depends solely on the algorithm being run. Most optimizers do not support pausing.
  • Clicking the Stop button will abort your optimization run. f you stop an optimizer, any progress that has been made will be lost. No results will be saved.
  • Clicking the Pause button will temporarily halt your optimization run. After an optimization has been paused, you can resume the run by clicking "Continue" or start a new optimization by clicking "Start"

If an error occurs during your optimization run, it will appear in on your MATLAB command line. Check the error messages to see what went wrong. The Stop button will turn back into a Start button.

Continue Button

Click the Continue Button to resume an optimization that has been paused (by clicking the Stop button).

Note: Most optimizers do not support pausing/resuming.

Batch Button

Note: Rave does not yet use this control.

Future versions of Rave will allow you to set up multiple optimization runs by clicking the Batch button. You will then be able to run all the batched runs in sequence without having to click Start for each run.

Save/Export Results Button

Click this button to save the results of any previous optimization run that successfully completed during this Rave session.

You are given four options for saving the results:

  • Create as a new data set - this option is not intended for use with single-objective optimizers, which usually only return a single point. This option is for multi-objective optimizers, which usually return many points.
  • Export to file - save to a text file. The text files are saved in the standard Rave file format and can be loaded into Rave as a new data set if desired.
  • Append to current data set - this option adds the optimizers results to your data set. They will appear at the bottom of the data table. You can specify a color for the rows; you may wish to choose a color you are not currently using so that you can easily identify these rows in your data table and visualizations.
  • Replace Current data set - this option replaces your current data set with the results of the selected optimization run. All existing rows in your data set will be deleted. This cannot be undone so use it carefully.


Note: The most recent optimization run that successfully completed will be initially selected when you click the Save/Export Results Button. Use the menu at the top of the GUI to save older results.

If Something Breaks...

Unlike the other tabs, Rave saves the current state of the optimize tab when you switch to another tab, and restores it when you switch back to the optimize tab. This means that if something on the Optimize Tab breaks, simply switching tabs will not restore it to working order. The most common cause for this is if you are debugging an optimizer and you quit the optimizer from MATLAB's debug mode. This will cause the Stop button to not turn back into a Start button.

If this happens, you can completely reset the Optimize Tab by doing either of the following:

  • Click the "Rave" Logo that appears below the tabs. This will completely reset the tabs and will display the Manage tab.
  • Enter full screen mode by clicking the Fullscreen mode button or by right clicking an empty place on the workspace and selecting "Full Screen Mode" from the context menu.

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Deprecated: header(): Passing null to parameter #3 ($response_code) of type int is deprecated in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/AutoLoader.php:90) in /var/www/vhosts/rave.gatech.edu/httpdocs/help/includes/WebResponse.php on line 37