The ARDC is working with the research community to drive recognition of research software. Our purpose is to provide Australian researchers with competitive advantage through data. Each month, we talk to a leading research software engineer (RSE) or team to share their experience and tips on creating, sustaining and improving software for research.
This month, we spoke to the MiniZinc team. MiniZinc is an open-source modelling language for engineers, mathematicians and scientists to solve discrete optimisation problems like rostering, scheduling and resource allocation.
MiniZinc is developed at Monash University with support from OPTIMA (the Australian Research Council Industrial Transformation Training Centre in Optimisation Technologies, Integrated Methodologies, and Applications). The MiniZinc team was one of the finalists of the 2024 ARDC-sponsored Eureka Prize for Excellence in Research Software. In this interview, the team shares how they work to maintain their software.
What are some successful applications of MiniZinc?
MiniZinc is research software that is actively used not only in academia but in the wider world.
Every year, the United Nations High Commissioner for Refugees (UNHCR) proposes an annual budget for the many projects it wants to tackle and releases a Global Appeal requesting donations to cover it. In 2023 alone, the Global Appeal was more than US$10 billion. The large number of donations received as a result need to be distributed among the budgeted projects according to different priorities, while ensuring the allocation respects any constraints set by the donors.
Following all the complex rules makes this allocation problem challenging, and the MiniZinc team was approached by UNHCR in 2016 to help. We developed a MiniZinc model for this problem for the UNHCR that provided US$400 million more in allocations than the previous method (using spreadsheets). This is a great example of using MiniZinc for social good.
In academia, MiniZinc is also used to solve theoretical or abstract problems. It has, for example, been used to analyse and design symmetric key cryptographic systems. Cryptography is not traditionally associated with discrete optimisation, although it is concerned with combinatorics, which can be analysed using discrete optimisation technology. In this case, MiniZinc made it easy for cryptography researchers to use sophisticated discrete optimisation technology, without first having to become experts in discrete optimisation. The fact that MiniZinc supports different solvers meant they did not have to commit to a certain solving technology before building a solution. One group of researchers noted in their paper that “using the MiniZinc language seems to be the best practice, as it allows us to try several solvers without having to translate the model to their respective language”. The paper has been cited around 100 times since its publication, illustrating that MiniZinc enables important work in other research fields.
MiniZinc has also been used to configure complex scientific instruments with many parameters. These include spectroscopy machines used to measure the presence of elements in solutions, contamination in water supplies, or compounds in soil. These machines previously required scientists to manually set a range of parameters for each experiment, as trying to measure different compounds requires different configurations. This is difficult, and interactions between different parameters are non-obvious. By using a MiniZinc model to find the optimal setup of each machine, scientists can simply specify what they’re looking for and get better results faster.
Tell us about the MiniZinc team. What are their backgrounds and strengths?
The MiniZinc development team is made up of 2 teaching and research academics, Professor Peter Stuckey and Associate Professor Guido Tack, a full-time research fellow, Dr Jip Dekker, and a full-time software engineer, Jason Nguyen.
Guido and Peter bring a background of research in programming languages, which applies directly to the design and development of a modelling language such as MiniZinc. They also have a lot of expertise in developing discrete optimisation solvers that are used to solve the problems written in MiniZinc. This means that we can map a high-level description of a challenging optimisation problem to the low-level input required to be given to a solver.
Jip completed his PhD investigating how to compile MiniZinc efficiently to use different solvers, bringing a detailed understanding of the difficulties that MiniZinc faces. Jason is a talented software engineer who brings a wealth of experience in software development, continuous integration, testing, and version control to the team.
All the team members are excellent programmers with profound experience in building and maintaining large, complex software systems. We believe one of the key reasons for the success of MiniZinc is that while it is research software that is being actively developed, it is used outside academia. We have a frequent release cycle and promptly respond to bugs and issues, ensuring that academic and non-academic users are well-supported.
We have a frequent release cycle and promptly respond to bugs and issues, ensuring that academic and non-academic users are well-supported.
What is the impact of being a finalist of the Excellence of Research Software Eureka Award?
We appreciate the initiative and support of the ARDC for establishing this award, since research software is usually not in the spotlight and often isn’t as visible as high impact academic publications. Being a finalist means visible recognition of the considerable amount of work that goes into a substantial piece of research software such as MiniZinc.
We hope that the additional publicity might make more people aware of MiniZinc, allowing us to help even more people solve their optimisation problems. Optimisation problems are found in many places, but being able to recognise them and use the optimisation techniques to solve them can sometimes feel like a superpower.
We were also honoured to be invited to the award ceremony, where we could hear about all the astonishing research being done around Australia and discuss with the other finalists the different factors of getting research software widely used and recognised.
What can others learn from the team dynamics that go into maintaining MiniZinc?
We are a tight-knit group and meet regularly to discuss MiniZinc and ensure the software is maintained. Since we don’t have a strict hierarchy within the group, everyone’s opinions are heard, and we’re able to implement fixes and improvements quickly. We also regularly perform peer coding and review, which allows us to be confident that new and old code can be understood and maintained by everyone in the group.
We also regularly perform peer coding and review, which allows us to be confident that new and old code can be understood and maintained by everyone in the group.
We use an issue tracker to keep on top of bug reports and allow us to know when a problem is being worked on. Our version control system also allows us to seamlessly merge code from different authors working simultaneously on different features, and automated continuous integration testing makes sure the system always works.
Finally, and probably most importantly, we all genuinely enjoy the process of implementing, improving, extending, fixing, documenting and applying a complex piece of software. Given the substantial effort involved, it’s essential to have fun along the way!
What communities are you part of and do you recommend?
The community most closely related to MiniZinc is the Association for Constraint Programming, an international community of researchers and practitioners who work with constraint models daily. A lot of the communication in the community happens on the constraints mailing list. In the wider optimisation space, there is a local (Australia and New Zealand) community for optimisation enthusiasts on LinkedIn, which can be used to reach out to local experts.
Keep In Touch
You can connect with MiniZinc via their website, LinkedIn, GitHub or mailing list. You can also reach out to the team members via their personal websites:
If you’d like to be part of a growing community of RSEs in Australia, become a member of RSE-AUNZ – it’s free!
ARDC-Sponsored Research Software Awards
The ARDC is proud to sponsor awards for research software and research software engineers in all stages of their careers. The goal of the awards is to strengthen the recognition of research software and those who develop and maintain it as being vital to modern research.
We’re pleased to announce that the 2024 Ecological Society of Australia (ESA) New Developers of Open Source Software in Ecology award goes to Dr Juergen Knauer of Western Sydney University and his team for the bigleaf
R package. The award will be presented at this year’s ESA Conference, held in Melbourne from 9 to 13 December. Stay tuned for our interview with Juergen.
The ARDC continues to sponsor a wide range of research software awards for 2025.
The ARDC is funded through the National Collaborative Research Infrastructure Strategy (NCRIS) to support national digital research infrastructure for Australian researchers.