Topics about getting started or leveling up as an AIMMS developer. Datalinks, AIMMS language, building apps...
- 578 Topics
- 1,259 Replies
Hello Team, I am working on the multidepot-VRP problem an extension of your practical example capacitated VRP. I want to make a model in which vehicles will depart from their depots to serve different customers and turn back to the same depot where it started from. I made a rough model but facing some sort of errors. Kindly check and help me to resolve my model. I shall be really thankful to you. Looking forward for your kind response. Regards
MIP Relative Optimality Tolerance
Hi, In the Options Tree, I have been changing the MIP Relative Optimality Tolerance to 0.5%, 1.0%, 5.0% and 10.0% to analyse the performance of the solution, gap and solving time. I wish to change the gap to 0.5%, 1.0%, 5.0% and 10.0% to analyse whether the solving time can be reduce by changing the gap. However, the CPLEX always stop at either 0.04%, 0.12% or 0.00% of gap. Is there any way to stop the CPLEX at 10% of gap?
How to bypass processor groups to support more than 64 logical cores
Hi AIMMSians, I am using the AMD 3995WX processor which has 128 logical processors. I realized that a single instance of AIMMS only uses 64 logical processors as processors are grouped by windows’ limit (64 cores). To use all 128 processors, I can run two instances of AIMMS at the same time. The first instance gets affinity of group0. Then I need to modify the affinity of the second instance to use the second NUMA (group1). Still, I would like one instance of AIMMS employs all logical processors. I assume the same problem exists on servers where the number of logical cores often exceeds 64. Is there any way to bypass windows' processor group policy (i.e. make AIMMS group aware) and distribute the job between all 128 available threads? Note 1: I tried CPLEX and GUROBI solvers. I am not sure if this limitation is related to AIMMS or the solvers.Note 2: I am aware of disabling Hyperthreading/SMT, but that is not desirable.
Calling AIMMS from Python with academic license
Hi everyone,I have been trying to call an AIMMS (academic license) procedure from python although this doesn't seem to work. I got the following code from another thread, which seems to work with a paid license. I also saw on another post that the academic licence might have some limitations in this regard. Is there an API in another language, were I can make Python wrapper around this other language?orIs it possible that AIMMS internally allows to run scripts in some language, in which case a script can be built in such a way that they exchange model parameters/inputs/results with the outside world? Best regards,
Releasing RAM memory after finishing with an execution
I want to clear the memory used by AIMMS after running an execution. I delete the GMP but still huge amount of RAM is occupied by AIMMS after the run. So I have to close and open the AIMMS to have a fresh start (i.e. with a clear RAM memory). Is there anyway to clean the RAM used by AIMMS after the execution so I do not need to close and open it again and again? Thanks in advance.
Issue with retrieving optimality gap and solution time
Hi. I am trying a generate a plot of optimality gap vs solution time. For that, I am trying to retrieve incumbent solution, best bound and solution time after every 5 iterations. But, for some reason, I am having issues with callback and I don’t get anything retrieved. Attached herewith are the images giving implementation of callback operation. Could anyone please tell where I am going wrong? Thanks, Sujit
How can I show the legend on a WebUI linechart?
The WinUI has a super obvious tab for the Legend of a linechart. But there seems to be NO way whatsoever to display the legend (or anything that will work as a legend) on a WebUI linechart. I even tried the (seemingly obvious) solution of using a legend widget. If this will work, I can't figure out how. Is there a way to show the legend? And if you don't have on yet, is there a workaround and do you have it in the plans in the future?
CPLEX Return Local Optimal
Hello everyone, CPLEX returns optimal solution for small instances of a MIP model. But when try to solve a larger instance, CPLEX return a local optimum (solution checked by a heuristic). The model is MIP with a number of Big-M formulations that are replaced by Indicator Constraints. For one of the large instances: # of constraints: 2086337 #of variables: 1122331 (66225 int) #of none zero: 7223176 It takes 53557 seconds for CPLEX to close the optimality Gap. Any idea? please share your thought.
Unable to solve model
Dear all, In the accompanied model, I try to decrease the inter-facility transport flows between warehouses by changing the production allocation per factory. However, when I try to solve this model, after +- 20 seconds the solution comes back at '0', and I can see that nothing has changed. Could anyone point out to me why this is happening? Kind regards,
Export to .aimmspack from Azure DevOps pipeline
Is it possible to export an AIMMS model to .aimmspack file from Azure Devops Pipeline?Goal is to generate the .aimmspack file from the Azure Devops Pipeline after the model source files have changed. I was hoping to run aimms.exe --export-to without have a user signed in, or storing the private license files in a public place.From Documentation:Through the --export-to option you can instruct Aimms to create an encrypted end-user project either packed to the .aimmspack file specified, or unpacked into a specified folder. When using this commandline option, Aimms will use the export settings as saved by the previous call to the File-Export End-User Project menu. You can use this commandline option, for instance, within the context of a continuous integration server, to automate the deployment of your Aimms application after new commits have been pushed to the version control repository managing the project. Specifying the unpack folder When running an .aimmspack file, Aimms will ask for
How to build a crossroad/ 2 ways
Hi,I want to build a model that can transport stuff from (i to j) directly or by stopping over at facility r.The transportcost (i to r) and (r to j) are cheaper than the direct transport (i to j). Problems:Open(r ) is either 0 or all possible r are opened and the amount is divided up evenlyEven if transportcosts are way lower for the extrastop r than without, the model does never choose to move all products past extrastop r. (capacities are more than enough) (goal is to minimize total cost (fixed cost and transport cost included)Related Constraints:Amount(i,r)+Amount(d,r)<=Demand(i)*OpenRecycling( r) // index (i,d,r) sum(i,Amount(i,r))+sum(d,Amount(d,r))<=Capacity(r)* Open( r) //index (r ) sum(r,Amount(i,r))+sum(r,Amount(d,r))=(Returnrate(i)*(demand(i))) //index (i,r) sum(i,Amount(i,d))<=Capacity(d)*open(d) //index(d) sum(i,Amount(i,d))=sum(r,Amount(d,r)) //index(d) Thanks for your help.I´m more than happy to post my model if that helps
MINOS Warning: Model status 13: Error no solution, Solver status 9: Error: Setup failure (see message window).
Dear AIMMS Team, I am a PhD student in the UK and I have been trying to solve a non-linear non-convex optimisation problem with different solvers for a Journal Paper. The following are the CPU details: Intel Core i7 2.2GHz, 16GB RAM memory, 64-bit operating system. So far the solvers CONOPT 4.0 and IPOPT 3.11 have been able to solve the case without problems. Unfortunately, when I use MINOS the following error appears: Errors/Warnings Warning: Model status 13: Error no solution, Solver status 9: Error: Setup failure (see message window). Message Window For the MinCost 39239 columns have been generated of which only 31245 are non-empty. Calling MINOS for NLP of 34726 rows, 31245 columns and 109867 non-zeros. Calling MINOS to solve NLP model 'MinCost' and minimize GenCost. Generation required 0.406 seconds. MINOS error: Not enough memory for basis factorization. Required amount of memory: 2799 Mb. You could increase the value of the general solvers option 'solver workspace'. There is 1.7
How to Link to Excel Files
The AimmsXLLibrary was introduced in AIMMS 4.20. You can deploy your AIMMS project to more platforms with less restrictions, because this library can communicate with Excel files in server environments where Excel is not installed. For instance, while running AIMMS through a WebUI on PRO or on Linux. The AimmsXLLibrary doesn’t require Excel to be installed in order to read from or write to an Excel (.xls/.xlsx) file. You first need to add the system library `AIMMSXLLibrary` to your model, and then you can use the predefined `axll::` functions. [url=https://how-to.aimms.com/Articles/85/85-using-axll-library.html]Read more...[/url]
How to get a variable range subset of a set?
Hi,I am working on a project of delivery planning.In my model i have a constraint which defines the Unavailability of a vehicle for some time due to maintenance or already on a delivery. The Time a vehicle becomes unavailable is a parameter.the constraint is :Here,X_v,t → indicator variable for maintenance(whether need to go for maintenance)S(v) → time required for maintenance of vehicle v status_v,t → indicator variable for availability of vehicle v on day t I am unable to write it in AIMMS. how to get the range of tau ?i was able to get the range for a single value parameter h using SubRange function tau in SubRange(T, t, t + h)but for a parameter set S SubRange is not working. Writing S(v) in place of single valued parameter h giving me this error*There is a mismatch in the master sets of set "T" and domain set "S" in the first argument of the call to intrinsic function "SubRange". what could be a possible solution for writing this constraint if S(v) i
Overview: Deprecation of Compound Sets
In May 2018 AIMMS announced a plan to deprecate compound sets in stages. Support for compound sets will be fully deprecated [b]after January 1, 2020[/b]. To find out how to identify and remove compound sets from your model without losing functionality, read [b]AIMMS Knowledge:[/b] [url=https://how-to.aimms.com/Articles/109/109-convert-compound-sets.html]Prepare for the Deprecation of Compound Sets[/url]. This article provides the following background information: [list] [*][url=https://how-to.aimms.com/Articles/109/109-deprecate-compound-sets-overview.html#section-what]Definition of compound sets in AIMMS[/url] [*][url=https://how-to.aimms.com/Articles/109/109-deprecate-compound-sets-overview.html#section-why]Reason to deprecate compound sets[/url] [*][url=https://how-to.aimms.com/Articles/109/109-deprecate-compound-sets-overview.html#section-when]Timeline to adapt your model[/url] [/list] Here is the [url=https://how-to.aimms.com/Articles/109/109-deprecate-compound-sets-ov
Subset in given order and not ascending or descending
Hi all, I am modelling production routes per production order in which the production routes provide the sequence of the jobs to follow. I created a subset ProductionRoute(i) that is a subset of all possible jobs. See below a production order i that follows the sequence: SMD → AOI → REW. When implementing this in the subset and when running the model, it will follow the sequence AOI → REW → SMD since operations is stated ascending. Such as below. Is there a possibility to model in AIMMS that it should follow the production route as stated in the first figure? Instead of looking to the ascending order of the subset.
writing for loop
Dear, I want to do a cycle for. I have two boundary values and I want to consider values between these boundaries. Then for these considered values I want to solve the Min_Total_Costs and have the values of Total Costs for the considered values. How can I write this cycle for? How can define set, ect? For now I wrote this code for e| (epsilon_e(e))>epsilonl and (epsilon_e(e)) CO2_ec:=epsilon_e(e); solve Min_Total_Costs; Total_Costs_e(e):=Total_Costs; endfor; with e the index of a set ep and epsilon_e(e) an integer variable. But it seems that it is not working. Can you help me? Thanks.
Test Driven Development using the AIMMSUnitTest Library
This article discusses some elements from the popular software methodology Test Driven Development in relation to the AIMMS Library AIMMSUnitTest. Gather requirements from stakeholders What are small examples? What are the edge cases, including error cases, performance? Implement requirements as unit tests and see them fail! Development Write the code for the functions Execute tests and see them pass! Refactor until performance is acceptable. Repeat Read more...
Generate combination of integer parameter
Dear All, I want to generate an integer parameter based on the combination of a number of component as shown as: K1 K2 K3 C1 1 1 1 C2 1 1 0 C3 1 0 1 C4 1 0 0 C5 0 1 1 C6 0 1 0 C7 0 0 1 C8 0 0 0 where K1 … Kn is the number of component and C1 .. Cn is generated combination based on component number. The value of 1 means that the component is available and the value of 0 is otherwise. Is it possible to do this in AIMMS? Thank you very much.
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.