FORESIGHT Pro

Сравнение программных продуктов оптимизационного планирования

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

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


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

 

Обзор ПО планирования и оптимизации


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


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


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

 

1

Рис. 1 Сравнительная производительность различного ПО

 

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

 

Из популярного коммерческого ПО можно выделить:

- IBM ILOG CPLEX,

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

 

 

2 

Рис. 2 Интерфейс IBM ILOG DOC

 

- Xpress Optimization Suite

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

 

 

 3

Рис. 3 Интерфейс Xpress Optimization Suite

 

- Gurobi Optimizer

– коммерческий солвер, созданный бывшими разработчиками CPLEX. Gurobi Солвер написан на C и доступен на всех вычислительных платформах и наиболее популярных языках программирования. Gurobi, несмотря на меньшую команду разработчиков, является достойной альтернативой CPLEX и в ряде задач обходит его по производительности.

 

 

4 

Рис. 4 Интерфейс jupyter для gurobi (по материалам сайта gurobi.com)

 

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