Getting Fluent in OPTANO.Modeling
Let's leave the "Hello World"
examples behind and get started!
Typical Issues
When trying to build your own (more complex) models, you might find yourself struggling with some common issues:
- Bad Image Exception: Set your project to the right image (x86 / x64)
- Argument Exception: Choosing the right name for your constraints
- Out of Memory Exception: Allow "large" objects on the heap
- MIPCL throws System.TypeInitializationException: Install/provide DLLs from Visual C++ Redistributable Packages
- Gurobi.GRBException: 'Name too long': Limit the length of your variable, constraint and objective names
- GLPK throws System.IO.FileNotFoundException: Make sure to add the
libglpk-cli.dll
to your project references.
Advanced Models
Various (extensive) examples for creating advanced MIPs and IPs can be found here.
Modeling
- Read data from files or databases
- Learn how to work with Expressions:
- Operator or Expression?! Fundamentals on how to build Expressions, e.g. for Constraints.
- Expression.Sum: Add variables the right way.
- Non-Linear Constructs: Use advanced operators, such as Min, Floor, ... whilst using LP-Solvers
- Formulate Constraints: Restrict your solution space.
- Logical Relations: Add constraint groups, and more.
- Multi-Objective Optimization: Use more than one objective for an optimization problem.
Improving Models
- Branching: Use Branching Priorities and Directions to support branch and bound.
Running the Model
- Configuration: How to change default settings for your Models.
- Variable Collections: Using Variable Collections.
- Get solution values manually: Some statistics that help model tuning.
- Understanding Model- and Solution-Status: Make sense of the different combinations of Status and ModelStatus.
- Creating a deep clone of a Model
Analyzing the Model
- Conflicting Sets: Find conflicts in your model.
- Remove reduced Variables: Find obsolete variables.
- Short Names: Details about short names, and why to use them.
- Variable Statistics: Some statistics that help model tuning.
- Visualize Data: Visualize results in plots.
Dirty Tricks
- (Ab-)using the ModelScope: Using the ModelScope in non-standard ways.