Лабораторная работа №3. Задачи дискретной и непрерывной оптимизации#
Для решения задач необходимо работать с документацией применяемых библиотек и их функций.
Ниже приведены варианты заданий для подгрупп. Каждая подгруппа выбирает конкретный вариант и договаривается с другими подгруппами, чтобы не было пересечений между подгруппами.
Вариант 1 - Задача о рюкзаке#
Цель - закрепить знания, полученные на лекции по задачам дискретной оптимизации.
Задача - рассмотреть и проанализировать различные подходы к решению задачи о рюкзаке, являющейся задачей дискретной оптимизации.
Решить задачу о рюкзаке методами полного перебора, динамического программирования, жадным алгоритмом и случайным выбором.
В отчёте также отразить особенности, достоинства и недостатки каждого из указанных подходов к решению задачи и сравнить их вычислительную эффективность.
Вариант 2 - Оптимизация трёхступенчатого клина#
Цель - закрепить знания, полученные на лекции по задачам непрерывной оптимизации.
Задача - решить задачу непрерывной оптимизации с ограничениями.
Трёхступенчатый клин обтекается сверхзвуковым потоком воздуха.
Графически построить зависимость коэффициента восстановления полного давления \(\sigma_\Sigma\) от углов ступеней клина \(\beta_1\) и \(\beta_2\), построить её графически. Угол \(\beta_3\) фиксирован. В каждой точке зависимости система скачков должна существовать (не должно быть отошедших скачков).
Определить углы \(\beta_1^*\) и \(\beta_2^*\), соответствующие максимальному значению коэффициента восстановления полного давления, то есть
Исходные данные: известна скорость набегающего потока \(\mathrm{M}_1 = 3\) и угол 3-й ступени клина \(\beta_3 = 33^\circ\). Показатель адиабаты воздуха \(k = 1.4\).
Ниже приведены расчётные формулы.
Вспомогательные формулы:
На рисунках ниже представлены расчётная схема и условие отрыва скачка уплотнения (СУ) от обтекаемого тела (зависимость угла СУ от угла поворота потока).
Important
На Условие отрыва скачка уплотнения \(\beta_i \equiv \Delta\beta_i\) и \(\nu_i\) - угол СУ.
Алгоритм расчёта следующий:
Из уравнения (6) при известном согласно (7) угле \(\Delta\beta_1\) и по исходному \(\mathrm{M}_1\) численно ищется значение угла СУ \(\nu_1\) на первой ступени клина.
По формуле (9) рассчитывается \(\sigma_1\) для первого СУ.
Скорость потока за текущим СУ рассчитывается по формулам (8) и (11).
Алгоритм начинается заново для следующей ступени с учётом (7).
В итоге по формуле (10) рассчитывается коэффициент восстановления полного давления \(\sigma_\Sigma\).
Для решения задачи оптимизации (5) необходимо выбрать метод, например, из модуля optimize
библиотеки научных расчётов SciPy.
Вариант 3 - Безопасное размещение склада боеприпасов#
Цель - рассмотреть возможные подходы к решению поставленной задачи поисковой непрерывной оптимизации.
Задача - решить задачу непрерывной поисковой оптимизации, используя как можно более эффективный алгоритм.
Имеется \(n\) городов, заданных координатами на плоскости. Военным необходимо разместить большой (а потому опасный) склад боеприпасов в районе этих городов для надёжной защиты государства.
Требуется:
Сформулировать понятие “место безопасного размещения” склада боеприпасов.
Придумать или выбрать алгоритмом решения задачи.
Определить координаты места безопасного размещения склада боеприпасов для всех заданных количеств городов \(n_i \in N = \{25, 50, 100, 250, 500\}\).
Визуализировать полученные результаты.
Города генерировать случайным образом с помощью равномерного распределения.
При этом необходимо обеспечить возможность воспроизведения расчёта настройкой параметра seed
у используемого генератора случайных чисел.
Размер пространства принять 100 на 100 км.
Important
Никаких других - «дополнительных», «удобных», «авторских» - условий в задаче не требуется.
Вариант 4 - Условная и безусловная оптимизация#
Цель - закрепить навыки численной оптимизации математических функций одного, двух и многих переменных.
Задача - рассмотреть и проанализировать способы (методы) оптимизации математических функций одного, двух и многих переменных.
Требуется оптимимизировать - т.е. найти значения аргументов, минимизирующих целевую функцию - следующие функции:
Функцию Бута:
Область определения аргументов: \(-10 \le x, y \le 10\). Показать, что \(f(1, 3) = 0\) есть минимум.
Функцию Розенброка от трёх параметров:
Область определения аргументов: \(-\infty \le x_1, x_2, x_3 \le \infty\). Показать, что \(f(1,1,1) = 0\) есть минимум.
Функцию Экли:
Область определения аргументов: \(-5 \le x, y \le 5\). Показать, что \(f(0, 0) = 0\) есть минимум.
Ограниченную функцию Мишры-Бёрда:
при ограничении
Область определения аргументов: \(-10 \le x \le 0\) и \(-6.5 \le y \le 0\). Показать, что \(f(-3.1302468, -1.5821422) = -106.7645367\) есть минимум.