114:00 — FICO® Xpress: New and Augmented Interfaces for Modeling Optimization Problems

A fast, scalable, and easy-to-use programming interface (API) is an essential component when working with commercial high-end optimization solvers. As such, FICO® Xpress has been offering interfaces for an ever-growing set of programming languages (C, C++, Java, C#, Python, R).

This talk gives an overview of these interfaces, with a particular focus on the most recent enhancements. We will focus on the APIs for Java, C#, and Python. The new, augmented FICO® Xpress APIs for Java and C# leverage modern language constructs They have been designed as an object-oriented layer ensuring a memory-efficient and reliable experience for the user. With the augmented API, the use of solver features such as callbacks becomes easier, and it gives access to the full set of problem types available with FICO® Xpress.

214:30 — Practical guidelines for model improvement and reformulation

I will share insights and lessons learned from helping Gurobi customers from a wide range of industries adjust their optimization models to improve solver performance and numerical behavior. We will look at the challenges that we see most often in LP, MIP and MINLP models, and discuss our approach and typical recommendations to help address them. We will also consider some well-known modeling “rules of thumb” and discuss how applicable they are in 2024.

315:00 — What's new in JuMP

JuMP is an algebraic modeling language for mathematical optimization embedded in the Julia programming language. JuMP combines the convenience of a high-level, solver-independent modeling syntax with great performance, making it suitable for a range of applications spanning from teaching to continent-scale energy system modeling. In this talk, we present major developments since the 1.0 release two years ago. These include a new nonlinear programming interface and support for problem classes like multi-objective optimization, constraint programming, nonlinear mixed-complementarity problems, rational linear programming, and others.

415:30 — OptiChat: An AI Assistant for Explaining Optimization Models Powered by LLM

Mathematical optimization has wide applications in real-world decision-making problems such as aircraft crew scheduling, smart grid operation, and health care. One of the primary barriers to deploying optimization models in practice is the challenge of helping practitioners understand and interpret such models. The research to help non-experts understand optimization models has a long history. In the 1980s, Harvey Greenberg developed the ANALYZE software, an expert system that relies on a specific syntax tailored for optimization problems. The downside of expert systems is that they still require a fair amount of domain knowledge and optimization background. In the pioneering paper, Greenberg insightfully foresaw that “Ideally, one would like to move toward a natural language query system where the descriptions are resident with the model in a way that permits more automation to obtain answers.” However, to the best of our knowledge, such a natural language-based system envisioned by Greenberg has not been developed due to the lack of a general-purpose language model. Recently, large language models (LLMs) such as GPT-4 and LLaMA have achieved remarkable success in diverse applications, opening new ways of developing software for analyzing optimization models. In this presentation, we develop a natural language-based system, OptiChat, for analyzing (mixed-integer) linear programs. It is an agent-based autonomous system that coordinates the user, the optimization model, the optimization solver, and the LLM. The non-expert user is interested in understanding the optimization model written in an algebraic modeling language that has symbolic expressions of the decision variables, the input parameters, the constraints, and the objective. OptiChat can provide high-level model descriptions, diagnose and resolve infeasibility for infeasible problems, explain why a solution is optimal, and answer any interactive questions of the user such as "what if" questions.