Unlike the Excel version of RISKOptimizer, the RODK does not require a spreadsheet to perform optimization. This means user models can be larger and execute faster. All optimization results can be accessed programmatically, directly in the developer's application. The extensive Evolver Watcher can be called to visually monitor optimization progress.
RODK applications can be run in a desktop, network server, or web environment. Furthermore, the RODK fully supports multithreading to allow the development of scalable web applications. Models built using the RODK can run optimizations and generate results entirely in the user's program , or Evolver's Microsoft-style interface can be used to input optimization settings and parameters. . Genetic operators that drive the optimization may be chosen by the programmer as well.
How RISKOptimizer Works
RISKOptimizer uses the combined power of @RISK and Evolver to solve optimization problems under uncertainty. Probability distributions from @RISK are used to model the uncertainty present in your spreadsheet, just as they are in @RISK. During an optimization, RISKOptimizer generates a number of trial solutions and uses genetic algorithms (GAs) to continually improve results of each trial. However, unlike Evolver, each trial is an @RISK simulation! During the simulation for each trial, probability distribution functions are sampled and a new value for the target cell is generated - over and over again. At the end of a simulation, the result for the trial is the statistic that you wish to minimize or maximize for the distribution of the target cell (mean, standard deviation, etc.). For each new trial solution, another simulation is run and another value for the target statistic is generated. The result is the trial solution that provides the best answer to your problem!
RISKOptimizer doesn't replace @RISK or Evolver but works with them to solve optimization problems that include uncertainty. And that's a wide variety of problems! Just think of the problems where you need to find optimal solutions. Then, in those problems, identify values which are uncertain. In the past, you might have just guessed at values for these uncertain factors - greatly diminishing the validity of your results. Now you can stop guessing and use RISKOptimizer to generate robust, optimal solutions!
Why Use the RODK?
For many users the spreadsheet is the preferred modeling environment. However, many times an application written in a standard programming language needs optimization capabilities, and will have uncertain factors for which simulation can account. The application will have its own user interface, variables and model calculations. In addition, a developer may want to allow users to access the application over a corporate network or over the Internet.
The RODK allows custom applications such as these to run genetic algorithm optimizations to maximize or minimize a particular output, while simulating the different possible scenarios of each trial solution. Applications written with the RODK will often run faster and can contain larger numbers of adjustable cells and distribution functions when compared with models written in spreadsheet versions of RISKOptimizer. This is because RODK applications are compiled and do not contain additional routines executed during spreadsheet recalculation.
Distribute Custom Solutions Over the Web
The RODK allows you to streamline the distribution of your optimization solutions through enterprise-wide web deployment. Server-based optimization models - such as investment mix models, manufacturing applications, production models, and scheduling tools - can be accessed over the Internet from any browser, allowing users to enter model parameters and inputs, define distribution functions, run optimizations, and view results. Model structure, logic, and RODK optimization and simulation libraries are stored on the server, ensuring consistency for all end-users and removing local installation and support issues.
Optimization problems often involve constraints that have to be met for solutions to be valid. For example, when optimizing an academic class schedule, no two classes can be scheduled in the same room during the same time slot, and the lab for a certain course may have to be scheduled for the same day as the lecture, but later in the day. Such problem constraints can easily be added to RODK models. The RODK’s GA engine will only generate solutions which meet these constraints, insuring realistic results every time. You can even define constraints that must be met during the Monte Carlo simulations.
ActiveX Interface Makes Integrating Optimization Easy
The EDK ships with two programming interfaces: the ActiveX Interface and the standard DLL Interface.
The ActiveX/COM Interface makes development of customized optimization programs easy. An intuitive set of methods and properties allow the developer to quickly set up an optimization model with uncertainty in a custom application - defining adjustable variables, distribution functions, outputs, and constraints. (See a list of methods and properties, by object, here.) This interface can be used in any ActiveX-aware programming environment such as Visual Basic or C++. Example programs are included.
.NET AND ACTIVEX
Because the .NET environment offers the COM Interoperability feature, .NET programmers can also take advantage of the easy-to-use ActiveX/COM interface. Examples in two .NET programming languages – C# and Visual Basic .NET – are included.
The RODK DLL Interface includes a library of functions that allows you to build optimization models using C, Visual Basic or other programming languages. Use of the RODK function library requires an installed programming language and knowledge of programming techniques. You are not, however, restricted to using these languages for developing your programs. Any Windows-based language which can call .DLL functions can be used for developing RODK applications using the RODK DLL Interface. Example programs in C++ and Visual Basic are included.
The RODK features auto-mutation rate adjustment. The mutation rate determines the amount of randomness the RODK engine uses when generating new solutions. The RODK can monitor progress toward an optimal solution and adjust the mutation rate appropriately.
Selectable Genetic Operators
The RODK also allows users to select from a variety of available genetic operators, including heuristic crossover, extinction, boundary mutation s, local search, and others. Choose the best operator for your specific program to find the optimal answer more efficiently. Using a powerful auto-operator feature, the RODK can also test all available operators and identify the best-performing one for a specific model.
Typical Applications that Can Incorporate the RODK
- Yield Management
- Financial Planning
- Portfolio Analysis
- Ordering Policies
- Product Mix Decisions
- Job Shop Scheduling
- Production Scheduling
- Capital Budgeting
- Capacity Planning
- Route Planning
- Purchasing Decisions
- Cash Management Policies
- Retirement Planning
Deployment Options That Meet Your Needs
The RODK Developer Edition gives you everything you need to get up and running with your own optimization application with uncertainty. Affordable and flexible, it is ideal for developing and testing custom solutions. Multiple Developer Kits can be purchased to run applications in small workgroups. The Developer Edition includes:
DLL and ActiveX functions to perform all RISKOptimizer features as described above
Examples in Windows and .NET programming languages
Installer for deployment of an unlimited number of 30-day demo licenses of any application developed using the RODK
NOTE: For more information about RISKOptimizer, please take a look to the Tech Corner: Using RISKOptimizer. Click here to view the RISKOptimizer tutorial.