Оптимизация заключается: Оптимизация пространства для производства: основные методы

Маркетинговая оптимизация в банке / Хабр


Привет, Хабр.

Маркетинговая оптимизация, установка лимитов по портфелю кредитных продуктов, логистика и товарная аналитика, оптимизация производственных процессов, … — список применения методов математической оптимизации далеко не ограничивается перечисленными задачами, а методы оптимизации начали решать задачи бизнеса задолго до того, как науки о данных стали называться науками о данных.

С развитием адаптации технологий ML/DS можно ожидать рост популярности оптимизационных методов прежде всего за счет того, что решения бизнес задач становятся более комплексными. То есть, вместо того, чтобы сделать одну-две модели, которые выдают почти финальные решения, процесс принятия решения декомпозируется на отдельные составляющие компоненты, в которых есть место прогнозным моделям, а для самого принятия решения с учетом всех этих компонент и ограничений работает уже оптимизационная модель.

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


В команде GlowByte Advanced Analytics мы активно продвигаем подход, согласно которому проекты по ML лучше изначально формулировать как задачи оптимизации, то есть как систему поддержки принятия решений с измеримыми бизнес-показателями.

Существует много открытых фреймворков для решения оптимизационных задач таких как Gekko, Pyomo, Python-mip, а так же различное проприетарное ПО типа IBM ILOG CPLEX Optimization Studio.

  • Задача оптимизации
  • Маркетинговая оптимизация в банке
  • Немного кода


Задача оптимизации заключается в нахождении экстремума целевой функции в области пространства, ограниченной некоторым набором условий (равенств и/или неравенств). В зависимости от типа целевой функции и типа ограничений задачи оптимизации делятся на задачи линейного и нелинейного программирования.

В общем виде математическая постановка задачи может выглядеть следующим образом


Т. е. среди всех векторов множества , которое ограничено условиями и необходимо найти такой вектор , при котором значение будет минимальным на всем множестве .

При линейных ограничениях и линейной целевой функции задача (1) относится к классу задач линейного программирования и может быть решена симплекс-методом.


Представим себе современный банк, работающий с физическими лицами и продающий им свои основные продукты: кредитные карты, кредиты наличными и т.д. Каждому клиенту банк может предложить один из продуктов в одном из доступных для коммуникации каналов (звонок, смс и т.д.). При этом количество доступных для отправки в неделю/месяц коммуникаций в каждом канале (объем канала) ограничено


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

Рис. 1

Теперь, имея на руках в таблице в базе данных для каждого клиента вероятности отклика на отдельные продукты в определенном канале, ограничения на объем коммуникаций (2) и тот факт, что за одну коммуникацию можно предложить клиенту только один продукт, зададимся вопросом, а какой именно продукт и в каком канале лучше всего предложить каждому из доступных для коммуникации клиентов?

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


Это классическая задача линейного программирования, которая легко решается с помощью открытых фреймворков, упомянутых выше.

В случае, если целью коммуникаций будет максимизация будущей доходности, то целевую функцию в задаче (3) можно записать в виде


где — доходность от k-го продукта на i-м клиенте. Значения могут быть получены с помощью прогнозных моделей или оценены каким-то другим способом.

Замечания

  1. Описанные выше подходы предполагают, что мы имеем достаточно хорошие прогнозы/оценки для и
  2. Если скоры для различных продуктов получены от разных моделей и при этом они (скоры) плохо согласуются с реальной вероятностью отклика (это можно увидеть, например, по графику как на Рис. 1), то перед оптимизацией их необходимо откалибровать. Про различные способы калибровки можно почитать по ссылке.
  3. Предполагается также, что количество коммуникаций, на которые банк готов потратить средства, меньше, чем количество клиентов, которым банк готов предложить свои продукты. В противном случае оптимизировать будет нечего.


