использование современных информационных технологий для решения оптимизационных задач при подготовке будущих специалистов

ГУМАНИТАРНЫЕ ИССЛЕДОВАНИЯ

удк 518.1

А. В. Болотский, Е. Ю. Бельдягина, О. М. Губанова

ИСПОЛЬЗОВАНИЕ СОВРЕМЕННЫХ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ ДЛЯ РЕШЕНИЯ ОПТИМИЗАЦИОННЫХ ЗАДАЧ ПРИ ПОДГОТОВКЕ БУДУЩИХ СПЕЦИАЛИСТОВ

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

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

Введение

Ранее студенту - пользователю ПК для выполнения сложных математических расчетов приходилось изучать методы вычислительной математики, программирование на языках высокого уровня: Бейсик, Паскаль и др. Эти проблемы для ученого и инженера, физика, химика, математика стали исчезать лишь после появления интегрированных математических пакетов (символьных вычислений) типа Mathematica, Derive, Maple, MathCAD.

Maple - это самый мощный в мире универсальный математический пакет для аналитических и численных расчетов, включающий более трех тысяч встроенных функций (готовых алгоритмов). Для пакета Mathematics разработано большое количество приложений в специальных областях. Пакет Derive отличается великолепными графическими возможностями. Для решения математических задач существуют и иные весьма распространенные пакеты: Matlab, Statistica и др.

Отметим, что в сети Internet имеется образовательный математический сайт exponen-ta.ru, посвященный использованию универсальных математических пакетов (MathCAD, Matlab, Maple, Mathematica, Statistica, ModelVisionStudium и др.) в образовании и науке. При этом возникает проблема выбора математического пакета с наиболее оптимальными инструментальными и педагогическими возможностями.

1. Обзор математического пакета MathCAD и основные шаги симплекс-метода

Остановимся на рассмотрении математического пакета MathCAD и его образовательном потенциале, который, на наш взгляд, в наибольшей мере приспособлен к обуче-

© Болотский А. В., Бельдягина Е. Ю., Губанова О. М., 2019.

нию студентов решению оптимизационных задач. Помимо описания решения математических задач с помощью привычных математических соотношений, наличия великолепного пользовательского интерфейса и мощной графики (текстового, графического, формульного редакторов), система МаШСАБ фирмы МаШБоЙ www.mathsoft.com имеет возможности символьной (аналитической) математики. Здесь реализовано также удобное и наглядное визуально ориентированное программирование, при котором задание формируется на естественном математическом языке общения с системой, а программа составляется автоматически по заданию пользователя. Данный пакет имеет огромные возможности для быстрого и точного нахождения решения задач оптимизации как линейного, так и нелинейного программирования, а также для геометрической иллюстрации задач (там, где это возможно) [1].

Рассмотрим стандартную задачу линейного программирования и попробуем реализовать алгоритм ее решения в пакете МаШСАБ, в том числе используя встроенный язык программирования.

Один из самых известных методов - так называемый симплекс-метод. Слово «симплекс» в переводе означает «простой». Этот метод был разработан Дж. Данцигом в 1949 г.

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

Пусть система ограничений канонической задачи линейного программирования имеет вид

11x1 +.... + a1 pxp + xp+1 = ß1,

'21 x1 + .... + "a2pxp ' + xp+2 = = (2,

m1 x1 + .... - l_ampxp + x = ßm

x > 0, ... , x > 0;

где ßj > 0, ß2 > 0,..., ßm > 0 и p + m = n.

Требуется найти решение x = (x1,...., xp, xp+1,..., xp+m), при котором целевая функция ф(x) = 0 принимает минимальное (соответственно максимальное) значение, т.е. ф( x) = y0 -y1x1 -...-ypxp ^ min (соответственно ф( x) = y0 -у^ -... -ypxp ^ max).

Переменные xp+1,..., xp+m называются базисными, остальные n - m = p переменных x1,..., xp называются свободными [2].

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

1) число переменных равно рангу матрицы A (равно m);

