Лабораторная работа №1. Исследование сравнительной эффективности градиентного и покоординатного методов оптимизации. Лабораторная работа №2. Исследование сравнительной эффективности дискретных методов оптимизации

Лабораторная работа
в среде программирования C#



Если Вы считаете, что данная страница каким-либо образом нарушает Ваши авторские права, то Вам следует обратиться в администрацию нашего сайта по адресу info@kursovik.com либо через форму обратной связи

Среда программирования: C#

Название работы: Лабораторная работа №1. Исследование сравнительной эффективности градиентного и покоординатного методов оптимизации. Лабораторная работа №2. Исследование сравнительной эффективности дискретных методов оптимизации

Вид работы: Лабораторная работа

Описание: Лабораторная работа № 1. Исследование сравнительной эффективности градиентного и покоординатного методов оптимизации

Цель работы: исследовать, насколько покоординатный спуск медленнее, чем градиентный. Овладеть навыками подключения подпрограмм, реализующих оба метода.

Работа выполняется парами магистрантов.

Ход работы
1. Получить у преподавателя тексты подпрограмм, выполняющих градиентный спуск с автоматическим выбором шага. Ознакомиться с комментариями в тексте подпрограмм GradDown, GoldenSelection, понять их работу.
2. Найти подпрограмму, вычисляющую оптимизирующую функцию. Заменить функцию на . Значения A, B, C – по вариантам.
Вариант А В С
1 2 4 3
2 2,5 3,5 2,5
3 1,5 4,5 2,5
4 2 3,5 3,5
5 1,5 3,5 3

3. Принять начальной точкой {–0.4, –0.4}, задаться погрешностью .
4. В любом математическом пакете (например, MathCAD) или вручную найти точное значение минимума, решая (численно или аналитически) систему .
5. Написать программу на любом языке программирования, используя предоставленный код. Программа должна, кроме прочего, определять время, затраченное на поиск минимума.
6. Выполнить спуск, сравнить полученный результат с точным (определенным аналитически выше), определить, достигнута ли требуемая погрешность. Определить время работы градиентного метода оптимизации T1.
7. Написать по аналогии с функцией GradDown функцию покоординатного спуска StepDown, используя пример. Функция должна обеспечивать спуск по любому количеству координат, при этом должен использоваться один цикл. То есть конструкция типа
for(x=x0-dx; x<=x0+dx; x+=dx)
for(y=y0-dy; y<=y0+dy; y+=dy)
…..
является недопустимой. Подсказка: переменные, описывающие координаты, должны быть элементами массива.
8. Включите написанную функцию в свою программу, обеспечив для пользователя программы удобство выбора метода спуска, начального шага dx = dy = &#916;>&#949; и дробления шага.
9. Изменяя начальный шаг в разумных пределах, определить время спуска T2(&#916;) покоординатным методом. Определить, достигнута ли требуемая погрешность в каждом случае.
10. Построить график сравнения эффективности методов градиентного и покоординатного спуска. Объяснить результат.
11. Исследовать зависимость времени покоординатного спуска от величины коэффициента дробления шага при каком-то неизменном &#916;. Построить график, объяснить результат.
12. Отчет о лабораторной работе должен содержать:
a. Описание проделанной работы.
b. Полный листинг полученной программы, скриншот экранной формы.
c. Вывод аналитического значения минимума (если с использованием математического пакета – то и листинг).
d. Сведения о времени спуска и погрешности метода градиентного спуска.
e. Графики (см. п. 10 и п. 11) и выводы по ним.
13. Отчет должен быть оформлен в соответствии с требованиями к оформлению и сдан в виде doc-(docx-)файла.


Лабораторная работа № 2. Исследование сравнительной эффективности дискретных методов оптимизации

Цель работы: исследовать сравнительную эффективность дискретных методов оптимизации (случайный перебор, полный перебор, генетические алгоритмы). Овладеть навыками подключения подпрограмм, реализующих эти методы, на примере задачи о рюкзаке (максимизация стоимости вещей известного объема, помещаемых в рюкзак с ограниченным суммарным объемом).

Работа выполняется парами магистрантов.

Ход работы

1. Получить у преподавателя библиотеку MathHarrixLibrary, реализующую, в том числе, метод генетических алгоритмов, пример организации случайного поиска и файл LongA.cpp, в котором реализовано длинное число с произвольным основанием.
2. Задаться собственными данными об объеме рюкзака, объеме и стоимости набора вещей достаточной длины N.
3. Задаться функцией критерия (эффективность метода). Это может быть
a. стоимость вещей, находящихся в рюкзаке (обычно);
b. отношение стоимости вещей в рюкзаке к объему вещей, взятых в рюкзак;
c. отношение стоимости вещей, взятых в рюкзак, к остатку пустого объема в рюкзаке (надо следить, чтобы не получилось деления на нуль);
d. время максимизации стоимости вещей, взятых в рюкзак;
e. отношение стоимости вещей, взятых в рюкзак, к времени максимизации;
f. и т.п.
4. Написать программу, использующую случайный перебор (с указанием количества вариантов, не превышающих количество вариантов полного перебора 2N), полный перебор и генетические алгоритмы (с указанием настроек ГА, включая количество популяций). Программа должна давать пользователю выбрать и настроить метод, измерять время работы метода.
5. Увеличивая длину набора вещей (параметр исследования) построить таблицу и графики зависимости эффективности метода (п. 3) от N. Для методов случайного поиска и генетических алгоритмов, при каждом запуске выдающих разные результаты, эффективность вычислять как среднее значение по 10 запускам программы.
6. Отчет о лабораторной работе должен содержать:
a. Описание проделанной работы.
b. Полный листинг полученной программы, скриншот экранной формы.
c. График и таблицу (см. п. 5)
d. Объяснения полученного результата.
7. Отчет должен быть оформлен в соответствии с требованиями к оформлению и сдан в виде doc-(docx-)файла.

Год: 2017

Данный заказ (лабораторная работа) выполнялся нашим сайтом в 2017-м году, в рамках этого заказа была разработана программа в среде программирования C#. Если у Вас похожее задание на программу, которую нужно написать на C#, либо на другом языке программирования, пожалуйста заполните форму, приведённую ниже, после чего Ваше задание в первую очередь рассмотрит наш программист, выполнявший в 2017-м году этот заказ, если он откажется, то Ваше задание оценят другие наши программисты в течение 48-и часов, если оценка нужна срочно, просим Вас оставить пометку об этом - напишите в тексте задания фразу "СРОЧНЫЙ ЗАКАЗ".

Купить эту работу

Тел.: +79374242235
Viber: +79374242235
Telegram: kursovikcom
ВКонтакте: kursovikcom
WhatsApp +79374242235
E-mail: info@kursovik.com
Skype: kursovik.com