#pyomo

2025-03-07

Locational marginal pricing of potatoes

We apply Locational Marginal Pricing (LMP) to the supply of potatoes. The article describes the model, calculation of LMPs, and scenarios for how the suppliers and contractors may respond to the price signals.
#orms #pyomo
solvermax.com/blog/locational-

Washed potatoes, ready for chopping into French Fries.
2025-02-07

Permission granted: A role mining model

We implement a recently published role mining model using both constraint programming and mixed integer linear programming, then compare their relative performance while solving several examples.
solvermax.com/blog/permission-
#orms #pyomo #ortools #python

Assigning a matrix of people to roles
2024-09-16

Как нам удалось в 100 раз ускорить решение оптимизационной задачи NBO в Альфа-Банке

В данной статье мы расскажем, как нам удалось найти решение задачи NBO на open source солвере CBC примерно в 100 раз и добиться повышения оптимального значения целевой функции на 0.5%.

habr.com/ru/companies/glowbyte

#Математическая_оптимизация #исследование_операций #ускорение_солверов #cbc #pyomo #nbo #маркетинговая_оптимизация #линейное_программирование #машинное+обучение

2024-07-22

Article: Well, that escalated quickly: Random search

In this series of articles, we look at a simple optimization situation that requires deciding the best order for positioning devices in a rack.

This article discusses Model 2, which uses a random search method running in parallel. Does it perform better than the enumeration method of Model 1?

Along the way, we asked Claude AI to help with some of the programming. Claude was useful, though the experience was somewhat mixed.

solvermax.com/blog/well-that-e
#Python #pyomo #orms #optimization #modelling #ClaudeAI

Magnification lenses
2024-07-08

Reinforcement Learning в задаче групповой оптимизации цен

Привет, Хабр! Ранее мы рассмотрели вопрос применения подходов Reinforcement Learning в ценообразовании в разрезе одного товара. В этой статье покажем, как можно применить RL при наличии ограничений на группу товаров при помощи оптимизации с ограничениями.

habr.com/ru/companies/X5Tech/a

#математика #машинное_обучение #reinforcement_learning #pyomo #многорукий_бандит

2024-06-30

Article: Well, that escalated quickly: Enumeration

In this series of articles, we look at a simple situation that requires deciding the best order for positioning devices in a rack. We use four methods for solving this problem:
- Model 1. Enumerate all possible position orders.
- Model 2. Search randomly for a specified time.
- Model 3. Constraint programming using OR-Tools.
- Model 4. Mixed integer linear programming using Pyomo.

Along the way, we see how a problem's size can quickly escalate to a colossal magnitude. We also demonstrate how, contrary to popular belief, that magnitude is not necessarily a barrier to finding a good solution.

We start with Model 1. The other models will follow.

solvermax.com/blog/well-that-e
#Python #pyomo #orms #optimization #modelling

Colourful network cables
2024-05-20

Article: Formulations for modelling an IF function

When formulating an optimization model, a common question is "How do I express an IF function as a constraint?". Linear programs can't represent an IF function directly, so we need to use some linearization tricks to achieve the behaviour we want.

In this article, we examine the answers to a question on Operations Research Stack Exchange: Linear condition between two continuous variables.

Three answers are provided on Stack Exchange:

- Formulation 1. A special case method that has the advantage of being a pure linear program, though it works correctly only when the model has a specific form of objective function.
- Formulation 2. Uses a BigM approach that would normally work, but the answer has a subtle error.
- Formulation 3. Essentially the same as Formulation 2, except that it is correct.

We illustrate each of the methods both mathematically and graphically, to show how they are intended to mimic the required IF statements.

In addition, we derive a formulation from the more general situation for the constraint x = max(y, z).

solvermax.com/blog/formulation
#Python #pyomo #orms #optimization #modelling

Line markings at the corner of a sports field.
2024-04-17

Article: 10 times faster, running cases in parallel

In this article, we explore running optimization model cases in parallel. Specifically, we use the Python multiprocessing and mpi4py libraries to fully use the many CPU cores/threads in modern computers.

Our goals are to:
- Illustrate how to apply the multiprocessing and mpi4py libraries to running optimization model cases in parallel.
- Measure the performance of running cases in parallel compared with serially.
- Compare the performance of an old 4 core / 4 thread CPU with a new 20 core / 28 thread CPU, using the HiGHS solver.

solvermax.com/blog/10-times-fa
#Python #pyomo #orms #optimization #modelling #HiGHS #multiprocessing #mpi4py

Parallel lines optical illusion
2024-03-26

Warehouse space for free: Exogenous enumeration

In this article series, we look at improving the efficiency of a pallet warehouse, where all items are stored on standard-size pallets.

In part 3 of 3, we make some variables exogenous and enumerate all of their combinations. The goal is to make the model solvable at full scale in a reasonable time.

The result is a 200 times improvement in model performance, leading to a 40% improvement in warehouse storage efficiency.

The model is built in Python using Pyomo, and solved with either the Gurobi or HiGHS solvers.

