Место информационных технологий в дисциплине «Методы оптимизации»

Автор: Кузнецов Олег Анатольевич, кандидат физико-математических наук, доцент
Балашовский институт Саратовского государственного университета им. Н.Г.Чернышевского
Для решения оптимизационных задач в рамках дисциплины «Методы оптимизации» обосновывается возможность использования пакета Mathlab, при этом основное внимание акцентируется на текстовом интерфейсе данного программного продукта, что позволяет в полной мере реализовывать все оптимизационные численные методы, и наличие пакета Optimization Toolbox, посредством использования которого можно проверять корректность своих вычислений.

 

Место информационных технологий в дисциплине  «Методы оптимизации»

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

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

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

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

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

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

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

Пример функции Mathlab, которая реализует метод золотого сечения, при одномерной условной оптимизации имеет вид:

function[x fval] = Gold(f,a,b,eps)

% Поиск минимума функции f на отрезке [a,b] методом золотого сечения

% Входные параметры: f – функция,  a и b - отрезок поиска, eps - точность

% Выходные параметры: x – оптимальное значение аргумента fval– значение целевой функции в точке минимума

gold1=(sqrt(5)-1)/2; p=a+(b-a)*(1-gold1); q=a+(b-a)*gold1;

while(b-a>eps)

  iffeval(f,p)>feval(f,q)

      a=p;     p=q;      q=a+(b-a)*gold1;     

  else

      b=q;      q=p;      p=a+(b-a)*(1-gold1);    

  end;

end;

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

Использование возможностей данного пакета позволяет проверять корректность работа самостоятельно написанной функции. Тем самым данный пакет может использоваться и для решения оптимизационных задач и для обучения студентов по дисциплине «Методы оптимизации».

Тип выступления  Стендовый доклад и публикация
Уровень образования  Высшее профессиональное
Ключевые слова  Методы оптимизации, математические пакеты MathCad, Mathlab , пакет оптимизации Optimization Toolbox.