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

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

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

371

Третий критерий сравнения – количество потребляемой памяти. Оба метода тестировались на одинаковых наборах данных из 30 тысяч элементов. В ходе данного теста значительных отличий выявлено не было.

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

Для тестирования среднего количества операций, необходимых для поиска элемента в хеш-таблице был запущен счетчик операций и сгенерированы наборы данных из 10, 20 и 30 тысяч элементов. Под операциями подразумеваются вычисление индекса, перемещение по таблице и нахождение искомого элемента в цепочке. Оба метода показали одинаковый результат (1,66).

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

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

а)

б)

Рис. 1. Заполнение ячеек в хеш-таблице:

а – линейное хеширование; б – линейное хеширование с частичным

 

расширением

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

хеширования

с частичным расширением действительно происходит более

равномерное

заполнение ячеек в таблице.Это связано с тем, что при

расщеплении

блока

у линейного

хеширования

с

частичным

372

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

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

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

А.А. Никитин РАЗРАБОТКА РАБОЧЕГО МЕСТА ЗАВЕДУЮЩЕГО КАФЕДРОЙ В

СИСТЕМЕ МОНИТОРИНГА УСПЕВАЕМОСТИ СТУДЕНТОВ И ПОСЕЩАЕМОСТИ ЗАНЯТИЙ

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

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

Вуниверситетах два раза за семестр проводятся аттестации успеваемости студентов, посещаемость учащихся отмечается на лекционных

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

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

Существует приличное количество электронных журналов для школы, со своими достоинствами и недостатками, а журналов для университетов с мониторингов процесса обучения почти нет.

Вкачестве эксперимента на кафедре была создана ведомости в Google Docs, были настроены права доступа преподавателей к ведомости для редактирования своих ведомостей, а также построен ряд отчетов.

По результатам использования были сделаны выводы об использовании ведомостей в Google Docs:

основная проблема - перевод ведомости в состояние «подписано» для запрета дальнейшего редактирования старостой;

сложность учёта данных с предыдущих учебных семестров;

неудобство редактирования в аудитории на компьютере;

неудобство работы с ведомостью с мобильного устройства.

373

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

Сервис предоставляет следующие основные возможности:

авторизация пользователя с учетом его роли;

просмотр сводной ведомости;

добавление, редактирование ведомости с учетом вида занятия;

ввод данных о присутствующих на занятии;

выставление оценок за практическое или лабораторное занятие.

Все введённые данные сохраняются на сервере. Серверная часть реализована на платформе ASP.NET MVC 4. В качестве сервера базы данных используется MS SQL Server 2012 Express.

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

В.В. Овцынова ИСПОЛЬЗОВАНИЕ ГЕОМЕТРИЧЕСКИХ ОСОБЕННОСТЕЙ

ИЗОБРАЖЕНИЯ ДЛЯ ЛОКАЛИЗАЦИИ ЛЕТАЮЩЕГО РОБОТА

Объект исследования: данные, полученные с датчиков летающего робота.

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

Датчики летающего робота:

1.Гироскоп (позволяет измерить угловое ускорение робота).

2.Акселерометр (для измерения ускорения и гравитации).

3.Камера (для получения информации об окружающей среде).

4.Компас (для ориентации по сторонам света).

Работа направлена на использование информации, полученной с одного датчика – камера (изображение). Для использования изображения в целях обнаружения контуров применяются характерные черты изображения (см.

рис. 1).

374

Рис.4. Характерные черты изображения

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

Существует достаточно много определений понятия контур на изображении. В общем случае, под контуром понимают внешнее очертание объекта на изображении, вдоль которого происходит резкое изменение яркости. При обнаружении контура объекта необходимо руководствоваться основными свойствами, присущими любому контуру: кривизна и компонент. Первое частично определяется процессом формирования изображения и может варьироваться. Наличие второго — компонент — неизбежно, так как большинство объектов в природе не имеют идеально прямые края, в следствие чего возникает проблема «разбиения» контура на составляющие компоненты. Сам компонент представляет собой некоторую часть контура, чьи точки полностью соединены друг с другом отдельными сегментами общего контура. Каждый компонент, в свою очередь,характеризуется замкнутостью, которая определяет является ли последняя точка компонента его первой точкой. Наиболее сложными в обнаружении являются контуры, состоящие из множества компонент открытого типа.

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

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

375

наиболее приближенных (см. рис. 2). При этом расчет веса для каждой линии осуществляется по формуле формула Nearest-edge:

(1)

Рисунок 5. – Обнаружение границ

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

В.С. Петроченко МЕТОДЫ РАСЧЕТА РЕЙТИНГА ВУЗОВ.

РОССИЙСКИЙ И ЗАРУБЕЖНЫЙ МЕТОДЫ

Объект исследования: расчетрейтинга структурных подразделенийвысшего учебного заведения.

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

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

