1 2
Введение
Одним из важнейших этапов решения задач математического программирования является построение экономико-математической модели. Когда докомпьютерная модель уже формализована, необходимо выбрать программное обеспечение для реализации модели. Это могут быть самые разнообразные приложения, например, табличный процессор MS Excel; пакет моделирования систем массового обслуживания GPSS, пакеты для моделирования экономической динамики IThink или Poversim, пакеты моделирования математических и технических систем MatLab и Simulink, MathCAD, Maple и многое другое.
Можно применить универсальные языки программирования типа C++, C#, Java, Python, но в ряде случаев трудоемкость программирования интерфейса превышает трудоемкость программирования самой модели в 5-10 раз.
Иногда, даже в таких специализированных пакетах, как MS Excel, приходится программировать процедуры, которых не хватает для полного решения задачи. Для этого специализированные пакеты имеют встроенные языки программирования, в частности, в MS Office — это Visual Basic for Application (VBA), в MatLab — язык m-файлов. Для разработки качественного приложения в MS Excel экономисту придется отвлечься от экономики и заняться профессиональным программированием в VBA. Поэтому для некоторых задач уместно применять системы компьютерной математики, такие как Maple. Для этих систем разработано много специализированных пакетов для анализа различных оптимизационных задач. Использование подобных программных пакетов, а также традиционных языков программирования для решения всевозможных оптимизационных задач является весьма актуальным для многих приложений. В связи с этим актуальным является сравнительный анализ программных пакетов, обладающих встроенными языками сверхвысокого уровня, и общественных языков программирования для решения линейных оптимизационных задач.
Объектом данной выпускной квалификационной работы являются задачи линейного программирования.
Предметом исследования являются программные продукты и языки программирования, которые используются для решения задач линейного программирования.
Целью работы является сравнительный анализ программных средств для решения линейных оптимизационных задач с перспективой их применения в школьном курсе информатики на профильном уровне.
Для достижения поставленной цели необходимо решить следующие задачи:
- Ознакомится с наиболее популярными классами линейных задач;
- Ознакомится с часто используемыми программными продуктами;
- Выполнить сравнительный анализ программных продуктов на основе набора тестовых задач.
Глава 1 Оптимизационные задачи линейного программирования
1.1. Решение оптимизационных задач линейного программирования
Большое количество планово-производственных и экономических задач связана с распределением каких-либо, как правило, ограниченных ресурсов (сырья, рабочей силы, энергии, топлива и т.д.). Часто распределение ресурсов можно осуществить не единственным образом. Например, данную продукцию можно получить различными способами, по-разному выбирая технологию, сырье, применяя оборудования, организацию процесса. При этом каждый способ распределения ресурсов, оценивается с позиции некоторого критерия (прибыль, объем выпуска продукции и т.д.), характеризуется определенным значением показателя этого критерия. Естественным является намерение найти такой вариант распределения (программу, план), который бы гарантировал наибольший экономический эффект. Такой план называют оптимальным.
Реальные экономические процессы достаточно сложны. При их математическом описании приходится учитывать много различных факторов. Поэтому математическая модель содержит большое число условий ограничений со многими неизвестными. Если неизвестные входят в модель только в первой степени, то задача относится к разделу линейного программирования, в противном случае — в раздел нелинейного программирования. Оптимизационные задачи, в которых нужно учитывать последовательность действий или фактор времени, рассматриваются в разделе динамического программирования. Если в задаче фигурируют параметры, являются случайными величинами, то она относится к задачам стохастической оптимизации.
Предметом исследования математического программирования являются математические модели, связанные в большинстве случаев с определенными экономическими процессами, описывающих экономику предприятия, промышленного объединения, народного хозяйства или отдельных экономических процессов в них.
Математическое программирование – это раздел математики, который разрабатывает теорию и численные методы решения многомерных задач с ограничениями, то есть задач на экстремум функции многих переменных с ограничениями на область изменения этих переменных. В отличие от классической теории экстремальных задач, которая является частью математического программирования, основное внимание уделяется тем задачам, в которых активно участвуют ограничения на область изменения переменных.
1.2 Примеры задач линейного программирования
Задача оптимального производственного планирования
Одной из наиболее распространенных задач данной группы является задача о максимальном выпуске продукции с имеющимися ограниченными запасами сырья при различных технологиях производства. Сюда же можно отнести задачу достижения максимальной рентабельности предприятия при производстве различных видов продукции.
Пример 1. Для изготовления трех видов изделий А, В и С используется токарное, фрезерное, сварочное и шлифовальное оборудование. Затраты времени на обработку одного изделия для каждого из типов оборудования указаны в таблице 1.1. В ней же указан общий фонд рабочего времени каждого из типов используемого оборудования, а также прибыль от реализации одного изделия каждого вида.
Таблица 1.1
Тип оборудования | Затраты времени (станков в час.) На обработку одного изделия вида | Общий фонд рабочего времени оборудования (ч.) | ||
А | В | С | ||
Фрезерное токарное сварочное шлифовальный | 2 1 7 4 | 4 8 4 6 | 5 6 5 7 | 120 280 240 360 |
Прибыль (руб.) | 10 | 14 | 12 |
Требуется определить, сколько изделий и какого вида нужно изготовить предприятию, чтобы прибыль от их реализации была максимальной. Составить математическую модель задачи.
Задача об оптимальном составе смеси
Достаточно широкий класс задач программирования составляют так называемые задачи на составление смесей или задачи на использование заменителей.
Пример 2. При откорме животных каждое животное ежедневно должен получать не менее 60 единиц питательного вещества А, не менее 50 единиц вещества В и не менее 12 единиц вещества С. Указанные питательные вещества содержатся в трех видах корма. Состав единиц питательных веществ в 1 кг каждого из видов корма приведен в таблице 2.2:
Таблица 2.2
Составить дневной рацион, обеспечивающий получение необходимого количества питательных веществ при минимальных денежных затратах, если цена 1 кг корма I вида составляет 9 коп., Корма II вида — 12 коп. и корма III вида — 10 коп.
Задача об оптимальном плане перевозок
Эту задачу часто называют транспортной. В простом варианте транспортная задача возникает при необходимости наиболее рационального перевозки некоторого однородного груза. При этом потребителям безразлично, из каких пунктов он поступает, важно, чтобы был удовлетворен спрос, а каждый поставщик имеет возможность поставлять груз любому потребителю. Обратные перевозки не предвидятся.
Пример 3. В трех пунктах отправления сосредоточен однородный груз в количествах, соответственно равных 420, 380 и 400 т. Этот груз необходимо перевезти в три пункта назначения в количествах, соответственно равных 260, 520 и 420 т. Стоимости перевозок 1 т груза с каждого пункта отправления в каждый пункт назначения известны величинами и задаются матрицей
Найти план перевозок, обеспечивающий вывоз имеющегося в пунктах отправления и завоз необходимого в пункты назначения груза при минимальной общей стоимости перевозок.
Задача об оптимальном размещении производства. Это одна из важных модификаций транспортной задачи.
Математическая модель задачи:
при ограничениях:
где ci – затраты на производство единицы продукции на действующем предприятии; E – нормативный коэффициент эффективности капитальных вложений; ki – капитальные удельные вложения в i-ое предприятие; xij – искомый объем перевозок продукции i-го поставщика j-му потребителю; ai – мощность i-го предприятия-поставщика; bj – спрос j-го потребителя;
Эта модель представляет собой открытую транспортную задачу, которая приводится к закрытой введением условного потребителя. Поставщиков, которые в оптимальном плане «прикрепились» к условному потребителю, использовать нецелесообразно. Если это относится к проектируемому предприятию, то соответствующий вариант отбрасывается, как нерациональный.
Если же к условному потребителю «прикрепилось» какое-либо действующее предприятие, то следует рассмотреть вопрос о целесообразности его дальнейшей эксплуатации. Как правило, в оптимальный план попадают действующие предприятия.
Приведенные затраты на единицу продукции на этих предприятиях ниже, чем на проектируемых. Здесь к затратам на производство продукции добавляются капитальные затраты.
Основная трудность при решении такого рода задач заключается в возможности получения нецелочисленных решений, когда в оптимальном плане часть мощности какого-либо поставщика относится на действительных, а часть – на условных потребителей. В таких случаях приходится останавливаться на приближенных решениях.
Пример 4. Два действующих предприятия А1 и А2 имеют дневную производительность 240 и 360 единиц продукции. Предприятия обеспечивают трех потребителей с потребностями 220, 280 и 200 единиц продукции. Недостающий прирост мощности планируется за счет реконструкции первого предприятия А1 и (или) строительства нового предприятия А3. Себестоимость единицы продукции на действующих предприятиях 3,5 и 3 тыс. руб., после реконструкции действующего предприятия – 3 тыс. руб., в результате строительства нового предприятия – 2,5 тыс. руб. Удельные капитальные затраты на реконструкцию – 2 тыс. руб., а на строительство – 3,5 тыс. руб. Матрица транспортных затрат за доставку единицы продукции известна:
Определить оптимальный план перевозок и прироста мощностей.
Решение:
Каждому проектируемому варианту прироста мощности выделяем отдельную строку и даем недостающую мощность 100 ед. Затраты для действующих предприятий складываются из затрат на производство единицы продукции и транспортировку ci + cij; для вариантов реконструкции и строительства учитываются еще удельные капитальные затраты: ci + cij + Eki. Первоначальный опорный план X0 составляем по методу минимальной стоимости. Последовательность заполнения клеток: (2, 2); (2, 1); (1, 1); (4, 3); (1, 3); (3, 3); (3, 4)
Вычисляем стоимость этого плана:
Z0 = 140 × 6,5 + 100 × 8,5 + 80 × 6 + 280 × 6 + 0 × 10 + 100 × 0 + 100 × 80 = 4720.
Задачу решаем методом потенциалов. Последовательность определения потенциалов: v1 = 0; u1 = 6,5; u2 = 6; v2 = 0; v3 = 2; u3 = 8; u4 = 6; v4 = – 8.
Последовательность определения оценок незанятых клеток:
D12 = – 3; D14 = – 1,5; D23 = 1; D24 = – 2; D31 = 0; D32 = – 3; D41 = – 4; D42 = – 5;
D44 = – 2.
План X0 не является оптимальным, так как содержит положительную оценку D23 = 1, строим для нее цикл: (2, 3) – (2, 1) – (1, 1) – (1, 3) – (2, 3).
Свободную клетку помечаем знаком + и далее чередуем знаки по вершинам контура.
Величина перемещаемой поставки равна x = min{xij} = min{80, 100} = 80. После перераспределения объемов поставок по контуру, получим новый план X1 при этом целевая функция Z уменьшится на величину: Dz = D23 × x = 1 × 80 = 80.
Из таблицы оптимального плана получаем, что оптимальным вариантом прироста мощности является вариант строительства нового предприятия, так как вариант реконструкции приходится на «фиктивного» потребителя.
Полученное оптимальное решение является целочисленным, т.е. все мощности предприятий не дробятся между реальными и фиктивными потребителями.
- Задача динамики производства и создания запасов. Эта задача заключается в оптимальном распределении некоторой продукции, и ее запасов. В условиях действующего предприятия всякое изменение объема выпуска продукции связана с дополнительными затратами. Хранение готовой продукции также требует определенных затрат. В случаях, когда спрос на готовую продукцию в отдельные отрезки времени не постоянен, возникает потребность поиска такого компромиссного плана выпуска, при котором суммарные затраты на расширение и свертывания производства, а также на хранение остатков продукции были бы минимальными при условии своевременного и полного удовлетворения потребностей.
- Задача о назначениях.
Одним из ответвлений транспортной задачи является задача о назначениях, которая подразумевает равенство пунктов производства и пунктов, а поэтому таблица является квадратной. Помимо этого каждый пункт имеет объем потребностей, который равен 1, в свою очередь величина предложения тоже равна 1. Чтобы решить данную задачу можно воспользоваться методами решения задач линейного программирования, а можно непосредственно обратиться к методу решения транспортной задачи.
Стохастическая задача комплектования станочного парка
В предыдущем параграфе были рассмотрены примеры задач линейного программирования. Во всех этих задачах нужно найти максимум или минимум линейной функции при условии, что ее переменные приобретают неотрицательные значения и удовлетворяют некоторой системе линейных уравнений или линейных неравенств или системе, содержащей как линейные неравенства, так и линейные уравнения. Каждая из этих задач является частным случаем общей задачи линейного программирования.
1.3 Общая и основная задачи линейного программирования
Общей задачей линейного программирования называется задача, которая заключается в определении максимального (минимального) значения линейной функции от нескольких переменных
с учетом наложенных на нее ограничений вида
где aij , bi , cj — заданные постоянные величины и k ≤ m.
Функция (1.1) называется целевой функцией (или линейной формой) задачи (1.1) — (1.4), а условия (1.2) — (1.4) — ограничениями данной задачи.
Стандартной (или симметричной) задачей линейного программирования называется задача, которая заключается в определении максимального значения функции (1.1) при выполнении условий (1.2) и (1.4), где k = m и l = n.
Канонической (или основной) задачей линейного программирования называется задача, которая заключается в определении максимального значения функции (1.1) при выполнении условий (1.3) и (1.4), где k = 0 и l = n.
Совокупность чисел X = (x1, x2, …, xn), удовлетворяющих ограничениям задачи (1.3) — (1.4), называется допустимым решением (или планом).
План X` = (x1`, x2`, …, xn` ), при котором целевая функция задачи (1.1) приобретает своего максимального (минимального) значения, называется оптимальным.
Значение целевой функции (1.1) при плане X будем обозначать через F(X). Итак, X` — оптимальный план задачи, если для любого X выполняется неравенство F(X) ≤ F(X`) [соответственно F(X) ≥ F(X`)].
Указанные выше три формы задачи линейного программирования эквивалентны в том смысле, что каждая из них с помощью несложных преобразований может быть переписана в форме другой задачи. Это означает, что если есть способ нахождения решения одной из указанных задач, то тем самым может быть определен оптимальный план любой из трех задач.
Чтобы перейти от одной формы записи задачи линейного программирования в другую, нужно в общем случае уметь, во-первых, сводить задачу минимизации функции к задаче максимизации, во-вторых, переходить от ограничений-неравенств к ограничениям-равенства и наоборот, в-третьих, заменять переменные, которые не удовлетворяют условиям не отрицательности.
В том случае, когда требуется найти минимум функции F = c1x1 + c2x2 + … + cnxn , можно перейти к нахождению максимума функции F = – F = – c1x1 – c2x2 – … – cnxn , поскольку min F = – max (– F).
Ограничение-неравенство исходной задачи линейного программирования, имеет вид « », Можно превратить в ограничения-равенства добавлением к его левой части дополнительной искусственной переменной, а ограничения-неравенства вида« »- в ограничении-равенство вычитанием из его левой части дополнительной искусственной переменной. Таким образом, ограничение-неравенство
превратится в ограничения-равенства
а ограничение-неравенство
— в ограничении-равенство
В то же время каждое уравнение системы ограничений
можно записать в виде неравенств:
Число дополнительных неотрицательных переменных, вводимых при преобразовании ограничений-неравенств в ограничения-равенства равна числу преобразуемых неравенств
Отметим, наконец, что если переменная xk НЕ удовлетворяет условию не отрицательности, то ее следует заменить двумя неотрицательными переменными uk и vk, приняв xk = uk – vk.
1.4 Симплекс-метод
Суть данного метода заключается в том, что происходит пошаговый переход между различными оптимальными планами. Данный переход является возможным, благодаря уже полученному, начальному плану. Теперь стоит привести задачу, которая покажет, что оптимальное решение можно получить напрямую.
Рассмотрим функцию для которой необходимо найти максимальное значение:
при следующих ограничениях:
здесь , и — заданные постоянные числа
Векторная форма поставленной задачи будет иметь вид: определить максимум функции
при условии
где
поскольку
то по определению опорного плана X = (b1; b2; …; 0; …; 0) является опорным планом для описанной задачи (последние n – m компонент вектора X равны нулю). Чтобы определить опорный план стоит обратиться к системе векторов, которая составляет базис m-мерного пространства. Каждый из векторов представим своей линейной комбинацией из векторов, входящих в данный базис.
Пусть
положим поскольку векторы P1, P2, …, Pm — единичные, то xij = aij i zj = , а Dj = .
Теорема 1.Признак оптимальности опорного плана. Опорный план X` = (x`1; x`2; …; x`m; 0; 0; …; 0) задачи линейного программирования считается оптимальным, если выполняется условие Dj ≥ 0 для любого j(j = 1, n).
Теорема 2. Целевая функция задачи линейного программирования будет неограниченной, если Dk < 0 и для некоторого j = k среди чисел aik(i = нет положительных (aik ≤ 0).
Теорема 3. Если опорный план X для задачи линейного программирования является невырожденным и Dk < 0, но среди чисел aik существуют положительные (не все aik ≤ 0), то можно найти опорный план X` такой, что F(X`) > F(X).
Доказательство данных теорем можно найти в учебнике Таха.Х.А. (глава 3, ст.95-108)
Глава 2 Обзор программных приложений для решения линейных и нелинейных задач
2.1 Средства оптимизации в Microsoft Excel
Microsoft Excel — это программа выполнения для расчетов и управления так называемыми электронными таблицами.
Под электронной таблицей понимают основной компонент, который используется в обработке, а также анализе численных данных в различных офисных приложениях. Несмотря на прямую связь таблиц с числами и различными операциями, они пригодны для решения задач оптимизации, так как помогают автоматизировать обработку полученных при исследовании данных.
MS Excel может выполнять достаточно сложные математические вычисления, которые используют данные из разных мест таблицы. Чтобы выполнять различного рода расчеты, существует строка в которой вводятся формулы. После введения формулы в определенную ячейку выводится конечный конечный результат. В самом MS Excel организовано большое количество формул, начиная от самых простых математических операций и заканчивая сложнейшими формулами для финансовых расчетов.
Одной из ключевых особенностей MS Excel является то, что если в ячейке изменить данные, то произойдет автоматический пересчет всех показателей, которые фигурируют в таблице, поэтому данный пакет часто используют для учета или контроля чего либо. Также в MS Excel встроена функция построения графиков и других графических объектов, к примеру диаграмм и гистограмм.
В Excel задачи оптимизации решаются в основном двумя методами:
- Подбор параметра – в таблице находится значение параметра при котором формула дает желаемый результат.
- Поиск решения – это специальная надстройка MS Excel, которая позволяет решать оптимизационные задачи, путем изменения данных в целевых ячейках. Цели бывают разные, это может быть и нахождение максимального и минимального значения целевой функции или же достижение некоторого целевого значения. Проблема решается путем регулировки входных критериев или ограничений, определенных пользователем.
2.2 Методы решения оптимизационных задач в MathCAD
MathCAD – система автоматизированного проектированная, предназначенная для инженерного использования. Достаточно известная система, которая позволяет как и MS Excel проводить сложные расчеты, а также выполнять различные документы, содержащие различные формулы и схемы, а также графические объекты. Данный пакет позволяет более наглядно интерпретировать информацию.
В MathCAD оптимизационные задачи разделяют на два класса:
Задачи безусловной оптимизации (без ограничений).
В данной классе используются функции такие, как:
- Minimize(f,<список параметров>) – вычисление точки минимума;
- Maximize(f,<список параметров>) – вычисление точки максимума,
где f – имя минимизируемого функционала, определенного до обращения к функции; <список параметров> — содержит перечисление имен параметров, относительно которых решается оптимизационная задача.
Задачи условной оптимизации (с ограничениями).
Для решения задач второго класса также используются функции Minimize и Maximize, но они входят в блок Given и ограничения ставятся в виде равенств или неравенств, определяющие допустимую область значений параметров оптимизации.
MathCAD позволяет выполнять следующие операции:
- вычисления сумм, произведений, рядов, пределов, степеней, корней, производных, интегралов и прочих алгебраических структур;
- работа с комплексными числами, матрицами и векторами;
- решение линейных, нелинейных и дифференциальных уравнений и систем;
- построение графиков и диаграмм;
- проведение статистического анализа и др.
Все производимые вычисления напрямую зависят от поставленных целей пользователя, поэтому можно получать расчеты моментально, а можно сделать программу, которая будет выполнять расчет по команде. Также можно производить различные изменения параметров и переменных, которые участвуют в процессе расчета, таким образом повышая наглядность.
Пользователь может сразу видеть все данные, которые вводит, а следовательно и результат появляется мгновенно, что оптимизирует работу и избавляет от долгих вычислений вручную. MathCAD имеем огромную базу функций и операторов, а также встроенных алгоритмов, которые помогают решать задачи практически любого уровня сложности.
2.3 Библиотеки Python для решения линейных и нелинейных систем алгебраических уравнений.
В языках программирования высокого уровня есть много функций для решения аналитических задач.
Python является одним из самых известных языков программирования для анализа данных. Интерактивная природа этого языка и его научные системные библиотеки делают его предпочтительным для разработки аналитических программ и изучения скрытых фактов в наборах данных [1-2].
Ориентируясь на научное компьютерное сообщество, легко заметить, как увеличивается использование языка Python (начиная с начала 2000 года), в обеих отраслях: создание аналитических приложений и академических исследованиях [3].
Python имеет свою научную экосистему, а также много полезных библиотек:
Numpy — это базовая библиотека для базовых структур данных и основной пакет в языке Python. Зная, что все входные данные в Python представлены как массив numpy; легко сделать вывод, что все библиотеки в этом языке устанавливаются поверх этого пакета [2-3].
SciPy: пакет с коллекцией эффективных алгоритмов для решения задач линейной алгебры, работы с разреженным матричным представлениями, специальные функции и основные статистические функции [2].
2.4 Maple. Система компьютерной алгебры
Maple является системой нового поколения, так как позволяет решать практически любые задачи, которые можно поставить перед наукой. Интерфейс программы позволяет одновременно совершать множество операций, анализировать большие объемы данных.
Основой программы Maple является достаточно сложный и огромный по мощности язык программирования, который включает в себя различные библиотеки по математическим предметам [8-11].
Для решения задач оптимизации используется пакет Optimization (>with(Optimization);), который представлен более модернизированными алгоритмами. С помощью данного пакета можно решать задачи нелинейного программирования, а также квадратичного программирования.
Пакет использует при вычислениях алгоритмы NAG. Также пакет имеет 4 решателя уравнений с заданными ограничениями, реализующих следующие методы:
- LPSolve – линейное программирование;
- LSSolve – улучшенная реализация метода наименьших квадратов;
- QPSolve – квадратичное программирование;
- NLPSolve – нелинейное программирование.
Также для решения оптимизационных задач используется пакет simplex (>with(simplex);), в котором имеется возможность выполнять оценки промежуточных этапов симплексного алгоритма, например, определить базисные переменные.
simplex содержатся встроенные функции такие, как:
- minimize – находит максимум целевой функции;
- maximize – находит минимум целевой функции.
2.5 IBM ILOG CPLEX STUDIO
IBM ILOG CPLEX Optimizer — это инструмент для решения задач линейной оптимизации, обычно называемые проблемами ЛП.
IBM ILOG CPLEX Optimization Studio предлагает быструю разработку и развертывание моделей оптимизации посредством отладки, тестирования, настройки и генерации приложений.
CPLEX также может решать некоторые дополнительные задачи ЛП:
- Сетевые задачи, особый случай задач ЛП, которые CPLEX может решить гораздо быстрее.
- Задачи квадратичного программирования (КП), где целевая функция ЛП расширена добавлением включить квадратичных условий.
- Задачи квадратичного программирования, которые включают квадратичные условия среди ограничений.
- Задачи смешанного целочисленного программирования.
Компоненты CPLEX: CPLEX Interactive Optimizer, Concert Technology, Callable Library. CPLEX поставляется в различных формах для удовлетворения широкого круга потребностей пользователей:
- CPLEX InteractiveOptimizer — это исполняемая программа, которая может читать задачи в интерактивном режиме или из файлов в определенных стандартных форматах, решать задачу, и представлять решение в интерактивном режиме или в текстовом файле. Программа состоит из файла cplex.exe на платформах Windows или cplex для UNIX-платформ.
- ConcertTechnology — это набор библиотек классов C ++, Java и .NET, предлагающих API, которые включают средства моделирования, позволяющие программисту встраивать оптимизаторы CPLEX в приложения C ++, Java или .NET.
- CPLEX CallableLibrary — это библиотека C, которая позволяет программисту встраивать оптимизаторы CPLEX в приложения, написанные на C, VisualBasic, FORTRAN или на любом другом языке, который может вызывать функции C. Библиотека предоставляется в файлах cplexXXX.lib и cplexXXX.dll на платформах Windows, а также в libcplex.a, libcplex.so и libcplex.sl на платформах UNIX.
- Python API для CPLEX — полнофункциональный интерфейс программирования приложений Python, поддерживающий все аспекты оптимизации CPLEX.
- Коннектор CPLEX для MathWorks MATLAB позволяет пользователю определять проблемы оптимизации и решать их в MATLAB, используя либо MATLAB Toolbox, либо класс CPLEX на языке MATLAB.
CPLEX Optimization Studio предоставляет наиболее эффективный способ построения моделей оптимизации. Интегрированная среда разработки (IDE), язык описательного моделирования и алгоритмы позволяют поддерживать весь процесс разработки модели.
CPLEX Optimization Studio включает в себя:
Язык моделирования OPL, который позволяет разрабатывать, отлаживать, тестировать и настраивать модели оптимизации.
DOcplex, слой моделирования Python для CPLEX и CP Optimizer.
Dataandrunmanagemen: разделение модели / данных позволяет модели переключаться между источниками данных, облегчая миграцию на этапах тестирования и развертывания.
Обнаружение и отображение конфликтов и рекомендуемое разрешение конфликтов: обнаружение и отображение конфликтующих ограничений в недопустимых моделях с помощью средства уточнения конфликтов CPLEX или CP Optimizer.
Отслеживание выполнения и профилирование в IDE. Полный доступ к файлам журналов CPLEX и CP Optimizer позволяет отслеживать ход решения. Используйте профилировщик для понимания использования памяти и времени на разных этапах процесса выполнения.
Автоматическая настройка производительности: позволяет использовать инструмент настройки CPLEX для автоматической настройки производительности модели математического программирования.
Интерфейсы прикладного программирования: доступ к оптимизаторам CPLEX Simplex, Barrier, MIP и CP через среду IDE CPLEX Studio, API-интерфейс ConcertTechnology в C ++, Java или Microsoft .NET. Кроме того, вы можете получить доступ к CPLEX Simplex, Barrier и MIP Optimizer через библиотеку CPLEX Callable, Python и MATLAB.
2.6 Сравнительный анализ программ решения оптимизационных задач
На сегодня, имеется тенденция к стремительному росту научно-технического прогресса и в создании вычислительных пакетов тоже. Стоит выделить основные преимущества и недостатки данных программ и сделать на основе полученной информации оптимальный выбор программы, для решения задач оптимизации.
2.6.1 MS Excel
Пожалуй одним из главных преимуществ данной программы является изобилии различных встроенных функций, которые позволяют за сравнительно малые временные затраты осуществить большие по объему вычисления. Под встроенной функцией понимается формула, которая уже заранее подготовлена к работе. Перед тем как вводить формулу в строке указывается знак «=». В MS Excel встроено несколько типов функций, что позволяет решать обширный круг задач и тем самым оптимизируя процесс работы. С помощью таблично заданных значений можно достаточно легко пользоваться статистическими функциями, благодаря которым происходит экономический анализ.
В MS Excel реализуется оперирование понятиями пространства и отношения, которое позволяет посредством задания определенных связей связать данные в ячейках. То есть программирование как таково не используется, что только упрощает работу с данными.
Что касается недостатков, их несколько:
Во-первых, формулы, которые прописываются в ячейках при обильном их количестве вызывают затруднения при работе. Этот факт значительно затрудняет понимание формул вне контекста, а также затрудняет проверку корректности программы.
Во-вторых, реализация сложных расчетов требует необычайной концентрации, так как одна ошибка может пагубно сказаться на всех предстоящих расчетах, чтобы не допустить этого используют именованные ячейки и другие приспособления, которые помогают не потерять связь между ячейками.
В-третьих, табличные процессоры зависимы от размерности. При действиях с строками и столбцами нужно проделывать большое количество изменений, что требует больших временных затрат.
Данная программа изучается ещё в школе на уроках информатики, поэтому ученики имеют начальное представление о том, как устроена эта программа, с какими объектами нужно работать и соответственно при решении оптимизационных задач детям будет проще ориентироваться, поэтому данная программа является первым кандидатом на решение подобного рода задач.
2.6.2 Mathcad
Рассмотрим основные преимущества системы MathCAD.
- Естественный математический язык.
- Наглядность.
- Хорошая диагностика ошибок.
- Высокая точность вычислений.
- Реализация многих стандартных функций вычислительной математики.
- Возможности символьных математических преобразований.
Что касается недостатков системы Mathcad, то к ним можно отнести следующее:
— ограниченные возможности существующих операторов;
— трудности реализации сложных алгоритмов.
Из рассмотренных пунктов следует, что система MathCAD не позволяет разрабатывать сложные программы, но она очень удобна для тестирования их отдельных частей. Следовательно, основное применение MathCAD — это проведение несложных расчетов и исследований, а также тестирование составных частей больших вычислительных программ, написанных на современных языках высокого уровня, например, на С++ .
2.6.3 Maple
Данная программа позволяет выполнять различного рода исследования и является очень популярной среди ученых. Символьный анализатор это самый мощный компонент данной программы. Что касается структуры программы, то она состоит из ядра, а именно из компонентов, которые созданы на базе языка С, а также имеют достаточно профессиональную оптимизацию, библиотека, которая создана на специальном Maple-языке, также присутствует внешний интерфейс высокого уровня разработки. Основной функцией ядра является обработка и выполнение большого количества операций, библиотека в свою очередь имеет большой арсенал команд, которые выполняются в режиме интерпретации.
К примеру, Maple позволяет создать сложную математическую модель и далее сделать соответствующий код на языке С, который будет отражать работу данной модели.
Таким образом, преимуществами Maple являются: символьные вычисления, которые позволяют получить результат с высоким уровнем точности, также пользователь получает доступ к различным программам, которых нет в других подобных системах, также в программе реализованы различные специальные функции, которые помогают в сложных вычислениях.
Недостатком Maple является специализированный язык записи операторов и программирования.
В школе данную программу не найти так как указывалось ранее, она популярна в научной среде. Ученику будет сложно овладеть языком, который реализован в Maple, а на обучение может уйти слишком много времени. Данная программа может подойти одаренным ученикам у которых есть стремление к самообразованию, они сами смогу изучить все особенности данной программы. Но в обычном курсе она будет непригодная из-за своей сложности, а также потому, что очень мало где преподается программирование, без которого будет тяжело освоить данную программу.
1 2
Комментарии
Оставить комментарий
Валера 14 минут назад
добрый день. Необходимо закрыть долги за 2 и 3 курсы. Заранее спасибо.
Иван, помощь с обучением 21 минут назад
Валерий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Fedor 2 часа назад
Здравствуйте, сколько будет стоить данная работа и как заказать?
Иван, помощь с обучением 2 часа назад
Fedor, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Алина 4 часа назад
Сделать презентацию и защитную речь к дипломной работе по теме: Источники права социального обеспечения
Иван, помощь с обучением 4 часа назад
Алина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Алена 7 часов назад
Добрый день! Учусь в синергии, факультет экономики, нужно закрыт 2 семестр, общ получается 7 предметов! 1.Иностранный язык 2.Цифровая экономика 3.Управление проектами 4.Микроэкономика 5.Экономика и финансы организации 6.Статистика 7.Информационно-комуникационные технологии для профессиональной деятельности.
Иван, помощь с обучением 8 часов назад
Алена, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Игорь Петрович 10 часов назад
К утру необходимы материалы для защиты диплома - речь и презентация (слайды). Сам диплом готов, пришлю его Вам по запросу!
Иван, помощь с обучением 10 часов назад
Игорь Петрович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Инкогнито 1 день назад
У меня есть скорректированный и согласованный руководителем, план ВКР. Напишите, пожалуйста, порядок оплаты и реквизиты.
Иван, помощь с обучением 1 день назад
Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Илья 1 день назад
Здравствуйте) нужен отчет по практике. Практику прохожу в доме-интернате для престарелых и инвалидов. Все четыре задания объединены одним отчетом о проведенных исследованиях. Каждое задание направлено на выполнение одной из его частей. Помогите!
Иван, помощь с обучением 1 день назад
Илья, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Alina 2 дня назад
Педагогическая практика, 4 семестр, Направление: ППО Во время прохождения практики Вы: получите представления об основных видах профессиональной психолого-педагогической деятельности; разовьёте навыки использования современных методов и технологий организации образовательной работы с детьми младшего школьного возраста; научитесь выстраивать взаимодействие со всеми участниками образовательного процесса.
Иван, помощь с обучением 2 дня назад
Alina, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Влад 3 дня назад
Здравствуйте. Только поступил! Операционная деятельность в логистике. Так же получается 10 - 11 класс заканчивать. То-есть 2 года 11 месяцев. Сколько будет стоить семестр закончить?
Иван, помощь с обучением 3 дня назад
Влад, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Полина 3 дня назад
Требуется выполнить 3 работы по предмету "Психология ФКиС" за 3 курс
Иван, помощь с обучением 3 дня назад
Полина, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Инкогнито 4 дня назад
Здравствуйте. Нужно написать диплом в короткие сроки. На тему Анализ финансового состояния предприятия. С материалами для защиты. Сколько будет стоить?
Иван, помощь с обучением 4 дня назад
Инкогнито, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Студент 4 дня назад
Нужно сделать отчёт по практике преддипломной, дальше по ней уже нудно будет сделать вкр. Все данные и все по производству имеется
Иван, помощь с обучением 4 дня назад
Студент, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Олег 5 дня назад
Преддипломная практика и ВКР. Проходила практика на заводе, который занимается производством электроизоляционных материалов и изделий из них. В должности менеджера отдела сбыта, а также занимался продвижением продукции в интернете. Также , эту работу надо связать с темой ВКР "РАЗРАБОТКА СТРАТЕГИИ ПРОЕКТА В СФЕРЕ ИТ".
Иван, помощь с обучением 5 дня назад
Олег, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Анна 5 дня назад
сколько стоит вступительные экзамены русский , математика, информатика и какие условия?
Иван, помощь с обучением 5 дня назад
Анна, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Владимир Иванович 5 дня назад
Хочу закрыть все долги до 1 числа также вкр + диплом. Факультет информационных технологий.
Иван, помощь с обучением 5 дня назад
Владимир Иванович, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Василий 6 дней назад
сколько будет стоить полностью закрыть сессию .туда входят Информационные технологий (Контрольная работа, 3 лабораторных работ, Экзаменационный тест ), Русский язык и культура речи (практические задания) , Начертательная геометрия ( 3 задачи и атестационный тест ), Тайм менеджмент ( 4 практических задания , итоговый тест)
Иван, помощь с обучением 6 дней назад
Василий, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф
Марк неделю назад
Нужно сделать 2 задания и 1 итоговый тест по Иностранный язык 2, 4 практических задания и 1 итоговый тест Исследования рынка, 4 практических задания и 1 итоговый тест Менеджмент, 1 практическое задание Проектная деятельность (практикум) 1, 3 практических задания Проектная деятельность (практикум) 2, 1 итоговый тест Проектная деятельность (практикум) 3, 1 практическое задание и 1 итоговый тест Проектная деятельность 1, 3 практических задания и 1 итоговый тест Проектная деятельность 2, 2 практических заданий и 1 итоговый тест Проектная деятельность 3, 2 практических задания Экономико-правовое сопровождение бизнеса какое время займет и стоимость?
Иван, помощь с обучением неделю назад
Марк, здравствуйте! Мы можем Вам помочь. Прошу Вас прислать всю необходимую информацию на почту и написать что необходимо выполнить. Я посмотрю описание к заданиям и напишу Вам стоимость и срок выполнения. Информацию нужно прислать на почту info@дцо.рф