About this repository¶
Welcome to gurobi-ai-modeling
. This repository aims to guide users to get familiar with using generative AI for
mathematical modeling. We feel that generative AI poses a unique opportunity for users in domains that encounter
optimization problems in their daily work, but do not have the knowledge to apply optimization in the practical
sense (or even know that it exists!).
Our aim is to introduce optimization to Software Engineers in a language more native to them.
Note
Even though this repository is written with Software Engineers in mind, in no way is optimization, or the content of this project, only applicable to problems in this domain. Optimization problems can be found in practically any domain and industry. Even if you feel like you’re not the primary target audience, we still strongly encourage you to think about which optimization problems you encounter in your daily work. Think outside of the box!
How to utilize this repository¶
The gurobi-ai-modeling
project is mostly focused on the documentation you are now reading. On the left pane, there
is a list of sections. We recommend going through them in order for the most applied, hands-on experience. The aim is
to create an understanding of what type of daily problems are actually optimization problems, show how they can be
solved using a solver like Gurobi, and spark interest leading the user to learn more about optimization.
If you prefer getting hands-on experience before anything else, you might be interested in skipping to the Getting started section instead.
Structure¶
We aim to contribute the following to the community of prospective modelers:
What is Optimization?: Explain optimization using language and concepts that Software Engineers are likely to be familiar with.
Use Cases: Inspiration on how optimization can help solve problems in the daily work of a Software Engineer. It should be enough to read the section that closest reflects your daily role.
Prompting: How Generative AI can be used to guide you with writing and solving your first problem.
Example prompts: A collection of example prompts that reflect use cases in the Software Engineering domain and their best practices.
Evaluation and troubleshooting: A practical approach to testing and troubleshooting the models.
What to take away from this¶
There are certainly limits to the current generation of large language model (LLMs) when it comes to their ability to interpret problem descriptions and generate well defined mathematical models. However, we hope that exercises in this repository give you an idea of how optimization can be applied to your professional domain and daily problems you might encounter.
Once you feel you have reached the limits of the capabilities of the current-gen LLMs, you might feel confident enough to go out and start building and modifying models with your own hands.