Зарубежные методики составляют рейтинг на основе 4 критериев. У каждого критерия есть один или несколько показателей, каждому из которых присваивается свой вес в процентном соотношении. В качестве примера можно привести академический рейтинг университетов мира или сокращенно ARWU, рейтинг ежегодно составляющийся Институтом высшего образования шанхайского университета Цзяо Тун, поэтому его часто называют Шанхайский рейтинг. Рейтинг рассчитывается следующим образом: по каждому показателю лучшим присваивается 100 баллов, а оценка других ВУЗов рассчитывается как процент от максимально возможного балла. Затемсложив баллы по каждому показателю, получаем общий балл,

376

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

В методике принятой Министерством образования РФ применяется теория ранговой корреляции и математической статистики. Расчет рейтинга вузов поданной методике базируется на 44 показателях, отражающих практическую деятельность вуза, и достаточно полно показывает потенциал вуза и результаты его деятельности. Рейтинг рассчитывается в несколько этапов. Прежде всего все показатели нормируются посредством деления их на максимальное соответствующее значение по выборке однотипных показателей. В результате нормирования все показатели имеют значение в интервале от 0 до 1. Базой расчета рейтинга вуза является условное количество студентов, которое рассчитывается по уравнению. После чего рассчитывается рейтинг активности ВУЗа который вычисляется как линейная свертка частных показателей рассчитываемых по уравнениям. Аналогично рассчитывается рейтинг потенциала. После вычисления рейтинга потенциала и активности вычисляется оценка эффективности как деление активности на потенциал. Оценка эффективности вводится мультипликативно в значение рейтинга по интеллектуальному потенциалу, после чего выполняется повторное вычисление рейтинга потенциала вуза и общего рейтинга вуза. Данная методика не очень подходит для быстрого вычисления, из-за большого количества показателейи расчета формул,но это дает возможность в более полной мере оценить деятельность учебного заведения.

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

Р.В. Подымов РЕАЛИЗАЦИЯ АЛГОРИТМОВ ИНТЕРПОЛЯЦИИ ИЗОБРАЖЕНИЙ

ДЛЯ ИГРОВОЙ ПРИСТАВКИ NES

Объект исследования: алгоритмы интерполяции растровых изображений.

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

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

377

масштабирования изображений с низким разрешением, был EPX. Он был разработан Эриком Джонстоном из Lucas Arts для портирования движка SCUMM с IBM PC на компьютеры Macintosh, разрешение которых было вдвое больше. Алгоритм был крайне прост — рассматривались четыре соседние с исходным пикселем точки и на основе их сравнения делался выбор о цвете генерируемого пикселя. Данный алгоритм не добавлял новых цветов в палитру.

Алгоритм Eagle во многом повторял EPX, однако в нем рассматриваются не четыре а восемь соседних пикселей. В ходе выполнения алгоритма Eagle новые цвета в палитру также не добавляются, однако возможна проблема, получаемая при ситуации если черную точку окружают восемь белых (тогда получаемое изображение будет полностью белым).

Большинство недостатков рассмотренных ранее алгоритмов исправляет семейство алгоритмов hqnx (где n — одно из чисел от двух до четырех, показывающее во сколько раз увеличивается изображение в ходе алгоритма). Данный алгоритм был изобретен Максимом Степиным. Для создания пикселей используется прегенерированная таблица для отыскания необходимого соотношения значения для каждого из четырех, девяти или шестнадцати пикселей. При выполнении алгоритма хорошо сглаживаются крутые кривые. В отличие от 2xSal к выводу применяется антиалиасинг.

На основании характеристик рассмотренных алгоритмов можно сделать вывод о том, что наиболее предпочтительным для реализации является алгоритм hq4x. Объем кода на языке С++, необходимый для реализации всех рассмотренных алгоритмов, получается примерно одинаковый, однако получаемые изображения имеют более высокое качество.

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

Р.В. Подымов

СРАВНЕНИЕ ЭФФЕКТИВНОСТИ РЕАЛИЗАЦИИ ПРОГРАММ НА ЯЗЫКАХ C# И F# ДЛЯ ПЛАТФОРМ MICROSOFT .NET И MONO

Объект исследования: реализации языков C# и F# для платформ .NET и MONO.

Результаты, полученные лично автором: произведена сравнение производительность и объём кода приложений, созданных на языках C# и F# как для платформы .NET, так и для платформы MONO.

Язык F# был создан относительно недавно, впервые появившись в Visual Studio 2010. Характерной особенностью данного языка является реализация парадигмы функционального программирования на основе языка Objective Caml.

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

378

Оценим эффективность реализации программ на этих языках для разных платформ (Microsoft .NET и MONO) на примере решения нескольких задач: расчет функции Аккермана и быстрая сортировка.

