Topics about getting started or leveling up as an AIMMS developer. Datalinks, AIMMS language, building apps...
- 618 Topics
- 1,349 Replies
I'm liking the group widget in WebUI, but I'd sure like to put more than a few buttons across it. I want to have a row of buttons all the way across the top of the page, and the only way I can get the buttons to not be 2 columns wide each is to use a group. But the group cuts off any buttons that exceed about 4 columns wide! How can I get either more buttons in a group all in a row or smaller buttons that I can place individually? Thanks!
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?
Dear all, I have a constraint in AIMMS which is as follows: lambda1(q)*0+lambda2(q)*mu1+lambda3(q)*mu2+lambda4(q)= 1/T(q)*sum[k,sum[l,i(k,l,q)*min(travelTimes(k,l),tau)]]|k in LocationOnRouteQ(q) and l in LocationOnRouteQAfterK(k,q) The problem is in this part: k in LocationOnRouteQ(q) and l in LocationOnRouteQAfterK(k,q) Because I get an error that the scope of index k has not been specified. However, when I put the indices k and l in the index domain I get the error that the scope already has been specified. I want to let the k come out of the set LocationOnRouteQ(q) and l out of subset LocationOnRouteQAfterK(k,q) and I have tried many things, but none worked out. LocationOnRouteQ(q) and LocationOnRouteQAfterK(k,q) are both subsets of the set Locations and I got k and l as indices in the set Location. I hope someone can help me. Kind regards, Aimée
Hi, Is it possible for a callback procedure to save the newest incumbent solution to a case file. Is an example available? Edit: I already installed a callback procedure (SetCallbackNewIncumbent). How can I access the new incumbent solution from that procedure? And do I need to send the new incumbent solution to the model first, after which I can send it to a case file, or can I send it to a case file directly? Thanks! Best, WM
Installing CDM service allows multiple users to collaborate on a single AIMMS model. When developing an application using CDM, the embedded CDM server is ideal, as mistakes and restarts are easily captured by manually switching and/or clearing the database that stores the CDM data. When testing or deploying an application with multiple collaborating users, a CDM service needs to be installed that handles commits by storing the data and informing other users of these commits. [url=https://how-to.aimms.com/Articles/280/280-install-cdm-service.html]Read more...[/url]
In this article, we explain how to use the [b]asynchronous[/b] solver sessions in AIMMS to solve multiple mathematical programs simultaneously, each using its own CPU core. Why use asynchronous solves? The current engine of AIMMS does not make use of the multiple cores that exist in most modern computers. This means that even if your computer has multiple cores, AIMMS only uses one to execute your project. However, some solvers support using multiple cores. This means that if you are solving a large LP or MIP problem, a solver like CPLEX or Gurobi use multiple cores in your computer to solve your problem. [url=https://how-to.aimms.com/Articles/261/261-solve-with-asynchronous-solver-sessions.html]Read more...[/url]
The CPLEX solver has many options that influence the way CPLEX solves your model. For certain types of constraints and/or models, you can make an educated guess about which combination of options works best for your problem. However, sometimes you need more help. To help you out, CPLEX has some automatic tuning options. In AIMMS, you can access this CPLEX tuning tool via the following two functions: [code]GMP::Tuning::TuneMultipleMPS [/code] [b][img]https://clipboardjs.com/assets/images/clippy.svg[/img][/b] [code]GMP::Tuning::TuneSingleGMP [/code] [url=https://how-to.aimms.com/Articles/264/264-tune-cplex-options.html]Read more...[/url]
In this article we will compare a [b]multi[/b]-[b]objective[/b] approach to separately solving single objectives. Let’s take for an example a problem trying to find a healthy diet for a reasonable price. First let’s define our objectives: [list] [*]Minimize calories: I’m trying to lose some weight, so my healthy diet should be low in calories. [*]Minimize price: A reasonable price means that it doesn’t have to be the absolute minimum, but should be within a close range. [/list] Now, let’s use the [b]multi[/b]-[b]objective[/b] feature to solve. [url=https://how-to.aimms.com/Articles/276/276-multi-objective-approach.html]Read more...[/url]
You can use different indices to refer to the elements of the same set. Suppose we have a set, [code]Cities[/code], and a parameter, [code]Distance[/code]. We want to define [code]Distance[/code] over 2 dimensions ([code]from[/code] and [code]to[/code]) for the same set, [code]Cities[/code]. If you didn’t know that AIMMS can handle [b]multiple[/b] indices for a set, you might create two new subsets [code]CitiesFrom[/code] and [code]CitiesTo[/code], containing all elements of the set [code]Cities[/code], and each with its own index. Luckily, you can just assign [b]multiple[/b] indices to one set. [url=https://how-to.aimms.com/Articles/272/272-using-multiple-indices-for-one-set.html]Read more...[/url]
A brief overview for using AIMMS Command Line Tool. In the integrated environment, or on a Linux system, you can control an AIMMS project externally using a command line tool. To start using the command line tool open the terminal and run [code]AimmsCmd ExampleProject.aimms[/code]. [url=https://how-to.aimms.com/Articles/257/257-run-batch-commands-in-aimms-command-line-tool.html]Read more...[/url]
By default, AIMMS asks you whether you want to save changes to data when you close your project. This behavior depends on which data categories and case type are currently active. You can also use the data change [b]monitor[/b] functions to check when there are changes in a given subset of identifiers in your model since the last time you checked, based on a data category and case type. [url=https://how-to.aimms.com/Articles/250/250-monitoring-identifiers-for-changes.html]Read more...[/url]
This week I got the following request "[i]Add functionality to 'watch' identifiers and view the data of all those watched items within a window panel".[/i] I did some probing with the requester to better understand the need for this and I learned it would help the developer to debug faster than using various data pages, or see values inline via the debugger. My thinking at this point is: - One would like to be able to watch the identifiers in the Developer IDE (something like you do in R Studio - see picture below) - One would be able to dive in details of the data via a DataPage option (only first items are shown; like x below in R Studio example) - One would select identifiers to watch from the model tree (or model) and not necessarily ALL identifiers that are touched (could be an extreme long list)? Wonder about your thoughts [img]https://uploads-eu-west-1.insided.com/aimms-en/attachment/4591aab2-9508-4a40-aab3-7fda8ead8979.jpg[/img]
Hi, The CSV Export DLL does seem to export 0-dim identifiers. Therefore I would like to use put. However I can't figure out how to obtain the value of that 0-dim variable. I have the next snippet of code, which works fine, but the value of the variable is still missing. [code]for (IndexVariables) do if (IdentifierDimension(IndexVariables)) then !do something else else csv_alt_name := FolderName + IndexVariables + ".csv"; put csv_alt; put IndexVariables + "\n"; put name_of_some_variable; putclose; endif; endfor; [/code] The line "put name_of_some_variable;" prints the value of a variable. But it should of course print the value referred to by IndexVariables. How to do that?
Hi there, I am trying to implement some form of heuristic for the TSP where I'm decreasing the size of the model by restricting the declaration of variables X(i,j) to those combination (i,j) for which j belong to the, say, 10 cities nearest to i. Here X(i,j) is an binary variable indicating whether or not edge (i,j) is in the tour. I created a subset of the cities to find the nearest neighbors of city i, but how can I implement it in the model? Do I need to add an extra constraint or? Added you'll find the code of my AIMMS project. Thanks in advance!
Hello, At the moment I am performing a scheduling problem with time windows. The model is very similar to the second model which can be downloaded from the AIMMS website (see link) execpt from a number of elements: [list] [*]I try to minimize the sum of all the changeovers that are used. [*]Base unit is in minutes. [/list] In total I have 3 datasets (one for each machine) that AIMMS can read in from an Excelfile, one at a time. Initially, my model is able to solve using CPOptimizer 12.8 for all machines, where each job has to be scheduled after the "StartTime" and finish before an "Endtime". After this solution I would like to decrease the StartTime by one week when a job meets a certain criteria and then solve it again. When I run the procedure that decreases the Startime by one week and try to solve it again it finds a solution for only one of the machines and for the other two AIMMS hasnt been able to find a solution yet after more than 9 hours. For the machine that
Hi! We were able to execute the model already but we're having warnings that the result for this column is similar with the other column. Take for example the constraints 22 and 26? How do we code the "summation"? Sorry I'm just a beginner and I have no one to teach me and I only have a month to study everything because the deadline is just for 2 months. Our model in AIMMS can be downloaded here: https://drive.google.com/open?id=1pUgymOpS0-oJLxc_IU6tjt7YEiKkHqmW[img]https://uploads-eu-west-1.insided.com/aimms-en/attachment/4a2b5b92-17a4-4f56-b7a6-8a09a8e94a42.png[/img]
Hello, I have created two histograms using "Histogramcreate" where the "HistogramSetDomain" are the same but the frequencies observed (using "HistogramGetFrequencies") are different. I have also drew the plots of the histograms separately. I am wondering if it is possible to show the two frequency histograms on the same plot? I appreciate any help in advance
Hi! I would like to ask what this error means and how I can solve this: ExcelRetrieveParameter(FINAL DATA.xlsx, nC(v,T,w), C3:ALN22, , 0) failed: The dimension of parameter "nC(v,T,w)" is 3. It must be equal to or smaller than 2. I hope anyone can help me with this. Thank you!
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.