商品のトラック積載率を最大化!Python×Pyomoで実現する数理最適化モデル - Qiita

はじめまして、花王株式会社でデータサイエンティストをしている@m_jです。 本記事では、物流の効率化という現場課題に対して数理最適化を使ったアプローチを紹介します。特に「トラックへの商品の積載率」を最大化するために、制約充足問題(CSP)をどのように解くかについて解説します...

Qiita

🎓 New to Mixed-Integer Programming or looking to level up your optimization skills?

Join Florian Wilhelm’s talk:
“Solving Hard Optimization Problems with Pyomo and HiGHS”
Learn how #Pyomo and #HiGHS combine to solve real-world MIP problems like scheduling and logistics.

Ideal for anyone in #Python, #OperationsResearch, and #OpenScience.

📅 Check out our schedule: https://euroscipy.org/schedule/
🎟️ Get your ticket here: https://euroscipy.org/tickets/

#EuroSciPy #Python #Optimization #OpenSource

Sponsoring

The EuroSciPy meeting is a cross-disciplinary gathering focused on the use and development of the Python language in scientific research.

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
https://www.solvermax.com/blog/locational-marginal-pricing-of-potatoes

Solver Max - Locational marginal pricing of potatoes

We apply Locational Marginal Pricing (LMP), commonly used in electricity markets, to the supply of potatoes to fast-food restaurants.

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.
https://www.solvermax.com/blog/permission-granted-a-role-mining-model
#orms #pyomo #ortools #python

Solver Max - Permission granted: A role mining model

Role mining: We use CP-SAT and Pyomo optimization models to derive an efficient role-based authorization policy from existing user permissions

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

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

https://habr.com/ru/companies/glowbyte/articles/838410/

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

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

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

Хабр

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.

https://www.solvermax.com/blog/well-that-escalated-quickly-random-search
#Python #pyomo #orms #optimization #modelling #ClaudeAI

Solver Max - Well, that escalated quickly: Random search

We apply four approaches to solving a combinatorics problem: enumeration, random search, constraint programming, and mixed integer linear programming.

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

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

https://habr.com/ru/companies/X5Tech/articles/826400/

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

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

Введение Привет, Хабр! На связи аналитики больших данных Х5 Tech — Антон Денисов и Михаил Будылин . В предыдущей статье про многоруких бандитов мы показали, как можно искать оптимальную цену в разрезе...

Хабр

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.

https://www.solvermax.com/blog/well-that-escalated-quickly-enumeration
#Python #pyomo #orms #optimization #modelling

Solver Max - Well, that escalated quickly: Enumeration

We apply five approaches to solving a combinatorics problem: enumeration, random search, local search, constraint programming, and mixed integer linear programming.

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).

https://www.solvermax.com/blog/formulations-for-modelling-an-if-function
#Python #pyomo #orms #optimization #modelling

Solver Max - Formulations for modelling an IF function

We illustrate some answers to a common class of linear programming questions: How can I represent IF statements in an LP?

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.

https://www.solvermax.com/blog/10-times-faster-running-cases-in-parallel
#Python #pyomo #orms #optimization #modelling #HiGHS #multiprocessing #mpi4py

Solver Max - 10 times faster, running cases in parallel

We convert a model to run scenarios in parallel, using the multiprocessing Python library. The scenarios run 10 times faster.