MiniZinc is a free, open-source constraint programming and optimization software that allows anyone to develop programs, spanning from simple optimization to complex resource allocation algorithms. The application is available online (http://www.minizinc.org/) and runs on most operating systems. Although the documentation on the MiniZinc website is very good, I am always looking for new and in-depth perspectives. Decision support systems using MiniZinc is ideal for a wide spectrum of readers, from novice to expert users of MiniZinc and/or constraint/optimization programming. The book steers readers away from using too many formulae and equations, rather explaining the mathematical ideas behind the concepts and then showing how to replicate the concepts in MiniZinc.
According to the preface, the book’s goals include:
- “to understand the potential benefits of deploying an [intelligent decision support, IDS] system”;
- “to recognize the key risks in implementing an IDS system and know which techniques can be applied to minimize them”;
- “to understand the technology of decision support at sufficient depth to manage or
monitor an IDS project”; and
- “to distinguish good sense from mere jargon when dealing with everyone involved in an
The most important goal for novices is understanding how to deploy an IDS system, which is achieved through Wallace’s plainly written yet in-depth approach--he shows how an IDS system can be used in a huge variety of problems, and that a business or organization can increase their efficiency via some relatively simple programs run through MiniZinc. Working through both real-world and standard optimization problems, the book shows that an IDS system can be used to solve extraordinarily complex problems that, until now, were unsolvable.
As a novice myself in the area of decision support systems--I can attest that this book was written so clearly and thoughtfully that I walked away feeling like I had a solid foundation for the topic. I have read dozens of books on optimization, forecasting, and other analytical techniques in R, SAS, and Python, and Wallace’s book is definitely in the top ten of introductory-level texts.
In my opinion, a reader that picks this book up needs nothing more than an interest in the topic. At the same time, this book would also be a useful resource for advanced practitioners--there are numerous technical topics that would appeal to users who work in more complex areas. As Wallace builds on the topics in the preceding chapters, he also develops examples that are well-thought-out and serve as templates for readers to apply to their own projects. The examples may be in completely different topic areas/industries, but the problems we face are consistent--resource allocation, staffing, or other standard problems--and Wallace provides the means to think through these with a “MiniZinc mindset.” Although these problems take a different approach to thinking than most people are used to, Wallace’s step-by-step approach allows the reader to build on these skills.
As someone who is constantly looking out for new introductory-level books that I can learn from, MiniZinc is quickly becoming one of my favorite applications to use, and so I will take any chance I get to read about how to develop more efficient or effective ways to use it.
Wallace’s book has given me a ton of ideas that I am excited to implement in my daily work, as it will make me a stronger and more productive analyst. Overall, this book provides an insightful and thoughtful introduction to developing decision support systems, as well as to MiniZinc; newcomers to one or both will find the plentiful examples, thoughtful exercises, and relaxed writing style the best way to learn these concepts and software.