Содержание
Оптимизация производственных процессов — Евгений Павлов на vc.ru
{«id»:13748,»url»:»\/distributions\/13748\/click?bit=1&hash=581ea90bcb5632a4a6077e033755a9615acb9ca7b7f3f55a9877fc1a66f6d51c»,»title»:»\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u0440\u044b\u0432\u0435: \u043a\u0430\u043a \u0443\u0441\u0442\u0440\u043e\u0435\u043d\u0430 \u0442\u0435\u0445\u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044f \u00ab\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435\u00bb»,»buttonText»:»\u0423\u0437\u043d\u0430\u0442\u044c»,»imageUuid»:»77789898-6cc1-569c-9363-53804fabee8d»,»isPaidAndBannersEnabled»:false}
Оптимизация — это процесс нахождения наилучших (оптимальных) решений различных (производственных, бизнес-задач и т.д.) задач с использованием математических моделей. Задачей (проблемой) оптимизации является минимизация или максимизация каких-либо необходимых показателей в процессе организации производства и принятия решений, таких как общее затраченное время, фактическая продолжительность, стоимость и т. д., учитывая заданные условиями реальной задачи ограничения.
2295
просмотров
Проблемы оптимизации возникают во всех областях производства и экономики, например, разработка технологического процесса, увеличение производительности, логистике, управлении трафиком, транспортными потоками, рабочей нагрузкой, стратегическом планировании.
Математическая модель
В первую очередь необходимо создать математическую модель реальной задачи – совокупность математических соотношений, которая является обобщением рассматриваемой реальной задачи.
Обычно математическая оптимизационная модель состоит из четырёх ключевых объектов:
- исходные данные
- переменные
- ограничения
- целевая функция
Исходные данные представляют требования задачи. Это могут быть стоимости или потребности в ресурсах, условия эксплуатации оборудования, вместимость складов, грузоподъёмность транспорта.
Переменные представляют ваше решение: сколько определённой продукции необходимо производить, открывать новую линию обслуживания или нет, сколько и какие запасы держать на складе.
Ограничения могут быть самыми различными: количественные соотношения, ограничения по объёму, вместимости.
Целевая функция представляет желаемое направление оптимизации: минимизация цены, максимизация коэффициента использования, минимизация затрат и т.д.
Наиболее применимы оптимизационные методы для решения производственных и бизнес-задач по следующим направлениям:
- планирование производства
- планирование работ и календарное планирование
- моделирование распределения ресурсов
- движение товаров и логистика
- оптимизация нефтеперерабатывающей и нефтехимической промышленности
- планирование технологических процессов
- техническое проектирование
- планирование вложения капитала
- сетевое планирование
- финансовая оптимизация
Построение эффективного производства невозможно без определения цели оптимизации. Для промышленных предприятий целью любых производимых изменений является увеличение дохода от производственной деятельности. Это возможно при одновременной оптимизации основных параметров производства: оборота, операционных расходов, запасов. Необходимо определить, как влияет изменение данных параметров на производство.
Тотальная оптимизация производства
Тотальная оптимизация производства – проект, направленный на повышение эффективности производства «снизу-вверх», т.е. на предприятии создается управленческий механизм, который позволяет выдвигать, оценивать и реализовывать рационализаторские предложения «снизу», минуя административные препоны.
Возможные направления программы:
- сокращение затрат
- повышение надежности поставок
- повышение качества (брак и время простоев)
- утилизация отходов
- устранение «узких мест» в производстве
Для успешной реализации проекта ТОП необходимо придерживаться следующих принципов:
- Никто лучше сотрудников предприятия не разбирается в собственном производстве, а значит, не может определить направления повышения его эффективности. Работа внешних консультантов при этом заключается в стартовом направлении инновационного процесса, формировании и передаче методологии анализа затрат и материальных потоков, организации процесса (функции и порядок взаимодействия внутри предприятия), а также в выполнении сопутствующих работ, обеспечивающих успешную реализацию проекта ТОП (например, разработка механизмов дополнительной мотивации персонала).
- При обсуждении проектов на рабочих группах следует рассматривать даже самые смелые и фантастические идеи.
- За принятые и реализованные рацпредложения сотрудники должны быть вознаграждены материально, что будет служить значительной мотивацией персоналу, участвующему в проекте.
- Программа по оптимизации должна поддерживаться высшим руководством предприятия и находиться под его постоянным контролем.
Бережливое производство и тотальная оптимизация производства основываются на раскрытии творческого потенциала сотрудников предприятия. В отличие от других управленческих технологий, ориентированных на жесткую регламентацию деятельности и усиление контроля «сверху-вниз», данные подходы позволяют вовлечь в процесс оптимизации работников всех уровней. При этом достигается комплексный эффект: предприятие работает более эффективно, сотрудники вовлечены в процесс реализации проекта и имеют возможность улучшить свои условия труда и материальную компенсацию.
Факторы успеха проекта на практике
- Ориентировать всех участников создания стоимости на согласованную общую долгосрочную цель — идеальное состояние потока стоимости. При этом разбить поток на определенные этапы, его целевые состояния. Компания должна сделать этот шаг для приближения к идеальному состоянию. При этом неясно, как это новое состояние должно и может быть достигнуто. Результат определен заранее, а путь его достижения открыт для творчества.
- Разложить поток создания стоимости на отдельные управляемые людьми или командой организационные единицы (сегменты, участки). Такой подход создает возможность контролировать отдельные процессы и влиять на них. Если этого не сделать и рассматривать все производственные процессы как единый поток с его взаимосвязями, система будет неуправляемой, поскольку образуются функциональные бункеры, связанные между собой только потоками материалов и информации.
- Для выполнения задачи менеджмента – организации процесса систематического достижения поставленной цели – использовать следующий алгоритм: определить параметры состояния потока стоимости в качестве целевого ориентира в направлении заданной идеальной цели, выделенные сегменты или участки в общем потоке создания стоимости должны быть в состоянии, независимо от проблем в других участках, выполнить свою роль и достичь поставленной цели. А чтобы изменения в одном сегменте напрямую не влияли на другой и не были решающей причиной недостижения целей, отдельные сегменты соединяют между собой через буфер. Взаимные влияния можно нивелировать, например, через запасы (супермаркеты с установленными мини- и макси-запасами), мощности (стандартные и дополнительные мощности, используемые при появлении узких мест) или время. При этом распределение по сменам и плановая загрузка каждой смены составляет только 70% при обязательном выполнении всех запланированных заказов. Только в этом случае можно устанавливать цели для каждого сегмента как стандарт, который независимо от проблем в другом должен быть достигнут. Если же это не удается, необходимо выявлять причины и устранять их.
- Для достижения долгосрочного процесса улучшений вначале опытным путем на практике определить, возможно ли достижение оперативной цели регулярно. И лучше всего сделать это без применения ИТ. Работники должны отмечать каждый час, какие номера деталей они обработали, их количество в час и какой был план. При отклонении факта от плана работники записывают причины недостижения результата. Затем причины группируются по частоте их возникновения, и проводится анализ по принципу Паретто. Отдельные причины отрабатываются отдельно и представляется их результат. Такой систематический цикл решения проблем очень важен для получения устойчивых улучшений результатов оперативного процесса.
Систематизируя, решение на уровне топ-менеджмента о необходимости усовершенствования производственной деятельности на предприятии состоит из:
- привлечения внешних специалистов
- отбора инициативной группы и обучение этой группы
- набора и отбора идей, их анализа
- разработки программы оптимизации производства
- выделения финансирования
- реализации программы оптимизации производства, контроля внедрения этой программы
- анализа результатов проведенной работы
- работы над затратами, которые можно оптимизировать
- контроля над ненужными операциями
- совершенствования производственных приемов
Маркетинговая оптимизация в банке / Хабр
Привет, Хабр.
Маркетинговая оптимизация, установка лимитов по портфелю кредитных продуктов, логистика и товарная аналитика, оптимизация производственных процессов, … — список применения методов математической оптимизации далеко не ограничивается перечисленными задачами, а методы оптимизации начали решать задачи бизнеса задолго до того, как науки о данных стали называться науками о данных.
С развитием адаптации технологий ML/DS можно ожидать рост популярности оптимизационных методов прежде всего за счет того, что решения бизнес задач становятся более комплексными. То есть, вместо того, чтобы сделать одну-две модели, которые выдают почти финальные решения, процесс принятия решения декомпозируется на отдельные составляющие компоненты, в которых есть место прогнозным моделям, а для самого принятия решения с учетом всех этих компонент и ограничений работает уже оптимизационная модель.
В статье поговорим о возможной постановке задачи оптимизации в банковской сфере и методах ее решения.
В команде GlowByte Advanced Analytics мы активно продвигаем подход, согласно которому проекты по ML лучше изначально формулировать как задачи оптимизации, то есть как систему поддержки принятия решений с измеримыми бизнес-показателями.
Существует много открытых фреймворков для решения оптимизационных задач таких как Gekko, Pyomo, Python-mip, а так же различное проприетарное ПО типа IBM ILOG CPLEX Optimization Studio.
- Задача оптимизации
- Маркетинговая оптимизация в банке
- Немного кода
Задача оптимизации заключается в нахождении экстремума целевой функции в области пространства, ограниченной некоторым набором условий (равенств и/или неравенств). В зависимости от типа целевой функции и типа ограничений задачи оптимизации делятся на задачи линейного и нелинейного программирования.
В общем виде математическая постановка задачи может выглядеть следующим образом
Т.е. среди всех векторов множества , которое ограничено условиями и необходимо найти такой вектор , при котором значение будет минимальным на всем множестве .
При линейных ограничениях и линейной целевой функции задача (1) относится к классу задач линейного программирования и может быть решена симплекс-методом.
Представим себе современный банк, работающий с физическими лицами и продающий им свои основные продукты: кредитные карты, кредиты наличными и т.д. Каждому клиенту банк может предложить один из продуктов в одном из доступных для коммуникации каналов (звонок, смс и т.д.). При этом количество доступных для отправки в неделю/месяц коммуникаций в каждом канале (объем канала) ограничено
Предположим, что в банке имеется модель (или несколько моделей), которая с хорошей точностью предсказывает вероятность отклика клиента на определенный банковский продукт в определенном канале. Оценить качество такой модели с точки зрения того, как ее оценки соотносятся с реальными вероятностями, можно, построив на отложенной выборке распределения прогнозной вероятности и реального отлика по бакетам скора модели.
Рис. 1
Теперь, имея на руках в таблице в базе данных для каждого клиента вероятности отклика на отдельные продукты в определенном канале, ограничения на объем коммуникаций (2) и тот факт, что за одну коммуникацию можно предложить клиенту только один продукт, зададимся вопросом, а какой именно продукт и в каком канале лучше всего предложить каждому из доступных для коммуникации клиентов?
При постановке задачи важно понимать, какую именно метрику мы хотим максимизировать на выходе. Например, если в результате коммуникаций мы хотим получить максимальный отклик, то соответствующая задача оптимизации может быть поставлена следующим образом
Это классическая задача линейного программирования, которая легко решается с помощью открытых фреймворков, упомянутых выше.
В случае, если целью коммуникаций будет максимизация будущей доходности, то целевую функцию в задаче (3) можно записать в виде
где — доходность от k-го продукта на i-м клиенте. Значения могут быть получены с помощью прогнозных моделей или оценены каким-то другим способом.
Замечания
- Описанные выше подходы предполагают, что мы имеем достаточно хорошие прогнозы/оценки для и
- Если скоры для различных продуктов получены от разных моделей и при этом они (скоры) плохо согласуются с реальной вероятностью отклика (это можно увидеть, например, по графику как на Рис. 1), то перед оптимизацией их необходимо откалибровать. Про различные способы калибровки можно почитать по ссылке.
- Предполагается также, что количество коммуникаций, на которые банк готов потратить средства, меньше, чем количество клиентов, которым банк готов предложить свои продукты. В противном случае оптимизировать будет нечего.
Попробуем решить задачу маркетинговой оптимизации, поставленную в виде (3), с помощью библиотеки MIP, упомянутой выше. Возьмем случайным образом сгенерированный датасет объемом в 6000 строк, в котором содержится 1000 клиентов, каждому из которых можно предложить один из 3-х продуктов в двух каналах — SMS и звонок.
Код
import pandas as pd from mip import Model, MAXIMIZE, CBC, BINARY, OptimizationStatus, xsum frame = pd.read_csv('table_for_optimization.csv') frame.head()
Предположим, что у нас есть ограничение на объем коммуникаций: 500 SMS и 200 звонков. Напишем функцию для решения задачи оптимизации.
Код
def optimize(frame: pd.DataFrame, channel_limits: dict) -> list: """ Возвращает массив оптимальных предложений """ df = frame.copy() #создание модели model = Model(sense=MAXIMIZE, solver_name=CBC) #вектор бинарных переменных задачи x = [model.add_var(var_type=BINARY) for i in range(df.shape[0])] df['x'] = x #целевая функция #функция xsum значительно ускоряет суммирование https://docs.python-mip.com/en/latest/classes.html#mip.xsum model.objective = xsum(df['score'] * df['x']) #ограничения на количество коммуникаций в каждом канале for channel in df.channel.unique(): model += (xsum(df[df.channel==channel]['x']) <= channel_limits[channel]) #ограничения на количество продуктов для каждого клиента (не более одного продукта на клиента) for product_cnt in df.groupby(['client_id'])['x'].apply(xsum): model += (product_cnt <= 1) status = model. optimize(max_seconds=300) del df if status == OptimizationStatus.OPTIMAL or status == OptimizationStatus.FEASIBLE: return [var.x for var in model.vars] elif status == OptimizationStatus.NO_SOLUTION_FOUND: print('No feasible solution found')
Зададим ограничения на объем коммуникаций в каналах, запустим решение задачи оптимизации и посмотрим как в итоге распределятся оптимальные предложения по каналам и продуктам.
Код
#объем доступных коммуникаций в каналах CHANNELS_LIMITS = { 'call': 200, 'sms': 500 } optimal_decisions = optimize(frame=frame, channel_limits=CHANNELS_LIMITS) frame['optimal_decision'] = optimal_decisions #распределение продуктов в каналах frame[frame['optimal_decision']==1].groupby(['channel', 'product']).\ agg({'client_id': 'count'}).\ rename(columns={'client_id': 'client_cnt'})
Весь код и данные доступны по ссылке.
В зависимости от типа прогнозных моделей мы можем располагать не просто средней оценкой вероятности отклика а также иметь распределение этого значения для каждого клиента и продукта. В таком случае задача оптимизации (3) может быть дополнена условием
Более того, если в нашем распоряжении есть распределение для каждой вероятности , то мы можем также решать и обратную задачу: минимизировать количество коммуникаций при условях типа (5) с учетом определенных ограничений, задаваемых бизнесом.
Благодарю коллег из команды GlowByte Advanced Analytics за помощь и консультации при подготовке этой статьи.
Оптимизация | Определение, методы и факты
проблема оптимизации
Просмотреть все СМИ
- Ключевые люди:
- Ричард Карп
- Похожие темы:
- теория игры
теория управления
математическое программирование
минимаксное значение
максимальное значение
Просмотреть весь связанный контент →
Резюме
Прочтите краткий обзор этой темы
оптимизация , также известная как математическое программирование , набор математических принципов и методов, используемых для решения количественных задач во многих дисциплинах, включая физику, биологию, инженерию, экономику и бизнес. Предмет вырос из осознания того, что количественные задачи в явно разных дисциплинах имеют важные общие математические элементы. Из-за этой общности многие проблемы могут быть сформулированы и решены с использованием единого набора идей и методов, составляющих область оптимизации. 9. Математическое программирование включает изучение математической структуры задач оптимизации, изобретение методов решения этих задач, изучение математических свойств этих методов и реализацию этих методов на ЭВМ. Более быстрые компьютеры значительно расширили размер и сложность решаемых задач оптимизации. Развитие методов оптимизации шло параллельно с достижениями не только в информатике, но и в исследованиях операций, численном анализе, теории игр, математической экономике, теории управления и комбинаторике.
Проблемы оптимизации обычно состоят из трех основных элементов. Первый — это одна числовая величина или целевая функция, которую необходимо максимизировать или минимизировать. Целью может быть ожидаемая доходность портфеля акций, производственные затраты или прибыль компании, время прибытия транспортного средства в указанный пункт назначения или доля голосов политического кандидата. Второй элемент представляет собой набор переменных, то есть величин, значениями которых можно управлять для оптимизации цели. Примеры включают в себя количество запасов, которые должны быть куплены или проданы, количество различных ресурсов, которые должны быть выделены для различных производственных операций, маршрут, по которому должно следовать транспортное средство через транспортную сеть, или политика, которую должен отстаивать кандидат. Третий элемент задачи оптимизации — это набор ограничений, то есть ограничений на значения, которые могут принимать переменные. Например, производственный процесс не может требовать больше ресурсов, чем доступно, и не может использовать меньше, чем ноль ресурсов. В этих широких рамках задачи оптимизации могут иметь различные математические свойства. Задачи, в которых переменные являются непрерывными величинами (как в примере с распределением ресурсов), требуют иного подхода, чем задачи, в которых переменные являются дискретными или комбинаторными величинами (например, при выборе маршрута транспортного средства из заранее определенного набора возможностей).
Важный класс оптимизации известен как линейное программирование. Linear указывает, что никакие переменные не возводятся в более высокие степени, например квадраты. Для этого класса задачи включают в себя минимизацию (или максимизацию) линейной целевой функции, переменные которой являются действительными числами, которые должны удовлетворять системе линейных равенств и неравенств. Другой важный класс оптимизации известен как нелинейное программирование. В нелинейном программировании переменными являются действительные числа, а целью или некоторыми ограничениями являются нелинейные функции (возможно, включающие квадраты, квадратные корни, тригонометрические функции или произведения переменных). В этой статье обсуждаются как линейное, так и нелинейное программирование. Другие важные классы задач оптимизации, не рассмотренные в этой статье, включают стохастическое программирование, в котором целевая функция или ограничения зависят от случайных величин, так что оптимум находится в некотором «ожидаемом» или вероятностном смысле; оптимизация сети, которая включает в себя оптимизацию некоторых свойств потока через сеть, таких как максимизация количества материала, который может транспортироваться между двумя заданными точками в сети; и комбинаторная оптимизация, в которой решение должно быть найдено среди конечного, но очень большого набора возможных значений, таких как множество возможных способов назначить 20 производственных предприятий 20 местоположениям.
Происхождение и влияние
Хотя линейное программирование широко используется в настоящее время для решения повседневных задач принятия решений, до 1947 года оно было относительно неизвестно. До этой даты не проводилось никаких значительных работ, хотя французский математик Жозеф Фурье, казалось, знал о возможности предмета уже в 1823 г. В 1939 г. русский математик Леонид Витальевич Канторович опубликовал обширную монографию «Математические методы организации и планирования производства 9».0032 («Математические методы организации и планирования производства»), который теперь считается первым трактатом, признавшим, что некоторые важные широкие классы задач планирования имеют четко определенные математические структуры. К сожалению, предложения Канторовича почти два десятилетия оставались практически неизвестными как в Советском Союзе, так и за его пределами. Тем временем линейное программирование значительно развилось в США и Западной Европе. В период после Второй мировой войны официальные лица в правительстве Соединенных Штатов пришли к выводу, что эффективная координация энергии и ресурсов всей нации в случае ядерной войны потребует использования методов научного планирования. Появление компьютера сделало такой подход возможным.
Интенсивная работа началась в 1947 году в ВВС США. Модель линейного программирования была предложена потому, что она была относительно проста с математической точки зрения, и в то же время обеспечивала достаточно общую и практическую основу для представления взаимозависимых действий, которые совместно используют ограниченные ресурсы. В модели линейного программирования разработчик модели рассматривает оптимизируемую систему как состоящую из различных действий, которые, как предполагается, требуют потока входов (например, рабочей силы и сырья) и выходов (например, готовых товаров и услуг) различных типов. типы пропорциональны уровню активности. Предполагается, что уровни активности могут быть представлены неотрицательными числами. Революционная особенность подхода заключается в выражении цели процесса принятия решений в терминах минимизации или максимизации линейной целевой функции — например, максимизации возможных боевых вылетов в случае военно-воздушных сил или максимизации прибыли в промышленности. До 1947 все практическое планирование характеризовалось серией навязанных властями правил процедуры и приоритетов. Общие цели никогда не формулировались, вероятно, из-за невозможности выполнения расчетов, необходимых для минимизации целевой функции при ограничениях. В 1947 г. был введен метод (описанный в разделе Симплекс-метод), который оказался эффективным для решения практических задач. Интерес к линейному программированию быстро рос, и к 1951 году его использование распространилось на промышленность. Сегодня почти невозможно назвать отрасль, которая не использует математическое программирование в той или иной форме, хотя области применения и степень его использования сильно различаются даже в пределах одной отрасли.
Оформите подписку Britannica Premium и получите доступ к эксклюзивному контенту.
Подпишитесь сейчас
Интерес к линейному программированию распространился и на экономику. В 1937 году математик венгерского происхождения Джон фон Нейман проанализировал неуклонно расширяющуюся экономику, основанную на альтернативных методах производства и фиксированных технологических коэффициентах. Что касается истории математики, то до 1936 г. изучение систем линейных неравенств практически не вызывало интереса. решить задачу, связанную с оптимизацией, и в 1941 движение по ребрам было предложено для транспортной задачи. Заслуга в создании большей части математических основ, вероятно, должна принадлежать фон Нейману. В 1928 году он опубликовал свою знаменитую статью по теории игр, а кульминацией его работы стала публикация в 1944 году в сотрудничестве с австрийским экономистом Оскаром Моргенштерном классической книги «Теория игр и экономическое поведение ». В 1947 году фон Нейман предположил эквивалентность линейных программ и матричных игр, ввел важное понятие двойственности и сделал несколько предложений по численному решению задач линейного программирования и игр. Серьезный интерес со стороны других математиков начался в 1948 со строгим развитием дуальности и связанных с ней вопросов.
Общий симплексный метод был впервые запрограммирован в 1951 году для компьютера SEAC Бюро стандартов США. Начиная с 1952 года симплекс-метод был запрограммирован для использования на различных компьютерах IBM, а затем и на компьютерах других компаний. В результате быстро росло коммерческое применение линейных программ в промышленности и правительстве. Продолжали разрабатываться новые вычислительные методы и вариации старых методов.
В последнее время появился большой интерес к решению больших линейных задач со специальными структурами — например, корпоративные модели и модели национального планирования, которые являются многоступенчатыми, динамичными и демонстрируют иерархическую структуру. Подсчитано, что некоторые развивающиеся страны будут иметь потенциал для увеличения своего валового национального продукта (ВНП) на 10–15 процентов в год, если удастся построить, оптимизировать и внедрить подробные модели роста экономики.
Оптимизация | Определение, методы и факты
проблема оптимизации
Просмотреть все СМИ
- Ключевые люди:
- Ричард Карп
- Похожие темы:
- теория игры
теория управления
математическое программирование
минимаксное значение
максимальное значение
Просмотреть весь соответствующий контент →
Резюме
Прочтите краткий обзор этой темы
оптимизация , также известная как математическое программирование , набор математических принципов и методов, используемых для решения количественных задач во многих дисциплинах, включая физику, биологию, инженерию, экономику и бизнес. Предмет вырос из осознания того, что количественные задачи в явно разных дисциплинах имеют важные общие математические элементы. Из-за этой общности многие проблемы могут быть сформулированы и решены с использованием единого набора идей и методов, составляющих область оптимизации. 9. Математическое программирование включает изучение математической структуры задач оптимизации, изобретение методов решения этих задач, изучение математических свойств этих методов и реализацию этих методов на ЭВМ. Более быстрые компьютеры значительно расширили размер и сложность решаемых задач оптимизации. Развитие методов оптимизации шло параллельно с достижениями не только в информатике, но и в исследованиях операций, численном анализе, теории игр, математической экономике, теории управления и комбинаторике.
Проблемы оптимизации обычно состоят из трех основных элементов. Первый — это одна числовая величина или целевая функция, которую необходимо максимизировать или минимизировать. Целью может быть ожидаемая доходность портфеля акций, производственные затраты или прибыль компании, время прибытия транспортного средства в указанный пункт назначения или доля голосов политического кандидата. Второй элемент представляет собой набор переменных, то есть величин, значениями которых можно управлять для оптимизации цели. Примеры включают в себя количество запасов, которые должны быть куплены или проданы, количество различных ресурсов, которые должны быть выделены для различных производственных операций, маршрут, по которому должно следовать транспортное средство через транспортную сеть, или политика, которую должен отстаивать кандидат. Третий элемент задачи оптимизации — это набор ограничений, то есть ограничений на значения, которые могут принимать переменные. Например, производственный процесс не может требовать больше ресурсов, чем доступно, и не может использовать меньше, чем ноль ресурсов. В этих широких рамках задачи оптимизации могут иметь различные математические свойства. Задачи, в которых переменные являются непрерывными величинами (как в примере с распределением ресурсов), требуют иного подхода, чем задачи, в которых переменные являются дискретными или комбинаторными величинами (например, при выборе маршрута транспортного средства из заранее определенного набора возможностей).
Важный класс оптимизации известен как линейное программирование. Linear указывает, что никакие переменные не возводятся в более высокие степени, например квадраты. Для этого класса задачи включают в себя минимизацию (или максимизацию) линейной целевой функции, переменные которой являются действительными числами, которые должны удовлетворять системе линейных равенств и неравенств. Другой важный класс оптимизации известен как нелинейное программирование. В нелинейном программировании переменными являются действительные числа, а целью или некоторыми ограничениями являются нелинейные функции (возможно, включающие квадраты, квадратные корни, тригонометрические функции или произведения переменных). В этой статье обсуждаются как линейное, так и нелинейное программирование. Другие важные классы задач оптимизации, не рассмотренные в этой статье, включают стохастическое программирование, в котором целевая функция или ограничения зависят от случайных величин, так что оптимум находится в некотором «ожидаемом» или вероятностном смысле; оптимизация сети, которая включает в себя оптимизацию некоторых свойств потока через сеть, таких как максимизация количества материала, который может транспортироваться между двумя заданными точками в сети; и комбинаторная оптимизация, в которой решение должно быть найдено среди конечного, но очень большого набора возможных значений, таких как множество возможных способов назначить 20 производственных предприятий 20 местоположениям.
Происхождение и влияние
Хотя линейное программирование широко используется в настоящее время для решения повседневных задач принятия решений, до 1947 года оно было относительно неизвестно. До этой даты не проводилось никаких значительных работ, хотя французский математик Жозеф Фурье, казалось, знал о возможности предмета уже в 1823 г. В 1939 г. русский математик Леонид Витальевич Канторович опубликовал обширную монографию «Математические методы организации и планирования производства 9».0032 («Математические методы организации и планирования производства»), который теперь считается первым трактатом, признавшим, что некоторые важные широкие классы задач планирования имеют четко определенные математические структуры. К сожалению, предложения Канторовича почти два десятилетия оставались практически неизвестными как в Советском Союзе, так и за его пределами. Тем временем линейное программирование значительно развилось в США и Западной Европе. В период после Второй мировой войны официальные лица в правительстве Соединенных Штатов пришли к выводу, что эффективная координация энергии и ресурсов всей нации в случае ядерной войны потребует использования методов научного планирования. Появление компьютера сделало такой подход возможным.
Интенсивная работа началась в 1947 году в ВВС США. Модель линейного программирования была предложена потому, что она была относительно проста с математической точки зрения, и в то же время обеспечивала достаточно общую и практическую основу для представления взаимозависимых действий, которые совместно используют ограниченные ресурсы. В модели линейного программирования разработчик модели рассматривает оптимизируемую систему как состоящую из различных действий, которые, как предполагается, требуют потока входов (например, рабочей силы и сырья) и выходов (например, готовых товаров и услуг) различных типов. типы пропорциональны уровню активности. Предполагается, что уровни активности могут быть представлены неотрицательными числами. Революционная особенность подхода заключается в выражении цели процесса принятия решений в терминах минимизации или максимизации линейной целевой функции — например, максимизации возможных боевых вылетов в случае военно-воздушных сил или максимизации прибыли в промышленности. До 1947 все практическое планирование характеризовалось серией навязанных властями правил процедуры и приоритетов. Общие цели никогда не формулировались, вероятно, из-за невозможности выполнения расчетов, необходимых для минимизации целевой функции при ограничениях. В 1947 г. был введен метод (описанный в разделе Симплекс-метод), который оказался эффективным для решения практических задач. Интерес к линейному программированию быстро рос, и к 1951 году его использование распространилось на промышленность. Сегодня почти невозможно назвать отрасль, которая не использует математическое программирование в той или иной форме, хотя области применения и степень его использования сильно различаются даже в пределах одной отрасли.
Оформите подписку Britannica Premium и получите доступ к эксклюзивному контенту.
Подпишитесь сейчас
Интерес к линейному программированию распространился и на экономику. В 1937 году математик венгерского происхождения Джон фон Нейман проанализировал неуклонно расширяющуюся экономику, основанную на альтернативных методах производства и фиксированных технологических коэффициентах. Что касается истории математики, то до 1936 г. изучение систем линейных неравенств практически не вызывало интереса. решить задачу, связанную с оптимизацией, и в 1941 движение по ребрам было предложено для транспортной задачи. Заслуга в создании большей части математических основ, вероятно, должна принадлежать фон Нейману. В 1928 году он опубликовал свою знаменитую статью по теории игр, а кульминацией его работы стала публикация в 1944 году в сотрудничестве с австрийским экономистом Оскаром Моргенштерном классической книги «Теория игр и экономическое поведение ». В 1947 году фон Нейман предположил эквивалентность линейных программ и матричных игр, ввел важное понятие двойственности и сделал несколько предложений по численному решению задач линейного программирования и игр. Серьезный интерес со стороны других математиков начался в 1948 со строгим развитием дуальности и связанных с ней вопросов.
Общий симплексный метод был впервые запрограммирован в 1951 году для компьютера SEAC Бюро стандартов США.