Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Сборник 70 студ конференции БГТУ

.pdf
Скачиваний:
83
Добавлен:
18.03.2016
Размер:
20.16 Mб
Скачать

401

Е.С. Строгонов

АНАЛИЗ ПРИМЕНЕНИЯ И РАБОТОСПОСОБНОСТИ ПЕРСИСТЕНТНЫХ СТРУКТУР ДАННЫХ

Объект исследования: система хранения бэкапов баз данных. Результаты, полученные лично автором: рассмотрена актуальность

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

Под персистентными структурами данных (англ.persistent data structure) понимаются структуры, которые при внесении в них каких-либо изменений сохраняют все свои предыдущие состояния.

Сразу напрашивается вопрос, где потребуется такие структуры данных? Простейшим примером применения может являться система хранения бэкапов базы данных. В данный момент для большинства баз данных стоит проблема сохранности данных, так как часто могут происходить аппаратные и программные сбои, что может нарушить целостность баз данных. Хорошо если после сбоя неисправность сразу всплывает и пользователь может быстро развернуть копию за предыдущий день, но часто бывает, что некоторым функционалом пользователь пользуется в определенное время (в конце квартала или конце года). Для этого пользователю необходимо хранить копии за большой промежуток времени, чем часто пренебрегают. Так же с базами данных может возникнуть проблема с обновлением, после введения нового функционала, старый может прийти в негодность, а в бухгалтерской отчетности это может стать критичным. Тем более, если обновление с фиксом данной не исправности не вышло к моменту сдачи отчетности. Было бы хорошо реализовать возможность вызова предыдущей копии программного продукта, с актуальными данными.

Рассмотрим способы преобразования данных в персистентные структуры данных. В текущее время выделяют три пути преобразования данных в персистентные: метод полного копирования, метод копирования пути и метод толстых узлов. Метод полного копирования не имеет большой ценности, так как представляет собой обычное копирование. Асимптотика метода копирования пути составит O(log n), а метода толстых узлов O(log t), где t – число изменений структур данных.

На основании выше сказанного можно сформулировать основные направления развития программного комплекса:

Уменьшение объемов занимаемого дискового пространства.

Увеличение количества копий хранящих баз данных.

Возможность быстрого создания и развертывания бэкапов.

Возможность вызова предыдущего релиза с использованием актуальных данных.

Работа выполнена под руководством проф. каф. «Информатика

ипрограммное обеспечение» В.К. Гулакова

402

А.Д. Ушаков СОГЛАСОВАНИЕ КОМПЕТЕНЦИЙ ПРИ СОСТАВЛЕНИИ

УЧЕБНЫХ ПЛАНОВ НА БАЗЕ АЛГОРИТМОВ И МОДЕЛЕЙ ТЕОРИИ ГРАФОВ

Объект исследования: учебный план направления (специальности) Результаты, полученные лично автором: разработана система

составления учебного плана специальности 230100.

Учебный план –это утверждённый план подготовки специалистовопределённой специальности. В нём отражены изучаемые дисциплины, их трудоёмкость и сроки освоения, а также форма отчётности.

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

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

Составление учебного плана происходит в несколько этапов. Сначала задаются временные рамки, ограничения на количество предметов и экзаменов, указываются учебные циклы и соответствующие ограничения трудоёмкости, а также заполняется список дисциплин с указанием основных характеристик. На основе полученных данных выполняется проверка охвата компетенций и соответствия ограничений учебных циклов. Далее задаются учебные модули, из которых состоят дисциплины, и связи между модулями с указанием направлений (т.е. устанавливаются базовые и производные модули)и коэффициентовсвязей.По полученным взаимосвязям формируется ориентированный взвешенный граф учебных модулей. С помощью алгоритма последовательной раскраски граф разбивается на слои, каждый из которых состоит из несвязанных напрямую между собой модулей. Далее

403

происходит последовательное наполнение семестров учебными модулями из слоёв графа. Слои обрабатываются последовательно.

Разработан следующий алгоритм заполнения семестров:

Выполняется проверка на наличие неоконченных дисциплин. Если таковые имеются, то в текущий семестр добавляется по одному модулю от каждой неоконченной дисциплины.

Проверяется, возможно ли добавить текущий слой в семестр целиком, не выходя за рамки установленных ограничений.

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

