Topics about getting started or leveling up as an AIMMS developer. Datalinks, AIMMS language, building apps...
- 497 Topics
- 1,092 Replies
Unfortunately, when modeling things hardly ever go as planned at the first try and more than once you end up with results that you did not expect. At first glance everything in the symbolic model (i.e. the variables, constraints, and parameters in the model tree) might look OK, but still you are getting results that do not make sense or the solver concludes that your model is either infeasible or unbounded. Luckily, for these cases, AIMMS provides a couple of tools that allow you investigate what is actually being sent to the solver (i.e. the complete generated problem). Investigating the information from these tools, allow you to figure out what part of your model is causing the unexpected results. [url=https://how-to.aimms.com/Articles/136/136-Infeasible-Unbounded.html]Here's [/url]more
The latest version of CPLEX, version 12.7, supports Benders decomposition. Benders decomposition is an approach to solve mathematical programming problems with a decomposable structure, including stochastic programming (SP) problems (it is also known as the L-shaped method). Computational results by IBM, see this [url=http://www.slideshare.net/xnodet/ibm-cplex-optimization-studio-127-benders-modeling-assistance-etc?cm_mc_uid=18650205168313994945525&cm_mc_sid_50200000=1480695733]slide show[/url] by Xavier Nodet, show that Benders decomposition is faster than traditional branch-and-cut for 5% of their nontrivial MIP models. That number might not seem impressive but for certain type of MIP problems Benders decomposition is much faster than other methods. Read more [url=https://how-to.aimms.com/Articles/116/116-Benders-CPLEX.html]here[/url]
In his blog post [url=http://orinanobworld.blogspot.com/2012/04/k-best-solutions.html]K Best Solutions[/url], Paul Rubin provides some information on how to obtain the [b]K best[/b] solutions for a MIP model. One of the approaches he discusses is the solution pool functionality of CPLEX. In this article, we demonstrate how to use the solution pool feature of CPLEX in AIMMS using the the same binary knapsack problem used by Paul. Find out more, [url=https://how-to.aimms.com/Articles/177/177-alternative-mip-solutions-with-cplex.html]here[/url]
Some of the solvers in AIMMS, including the CP Optimizer solver for Constraint Programming problems, support not only returning a single (optimal) solution, but also a pool of feasible solutions. Read [url=https://how-to.aimms.com/Articles/139/139-Multiple-Solutions.html]here[/url]
In the simplest form solving a Mathematical Program identifier is done by using the intrinsic [b]solve[/b] statement of AIMMS: [code]solve MathProgram ; [/code] [b][img]https://clipboardjs.com/assets/images/clippy.svg[/img][/b] For the majority of the AIMMS modelers, this suffices for their needs. Whenever you want to have more advanced control over what happens, you have to start working with Generated Mathematical Programs (GMP). With GMP’s, you have full control over the constraint matrix: you can edit coefficients and add new constraints and variables. read more [url=https://how-to.aimms.com/Articles/147/147-GMP-Intro.html]here[/url]
Solvers can share information about the solution process up to a very detailed level. To avoid overhead in generating information that is not inspected anyway, the AIMMS IDE defaults to not sharing any information. [url=https://how-to.aimms.com/Articles/13/13-Solver-Logging-IDE.html]Here[/url]
How to check whether a given combination of value assignments for the variables in your model satisfy all the constraints to produce a feasible solution.
This article explains how to check whether a given combination of value assignments for the variables in your model satisfy all the constraints to produce a feasible solution. You could add an assignment constraint for each of your variables that fixes the variable to the given value and then solve the model again. If the solver returns with the status infeasible, you know that these variable values do not satisfy all constraints. [url=https://how-to.aimms.com/Articles/193/193-check-if-variables-satisfy-constraints.html]Here[/url]
This article explains how to check whether a given combination of value assignments for the variables in your model satisfy all the constraints to produce a feasible solution. You could add an assignment constraint for each of your variables that fixes the variable to the given value and then solve the model again. If the solver returns with the status infeasible, you know that these variable values do not satisfy all constraints. Click [url=https://how-to.aimms.com/Articles/193/193-check-if-variables-satisfy-constraints.html]here[/url]
The identifier types ACTIVITIES and RESOURCES, and the scheduling intrinsic functions as part of the AIMMS constraint programming component are very useful in modeling construction projects and optimizing the makespan of those projects. [url=https://how-to.aimms.com/Articles/140/140-Scheduling-Project-Planning.html]Here [/url]you can find out more.
The purpose of this example is to illustrate a few features of the AIMMS identifier types [i]ACTIVITIES[/i] and [i]RESOURCES[/i]. In the example used, we model the intuition that smaller jobs get a more narrow time window in which they are to be scheduled. In addition, the time needed between jobs, the change over time, increases with the difference in jobs. Read some more [url=https://how-to.aimms.com/Articles/142/142-Narrowing-Time-Windows.html]here[/url]
Solutions from rostering applications affect the daily life of the people rostered. Therefore, the application developers and planners iteratively improve the rostering applications and the quality of the solutions, often based on the feedback of those affected by the rosters created. The close link between the modeling language and GUI pages in AIMMS makes it easy to study the solutions and (re)formulate constraints. Read about it [url=https://how-to.aimms.com/Articles/137/137-Small-Rostering.html]here[/url].
The ROGO puzzle, [url=http://www.rogopuzzle.co.nz/]rogopuzzle[/url], challenges players to find a good path on a board, pick up treasures, and avoid pitfalls. This puzzle, and its corresponding iPhone app, were originally developed in New Zealand. In this post, I’ll explain a method for solving ROGO puzzles using constraint programming in AIMMS. Find out how to solve it [url=https://how-to.aimms.com/Articles/138/138-ROGO.html]here[/url]
Sometimes there are parts of a model that you would like to re-use in another AIMMS model. If it is a very generic component, you could choose to create an AIMMS library or an AIMMS module out of it. Please see the chapter “Organizing a Project Into Libraries” in the [url=https://documentation.aimms.com/_downloads/AIMMS_user.pdf]AIMMS The User’s Guide[/url] for more information about this. In the cases that you only want to quickly export/import a set of identifiers once, you can also use the export/import functionality in AIMMS. Also, on this blog we will provide the AIMMS code where applicable as .ams files. You can import these into your existing projects with the instructions found below. In some cases where the whole project is needed (and not only some snippets), we will provide the whole project as an a .zip file. Read it [url=https://how-to.aimms.com/Articles/145/145-import-export-section.html]here[/url]
In the context of the AIMMS environment, a library is an AIMMS project that can be included in/added to other AIMMS projects. Each library in AIMMS contains a subset of project files. You can divide a large project into smaller sub-projects, enabling multiple developers to collaborate easily by sharing parts which are relevant to the entire project. Read [url=https://how-to.aimms.com/Articles/84/84-using-libraries.html]here [/url]how to add a new libary to the current project
Sometimes it is easier to work strictly with the keyboard than to switch to the mouse. There are a number of keyboard shortcuts available in AIMMS that allow for quick access to certain features within AIMMS. Find them [url=https://how-to.aimms.com/Articles/186/186-keyboard-shortcuts-for-aimms.html]here[/url].
Find your way to solve this issue here: [list] [*][url=https://how-to.aimms.com/Articles/89/89-academic-license.html#ref-personal-nodelock]Error: This license can only be activated using a personal nodelock[/url] [*][url=https://how-to.aimms.com/Articles/89/89-academic-license.html#ref-pending-activation]Error: Pending Activation[/url] [*][url=https://how-to.aimms.com/Articles/89/89-academic-license.html#ref-ip-subnet]Error: The IP can only be activated from within a specified IP subnet[/url] [/list]
[h2]Error: Update failed - The nodelock file is readonly[/h2][h3] [/h3][h3] [/h3]You are unable to update your license because the nodelock file is read-only. How to resolve, read [url=https://how-to.aimms.com/Articles/89/89-license-nodelock-error.html]here[/url].
An AIMMS developer license can only be used on one machine at a time. There may be situations where you need to use AIMMS on a different machine, either temporarily or permanently. This article explains how to transfer an AIMMS license for use on a different computer. Click [url=https://how-to.aimms.com/Articles/195/195-transfer-developer-license.html]here[/url]
Already have an account? Login
Please use your business or academic e-mail address to register
Login to the community
No account yet? Create an account
Enter your username or e-mail address. We'll send you an e-mail with instructions to reset your password.