2) каждая из этих m переменных встречается только в одном из m уравнений системы;

3) коэффициент при каждой из этих переменных равен плюс 1.

Базисные переменные системы образуют ее базис.

Допустимое решение системы называется базисным, если все его свободные переменные равны нулю.

Вычисления по симплекс-методу в ходе обучения удобно оформлять в виде таблицы. Такая таблица называется симплексной. Нашей задаче будет соответствовать следующая симплексная таблица (табл. 1).

Таблица 1

В ь Х1 хр Хр + 1 Хр + 2 Хр + т

Хр + 1 в1 аи а1р 1 0 0

Хр + 2 в2 аи а21 0 1 0

Хр + т вт ат1 ат1 0 0 1

ф Уо У1 Ур 0 0 0

Условимся столбцы В, Ь, х1,..., хр+т называть соответственно столбцами базисных

переменных, свободных членов, переменных х1,..., хр+т. Последнюю строку таблицы

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

Таблица 2

О0 О1 Ор Ор+1 Ор+т

В ь Х1 Хр Хр + 1 Хр + т

Ор + 1 Хр + 1 в1 аи а1р 1 0

Ор + т хр+т вт ат1 атр 0 1

ф Ор+тв1 +... ... + Ор + т вт + + О0 Ор + 1а11 +.•• .••+ Ор + т ат1 -- О1 Ор + 1 а1р +.•• .••+ Ор + т атр - - ор 0 0

Далее, используя соответствующие теоремы о нахождении базисного решения, либо останавливаем поиск решения, либо продолжаем со студентами процесс построения соответствующих таблиц по следующему алгоритму:

1) в исходной симплексной таблице выделяют ключевой столбец. Таким может быть столбец любой свободной переменной, содержащий хотя бы один положительный элемент;

2) в ключевом столбце выбирают ключевое отношение и ключевой элемент. Ключевой элемент указывает на ту переменную, которая выводится из базиса;

3) заполнение следующей симплексной таблицы начинают с записи новых базисных переменных (столбец В), затем - ключевой строки;

4) все элементы остальных строк новой таблицы, включая и индексную, вычисляются по так называемому правилу двух перпендикуляров [3, 4].

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

2. Практическое применение пакета Ma.th.CAD для решения задач оптимизации

Рассмотрим следующую задачу: при заданных условиях-ограничениях определить максимальное значение целевой функции

x1 + 2 x2 < 6 , 2x1 + x2 < 8 , < - x1 + x2 < 1, Х1 < 2,

x1 > 0, x2 > 0 x) = 3x1 + 2x2 ^max.

Предлагаем студентам решить задачу в системе MathCAD табличным симплекс-методом.

В линейном программировании, в частности в симплекс-методе, для преобразования симплексной таблицы на каждой итерации целесообразно использовать правило прямоугольника, в котором используется метод Жордано - Гаусса.

Прямоугольник строится по старой симплекс-таблице таким образом, что одну из его диагоналей образует пересчитываемый j и ключевой Ma b элементы. Вторая диагональ определяется однозначно. Для нахождения нового элемента N, j из элемента Mi j вычитается Mi b • Ma j - произведение элементов противоположной диагонали, деленное на ключевой элемент Ma b.

В ходе учебного процесса актуализируем подпрограмму JG(M,a,b), реализующую преобразование Жордано - Гаусса. Для этого нажатием на панели Programming (Программирование) кнопки AddLine (Добавить линию) студентам предлагается создать программный модуль. В появившемся местозаполнителе вводится соответствующий программный код.

Следует специально обратить внимание обучающихся на то, как в программировании для задания матриц используются вложенные циклы (рис. 1, 2).

гштг™ 1 столбцы и строки матрицы