После заполнения всех семестров осуществляется оценка полученного учебного плана. В качестве критерия оценки выступает среднее значение отклонения от установленной трудоёмкости (60 зачётных единиц на 1 учебный год) по курсам обучения.

Таблица 1

Фрагмент готового учебного плана

Иностранный язык 1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Иностранный язык 2

 

2

 

 

 

 

 

 

Иностранный язык 3

 

 

3

 

 

 

 

 

Иностранный язык 4

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

Правоведение

 

2

 

 

 

 

 

 

Философия 1

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

Философия 2

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

Экономика

 

 

 

 

 

6

 

 

Физика1

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

Физика2

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

Электротехника 1

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

Электротехника 2

 

 

 

 

 

 

 

8

 

 

 

 

 

 

 

Инженерная графика 1

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инженерная графика 2

 

2

 

 

 

 

 

 

Полученныйучебный план соответствует отклонение в 0,9%.Охвачены все образовательные компетенции, учтены связи между дисциплинами, последовательность следования модулей и фундаментальная значимость дисциплин.

Работа выполнена под руководством ст. преп. каф. «Информатика и программное обеспечение» С.Н. Зимина

404

М.Г. Цветков ПОИСК ОПТИМАЛЬНОЙ РАСКРАСКИ ГРАФА ДЛЯ

СОСТАВЛЕНИЯ РАСПИСАНИЯ

Объект исследования: составление расписания с использованием теории графов.

Результаты, полученные лично автором: реализован алгоритм хроматической раскраски графа для составления расписания.

Проблема составления расписания может быть решена с помощью эвристического алгоритма, однако, он работает лишь для простых случаев. Для более сложных входных данных, поиск оптимального решения может занять много времени или оказаться невозможным.

При составлении расписания учебных занятий во внимание должны быть приняты многие требования. Они могут быть разделены на несколько групп по степени их важности. Например, на “жесткие” (если нарушено одно из требований, то расписание будет неправильным) и “мягкие” (если нарушено одно из требований, то расписание останется корректным).

“Жесткие” требования: группа может быть размещена только в свободной аудитории, у преподавателя или группы не может быть больше одного занятия одновременно, в аудитории не хватает места для всех студентов, занятие требует специального оборудования (лаборатории).

“Мягкие” требования: пожелание преподавателя или группы по времени проведения занятия, аудитории и т.п.

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

Сама задача поиска хроматического числа представляет собой NPполную задачу.

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

Работа выполнена под руководством ст. преп.кафедры «Информатика и программное обеспечение» С.Н.Зимина

405

Ю.С. Шарова

РАЗРАБОТКА ИНТЕРФЕЙСА ПРИЛОЖЕНИЙ WINDOWS НА

ОСНОВЕ ТЕХНОЛОГИИ METRO

Объект исследования: технология Metro.

Результаты, полученные лично автором: выявлены принципы разработки интерфейса приложений Windows на основе технологии Metro.

Metro – внутреннее кодовое название дизайнерского языка компании Microsoft, ориентированного на типографское оформление интерфейса пользователя.

Изначально этот язык был разработан Майкрософт для использования в Windows Phone. Позже на основе Metro был построен интерфейс веб-сайта

Microsoft, Xbox 360 и Windows 8.

Основными принципами Metro являются акцент на хорошей типографике и крупный текст, который сразу бросается в глаза. Говоря «metro-приложения», подразумевается не только новый интерфейс, но и новая платформа разработки. Приложение в стиле Metro – это сплав новой парадигмы интерфейса, нового эффективного API и соответствующей платформы разработки, а также интеграция с системой и другими приложениями.

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

Приложение в стиле Metro может поддерживать различные компоновки и представления, чтобы обеспечить динамичное и удобное обслуживание пользователя при различных параметрах конструкции и размерах экрана устройств.

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

Приложения в стиле Metro содержат несколько новых элементов управления, упрощающих организацию эффективного взаимодействия с пользователями. Среди этих элементов можно выделить строку команд (App Bar) приложения и чудо-кнопки (Charms). Строка команд приложения размещается вне окна приложения и является его основным командным интерфейсом. Используйте строку команд для размещения элементов навигации, команд и инструментов для пользователей. По умолчанию строка команд приложения скрыта и появляется, когда пользователь проводит пальцем в направлении от верхнего или нижнего края экрана. Чудо-кнопки – это определенный и согласованный набор кнопок, используемый во всех приложениях для поиска, отправки, подключения, настройки и запуска. Можно сказать, что это основные рабочие сценарии, которые все

