Topics about getting started or leveling up as an AIMMS developer. Datalinks, AIMMS language, building apps...
- 508 Topics
- 1,108 Replies
Applications that are around for a while clearly have value to an organization. However, some identifiers within the application, such as sets, parameters, variables, and procedures, may no longer be used over time.Cleaning up these unused identifiers has some advantages:It lowers the case size, as the memory used for the data of the unused identifiers is no longer stored in the cases. It prevents confusion among model developers that have to maintain the application.In this how-to, we present a small library that will help you find any unused identifiers in your application. If you have any questions about the article, contact @Chris Kuip or leave a comment below.
Hi,I would like to save a section of my model to a case using the new data management style “Disk files and Folders” (https://documentation.aimms.com/functionreference/data-management/case-management/casefilesave.html)However I get the following error: I made sure my section is part of AllCaseFileContentTypes, and it does work if i use CaseCommandSaveAs, just not for CaseFileSave (or CaseFileSectionSave), but obviously I don’t want to always manually save it. Could you help me out with this error?
In AIMMS it is possible to read data from both a query, or a selected object (e.g. a view). I was wondering if there is a difference in performance between the two methods if the only goal is to read data.In my case, I am considering reading data from a table valued function because that allows me to filter the data according to several parameters. An alternative is reading from a view, where the parameters would appear in the columns and then used as an ‘Index domain’ when reading the database table in AIMMS.I’m generally interested in performance impact, best practices, and overall trade-offs between alternative data retrieval methods (given a database).
I have an old optimization from 2 years ago that uses CPLEX 12.9 and ODH_CPLEX 4.0. I want to change the solver to CPLEX 20.1 (which is available in AIMMS 4.81). However, the list of AllSolvers does not include the new CPLEX. (nor ODH-CPLEX), so I cannot change the default to the new version. Is there somewhere else in the model that need to be updated for the list of solvers to update?
This is AIMMS 4.37.4.I’m in an institutional computing scenario that has an institution-wide subscription to Microsoft Office 365. Due to my changeover from fulltime employee to contract consultant, my use of Office 365 is temporarily suspended and this energy modeling suite I run that uses AIMMS (I didn’t write the AMS code, which is why the use of a newer version of AIMMS is contraindicated) and AIMMS is stopping and throwing this in aimms.err:spreadsheet::CloseWorkbook(CoalOutput-1.xls, 1) failed: Error when enabling user alerts in Excel. Unknown error 0x800A03EC.Ultimately an excel.exe process is left behind taking up CPU time indefinitely.It seems that there is something about CloseWorkbook() that is doing more than just opening and writing a file. Is it the case that this function reaches out to Excel to get it to do something, and if so is there a workaround? I note that these spreadsheet-related functions can be made to traffic in .ods files (LibreOffice/OpenOffice) instead and
Hello, In my simulation that I am trying to solve, I solve two models(Model 1 and Model 2) sequentially. I have a set of constrains that are trying to minimize the magnitude of changes between the variables, i.e. minimize u; where u >= (Variables of model 1 - Variables of model 2); u is the magnitude of the difference between the two variable sets. When I run my simulation on AIMMS, my code snippet results in empty values for the variable u, instead it should contain a numerical value. I have previously run my situation on GAMS software and the algorithm works. Kindly let me know if you need more explanation on my code to help me out, any direction to look into would be much appreciated
Recently, we started a great collaboration with Dr. Bezhad Kazemtabrizi, Dr. Mahmoud Shahbazi and Dr. Abraham Alvarez-Bustos from Durham University (UK) to build a few tutorials on power systems modeling. This resulted in a first release that we are happy to share today: The OPF (Optimal Power Flow) optimization model. Read more about this example here.In power systems, 2 major optimization problems are used. The Optimal Power flow problem, which concerns with finding an optimum generation schedule of already committed generators in the system, and the unit commitment (UC) problem which concerns with finding which generators should be committed at each moment in time to ensure system operational security.This first OPF example will be followed shortly by a UC tutorial. Subscribe to this post to get notified when UC is live.We are happy to get your feedback in the comments !A big thanks to Durham University for their contribution to the community
I want to build a Goal Programming Model that uses Satisfaction Functions Here for more information I now want to build functions that work like thisMy variables depend on an additional index j. delta represents the deviation from goal i at alternative j and the alphas represent certain thresholds defined for each scenario.What is the easiest/simplest way to achieve this? I want to avoid using binary variables because I already tried it and the calculation of the variables did not work and additionally it does not protect against division by 0 if alpha_one and alpha_two happen to be equal.If there is an easier way to achieve this please let me know :)
Hello, I have linked an SQLite Database with my model and I am trying to import the data present in database to a parameter PXTankAllocation, however, it is not importing and it does not give out any error too. have attached screenshots for your reference. If you will see S5 image, it is a screeshot taken after I have run the procedure readdb.Please help me with this. Thanks.Regards,
Are you developing applications in AIMMS? Then security is probably something you have to comply with, but you don’t want your security considerations to get in the way of the user experience. If that’s the case, this article is important for you.In most cases, your IT team will require that you use tools and software that are up-to-date when it comes to security standards. AIMMS is evolving to incorporate the latest security components as well. If your IT department requires you to use the latest security updates, and you are using an AIMMS version that doesn’t have the latest updates incorporated, your applications will fail. This is why we advise you to keep your AIMMS and AIMMS PRO software up-to-date. This helps you stay compliant with your IT department’s requirements, and allows your end-users to continue using your application without interruptions.For more on this topic, check out @Chris Kuip’s new How-to on the use of the Transport Layer Security in AIMMS and in AIMMS PRO.
Hello everyone,Could someone please help me look at a way to find the nodal balance equation at a node for inputs having different indices?More explanation: Refer to the diagram below. Assume nodes 1,2, and 3 are set of buses indexed b. Then connecting lines between the buses are Set with index domain (i,j). To find the nodal balance equation at node 2 such that incoming is made equal to outgoing is somehow difficult for me because of difference in indices. For example say node 2, the sinusoidal sine is generator Pg with index b, outgoing arrow is Demand with index b and line flow (LF) indexed (i,j). The index domain (i,j) only shows the sending end bus and the receiving end bus. Hence the nodal balance equation is:Pg(b) = Demand(b) + LF(i,j). How can I find this sum over different indices knowing that number of buses with index b are not equal to the number of line flows?Secondly, the line flow (LF) is made of two characteristics of different indices. the characteristics are Y indexed
Hey. I am trying to implement a plot in a WinUI that displays simulation progress. In this plot, I am showing a variable value changing with simulation iteration (simulation continues until the iteration value has reached a limit). The variable is not in a math program, hence, I believe I can not obtain its value using callback (using RetrieveCurrentVariableValues procedure). Anyways, the variable gets updated at the end of every iteration. Presently, the plot between the variable value vs iteration does not show when the simulation in in progress (or when procedure is running) and appears after the procedure is over. Is there anyway to update the plot when the procedure in running? Thanks. Here is the structure of the procedure I am running: while (iteration limit is reached) solve Mathematical program1; solve Mathematical program2;Update Plot Variable using variables from math programs 1 and 2; (Plot variable to display in plot)iteration = iteration + 1;endwhile;
It seems that for an internal function, I have to specify the arguments with index and size? How can I create an internal function to calculate inverse for any matrix? In this case, do I have to use external function? Thanks.
Hey. I am working to create a tool (GUI) in AIMMS platform. I have multiple pages in Page Manager for developing the tool. In one of the pages, I want to add an ‘Help’ button, clicking which should open the user manual of the tool (in pdf version - not the AIMMS user manual). Is it possible to implement this?Thanks.
Hi AIMMSians,I used to run the GUROBI solver asynchronously a few months ago. But now I am limited to use only one session each time. I use the academic license and the only change is the new academic license delivery, so I guess that is the reason for the new limitation. Can you confirm my guess? if yes, would it be possible to give academics the access for solvingasynchronous sessions in GUROBI and CPLEX?
I encountered this error when running the model. The model is fine, since it works with another set of input data. But with this particular data set, it gets stuck in the Presolving phase, and returns nothing. After force exciting the model, This is the message that it shows in the .err file. Have the same issue when running on the cloud as well.
I am trying to implement the Rough Cut Capacity Planning for an school assignment. I currently have all constraints working except for the first constraint, since I do not know how I can loop over subset of time which is determined by two parameters release date(rj) and due date (dj).
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.