Функция Аккермана в настоящее время используется для тестирования производительности компиляторов. Сравнение её реализации на языках C# и F# для платформ Microsoft .NET и MONO показало, что, несмотря на небольшие различия в коде программ, реализация на языке C# работает быстрее.

Алгоритм быстрой сортировки широко известен своей простотой и быстродействием. Наиболее лаконичный вариант описания данного алгоритма получается при использовании генераторов списков, которые есть в языке F#. В языке C# аналогом генераторов списков можно считать технологию LINQ, однако даже с ее помощью нельзя получить столь компактный код, как при использовании языка F#. Кроме этого, применение LINQ замедляет выполнение программы.

Для языка F# созданы библиотеки, которые позволяют работать с базами данных, сетью, интерфейсом программирования Windows Forms. Это означает, что F# –это не академический, а профессиональный язык программирования, который может использоваться в промышленных программных продуктах. Работа с базами данных на языке F# проста и интуитивно понятна, код при этом получается очень лаконичным в виду декларативной природы F#.

ВC# присутствуют средства, которые позволяют заметно уменьшить размер кода. Однако такие средства очень сильно замедляют выполнение программ, а получаемый код не столь понятный, как код в стиле функционального программирования.

Вбольшинстве случаев программы на F# получаются короче, однако в производительности они практически равны программам на C#.

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

Г.В. Праскура

СРАВНЕНИЕ АКТОРНОГО И ОО ПОДХОДОВ ПРИ СОЗДАНИИ СЛОЖНЫХ ПРИЛОЖЕНИЙ

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

различных подходов к разработке ПО.

Определим термин «парадигма программирования». Это совокупность идей, понятий и способов, определяющая стиль написания компьютерных программ. Существует множество парадигм, каждая из которых находит применение в той или иной области разработки программного обеспечения. Мы рассмотрим и проведём сравнительный анализ двух подходов, используемых для написания сложных приложений и систем.

379

Объектно-ориентированное программирование подразумевает совокупность объектов, принадлежащих конкретным классам, обладающими некоторыми свойствами и наделёнными способностью производить действия над этими свойствами. В центре ООП находится понятие объекта. Объект — это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные. Объект — это экземпляр класса. Данные объекта скрыты от остальной программы. Сокрытие данных называется инкапсуляцией.

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

При реализации средствами потоков ОС программисту доступен лишь самый низкий уровень абстракции для общения между параллельно выполняющимися задачами — разделяемое состояние (shared state). В такой модели дополнительно к работе со данными каждая задача должна прилагать усилия по координации этой работы с другими задачами. Главная проблема здесь в том, что программисту необходимо очень детально описать логику работы и координации, что в свою очередь создает семантический разрыв между человеческим и компьютерным представлениями программы. Этот разрыв снижает эффективность выражения мыслей, ухудшает читаемость кода и в итоге приводит к ошибкам в программе (гонки за данными (contentions, races), взаимные блокировки (deadlocks), плохая масштабируемость).

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

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

Модель акторов следует философии, что всё есть акторы. Это близко к идее объектно-ориентированных (ОО) языков, что всё есть объекты. Однако, в то время как программы на большинстве ОО языках выполняются последовательно, в модели акторов всё выполняется полностью параллельно. Взаимодействие между актерами осуществляется исключительно асинхронно. Это означает, что актор, пославший сообщение не ждет, когда получатель его обработает, а продолжает выполнять свои внутренние вычисления. Получатель сообщения определяется только по адресу. Иногда такой адрес называется «почтовый адрес». Таким образом, актер может взаимодействовать только с теми актерами, адреса которых ему известны. Сам же актер может получить адреса других только из пришедших сообщений, также он по определению знает адреса тех актеров, которые

380

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

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

Сравнивая подходы, можно отметить, что ОО подход, в отличие от акторного, широко известен и часто применяем. При грамотной реализации решения какой-либо задачи с помощью акторов код программы уменьшается за счёт чёткого механизма взаимодействия, в то время как при ОО подходе код увеличивается, т. к. программисту нужно реализовать методы «на все случаи жизни». Читаемость объектно-ориентированного кода падает с увеличением его размера: разбиение программы чёткое, но в больших системах блоков становится много. Акторный же подход обладает хорошей масштабируемостью. Большинство ОО программ последовательны, что делает отладку проще, чем таковую у системы с акторами — они работают асинхронно и параллельно. И, наконец, область применения акторного метода распространяется на системы, содержащие активно действующих сущностей: компьютерные игры, пользовательские интерфейсы, распределённые веб-приложения, интеллектуальные системы.

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

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

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

Г. В. Праскура ЭФФЕКТИВНОЕ ИНДЕКСИРОВАНИЕ ПЕРЕМЕЩЕНИЙ

ДВИЖУЩИХСЯ ОБЪЕКТОВ

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