406

пользователи хотят выполнять практически в каждом используемом ими приложении.

Когда пользователь устанавливает приложение, оно появляется на начальном экране как плитка. Если коснуться или щелкнуть плитку, приложение будет запущено. Приложение может предоставлять содержимое с помощью плитки, даже когда не работает. Используя динамические плитки (Live Tiles), приложение способно выводить на экран полезные данные в краткой форме при минимальном расходе заряда батареи устройства.

Приложение может настроить систему для периодического запроса обновлений в веб-службе вне зависимости от того, работает ли оно. Кроме того, в приложениях доступна настройка служб push-уведомлений Windows (WNS), чтобы отправлять сообщения напрямую из веб-службы в динамическую плитку.

Приложения в стиле Metro можно создавать на многих языках, например, на JavaScript, C#, Visual Basic или C++. Более того, можно создавать компоненты на одном языке и использовать их в приложении, написанном на другом языке программирования.

Рассмотрев пример создания простейшего Metro-приложения (калькулятора), использующего элементы управления HTML, я выяснила, что для создания приложения в стиле Metro нужно в файле с описанием интерфейса создать поле ввода, необходимые кнопки, характерные, в нашем случае, для калькулятора; а в файле логики – объявить переменные для аргументов и сохранения экземпляра объекта, представляющего собой поле ввода.

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

Например, если пользователь нажал кнопку-цифру или кнопку-точку, мы получаем надпись этой кнопки, т. е. нажатую цифру или точку, добавляем ее к значению набираемого аргумента и выводим набираемый аргумент в поле ввода, а если пользователь нажал кнопку сброса набираемого аргумента, мы очищаем значение набираемого аргумента и выводим в поле ввода число 0.

Таким образом, я рассмотрела технологию Metro, ее особенности и преимущества, а также выяснила, по каким принципам разрабатывается интерфейс простейшего приложения Windows на основе данной технологии.

Работа выполнена под руководством доц. каф. «Информатика и программное обеспечение» Е.А. Белова

407

Ю.С. Шарова

АНАЛИЗ ЗАВИСИМОСТИ ПРОИЗВОДИТЕЛЬНОСТИ ЛИНЕЙНОГО ХЕШИРОВАНИЯ ОТ ХАРАКТЕРА РАСПРЕДЕЛЕНИЯ ДАННЫХ

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

Результаты, полученные лично автором: выявлена зависимость производительности линейного хеширования от характера распределения данных.

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

Вначале работы предполагалось, что результаты исследования производительности линейного хеширования для различных типов распределения данных, в итоге, будут достаточно схожими.

Тесты проводились для каждого вида распределения данных с различным количеством записей (5, 10, 50, 100, 150) по 3 раза. Время выполнения программы в каждом случае вычислялось как среднее арифметическое из трех полученных значений.

Врезультате было выявлено, что на добавление каждого элемента в любом случае тратится равное количество времени.

При линейном распределении данных на каждое расщепление будет затрачиваться одинаковое количество времени, при этом в новый блок переносится половина записей из расщепляемого блока, т.е. на каждое расщепление требуется t*m/2 времени, где t –время, затраченное на перенос записи из расщепляемого блока в новый, m – количество записей в расщепляемом блоке. При линейном распределении каждый блок будет занят наполовину, и на каждом расщеплении будет добавляться только один новый блок.

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

будет наблюдаться обратная ситуация. При экспоненциальном распределении количество данных в блоке будет уменьшаться в зависимости от увеличения количества блоков.

При кластерном распределении данных на каждое расщепление будет затрачиваться разное количество времени. Для некоторых блоков время расщепления будет больше, а для некоторых – меньше (в зависимости от количества записей). При кластерном распределении на каждом расщеплении будет добавляться только один новый блок.

408

Практические результаты исследования представлены ниже в виде графиков (рис.1).

Рис. 8. Производительность линейного хеширования

В ходе эксперимента было выявлено, что, несмотря на разные типы распределения данных (линейное, экспоненциальное и кластерное), линейное хеширование дает схожие результаты производительности, но всё же самым оптимальным характером распределения будет являться экспоненциальное распределение данных.

