Task05 (Задание 5)
Описание файла
Файл "Task05" внутри архива находится в папке "Задание 5". PDF-файл из архива "Задание 5", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Задание 5.Написаниеалгоритманадёжности (10 баллов).решениязадачиоптимизацииФормулировка заданияДано:Дана программная система RelOpt для проведения экспериментов по оптимизации и статья сописанием алгоритма оптимизации надёжности.Требуется:1. (7 баллов) Разобраться в устройстве программной системы RelOpt. Реализовать алгоритм,описание которого приведено в статье на языке Python. Интегрировать реализацию впрограммную систему RelOpt.2. (1 балл) Повторить экспериментальное исследование, проведённое в статье. Описатьполученные экспериментальные результаты, сравнить их с результатами, приведёнными встатье. Обосновать их расхождение, если таковое имеется.3.
(2 балла) Написать эссе на тему “Как я провёл Практикум в 7м семестре”. В этом эссе всвободной форме необходимо отразить примерное время, потраченное на выполнениеПрактикума, трудности с которыми Вы столкнулись при выполнении заданий, новые знания итехнологии которым Вы научились при выполнении Практикума, критику и предложения поформулировкам и типам заданий.Бонусное задание:4. (3 балла) Провести полноценное экспериментальное исследование алгоритма при помощиметода статистических гипотез (см. лекции по Имитационному Моделированию). Обосноватьколичество запусков алгоритма и классы используемых в исследовании исходных данных.Описать полученные экспериментальные результаты, сравнить их с результатами, полученные вп.3.
Обосновать их расхождение, если таковое имеется.На выполнение задания отводится две недели. Последний срок сдачи задания – 25 декабря.Требования к файлам решения:Сданнаязадачаприсылаетсянаvolkanov@lvk.cs.msu.suписьмомсReliability-Task5-Solution. Решение задачи должно включать в себя следующие файлы:темой1. Статьюсреализуемымалгоритмомyear_group_surname_algorithm_<исходное_имя_файла>.pdfгде: year – год выполнения задания; group – номер Вашей группы; surname – Ваша фамилия; algorithm – сокращённое имя алгоритма; <исходное_имя_файла> – имя файла статьи, которое Вы получили при выдачезадания.2.
Файл с кодом алгоритма year_group_surname_algorithm.py3. Файлы с описанием конфигураций систем, на которых проводились исследования,настроек алгоритмов (если таковые будут) и файлы со статистикой (они автоматическисоздаютсясредством). Имена всех этих файлов должны иметь префиксyear_group_surname_algorithm4. Файлыyear_group_surname_algorithm_exps.pdfиисходныйфайлэкспериментальногоисследованиявпроизвольномформатесyear_group_surname_algorithm_exps, а его расширение будет определяться типом.описанияименем5. Файл year_group_surname_esse.txt с текстом эссе “Как я провёл Практикум в 7м семестре”.6.
Если Вы выполнили бонусное задание, то высылаете файлы аналогичные п.3 и п.4. Всеэти файлы должны иметь суффикс _bonus в задании. Например, для п. 4 файл описанияэкспериментальногоисследованиядолжныиметьимяyear_group_surname_algorithm_exps_bonus.pdf,аисходныйфайлописанияэкспериментального исследования в произвольном формате должен иметь имяyear_group_surname_algorithm_exps_bonus, а расширение будет определяться его типом.Присланная до 23:59 (московское время) 25 декабря задача принимается (БЕЗ ШТРАФА),далее –5 балла за каждую неделю просрочки.Методические указания по выполнению задания:1. Архитектура программного средства RelOptПрограммное средство RelOpt для решения задачи оптимизации надёжности (ЗОН)написано на языке Python.
В качестве примера алгоритмов приведена реализация несколькихалгоритмов. А именно эволюционного алгоритма (ЭА), адаптивного генетическогоэволюционного алгоритма (АГЭА) и жадного алгоритма (ЖА).Разработанное программное средство включает следующие модули: модуль, содержащий классы, используемые всеми алгоритмами (представленияотдельного решения, структуры РВС РВ, базовый класс алгоритма и др.); реализация классического эволюционного алгоритма (ЭА) и адаптивного генетическогоэволюционного алгоритма (АГЭА); реализация жадного алгоритма (ЖА); модуль, содержащий метамодели; графический пользовательский интерфейс (ГПИ).Диаграмма классов, представляющих логику работы программного средства, приведенана рисунке 1Рисунок 1. Диаграмма классов, представляющих логику работы программного средства.Кратко опишем классы, представленные на диаграмме классов: Algorithm, GA, HGA, Greedy - базовый класс для оптимизационных алгоритмов иреализации ЭА, АГЭА, ЖА соответственно; Module, NONE, NVP01, NVP11, RB11 - базовый класс, представляющий модуль РВС РВ, иреализации, соответствующие модулям с механизмами обеспечения отказоустойчивости(МОО) None, NVP/0/1, NVP/1/1 и RB/1/1 соответственно.
Описание данных МОО дано взадании 3; System – представление вычислительной системы (ВС); Component, ModConfig, SysConfig - представление версии программного или аппаратногокомпонента, параметров конфигурации модуля и параметров конфигурации ВС; Constraints, CostConstraints, TimeConstraints - базовый класс, представляющийограничения, и реализации ограничений на стоимость и времена окончания выполненияпрограммных компонентов соответственно; AlgConfig, GAConfig, HGAConfig - базовый класс для настроек алгоритмов и реализациинастроек классического эволюционного алгоритма и АГЭА; Metamodel, Random, Averaging, LinearRegression, KNearestNeighbours, NeuralNetwork,SVR - базовый класс метамодели и реализации случайной модели, линейной регрессии,метода k ближайших соседей, нейросетевой модели и регрессии методом опорныхвекторов соответственно. Statistics - класс для хранения, обработки и вывода в текстовый файл формата CSVстатистики запусков алгоритма; Schedule - класс для преобразования конфигурации РВС РВ к расписанию общего вида.2.
Графический Пользовательский Иинтерфейс RelOptДля реализации Графического Пользовательского Интерфейса (ГПИ) используетсяPyQt4 - набор привязок библиотеки Qt4 для языка Python. ГПИ представляет собой нескольковзаимосвязанных окон.Главное окно программы (рисунок 2) представляет возможность задания всехпараметров, необходимых для запуска алгоритма решения задачи ЗОН.Окно генерации описания ВС (рисунок 3) представляет возможность задания параметровВС и генерации её описания.Рисунок 2. Главное окно программы.Рисунок 3. Окно генерации описания ВС.3. Описание входных данных средства RelOptНа вход средству RelOpt подаются XML-файлы с настройками разработанногоалгоритма (если требуется) и описанием ВС.Например, XML-файл с настройками АГЭА должен иметь следующую структуру:<alg> - корневой элемент в описании настроек АГЭА; имеет атрибуты maxiter максимальное количество итераций алгоритма без изменения текущего лучшегорешения, maxgeniter - максимальное количество попыток получить решение,удовлетворяющее ограничениям, при генерации начальной популяции, popsize - размерпопуляции; содержит тег <par>;<par> - элемент, соответствующий параметру АГЭА; имеет атрибут name - имяпараметра (crosspercent, crossprob, mutpercent или mutprobe), min, norm, max минимальное, среднее и максимальное значения параметра.XML-файл с описанием ВС должен иметь следующую структуру: <system> - корневой элемент в описании ВС; имеет атрибут limitcost - максимальнодопустимая стоимость системы; содержит теги <module> и <link>; <module> - описание модуля ВС; имеет атрибуты num - номер, limittime - директивныйсрок завершения работы программного компонента, trecov - время отката к контрольнойточке, ttest - время работы контрольного теста, tvote - время работы голосователя, qall, qdи qrv соответствуют параметрам надёжности МОО; содержит теги <hw>, <sw>, <tool> и<time>; <hw>, <sw> - описание доступных аппаратных и программных компонентов; имеютатрибуты num - номер компонента, cost - стоимость, rel - надежность; <tool> - описание доступного МОО; имеет атрибут name - имя МОО (none, nvp01, nvp11или rb11); <time> - время работы для пары (аппаратный компонент, программный компонент);имеет атрибуты hwnum - номер аппаратного компонента, swnum - номер программногокомпонента, t - значение времени; <link> - описание зависимостей по данным между модулями; имеет атрибуты src - номермодуля, передающего данные, dst - номер модуля, получающего данные, vol - объёмпередаваемых данных.4.