Попробуем решить задачу маркетинговой оптимизации, поставленную в виде (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 за помощь и консультации при подготовке этой статьи.

Обзор основных принципов оптимизации затрат — Microsoft Azure Well-Architected Framework





Twitter




LinkedIn




Facebook




Адрес электронной почты










  • Статья



Принцип оптимизации затрат предоставляет принципы балансировки бизнес-целей с обоснованием бюджета. Эти принципы помогают создавать экономически эффективную рабочую нагрузку, избегая при этом решений, требующих большого капитала. Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы.

Используйте модель оплаты по мере использования и инвестируйте в горизонтальное увеличение масштаба вместо того, чтобы вкладывать огромные средства в выпуск нового продукта. Учитывайте затраты на возможности в вашей архитектуре и баланс между преимуществом первого перемещения и быстрым выполнением. Используйте калькуляторы затрат для оценки начальных затрат и затрат на эксплуатацию. Наконец, определите политики, бюджеты и элементы управления, которые ограничивают затраты на решение.

Чтобы оценить рабочую нагрузку с помощью принципов, доступных в Microsoft Azure Well-Architected Framework, см. обзор microsoft Azure Well-Architected.

Мы рекомендуем просмотреть следующие видеоролики, чтобы получить более глубокое представление об оптимизации затрат Azure:

Статьи по оптимизации затрат azure Well-Architected Framework

Azure Well-Architected Framework включает следующие статьи по оптимизации затрат:

Область затратОписание
Составление списка требований по затратамНачните планирование с составления подробного списка требований. Убедитесь, что удовлетворяются потребности заинтересованных лиц. Для обеспечения надежного соответствия бизнес-целям заинтересованные лица должны определять потребности, а не поставщиков.
Затраты на ресурсы в регионах AzureЗатраты на службу Azure в разных расположениях могут отличаться в зависимости от потребностей и затрат на локальную инфраструктуру.
УправлениеПонимание принципов работы системы управления может помочь в управлении затратами. Эта работа приносит пользу текущему процессу проверки затрат и обеспечивает уровень защиты для новых ресурсов.
Оценка первоначальных затратДо развертывания рабочей нагрузки в облаке рассчитать затраты довольно сложно. Если вы используете методы для локальной оценки или напрямую сопоставляете локальные ресурсы с облачными ресурсами, оценка будет неточной.
PaaSНайдите в архитектуре области, в которых было бы естественно включить варианты «платформа как услуга» (PaaS). К ним относятся кэширование, очереди и хранилище данных. PaaS позволяет сократить время и затраты на управление серверами, хранилищем, сетями и другими компонентами инфраструктуры приложений.
ПотреблениеЧаще всего затраты оцениваются на основе рабочих нагрузок при пиковой пропускной способности. При постоянно высоком использовании модель ценообразования на основе потребления может оказаться менее эффективной для оценки базовых затрат по сравнению с эквивалентной моделью ценообразования на основе подготовленных ресурсов.
Подготовка облачных ресурсовРазвертывание облачных ресурсов рабочей нагрузки может обеспечить оптимизацию затрат.
Мониторинг затратСлужба «Управление затратами Azure» имеет функцию оповещения. Когда потребление достигает порогового значения, создаются предупреждения.
Оптимизация затратОтслеживайте и оптимизируйте рабочую нагрузку за счет правильного подбора ресурсов и размеров.
Компромиссы для затратПри проектировании рабочей нагрузки найдите компромисс между оптимизацией затрат и другими аспектами проектирования, такими как безопасность, масштабируемость, устойчивость и совместимость.

Следующий раздел

Используйте принципы оптимизации затрат, чтобы помочь вам в общей стратегии.

Принципы работы






Определение и значение оптимизации — Merriam-Webster

опция

ˌäp-tə-mə-zā-shən 

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

конкретно

: математические процедуры (например, нахождение максимума функции), связанные с этим

Знаете ли вы?

Оптимизация начала постепенно совершенствоваться в английском языке середины 19-го века, когда оно было получено из оптимизировать , слова, впервые использованного в начале того же века в значении «извлекать лучшее или большую часть из». » В основных приложениях оптимизация относится к действию или процессу, направленному на то, чтобы сделать что-то настолько хорошим, насколько это возможно. В 21 веке он нашел широкое применение в техническом контексте, связанном с достижением наилучшей возможной функциональности, например, в «оптимизации сети» и «оптимизации поисковых систем» (SEO). Подобно словам оптимум и оптимизм (которые относятся, соответственно, к количеству или степени чего-то лучшего или наиболее эффективного, а также к ощущению или вере в то, что в будущем произойдут хорошие вещи), оптимизировать и оптимизация происходит от латинского optimus , что означает «лучший».

Примеры предложений

Недавние примеры в Интернете

В настоящее время многие компании ищут ИТ-руководителей, способных выполнить базовые задачи, включая время безотказной работы, безопасность и оптимизацию затрат — а не выдающихся новаторов, способных раздвинуть границы и добиться серьезных изменений.

— Изабель Бускетт, , wsj.com , 24 апреля 2023 г.

Reachy был исключением из стратегии оптимизации , потому что он задумывался как универсальная платформа для манипуляций в реальном мире.

IEEE Spectrum , 16 апреля 2023 г.

Твиттер в конце октября также анонсировал несколько новых рекламных продуктов, таких как конверсия веб-сайта 9. 0015 оптимизация , целью которой является использование поведенческих моделей на платформе, чтобы помочь рекламодателям ориентироваться на пользователей, которые с большей вероятностью будут действовать в соответствии с их запросами.

— Патрик Коффи, WSJ , 17 марта 2023 г.

В количественном обществе, для которого оптимизация — получение максимальной отдачи от вашего вклада — стала самоочевидным благом, университеты ценят действия, которые изменяют числа, а предпрофессионализм поддается отслеживаемым изменениям.

— Натан Хеллер, 9 лет.0015 The New Yorker , 27 февраля 2023 г.

В кафе Chris Young Cafe на территории кампуса проводятся такие курсы, как управление помещениями и оптимизация живого звука , а управляемый студентами лейбл Match Records предоставляет основу для изучения музыкального бизнеса и продвинутого написания песен.

— Сотрудники Billboard, Billboard , 11 октября 2022 г.

Следующая волна повышения производительности произойдет не за счет стандартизации процессов и оптимизация .

— Эми Лешке-Кале, Fortune , 10 апреля 2023 г.

Обладая более чем 20-летним опытом руководства в различных технологических секторах, включая программное обеспечение, средства массовой информации и услуги, Лиз известна своим большим опытом инновационного решения проблем, оптимизации процессов и способностью обеспечивать автоматизацию для повышения эффективности и масштабирования. .

— Анна Оукс, 9 лет.0015 Кварц , 13 февраля 2023 г.

Все динамики в линейке Era будут поддерживать автоматическую настройку и оптимизацию звука .

— Крис Уэлч, The Verge , 6 февраля 2023 г.

Узнать больше

Эти примеры программно скомпилированы из различных онлайн-источников, чтобы проиллюстрировать текущее использование слова «оптимизация». Любые мнения, выраженные в примерах, не отражают точку зрения Merriam-Webster или ее редакторов. Отправьте нам отзыв об этих примерах.

История слов

Этимология

оптимизировать + -ation

Первое известное использование

1857, в значении, определенном выше

Путешественник во времени

Первое известное использование оптимизации было
в 1857 г.

Другие слова того же года

Подкаст

Музыкальная тема Джошуа Стэмпера ©2006 New Jerusalem Music/ASCAP

Получайте «Слово дня» на свой почтовый ящик!

Словарные статьи рядом с

оптимизация

оптимизм

оптимизация

оптимизировать

Посмотреть другие записи поблизости

Процитировать эту запись
«Оптимизация».

Словарь Merriam-Webster.com , Merriam-Webster, https://www.merriam-webster.com/dictionary/optimization. По состоянию на 30 апреля 2023 г.

Copy Citation

Еще от Merriam-Webster об оптимизации

Britannica English: перевод оптимизации для арабоговорящих

Britannica.com: Энциклопедическая статья об оптимизации 9001 6

Последнее обновление:

— Обновлены примеры предложений

Подпишитесь на крупнейший словарь Америки и получите тысячи дополнительных определений и расширенный поиск без рекламы!

Merriam-Webster без сокращений

Можете ли вы решить 4 слова сразу?

Можете ли вы решить 4 слова сразу?

синекура

См. Определения и примеры »

Получайте ежедневно по электронной почте Слово дня!

Оптимизация | Определение, методы и факты

проблема оптимизации

Просмотреть все СМИ

Ключевые люди:
Ричард Карп
Похожие темы:
теория игры
теория управления
математическое программирование
максимальное значение
минимаксное значение

Просмотреть весь связанный контент →

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

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

Проблемы оптимизации обычно состоят из трех основных элементов. Первый — это одна числовая величина или целевая функция, которую необходимо максимизировать или минимизировать. Целью может быть ожидаемая доходность портфеля акций, производственные затраты или прибыль компании, время прибытия транспортного средства в указанный пункт назначения или доля голосов политического кандидата. Второй элемент представляет собой набор переменных, то есть величин, значениями которых можно управлять для оптимизации цели. Примеры включают в себя количество запасов, которые должны быть куплены или проданы, количество различных ресурсов, которые должны быть выделены для различных производственных операций, маршрут, по которому должно следовать транспортное средство через транспортную сеть, или политика, которую должен отстаивать кандидат. Третий элемент задачи оптимизации — это набор ограничений, то есть ограничений на значения, которые могут принимать переменные. Например, производственный процесс не может требовать больше ресурсов, чем доступно, и не может использовать меньше, чем ноль ресурсов. В этих широких рамках задачи оптимизации могут иметь различные математические свойства. Задачи, в которых переменные являются непрерывными величинами (как в примере с распределением ресурсов), требуют иного подхода, чем задачи, в которых переменные являются дискретными или комбинаторными величинами (например, при выборе маршрута транспортного средства из заранее определенного набора возможностей).

Важный класс оптимизации известен как линейное программирование. Линейное число указывает на то, что переменные не возводятся в более высокие степени, например квадраты. Для этого класса задачи включают в себя минимизацию (или максимизацию) линейной целевой функции, переменные которой являются действительными числами, которые должны удовлетворять системе линейных равенств и неравенств. Другой важный класс оптимизации известен как нелинейное программирование. В нелинейном программировании переменными являются действительные числа, а целью или некоторыми ограничениями являются нелинейные функции (возможно, включающие квадраты, квадратные корни, тригонометрические функции или произведения переменных). В этой статье обсуждаются как линейное, так и нелинейное программирование. Другие важные классы задач оптимизации, не рассмотренные в этой статье, включают стохастическое программирование, в котором целевая функция или ограничения зависят от случайных величин, так что оптимум находится в некотором «ожидаемом» или вероятностном смысле; оптимизация сети, которая включает в себя оптимизацию некоторых свойств потока через сеть, таких как максимизация количества материала, который может транспортироваться между двумя заданными точками в сети; и комбинаторная оптимизация, в которой решение должно быть найдено среди конечного, но очень большого набора возможных значений, таких как множество возможных способов назначить 20 производственных предприятий 20 местоположениям.

Происхождение и влияние

Несмотря на то, что линейное программирование широко используется в настоящее время для решения повседневных задач принятия решений, до 1947 года оно было относительно неизвестно. До этой даты не проводилось никаких значительных работ, даже несмотря на то, что французский математик Жозеф Фурье, казалось, знал о возможности предмета уже в 1823 г. В 1939 г. русский математик Леонид Витальевич Канторович опубликовал обширную монографию « Математические методы организации и планирования производства».0016 («Математические методы организации и планирования производства»), который в настоящее время считается первым трактатом, признавшим, что некоторые важные широкие классы задач планирования имеют четко определенные математические структуры. К сожалению, предложения Канторовича почти два десятилетия оставались практически неизвестными как в Советском Союзе, так и за его пределами. Тем временем линейное программирование значительно развилось в США и Западной Европе. В период после Второй мировой войны официальные лица в правительстве Соединенных Штатов пришли к выводу, что эффективная координация энергии и ресурсов всей нации в случае ядерной войны потребует использования методов научного планирования. Появление компьютера сделало такой подход возможным.

Интенсивная работа началась в 1947 году в ВВС США. Модель линейного программирования была предложена потому, что она была относительно проста с математической точки зрения, и в то же время обеспечивала достаточно общую и практическую основу для представления взаимозависимых действий, которые совместно используют ограниченные ресурсы. В модели линейного программирования разработчик модели рассматривает оптимизируемую систему как состоящую из различных действий, которые, как предполагается, требуют потока входов (например, рабочей силы и сырья) и выходов (например, готовых товаров и услуг) различных типов. типы пропорциональны уровню активности. Предполагается, что уровни активности могут быть представлены неотрицательными числами. Революционная особенность подхода заключается в выражении цели процесса принятия решений в терминах минимизации или максимизации линейной целевой функции — например, максимизации возможных боевых вылетов в случае военно-воздушных сил или максимизации прибыли в промышленности. До 1947 все практическое планирование характеризовалось серией навязанных властями правил процедуры и приоритетов. Общие цели никогда не формулировались, вероятно, из-за невозможности выполнения расчетов, необходимых для минимизации целевой функции при ограничениях. В 1947 г. был введен метод (описанный в разделе Симплекс-метод), который оказался эффективным для решения практических задач. Интерес к линейному программированию быстро рос, и к 1951 году его использование распространилось на промышленность. Сегодня почти невозможно назвать отрасль, которая не использует математическое программирование в той или иной форме, хотя области применения и степень его использования сильно различаются даже в пределах одной отрасли.

Оформите подписку Britannica Premium и получите доступ к эксклюзивному контенту.

Подписаться

Интерес к линейному программированию распространился и на экономику. В 1937 году математик венгерского происхождения Джон фон Нейман проанализировал неуклонно расширяющуюся экономику, основанную на альтернативных методах производства и фиксированных технологических коэффициентах. Что касается истории математики, то до 19 века изучение систем линейных неравенств практически не вызывало интереса.36. В 1911 г. для решения задачи, связанной с оптимизацией, было предложено движение от вершины к вершине по ребрам многогранника (как это делается в симплекс-методе), а в 1941 г. для задачи, связанной с оптимизацией, было предложено движение по ребрам. транспорт. Заслуга в создании большей части математических основ, вероятно, должна принадлежать фон Нейману. В 1928 году он опубликовал свою знаменитую статью по теории игр, а кульминацией его работы стала публикация в 1944 году в сотрудничестве с австрийским экономистом Оскаром Моргенштерном классического труда. 0015 Теория игр и экономического поведения . В 1947 году фон Нейман предположил эквивалентность линейных программ и матричных игр, ввел важное понятие двойственности и сделал несколько предложений по численному решению задач линейного программирования и игр. Серьезный интерес со стороны других математиков начался в 1948 г. со строгой разработки двойственности и связанных с ней вопросов.

Общий симплексный метод был впервые запрограммирован в 1951 году для компьютера SEAC Бюро стандартов США. Начиная с 1952 симплекс-метод был запрограммирован для использования на различных компьютерах IBM, а затем и других компаний. В результате быстро росло коммерческое применение линейных программ в промышленности и правительстве. Продолжали разрабатываться новые вычислительные методы и вариации старых методов.

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

This entry was posted in Популярное