Задаем матрицу М (массив) rows(M) - число строк в массиве М. cols(M) - число столбцов в ма:сиве М

каждый элемент ключевой строки i делим на ключевой элемент (а,Ь) матрицы М

иначе находим элемент новой симплекс-таблицы по правилу прямоугольника

Таким образом, решение исходной задачи: maxxO) = 10 при xO = (2; 2). А теперь рассмотрим пример реализации графического метода решения задачи линейного программирования в системе MathCAD.

Для этого поставим перед студентами следующую задачу: найти допустимую область задачи линейного программирования, определяемую ограничениями

Рис. 1

3х1 - 2х2 > -9, 3х1 + 4х2 > 27, 2х1 + х2 < 14, х1 > 0, х2 > 0,

при которых целевая функция имеет вид ф(х) = х1 + 2х2 ^ тах.

Рис. 2

Решение в МаШСАБ (рис. 3):

Рис. 3

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

уравнений в координатах хОу. Для этого обозначим Х2 в 1-м уравнении через у, (х), а Х1 -

через х и запишем эти уравнения в виде, разрешенном относительно у, (х).

На рис. 3 треугольник, ограниченный прямыми у1 (х), у2 (х), у3 (х), образует

многоугольник допустимых решений.

Задавая различные возрастающие значения константе с, можно добиться того, что прямая хх + 2х2 = с, смещаясь параллельно самой себе, будет проходить через одну из вершин полученного многоугольника допустимых решений.

Из графика студенты видят, что задача имеет единственное решение. Максимум целевой функции достигается в точке пересечения прямых 3 х^ 2 х2 = —9 и 2 х^ + х2 = 14. Далее с помощью системы MathCAD решим следующее задание: определить точку максимума и значения целевой функции в этой точке (рис. 4, 5).

Первый способ

Given

3 x1 - 2x2 = -9

2x1 + х2 = 14 f 19 >

Find(xl ,х2) 7 60 J J

f(xl ,х2) := xl + 2 x2

{19 60 ) fin ах := f — , — fin ах = 19.857 W 1}

Рис. 4 Рис. 5

В первом случае задача решается с помощью вычислительного блока 01уеп...Р1п^ во втором случае - с помощью вычислительного блока 01уеп...шах1ш17е. То есть точка максимума имеет координаты х1 = 2,714, х2 = 8,571.

Значение целевой функции в точке максимума: /(х1,х2) = 19,857 [1].

Заключение

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

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

Библиографический список

1. Очков, В. Ф. МаШСАБ 14 для студентов и инженеров: русская версия / В. Ф. Очков. -Санкт-Петербург : ВЫУ, 2009.

2. Вентцель, Е. С. Исследование операций / Е. С. Вентцель. - Москва : Советское радио,

1972.

3. Зайченко, Ю. П. Исследование операций : сб. задач / Ю. П. Зайченко, С. А. Шумилова. -Киев : Выща шк., 1990.

4. Лунгу, К. Н. Линейное программирование. Руководство к решению задач / К. Н. Лунгу. -Москва : Физматлит, 2005.

Болотский Александр Владимирович, старший преподаватель, кафедра информатики и методики обучения информатике и математике, Пензенский государственный университет. E-mail: a.bolotskiy@mail.ru

Бельдягина Екатерина Юрьевна, старший преподаватель, кафедра высшей и прикладной математики, Пензенский государственный университет. E-mail: belkapnzpgy@mail.ru

Губанова Ольга Михайловна, кандидат педагогических наук, доцент, кафедра информатики и методики обучения информатике и математике, Пензенский государственный университет. E-mail: olga.penza@mail.ru

Образец цитирования:

Болотский, А. В. Использование современных информационных технологий для решения оптимизационных задач при подготовке будущих специалистов / А. В. Болотский, Е. Ю. Бельдягина, О. М. Губанова // Вестник Пензенского государственного университета. - 2019. - № 2 (26). - С. 3-9.