Работа выполнена под руководством доц. каф. «Информатика и программное обеспечение» А.О. Трубакова

ВЫСШАЯ МАТЕМАТИКА

Ю.В. Алексеева ПОЛИНОМИАЛЬНОЕ РАСПРЕДЕЛЕНИЕ

Объект исследования: биномиальное распределение

Биномиальное распределение в теории вероятностей — распределение количества «успехов» в последовательности из n независимых случайных экспериментов, таких что вероятность «успеха» в каждом из них равна p.

Связь с другими распределениями

Если n 1, то, очевидно, получаем распределение Бернулли.

Если nбольшое, то в силу центральной предельной теоремы Bin n,p N np,npq , где N np,npq — нормальное распределение.

Если nбольшое, а — фиксированное число, то Bin n, n P ,

где P распределение Пуассона с параметром .

Если число случайных величин распределения больше двух, то обязаны получить мультиномиальное распределение.

409

Биномиальное распределение нетрудно обобщить на случай последовательных независимых испытаний, каждое из которых заканчивается одним из нескольких возможных исходов. Обозначим возможные исходы каждого испытания через и предположим, что вероятность осуществления исхода для каждого испытания равна (i = 1,…,r). При r=2получаем испытания Бернулли; в общем случае числадолжны удовлетворять только следующему условию:

Результатом nиспытаний

будет,

например,

последовательность

вида

Вероятность того,

что в

nиспытаниях

произойдет раз,

произойдет

раз и т.д., равна

 

 

 

где – произвольные неотрицательные целые числа, удовлетворяющие очевидному условию

При r=2уравнение сводится к биномиальному распределению с

Это выражение задает полиномиальное распределение, полиномиальное потому, что оно совпадает с общим членом разложения полинома . Это распределение применяется к выбору с возвращением, когда выбираемые объекты разбиты более чем на два класса (например, по профессиям).

Примеры. а) Какова вероятность получить каждую грань дважды при

бросании двенадцати костей? Здесь

соответствуют шести граням,

все

равны 2 и все равны 1/6.

Следовательно, ответ будет

 

.

 

 

б) Выбор. Пусть генеральная совокупность из N элементов разбита на

классыобъема соответственно. Полиномиальное распределение дает вероятности возможных результатов случайного выбора с возвращением объема nиз этой совокупности.

в) Сложные испытания Бернулли. Две последовательности испытаний Бернулли с вероятностями успеха и неудачи соответственно и можно рассматривать как один сложный эксперимент с четырьмя возможными исходами в каждом испытании, а именно комбинациями (У, У), (У, Н), (Н, У), (Н, Н). Предположение о независимости двух исходных последовательностей приводит к тому, что вероятности четырех исходов

равны соответственно

.Если четыре целых числа

в сумме дают n, то вероятность того, что в nиспытаниях УУ

появится раз, УН появится

раз и т.д., равна

Частный случай рассмотренной схемы возникает при выборочном контроле. Изделие признается стандартным или бракованным с вероятностями соответственно p иq. Оно может быть проверено или не

410

проверено с вероятностями соответственно и . Решение о проверке изделия принимается без информации о его качестве, так что испытания независимы.

Работа выполнена под руководством доц. каф «Высшая математика» Н.А. Ольшевской

Д.С.Артамонов, О.Ю.Куликов, Р.В.Соболев РАСЧЕТНО-ГРАФИЧЕСКОЕ РЕШЕНИЕ ГЕОМЕТРИЧЕСКОЙ

ЗАДАЧИ

Объект исследования: расчетно-графическое решение геометрической задачи по определению угла между ребром пирамиды AS и ее основанием АВС.

Результаты, полученные лично автором: в ходе проведенных исследований выполнено расчетно-графическое решение указанной задачи.

Данная задача была решена графически и аналитически.На кафедре начертательной геометрии такие задачирешаются графически, а на кафедре высшей математики – аналитически. При решении геометрических задач целесообразно совмещать оба метода, так как графический отличается наглядностью, а аналитический – точностью.

Графическое решение:

В данной задаче плоскость треугольника ABCрасполагается в горизонтальной плоскости проекций, поэтому искомый угол определяется на дополнительной плоскости проекций , которая параллельна ребру AS.

Аналитическое решение:

Составим уравнение плоскости треугольника АВС по трем точкам: