Исследование операций (ИЛИ) - это аналитический метод решения проблем и принятия решений, который полезен при управлении организациями. В исследовании операций проблемы разбиваются на основные компоненты, а затем решаются в определенные шаги с помощью математического анализа.

Исследование операций - отличная область для реализации алгоритмов машинного обучения или вычислительного программирования. Итак, я решил решить простую транспортную проблему (с которой сталкивается большинство отраслей) с помощью языка Python.

Существует ряд методов исследования операций, таких как линейное программирование, задача о назначении, проблема транспортировки, модели управления запасами, теория игр, теория массового обслуживания и т. Д. Мы не обсуждаем детали этих методов, чтобы получить более подробную информацию. вы можете посетить Методы исследования операций. В эпоху Индустрии 4.0 необходимо адаптировать новые методы для повышения производительности. Решение этих задач требует большого количества математических навыков, в то время как в промышленности мы не можем допустить человеческих ошибок, которые стоят огромных денег.

Приступим к решению некоторых проблем!

Поставленная проблема заключалась в следующем: компания хочет запустить автобусное сообщение для своих сотрудников в ситуации пандемии, они хотят предложить лучшее решение, такое, чтобы расходы на транспортировку меньше всего. Терминалы в Ченнаи и Тируваллур могут принять 60 и 37 автобусов соответственно. Завод A, B, C регулярно требует 35, 40 и 22 автобуса. Общее количество сотрудников на каждом предприятии приведено ниже (из-за пандемии Covid-19 предприятия A, B, C работают на 80%, 80% и 30% рабочей силы соответственно). В каждом автобусе могут разместиться только 22 сотрудника и 1 водитель.

Теперь по заданным условиям посчитаем, сколько автобусов потребуется каждому предприятию. Для расчета количества автобусов нам потребуется количество сотрудников для каждого завода. Данные, представленные в задаче, включают количество сотрудников в нормальном состоянии (столбец X).

Задача: минимизировать расходы на транспортировку между городами и заводом за счет оптимального распределения ресурсов. Под ресурсами здесь понимается количество автобусов из определенного города на конкретный завод. Найти возможное решение, которое выполнимо в текущей ситуации (пандемия) и при тестировании с заданными ограничениями.

Я проанализировал проблему и нашел множество способов ее решения, одним из которых может быть Метод Северо-Западного угла или LCC и т. Д. Интересный способ решить эту проблему - использовать вычислительное программирование для поиска оптимальных значений. Я сделал простую модель линейного программирования на Python, используя библиотеку Pulp.

PuLP и LP Modeler написаны на python. Он использует различные алгоритмы для решения LPP. Для этого требуется набор ограничений, переменных решения и целевых функций.

Ограничения: это набор условий. Они ограничивают переменные решения. Они ограничивают значение переменных решения.

Переменные решения: переменные решения будут определять выходные данные модели.

Целевая функция: это цель функции. В нашем случае это минимизация затрат.

РЕШЕНИЕ: поскольку в нашем случае поставки не были указаны в ситуации пандемии, указано максимальное количество автобусов, которое могут принять станции. 60 для станции Ченнаи и 37 для станции Тируваллур. А спрос на автобусы в целом для Завода A, завода B и завода C составляет 70 (рассчитано на основе предоставленной информации). Следовательно, проблема относится к типу НЕБАЛАНСИРОВАННАЯ (Спрос ‹Предложение).

Теперь, когда мы разработали линейную модель для нашей задачи, пора преобразовать нашу модель в код!

Поскольку предложение (то есть количество автобусов, которые могут принять станции Ченнаи и Тируваллур) было задано равным 60 и 37 соответственно
в обычные дни, но в ситуации пандемии, когда спрос на автобусы упал, предложение также должно быть увеличено. быть уменьшенным.
Итак, чтобы сделать задачу СБАЛАНСИРОВАННОЙ, мы принимаем предложение как переменную.

Все шаги, описанные выше, можно пропустить, если данные были большими и в формате Excel. Использование библиотек pandas и numpy для форматирования и чтения Excel можно выполнить за один шаг

df = pd.read_excel («имя_файла.расширение»)

Теперь инициализируем решение….

Вот как python решает задачи исследования операций, однако python более полезен при решении более сложных задач с большим набором данных и большим количеством переменных.

OR используется в отраслях для решения широкого круга задач, таких как: планирование и тайм-менеджмент,

  • Городское и сельскохозяйственное планирование.
  • Планирование ресурсов предприятия (ERP) и управление цепочками поставок (SCM).
  • Управление запасами.
  • Оптимизация сети и инжиниринг.
  • Оптимизация пакетной маршрутизации.
  • Управление рисками.

Операционные исследования - это все о принятии решений и математике, ИЛИ могут быть продвинуты с помощью машинного обучения. Машинное обучение позволяет ИЛИ улучшать оптимизацию с использованием прогнозного подхода. Даже для простейшего алгоритма линейной регрессии речь идет о минимизации функции стоимости до оптимального значения. Вы можете сослаться на Машинное обучение + исследования операций как будущее ИИ - Николай Ван Омме.

Давайте продолжим тему OR + ML в другой статье ✌, пожалуйста, поделитесь своими ценными мыслями, знаниями или сомнениями.