Место информационных технологий в дисциплине «Методы оптимизации»
Место информационных технологий в дисциплине «Методы оптимизации»
Оптимизация как раздел математики существует достаточно давно, при этом основной задачей является выбор оптимального, с некоторой точки зрения решения. В настоящее время спектр оптимизационных задач достаточно обширен и разнороден, поскольку он включает в себя задачи из линейного программирования, для решения необходимо знать элементы линейного алгебры, задачи нелинейного программирования, для решения которых уже необходимы знания из математического анализа, а именно дифференциального и интегрального исчисления. Кроме этих, достаточно устоявшихся разделов теории оптимизации, можно выделить такие как вариационное исчисление, оптимальное управление, теория массового обслуживания, теория игр, стохастическое программирование и т.д. которые в настоящее время достаточно интенсивно развиваются.
Методы оптимизации, как научная дисциплина, носит прикладной характер, то есть весь накопленный теоретический материал, в конечном счёте должен быть воплощен в решении прикладной задачи. И с этой точки зрения, методы оптимизации прикладная наука, которая сохраняет этот характер и при преподавании в виде учебной дисциплины. В большинстве учебников по данной дисциплине излагаются и теоретически обосновываются различные числены методы оптимизации, которые учитывают различные особенности исходной постановки. Однако воспользоваться ими при решении реальных оптимизационных задач, бывает затруднительно, поскольку изложение данных алгоритмов не связаны н с одной программной средой.
Конечно, это не является принципиальной проблемой, если имеется навык работы в различных средах и использовании различных языков программирования, поскольку данные алгоритмы вполне можно реализовать на структурном языке программирования, таком как 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. |
|