solvermax.com/blog/warehouse-s
#Python #pyomo #orms #optimization #modelling #Gurobi #HiGHS

Shelves of pallets in a warehouse
2024-03-17

Warehouse space for free: Linearized model

In this article series, we look at improving the efficiency of a pallet warehouse, where all items are stored on standard-size pallets.

In part 2 we linearize our model to, hopefully, make it easier to solve.

The model is built in Python using Pyomo.

solvermax.com/blog/warehouse-s
#Python #pyomo #orms #optimization #modelling #Gurobi #HiGHS

Racks of shelves in a pallet warehouse
2024-03-10

In this article series, we look at improving the efficiency of a pallet warehouse, where all items are stored on standard-size pallets.

Along the way, we:
- Formulate a non-linear model of the situation.
- Compare several solvers, to see how they perform.
- Linearize our model to, hopefully, make it easier to solve.
- Disaggregate our model to make some variables exogenous, then iterate over an enumeration of the exogenous variables.
- Demonstrate use of Pyomo's last() and next() functions, which enable us to work with elements of ordered sets.
- Turn off a constraint using Pyomo's deactivate() function.

Importantly, we show that there's a surprising amount of extra storage space available for free, or minimal cost, just by redesigning the warehouse's racks and shelves.

The model is built in Python using Pyomo.

solvermax.com/blog/warehouse-s

#Python #pyomo #orms #optimization #modelling #Gurobi

Racks of shelves in a warehouse
2024-02-12

Blog: Running up the wrong hill

We explore some aspects of solver behaviour when solving non-linear optimization models.

Our goal is to provide insights into what the solvers are doing, why they may find different solutions, and how we can improve our chances of finding at least a good, and hopefully a globally optimal, solution.

The model is built in Python using Pyomo.

solvermax.com/blog/running-up-

#Python #pyomo #orms #optimization #modelling

3D surface with local and global optima.
2024-02-01

Many awesome projects and people underpin the optimization world. We're making mvs to surface more open source model code for real-world impact and better support individual decision modelers. @ryanjoneil explains: nextmv.io/blog/new-decision-ap

#orms #decisionscience #datascience #decisionops #pyomo #ortools

2024-01-31

ICYMI: 15-minute #Pyomo demo
→ Create, deploy, run custom shift assignment app
→ Merge code, kick off #cicd, run acceptance test
→ Create new model instance with new solver
→ Run experiment comparing the two models
nextmv.io/videos/operationaliz

Start @ 5 min.

#orms #datascience #decisionops #decisionoptimization #decisionscience

2024-01-18

It’s that time of year: We’ve wrapped up our 2023 reflections, reviewed feedback and wishes for the future, and coalesced it all into our 2024 roadmap preview. Check out our next mvs: nextmv.io/blog/a-2023-look-bac

#orms #decisionops #decisionscience #informs #datascience #cicd #pyomo #ortools

2023-12-14

👋Hello to the Nextmv Pyomo integration: Build, test, and deploy Python-based Pyomo decision models even faster. Get the rundown (with a slick video demo): nextmv.io/blog/nextmv-pyomo-in

#pyomo #orms #python #decisionOps #optimization #glpk #datascience

2023-12-12

Blog: Optimal but not practical - Virtual machine

We address a common modelling issue: The solution is optimal, but not practical.

In the final article of this series, we describe the process of setting up and using a virtual machine in "the cloud".

Specifically, we create a Compute Engine, which is part of the Google Cloud suite of services.

We describe how we solved the issues we encountered along the way.

In the end, we're able to use the Compute Engine solve a model using a data set that is much too large for our local machine.

#Python #Pyomo #optimization #orms #HiGHS #cloudcomputing
solvermax.com/blog/optimal-but

Paper coverage optimization model, overlapping pieces of green paper.
2023-11-30

Blog: Optimal but not practical - Either/or Disjunction (Model 5c)

We address a common modelling issue: The solution is optimal, but not practical.

In Model 5c we use Pyomo's Generalized Disjunctive Programming (GDP) extension to express either/or constraints.

We describe how the GDP extension can be used to represent either/or constraints in a simple linear program. Along the way, we compare BigM constraints that we create manually with BigM constraints created automatically by the GDP extension. Then we use the GDP extension to build either/or constraints in our paper coverage situation.

#Python #Pyomo #optimization #orms #HiGHS
solvermax.com/blog/optimal-but

Paper coverage optimization model, tan pieces of paper
2023-11-30

It's really neat seeing how active a project #Pyomo is.

github.com/Pyomo/pyomo/blob/ma

2023-11-20

Blog: Optimal but not practical - Either/or BigM (Model 5)

We address a common modelling issue: The solution is optimal, but not practical.

In Model 5 we use a BigM constraint technique to represent either/or constraints.

With this technique we explicitly represent rotating the items, so that they can be in portrait or landscape orientation (but not both). The BigM constraint technique can be used for representing a variety of logical conditions in linear programming models.

#Python #Pyomo #optimization #orms #HiGHS
solvermax.com/blog/optimal-but

Paper coverage optimization model, red paper

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst