After a long break, I have finally managed to find some time to work on an update. Sorry to all who have been waiting! The latest version is 1.0.8 and can be obtained from the Downloads section. This contains quite a few bug fixes from the last version, which are described in more detail in the Change Log.
We are indeed grateful to Prof Ye Yinyu, the anonymous AE and two referees for handling our paper. The paper took less than 6 months from submission to being accepted in OR!!! Many thanks to them again!!
This example is a fairly complicated multiperiod optimization problem that can easily be modeled in ROME. It illustrates the usefulness of Matlab functions such as sum, squeeze, cat and repmat in reducing the use of loops in the ROME code. Using loops excessively in a Matlab code would usually slow down the program.
ROME 1.0.7 has just been uploaded! Please update your installation of ROME to the latest version.
This upload fixes some bugs in the earlier releases, and introduces a couple of new and experimental features (piecewise-linear bounds). Please see +RomeTest\model_test_bdldr.m for an example of the new bound. We will be updating the documentation shortly. Other changes are found in the ChangeLog.
This simple portfolio allocation example is adapted from “The Price of Robustness” paper. It was the first paper I wrote with my advisor, Dimitris Bertsimas during my first year at MIT in 2000. Gee.. How time flies.
Dimitris came up with the nice title… So far the paper has over 270 citations on Google Scholar.
Any way, this example illustrates how to construct the uncertainty set and solve the robust problem using ROME.
I’ve uploaded an old presentation I gave about 3 months ago during a guest lecture in NUS. It was a 3-hour long lecture, and it contains details about the Distributionally Robust Optimization framework that we used to design ROME, as well as details about ROME’s features and some modeling examples. I hope you will find it useful!
We have added more links to useful robust optimization references in the “References” section of the main website. Do take a look and see if they are helpful in your research!
In the same section, I have also posted slides from a talk that I gave at the 20th ISMP in Chicago (23 – 28 Aug 2009), which briefly summarizes the methodology behind ROME and briefly introduces ROME.
ROME 1.0.6 has been uploaded, containing some bug fixes, and a new member function “objective” from the @rome_model class, which allows you to extract the worst-case objective function value after solving the model. Please refer to the changelog for more detailed information.
The User’s Guide has also been updated with new information and some corrections to typographic and other errors.
Many thanks to Boris Bachelis for the bug reports in both the code and user’s guide!
This example illustrates theĀ use of multi-dimensional variables in ROME.
ROME 1.0.5 has been uploaded. Please update your installation of ROME. The detailed changes can be found in the change log. The key changes in this update is a change in the behavior of “eval”, which now returns a numeric quantity for certain variables, and the subsequent change of the examples in +RomeTest to use “eval” instead of “eval_var”.
In general, we do not recommend using “eval_var” in ROME code. You should always use “eval” and the accompanying “linearpart” and “deflectedpart” functions to extract the results of the optimization in ROME.