УДК 004.4 ББК 32.81 П78 Программная инженерия: методы и технологии разработки информационновычислительных систем (ПИИВС-2016): сборник научных трудов I научно-практической конференции (студенческая секция). 16-17 ноября 2016 г. – Донецк, ГОУ ВПО «Донецкий национальный технический университет», 2016. – 325 с. Студенческая секция, проводимая в рамках научной конференции ПИИВС-2016, является одним из этапов совместной исследовательской деятельности преподавателей и студентов. Основная задача студенческой секции состояла в укрепление научного и педагогического сотрудничества среди студентов и научных руководителей, развитие у студентов навыков самостоятельной работы, способностей к анализу и обобщению изучаемого материала, умению формировать собственные выводы и заключения, излагать их письменно и в форме публичных выступлений. Основные направления работы студенческой секции конференции: программная инженерия; системы автоматизированного проектирования; компьютерная инженерия; прикладная математика; информационные системы и технологии в технике и бизнесе; искусственный интеллект и системный анализ. На 6 подсекциях были заслушаны более 60 докладов, в которых рассмотрен широкий спектр научных направлений работ студентов. Конференция организована Донецким национальным техническим университетом Министерства образования и науки ДНР. В организации конференции приняли участие: Донецкий национальный университет, Министерство связи ДНР, Ульяновский государственный технический университет, НИУ «Высшая школа экономики» (г.Москва), Российский экономический университет им. Г.В. Плеханова (г.Москва), Южный федеральный университет (г.Ростов-на-Дону, г.Таганрог), Южно-Российский государственный политехнический университет им. М.И. Платова (г.Новочеркасск). В сборнике научных трудов представлены доклады аспирантов, магистрантов и студентов высших учебных заведений из России, ДНР и ЛНР, которые учатся по следующим направлениям подготовки: информатика и вычислительная техника, компьютерные и информационные науки, математика и механика, управление в технических науках. УДК 004.4 ББК 32.81 ГОУ ВПО «Донецкий национальный технический университет», 2016 2 ОГЛАВЛЕНИЕ СЕКЦИЯ «ПРОГРАММНАЯ ИНЖЕНЕРИЯ» Аксёнов С.А., Григорьев А.В. Анализ функциональных возможностей современных систем управления беспилотных автомобилей и перспективы развития. ………………………………………………………...7 Бородин Д.С. Исследование алгоритмов бинаризации растровых изображений шлифов металлов и сплавов..…………………………………………………………………………………………. 12 Воробьев Л.О. Компилируемый язык описания программ для эмулятора машины Тьюринга…………..... 18 Грищенко О.С., Чернышова А.В. Защита информации в приложениях для мгновенной передачи сообщений……………….. 23 Егоров А.А., Чернышова А.В., Губенко Н.Е. Анализ средств защиты больших данных в распределенных системах…………………...... 28 Коломойцева И.А., Власюк Д.А. Приложение для перевода текста с помощью камеры мобильного устройства «VlasiukTranslate». ………………………………………………………………………………34 Коломойцева И.А., Сторожук Н.О. Проектирование программной системы для бисероплетения «CrochetBeadMaster»………. 39 Кубашевский Д.В., Чернышова А.В. Сквозное шифрование переписки в социальной сети «ВКонтакте»……………………....... 44 Куташов Р.И., Федяев О.И. Разработка агентно-ориентированной модели кафедры университета с помощью FrameworkJade. …………………………………………………………………………………. 48 Лебедев В.Е., Чернышова А.В. Разработка модели защищенного облачного хранилища данных………………………....... 53 Московченко А.В. Разработка программной системы для технического обслуживания самолетов………....... 57 Ногтев Е.А. Программное обеспечение для решения оптимизационных задач управления предприятием……………………………………………………………………………………. 61 Подлесный А.И., Медведев А.С., Федяев О.И. Системавыделения лиц в видеопотоке с применением алгоритма Виолы-Джонса………. 66 Титаренко М.Г., Коломойцева И.А. Информационная система «Торгово-политическая карта мира» …………………………… 71 Труханов Т.И., Алехов М.Е., Федяев О.И. Исследование процессов самообучения неокогнитрона при распознавании графических образов …………………………………………………………………………………………... 76 Фоминых И.Д., Рудак Л.В., Незамова Л.В. Компьютерная лингвистика: морфологический словарь. …………………………………… 81 Ходич Д.В., Завадская Т. В., Грищенко В.И Методы разработки систем учета научно-технических мероприятий………………………. 85 3 СЕКЦИЯ «СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ» Авраимов В.С., Григорьев А.В. Анализ технологии и средств адаптации САПР СПРУТ…………………………………….. 90 БубловскийД.Н., АндрюхинА.И Рефакторинг сайта электронного журнала ДонНТУ…………………………………………. 95 Власюк А.В., Григорьев А.В. Анализ функциональных возможностей и перспектива развития САПР одежды…………. 100 Гончарук С.И., Григорьев А.В. Анализ функциональных возможностей и перспектив развития систем автоматизации проектирования и производства мебели………………………………………………………. 110 Жусупов М.В., Григорьев А.В. Анализ систем автоматизированного проектирования трубопроводов различного назначения………………………………………………………………………………………..121 Зимонин И.О., Григорьев А.В. Исследование методов разработки графических редакторов в CAD-системах на примере САПР трубопроводов ………………………………………………………………………...... 125 Коваленко Г.Р. Григорьев А. В. Анализ назначения и функциональных возможностей современных роботов…………...... 134 Кравченко Д.Ю., Новиков А.А., Козачков В.А. Перспективы интеграции технологии коллективного семантического поиска и формата rdf………………………………………………………………………………………………… 149 Кудрякова Т.Ю., Семушина Н.С., Семушин Е.Ю. Гибридный метод при решении задачи компоновки схем с учетом критерия энергопотребления……………………………………………………………………………… 153 Купов И.О., Козачков В.А., Царегородцев В.В. Решение задачи компоновки эволюционным методом………………………………………. 157 Лебедева Е.О., Полякова (Кравцова) А.А., Терещенко Д.Ю. Разработка гибридного алгоритма решения задачи компоновки СБИС……………………. 161 Лежебоков А.А., Ковтун А.В., Туйсус Е.В. Композитный алгоритм компоновки…………………………………………………………...165 Лежебоков А.А., Туйсус Е.В., Ковтун А.В. Модуль интеграции данных для экспертной оценки результатов процессов проектирования…………………………………………………………………………………. 169 Лежебоков А.А., Цырульникова Э.С., Лебединский А.Е. Об одном модуле визуализации результатов экспериментов……………………………...... 174 Новиков Е.Т., Андрюхин А.И Разработка PDM-подсистемы САПР сайта научного журнала……………………………… 178 Погорелов Д.Д. , Григорьев А.В. Анализ и сравнение современных MIDI-секвенсоров как проблемно-ориентированных САПР…………………………………………………………………………………………...... 182 Роговец Е.А., Григорьев А.В. Эффективность применяемого алгоритма построения моделей с ограничениями в различных САПР……………………………………………………………………………....... 189 Семушин Е.Ю., Купов И.О., Царегородцев В.В. Роевой алгоритм размещения компонентов СБИС с учетом временных характеристик…………………………………………………………………………………… 193 4 Страхов Н.Э., Кулиев Э.В., Логинов О.А. Размещение компонентов СБИС на основе биоинспирированного метода………………… 197 Страхов Н.Э., Кулиева Н.В., Семушина Н.С. Модифицированный алгоритм решения задачи размещения компонентов СБИС…… ….. 201 Цырульникова Э.С., Лебединский А.Е., Кравченко Ю.А. Об одной информационной системе учета наукоемких показателей……………………...... 204 СЕКЦИЯ «КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ» Горин Н.А., Струнилин В.Н.. Применение инфракрасного отражателя TCRT5000 в системе ориентирования в пространстве…………………………………………………………………………………….. 208 Елагин И.А., Краснокутский В.А. Исследование магнитометра HMC5883L в системе измерения скорости вращения летательного объекта…………………………………………………………………………… 212 Иванникова Е.В., Завадская Т.В. Демонстрационная модель персонального компьютера……………………………………... 217 Ленч В.С., Зинченко Ю.Е., Коваль А.В., Зинченко Т.А. Исследование методов создания эмуляторов периферийных устройств для удаленной отладки проектов в FPGA-лаборатории…………………………………………………......... 221 Лупашевский В.А., Аноприенко А.Я. Анализ компьютерных технологий распознавания жестов рук……………………………... 226 Лычагин Р. В., Аноприенко А. Я., Иваница С. В. Использование пространства тетралогики для программной реализации фильтра Габора при распознавании лиц.. ………………………………………………………………. 232 Мохначёв В.В., Тоичкин Д.В., Зинченко Ю.Е., Коваль А.В. Настройка и тестирование базовой модели квадрокоптера………………………………….. 237 Попова А.Н., Азаров А.Б., Мальчева Р.В. Разработка блока поиска пересечения луча с полигональным объектом…………………… 242 СЕКЦИЯ «МАТЕМАТИЧЕСКОЕ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ» Давыденко Д.П., Губенко Н.Е. Применение ментальных карт и геймификации при разработке компьютерных обучающих систем ……………………………………………………………………………... 247 Еремеев В.В., Губенко Н.Е. Анализ программно-аппаратных средств защиты информационной системы отделения банка……………………………………………………………………………………………... 252 Ефремченко И.А., Губенко Н.Е. Анализ метода разграничения доступа к информации на основе одноразового графического пароля……………………………………………………………………………. 257 Койбаш А.А., Кривошеев С.В. Подсистема прогнозирования траектории движения подвижного объекта распределенного симулятора тяжелой инженерной техники……………………………….. 262 Медгаус С.В., Губенко Н.Е. Сравнительный анализ методов лингвистической стеганографии………………………….. 266 Ходич Д.В., Губенко Н. Е. Выбор политик и правил информационной безопасности для повышения уровня информационной защищенности центра оптовой торговли «Мост»……………………..... 270 5 СЕКЦИЯ «ПРИКЛАДНАЯ МАТЕМАТИКА» Прокопенко Е.В., Лапшина Е.В. Моделирование процессом управления перемещением породы на отвале ………………... 275 Шевченко Т. Ф., Кучер Т. В. Работа с комплексными числами в языках программирования……………………………... 280 Юрко Ю.С., Бельков Д.В. Методы размещения файлов в компьютерных сетях………………………………………… 285 СЕКЦИЯ «ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ В ТЕХНИКЕ И БИЗНЕСЕ» Кравцова (Полякова) А.А., Старкова Ю.С., Терещенко Д.Ю. Разработка Web ориентированного модуля……………………………………………………293 Лещанов Д.В., Бова В.В. Подходы и технологии BI и KM при проектировании информационно-аналитических систем……………………………………………………………………………………………. 298 Лобкова А.А., Секирин А.И. Решение задачи трехмерной упаковки модифицированным генетическим алгоритмом……………………………………………………………………………………….302 Старкова Ю.С., Кулиева Н.В., Кравченко Ю.А. Когнитивная архитектура агентов…………………………………………………………...... 307 СЕКЦИЯ «СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА» Гуляев В.А., Бочаров Д.М. Применение алгоритмов таксономии для задач построения панорамных изображений…………………………………………………………………………………...... 311 Иванов А.А Использование тестирования и методология создания тестов при дистанционном образовании……………………………………………………………………………………... 315 Маруга М.М.,. Грунский И.С. Современные средства для разработки высокопроизводительных многопользовательских графических мультиплатформенных приложений…………………………………………… 320 6 СЕКЦИЯ «ПРОГРАММНАЯ ИНЖЕНЕРИЯ» УДК 004.414.28 Анализ функциональных возможностей современных систем управления беспилотных автомобилей и перспективы развития Аксёнов С.А., Григорьев А.В. Донецкий национальный технический университет [email protected], [email protected] Аксёнов С.А., Григорьев А.В. Анализ функциональных возможностей современных систем управления беспилотных автомобилей и перспективы развития. В статье описаны ключевые компоненты, с помощью которых можно создать беспилотный автомобиль, функции, над которыми должна осуществлять контроль система автоматического управления, специфика задачи. Продемонстрированы методы реализации подобного рода систем, описаны перспективы развития. Ключевые слова: беспилотный автомобиль, функциональность, разработка, автопилот. управление, датчики, требования, Введение Актуальность работы: в данное время многие крупные корпорации, так и исследовательские институты разрабатывают свои прототипы беспилотных автомобилей, использование которых даёт такие преимущества [1]: возможность безопасной перевозки грузов в опасных зонах, во время природных и техногенных катастроф, военных действий; повышение пропускной способности дорог, экономия времени людей, ныне затрачиваемого на управление транспортным средством; минимизация дорожно-транспортных происшествий, как следствие – уменьшение человеческих жертв; более экономичное использование топлива, снижение стоимости перевозки грузов и людей за счёт экономии на заработной плате водителей. Цель работы: исследование и анализ функциональных возможностей прототипов беспилотных автомобилей, рассмотрение методов реализации подобных систем, их перспективы развития. Постановка задачи управления автомобилем При проектировке беспилотных автомобилей обычно используются следующие датчики: лидар; радары; видеокамера; датчик оценки положения; инерционный датчик движения; GPS/ГЛОНАСС-приёмник. Лидар сканирует область вокруг автомобиля на расстоянии более 60 м и создает точную трехмерную картину его окружения. Лидар представляет собой вращающийся датчик на крыше автомобиля. Радары помогают определить точное положение удаленных объектов. Видеокамера определяет сигналы светофора и позволяет блоку управления распознавать движущиеся объекты, в том числе пешеходов и велосипедистов. Датчик оценки положения фиксирует движение автомобиля и помогает определить его точное местоположение на карте. Датчик оценки положения установлен на левом заднем колесе. Инерционный датчик движения измеряет направление ускорения или замедления, продольный и 7 поперечный крен кузова автомобиля, при его движении. Используется датчик системы курсовой устойчивости. Сигналы от входных устройств передаются в электронный блок управления (см. рис. 1), где производится их обработка в соответствии с заложенной программой и формирование управляющих воздействий на исполнительные устройства. В качестве исполнительных устройств используются конструктивные элементы рулевого управления, тормозной системы, системы курсовой устойчивости, системы управления двигателем [2]. Рисунок 1 – Обобщённая структурная схема системы управления беспилотного автомобиля Система управления беспилотного автомобиля должна контролировать разнообразные элементы автомобиля. Так, например, передвижение должно совершаться системой полностью, а для этого она должна осуществлять рулевое управление, управление двигателем, тормозной системой, системой курсовой устойчивости. Сигналы от входных устройств передаются в электронный блок управления, который с помощью исполнительных механизмов реализует следующие автоматические функции: поддержание безопасного расстояния до впереди идущего автомобиля; остановка и старт движения; движение по полосе; распознавание знаков ограничения скорости и приведение скорости в соответствие с требованиями знака; предотвращение чрезвычайных ситуаций; автоматическая парковка. Специфика задачи создания беспилотного автомобиля заключается в создании сложной системы управления, основанной на интеллектуальных алгоритмах, которая будет комплексно подходить к управлению всеми датчиками и системами. Главные требования к такой системе: безопасность от взлома; быстродействие; надёжность ПО и алгоритмов, лежащих в основе системы; простота использования. 8 Анализ функциональных возможностей современных систем управления беспилотных автомобилей Рассмотрим функциональные возможности наиболее типичных современных системы управления беспилотных автомобилей. Беспилотный автомобиль Google — проект компании по развитию технологии беспилотного автомобиля (см. рис. 2). Рисунок 2 – Беспилотный автомобиль Google Система использует информацию, собранную сервисом Google Street View, видеокамеры, датчик LIDAR, установленный на крыше, радары в передней части авто и датчик, подключенный к одному из задних колёс, который помогает определить позицию автомобиля на карте (см. рис. 3). Следует отметить, что автомобиль не прокладывает путь динамически – маршрут строится ещё до начала движения на основе имеющейся информации о карте местности и загруженности дорожного трафика на текущий момент [3]. По состоянию на март 2013 года, автомобили Google не могут передвигаться под проливным дождём и в условиях заснеженной местности. Связано это с тем, что идентификация местности производится посредством сравнения заблаговременно отснятых фотографий с результатами визуализации окружающего ландшафта сканирующими системами автомобиля. Благодаря такому подходу система может отличить пешехода от обычного телеграфного столба, но при плохих погодных условиях система сделать это бессильна. По состоянию на 28 августа 2014 автомобили Google не в состоянии распознавать временные сигналы светофора. Они не могут отличать пешеходов от полицейских или скомканную бумагу от камня. Что также немаловажно, они не умеют парковаться. Google планирует исправить эти недостатки к 2020 году [4]. 9 Рисунок 3 – Пример построенной модели среды беспилотным автомобилем Google Так же, свои планы на разработку автопилота существуют у компании Tesla Motors, которая выпустила обновление прошивки для произведённых ими автомобилей, активировав при этом функцию автопилота (см. рис. 4). Рисунок 4 – Скриншот приложения, управляющего автомобилями Tesla в режиме автопилота Автомобили Tesla пока не способны передвигаться абсолютно автономно. Автопилот был внедрён в автомобили Tesla после бесплатного обновления прошивки автомобиля, система автопилота первой версии содержит следующие, функции: Автоматическое управление. На скоростях свыше 20 км/ч Tesla сама разгоняется, тормозит и поворачивает, в чем ей помогает связка сенсоров и камер. Автоматическое перестроение. В отличие от систем круиз-контроля, Tesla умеет перестраиваться сама. Водителю достаточно лишь выбрать направление перестроения. При этом, машина сделает это безопасно, отслеживая все слепые зоны. Автоматическая парковка. В Tesla Motors утверждают, что их система у ближайшем будущем будет сама заезжать даже в гараж. Экстренное торможение. Tesla умеет распознавать препятствие и экстренно гасить скорость вплоть до полной остановки в случае опасности. Самообучение. Машина учитывает полосы движения, собирая данные при каждом включении автономной системы, затем отправляя их на сервера Tesla Motors. А потом полученные данные анализируются компанией, которая периодически выпускает обновления системы автопилота. Система работы автопилота включает в себя данные от работы камеры высокого разрешения, радара, 10 ультразвуковых сонаров, стоящих вокруг и спутниковый навигации и карт высокой детализации [5]. Перспективы развития систем управления беспилотных автомобилей Недавно Tesla Motors объявила, что новые автомобили, выпущенные компанией, получат новое оборудование для автопилота, которое способно сделать их полностью автономными. Нейронная сеть Tesla Neural Net, в сочетании с гидролокатором и программным обеспечением для обработки радиолокационных данных, обеспечит Model S, X и Model 3 обзором окружающего мира по всем направлениям с очень высокой точностью, недоступной людям. Глава Telsa Motors, Илон Маск сказал, что новое оборудование работает на базе суперкомпьютера с графическим процессором Nvidia Titan. Скорость обработки данных возрастет в 40 раз. Пакет нового оборудования включает три передних видеокамеры. Обзор на 360 градусов обеспечат 5 камер, установленных вокруг транспортного средства. Изображение дополняется данными с ультразвуковых сонаров, которые также покрывают 360 градусов обзора [6]. Одним из вариантов реализации алгоритма адаптации подсистемы определения взаимного положения движущихся транспортных средств, был предложен и протестирован Ивановым А. М., Шадриным С. С., Карпухиным К.Е. из МАДИ [7] может заключаться в следующем: 1) Выделение интересующей области видео потока; 2) конвертация цветного изображения в чёрно-белое; 3) нахождение контуров объектов и бинаризация изображения с применением фильтров; 4) применение функции оптического слежения за изменением пикселей соседних квадратов с определением векторов скоростей; 5) разбивка видео на прямоугольные сегменты с нахождением усреднённого вектора скорости каждого сегмента; 6) фильтрация сигналов; 7) распознавание движущихся объектов; 8) вывод результатов. Заключение В данное время индустрия автомобилестроения переживает бум на беспилотные автомобили. Развитие технологии передвижения беспилотного транспорта принесёт существенные преимущества по сравнению с автомобилями, управляемыми людьми. Данная технология заинтересует военных, хотя на данном этапе беспилотные автомобили могут самостоятельно передвигаться только по дорогам, её доработка позволит использовать беспилотные транспортные средства почти на любой поверхности и местности. Сейчас же, развитие идёт с учётом требований и спроса среди гражданских лиц. Литература 1. Беспилотный автомобиль // Wikipedia.org [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Беспилотный_автомобиль. 2. Система автоматического управления автомобилем // Systemsauto.ru [Электронный ресурс] – Режим доступа: http://systemsauto.ru/another/automatic_driving.html. 3. Русанов А. Д., Некрасов Д. К. Обзор принципов работы и алгоритмов распознавания объектов окружающей среды в беспилотных автомобилях // Новые информационные технологии в автоматизированных системах, 2016, С. 60. 4. Беспилотный автомобиль Google // Wikipedia.org [Электронный ресурс] – Режим доступа: https://ru.wikipedia.org/wiki/Беспилотный_автомобиль_Google. 5. Автопилот Tesla проехал 3-е кольцо в Москве. Обзор автопилота и автоматической парковки Tesla // Moscowteslaclub.ru [Электронный ресурс] – Режим доступа: https://moscowteslaclub.ru/blog-tesla/obzortesla/tesla-edet-po-moskve-sama.html. 6. Новый автопилот Tesla: 8 камер, производительность выше в 40 раз // Tesla-automobile.ru [Электронный ресурс] – Режим доступа: http://tesla-automobile.ru/noviy-avtopilot/. 7. Иванов А. М., Шадрин С. С., Карпухин К. Е. Интеллектуальное транспортное средство. Адаптация подсистемы определения взаимного положения движущихся транспортных средств // Известия МГТУ “МАМИ” №2(16), 2013, т. 1, С. 60. Aksyonov S.A. Grigoriev A.V. Analysis of the functional capabilities of modern unmanned vehicle control systems, and development prospects. This article describes the key components that can be used to create an unmanned vehicle, functions, over which should supervise the automatic control system, the specific objectives. Showcased methods of implementing such systems are described prospects. Keywords: unmanned vehicle control, sensors, requirements, functionality, design, autopilot 11 УДК 004.92 Исследование алгоритмов бинаризации растровых изображений шлифов металлов и сплавов Д.С. Бородин Московский государственный технический университет имени Н.Э. Баумана [email protected] Бородин Д.С. Исследование алгоритмов бинаризации растровых изображений шлифов металлов и сплавов. Статья посвящена вопросу бинаризации различных полутоновых изображений металлов и сплавов, полученных с помощью электронного микроскопа. Исследуются методы глобальной (Отсу, Абуталеба, Капура и Киттлера) и локальной (Бернсена, Ниблэка и другие) бинаризации. В работе определены исследуемые количественные и качественные характеристики, проведен эксперимент с целью выявления наиболее эффективного алгоритма для выбранного класса изображений. Ключевые слова: бинаризация, распознавание объектов, глобальные методы бинаризации, локальные методы бинаризации, пороговое значение, растровое изображение, гистограмма Введение Распознавание объектов по их двумерным изображениям стало в последнее время одной из основных задач машинного зрения. Исходная информация в таких изображениях обычно представлена в виде числовой матрицы, содержащей информацию о каждом пикселе изображения. На сегодняшний день существует достаточно много методов распознавания объектов: начиная от нахождения контура объекта и исследования его свойств, заканчивая искусственными нейронными сетями и более простыми методами распознавания. Одним из таких методов является бинаризация исходного изображения. В данной работе исследуется следующая проблема - определение эффективного алгоритма бинаризации для обработки полутоновых изображений шлифов металлов и сплавов. Решение этой проблемы позволит ускорить обработку определенного класса растровых изображений, позволяющую определить с большой степенью точности характеристики различных объектов, исследуемых в материаловедении, а также распознавать объекты в других областях, использующих обработку полутоновых изображений, например, распознавание текста. Цель работы - определить алгоритм бинаризации, который будет обеспечивать необходимые временные и качественные характеристики при обработке выделенного класса растровых изображений. К основным задачам, решаемым в данной работе, можно отнести следующие: определение набора алгоритмов бинаризации, определение характеристик исследуемых алгоритмов, подготовка набора тестовых изображений и определение на данном наборе наиболее эффективного алгоритма. Рассмотрим подробнее выделенные алгоритмы глобальной и локальной бинаризации, получившие практическое применение. Метод Отсу Алгоритм позволяет разделить пиксели двух типов («полезные» и «фоновые»), выбирая такой порог, чтобы дисперсия была минимальной. Обычно используется для бинаризации полутоновых изображений, но также может использоваться и для изображений иного рода. Метод использует график статистического распределения значений яркости пикселей. Гистограмма делится на два класса с помощью порогового значения яркости k , k целое значение от 0 до 255, число градаций оттенков серого. Каждому классу соответствуют относительные частоты совокупные моменты нулевого и первого порядка до уровня k , затем вычисляются средние уровни яркости для каждого классов. Далее вычисляется характеризующее качество разделения пикселей на два класса число: L1 2 (k ) max ( кл ) i 1 2 общ 12 2 где ( 2 ) ( )2 межклассовая дисперсия, а ( общ ) дисперсия для целого изображения. кл 0 1 1 0 Данный метод обладает рядом достоинств: 1. Метод очень прост в реализации — требуется лишь вычисление нулевого и первостепенного совокупного момента гистограмм оттенков серого; 2. Оптимальный порог (или набор порогов) выбирается стабильно и автоматически, не базируясь на дифференциации (используя локальные свойства гистограммы, такие как впадины), но базируясь на интеграции (используя глобальные свойства); 3. Могут быть проанализированы дальнейшие важные аспекты (например, оценка класса средних уровней яркости, расчет класса разделителей и т.д.); 4. Метод довольно общий — он покрывает довольно большой спектр бесконтрольных решений [2]. К недостаткам относят получение размытых линий, а также потерю небольших по размеру объектов [1]. Рис.1. Автоматическая бинаризация полутонового изображения с помощью метода Отсу. Метод Бернсена Данный метод достаточно широко используется при обработке различных схем. Является локальным методом обработки. Принцип работы алгоритма заключается в следующем: обычная квадратная матрица с нечетным числом пикселей (например, 3х3) «пробегает» в цикле по всем пикселям исходного изображения. На каждом шаге находится экстремальные значения яркости пикселей. Затем находится среднее значение. Если разность самого высокого и самого низкого уровней превышает некоторый порог, то пиксель бинаризуется белым, либо черным. Для всего изображения порог контраста является подбираемой константой [1, 3]. Данный метод имеет недостаток в виде помех, отражающихся черными пятнами на изображении. Они могут быть устранены дополнительной обработкой изображения. Метод Эйквеля Этот метод предполагает использование концентрических окон: малого S и большого L (рис. 2). Для большого окна рассчитывается пороговое значение, позволяющее поделить пиксели на два класса. Если математические ожидания яркости в классах имеют разницу, превышающую заданный уровень, пиксели в малом окне бинаризуются с пороговым значением, полученным по методу Отсу, иначе значения пикселей заменяют близкими к исходным. Рис. 2. Перемещение окон в методе Эйквеля. Недостатком этого метода являются разрывы на изображении и ложные черные области, которые можно устранить дополнительной обработкой (постпроцессингом) [1]. Используется метод, в основном, для обработки четких изображений. 13 Метод, использующий двумерную энтропию (метод Абуталеба) Для определения порогового значения в данном методе используется обычное и пространственное распределение оттенков серого. Изучаются оттенки серого каждого пикселя, а также среднее значение оттенков серого окружающих пикселей. Вычисляется частота появления каждой пары оттенков серого, и таким образом получают поверхность, которая, предположительно, будет иметь два пика и одну впадину (рис. 3). Пики отвечают за передний и задний фоны. Эти фоны могут быть разделены при помощи выбора порога, который максимизирует энтропию двух групп пикселей. Рис. 3. Изображение двумерной гистограммы Представленный алгоритм достаточно прост и итеративен, но вместе с тем при бинаризации некоторых изображений данным методом получается лишь утонченная версия исходного изображения, следовательно, при работе с этим алгоритмом может потребоваться дилатация. [4] Метод Ниблэка Основная идея этого алгоритма состоит в том, чтобы варьировать порог значения яркости бинаризации от точки к точке на основании локального значения стандартного отклонения. Порог яркости в точке (x,y) рассчитывается так: B( x, y) m( x, y) k * s( x, y) где m(x,y) среднее отклонение выборки для некоторой окрестности точки, s(x,y) стандартное отклонение. Параметр k определяет часть границы объекта, которую можно использовать в качестве объекта. Значение k 0,2 задает достаточно хорошее разделение объектов, если они заданы черным цветом, k 0,2 если заданы белым. Получил высокую популярность из-за его интеграции с этапом постпроцессинга [1] Метод Капура Один из глобальных алгоритмов бинаризации изображения, использующий метод нахождения порогового значения, основанный на энтропии. Данный метод максимизирует энтропии классов, которые могут быть интерпретированы, как измерения компактности и разделимости классов. В таком случае, целевая функция нахождения порогового значения может быть получена как: T h( g ) N h( g ) h( g ) h( g ) J (T ) log( ) log( ) P (T ) g T 1 P (T ) P (T ) g 0 P1(T ) 1 2 2 где h(g) — компоненты бимодальной гистограммы, n — максимальная длина гистограммы. Величина J(T) максимизируется, а T, которая максимизирует J(T) и есть пороговое значение [5]. Метод Киттлера В данном методе предполагается, что компоненты бимодальной гистограммы оттенков серого h(g) нормально распределены [6]. Нормальное распределение определяется их значениями i , стандартным отклонением i и априорными вероятностями Pi . В случае двух различных классов, заднего и переднего фона, а также данного порогового значения T, параметры могут быть получены следующими соотношениями: b 1 b h( g ) g Pi (T ) h( g ) i (T ) P (T ) ga g a i 14 i2 (T ) b T ,i 1 0, i 1 1 b ( g i (T ))2 h( g ) , где a . Pi (T ) g a n,i 2 T 1, i 2 Благодаря полученным значениям может быть определена целевая функция, которая впоследствии минимизируется для уменьшения пороговой ошибки [5]. Метод Яновица-Брукштейна Применяется для обработки картографических изображений. В качестве пороговой поверхности бинаризации используется поверхность потенциалов, строящаяся на базе локальной максимизации градиента яркости [7, 8]. Подсчет поверхности ведется от контурных пикселей. Для каждого неконтурного пикселя подсчитывается интерполяционный остаток R(x,y), и значение пикселя P(x,y) на n+1 ом шаге должно рассчитываться в соответствии с формулами: P ( x, y) Pn ( x, y) * Rn ( x, y) / 4 n1 Rn ( x, y) Pn ( x 1, y) Pn ( x 1, y) Pn ( x, y 1) Pn ( x, y 1) 4 * Pn ( x, y) причем для быстрой сходимости рекомендуют использовать значение в пределах от 1 до 2. Не производит дополнительного шума на изображении. Вместе с тем крайне малопроизводителен [1]. Сравнительный анализ алгоритмов бинаризации Для проведения сравнительной характеристики алгоритмов были поставлены эксперименты с пятью различными изображениями с использованием всех вышеописанных методов, при этом проводились замеры времени выполнения на компьютере с процессором AMD A8-550M APU with Radeon HD Graphics с частотой 2,10 ГГц. Одно из исследованных в работе экспериментальных изображений (рис.4) представляет собой полученное с помощью электронного микроскопа полутоновое изображение специального сплава, содержащего алюминий и вольфрамовую нить. Для этого изображения производились замеры времени путем многократного выполнения алгоритма с последующим усреднением. Рис. 4. Тестовое изображение Результаты применения бинаризационных методов оценивались по следующим критериям: 1. Сломанные структурные линии. Подсчитывались пробелы в линиях различной толщины, причем большие пробелы котировались хуже, чем маленькие; 2. Сломанные символы, текст и т.д. Учитывались символы и элементы текста с пробелами, также принималась во внимание степень фрагментации текста; 3. Нечеткость линий, символов, текста. Принимались во внимание степень нечеткости полученного изображения, а также число размытых напечатанных объектов; 4. Потеря целых объектов. Подсчитывалось число полностью потерянных напечатанных объектов; 5. Шум в однородных областях. Учитывалось число и размер шумовых «точек» и ложных объектов. По каждому из пяти предложенных критериев производилась оценка от 0 до 5. Оценка производилась экспертом в области обработки изображений. Полученные результаты можно увидеть в таблице 1: 15 Отсу Таблица 1. Сравнительная характеристика методов бинаризации. Номер изображения Результат Время выполнения (сумма 1-5) (сек.) 1 2 3 4 5 14 17 14 13 15 73 0.294 Бернсен 14 16 20 13 21 85 1.756 Эйквиль 15 20 21 18 13 87 13.023 Абуталеб 8 10 17 15 7 57 2.023 Ниблэк 20 21 16 19 13 89 1.005 Капур 12 10 17 14 3 56 0.588 Киттлер 8 8 17 11 6 50 0.344 Яновиц-Брукштейн 19 13 20 20 8 80 99.775 Метод Наиболее результативно справился метод Ниблэка у него одни из наилучших показаний по времени и качеству работы. Метод Отсу превосходит многие из глобальных алгоритмов бинаризации (Отсу, Абуталеб, Капур, Киттлер) по времени и качеству, однако в сравнении с локальными алгоритмами, он продемонстрировал нечеткость различных символов [9]. Тем не менее, метод Отсу справился с задачей бинаризации быстрее и визуально лучше алгоритмов, сопоставимых с ним по времени. Так как обработка символьных обозначений выходит за рамки предложенного объекта исследования и с учетом обозначенных выше преимуществ метода Отсу, а также учитывая тот факт, что алгоритм имеет понятный статистический смысл и является эффективным способом нахождения порога бимодальных изображений [10], целесообразно выбрать в качестве рабочего алгоритма бинаризации именно его. Заключение В данной статье была приведена классификация алгоритмов бинаризации различных растровых изображений выделенного в рамках исследования класса, проанализированы основные методы автоматической бинаризации изображений. Согласно выбранным критериям была произведена оценка предложенных методов, выбраны наиболее подходящие алгоритмы для поставленных в проблеме полутоновых изображений. В качестве направления дальнейшей работы можно рассмотреть дополнительно другие методы автоматической бинаризации, получившие менее широкое применение или методы, основанные на базе предложенных, например, метод Sauvola, Wolf, NICK, основанные на методе Ниблэка, и другие. Также можно расширить исследуемую задачу, рассматривая алгоритмы бинаризации в совокупности с этапом постпроцессинга на изображении (удаления ложных объектов), что, возможно, отразится на качестве получаемых результатов, но вместе с тем потребует дополнительных временных затрат. Литература 1. Федоров А. Бинаризация черно-белых изображений. Состояние и перспективы развития. Режим доступа: http://it-claim.ru/Library/Books/ITS/wwwbook/ist4b/its4/fyodorov.htm (дата обращения 29.10.2016). 2. Otsu N. A threshold selection method from gray-level histograms. // IEEE Trans. Systems, Man, and Cybernetics, 1979, vol. 9, no. 1, pp. 62–66. 3. Бернсен Дж. Динамический выбор порогового значения в полутоновом изображении: Сборник научных трудов 8-й международной конференции по распознаванию изображений, Париж, Франция, 1986, с. 1251 1255. 4. Abutaleb A. Automatic thresholding of gray-level pictures using two-dimensional entropy. // Computer Vision, Graphics and Image Processing, 1989, vol. 47, pp. 22–32. 5. Drobchenko A., Vartiainen J., Kamarainen J.-K., Lensu L., Kalviainen H. Thresholding Based Detection of Fine and Sparse Details. // Department of Information Technology Lappeenranta University of Technology P.O.Box 20, FI53851 Lappeenranta, Finland, 2005. 6. Kittler J., Illingworth J. Minimum error thresholding. // Pattern Recognition, 1986, vol. 19, pp. 41–47. 7. Прэтт У. Цифровая обработка изображений. Книги 1, 2. - М.: Наука, 2000. - 1024 с. 8. Хемминг Р.В. Цифровые фильтры. - М.: Наука, 1990. - 268 с. 9. Trier D., Taxt T. Evaluation of Binarization Methods for Document Images. // IEEE Trans. Systems, Man, and Cybernetics, 1995, vol. 9, no. 1, pp. 62–66. 10. Вильзитер Ю.В., Желтов С.Ю. Обработка и анализ изображений в задачах машинного зрения. -М.: Физматкнига, 2007. - 464 с. 16 Бородин Д.С. Исследование алгоритмов бинаризации растровых изображений шлифов металлов и сплавов. Статья посвящена вопросу бинаризации различных полутоновых изображений металлов и сплавов, полученных с помощью электронного микроскопа. Исследуются методы глобальной (Отсу, Абуталеба, Капура и Киттлера) и локальной (Бернсена, Ниблэка и другие) бинаризации. В работе определены исследуемые количественные и качественные характеристики, проведен эксперимент с целью выявления наиболее эффективного алгоритма для выбранного класса изображений. Ключевые слова: бинаризация, распознавание объектов, глобальные методы бинаризации, локальные методы бинаризации, пороговое значение, растровое изображение, гистограмма Borodin D.S. Metals’ and alloys’ raster images binarization methods analysis. The article is devoted to the question of different metals’ and alloys’ half-tone images binarization. Images are received with the electronical microscope. Global (Otsu, Abutaleb, Kapur, Kittler) and local (Bernsen, Niblack, etc.) binarization methods are analyzed. This work includes defined quantative and qualitative characteristics for effiency of binarization method evaluation. The results of a conducted experiment revealing the most effective method for chosen image class are provided. Keywords: binarization, object recognition, global binarization methods, local binarization methods, threshold, raster image, histogram. 17 УДК 004.4’422 Компилируемый язык описания программ для эмулятора машины Тьюринга Л.О. Воробьев Донецкий национальный технический ниверситет [email protected] Воробьев Л.О. Компилируемый язык описания программ для эмулятора машины Тьюринга. В статье рассматривается язык программирования для описания алгоритмов на машине Тьюринга. Проанализированы существующие способы записи программы для машины Тьюринга. Описывается синтаксис разработанного языка описания программ и обоснована эффективность его применения в разработке программного обеспечения. Ключевые слова: синтаксический анализ, компиляция, эмулятор, машина Тьюринга, форма Бэкуса-Наура Введение Цель работы: создание специализированного компилируемого языка описания программ для многоленточных и одноленточных машин Тьюринга, последующая разработка и реализация компилятора для созданного языка и написание эффективных алгоритмов интерпретации скомпилированных программ. Машина Тьюринга — абстрактная модель вычислительной машины, состоящая из бесконечной ленты и головки, которая двигается вдоль ленты, считывает и записывает содержимое ячеек, и может принимать различные состояния [1, с. 83]. В общем случае, существуют также многоленточные машины Тьюринга (в англоязычной литературе — multitape Turing machines [2, с. 126]), которые состоят из более чем одной ленты, перемещающихся независимо друг от друга. Программой для машины Тьюринга называется конечный набор команд [1, c. 84], математическая запись которых имеет вид: qsai → qtaj d (1) где qs, qt — номера состояний; ai, aj — содержимое ячейки; d — направление движения ленты. Команда, записанная в формуле (1), означает, что если головка машины Тьюринга находится в состоянии qs, а на ленте записан символ ai, то головка меняет свое состояние на qt, на ленту записывается символ aj , и лента перемещается в направлении d. Программы для многоленточных машин Тьюринга содержат команды, которые имеют вид: qs (ai1, ai2, ..., ain) → qt (aj1, aj2, ..., ajn) d (2) где: aik, ajk — содержимое ячеек на ленте под номером k; n — количество лент. Машины Тьюринга используется во множестве теоретических и практических исследованиях. К примеру, в статье [3] описано использование машины Тьюринга для реализации алгоритмов симметричного шифрования. Предлагаемая программная система может использоваться, как средство эмуляции многоленточных и одноленточных машин Тьюринга путем написания программ на специализированном языке программирования. Разработанный эмулятор машины Тьюринга имеет открытый API-интерфейс для языков C и C++, что позволяет использовать созданный язык программирования в разработке прикладного программного обеспечения. Использование нового компилируемого языка программирования позволит ускорить работу программного обеспечения, использующего механизм машины Тьюринга. 18 Анализ существующих решений Программная система, которая выполняет команды вида (1) и (2) называется эмулятором машины Тьюринга. Математической моделью такой системы можно считать универсальную машину Тьюринга [1, с. 87]. На сегодняшний день существует большое количество эмуляторов машины Тьюринга, которые используют различный синтаксис текстовых файлов для представления программ. Программа [4], написанная на языке Паскаль, имитирует работу одноленточной машины Тьюринга. При этом программы для эмуляции задаются в виде таблицы переходов, каждая клетка которой состоит из трех частей: 1) символ из заданного алфавита или знак "_"для обозначения «пустого» символа; 2) направление перемещения: > (вправо), < (влево) или . (на месте); 3) новое состояние автомата [4]. Существует онлайн-сервис [5], предоставляющий возможность выполнения программ для одноленточной машины Тьюринга. Программа задается списком команд, наиболее близких к математической записи вида (1) и (2). Программа JFLAP позволяет имитировать работу однолетночной и многоленточной машины Тьюринга [2, с. 126]. При ближайшем рассмотрении можно заметить, что программы для машины Тьюринга задаются в виде графа переходов, который вводится пользователем в интерактивном режиме. Постановка задачи В данной работе необходимо спроектировать синтаксис языка описания программ для многоленточных и одноленточных машин Тьюринга. Полученную грамматику следует использовать для построения компилятора, транслирующего программу на формальном языке в инструкции для эмулятора машины Тьюринга. Разработка синтаксиса для нового формального языка представляет собой неординарную задачу. Следует учесть несколько факторов, которые влияют на качество проектируемого синтаксиса: – стандартизация — синтаксис языка должен унаследовать стандартные конструкции из других языков программирования [6, с. 48]; – ясность, простота единообразие понятий языка [6, с. 38]; – обеспечение простоты чтения и написания программы [6, c. 94]. Новый синтаксис должен решить ряд проблем, связанных с описанием программы для машины Тьюринга. Команды могут не использовать запись на ленту нового значения, могут не перемещать ленту, не использовать переход в другое состояние. Программа может содержать несколько состояний, для которых команды отличаются лишь несколькими значениями. Программа может содержать команды, выполняющие одно и то же действие при различных наборах значений на лентах. Решение данных проблем позволит сократить описание программ для машины Тьюринга. Синтаксис и семантика языка Описание синтаксиса языка можно представить при помощи БНФ — формы Бэкуса-Наура [7, с. 17]. Язык описания программ для машины Тьюринга имеет синтаксис, заданный в виде БНФ на рис 1. Ключевые слова turing, template, begin, end, state, dir, char, nul, left, right, and, or, write, move, goto являются нечувствительными к регистру. В качестве идентификатора (<identifier>) может выступать любая последовательность букв, цифр, и знаков «_». Начало идентификатора не может быть цифрой или знаком «$». Строка (<string>) — любая последовательность символов, заключенная в двойные кавычки. Символьная константа (<character-constant>) — символ или его шестнадцатеричное представление, заключенное в одинарные кавычки. Запись символа в шестнадцатеричном представлении имеет вид: \xHH , где HH — шестнадцатеричное число. Символ «\» Задается с помощью конструкции \\ . Последовательности \" , \ позволяют задавать символы кавычек внутри строк и символьных констант. Номер ленты (<tape-number>) — последовательность цифр, записанных после знака «$». ' ' 19 ' ' ' ' ' <translation-unit> ::= {<external-declaration>}* <external-declaration> ::= <turing-definition> <turing-definition> ::= turing <identifier> { {<set-declaration>}* {<turing-declaration>}+ } <set-declaration> ::= <identifier> = <string> <character-list> ::= <character-constant> | <character-list>, <character-constant> <turing-declaration> ::= <state-declaration> | <template-declaration> <template-declaration> ::= template <identifier> ( <parameter-list> ) {<transition-rule>}+ <state-declaration> ::= {begin}? state <identifier> {<transition-rule>}+ | {begin}? state <identifier> : <identifier> ( <initializer-list> ) <parameter-list> ::= <parameterdeclaration> | <parameter-list> , <parameter-declaration> <parameterdeclaration> ::= <type-specifier> <identifier> <type-specifier> ::= dir | char | state <initializer-list> ::= <initializer> | <initializer-list> , <initializer> <initializer> ::= <character-expression> | <direction-expression> | <stateexpression> <character-expression> ::= <character-constant> | <identifier> | <tape-number> | nul <set-expression> ::= <string> | <identifier> <direction-expression> ::= <direction-constant> | <identifier> <direction-constant> ::= left | right <state-expression> ::= <identifier> | end <conditionalexpression> ::= <or-expression> <or-expression> ::= <andexpression> | <or-expression> or <and-expression> <and-expression> ::= <equality-expression> | <and-expression> and <equality-expression> <equalityexpression> ::= <relational-expression> | <tape-number> == <character-expression> | <tape-number> != <character-expression> <relational-expression> ::= <primary-expression> | <tape-number> < <character-expression> | <tape-number> > <character-expression> | <tape-number> <= <characterexpression> | <tape-number> >= <character-expression> <primary-expression> ::= <tape-expression> | ( <tape-list> ) <tape-list> ::= <tape-expression> | <tape-list> , <tape-expression> <tape-expression> ::= <character-expression> | <set-expression> <transition-rule> ::= <conditional-expression> : {<statement>}* <statement> ::= <writestatement> | <move-statement> | <gotostatement> <write-statement> ::= write <character-expression> ; | <tape-number> . write <character-expression> ; <move-statement> ::= move <direction-expression> ; | <tape-number> . move <direction-expression> ; <goto-statement> ::= goto <state-expression> ; Рисунок 1 — Синтаксис языка описания машины Тьюринга в форме Бэкуса — Наура 20 Программа для машины Тьюринга, записанная с помощью заданного синтаксиса представляет собой определение символьных множеств (<set-declaration>) и описание правил перехода (<transition-rule>), сгруппированных в состояния (<state-declaration>). Описание правил перехода состоят из условия (<conditional-expression>) и спаиска операторов (<statement>). Если состояния имеют похожие правила перехода (проблема 2, см. стр. 2), тогда можно использовать шаблоны (<template-declaration>), которые описивают правила перехода используя параметры из списка (<parameter-list>). В таком случае определение состояния будет содержать символ «:», идентификатор шабона и список фактических параметров (<initialiser-list>). Проблема, когда при различных наборах значений на лентах автомат выполняет одинаковые действия (проблема 3, см. стр. 2), решается путем использования условных выражений (<confitionalexpression>). К примеру, если одно и то же правило перехода используется, когда на двух лентах записаны одинаковые значения из множества alpha, то условное выражение может иметь вид: (alpha, alpha) and $2 == $1. В случае, если команда не меняет значение на ленте, не передвигает ленту или не переводит автомат в новое состояние (проблема 1, см. стр. 2), то соответствующий оператор (<statement>) может быть опущен. Описание структуры разработанной системы Разработанная система состоит из компилятора mtrc, написанного на языке C++, и интерпретатора правил перехода, выполненного в виде статической библиотеки (statestep.lib), написанной частично на языке C и на Ассемблере. Компилятор mtrc — это программа, которая считывает текст программы, записанный на языке описания машин Тьюринга, и транслирует (переводит) его в эквивалентную программу для интерпретатора правил перехода (рис. 2). В процессе трансляции, компилятор может сообщать пользователю о налиции ошибок в исходной программе [8]. Исходная программа (файл increment.mtr) Целевая программа (файл increment.obj) Компилятор MTRC Сообщения об ошибках turing increment { begin state q0 section .text 00: 3C 31 75 06 B8 00 00 32 08: 00 C3 3C 00 75 06 B8 31 10: 00 20 FF C3 B8 00 00 80 18: 00 C3 1: move left; nul: write 1; goto end; section .data 00: 04 00 00 00 01 00 00 00 08: 00 00 00 00 } Рисунок 2 — Компилятор mtrc В качестве примера для исходной программы использована машина Тьюринга, которая прибавляет 1 к числу в унарном коде. Математическая запись команд этой машины Тьюринга имеет вид: q11 → q11L; (3) q1 → qz1N: Компилятор создает объектный файл, содержащий секции .data и .text. Секция .data содержит таблицу состояний, которая представляет собой массив указателей на процедуры из секции .text. В данном примере компилятор создал одну процедуру для состояния, которая содержится в секции .text. Семантика этой процедуры может быть описана с помощью ассемблерных команд и языка C (табл. 1). 21 Таблица 1 — Дизассемблирование скомпилированного объектного модуля Машинный код Ассемблер x86 Язык C 00: 3C 31 02: 75 06 04: B8 00 00 32 00 09: C3 0A: 3C 00 0C: 75 06 0E: B8 31 00 20 FF 13: C3 14: B8 00 00 80 00 19: C3 cmp jne mov ret .e1: cmp jne mov ret .e2: mov ret al, 1 .e1 eax, 00320000h ' ' al, 0 .e2 eax, 0FF200031h switch(al) { case 1 : return 0x00320000; case 0: return 0xFF200031; default: return 0x00800000; }; ' ' eax,00800000h Процедура, созданная компилятором, возвращает правило перехода, которое зависит от значения регистра AX. В этот регистр интерпретатор должен записывать символы, содержащийся на лентах в текущем состоянии машины. В реализации эмулятора машины Тьюринга использованы эффективные алгоритмы, записанные на языке Ассемблера, который существенно повышают скорость выполнения программы. Для использования программы, написанной на данном языке программирования необходимо написать простую программу на языке C, использующую эмулятор машины Тьюринга. Выводы Разработанный язык описания программ для эмулятора машины Тьюринга не является полноценным языком программирования, однако он может быть использован в программных разработках вместе с языками C/C++, C#, и другими. Применение разработанного языка позволит ускорить работу программного обеспечения, которое использует механизм машины Тьюринга. Литература 1. А. К. Гуц. Математическая логика и теория алгоритмов: Учебное пособие. [Текст] / А. К. Гуц. — Омск : Издательство Наследие. Даилог-Сибирь, 2003. — 108 с. 1. Rodger, S. H. JFLAP: An Interactive Formal Languages and Automata Package. [Text] / S. H. Rodger, T. W. Finley. — [S. l.] : Jones and Bartlett, 2006. — 192 p. 2. М. М. Чернушко. Применение машины Тьюринга для реализации алгоритмов шифрования [Текст] / М. М. Чернушко // Технические науки: теория и практика: материалы II междунар. науч. конф. (г. Чита, январь 2014 г.). — [Б. м.] : Издательство Молодой ученый, 2014. — С. 19–22. 3. К. Поляков. Учебная модель компьютера «Машина Тьюринга» [Электронный ресурс]. — [Б. м. : б. и.], 2016. — Режим доступа: http://kpolyakov.spb.ru/prog/turing.htm (дата обращения: 06.10.2016). 4. А. С. Балюк. Детерминированная машина Тьюринга [Электронный ресурс]. — [Б. м. : б. и.], 2007. — Режим доступа: http://matinf.igpu.ru/simulator/tm.html (дата обращения: 06.10.2016). 5. Пратт Т. Языки программирования: разработка и реализация [Текст] / Пратт Т., Зелковиц М. ; Под ред. А. Матросова. — СПб. : Питер, 2002. — 688 с. 6. В. А. Серебряков. Основы конструирования компиляторов [Текст] / В. А. Серебряков, М. П. Галочкин. — [Б. м.] : Едиториал УРСС, 2001. — 192 с. 7. А. Ахо. Компиляторы: принципы, технологии и инструменты [Текст] / А. Ахо, Р. Сети, Дж. Ульман. — М. : Издательский дом «Вильямс», 2003. — 768 с. Vorobuev L.O., The compiled programming language for emulator of Turing mashines. The article deals with the programming language to describe the algorithm on a Turing machine. Analyzed the existing methods of recording a program for a Turing machine. It describes the syntax of the developed language and proved its efficiency in software development Keywords: parsing, compilation, emulator, the Turing machine, Backus-Naur Form 22 УДК 004.056 Защита информации в приложениях для мгновенной передачи сообщений О.С. Грищенко, А.В. Чернышова Донецкий национальный технический университет [email protected] [email protected] Грищенко О.С., Чернышова А.В. Защита информации в приложениях для мгновенной передачи сообщений. Представлен обзор существующих месенджеров, поддерживающих защиту на уровне сообщений, и алгоритмов защиты, используемых в этих приложениях. Проведен первый этап проектирования авторской программы-месенджера. Ключевые слова: месенджер, шифрование, криптографический протокол, защита данных. Введение Цель работы – разработка приложения для обмена мгновенными сообщениями, предоставляющего защиту пользовательских данных и удовлетворяющего современным требованиям к безопасности пользовательской переписки. Проектирование приложения осуществляется на основе данных, полученных при анализе наиболее защищенных существующих приложений. Решение о создании системы было принято в связи с актуальностью проблемы защиты персональных данных и востребованностью приложений для защищенного обмена сообщениями. Необходимость обеспечения безопасности персональных данных в наше время очень важна. Информация всегда имела большую ценность, но в связи со стремительным развитием информационных технологий защита личных данных выходит на новый уровень. Из-за этого приложения, созданные для защиты данных, сейчас обретают все большую популярность. Обзор существующих месенджеров, поддерживающих защиту на уровне сообщений Chatsecure [1] — разработанное для iOS и Android приложение для обмена мгновенными сообщениями с поддержкой шифрования. Разработчиком является GuardianProject. Шифрование обеспечивается с помощью протокола OTR (Off-the-Record) [2], а передача сообщений - по протоколу XMPP[3]. Сообщения остаются приватными если оба собеседника используют приложения с поддержкой OTR. ChatSecure не сохраняет отправленные сообщения в памяти устройства. Приложение умеет работать с несколькими учётными записями. ChatSecure позволяет проводить групповые чаты. Приложение позволяет передавать мультимедиа-сообщения, фотографии и файлы. Является открытым. CryptoCat [4] — программа для обмена сообщениями с поддержкой шифрования. Является открытым. Может работать в браузерах Chrome, Firefox, Safari и Opera, а также в качестве отдельного сервиса в Apple OS X и на iPhone. Использует шифрование данных через протокол OTR и передает зашифрованные данные по Jabber/XMPP. Сообщения шифруются с помощью AES-256 [5]. После окончания диалога переписка удаляется автоматически в течение нескольких минут. При повторном входе в тот же диалог никто из участников диалога не сможет просмотреть ранее отправленные сообщения. Telegram [6] — кроссплатформенный месенджер, позволяющий обмениваться текстовыми сообщениями и файлами размером до 1,5 Гб. Обеспечивает защиту данных с помощью протокола MTProto, который предполагает использование нескольких криптографических протоколов. При авторизации и аутентификации пользователя приложение используют алгоритмы RSA-2048[7] и Диффи-Хеллмана [8]. Для шифрования сообщений использует AES. В режиме секретных чатов реализует end-to-end шифрование [9]. Signal [10] позволяет обмениваться сообщениями и звонками с абонентами из телефонной книги мобильного устройства. Приложение предоставляет возможность отправлять переписки в архив. Приложение обеспечивает криптозащиту телефонных разговоров от прослушки, записи и перехвата. Для шифрования данных используется алгоритм AES с 256-битным ключом. Signal способно обеспечить шифрование голосовой связи на всем пути прохождения сигнала. Для этого используется Wi-Fi подключение или мобильное соединение. Для защиты от прослушки на экране отображаются два случайных слова, которые должен повторить собеседник. TextSecure [10] - месенджер для безопасной передачи мгновенных сообщений, файлов и мультимедиа данных. TextSecure использует открытый протокол Signal, который реализует end-to-end шифрование данных. Ключи, использующиеся для шифрования, хранятся только на устройстве пользователя. Для проверки подлинности собеседника предусмотрено ручное сравнения отпечатков ключей на устройствах, либо сканирование QR-кода. TextSecure предоставляет также возможность создания групповых чатов, которые также шифруются. При этом серверы не имеют доступа к метаданным группы. 23 SilentCircle [11] – это комплекс приложений, которые предоставляют возможность передачи мгновенных сообщений, email, позволяют совершать звонки и устраивать видеоконференции. Имеет функцию самоуничтожения сообщений по прошествии некоторого времени. SilentCircle является сервисом с платной подпиской. Приложение независимо от центрального сервера. Все ключи, используемые при шифровании, хранятся на устройстве пользователя. Через серверы информация передается в зашифрованном виде. SilentCIrcle использует SCIMP (основанный на ZRTP) для генерации ключей, которые используются при установлении связи [11]. Месенджер позволяет удалить любое уже отправленное сообщение. В таблицах ниже представлено сравнение характеристик рассматриваемых месенджеров. Таблица 1. Сравнение общих характеристик рассматриваемых месенджеров. Обмен Обмен Криптографический Хранение Название текстовыми Открытый мультимедиа протокол сообщений сообщениями данными Chatsecure OTR + + + CryptoCat OTR + + Telegram MTProto + + -(сервер) Signal SignalProtocol + + + + TextSecure SignalProtocol + + + + SilentCircle SCIMP + + + Бесплатный + + + + + - Таблица 2. Сравнение средств защиты месенджеров. Название Симетри чные алгоритм ы Хеш функци и Аутентификац ия сообщений, защита целостности Возможность удалить отправленное сообщение Разработчики не имеют доступ к данным Chatsecure AES SHA-1 HMAC - + CryptoCat AES SHA-1 HMAC удаляются автоматическ и Telegram AES SHA-1, MD5 сравнение секретных кодов + Signal AES SHA HMACSHA256 SAS - TextSecure AES-256 SHA HMACSHA256 - SHA SAS + SilentCircle AES Данные защищены при краже ключей Способ согласования ключей SIGMA, SKEME и HMQV SIGMA, + + SKEME и HMQV алгоритм +(в +(в Диффиsecretchats) secretchats) Хеллмана ZRTP с + + использование м Curve25519 алгоритм + + ДиффиХеллмана + + ZRTP + Таким образом, все рассматриваемые протоколы предоставляют возможность обмена зашифрованными сообщениями, но используют различные криптографические алгоритмы для обеспечения защиты данных. Большинство рассмотренных месенджеров позволяют хранить сообщения, а Telegram и Chatsecure позволяют удалять ранее отправленные сообщения (хотя после удаления сообщений в Telegram на компьютерах клиентов могут остаться некоторые данные, например прикрепленные файлы). Все рассмотренные месенджеры кроме SilentCircle и серверной части Telegram являются открытыми. Обмен мультимедийными данными не поддерживают только CryptoCat и Telegram. Для согласования ключей все рассмотренные месенджеры используют алгоритмы, основанные на алгоритме Диффи-Хеллмана. Для шифрования данных все рассмотренные месенджеры используют алгоритм AES и предполагают защиту данных даже при перехвате ключей безопасности. Все рассмотренные месенджеры кроме SilentCircle являются бесплатными. К недостаткам описанных месенджеров можно отнести: Chatsecure – не дружественный интерфейс, отсутствие возможности обмена мультимедийными данными, не сообщает о поступивших зашифрованных сообщениях, если статус пользователя offline. CryptoCat - отсутствие возможности хранения сообщений и обмена мультимедийными данными. Telegram - закрытая серверная часть, довольно громоздкий криптографический алгоритм, отсутствие возможности обмена мультимедийными данными. 24 Signal – присутствие исключительно на платформе Android. TextSecure - довольно бедная функциональность, присутствие исключительно на платформе Android. SilentCIrcle - непрозрачный процесс регистрации, значительная стоимость ($100 в год). Обзор существующих протоколов защиты информации в месенджерах Протокол OTR отвечает следующим требованиям к безопасности передаваемых данных: – шифрование сообщений — никто иной не сможет прочитать сообщения; – аутентификация собеседников — уверенность в том, кто является собеседником; – perfectforwardsecrecy — переписка не компроментируется при потере секретных ключей; – возможность отречения — третье лицо не сможет доказать принадлежность сообщений[2]. OTR использует протоколы согласования и аутентификации ключей SIGMA, SKEME[12] и MQV[13]. Для аутентификации сообщений используется HMAC[14]. При этом используется ключ, полученный хешированием ключа, используемого для шифрования сообщения. Когда сторона A передает сообщение M другой стороне B, вместе с сообщением она передает вычисленное с помощью общего ключа значение HMAC(M, K). Сторона B, получив сообщение, может также вычислить HMAC(M, K).[2] Если оно совпадает с полученным значением, то сообщение было передано одной из сторон, участвующих в переписке. В то же время использование HMAC обеспечивает отрицаемость. Для шифрования сообщений используется алгоритм AES в режиме счётчика. Построенный таким образом шифр обеспечит спорное шифрование. [2] SignalProtocol - криптографический протокол, использующий end-to-end шифрование. Использует комбинацию DoubleRatchetAlgorithm предварительных ключей и протокола Диффи-Хеллмана, или протокол ZRTP [15] с алгоритмом Curve25519 [16] для согласования ключей, алгоритм AES для шифрования данных и HMAC для аутентификации и защиты целостности сообщений. Он не обеспечивает сохранение анонимности и требует наличия серверов для ретрансляции сообщений и хранения ключей. Для аутентификации, пользователи могут вручную сравнить отпечатки открытых ключей. Политика конфиденциальности Signal предусматривает, что идентификаторы получателей хранятся на серверах Signal столько, сколько необходимо для того, чтобы передавать каждое сообщение. [10] В MTProto прежде чем сообщение будет передано по сети с использованием транспортного протокола, оно шифруется и в начало сообщения добавляется внешний заголовок, который состоит из: 64-битного идентификатора ключа (который уникально идентифицирует ключ авторизации для сервера, а также для пользователя) и 128-битного ключа сообщения. Ключ юзера вместе с ключом сообщения определяет актуальный 256-битный ключ и 256-битный вектор инициализации, который шифрует сообщение, используя AES-256 шифрование с расширением неопределённого искажения (infinitegarbleextension, IGE). Ключ сообщения определяется 128 битами нижнего порядка от SHA1 тела сообщения. Составные сообщения шифруются как одно сообщение. [6] Проектирование авторской программы-месенджера После анализа существующих защищенных месенджеров было принято решение о разработке нового месенджера с поддержкой защиты передаваемых данных. Основываясь на анализе механизмов защиты существующих продуктов, к разрабатываемому приложению были предъявлены следующие требования: - обеспечение надежного механизма согласования ключей; - шифрование всех передаваемых данных; - хранение сообщений в зашифрованном виде; - отсутствие доступа к передаваемым данным при передаче через сервер; - проверка целостности сообщений. Для разрабатываемого продукта был спроектирован протокол, удовлетворяющий всем выше перечисленным требованиям. Для согласования ключей протокол использует алгоритм RSA. Для шифрования передаваемых данных используется алгоритм AES, для проверки целостности сообщений используется электронно-цифровая подпись. Протокол предполагает два уровня шифрования: шифрование канала между клиентом и сервером и шифрование передаваемых сообщений непосредственно между клиентами. Таким образом, сообщения клиентов будут храниться на сервере в зашифрованном виде, а ключи для расшифровки сообщений будут находиться только на пользовательских компьютерах. На транспортном уровне используется протокол TCP. Возможная схема работы протокола безопасности месенджера представлена на рисунках ниже. На рис. 1 представлен этап 1 - обеспечение безопасности потока, подготовка к аутентификации. 25 Рисунок 1 - Обеспечение безопасности потока, подготовка к аутентификации На этапе 1 клиент посылает серверу сообщение, содержащее тег <stream>. Сервер создает поток обработки сообщений данного клиента и отвечает клиенту сообщением, также содержащим тег <stream>. После этого сервер генерирует публичный ключ RSA и отправляет его клиенту. Клиент принимает публичный ключ RSA сервера, генерирует собственный публичный ключ RSA и отправляет его серверу. Сервер генерирует симметричный ключ AES, шифрует его публичным ключом клиента и отправляет клиенту. После этого все данные, передаваемые между клиентом и сервером, шифруются с помощью симметричного алгоритма AES. Сервер сообщает о завершении согласования безопасности потока, посылая сообщение с тегом <processed>. На рис. 2 представлен процесс аутентификации пользователя. Рисунок 2 - Аутентификации пользователя На этапе 2 сервер посылает клиенту сообщение с тегом <auth>, говорящее о том, что клиент должен аутентифицироваться. Клиент отвечает сообщением, содержащим его логин и хеш от пароля. Сервер проверяет полученные данные и, если аутентификация прошла успешно, отправляет сообщение с тегом <sccess>. На рис. 3 представлен процесс обеспечения безопасности данных на уровне пользователей. Рисунок 3 - Обеспечения безопасности данных на уровне пользователей Сообщения между клиентами отправляются через сервер. Перед началом передачи сообщений клиенты должны установить между собой защищенный канал передачи данных. Клиент, инициировавший обмен сообщениями, передает свой публичный RSA-ключ клиенту-получателю. Получатель генерирует собственный публичный ключ и отправляет его инициатору. После этого инициатор генерирует симметричный AES-ключ, шифрует его публичным ключом получателя, отправляет получателю. Текст всех последующих сообщений шифруется с помощью алгоритма AES. После этого инициатор и получатель обмениваются публичными RSAключами для использования электронно-цифровой подписи. Когда согласование защиты закончено получатель отправляет инициатору сообщение со значением success=true. На рис. 4 представлен процесс обмена зашифрованными сообщениями между пользователями. После согласования защиты пользователи могут обмениваться сообщениями, которые шифруются с помощью алгоритма AES и подписываются с помощью электронно-цифровой подписи. 26 Рисунок 4–Процесс обмена зашифрованными сообщениями между клиентами Выводы Был проведен обзор существующих месенджеров, поддерживающих защиту на уровне сообщений. Были рассмотрены существующие механизмы защиты данных для систем мгновенного обмена сообщениями. В рамках данной работы был проведен начальный этап проектирования авторской программы-месенджера. В дальнейшем планируется реализовать описанное приложение и расширить его функциональность возможностью организации защищенных групповых чатов и передачей файлов. Литература 1. Сhatsecure// hatsecure.org [Электронный ресурс]. – Режим доступаhttps://chatsecure.org/. 2. Off-the-RecordMessaging// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Off-the-Record_Messaging. 3. XMPP // Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/XMPP. 4. Cryptocat // crypto.cat [Электронный ресурс]. – Режим доступа: https://crypto.cat/. 5. AdvancedEncryptionStandard// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard. 6. Telegram // tlgrm.ru. [Электронный ресурс]. – Режим доступа: https://tlgrm.ru/techfaq. 7. RSA // Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/RSA. 8. Протокол Диффи—Хеллмана// Википедия [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Протокол_Диффи_—_Хеллмана. 9. End-to-endencryption// Википедия [Электронный ресурс]. – Режим доступа: https://en.wikipedia.org/wiki/End-to-end_encryption. 10. Open whisper systems// whispersystems.org. [Электронный ресурс].– Режим доступа: https://whispersystems.org/. 11. Silentcircle //silentcircle.com [Электронныйресурс]. – Режимдоступа: https://www.silentcircle.com/products-and-solutions/technology/zrtp/#why-do-we-need-secure-voip. 12. SKEME// Википедия. [Электронный ресурс]. – Режим доступа:https://ru.wikipedia.org/wiki/SKEME. 13. MQV// Википедия. [Электронный ресурс]. – Режим доступа:https://ru.wikipedia.org/wiki/MQV. 14. HMAC // Википедия. [Электронный ресурс]. – Режим доступа:https://ru.wikipedia.org/wiki/HMAC. 15. ZRTP// Википедия. [Электронный ресурс]. – Режим доступа:https://ru.wikipedia.org/wiki/ZRTP. 16. Curve25519 // Википедия. [Электронный ресурс]. – Режим доступа: https://en.wikipedia.org/wiki/Curve25519. Грищенко О.С., Чернышова А.В. Защита информации в приложениях для мгновенной передачи сообщений. Представлен обзор существующих месенджеров, поддерживающих защиту на уровне сообщений и алгоритмов защиты, используемых в этих приложениях. Проведен первый этап проектирования авторской программы-месенджера. Ключевые слова: месенджер, шифрование, криптографический протокол, защита данных. Grichenco O. S., Chernyshova A. V. Protection of the information in the applications for instant messaging. A review of the existing messengers that support the message-level security and protection algorithms used in these applications. The first stage of the author messenger designing. Keywords: messenger, encryption, encryption protocol, data protection. 27 УДК 004.056.5 Анализ средств защиты больших данных в распределенных системах А.А. Егоров, А.В. Чернышова, Н.Е. Губенко Донецкий национальный технический университет [email protected], [email protected], [email protected] Егоров А.А., Чернышова А.В., Губенко Н.Е. Анализ средств защиты больших данных в распределенных системах. В статье описана и проанализирована с точки зрения безопасности распределенная модель обработки данных (MapReduce). Выполнен обзор существующих фреймворков обработки больших данных с описанием основных их возможностей. Представлен анализ существующих средств защиты для распределенных систем. Ключевые слова: распределенная система, большие данные, обработка данных, MapReduce, NoSQL, распределенная файловая система, безопасность данных, средства защиты, SSL, TLS. Введение Концепция больших данных (“BigData”) на сегодняшний день активно применяется ведущими технологическими компаниями во многих отраслях. Наиболее популярное их использование замечено в торговле, здравоохранении, телекоммуникациях, в финансовых компаниях, а также в государственном управлении [1]. При использовании данной технологии в розничных магазинах можно накопить множество информации о клиентах, системе управления запасами, поставками товарной продукции. С помощью полученной информации можно прогнозировать спрос или поставки товара, а также оптимизировать затраты. В финансовых компаниях большие данные предоставляют возможность проанализировать кредитоспособность заемщика, т. е. на основе выявленного оборота денежных средств подобрать выгодные и оптимальные условия кредитования, предложить дополнительные подходящие ему банковские услуги. Применение такого подхода позволит значительно сократить время рассмотрения заявок. Операторы сотовой связи также как и финансовые организации имеют огромные базы данных, что позволяет им проводить детальный анализ накопленной информации. Помимо использования Big Data в целях предоставления качественных услуг технологию можно применить для выявления и предотвращения мошенничества. Предприятия горнодобывающей и топливно-нефтяной промышленности могут накапливать информацию о количестве добытой продукции и на основании этих данных делать выводы об эффективности разработки месторождения, следить за состоянием оборудования, строить графики прогнозирования спроса на продукцию. Все выше перечисленные применения технологии больших данных нуждаются в определенной защите информации. Например, начинающей финансовой компании можно нанести большой материальный ущерб, если конкурирующая фирма получит доступ к накопленным или обработанным данным. Но наибольший урон можно нанести топливно-энергетическим предприятиям, которые непосредственно связаны с государством. Актуальность работы обусловлена тем, что большие данные, которые обрабатывает распределенная система могут быть: конфиденциальными; обрабатываться у других провайдеров, предоставляющих облачную инфраструктуру как услугу (IaaS), например Amazon EC2, Google Compute Engine, Microsoft Azure и т. д. Исходя из этого, необходимо построить/выбрать многоуровневую защиту с возможностью добавления или удаления определенного уровня в зависимости от сетевой инфраструктуры и обрабатываемых данных, решающих определенную задачу. Цель работы: исследовать существующие средства обработки данных в распределенных системах, проанализировать их с точки зрения защиты данных. Модель обработки данных и анализ ее безопасности В основу обработки данных в распределенных системах положена модель MapReduce. Главным достоинством такой модели является простая масштабируемость при наличии нескольких вычислительных узлов. Работа MapReduce состоит в основном из двух шагов: Map (отображение, распределение) и Reduce 28 (свертка, редукция) [2]. На шаге отображения (Map) выполняется предварительная обработка входных данных. Для этого один из главных узлов (обычно называется master или leader node) получает входные данные решаемой задачи и разделяет их на независимые части. Например, файл с логами содержащий 1000 строк, можно разделить на 10 частей по 100 строк. После того, как данные разделены, их передают другим рабочим узлам (slave или follower nodes) для дальнейшей обработки. На шаге редукции (Reduce) происходит свертка обработанных данных. Узел, отвечающий за решение задачи, получает ответы от рабочих узлов и на их основе формируется результат. Чтобы все составляющие функции MapReduce могли корректно и совместно выполнять вычисления, необходимо принять некоторое соглашение о единой структуре обрабатываемых данных. Оно должно быть достаточно гибким и общим, а также отвечать потребностям большинства приложений обработки данных. В MapReduce в качестве основных примитивов используются списки и пары ключ / значение. В роли ключей и значений могут выступать целые числа, строки или составные объекты, часть значений которых может быть проигнорирована при дальнейшей обработке [3]. На рисунке 1 показана упрощенная схема потока данных в модели MapReduce [4]. Рисунок 1 – Схема потока данных в модели MapReduce Как видно из рисунка 1, данная модель имеет много точек передачи данных и поэтому нуждается в определенной защите информации. Например, при передачи данных по сети после группировки по ключу, злоумышленник может добавить или убрать обработанные данные и тем самым нарушить общий результат задачи. Ситуацию может усугубить факт того, что обработка происходит не в своей частной локальной компьютерной сети, а используется инфраструктура других провайдеров. Одно из очевидного и простого решения может служить разделение конфиденциальных данных (имени, логина пользователя) и его обрабатываемых данных (количество взятых кредитов и т. д.). При этом в качестве ключа может использоваться хеш-значение конфиденциальных данных. Но данный подход не решает проблему, если сами значения обрабатываемых данных являются секретными. При такой ситуации необходимо шифровать и расшифровывать симметричными алгоритмами передаваемые данные во время обработки данных узлом. Обзор инструментов для обработки данных Большинство документно-ориентированных баз данных, например, как CouchDB, поддерживают упрощенную распределенную модель обработки данных MapReduce. Это позволяет производить параллельные вычисления на многоядерном процессоре. Но как таковое распределение вычислений на несколько узлов не производится, вместо этого используется механизм репликации [5]. 29 Помимо NoSQL баз данных, существуют и различные фреймворки, которые упрощают написание и сопровождение распределенных программ. Большинство программных каркасов имеют открытый исходный код (Open Source) и поддерживаются огромным сообществом программистов со всего мира. Приведём анализ основных свойств и особенностей некоторых из этих систем. Disco – распределенная система для обработки данных (MapReduce framework), написанная на языках Python/Erlang [6]. Как и оригинальная, распределенная MapReduce-система, опубликованная компанией Google [7-8], поддерживает параллельные вычисления над большими объемами данных на кластере компьютеров. Это делает ее идеальным инструментом для анализа и обработки больших наборов данных без необходимости заботиться о сложных технических вопросах, связанных с распределенной обработкой, например, таких, как транспортные протоколы, балансировка нагрузки, блокировка, расписание задач или отказоустойчивость. Проект Disco был создан в 2008 году центром исследования Nokia для решения значимых проблем при работе с большими объемами данных. Распределенная система активно развивается и поддерживается компанией Nokia и другими компаниями, которые используют ее для целей анализа логов пользователей, вероятностного моделирования, интеллектуального анализа данных (Data Mining) и полнотекстового индексирования. Среди особенностей данной системы необходимо отметить следующие: простая установка на Linux, Mac OS X, и FreeBSD; эффективное распределение данных за счет распределенной файловой системы Disco Distributed Filesystem; поддержка профилирования и отладки заданий MapReduce; запуск задач, написанных на разных языках, использующих собственный протокол заданий; построение запросов и индексов для миллиардов ключей и значений, используя базу данных DiscoDB [9]. Glow – MapReduce-система, которая проста в использовании и полностью написана на языке GoLang. Данная система предоставляет библиотеку для удобного вычисления в параллельных потоках на многоядерном процессоре или для распределенного вычисления на нескольких кластерах [10]. Автор также советует использовать еще одну систему, работающую на Go+Luajit – Gleam, которая является более гибкой и производительной. Gleam сочетает параллелизм Go с высокой производительностью Luajit (динамический компилятор для Lua), система также позволяет запускать программы автономно и на нескольких узлах [11]. Проекты Glow/Gleam находятся на начальной стадии, но стремительно развиваются. Hadoop – наиболее известная программная платформа, с помощью которой можно построить распределенные приложения для массово-параллельной обработки (Massive Parallel Processing, MPP) данных. Создана на основе докладов программистов Google [7-8]. Работа над проектом была начата в 2005 году. С 2008 года Hadoop является проектом верхнего уровня Apache Software Foundation. Проект Hadoop включает в себя такие модули: Hadoop Common: общие утилиты и сценарии для поддержки управления распределенной обработкой, файловой системой, развертывания инфраструктуры; Hadoop Distributed File System (HDFS): распределенная файловая система, которая предоставляет высокоскоростной доступ к данным приложения; Hadoop YARN: фреймворк для планирования заданий и управления ресурсами кластера; Hadoop MapReduce: система для параллельной обработки больших наборов данных. Можно выделить такие основные технические характеристики платформы Hadoop: масштабируемость: платформа масштабируется линейно, что позволяет хранить и обрабатывать петабайты данных; устойчивость к сбоям: все хранящиеся данные избыточны (дублируются на нескольких узлах), все неудачно выполненные задания по обработке данных перезапускаются; кроссплатформенность: библиотеки Hadoop написаны (в основном) на Java, и могут выполняться в любой операционной системе, поддерживающей Java Runtime Environment; автоматическое распараллеливание выполнения задачи: Hadoop создает «чистые» абстракции для разработчиков, снимая с них работу по планированию, контролю и агрегатированию результатов параллельной обработки данных. Используя Hadoop, можно получить такие бизнес-выгоды: гибкость: хранение и анализ структурированных и неструктурированных типов данных; эффективность: в большинстве случаев более низкая стоимость хранения и обработки терабайта данных; низкая стоимость создания кластера: для создания Hadoop-кластера не требуется дорогое серверное аппаратное обеспечение. сравнительная легкость адаптации: Hadoop имеет широкую и активно развивающуюся систему проектов; минимальные риски, связанные с некорректной работой ядра платформы: на сегодняшний день 30 платформа Hadoop успешно используется для обработки петабайт информации; «Open Source» лицензирование: низкая стоимость внедрения и владения платформой Hadoop, большое «developer community» [12]. Хранилище данных (Data Storage) и обработка данных (Data Processing) – одни из главных уровней системы. В Hadoop реализовано хранение как неструктурированных данных в распределенной файловой системе HDFS, так и структурированных данных в нереляционной базе данных HBase. Делать запросы к хранящимся на Hadoop-кластере наборам данных можно с помощью следующих инструментов, входящих в систему Hadoop: Pig, Hive (имеет свой SQL-подобный язык запросов HiveQL). С помощью инструмента Sqoop можно передавать большое количество данных. Компоненты, относящиеся к взаимодействию управления (Management), отвечающие за доступ к данным (Data Access), а также нереляционная база данных HBase представлены отдельными проектами. На рисунке 2 показана часть системы проектов Hadoop [13]. Рисунок 2 – Часть системы проектов Hadoop Анализ существующих средств защиты Многие документно-ориентированные базы данных на сегодняшний день уже поддерживают встроенное в свой дистрибутив SSL/TLS шифрование. Например, CouchDB, начиная с версии 1.3, изначально поддерживает (при определенной настройке) передачу по протоколу HTTPS [14]. MongoDB также позволяет выбрать версию дистрибутива, как с поддержкой SSL/TLS, так и без нее [15]. Но помимо этого, в коммерческой версии (MongoDB Enterprise Server) существуют дополнительные средства защиты: шифрование данных в состоянии покоя, интеграция с протоколом LDAP и аутентификацией Kerberos [16]. Для остальных NoSQL БД, которые не поддерживают встроенное SSL/TLS шифрование, можно использовать SSL-туннель или VPN, если используется своя (доверенная) локальная сеть. При использовании услуг облачного провайдера, например BaaS (Backend as a service), неизвестно, как защищена сетевая инфраструктура за обратным прокси-сервером (reverse proxy). Если передача данных и хранения данных на сервере не защищены дополнительными средствами, то это существенно повышает вероятность возникновения следующих рисков: утечки данных; подмены данных при ее обработке; полного или частичного уничтожения данных. На рисунке 3 показан пример взаимодействия клиента с услугой облачного хранения данных. 31 Рисунок 3 – Взаимодействие клиента с сервером БД через обратный прокси-сервер В MapReduce-системе Disco взаимодействие между главным и рабочими узлами осуществляется посредством SSH. Только отправка задачи на главный узел от пользователя реализуется через незащищенный HTTP [17]. Но эта проблема не является уязвимостью, если отправка задачи происходит с главного узла, то HTTP-запрос не выходит в сеть (обращение происходит к самому себе – loopback). Если отправка задания происходит с другого компьютера, то на главном узле необходимо запустить отдельным процессом обратный прокси-сервер с настроенным SSL-сертификатом. Проект Glow при обмене данными с другими узлами использует встроенную библиотеку TLS, это существенно уменьшает вероятность возникновения утечки и подмены данных при ее обработке. А проект Gleam не использует шифрование при передачи данных, так как ориентирован на высокую производительность. Как один из вариантов, исправить эту уязвимость можно с помощью VPN. Как и все распределенные системы, Hadoop использует сеть для взаимодействия между узлами. В качестве протокола передачи данных по умолчанию используется HTTP, но можно настроить поддержку и HTTPS [18]. Как и в выше упомянутых распределенных системах, Hadoop позволяет шифровать данные при передачи между узлами, но помимо этого у него есть решения, предназначенные для защиты данных с помощью инфраструктуры высоко детализированной авторизации. Решение Sentry поддерживает созданную ранее модель доступа на основе ролей под названием (RBAC) (Role-based Access Control), которая функционирует "поверх" формы представления данных. Модель RBAC имеет ряд функций, предназначенных для защиты корпоративной среды больших данных. Первая функция – это защищенная авторизация, которая обеспечивает обязательное управление доступом к данным для аутентифицированных пользователей. Пользователям присваиваются роли, а затем предоставляются соответствующие полномочия по доступу к данным. Такой подход способствует при помощи шаблонов, масштабированию модели, разделяя пользователей на категории в соответствии с их ролями. Другая функция позволяет организовать администрирование пользовательских полномочий таким образом, чтобы распределить эту задачу между несколькими администраторами на уровне схемы или на уровне базы данных. Также Sentry реализует аутентификацию с помощью протокола аутентификации Kerberos, интегрированного в Hadoop. Apache Knox Gateway – это решение для защиты периметра Hadoop. В отличие от решения Sentry, которое предоставляет средства для высокодетализированного контроля доступа к данным, решение Knox Gateway обеспечивает контроль доступа к сервисам платформы Hadoop. Цель Knox Gateway – предоставить единую точку безопасного доступа к Hadoop-кластерам. Данное решение реализовано в виде шлюза, который представляет доступ к Hadoop-кластерам посредством REST API [19]. Выводы В статье описана и проанализирована с точки зрения безопасности распределенная модель обработки данных (MapReduce). Выполнен обзор существующих фреймворков обработки больших данных с описанием их основных возможностей. Представлен анализ существующих средств защиты для распределенных систем. При проектировании средств защиты данных для распределенных систем необходимо учитывать то, что с одной стороны они должны надежно сохранять конфиденциальные данные, с другой – поддерживать многоуровневую защиту с возможностью добавления или удаления определенного уровня в зависимости от сетевой инфраструктуры и обрабатываемых данных. 32 Литература 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Аналитический обзор рынка Big Data // Хабрахабр. [Электронный ресурс]. – Режим доступа: https://habrahabr.ru/company/moex/blog/256747/ MapReduce // Википедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/MapReduce Чак Лэм. Hadoop в действии. – М.: ДМК Пресс, 2012. – 424 с.: ил. Introduction to MapReduce // sci2s. [Электронный ресурс]. – Режим доступа: http://sci2s.ugr.es/BigData#Big%20Data%20Technologies CouchDB // Википедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/CouchDB Disco // Github. [Электронный ресурс]. – Режим доступа: https://github.com/discoproject/disco MapReduce: Simplified Data Processing on Large Clusters // Google Research. [Электронный ресурс]. – Режим доступа: http://research.google.com/archive/mapreduce.html The Google File System // Google Research. [Электронный ресурс]. – Режим доступа: http://research.google.com/archive/gfs.html Disco // Discoproject. [Электронный ресурс]. – Режим доступа: http://discoproject.org/ Glow // Github. [Электронный ресурс]. – Режим доступа: https://github.com/chrislusf/glow Gleam // Github. [Электронный ресурс]. – Режим доступа: https://github.com/chrislusf/gleam Платформа Hadoop. Обзор // Codeinstinct. [Электронный ресурс]. – Режим доступа: http://www.codeinstinct.pro/2012/08/hadoop-overview.html What You Need To Know About Hadoop and Its Ecosystem // Savvycom. [Электронный ресурс]. – Режим доступа: https://savvycomsoftware.com/what-you-need-to-know-about-hadoop-and-its-ecosystem/ Native SSL Support // CouchDB. [Электронный ресурс]. – Режим доступа: http://docs.couchdb.org/en/1.3.0/ssl.html MongoDB Support // MongoDB. [Электронный ресурс]. – Режим доступа: https://docs.mongodb.com/v3.2/tutorial/configure-ssl/#mongodb-support MongoDB Download Center // MongoDB. [Электронный ресурс]. – Режим доступа: https://www.mongodb.com/download-center#enterprise Setting up Disco // Disco Readthedocs. [Электронный ресурс]. – Режим доступа: http://disco.readthedocs.io/en/latest/start/install.html#background Sandeep Karanth. Mastering Hadoop. – Packt Publishing, 2014. – 374 pages. Безопасность данных Hadoop и решение Sentry // IBM developerWorks. [Электронный ресурс]. – Режим доступа: http://www.ibm.com/developerworks/ru/library/se-hadoop/ Егоров А.А., Чернышова А.В., Губенко Н.Е. Анализ средств защиты больших данных в распределенных системах. В статье описана и проанализирована с точки зрения безопасности распределенная модель обработки данных (MapReduce). Выполнен обзор существующих фреймворков обработки больших данных с описанием их основных возможностей. Представлен анализ существующих средств защиты для распределенных систем. Ключевые слова: распределенная система, большие данные, обработка данных, MapReduce, NoSQL, распределенная файловая система, безопасность данных, средства защиты, SSL, TLS. Yegorov A.A., Chernyshova A.V., Gubenko N.E. Analysis means of protection big data in distributed systems. The article describes and analyzes the security model of a distributed data processing (MapReduce). A review of existing frameworks to handle big data describing the main features. The analysis of the existing means of protection for distributed systems. Keywords: distributed systems, big data, data processing, MapReduce, NoSQL, distributed file system, data security, means of protection, SSL, TLS. 33 УДК 004.9 Приложение для перевода текста с помощью камеры мобильного устройства «VlasiukTranslate» И.А. Коломойцева, Д.А.Власюк Донецкий национальный технический университет [email protected], [email protected] Коломойцева И.А., Власюк Д.А. Приложение для перевода текста с помощью камеры мобильного устройства «VlasiukTranslate». В работе выполнен анализ существующих аналогов данной программной системы, в результате сравнения сформулированы основные требования и выбраны технические средства для разработки своего программного продукта. Ключевые слова: оптическое распознавание символов, перевод, оптимизация, словари, точность, интерфейс, программный продукт. Введение Часто люди сталкиваются с ситуацией, когда необходимо узнать смысл или перевести определенное слово или фразу с иностранного языка. Для этого можно воспользоваться словарем или компьютерным переводчиком. Однако при постоянной необходимости поиска значений текста, написанного на “чужом” языке, вышеперечисленные подходы являются далеко не самыми лучшими, так как тратится большое количество времени на ввод этого текста или поиск по словарю. За последние несколько лет системы автоматического перевода достигли большого прогресса. Некоторое время назад такие системы были очень дорогостоящими и с трудом справлялись с иностранными текстами. Также страдало и качество перевода. Однако сейчас существует большое количество приложений, которые с легкостью заменяют профессионального переводчика [1]. Оптическое распознавание символов (OCR) — это механический или электронный перевод изображений рукописного, машинописного или печатного текста в текстовые данные, использующиеся для представления символов в компьютере (например, в текстовом редакторе) [2]. Цель работы – обзор существующих приложений, предназначенных для перевода текста и использующих камеру, их анализ и сравнение для формирования требований к разработке своей программной системы, а также обоснование выбора технических средств, необходимых для реализации собственного продукта. 1 Анализ предметной области OCR Одним из самых важных свойств любой программной системы, связанной с обработкой или переводом печатного или рукописного текста, является способность правильно распознать информацию. Это очень сложная и трудоемкая задача, так как даже человек, читая рукописный текст, может допускать определенные ошибки из-за трудностей, связанных с пониманием почерка. А к большим программным разработкам предъявляют требование практически 98% точности при распознавании текста [3]. Благодаря современным технологиям и постоянным разработкам с каждым годом появляются все новые и новые методы для обработки изображений, фильтрации помех и распознавания образов, что дает специалистам возможность все четче и правильнее разрабатывать и решать свои задачи. Однако существует несколько основных проблем, связанных с распознаванием символов: искажение изображенных символов; разнообразие форм начертания символов; множество различных размеров и масштаба текста [4]. Искажение символов может быть связанно с рядом возникающих помех, недостатками печати, изменением угла наклона символов, вплоть до освещения и теней. Что касается форм начертания символов, то можно заметить, что разнообразие существующих шрифтов безгранично, и в связи с этим, символы могут с легкостью быть распознаны как похожие друг на друга, например, «Z» и «2» [5]. Еще одной вероятной помехой может быть различие масштаба исходного текста. 34 Следовательно, система, распознающая символы должна уметь справляться с больших числом потенциально возникающих перед ней проблем и обладать достаточной степенью устойчивости к внешним факторам. В современных OCR-системах используются три типа классификаторов. Основной классификатор – структурный. Для ускорения и повышения качества распознавания применяются растровый и признаковый классификаторы [6]. Системы оптического распознавания символов состоят из таких блоков: блок сегментации, локализации и выделения элементов текста; блок предобработки изображения; блок выделения признаков; блок распознавания символов; блок постобработки результатов распознавания. Эти блоки соответствуют последовательности шагов при обработке изображения. Для начала необходимо выделить область и разбить весь текст на специальные участки, каждый из которых предназначен для отдельного символа. Далее необходимо выполнить фильтрацию помех, с целью получения чистого участка изображения, прошедшего сглаживание и освобожденного от помех. После чего, выделяются определенные признаки символов и их дальнейшее распознание. Последний блок предназначен для корректировок полученного результата, исправления возникших ошибок и получения более адекватного результата [4]. 2 Обзор существующих приложений, которые используют камеру мобильного устройства для работы с текстом На сегодняшний день одним из самых известных представителей данной области является Google Translate. Данное Android-приложение от компании Google Inc позволяет переводить текст на 103 языках, включает разговорник, ручной ввод, перевод камерой и многое другое. Интерфейс приложения связывает большой функционал системы, при этом является достаточно простым и понятным. Здесь присутствуют кнопки выбора готовых изображений, кнопка создания снимка и кнопка активации моментального перевода. Данная функция, в основном, предназначена для перевода коротких слов или фраз, например, вывесок в магазине или меню в ресторане, однако прекрасно работает и для трансляции больших текстов. Продукт обладает достаточным быстродействием. Следует отметить, что качество перевода находится на высоком уровне, устойчивость распознавания текста достигается путем дополнительных перспектив, применения вспышки камеры и контраста. Доступен офлайн перевод, но для этого необходимо предварительно скачать необходимый словарь. Программа находится в бесплатном доступе, что усиливает все вышеперечисленные достоинства. Следующий представитель данной отрасли – продукт разработчиков AugmReal под названием Camera Traslator. Распознает текст на 94%, работает исключительно в режиме мгновенного перевода, что исключает возможность удобного перевода больших текстов [7]. Приложение с легким и доступным интерфейсом, который включает в себя кнопку настроек, включения вспышки устройства и рабочую прямоугольную область, которую необходимо наводить на интересующий текст. Перевод появляется в верхней части экрана, здесь же можно просмотреть историю перевода одного сеанса. Главным недостатком является отсутствие офлайн перевода, что делает пользователя зависимым от подключения к Интернету. Однако существует и платная версия этого продукта, которая обладает более совершенным функционалом и большим количеством языков. Известное приложение от компании ABBYY, которое одним из первых объединило в себе функции оптического распознавания символов и переводчика, называется ABBYY Text Grabber+Translator. Разработка имеет простой интерфейс, который состоит из двух кнопок, предназначенных для выбора существующего изображения или моментальной съемки. Работает приложение достаточно стабильно и быстро, однако качество распознавания текста неудовлетворительно, так как программная система не содержит специальных встроенных функций для улучшения качества изображения, что значительно затрудняет возможность качественного перевода текста. Минусом также является интеграция с сервисом Google Translate для перевода текста, что означает потребность приложения в использовании качественного подключения к Интернету. Данный продукт представлен исключительно в платном сегменте, что отодвигает его на задний план из-за наличия более качественных и бесплатных приложений. Smart Mobile Software предлагает свою версию переводчика с использованием камеры – Photo Translator Free. Несмотря на название, продукт представлен и в платном варианте с расширенными возможностями, увеличенным количеством языков, без рекламы и стартового окна. В бесплатной версии доступно 5 языков, интерфейс программы простой, однако нагромождение и размеры кнопок затрудняют работу с приложением. Здесь присутствует несколько смысловых блоков управления. Первый предназначен для получения изображения, либо из галереи, либо с помощью камеры. Далее выбираются языки, для которых переводится текст. Внизу расположена кнопка Translate, при нажатии на которую происходит распознавание и перевод текста с изображения в случае успешного выбора параметров и наличия подключения к Интернету, иначе выдается сообщение об ошибке. Быстрота и стабильность работы приложения находится на невысоком 35 уровне, и занимает около минуты. Также минусом является отсутствие русифицированной версии продукта и отсутствие русского языкового пакета, по крайней мере, в бесплатной версии. Разработка CamTranslator Pro, представленная частным лицом Dennis Kragek, является вариантом для пользователей Apple продукции. Данное приложение оптимизировано только под IOS, поддерживает более 10ти языков, однако за дополнительную плату, можно установить практически любой интересующий пакет. Интерфейс программы удобен для работы. После создания фото пользователю предлагается выбрать интересующий его участок текста, вырезать его и передать на перевод. Фрагменты распознанного текста можно скопировать в буфер обмена с помощью нажатия специальной кнопки. Также присутствует функция мгновенного перевода, которая незаменима при работе с маленькими объемами текстов. Быстрота и качество перевода напрямую зависят от качества фотографии и освещения, что является несущественным минусом данного приложения. К достоинствам можно отнести наличие офлайн перевода и небольшое потребление ресурсов, что позволяет дольше сохранять работоспособность батареи. В таблице 1 представлены основные характеристики аналогов разрабатываемой системы [7]. Таблица 1. Сравнительные характеристики Характеристики Количество языков Офлайн перевод Скорость перевода % распознавания печатного текста Уровень устойчивости и стабильности распознавания Платформа Размер Разработчик Google Transalte 103 Camera Translator* 14 ABBYY Grabber 60 + <15 сек. + мгновенный перевод 96% мгновенный перевод** Text PhotoTranslator Free* 5 CamTranslator Pro* 10 <25 сек. >1 мин. + <20 сек. 94% 87% 90% 92% Высокий Высокий Низкий Средний Средний Android/IOS 7,67 Мб Google Inc Android 7,7 Мб AugmReal Android 19 Мб ABBYY Android 2 Мб Smart Mobile Software IOS 5 Мб Dennis Kragek * – бесплатная версия продукта ** – слова и короткие фразы Подводя итоги, следует отметить, что качество распознавания зависит не только от приложения и наличия специальных инструментов для обработки изображений, но и от камеры мобильного устройства. Анализируемые приложения показали разные результаты при тестировании. Наиболее лучшие результаты продемонстрировал Google Translate, что неудивительно, учитывая возможности и мощности компании. Также стоит отметить два неплохих варианта Camera Translate и CamTraslator. Данные продукты предоставляют достаточную функциональность, и в полной мере раскрывают свой потенциал в платных версиях. Каждый из представленных вариантов имеет свои недостатки. Например, приложение Google Translate занимает достаточно большой объем памяти, а постоянные обновления и скачивания словарей увеличивают его в разы. Во всех остальных представленных приложениях, кроме последнего, отсутствует офлайн перевод, что является заметным недостатком. Также, Camera Translator не переводит большие объемы текстов, а ABBYY Text Grabber+Translator, помимо большого размера, имеет низкий уровень устойчивости и стабильности распознавания. Скорость перевода приложения PhotoTranlsator Free низкая, а отсутствие русской версии и наличие всего 5-ти языков являются существенными недостатками данной версии. Основным минусом CamTranslator Pro является отсутствие Android-версии, что существенно уменьшает количество потенциальных пользователей. Разрабатываемый продукт призван объединить в себе лучшие качества существующих аналогов, и исключить основные недостатки каждого из них. 3 Требования к программной системе «VlasiukTranslate» Изучив и проанализировав ряд приложений, использующих камеру мобильных устройств для обеспечения ввода исходной информации, а также прочитав комментарии пользователей к данным продуктам, можно сформировать базисные требования и видение будущего программного продукта. Основные требования к разрабатываемой системе: 36 офлайн перевод (который будет осуществляться с помощью встроенных словарей), оптимизация скорости анализа и перевода текста, поддержка нескольких языков перевода, достаточный уровень устойчивости и стабильности распознавания текста, простой и удобный интерфейс пользователя, возможность выбора изображения для перевода, возможность подключения вспышки телефона, отсутствие влияния на работу системы размера экрана устройства, хорошее качество перевода. В эпоху постоянного развития мобильных устройств достаточно сложно произвести такой продукт, который успешно справится с возникшей конкуренцией, однако к этому необходимо стремиться. Качество перевода является главной точкой для конкуренции, потому что именно в этом аспекте нет идеального продукта. 4 Выбор технических средств Приложение по переводу текста с помощью камеры мобильного устройства будет оптимизировано под платформу Android и написано с помощью средств языка Java, а также с использованием библиотеки OCR. Данный выбор не случаен, ведь согласно статистике, в 2014 году 86% проданных смартфонов имели установленную операционную систему Android, а Java выступает основным языком разработки мобильных приложений. В качестве среды разработки будет использоваться Android Studio. Android Studio – интегрированная среда разработки (IDE) для работы с платформой Android, основанная на программном обеспечении IntelliJ IDEA от компании JetBrains [8]. Android – операционная система для смартфонов, интернет-планшетов и других устройств, которая позволяет создавать Javaприложения, управляющие устройством через разработанные библиотеки Google [9]. В наше время программы для Android востребованы у пользователей. Это связанно с тем, что создаются все новые и новые приложения, призванные помочь и упростить выполнение некоторых действий для обычного человека, а также сэкономить его время, как, например, в случае с автоматическим переводом. Именно благодаря постоянному росту популярности Android-устройств и широкому спектру возможностей для разработчиков и была выбрана Anroid-платформа для разработки программного продукта. Выводы В данной работе проанализированы существующие программы для удобного и быстрого перевода текста с использованием камеры. На основе выполненного анализа и сравнения существующих приложений были сформированы основные требования для написания своего программного продукта. Также результатом проделанной работы является обоснование выбора технических средств, используемых при разработке. В дальнейшем требования к разрабатываемой программной системе могут быть уточнены, но в рамках основных, приведенных в этой работе. Литература 1. Обзор лучших переводчиков для Android. [Электронный ресурс]. – Режим доступа: http://itc.ua/articles/obzor-luchshih-perevodchikov-dlya-android/ 2. Оптическое распознавание символов. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Оптическое_распознавание_символов 3. Шамис А.Л. Принципы интеллектуализации автоматического распознавания / А.Л. Шамис – K:.2000 – 312 с. 4. Оптическое распознавание символов OCR. [Электронный ресурс]. – Режим доступа: http://wiki.technicalvision.ru/index.php/Оптическое_распознавание_символов_(OCR) 5. The First Census Optical Character Recognition System Conference / Wilkinsonet R.A. – Gaithersburg:Commerse, NIST, 1992 – 242 c. 6. Кучуганов А.В. , Лапинская Г.В. Распознавание рукописных текстов / А.В. Кучуганов, Г.В. Лапинская – Ижевск:.Мир, 2006 – 514 с. 7. Информация о характеристиках приложений. [Электронный ресурс]. – Режим доступа: https://play.google.com/store?hl=ru 8. Android Studio. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Android_Studio 9. Android. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Android 37 Коломойцева И.А., Власюк Д.А. Приложение для перевода текста с помощью камеры мобильного устройства «VlasiukTranslate». В работе выполнен анализ существующих аналогов данной программной системы, в результате сравнения сформулированы основные требования и выбраны технические средства для разработки своего программного продукта. Ключевые слова: оптическое распознавание символов, перевод, оптимизация, словари, точность, интерфейс, программный продукт. Kolomoitseva I.A., Vlasiuk D.A. The application to translation text using mobile device’s camera «VlasiukTranslate». This article provides an analysis of existing software systems that perform computer translation of texts. The purpose of comparison - to determine requirements for their own program system "VlasiukTranslate". These requirements are also given in the article Keywords: optical character recognition, translation, optimization, dictionaries, accuracy, interface, software. 38 УДК 004.9 Проектирование программной системы для бисероплетения «CrochetBeadMaster» И.А. Коломойцева, Н.О. Сторожук Донецкий национальный технический университет [email protected], [email protected] Коломойцева И.А., Сторожук Н.О. Проектирование программной системы для бисероплетения«CrochetBeadMaster». Целью данной работы является описание начального этапа проектирования программной системы «CrochetBeadMaster». Для этого выполнены анализ существующих программных средств для бисероплетения и оценка их достоинств и недостатков, а также сформулированы требования и определены функциональные модули для собственного продукта. Ключевые слова: бисер, схема, озвучивание, конструктор, продукт, редактор, программная система. Введение Работа с бисером или другими подобными материалами является национальным ремеслом во многих культурах, а в настоящее время это искусство завоевало и весь мир своей неповторимой красотой, утонченностью и строгостью исполнения [1]. Для многих вязание с бисером представляется чем-то трудоёмким и совершенно недоступным. Однако стоит лишь разобраться в нюансах любой техники, и уже не так страшно браться за дело. Самое трудное в вязании с бисером заключается в правильном наборе бисеринок на нить, так как от этого зависит узор, получающийся при вязании [2]. Постоянно растущая популярность бисероплетения не могла не коснуться информационных технологий: пошаговые инструкции, видео-уроки, форумы, блоги, интернет-магазины, которые сегодня доступны всем и каждому. В отдельную категорию следует выделить программы, предоставляющие возможность самостоятельно составлять схемы для вязания бисером и воспроизводить их звуковой аналог для набора бисера рукодельницей. Целью написания данной статьи является: обзор существующих программных систем; анализ их достоинств и недостатков; определение функциональных требований для собственной программной системы; выбор программных средств для её реализации. Обзор существующих программных систем Анализ существующих программных систем - аналогов позволяет определить, какие положительные функции и алгоритмы можно использовать в собственной разработке, что необходимо добавить, а от чего отказаться, чтобы готовый продукт был конкурентоспособным и пользователь выбрал именно его. На данный момент можно выделить 4 программы, обеспечивающие основной функционал для работы со схемами. Рассмотрим каждую из них. Приложения JBead и DB-Bead - это приложения, предназначенные для использования на локальном компьютере, практически идентичные между собой. Автор и разработчик DB-Bead – Damian Brunold. Программа находится в свободном доступе и лицензирована под GPL v3 [3]. Так как версия DB-Bead используется чаще и имеет открытый код, далее будем рассматривать только её. Эта программа поможет составить схемы узоров для вязаных жгутов и для мозаичных жгутов. Следует отметить один "недостаток" программы: её интерфейс поддерживает только английский и немецкий языки. К достоинствам DB-Bead можно отнести то, что она бесплатная и легкая в освоении[4]. Онлайн-редактор CrochetBeadPaint позволяет создавать, редактировать и воспроизводить схемы для жгутов. По своим возможностям он похож на программу JBead с определенными нововведениями: это веб- 39 приложение позволяет импортировать схемы из форматов *.jbb и *.dbb, экспортировать в эти форматы и в растровое изображение *.png. Программа не требует установки: вся работа ведется непосредственно на сайте. Полноценная работа приложения возможна в браузерах: Firefox версии 27 и выше, Chrome версии 31 и выше[5]. CrochetBeadReader — мобильное приложение, которое воспроизводит файлы форматов *.dbb и *.jbb в аудиоформе. Данное приложение можно бесплатно загрузить с PlayMarket’а и установить на Androidустройство. Основной функционал заключается в озвучивании заранее загруженной на устройство схемы с возможностью изменения цветовой палитры, скорости чтения и установки паузы. В отличие от предыдущих программ, данное приложение не позволяет редактировать схемы, а так же создавать новые. Сравнение программных систем DB-Bead и CrochetBeadPaint по основным функциональным характеристикам представлено в таблице 1. Таблица 1. Анализ функциональных характеристик программных систем DB-Bead и CrochetBeadPaint Характеристика СrochetBeadPaint DB-Bead Способ взаимодействия Сайт Приложение Форматы входных файлов dbb, jbb dbb, jbb Форматы сохранения схем dbb, jbb, jpg, pdf dbb, jbb Язык интерфейса Английский, русский, немецкий Немецкий, английский Язык разработки Html, javaScript C++ Количество рядов по умолчанию 200+ 1600 рядов Количество в диаметре 4+ 5-30 Закрасить весь жгут одним цветом + Копировать фрагмент + + Отразить выделенное + горизонтально/вертикально Вставить строки + + Удалить строки + Выбор цвета Выбор из полной палитры 10 базовых цветов Копирование из разных схем в одну + Калькулятор для количества веса + необходимого бисера Инструкция + + Наличие озвучивания + 3D обзор изделия + Хранение схем + Печать схемы + На основе сравнения функционала программ можно сделать следующие выводы: СrochetBeadPaint поддерживает полную функциональность только при подключении к сети Internet, при его отсутствии или обновлении/очистке браузера локальные схемы удаляются с возможностью восстановления только с помощью администратора сайта; СrochetBeadPaint работает с ошибками, о которых говорится в инструкции, однако в таком случае пользователь должен постоянно помнить о них и избегать, что не позволяет полностью уделить внимание разработке; DB-Bead не имеет русского языка, что отпугивает значительную часть потенциальных пользователей, хотя интерфейс максимально приближен к стандартным Windows-программам; СrochetBeadPaint имеет значительное превосходство в функционале, что может пригодиться опытным пользователям, однако интерфейс перегружен, и необходимо значительно время, чтобы ознакомится со всеми возможностями; СrochetBeadPaint имеет калькулятор для подсчета количества исходных материалов, что при работе с программой DB-Bead и СrochetBeadReader необходимо будет делать вручную; при работе с СrochetBeadReader пользователь может только использовать готовую схему, для минимальной её коррекции или автоматизированного просчета количества необходимых материалов необходимо переносить схему на компьютер и использовать другое программное обеспечение; программы СrochetBeadReader и DB-Bead не предоставляют удобной работы с файлами схем – их хранение, сортировку. 40 Проектирование разрабатываемого программного продукта CrochetBeadMaster Проанализировав и обобщив полученную информацию о программах а так же жалобы и пожелания пользователей, была поставлена задача создать программный продукт, обобщающий конструктор, озвучивание и эргономичность трех объектов – аналогов а так же добавить новые возможности для удобства конечного пользователя. Система должна: поддерживать форматы входных файлов – dbb, jbb; сохранять схемы в форматах dbb, jbb, jpg; поддерживать два языка интерфейса – русский, английский; иметь подсистему–калькулятор для подсчета количества исходных материалов; иметь инструкцию; иметь интуитивно понятный и дружественный интерфейс; обработать все ошибки и исключительные ситуации программы; предоставлять 3 схемы – образца; обеспечивать хранение 30 пользовательских схем в программе; обеспечивать фильтрацию хранимых схем по количеству цветов, толщине; предоставлять возможность замены цвета в схеме; обеспечивать возможность прикрепить фото готового жгута и просмотреть изображение из программы. Требования к конструктору схем: устанавливать количество рядов по умолчанию – 50; варьировать количество рядов в диаметре – 5-30; закрасить весь жгут одним цветом; копировать фрагмент внутри схемы; копировать фрагмент из одной схемы в другую; отразить выделенный фрагмент горизонтально/вертикально; вставить строку; удалить строку; осуществлять выбор цвета из палитры в 30 цветов. Требования к озвучиванию схем: предоставлять возможность выбирать скорость чтения; предоставлять возможность ставить на паузу. предусмотреть проверочный режим чтения; отображать количество бисерин в диаметре; отображать количество необходимых раппортов для заданной длины. Распределение описанного функционала по смысловым модулям представлено на рисунке 1 в виде диаграммы. Модуль пользовательского интерфейса Модуль конвертирования Модуль конструирования Модуль озвучивания Калькулятор схем Модуль управления схемами Рисунок 1 – Диаграмма модулей системы CrochetBeadMaster При запуске приложения пользователем активируется модуль пользовательского интерфейса, который содержит описание окон приложения, подгружает списки схем а так же отвечает за сохранение последнего состояния системы. Модуль пользовательского интерфейса активен на протяжении всей работы программы. При выборе пользователем какой либо схемы для работы модуль конвертирования считывает файл схемы либо создает новую, а так же обеспечивает сохранение схем в указанных выше форматах. 41 Модуль конструирования – основной модуль системы – предоставляет методы для работы в конструкторе схем. Модуль озвучивания обеспечивает работу воспроизведения звукового аналога схемы с помощью синтеза речи либо используя готовые голосовые библиотеки. Модуль управления схемами осуществляет хранение схем и информации о них в базе данных MySQL, фильтрацию схем, их быстрый поиск и удобный доступ для просмотра информации о них и её редактирования. Калькулятор схем – подсистема, использующая входные данные от пользователя, информацию о выбранной схеме для подсчета необходимых для работы материалов. Выбор технических средств Android – операционная система для смартфонов, интернет-планшетов, электронных книг, цифровых проигрывателей, наручных часов, игровых приставок, нетбуков, смартбуков, очков Google, телевизоров и других устройств [6]. Операционная система Android была и будет востребована на рынке мобильных устройств. Основной причиной этого является лояльное отношение к пользователям. Широкий ассортимент устройств под управлением Android охватывает все ценовые сегменты – как бюджетные модели, так и премиум класс, позволяя обзавестись устройством с операционной системой от Google практически каждому [7]. Язык Java активно используется для создания мобильных приложений под операционную систему Android. При этом программы компилируются в нестандартный байт-код для использования их виртуальной машиной. Для такой компиляции используется дополнительный инструмент, а именно Android Software Development Kit [8]. В качестве платформы разработки выбрана платформа Android, так как это самая популярная на сегодняшний день платформа, и её популярность продолжает расти [7]. Единственное мобильное приложение по заданной тематике обладает рядом недостатков, значит, существует вероятность, что программа CrochetBeadMaster будет востребованной и актуальной. Выводы Создание готового изделия из бисера без использования программных средств имеет ряд недостатков: используется чужая схема, что исключает уникальность изделия; своя схема может быть создана только от руки на бумаге либо с использованием ПО другого назначения, что является неудобным, трудоемким и исключает возможность создания качественной схемы; при самостоятельном наборе последовательности бисера повышается риск некорректного набора, увеличивается нагрузка на человека; диктовка другого человека повышает скорость набора, однако требует дополнительный человеческий ресурс. В ходе работы рассмотрены достоинства и недостатки существующих программ, оптимизирующих работу со схемами вязания бисером, сформулированы требования и определены функциональные характеристики программного продукта СrochetBeadMaster. Также обоснован выбор программных средств для разработки программной системы СrochetBeadMaster – язык Java для ОС Android. Литература 1. LiveInternet// Бисероплетение и изделия из бисера в современном мире. [Электронный ресурс] Режим доступа: http://www.idi-knam.ru/journalshowcomments.php?jpostid=301957120&journalid=4682845&go=next&categ=0 2. Рукодельный Рунет// Английский способ вязания бисером. Мастер-класс. [Электронный ресурс] - Режим доступа: http://www.darievna.ru/category/vjazanie-s-biserom 3. Brunold Software// Db-Weave Free Professional Weaving Software [Электронный ресурс] - Режим доступа: https://www.brunoldsoftware.ch/dbb.html 4. Салон эксклюзивного бисера// Программа Db-Bead. [Электронный ресурс] - Режим доступа: http://salon-bisera.ru/content/programma-db-bead 5. Салон эксклюзивного бисера// CrochetBeadPaint - онлайн редактор схем для жгутов + диктовалка. [Электронный ресурс] - Режим доступа: http://salon-bisera.ru/content/crochetbeadpaint-onlain-redaktorskhem-dlya-zhgutov-diktovalka 6. Википедия// Android. [Электронный ресурс] - Режим доступа: https://ru.wikipedia.org/wiki/Android 7. Компьютерная грамотность с Надеждой// Плюсы и минусы Android. [Электронный ресурс] Режим доступа: http://www.compgramotnost.ru/android/plyusy-i-minusy-androida 8. Википедия// Java. [Электронный ресурс] - Режим доступа: https://ru.wikipedia.org/wiki/Java 42 Коломойцева И.А., Сторожук Н.О. Проектирование программной системы для бисероплетения «CrochetBeadMaster». Целью данной работы является описание начального этапа проектирования программной системы «CrochetBeadMaster». Для этого выполнены анализ существующих программных средств для бисероплетения и оценка их достоинств и недостатков, а также сформулированы требования и определены функциональные модули для собственного продукта. Ключевые слова: бисер, схема, озвучивание, конструктор, продукт, редактор, программная система. Kolomoitseva I.A., Storozhuk N.O. Software system design beading «CrochetBeadMaster». This paper describes the initial design phase the program system «CrochetBeadMaster». For this purpose the authors carried out an analysis of existing software tools for beading and evaluated their advantages and disadvantages. The authors formulated the requirements and defined functional modules for their own product. Keywords: beads, diagram, sound designer, product, editor, a software system. 43 УДК 004.056 Сквозное шифрование переписки в социальной сети «ВКонтакте» Д.В. Кубашевский, А.В. Чернышова Донецкий национальный технический университет [email protected], [email protected] Кубашевский Д.В., Чернышова А.В. Сквозное шифрование переписки в социальной сети «ВКонтакте». В данной работе выполнен анализ мессенджеров, использующих сквозное шифрование переписки, и представлен новый механизм сквозного шифрования на базе системы мгновенного обмена сообщениями в социальной сети «ВКонтакте». Ключевые слова: сквозное шифрование, система мгновенного обмена сообщениями, мессенджер, криптография, безопасность данных. Введение Общение является основной частью нашей жизни. С появлением систем мгновенного обмена сообщениями (англ. Instant messaging, IM) коммуникация между людьми приобрела новый характер [1]. Стало возможным «живое» общение с собеседником, который находится в противоположной точке земного шара. Современные клиенты систем мгновенного обмена сообщениями, которые называются мессенджерами, использует свой центральный сервер, на котором хранится вся история переписки каждого из пользователей. Таким образом, лица, имеющие доступ к данным сервера, могут изучить содержимое переписки. Иногда возникает необходимости в полной конфиденциальности беседы и в этом случае приходится использовать сквозное шифрование (End-to-End Encryption, E2EE) — способ передачи данных, когда доступ к сообщениям имеют исключительно пользователи, задействованные в общении [2]. Шифрование в популярных мессенджерах Facebook Messenger — официальный мессенджер от разработчиков крупнейшей в мире социальной сети Facebook. Существуют версии для персональных компьютеров и мобильных устройств. Приложение интегрировано с системой обмена сообщениями на основном сайте Facebook (Facebook Chat) и построено на базе открытого протокола MQTT [3]. Данный мессенджер позволяет обмениваться файлами и фотографиями. К текстовым сообщениям можно добавлять смайлики и стикеры. Мобильная версия мессенджера предоставляет голосовую и видеосвязь, а также возможность передавать геометки. С июля 2016 года Facebook на своём новостном портале сообщил о запуске тестирования сквозного (End-to-End) шифрования с секретными чатами. Теперь появилась возможность создавать секретный диалог, содержимое которого доступно исключительно для создателя диалога и его собеседника — пользователя, приглашённого в секретный чат. Также доступна возможность задавать таймер — после истечения заданного времени сообщения удаляются из беседы. Сквозное шифрование в секретных чатах основано на базе протокола Signal, разработанного некоммерческой организацией разработчиков открытого программного обеспечения «Open Whisper Systems» [4]. WhatsApp — бесплатный частный коммерческий кроссплатформенный мессенджер с поддержкой голосовой связи. Позволяет пересылать текстовые сообщения, изображения, видео и аудио. Также существуют версии для персональных компьютеров под управлением ОС Windows и мобильных устройств под управлением ОС Android, iOS, Windows Phone, BlackBerry, Nokia Symbian. WhatsApp использует модифицированный протокол Extensible Messaging and Presence Protocol (XMPP, ранее известный как Jabber). С апреля 2016 года с выходом обновления версии 2.16.12 в WhatsApp появилось сквозное шифрование (End-to-End) на базе протокола Signal. Шифрование распространяется на все типы сообщений: текст, фото, видео и голосовые сообщения. Шифрование также доступно в групповых чатах. В реализации используются алгоритмы ECDH на Curve25519, AES-256, AES-GCM, HMAC-SHA256, HDKF [5]. Viber — один из популярнейших мессенджеров, поддерживающих голосовую и видеосвязь. Работает на платформах Android, BlackBerry, iOS, Symbian, Windows Phone, Bada и компьютерах под управлением Windows, OS X и Ubuntu. Позволяет отправлять текстовые сообщения со стикерами, а также нарисованные прямо в приложении картинки. Также в мессенджере есть групповые и публичные тематические чаты [6]. 44 Начиная с версии 6.0, разработчики Viber внедрили в свой сервис сквозное шифрование. Таким образом, все сообщения, фотографии, видео, телефонные и видеовызовы будут зашифрованы с момента отправки с одного устройства до момента их получения адресатом. Как заявляют разработчики, ключ, необходимый для расшифровки данных, доступен только на устройстве, используемом для отправки сообщения, и на устройстве, используемом для приёма сообщения. Таким образом, никто другой не может расшифровать передаваемые данные. Групповые чаты также шифруются при условии, что все участники чата имеют версию мессенджера 6.0 или старше [7]. Telegram — бесплатный кроссплатформенный мессенджер, позволяющий обмениваться текстовыми сообщениями со смайликами и стикерами, голосовыми сообщениями, а также различным медиаконтентом. Поддерживает групповые чаты и публичные каналы. Сервис ориентирован на приватность — мессенджер гарантирует, что данные надёжно зашифрованы. В настройках безопасности доступна возможность «самоликвидации» аккаунта в случае длительного отсутствия пользователя в сети. Для мессенджера был создан протокол MTProto, предполагающий использование нескольких протоколов шифрования. При авторизации и аутентификации используются алгоритмы RSA-2048, DH-2048 для шифрования, при передаче сообщений протокола в сеть они шифруются AES с ключом, известным клиенту и серверу. Также применяются криптографические хеш-алгоритмы SHA-1 и MD5 [8]. С 8 октября 2013 года добавлена функциональность секретных чатов, в которых реализуется сквозное шифрование с применением алгоритма AES-256 в режиме IGE для пересылаемых сообщений [8]. В отличие от Viber, в Telegram секретные чаты доступны для двух пользователей. Как и в Facebook Messenger, в секретном чате Telegram есть возможность задания таймера. Спустя указанное время прочитанное сообщение будет удалено на устройстве пользователя. qTox — свободный кроссплатформенный мессенджер, реализованный на базе протокола Tox [9]. Позволяет осуществлять текстовую, голосовую, видеосвязь и передачу файлов. Доступен режим конференции (группы). Данный мессенджер отличается от ранее рассмотренных тем, что регистрация пользователей на основном сервере не требуется. После установки qTox автоматически создаётся пара ключей — публичный и секретный. Публичный ключ служит как уникальный идентификатор для поиска собеседника. Секретный ключ хранится только у владельца и подтверждает его подлинность, не раскрывая персональные данные. Поиск собеседников происходит через DHT [10]. Изначально вся переписка в qTox защищена с использованием сквозного шифрования. Kate Mobile — неофициальный мобильный клиент социальной сети «ВКонтакте» [11]. Предоставляет все возможности веб-версии ВКонтакте для ведения переписки — обмен текстовой информацией со смайликами и стикерами, голосовыми сообщениями и другим медиаконтентом, включая файлы допустимых форматов. Kate Mobile является тонким клиентом, использующим открытое API, которое предоставляется разработчиками ВКонтакте. В социальной сети «ВКонтакте» отсутствует шифрование переписки, поэтому она хранится на серверах сети в открытом виде и доступна для прочтения третьим лицам, имеющим доступ к серверам. Механизм сквозного шифрования в социальной сети «ВКонтакте» Реализуемый механизм сквозного шифрования переписки в социальной сети «ВКонтакте» основан на использовании симметричного и ассиметричного алгоритмов шифрования, алгоритма хеширования и ассиметричного алгоритма для создания электронной цифровой подписи (ЭЦП). В качестве симметричного алгоритма используется Rijndael — симметричный алгоритм блочного шифрования [12]. С помощью Rijndael будет шифроваться информация перед отправкой собеседнику (на сервер ВКонтакте). Ключ шифрования генерируется случайным образом и будет действителен до тех пор, пока пользователем не будет запрошен новый ключ. Для предотвращения компрометации ключа симметричного шифрования используется криптографический алгоритм ассиметричного шифрования RSA [13]. Данный алгоритм позволит безопасно передать ключ симметричного шифрования собеседнику по открытому каналу таким образом, что никто другой не сможет получить ключ и расшифровать передаваемые сообщения. Для подтверждения личности автора передаваемых сообщений и обеспечения гарантии их целостности в данном механизме сквозного шифрования используется электронная цифровая подпись, которая создаётся с помощью ассиметричного криптографического алгоритма DSA [14] и алгоритма хеширования SHA1 [15]. API ВКонтакте позволяет выполнять передачу текстовых сообщений, что является достаточным условием для передачи любых данных с помощью метода кодирования Base64 [16]. Стоит отметить, что зашифрованные сообщения будут видны на веб-странице ВКонтакте. С другой стороны, мессенджер, который будет использовать реализацию описываемого механизма сквозного шифрования, также будет получать все новые сообщения, отправленные через веб-страницу в незашифрованном виде (обычные сообщения пользователя). Поэтому, с целью фильтрации зашифрованных сообщений каждое сообщение, отправленное с использованием данного механизма, будет содержать служебный заголовок «=== VKMessenger ===», 45 состоящий из 19 символов: трёх символов «равно», одного пробела, последовательности символов «VKMessenger», одного пробела и трёх символов «равно». После данного заголовка будет следовать символ конца строки. Затем следует содержимое служебного сообщения, закодированное методом Base64. Первым байтом содержимого является код сообщения, который описывает тип служебного сообщения. Затем в зависимости от типа служебного сообщения будет следовать определённый набор данных. Далее будет описан протокол передачи сообщений с использованием сквозного шифрования. При первом использовании описываемого механизма собеседники должны обменяться публичными ключами, с помощью которых будет осуществляться шифрование ключей для шифрования сообщений. Данный этап называется этапом «рукопожатия». Пусть собеседник А собирается отправить сообщение собеседнику Б. Тогда собеседник А отправляет служебное сообщение с кодом «1» и пустым набором данных. Данное служебное сообщение означает запрос публичного ключа. Собеседник Б должен ответить служебным сообщением с кодом «2» и публичным ключом RSA размером 256 байт (2048 бит). Для отправки пользовательских сообщений используются служебные сообщения с кодом «3». Протоколом поддерживается передача двух типов пользовательских сообщений: текста и файла с указанием его имени. После кода сообщения идёт код типа пользовательского сообщения (1 байт), зашифрованный ключ симметричного шифрования (256 байт или 2048 бит) и зашифрованное подписанное электронной цифровой подписью содержимое пользовательского сообщения. Формат пользовательских сообщений перед их шифровкой зависит от типа пользовательского сообщения. В случае текстового типа (код «1») исходный текст пользовательского сообщения представляется последовательностью байт в кодировке «UTF-8» [17]. В случае файлового типа (код «2») первый байт содержит длину имени файла. Затем следует указанное число байт, которые представляют собой имя файла в кодировке «ASCII» [18]. Стоит отметить, что для отправки файлов с именем, которое содержит символы отличные от латинских, мессенджер должен позаботиться о транслитерации имени файла для его корректного отображения у получателя сообщения. Далее следуют четыре байта, которые расположены в сетевом порядке байт (bigendian) и определяют размер файла в байтах [19]. Затем следуют байты содержимого файла. Содержимое пользовательского сообщения подписывается с помощью алгоритма DSA. Подписанное пользовательское сообщение в начале содержит электронную цифровую подпись (40 байт) и публичный ключ (444 байт), который позволит получателю проверить целостность данных с помощью этой подписи. Далее подписанное пользовательское сообщение шифруется с помощью случайно сгенерированного ключа симметричного шифрования длиной 32 байт (256 бит). После получения описанного служебного сообщения с кодом «3» получатель сможет определить тип пользовательского сообщения, расшифровать содержимое пользовательского сообщения с помощью своего приватного ключа и проверить подпись, удостоверившись в целостности и корректности полученного пользовательского сообщения. Таким образом, описанного набора служебных сообщений достаточно для реализации механизма сквозного шифрования в переписке социальной сети «ВКонтакте». Выводы В ходе выполнения данной работы были рассмотрены существующие реализации механизма сквозного шифрования переписки на примере мессенджеров для систем мгновенного обмена сообщениями, а также предложен механизм сквозного шифрования (End-to-End) переписки в социальной сети «ВКонтакте», реализация которого позволит дополнить существующую функциональность социальной сети и обеспечить безопасность и строгую конфиденциальность переписки. Основным преимуществом описанного механизма является тот факт, что до сих пор не существует аналогов реализации механизма сквозного шифрования для переписки в социальной сети «ВКонтакте». Литература 1. Система мгновенного обмена сообщениями // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Система_мгновенного_обмена_сообщениями 2. ProtonMail: Сквозное шифрование: описание и принцип работы метода // Computer Security Software Russia. [Электронный ресурс]. – Режим доступа: http://www.comss.ru/page.php?id=2468 3. Facebook Messenger // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Facebook_Messenger 4. Messenger Starts Testing End-to-End Encryption with Secret Conversations // Facebook. [Электронный ресурс]. – Режим доступа: https://newsroom.fb.com/news/2016/07/messenger-starts-testing-end-to-end-encryptionwith-secret-conversations/ 5. WhatsApp // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/WhatsApp 46 6. Мессенджеры 2016: самые интересные приложения для мгновенного обмена сообщениями // ITC.ua. [Электронный ресурс]. – Режим доступа: http://itc.ua/articles/messendzheryi-2016-samyie-interesnyieprilozheniya-dlya-mgnovennogo-obmena-soobshheniyami/ 7. Вопросы и ответы по безопасности Viber // Viber. [Электронный ресурс]. – Режим доступа: https://support.viber.com/customer/ru/portal/articles/2017401-Вопросы-и-ответы-по-безопасности-viber 8. Telegram (мессенджер) // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Telegram_(мессенджер) 9. Clients - Tox // Tox. [Электронный ресурс]. – Режим доступа: https://tox.chat/clients.html#qtox 10. Tox // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Tox 11. Kate Mobile Lite // Google Play. [Электронный ресурс]. – Режим доступа: https://play.google.com/store/apps/details?id=com.perm.kate_new_6 12. Advanced Encryption Standard // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Advanced_Encryption_Standard 13. RSA // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/RSA 14. DSA // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/DSA 15. SHA-1 // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/SHA-1 16. Base64 // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Base64 17. UTF-8 // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/UTF-8 18. ASCII // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/ASCII 19. Порядок байтов // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Порядок_байтов Кубашевский Д.В., Чернышова А.В. Сквозное шифрование переписки в социальной сети «ВКонтакте». В данной работе выполнен анализ мессенджеров, использующих сквозное шифрование переписки, и представлен новый механизм сквозного шифрования на базе системы мгновенного обмена сообщениями в социальной сети «ВКонтакте». Ключевые слова: сквозное шифрование, система мгновенного обмена сообщениями, мессенджер, криптография, безопасность данных. Kubashevskiy D.V., Chernyshova A.V. End-to-End encryption of correspondence in the social network “VK”. In this article, the authors analyzed the messengers which use End-to-End encryption of correspondence and presented a new mechanism of End-to-End encryption based on the instant messaging in the social network “VK”. Keywords: End-to-End Encryption, instant messaging, messenger, cryptography, data security. 47 УДК 004.89:004.946 Разработка агентно-ориентированной модели кафедры университета с помощью Framework Jade Р.И.Куташов, О.И.Федяев Донецкий национальный технический университет [email protected] [email protected] Куташов Р.И., Федяев О.И. Разработка агентно-ориентированной модели кафедры университета с помощью Framework Jade. Рассматривается создание виртуальной кафедры университета агентно-ориентированного типа. С помощью методологии Gaia выполнен агентно-ориентированный анализ процесса изучения студентами одного учебного курса в соответствии с требованиями программной инженерии. Ключевые слова: статья, программная инженерия, требования, оформление, сборник трудов. Введение Учебный процесс в техническом ВУЗе обеспечивается его подразделениями с жесткой иерархической структурой (ректорат, факультеты, кафедры). На нижнем кафедральном уровне обучение профессионально ориентировано, распределено в пространстве, регламентировано по времени, динамично по содержанию и поэтому, как процесс подготовки инженерных кадров, является сложным для создания современных компьютерных средств распределённого обучения. Установленные в настоящее время правила получения образования не позволяют своевременно реагировать на изменение требований рынка, в полной мере учитывать индивидуальные возможности и желания студентов в освоении дисциплины за ускоренное время (экстерном), предполагают обязательное личное присутствие преподавателя на всех этапах передачи и контроля усвоения знаний, жесткую привязку студентов к расписанию занятий. Студент не всегда имеет возможность учиться по индивидуальному графику, поскольку без общения с преподавателем, несмотря на полноценное учебно-методическое обеспечение, сложно получить хороший уровень знаний. Современная тенденция в инженерном образовании характеризуется внедрением индивидуальных образовательных схем, в полной мере отвечающих быстрым изменениям конъюнктуры рынка. Поэтому классические схемы централизованного управления образованием с жёсткой структурой должны позволять трансформироваться в более гибкие схемы [1-4]. В статье рассматривается задача построения модели процесса обучения студентов, которая на основе сохранения близких к реально существующим взаимоотношениям между участниками учебного процесса и предоставления возможности автономного и распределённого выполнения учебно-методических обязанностей позволит повысить децентрализованность и индивидуальность работы всех участников процесса обучении на кафедральном уровне Организация процесса обучения на основе агентно-ориентированного подхода В учебном процессе, выполняемом кафедрой, участвуют следующие субъекты: профессорскопреподавательский состав кафедры (заведующий кафедрой М, лекторы L1, L2,…, Ln, ассистенты Р1, Р2,…, Рk), лаборанты (Y1, Y2,…Ym), студенты (Х1, Х2,…,Хn). На каждом отрезке времени (семестре) студенты изучают предусмотренные учебным планом специальности дисциплины (D1, D2,… Dm). Изучение каждой дисциплины включает прослушивание лекций (Lect1, Lect2, …Lectk), выполнение лабораторных работ, возможно выполнение курсовой работы и сдачу экзамена (зачёта). Для успешной учебы студентам необходимо посещать лекции и общаться с преподавателями на практических и лабораторных занятиях, т. е. существуют установленные взаимодействия и взаимоотношения между субъектами учебного процесса. Учебный процесс может быть описан следующими компонентами: УП = (S, K, R, Аct, I, T, U), где S ={М, (Х1, Х2,…,Хn), ((L1,L2,…Lm),(Р1, Р2,…, Рk)), (Y1, Y2,…Yl)} – множество субъектов учебного процесса; K – среда (кафедра), в которой функционирует данный процесс; R – отношения, установленные для субъектов учебного процесса (горизонтальные: лектор-ассистент, лектор-диспетчер; вертикальные: студент-лектор, студент-ассистент, студент-диспетчер); Аct – множество действий, выполняемых субъектами; I – множество 48 установленных видов общения и взаимодействий между субъектами; T – расписание учебных занятий; U – состояние выполнения студентом учебного плана (журналы успеваемости, экзаменационные ведомости, учебно-методические карты дисциплин). Учебный процесс на кафедре (К) выполняется посредством действий (Act) и взаимодействий (I) между конкретными субъектами (Xi, Li, Pi, Yi), определяемыми кафедрой отношением R (например, лектордисциплина-студент, лектор-ассистент), происходящих по строгому расписанию (Т). Кафедра, как среда для проведения учебного процесса, может накладывать различные ограничения, например, в виде дефицита аудиторий. Таким образом, учебный процесс как объект моделирования является распределённым и динамичным. Ставится цель создать такую компьютерную среду обучения (виртуальную кафедру К′), в которой сохраняются все необходимые для учёбы отношения (R) и устраняются жёсткие пространственно-временные ограничения в виде расписания занятий (Т) (рис.1): УП = {S, K′, R, Act, I, U}. Такая среда может быть успешно построена на основе агентно-ориентированного подхода, использующего принципы распределённого искусственного интеллекта [5]. Рисунок 1. Схема организации индивидуального обучения студентов на основе агентно-ориентированного подхода Многоагентная система (МАС) строится как объединение отдельных подсистем (агентов), основанных на знаниях, и формально определяется следующим образом [1]: МАC = (А, Е, R, ORG, ACT, COM, EV), где А - множество агентов, способных функционировать в некоторых средах E, находящихся в определённых отношениях R и взаимодействующих друг с другом, формируя некоторую организацию ORG, обладающих набором индивидуальных и совместных действий ACT (стратегий поведения и поступков), включая возможные коммуникативные действия СOM, и характеризуется возможностями эволюции EV. Основное свойство агентов связано с его автономностью, т. е. способностью функционировать самостоятельно. Кроме того агентно-ориентированная декомпозиция позволяет снизить сложность создания программных систем, гарантировать их надежность и упростить их сопровождение. Проектирование агентной модели кафедры Для разработки многоагентного приложения, автоматизирующего процесс обучения на кафедральном уровне, был проведен агентно-ориентированный (АО) анализ предметной области образовательного процесса по методологии Gaia [6]. С помощью этой методологии разработаны модели, необходимые для описания виртуальной кафедры и последующей программной реализации. Процесс обучения, в соответствии с методологией Gaia, описывается следующими моделями: моделью ролей, моделью взаимодействий, моделью агентов, моделью услуг, моделью связей. На рисунке 2 показаны взаимосвязи и содержание моделей при агентно-ориентированном проектировании. 49 Воспроизведение функций кафедры ВУЗа является сложной задачей, которую в соответствии с методологией Gaia, естественно рассматривать как организацию множества действительно существующих и взаимодействующих ролей: лектор, ассистент, лаборант, студент [7]. Разработанные агентно-ориентированные модели позволили системно перейти от этапа постановки задачи к этапу программной реализации компьютерной среды с элементами квазиреального общения между субъектами учебного процесса изучения дисциплин кафедры. Поскольку программным агентам делегируется выполнение полномочий субъектов образовательного процесса, то они должны имитировать взаимодействия, которые в определённой степени соответствуют их профессиональной деятельности. Для имитации профессиональной деятельности каждый программный агент должен обладать знаниями о порученных должностных обязанностях, знаниями об агентах, с которыми возможно общение, а также правилами, определяющими его поведение в плане выполнения своих обязанностей. Рисунок 2 – Взаимосвязь моделей при агентно-ориентированном проектировании процесса обучения Из характера образовательного процесса следует, что кроме реактивности, автономности, активности и коммуникабельности, архитектура программного агента должна иметь внутренние механизмы мотивации, которые задаются ментальными свойствами, такими как убеждения, обязательства, способности и правила поведения. Из существующей классификации для создаваемой системы больше подходит архитектура, основанная на классических принципах искусственного интеллекта, т. е. архитектура интеллектуального агента на основе продукционных правил. Среда Jade для разработки агентно-ориентированнной системы Агентные платформы являются промежуточным исполнительным уровнем между программными агентами и операционной системой. Многоагентная система работает «поверх» агентной платформы и использует ее сервисы. Для разработки агентно-ориентированной модели кафедры университета была выбрана платформа Jade (Java Agent Development Framework). Это программная среда разработки мультиагентных систем и приложений, поддерживающая FIPA (Foundation for Intelligent Physical Agents) стандарты для интеллектуальных агентов, которая включает в себя: 1) среду выполнения агентов, агенты регистрируются и работают под управлением среды; 2) библиотеку классов, которые используются для разработки агентных систем; 3) набор графических утилит для администрирования и наблюдения за жизнедеятельностью активных агентов. Помимо агентной абстракции, Jade предоставляет простую, но мощную модель выполнения и структурирования задач, а также одноразовой связи агента на основе парадигмы асинхронной передачи сообщений[9]. Основу функционирования агентов составляет механизм семантической интерпретации (Interpreter 50 Behaviour), который базируется на двух ключевых понятиях – семантической репрезетации (SR – Semantic Representation) и правила семантической интерпретации (SIP – Semantic Interpretation Principle). Основная деятельность агента состоит в дедукции воспринимаемых событий и существующей модификации убеждений и шаблонов поведения агента на основе обработки семантической репрезентации, которая осуществляется посредством применения правил семантической интерпретации. Основными компонентами фреймворка (рис. 3) являются: 1) база убеждений – убеждения агента; 2) таблица действий – описания (пред- и постусловия) и коды всех действий, которые может выполнить агент; 3) типовая надстройка – средства надстройки; 4) таблица семантических правил интерпретации – базовые правила семантической интерпретации. Рисунок 3 – Схема обработки сообщений Фреймворк берет на себя функцию семантического разбора сообщений, устраняя ее из функциональности агентов, а так же осуществляет маршрутизацию сообщений между агентами после начала их взаимодействия, что позволяет ограничить деятельность агента. Таким образом, онтология агента может охватывать лишь узкую область знаний, не имея представления о системе в целом[8]. Заключение Выполнен агентно-ориентированный анализ процесса обучения студентов на кафедральном уровне, на основании которого получена новая модель кафедры ВУЗа. Кафедра ВУЗа представлена в виде распределенной системы, элементами которой являются преподаватели и студенты. Их поведение и полномочие делегированы искусственным программным агентом при помощи модели ролей. Общение между агентами описывается моделями связи и взаимодействий. В качестве физической платформы, на которую проецируются полученные модели агентов, была выбрана инструментальная среда Jade, которая представляет собой простой, но мощный инструмент программной реализации многоагентных систем. В дальнейшем планируется программирование агентов виртуальной кафедры с помощью инструментальных средств Jade. 51 Литература 1. Тарасов В.Б. От многоагентных систем к интеллектуальным организациям: философия, психология, информатика.- М.: “Едиториал УРСС”, 2002. -352 с. 2. Гаврилова Т. А., Яшин А. М., Фертман В. П. Взаимодействие интеллектуальных агентов для поддержки сервера дистанционного обучения// Материалы междунар. конф. ”Интеллектуальные системы и информационные технологии в управлении IS&ITC”, Псков, 2000, с.224-227. 3. Курейчик В.М. Эволюционная адаптация интерактивных средств открытого образования /В.М. Курейчик, Л.А. Зинченко //Открытое образование. - 2001. - N1. - С.43-50. 4. Глибовец Н.Н. Использование JADE (Java Agent Development Environment) для разработки компьютерных систем поддержки дистанционного обучения агентного типа// Educational Technology&Society 8(3) 2005 ISSN 1436-4522 pp. 325-345. 5. Федяев О.И., Жабская Т.Е., Лямин Р.В. Система индивидуального обучения студентов агентноориентированного типа // Сб. тр. VIII международной конференции «Интеллектуальный анализ информации, ИАИ-2008», Киев, Просвiта, 2008. – С. 502–511. 6. F. Zambonelli, N. R. Jennings, and M. Wooldridge. Developing Multiagent Systems: The Gaia Methodology. In ACM Transactions on Software Engineering Methodology, 12(3), 2003. 7. Zhabska Tetiana , Fedyaev Oleg . The development of agent-based intellectual e-learning environment // Proceedings of the IADIS International conference Intelligent systems and agents, 2011, Rome, Italy, July 24 - 26, 2011. - Pages 143-147. 8. Филимонов А.Б., Кромин О.А. Особенности разработки .мультиагентных систем на платформе Jade semantic agent framework // Сборник трудов Московского государственнего университета приборостроения и информатики, 2008. – С. 397-403. http://jade.tilab.com/documentation/tutorials-guides/ - Режим доступа: http://jade.tilab.com Куташов Р.И., Федяев О.И. Разработка агентно-ориентированной модели кафедры университета с помощью Framework Jade. Рассматривается создание виртуальной кафедры университета агентно-ориентированного типа. С помощью методологии Gaia выполнен агентно-ориентированный анализ процесса изучения студентами одного учебного курса в соответствии с требованиями программной инженерии. Для программной реализации была выбрана инструментальная среда Jade. Ключевые слова: агентно-ориентированный анализ, мульти-агентная система, программный агент, распределённая система, обучение, виртуальный отдел, кафедра. Kutashov R.I., Fedyayev O.I. The development of the agent-based model the university department using the Jade Framwork. In the submitted paper the creation of the distributed agent-oriented system of university virtual department is considered. According to the Gaia methodology an agent-oriented analysis of the process of teaching students the university courses has been done in accordance with the direction area “Software Engineering”. A development environment Jade was chosen for the software implementation. Keywords: agent-oriented analysis, multi-agent system, software agent, distributed system, learning, virtual department, department. 52 УДК 004.056 Разработка модели защищенного облачного хранилища данных В.Е. Лебедев, А.В. Чернышова Донецкий национальный технический университет [email protected], [email protected] Лебедев В.Е., Чернышова А.В. Разработка модели защищенного облачного хранилища данных. В данной работе проводится анализ существующих облачных сервисов для хранения данных, а также рассматривается разработанная модель для создания защищенного облачного хранилища. Ключевые слова: шифрование, облачное хранилище, база данных, разграничение прав доступа. Введение На данный момент мы постоянно используем гигабайты данных. Хранить данные на собственных носителях информации не всегда удобно, так как их объем носителей ограничен, а защита от потери данных не предусмотрена. Решением проблемы может стать облачные хранилища, которые становятся все более популярными в настоящее время. Облачные хранилища позволяют сохранить данные на сервере, а затем получить к ним доступ из любого места. Зачастую такие сервисы предоставляют Web-клиент для доступа к данным, что позволяет получить доступ к файлам из любого места, будь то ноутбук, телефон или рабочий компьютер. Уже сегодня можно получить хранилища, вмещающие терабайты данных за умеренную стоимость. Можно выделить следующие преимущества: возможность организации совместной работы с данными[1]; клиент не занимается организацией инфраструктуры для хранения данных; сохранение целостности и репликация данных производятся провайдером «облачного» центра. Важно понимать, что облачные сервисы не всегда могут обеспечить должный уровень безопасности. Руководитель компании G Data Security Labs и эксперт по безопасности Ральф Бенцмюллер не рекомендовал использовать «облачные» сервисы в связи с тем, что данные могут стать достоянием общественности[2]. Основными причинами этого: не обеспечивается безопасность при хранении и пересылке дынных, что приводит к потере конфиденциальности данных. Так, например, провайдер имеет возможность просматривать данные клиентов, что может привести к краже данных хакерами; надежность и доступность данных в «облаке» зависит от многих промежуточных параметров, таких как каналы передачи данных на пути от клиента к «облаку», качество работы интернет-провайдера клиента, доступность самого «облака» в данный момент времени. Обзор существующих облачных хранилищ Google Диск — это файловый хостинг, созданный и поддерживаемый компанией Google. был впервые представлен 24 апреля 2012 года[4], а к октябрю 2014 года насчитывал 240 миллионов ежемесячно активных пользователей.[8] Данный сервис предоставляет возможность хранения файлов, общего доступа к файлам, совместного редактирования данных. В состав Google Диска входят Google Документы, Таблицы и Презентации — набор офисных приложений для совместной работы над текстовыми документами, электронными таблицами, презентациями, чертежами, веб-формами и другими файлами. Кроме доступа к сервису через веб-интерфейс, есть возможность доступа через клиенты для Windows, Mac OS и Android, iOS. Данный сервис предлагает тарифы, представленные в таблице 1. Ежемесячная плата Объем Таблица 1 – Размер облачного хранилища Google Диск. Бесплатно $1,99 $9,99 $99,99 $199,99 15 ГБ 100 ГБ 1 ТБ 10 ТБ 20 ТБ $299,99 30 ТБ OneDrive (ранее SkyDrive) — облачное хранилище, созданное в августе 2007 года и управляемое компанией Microsoft[5]. Существует поддержка Office Online, что позволяет пользователям загружать, 53 создавать, редактировать и обмениваться документами Microsoft Office непосредственно в веб-браузере. Пользователи могут создавать, просматривать и редактировать документы Word, Excel, PowerPoint и OneNote прямо в браузере. Выпущены клиентские приложения для Android, iOS, Windows Phone, Windows, Xbox (в том числе Windows 8), OS X, MeeGo 1.2 Harmattan, Symbian Belle. Данный сервис предлагает тарифы, представленные в таблице 2. Ежемесячная плата Объем Таблица 2 – Размер облачного хранилища OneDrive. Бесплатно 72 р. 144 р. 249 р. 15 ГБ 100 ГБ 200 ГБ Office 365 + 1ТБ Dropbox — файловый хостинг компании Dropbox Inc., включающий персональное облачное хранилище, синхронизацию файлов и программу-клиент. Dropbox позволяет пользователям создать специальную папку на своих компьютерах, которую Dropbox синхронизирует таким образом, что она имеет одинаковое содержимое независимо от того, какое устройство используется для просмотра[6]. Файлы, размещённые в этой папке, также доступны через веб-сайт Dropbox и мобильные приложения. Dropbox в связке с BoxCryptor, который надежно шифрует файлы перед синхронизацией их с облаком, обеспечивает конфиденциальность данных в Dropbox. Данный сервис предлагает тарифы, представленные в таблице 3. Таблица 3 – Размер облачного хранилища Dropbox. Ежемесячная плата Бесплатно $9,99 $15 Объем 2-16 ГБ 1 ТБ безлимит MEGA (MEGA Encrypted Global Access) — файлообменник Кима Доткома. Открыт 19 января 2013 года. Особенностью данного сервиса является то, что Mega шифрует весь контент прямо в браузере с помощью алгоритма AES. Пользователи могут передавать друг другу файлы в зашифрованном виде, при этом все данные хранятся в «облаке». Ключи доступа к файлам не публикуются в открытом доступе, а распространяются по схеме Friend-to-Friend, между доверяющими друг другу пользователями. Однако сервис критиковался экспертами по криптографии из-за фактического отсутствия доверенного объекта на стороне пользователя[7]. Хотя шифрование происходит на стороне клиента при помощи javascript, этот код каждый раз заново загружается с сервера и в любой момент может быть подменен без предупреждения, например, в результате взлома сервера третьей стороной. Данный сервис предлагает тарифы, представленные в таблице 4. Ежемесячная плата Объем Таблица 4 – Размер облачного хранилища MEGA. Бесплатно €9,99 €19,99 50 ГБ 500 ГБ 2 ТБ €29,99 4ТБ Яндекс.Диск — облачный сервис, принадлежащий компании Яндекс, позволяющий пользователям хранить свои данные на серверах в «облаке» и передавать их другим пользователям в Интернете. Работа построена на синхронизации данных между различными устройствами. Данный сервис предоставляет такие возможности: хранение файлов неограниченное время, передача файлов по зашифрованному соединению, проверка файлов антивирусом, синхронизация файлов между всеми устройствами пользователя, возможность редактировать файлы через Web-интерфейс. Основные платформы: Web-версия, десктопный клиент для Windows XP/Vista/7/8/10, macOS и Linux, мобильная версия для iOS, Android и Windows Phone. Данный сервис предлагает тарифы, представленные в таблице 5. Ежемесячная плата Объем Таблица 5 – Размер облачного хранилища Яндекс.Диск. Бесплатно 30 р. 150 р. 10 ГБ +10 ГБ +100 ГБ 900 р. 1ТБ Разработка модели защищенного облачного хранилища Проанализировав существующие системы облачного хранения данных, оказалось, что только в MEGA реализовано шифрование файлов перед отправкой на сервер, а также BoxCrypt реализует защиту файлов перед отправкой в Dropbox. После анализа были сформулированы следующие требования: Web-версия, реализующая управление файлами, загрузку/скачивание файлов; возможность структурирования файлов по папкам; разграничение прав доступа для разных пользователей; 54 шифрование файлов перед отправкой их на сервер; выделение квот на загрузку файлов. Облачное хранилище данных реализует клиент-серверную архитектуру, где клиент позволяет просматривать загруженные файлы, загружать файлы на сервер, скачивать файлы с сервера, а сервер позволяет организовать структуру каталогов, а также проверку прав на работу с файлами. Файлы пользователя будут размещаться на машине-сервере. Каждому пользователю будет соответствовать список файлов с указанием вариантов доступа (доступ закрыт, доступ по ссылке, общедоступен). База данных содержит информацию о пользователе (логин, пароль, личные данные, доступные ему квоты). Информация о квотах и свободном месте хранится в таблице users_space_info. Таблица file_users связывает файлы с пользователями в отношении многие ко многим. Таблица files содержит информацию о файле: путь к файлу на сервере, размер файла, дата добавления. Пользователь может ограничить доступ к файлу, информация о способе доступа к файлу хранится в таблице d_access_mode. Рисунок 1 – Таблицы базы данных, отвечающие за работу с файлами Рассмотрим возможный алгоритм работы клиентской части приложения. При загрузке файлов на сервер клиенту необходимо получить симметричный ключ, для этого клиент отправляет запрос с указанием своего открытого RSA-ключа[13]. В ответ клиент получает зашифрованный симметричный ключ. После расшифрования симметричного ключа клиент шифрует им файл и отправляет на сервер. Сервер в свою очередь помещает его на раздел жесткого диска, добавляет информацию в базу данных, обновляет информацию о квотах. Процесс получения файла с сервера происходит подобным образом: после обмена ключами и расшифровки симметричного ключа клиент получает зашифрованный файл, расшифровывает его и скачивает на устройство пользователя. Таким образом, обеспечивается защита информации при передаче по небезопасной сети. Выводы В результате выполнения работы были рассмотрены существующие облачные хранилища данных, был проведен их сравнительный анализ, а также на основе их функциональности были разработаны требования к создаваемой системе. Была разработана модель системы, предусматривающая основные требования к системе (спроектирована база данных серверной части, предложен возможный алгоритм защищенного взаимодействия клиента и сервера для загрузки и получения данных). Литература 1. Онлайновые хранилища данных // ComputerBild : журнал. — 2010. — № 4. — С. 62—67. 2. Масштабные утечки данных: конец «облачным» сервисам? // Chip : журнал. — 2011. — № 8 (149). — С. 20—21. 3. Облачное хранилище данных // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Dropbox 4. Introducing Google Drive... yes, really // Google. [Электронный ресурс]. – Режим доступа: https://googleblog.blogspot.com/2012/04/introducing-google-drive-yes-really.html 55 5. Microsoft запустила бесплатный веб-офис // internet.cnews.ru. [Электронный ресурс]. – Режим доступа: http://internet.cnews.ru/news/top/microsoft_zapustila_besplatnyj_vebofis 6. Dropbox: The Online Storage Solution We’ve Been Waiting For? // techcrunch.com. [Электронный ресурс]. – Режим доступа: https://techcrunch.com/2008/03/11/dropbox-the-online-storage-solution-weve-beenwaiting-for/ 7. Эксперты критикуют криптографию на сайте Mega // xakep.ru. [Электронный ресурс]. – Режим доступа: https://xakep.ru/2013/01/22/59977/ 8. Google Диск // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Google_Диск 9. OneDrive // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/OneDrive 10. Dropbox // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Dropbox 11. Mega // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Mega 12. Яндекс.Диск // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/Яндекс.Диск 13. RSA // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/RSA 14. SHA-2 // Википедия — свободная энциклопедия. [Электронный ресурс]. – Режим доступа: https://ru.wikipedia.org/wiki/SHA-2 Лебедев В.Е., Чернышова А.В. Разработка модели защищенного облачного хранилища данных. В данной работе проводится анализ существующих облачных сервисов для хранения данных и их способы защиты, а также рассматривается разработанная модель для создания защищенного облачного хранилища. Ключевые слова: шифрование, облачное хранилище, база данных, разграничение прав доступа. Lebedev V.E., Chernyshova A.V. Model development of the protected cloud data storage. In this article, the authors analyze existing cloud storages and their protection methods and make a review of developed model for creating the protected cloud storage. Keywords: encryption, cloud storage, database, distinction of user permissions. 56 УДК 004.6 Разработка программной системы для технического обслуживания самолетов А.В. Московченко Донецкий национальный технический университет [email protected] Московченко А.В. Разработка программной системы для технического обслуживания самолетов. В данной статье проанализированы существующие программные системы для обслуживания самолетов, обоснована важность их использования. На основе анализа представлена структура будущей системы и средства для ее реализации. Ключевые слова: система управления базами данных, внешнее диалоговое приложение, SQL, файл-сервер, физическая структура базы данных. Введение Эффективная работа аэропорта немыслима без систем управления. Современные системы управления базируются на комплексных системах обработки информации, на современных информационных технологиях. Современные системы компьютерного управления обеспечивают выполнение точного и полного анализа данных, получение информации во времени без задержек, определение тенденций изменения важных показателей. Ядром программной системы технического обслуживания самолетов является база данных. База данных – это совокупность структурированных и взаимосвязанных данных и методов, обеспечивающих добавление выборку и отображение данных. С понятием базы данных тесно связано понятие системы управления базой данных. Это комплекс программных средств, предназначенных для создания структуры новой базы, наполнения ее содержимым, редактирования содержимого и визуализации информации. Под визуализацией информации базы понимается отбор отображаемых данных в соответствии с заданным критерием, их упорядочение, оформление и последующая выдача на устройство вывода или передача по каналам связи. Главной задачей данной работы является разработка внешнего диалогового приложения для технического обслуживания самолетов. Оно является, связующим звеном между конечными пользователями и базой данных MS SQL Server. Цель исследования Проанализировать существующие системы, работающие с авиационными базами данных, определить их достоинства и недостатки, на основе анализа привести структуру собственной разрабатываемой системы. Анализ существующих систем Одной из существующих систем является автоматическая компьютеризированная программа технического обслуживания самолетов CAMP. Она разработана для автоматизации выполнения и учета обязательных работ, предусмотренных заводом изготовителем, для поддержания надежности самолетов и обеспечения безопасности полетов [1]. С введением каждого самолета в эксплуатацию, завод изготовитель разрабатывает программу технического обслуживания, которая включает: - учет периодических форм технического обслуживания систем самолета через определенные интервалы; - учет перечней деталей с ограниченным сроком службы; - учет установленных агрегатов, заменяемых по состоянию; - учет модернизации самолета. Согласно требованиям органов авиационной безопасности, самолет может эксплуатироваться, если выполнены все виды работ согласно этой программе технического обслуживания и все агрегаты имеют ресурс. 57 С развитием IT-технологий процесс учета этих данных стал более автоматизированным, позволяющим экономить время работы с документацией (оформление выполненных работ). Преимуществом данной системы является возможность доступа к информации из разных точек Сети, группировка информации для разного вида анализов, хранение информации в базе. Каждая работа (задание) или агрегат имеют свой унифицированный код в системе. Их перечень находится в базе данных CAMP. Можно использовать эти данные для формирования отчетов. Согласно программе технического обслуживания каждое конкретное периодическое обслуживание (1А, 2А, 2В, 3С и т.д.) включает в себя пакет заданий. При формировании этого пакета происходит выборка из общей базы согласно периодичности. Имеется возможность получить информацию о технологии выполнения заданий. Данные о выполнении задания заносятся пользователем в систему для дальнейшего пересчета системой очередных сроков выполнения работ. При замене агрегатов система обеспечивает пользователя бланком для документирования операции. Данные о вновь установленном агрегате заносятся в систему (заводской номер, серийный номер, наработка до установки и т.д.). Скопированный документ о выполненной работе может помещаться в архив системы для хранения. К недостаткам системы можно отнести: англоязычный интерфейс и документацию, доступ к системе можно получить только при наличии интернет соединения. Структура разрабатываемой системы Современные информационные технологии позволяют разрабатывать как внешние, так и внутренние приложения к базам данных. Внешнее диалоговое приложение – это пользовательская прикладная программа, разработанная вне СУБД с применением современных средств проектирования прикладных программ. В качестве средств проектирования диалоговых приложений к базам данных на учебной практике используется среда Microsoft Visual. На Web-уровне рекомендуется использовать сочетание языков HTML и VBScript. Внутреннее диалоговое приложение создается средствами СУБД, в среде которого создана база данных. Для того чтобы интерфейс был удобен для использования конечными пользователями, наиболее удачным вариантом будет создания Windows-приложения, состоящего из определенного количества отдельных форм, связанных с одной основной, из которой они будут вызываться. Программа является диалоговым многооконным приложением. В ней будет реализована форма, предоставляющая доступ к остальным окнам программы. Просмотр таблиц будет осуществляется с помощью небольшой диалоговой формы, позволяющей удалять старые записи, добавлять новые и изменять существующие. Разработку клиентского приложения можно разбить на модуль работы с данными и модель формирование отчетов (см.рис.1). Рисунок 1 – Структура разрабатываемой программной системы 58 База данных должна автоматически проверять вводимые поля на целостность данных. В программе реализована возможность выполнения типовых запросов к базе данных, созданных в курсовой работе ранее в предыдущем учебном модуле. Ввод и просмотр запросов осуществляется в соответствующем диалоговом окне. Разрабатываемое приложение к БД должно включать следующие операции: просмотр, корректировку таблиц базы данных, добавление и удаление записей; просмотр запроса в индивидуальной форме, выбранному из списка запросов главного меню; создание сложной формы. Анализ программных средств реализации Проектироваться база данных будет в MS SQL Server. Microsoft SQL Server - это, прежде всего, система управления базами данных (СУБД). Как и другие продукты этой категории, она предназначена для хранения и поиска данных, представления информации в удобном виде и автоматизации часто повторяющихся операций (таких, как ведение счетов, учет, планирование и т.п.). С помощью Microsoft SQL Server можно разрабатывать простые и удобные формы ввода данных, а также осуществлять обработку данных и выдачу сложных отчетов. При всем этом Microsoft SQL Server - не просто СУБД. Как реляционная СУБД Microsoft SQL Server обеспечивает доступ ко всем типам данных и позволяет использовать одновременно несколько таблиц базы данных. При этом можно существенно упростить структуру данных, облегчая тем самым выполнение поставленных задач. Таблицу Microsoft SQL Server можно связать с данными, хранящимися на большой ЭВМ или на сервере. С другой стороны, можно использовать таблицы, созданные в среде Paradox или dBASE. Полученные результаты можно быстро и легко связать и объединить с данными из электронных таблиц Excel [2]. Система Microsoft SQL Server - это набор инструментов конечного пользователя для управления базами данных. В ее состав входят конструкторы таблиц, форм, запросов и отчетов. Эту систему можно рассматривать и как среду разработки приложений. Используя макросы или модули для автоматизации решения задач, можно создавать ориентированные на пользователя приложения такими же мощными, как и приложения, написанные непосредственно на языках программирования [2]. В Microsoft SQL Server в полной мере реализовано управление реляционными базами данных. Система поддерживает первичные и внешние ключи и обеспечивает целостность данных на уровне ядра, что предотвращает несовместимые операции обновления или удаления данных. Кроме того, таблицы в Microsoft SQL Server снабжены средствами проверки допустимости данных, предотвращающими некорректный ввод вне зависимости от того, как он осуществляется, а каждое поле таблицы имеет свой формат и стандартные описания, что существенно облегчает ввод данных. Microsoft SQL Server поддерживает все необходимые типы полей, в том числе текстовый, числовой, счетчик, денежный, дата/время, MEMO, логический, гиперссылка и поля объектов OLE. Если в процессе специальной обработки в полях не оказывается никаких значений, система обеспечивает полную поддержку пустых значений [3]. Реляционная обработка данных в Microsoft SQL Server за счет гибкой архитектуры системы способна удовлетворить любые потребности. При этом Microsoft SQL Server может использоваться как автономная СУБД в режиме файл-сервера (см.рис.2). Рисунок 2 – Взаимодействие пользователя с базой данных Также для создания новой базы данных можно воспользоваться приложением ERWin. С его помощью создается ER-модель, указываются необходимые сущности, поля, связи таблиц базы данных. В качестве инструментального средства разработки приложений будет использована среда Microsoft Visual Studio. Приложение будет разрабатываться на языке С# с использованием технологии доступа к данным 59 ADO.NET. Данный язык реализует объектно-ориентированную модель программирования, а также предоставляет наибольшую функциональность и удобство разработки [4]. При работе с подобными приложениями следует выделить 3 логических этапа: - проектирование базы данных в Erwin или другом Case-средстве; - перенос спроектированной базы в MS SQL Server и ее заполнение; - создание интерфейса в среде программирования Microsoft Visual Studio. Разработка эффективной базы данных состоит из нескольких этапов. Процесс ее разработки начинается с анализа требований. Проектировщик на этом этапе разработки должен найти ответы на следующие вопросы: какие элементы данных должны храниться, кто и как будет к ним обращаться [5]. На втором этапе создается логическая структура базы данных. Для этого определяют, как данные будут сгруппированы логически. Структура базы данных на этом этапе выражается в терминах прикладных объектов и отношений между ними. На заключительном третьем этапе логическая структура базы преобразуется в физическую с учетом аспектов производительности. Выводы Проанализированы существующие системы авиационных баз данных, определены их достоинства и недостатки. Разработана структура будущего приложения. Проанализированы программные средства реализации системы, обоснован выбор СУБД MS SQL Server для создания базы данных, Microsoft Visual Studio, в качестве инструментального средства разработки клиентского приложения и язык программирования С#, на котором приложение будет написано. Литература 1. http://www.campsystems.com/PWCtransition Camp aircraft maintenance program – 2016. 2. http://werr.ru/diplom1/relizBD.htm Студенческий сайт. – 2016. – Реализация базы данных. 3. https://msdn.microsoft.com/library/ms130214.aspx Техническая документация MS SQL Server – 2016. 4. https://msdn.microsoft.com/ru-ru/library/67ef8sbd.aspx Руководство по программированию на C# – 2016. 5. Евсеева О.Н., Шамшев А.Б. Работа с базами данных на языке С#: Учебное пособие - Ульяновск, 2009. - С.8-10. Московченко А.В. Разработка программной системы для технического обслуживания самолетов. В данной статье проанализированы существующие программные системы для обслуживания самолетов, обоснована важность их использования. На основе анализа представлена структура будущей системы и средства для ее реализации. Ключевые слова: система управления базами данных, внешнее диалоговое приложение, SQL, файл-сервер, физическая структура базы данных. Moskovchenko A.V. Development of software system for aircraft maintenance. This article analyzes the existing software systems for aircraft maintenance, substantiates the importance of their use. Based on the analysis presented the structure of the future system and tools for its implementation. Keywords: information management system, an external dialog application, SQL, file server, the physical structure of the database. 60 УДК 51-7; 519.2 Программное обеспечение для решения оптимизационных задач управления предприятием Е.А. Ногтев Донецкий национальный технический университет [email protected] Ногтев Е.А. Программное обеспечение предприятий для процессов управления и оптимизации. В статье рассмотрены основные программные средства, используемые при принятии эффективных управленческих решений в процессе деятельности организаций, предприятий, фирм. Ключевые слова: программное обеспечение, поиск решения, оптимизация, , процессы управления Excel, финансово-экономический анализ, SPSS, статистический анализ, математический анализ, Statistica, MatLab, Mathematica. Введение Наиболее важной и актуальной задачей при разработке информационных технологий для автоматизации процессов управления организацией, фирмой, предприятием является выбор соответствующих программных продуктов. Из-за того, что спектр решаемых задач большой, возникает сложность в стандартизации так как большинство задач сочетают в себе одновременно различные аспекты – вычислительные, логические, информационно-поисковые. Достаточно велико число программных продуктов, применяющихся для решения различных управленческих задач. Здесь ограничимся рассмотрением наиболее характерных в своем классе программных продуктов, которые могут быть широко использованы при управлении организацией, предприятием или фирмой. Обзор программных средств Данный вид программных средств можно разделить на несколько групп: электронные таблицы; программы для финансово-экономического анализа; программы статистического и математического анализа; Следует отметить, что предлагаемое деление достаточно условно, так как одни программные средства могут сочетать в себе возможности нескольких выделенных групп, а другие могут быть ориентированы только на узкоспециализированный круг задач. К первой группе относятся табличные программы, такие, как Lotus Notes, Quattro Pro 7, Excel 2016 – это мощные системы поддержки принятия решений. Они обладают новыми возможностями математического, статистического и графического анализа данных, доступ к внешним базам данных, развитый интерфейс, возможность разработки пользовательских программ и др. Программа Quattro Pro имеет существенно большие размеры таблиц (1 000 000 строк на 18 276 столбцов в Quattro Pro по сравнению с 65 536 строк на 256 столбцов в MS Excel). Программа позволяет быстро анализировать данные, организовывать и управлять ими, и основываясь на результатах готовить выразительные отчеты. Этот продукт был привлекательным для корпоративного рынка требующего работы с большими объемами данных еще долгое время после заката популярности Novell Lotus 1-2-3. На сегодняшний день лидером в данной области является Excel 2010/2013/2016 для Windows 7/8/10. Эта программа предназначена для работы с электронными таблицами. Кроме широких функциональных возможностей Excel позволяет производить разработку программных продуктов на достаточно высоком уровне. Она предоставляет возможности экономико-статистических расчетов, графические инструменты и язык макропрограммирования VBA (Visual Basic for Application). В настоящее время существует множество приложений, предназначенных для решения широкого круга задач (статистический и математический анализ, реализация систем ИИ), выполненных в виде надстроек к Excel. Одна из самых распространённых надстроек Excel называется «Поиск решения», эта надстройка доступна во всех версиях Excel. Поиск решения – надстройка Excel, которая помогает найти решение с помощью изменения значений 61 целевых ячеек [1]. Целью может быть минимизация, максимизация или достижение некоторого целевого значения. Проблема решается путем регулировки входных критериев или ограничений, определенных пользователем. Также эта надстройка используется для решения задач линейного, целочисленного, нелинейного и стохастического программирования, однако не все предлагаемые ей методы равнозначны при поиске альтернативных оптимальных решений. Последняя версия этой надстройки обладает улучшенным пользовательским интерфейсом Evolutionary Solver, основанным на алгоритмах генетического анализа, для работы с моделями, в которых используются любые функции Excel. Также необходимо упомянуть эффективную надстройку Evolver разработанную компанией Palisade. Evolver — это мощная, но при этом простая в использовании надстройка оптимизации для Microsoft Excel. На основе инновационного генетического алгоритма (ГА), механизма OptQuest (Industrial edition), и методов линейного программирования Evolver позволяет быстро решать задачи, связанные с финансами, распространением, составлением расписания, распределением ресурсов, производством, бюджетированием, проектированием, и многие другие. Evolver найдет решение проблемы практически любого типа, если ее можно смоделировать в Excel, в том числе для неразрешимых комплексных нелинейных проблем. Evolver обладает уникальной способностью находить лучшее в глобальном масштабе решение проблемы, которое традиционные решатели обычно упускают из вида. Если сравнивать данный продукт с надстройкой «Поиск решения» описанный ранее, то мы знаем, что данный модуль хорошо справляются с задачей поиска лучшего «локального» решения, то есть комбинации значений для максимизации или минимизации результата в простой табличной модели при заданных определенных ограничениях. Они находят решение, которое, как кажется, дает хорошие результаты, и продолжают работать на его основе, не оценивая новые решения. Такой подход называется «поиском экстремума». Однако подобные программы не предназначены для работы с более сложными нелинейными проблемами, в которых лучшее локальное решение не обязательно будет лучшим абсолютным ответом. Поэтому Evolver, который использует инновационные «мутации» и комбинации решений, или «организмов», позволит найти лучший глобальный ответ в результате исследования всей совокупности возможных ответов. Для поиска оптимальной комбинации настраиваемых ячеек в Evolver реализовано шесть методов решения. Выбор метода обусловлен поставленной задачей. Доступны следующие методы решения: Рецепт – набор переменных, которые могут изменяться независимо друг от друга. Группировка – коллекция элементов, которые помещаются в группы. Заказ – упорядоченный список элементов. Бюджет – аналогичен алгоритму «рецепт», но итог является константой. Проект – аналогичен алгоритму «заказ», но некоторые элементы предшествуют другим. Расписание – аналогичен алгоритму «группировка», но распределяет элементы по блокам времени с учетом заданных ограничений. Evolver также в значительной мере позволяет контролировать выполнение самой оптимизации. В диалоговом окне настроек Evolver можно установить параметры оптимизации, настройки времени выполнения, контрольные макросы и многое другое. Во время оптимизации Evolver генерирует несколько пробных решений и с помощью генетических алгоритмов, механизма OptQuest и алгоритмов линейного программирования непрерывно улучшает результаты каждой пробы. При использовании генетических алгоритмов каждое возможное решение становится независимым «организмом», который может «скрещиваться» с другими организмами. Табличная модель служит средой обитания для организмов. Она определяет на основе их результатов, какие из организмов «способны» к выживанию, и время от времени проверяет «мутации» или абсолютно новые решения. Evolver Excel заменяет встроенный в функции статистики с собственными расчетами. Все Evolver функций верны функций Excel, и ведут себя точно так, как встроенные функции Excel делают. Evolver расчетов оптимизированы путем использования C + +. DLL, не макро расчетов. Доступны две версии Evolver: Профессиональная и Промышленная. Профессиональная версия поддерживает до 250 настраиваемых переменных на модель, тогда как в Промышленной версии количество переменных в модели не ограничено. Evolver Промышленное также включает в себя OptQuest решающий двигатель, и Efficient Frontier Analysis. Используйте Evolver промышленные для ваших крупнейших, более сложных моделей. Evolver поставляется отдельно или в составе DecisionTools Suite — комплексного пакета для анализа рисков и принятия решений от компании Palisade. Набор программ для финансово-экономического анализа помогают автоматизировать и оптимизировать процесс мониторинга финансовых показателей фирмы. На основе полученных данных эксперт может прогнозировать будущее экономическое состояние предприятия и принимать меры по устранению неблагоприятных факторов. Многоаспектный анализ финансово-экономических процессов предполагает постоянный мониторинг и прогнозирование состояния всего объекта исследования и отдельных его частей, а также общерыночных и фундаментальных факторов. На основе различных видов данных можно рассчитывать наглядные показатели реального состояния дел на предприятии. Некоторые программы позволяют не только проводить анализ, но также планировать работу предприятия. Таким образом, сущность финансовоэкономического анализа заключается в выявлении закономерностей, которые действовали в прошлом и в 62 нынешнем времени, и в прогнозировании объективных внешних и внутренних факторов, влияющие на объект исследования, вследствие чего влияет на стоимость предлагаемых услуг, которая влияет на получении прибыли предприятия в настоящем и будущем. На организацию и проведения финансово-экономического анализа в полной мере влияют такие факторы как нестабильностью экономической и политической среды, частыми изменениями в законодательстве, информационной закрытостью предприятий (организаций, фирм, объединений и др.), нехватка высококвалифицированных кадров, которые негативно сказываются на результаты анализа, планирования и прогнозирования. Достаточно большой популярностью пользуются распространённые продукты, такие, как Sure Truck, Primavera Project Planner, MS Project, которые основываются в основном на имитационных моделях и позволяют смоделировать различные варианты бизнес-плана[2]. Среди российских программных продуктов можно выделить те, которые позиционируются как «системы анализа финансового состояния предприятия» и позволяющих пользователям оценить результаты деятельности компаний. Они различаются как по спектру задействованных показателей, так и по реализованным в них подходам к решению основных задач анализа финансово-хозяйственной деятельности предприятий. В этих условиях перед потенциальными пользователями стоит нелегкая проблема выбора средства, которое могло бы наилучшим образом решить его проблемы. Рассмотрим некоторые системы, которые помогают решать наиболее типичные задачи финансового анализа. Такими системами являются «ИНЭК-АФСП» фирмы «ИНЭК», «Альт-Финансы» фирмы «Альт», «Audit Expert» фирмы «Про-Инвест-ИТ» и «АБФИ-Предприятие» фирмы «Вестона». Они предназначены для выполнения комплексной оценки деятельности предприятия, выявления основных тенденций его развития, расчета базовых нормативов для планирования и прогнозирования, оценки кредитоспособности предприятия. Во всех рассматриваемых системах реализована возможность приведения исходной финансовой отчетности предприятия за различные периоды к единому виду, позволяющая тем самым обеспечить сопоставимость данных, относящихся к различным периодам времени, что необходимо для их последующего анализа в динамике. Сопоставимость данных может быть улучшена и за счет переоценки некоторых финансовых показателей. Это максимально приближает анализируемые данные к реальным. Система Audit Expert - единственная, которая позволяет провести переоценку различных статей активов и пассивов предприятия для проведения анализа на основании реальных данных. Широкое применение для проведения финансово-экономического анализа находят статистические и математические пакеты, которые составляют следующую группу программных средств. За последние 20 лет западный рынок программного обеспечения претерпел сильные изменения. Если с начала 80-х годов на рынке было представлено более 100 основных программных продуктов, обладающих сходными характеристиками, то на настоящий момент эта цифра намного меньше. Большое количество мелких компаний предлагавших свои программные продукты были поглощены более крупными. Учитывая высокую стоимость коммерческих пакетов на рынке появилось большое число свободного программного обеспечения, для статистических расчетов. Однако вследствие отсутствия технической поддержки и финансирования, большинство из них не развивается. Российский рынок программного обеспечения также сильно изменился за последние 10 - 15 лет. В начале 90-х годов в России было представлено около десятка отечественных программных пакетов. Среди них Класс-Мастер (ТВП), Квазар (ИММ УрО РАН), Мезозавр («Стат-диалог») и ряд других. Однако с появлением на отечественном рынке таких гигантов как SPSS (SPSS Inc.), SAS (SAS Institute) и Statistica (StatSoft) большинство из них прекратили свою деятельность. По функциональным возможностям из перечисленных программных продуктов наиболее мощными являются семейство программ SPSS (SPSS 7.5, SPSS DIA, SPSS Trend и др.) и Statistica [3]. Пакет SPSS предназначен в первую очередь для статистов-профессионалов и имеет широкое распространение в академической среде. Отличается оконным интерфейсом, хотя для написания процедур имеется встроенный язык макросов. Программный пакет русифицирован и существует несколько Российских руководств, позволяющих обучится работе с этим пакетом. Данный программный продукт относится к достаточно мощным системам. Для статистического анализа и моделирования в программе имеется около двухсот различных процедур, включая многомерные методы исследования и построение моделей. Отмечается также, что программа оснащена очень гибкими инструментами ввода - вывода. Имеется возможность построения различных видов графиков. Кроме базового модуля системы существует несколько дополнений, которые расширяют возможности программы при решении специфических задач. Например, SPSS Answer Tree, который представляет собой модуль для построения деревьев решений. При работе с пакетом бросается в глаза тот факт, что программа рассчитана для работы с большими массивами данных и выборками. Поэтому в ее составе отсутствуют развитые средства для исследования распределений и непараметрического анализа. Незаменим для всестороннего анализа и выявления внутренней структуры данных, которую вполне могут не заметить те, кто пользуется лишь электронными таблицами и 63 системами управления базами данных. Особенно эффективен и широко применяется в сфере бизнеса, в частности, в маркетинговых исследованиях, а также при анализе социологических данных. Пакет Statistica - это универсальная интегрированная система, предназначенная для статистического анализа и визуализации данных, управления базами данных и разработки пользовательских приложений, содержащая широкий набор процедур анализа для применения в научных исследованиях, технике, бизнесе, а также специальные методы добычи данных. Наличие достаточно широкого спектра функциональных алгоритмов делает пакет Statistica достаточно привлекательным для статисто-профессионалов, так как он включает в себя ряд непараметрических методов анализа: дискриминантного, факторного кластерного, логлинейного и др. Сильной стороной пакета является графика и средства 2D или 3D,матрицы и пиктограммы. Предоставляется возможность разработки собственного дизайна графика. Помимо общих статистических и графических средств в системе имеются специализированные модули, например, для проведения социологических или биомедицинских исследований, решения технических и, что очень важно, промышленных задач: карты контроля качества, анализ процессов и планирование эксперимента. Работа со всеми модулями происходит в рамках единого программного пакета, для которого можно выбирать один из нескольких предложенных интерфейсов пользователя. Среди российских разработок выделяется статистический пакет STADIA, который разработан ведущими специалистами Московского государственного университета им. М.В. Ломоносова совместно с НПО «Информатика и компьютеры». STADIA - за 12 лет существования и развития стал аналитическим инструментом для многих тысяч пользователей в различных областях науки, техники, планирования, управления, производства, экономики, бизнеса, маркетинга, образования, медицины и др. по всей русскоязычной Евразии. По своим базовым возможностям сопоставим с наиболее известными западными статистическими пакетами. STADIA в отличии от SPSS не поддерживает обработку миллионов наблюдений, но прекрасно справляется с данными выборочных исследований нескольких сотен или тысяч респондентов. Пакет ориентирован на конкретные статистические расчеты и построение сопутствующих графиков. Программы математического анализа на российском рынке представлены зарубежными пакетами: MATHCAD (Math Soft), Mathematica (Wolfram Research Inc.), MathLab (MathWorks Ins.). MATLAB — это высокоуровневый язык и интерактивная среда для программирования, численных расчетов и визуализации результатов. С помощью MATLAB можно анализировать данные, разрабатывать алгоритмы, создавать модели и приложения. Главной особенностью MATLAB является то, что пакет ориентирован прежде всего на численные расчеты, визуализацию и технические приложения. Сегодня разработчик MATLAB предлагает 7-ю версию пакета, предназначенную для основных платформ: Windows, Mac OS и Linux/Unix. Все возможности пакета можно разделить на несколько функциональных блоков: математические вычисления – символьные и численные; разработка алгоритмов, приложений и пользовательского интерфейса; извлечение данных; моделирование; визуализация данных, научная и техническая графика. Более миллиона инженеров и ученых по всем миру используют MATLAB в качестве языка технических вычислений. Mathematica — система компьютерной алгебры, широко используемая в научных, инженерных, математических и компьютерных областях. Изначально система была разработана Стивеном Вольфрамом, впоследствии — компанией Wolfram Research [4]. Mathematica является пакетом символьной математики. Огромное количество заложенных разработчиками функций, а также открытая среда, позволяющая дополнять пакет своими собственными расширениями делает его возможности воистину безграничными. Mathematica имеет высокую скорость и практически не ограниченную точность вычислений, что позволяет ей работать как на очень мощных компьютерах, так и не очень сильных персональных компьютерах. Часто основными конкурентами пакета называют Maple, MathCAD и MatLab. Если с первым сложно поспорить, то насчет MathCAD и MatLab можно. Дело в том, что эти два пакета занимают совсем другую нишу, нежели Mathematica. Оба при вычислении используют численные алгоритмы, а не символьные. Символьные вычисления являются слабо развитыми (по сравнению c пакетами символьных вычислений) дополнениями. Вывод Проведенные исследования позволяют сделать вывод, что развитие программных продуктов в будущем должно идти по пути «интеллектуализации». Однако использование различных групп программных средств в каждой сфере деятельности вызывает те или иные неудобства. Однако в целом, использование программных продуктов помогает оптимизировать управленческие решения, без проб и ошибок, что в свою очередь ускоряет движение на пути к достижению эффективности производства и как следствие достижение максимальной прибыли. 64 Литература 1. Минько А.А. Принятие решений с помощью Excel. Просто как дважды два: - М.: Эксмо, 2007. – 240 с. 2. Развитие технологий Интернет в Росии // РЦБ. 1998. – №9. 3. http://pharmdoc.narod.ru/publ/stati_i_izdanija/statistiche Статьи: Современное программное обеспечение для проведения статистической обработки результатов научных исследований – 2013Режим доступа: http://pharmdoc.narod.ru/publ/stati_i_izdanija/statisticheskij_analiz/sovremennoe_programmnoe_ obespechenie_dlja_provedenija_statisticheskoj_obrabotki_rezultatov_nauchnykh_issledovanij_v_ehksperimentalnoj_i_ klini/10-1-0-3. 4. https://ru.wikipedia.org/wiki/Mathematica Википедия: Mathematica – 2016 Режим доступа: https://ru.wikipedia.org/wiki/Mathematica. Ногтев Е.А. Программное обеспечение предприятий для процессов управления. Проведенные исследования позволяют сделать вывод, что развитие программных продуктов в будущем должно идти по пути «интеллектуализации». Однако использование различных групп программных средств в каждой сфере деятельности вызывает те либо иные неудобства Ключевые слова: программное обеспечение, поиск решения, оптимизация,процессы управления Excel, финансово-экономический анализ, SPSS, статистический анализ, математический анализ, Statistica, MatLab, Mathematica. Nogtev E.A. Software companies to manage and optimize processes. In general, studies suggest that the future development of software products should follow the path of "intellectualization". However, the use of different software groups in each area of activity is those or other inconveniences. Keywords: software, search for solutions, optimization, Excel management processes, financial and economic analysis, SPSS, statistical analysis, mathematical analysis, Statistica, MatLab, Mathematica. 65 УДК 004.932.72 Система выделения лиц в видеопотоке с применением алгоритма Виолы-Джонса А.И.Подлесный, А.С.Медведев, О.И.Федяев Донецкий национальный технический университет [email protected] [email protected] Подлесный А.И., Медведев А.С., Федяев О.И. Система выделения лиц в видео потоке с применением алгоритма Виолы-Джонса. В работе рассматривается разработка программной системы выделения лиц на изображении. Она позволит распознавать людей по их лицам. Задача локализации лица сформулирована как задача выделения на снимке подмножества дискретных точек (пикселей), образующих лицо человека. Для решения этой задачи использован метод ВиолыДжонса. Он позволил надежно обнаруживать лица независимо от яркости сцены и цвета лица. Недостатком метода Виолы-Джонса является его алгоритмическая сложность при программировании и обучении. Ключевые слова: видеоизображение, лицо человека, выделение лица, метод Виолы-Джонса Введение Проблеме распознавания человека по изображению лица посвящено множество работ, однако в целом она ещё далека от разрешения [1]. Основные трудности состоят в том, чтобы распознать человека по изображению лица независимо от изменения ракурса и условий освещённости при съёмке, а также при различных изменениях, связанных с возрастом, причёской и т. д. Распознавание изображений пересекается с распознаванием образов. Такие задачи не имеют точного аналитического решения. При этом требуется выделение ключевых признаков, характеризующих зрительный образ, определение относительной важности признаков путём выбора их весовых коэффициентов и учёт взаимосвязей между признаками [2]. Цифровое изображение, получаемое видеокамерой в момент времени t и имеющее по вертикали h, а по горизонтали w пикселей, обозначим It(h, w). Видео-поток – это последовательность цифровых изображений (кадров) It(h, w), It+1(h, w), ..., It+k(h, w). Под прямоугольной областью интересов Obt(X, Y) понимается множество пикселей цифрового изображения It(h, w), очерчивающих искомый объект, содержащее X пикселей по вертикали и Y по горизонтали. Обнаружением объекта называется выделение области Obt(X, Y) на цифровом изображении It(h, w) в момент времени t. Под обнаружением объекта в реальном времени понимается обработка видеопотока с частотой не менее 10 кадров в секунду. Обучением называется предварительная настройка и задание параметров метода для обнаружения интересующего объекта. Обучение может выполняться на основе обучающей выборки, состоящей из одного или нескольких обучающих изображений. Под обучающим цифровым изображением понимается изображение It(h, w) с дополнительной информацией о наличии или отсутствии на нем искомого объекта. Обучающее изображение называется позитивным, если оно содержит объект, который нужно обнаружить. В противном случае обучающее изображение называется негативным. На сегодняшний день существуют различные методы обнаружения объектов на цифровом изображении It(h, w): каскадный классификатор Виолы и Джонса, обобщенное преобразование Хафа [1-3], метод Капура– Винна и другие. Однако методы обнаружения объекта, имеющие высокие показатели надежности и устойчивости, требуют значительных временных и машинных ресурсов для обучения на новых объектах. Методы обнаружения объекта на цифровом изображении It(h, w), по способу отнесения участка изображения к области Obt(X, Y) разделяют на две большие группы: обобщающие и различающие [4] . Для решения этого класса задач предложен ряд программных средств. К этим средствам относится система Emgu CV — кроссплатформенная «обёртка» для .NET библиотеки обработки изображений [5]. Она используется для решения разнообразных задач связанных с 2D графикой, распознанием лиц и предметов на фото, распознание лиц и предметов на видео. Система AForge.NET ориентирована на разработчиков и исследователей в области компьютерного зрения и искусственного интеллекта [6]. К новому поколению систем 66 компьютерного видеонаблюдения относятся система Cognitec FaceVACS SDK и FaceVACS VideoScan, которые автоматически сканирует входящий видеопоток и обнаруживают несколько лиц и проверяют наличие возможных совпадений в «контрольном списке» [7]. Таким образом, выбор условий съёмки и настроек очень важны для многих алгоритмов и систем. Отлично работая в одних условиях, многие алгоритмы могут полностью перестать работать в других условиях. Постановка задачи локализации лица Вводимый снимок S(x,y) – представляет собой совокупность изображений отдельных объектов (лиц) и фона S(x,y) = L1(x,y) + L2(x,y) +…+ Ln(x,y) + F(x,y), где n – количество выделяемых на снимке лиц; F(x,y) – изображение фона; (x,y) G – область определения снимка. Снимок S(x,y) с видеокамеры определён только на дискретном множестве точек D с координатами (xi,yi) G. При этом, k, если (x i , y j ) D k , 0, иначе L k (x i , y j ) = где Dk – дискретная область k-го лица; F(xi,yj) = 0, если (xi,yj) DF D D1 D2 ... Dn DF ; D – дискретная прямоугольная решётка, в узлах которой определён снимок S(x,y). Узлы решётки определяются координатами (x i,yj) или их номерами (i,j), в которых задаётся цвет снимка в данной точке, что в совокупности определяет пиксель снимка. Таким образом, исходный снимок S(x,y) можно рассматривать как прямоугольную целочисленную решётку P, узлы которой являются пикселями: P = {p(i, j) | i = 1, N, j = 1, M} , где i,j – целочисленные координаты (номера) пикселя; p(i, j){0, 1} – цветовой компонент пикселя. Задача заключалась в нахождении множества точек (i,j)Dk, для которых S(xi,yj) = Lk(xi,yi). Описание алгоритма Виолы-Джонса Алгоритм Виолы-Джонса является одним из лучших по соотношению показателей эффективность распознавания/скорость работы [8-11]. Также этот детектор обладает крайне низкой вероятностью ложного обнаружения лица. Алгоритм даже хорошо работает и распознает черты лица под небольшим углом, примерно до 30 градусов. Основные принципы, на которых основан метод, таковы: – используются изображения в интегральном представлении, что позволяет вычислять быстро необходимые объекты; – используются признаки Хаара, с помощью которых происходит поиск нужного объекта (в данном контексте, лица и его черт); – используется бустинг (от англ. boost – улучшение, усиление) для выбора наиболее подходящих признаков для искомого объекта на данной части изображения; – все признаки поступают на вход классификатора, который даёт результат «верно» либо «ложь»; – используются каскады признаков для быстрого отбрасывания окон, где не найдено лицо. В общем виде данный метод ищет лица и черты лица по общему принципу сканирующего окна: сканируется изображение окном поиска (так называемое, окно сканирования), а затем применяется классификатор к каждому положению. Для того, чтобы производить какие-либо действия с данными, используется интегральное представление изображений в методе Виолы-Джонса. Интегральное представление позволяет быстро рассчитывать суммарную яркость произвольного прямоугольника на данном изображении, причем какой бы прямоугольник не был, время расчёта неизменно. Интегральное представление изображения – это матрица, совпадающая по размерам с исходным изображением. В каждом её элементе хранится сумма интенсивностей всех пикселей, находящихся левее и выше данного элемента. Для определения точечного значения перепада яркости по горизонтальной и вертикальной оси используются признаки Хоара [9]. Признак - это отображение f: X => Df, где Df — множество допустимых значений признака. Если заданы признаки f1,…, fn, то вектор признаков x = (f1(x),…,fn(x)) называется признаковым описанием объекта x ∈ X. В стандартном методе Виолы-Джонса используются прямоугольные признаки. Вычисляемым значением такого признака будет F = X-Y, где X – сумма значений яркостей точек закрываемых светлой частью признака, а Y – сумма значений яркостей точек закрываемых тёмной частью признака. Для их вычисления используется интегральное изображение. 67 Анализ исходного изображения выполняется по алгоритму сканирующего окна. Задаётся размер окна сканирования (например, 24*24 ячейки) и набор используемых признаков. Окно сканирования последовательно двигается по изображению с шагом в 1 ячейку окна. При сканировании изображения в каждом окне вычисляется приблизительно тысячи вариантов расположения признаков за счет изменения масштаба признаков и их положения в окне сканирования. Сканирование производится последовательно для различных масштабов, при этом масштабируется не само изображение, а сканирующее окно (изменяется размер ячейки). Все найденные признаки попадают к классификатору, который «выносит вердикт». Классификатор должен реагировать только на определенное, нужное подмножество всех признаков. Для этого классификатор обучается нахождению лиц по данному определенному подмножеству. Машинное обучение в методе Виолы-Джонса решает задачу классификация. Имеется множество объектов (изображений), разделённых некоторым образом на классы. Задано конечное множество изображений, для которых известно, к какому классу они относятся (к примеру, это может быть класс «фронтальное положение носа»). Это множество называется обучающей выборкой. Классовая принадлежность остальных объектов не известна. Используется алгоритм, способный классифицировать произвольный объект из исходного множества. В машинном обучении задача классификации относится к разделу обучения с учителем когда классы поделены. Распознавание образов по сути своей и есть классификация изображений и сигналов. В случае алгоритма Виолы-Джонса для идентификации и распознавания лица классификация является двухклассовой. Сложная процедура классификации основывается на алгоритме бустинга (от англ. boosting – повышение, усиление, улучшение) - это процедура последовательного построения композиции алгоритмов машинного обучения, когда каждый следующий алгоритм стремится компенсировать недостатки композиции всех предыдущих алгоритмов. Идея бустинга была предложена Робертом Шапиром в конце 90-х годов [9,10], когда надо было найти решение вопроса о том, чтобы имея множество плохих (незначительно отличающихся от случайных) алгоритмов обучения, получить один хороший. В основе такой идеи лежит построение цепочки (ансамбля) классификаторов [8,9,11], который называется каскадом, каждый из которых (кроме первого) обучается на ошибках предыдущего. Таким образом, имеет место последовательная обработка примеров каскадом классификаторов, причем так, что задача для каждого последующего становится труднее. Результат определяется путем простого голосования: пример относится к тому классу, который выдан большинством моделей каскада. Математически бустинг объясняется так. Наряду с множествами X и Y вводится вспомогательное множество R, называемое пространством оценок. Рассматриваются алгоритмы, имеющие вид суперпозиции a(x) = C(b(x)), где функция b: X → R называется алгоритмическим оператором, функция C: R → Y –решающим правилом. Многие алгоритмы классификации имеют именно такую структуру: сначала вычисляются оценки принадлежности объекта к классам, затем решающее правило переводит эти оценки в номер класса. Значение оценки, как правило, характеризует степень уверенности классификации. Программная реализация алгоритма Виолы-Джонса На этапе объектно-ориентированного анализа и проектирования использован унифицированный язык моделирования UML для описания моделей программной системы [12]. Для программной реализации данной системы выбран язык программирования Python из-за его связи с библиотекой OpenCV. Помимо этого, в нём есть большое количество хороших библиотек для работы с изображениями. Более того, это очень высокоуровневый язык, позволяющий абстрагироваться от работы с драйверами при использовании камеры. Пользовательский интерфейс системы реализован через набор входных параметров скрипта. Система была протестирована на фотографиях, получаемых из видеопотока вэбкамеры и взятых из Интернета. На рисунке 1 приведен результат выделения лица человека на фотографии с одним лицом. Кроме того, тестирование системы проводилось при предъявлении групповых фото. На рисунке 2 показан результат тестирования алгоритма Виолы-Джонса при выделении лиц на групповых фотографиях. Для тестирования были взяты несколько случайных фотографий, найденных в Интернете. Лица людей на фотографии содержали различные искажения: поворот головы в различных плоскостях, не фронтальная съёмка, низкая контрастность или чёткость. Некоторые групповые фотографии были выбраны не случайно, так как большое количество людей в кадре автоматически уменьшает возможный размер каждого лица и его детализацию. Кроме того, на групповых фотографиях можно одновременно зафиксировать различные углы поворота головы, а также перекрытие лиц. Некоторые фотографии имели низкое разрешение, но несмотря на это все лица были определены на фотографии верно. 68 Рисунок 1 – Фотография с вэбкамеры Рисунок 2 -- Групповая фотография с искажённым ракурсом Заключение Анализ работы алгоритма Виолы-Джонса показал, что он практически не зависит от яркости сцены. Точность детектирования лица намного превышает точность детектора лица по цвету кожи. Недостатком алгоритма является его сложность, что вызывает трудности при программировании системы. Также он требует много вычислительных ресурсов, что может быть критичным в некоторых случаях. Несмотря на это, алгоритм хорошо себя зарекомендовал в ходе экспериментов, поэтому он будет использован в системе распознавания лиц человека. 69 Литература 1. Выделение и распознавание лиц [Электронный ресурс]. – Режим доступа: http://wiki.technicalvision.ru/index.php/Выделение_и_распознавание_лиц 2. Распознавание человека по изображению лица нейросетевыми методами. [Электронный ресурс]. http://uiip.basnet.by/structure/l_ori/starovoitov/Starovoitov_Publication_section/11_Starovoitov02prep.pdf 3. Брилюк Д.В., Старовойтов В.В. Распознавание человека по изображению лица нейросетевыми методами. – Минск, 2002. 4. Татаренков Д. А. Анализ методов обнаружения лиц на изображении // Молодой ученый. - №4, 2015. - С. 270-276. 5. Алфимцев А.Н., Лычков И.И. Метод обнаружения объекта в видеопотоке в реальном времени // Вестник ТГТУ, Т. 17, № 1, 2011. 6. Козлов В.А., Потапов А.С. Анализ методов выделения движущихся объектов на видеопоследовательностях с шумами // Научно-технич. вестник СПГУ ИТ, №3 (73), 2011. 7. Байгарова Н.С., Бухштаб Ю.А. Некоторые принципы организации поиска видеоданных // Программирование, №3, 1999. 8. Модификация алгоритма Виолы-Джонса [Электронный ресурс]. – Режим доступа: http://tarapovconf.univer.kharkov.ua/reports/54.pdf 9. Метод Виолы-Джонса (Viola-Jones) как основа для распознавания лиц [Электронный ресурс]. – Режим доступа: https://habrahabr.ru/post/133826/ 10. Метод распознавания лиц Виолы-Джонса (Viola-Jones) [Электронный ресурс]. – Режим доступа: http://oxozle.com/2015/04/11/metod-raspoznavaniya-lic-violy-dzhonsa-viola-jones 11. Модификация алгоритма Виолы-Джонса на основе адаптивно скользящего окна [Электронный ресурс]. – Режим доступа http://www.sworld.com.ua/index.php/uk/technical-sciences-116/informatics-computerscience-and-automation-116/27293-116-160 12. Скотт К. UML. Основные концепции. - М.: Издательский дом “Вильямс», 2002. - 144 с. Подлесный А.И., Медведев А.С., Федяев О.И. Система выделения лиц в видео потоке с применением алгоритма Виолы-Джонса. В работе рассматривается разработка программной системы выделения лиц на изображении. Она позволит распознавать людей по их лицам. Задача локализации лица сформулирована как задача выделения на снимке подмножества дискретных точек (пикселей), образующих лицо человека. Для решения этой задачи использован метод ВиолыДжонса. Он позволил надежно обнаруживать лица независимо от яркости сцены и цвета лица. Недостатком метода Виолы-Джонса является его алгоритмическая сложность при программировании и обучении. Ключевые слова: видеоизображение, лицо человека, выделение лица, метод Виолы-Джонса Podlesniy A.I., Medvedev A.S., Fedyaev O.I. The system of selection faces in the video stream using the Viola-Jones algorithm. The paper deals with the development of a software system selecting persons in the image. It allows you to recognize people by their faces. Task face localization is formulated as a problem of allocation of the picture subset of discrete points (pixels), forming the man's face. Viola-Jones method is used to solve this problem. It allows the reliable detection of persons, regardless of the brightness of the scene and the complexion. The disadvantage of the method of Viola-Jones is its algorithmic complexity in programming and training. Keywords: video, a person's face, the face selection, Viola-Jones method 70 УДК 004.9 Информационная система «Торгово-политическая карта мира» М.Г.Титаренко, И.А. Коломойцева Донецкий национальный технический университет [email protected] Титаренко М.Г., Коломойцева И.А. Информационная система «Торгово-политическая карта мира». В данной статье проанализированы существующие подходы к извлечению информации с веб-страниц, эффективность парсеров сайтов. Описан подход к извлечению данных по шаблону, а также алгоритм определения достоверности экономической информации. Ключевые слова: парсер, шаблон, анализ достоверности, Python. Введение Каждый день в современном мире мы получаем огромное количество информации о торговоэкономических связях между государствами, торговых «войнах», экономической зависимости одной страны от другой, эмбарго и прочем. Однако вся эта информация разрозненная и поэтому ее анализ для обывателя становится очень сложной задачей. Ситуация усугубляется отсутствием каких-либо русскоязычных ресурсов, содержащих необходимые данные, а получить официальную информацию от государственных статистических организаций еще более затруднительно. В связи с этим возникает потребность в создании информационного ресурса, который собирает данные с указанных ресурсов, анализирует их и в конечном итоге представляет в виде торгово-экономических взаимосвязей между странами. Для реализации данного проекта следует использовать нестрогий парсер сайтов, который будет получать информацию с заданных ресурсов. Количество ресурсов не должно ограничиваться. Поэтому необходим производительный парсер, использующий наименьший объем памяти. Для каждого ресурса следует создать шаблон, по которому будут извлекаться данные со страницы. Данные должны подвергаться проверке, при которой они будут сравниваться с уже имеющимися в базе. В случае большого расхождения информация не должна учитываться. Целью данной статьи является анализ существующих вариантов нестрогих парсеров, определение оптимального для разрабатываемой системы. Описание метода извлечения данных по заданному шаблону. Описание алгоритма определения достоверности экономической информации. Анализ существующих подходов к извлечению информации В разрабатываемой информационной системе будет возможно использовать два подхода для получения необходимой информации: использование открытого API ресурса, либо, в случае его отсутствия, парсинг по шаблону. Перед отбором информации по шаблону необходимо сделать парсинг страницы сайта. Существует огромное количество разнообразных библиотек под разные языки программирования для парсинга сайтов. Все они отличаются строгостью, производительностью, а также количеством используемой памяти. Сама система будет реализована на Python с использованием фреймворка Django [9]. В связи с этим, после рассмотрения возможных вариантов я остановился на следующих библиотеках: - CPython — lxml.etree.HTML; - CPython — BeautifulSoup 3; - CPython — BeautifulSoup 4; - CPython — html5lib; - C — libxml2. Для выбора одной из них было проведено исследование [1]. Нестрогий HTML парсер — парсер HTML, который умеет обрабатывать некорректный HTML код. Цели, преследуемые исследованием: - сравнить производительность и потребление памяти различных нестрогих HTML DOM парсеров; - изучить стабильность работы парсера. Возрастет ли время обработки одной страницы и объём потребляемой памяти с ростом числа итераций; оценить эффективность платформы: скорость работы со строками, эффективность менеджмента памяти. 71 Для исследования зависимости скорости работы парсера от числа итераций, была построена гистограмма зависимости времени на обработку одной страницы от числа итераций (см. рис. 1). Время на обработку одной страницы есть время работы парсера, разделенное на число итераций. В идеальном варианте скорость работы парсера не должна зависеть от числа итераций, а лучше — должна возрастать. Столбики одинаковой высоты — хорошо, разной — плохо. Для большинства парсеров зависимости нет (все столбики одинаковой высоты). Исключение составляет BeautifulSoup 4; у него с ростом числа итераций производительность снижается. То есть если этот парсер должен работать продолжительное время, то производительность будет постепенно снижаться. Рисунок 1 – Скорость работы На рисунке 2 отражена средняя скорость обработки одной страницы На данной диаграмме чем выше находится бокс — тем медленнее работает парсер. Чем больше бокс по площади, тем больше разброс значений (т.е. выше зависимость производительности от числа итераций). Видно, что парсер на C лидирует, за ним следуют lxml.etree, потом bsoup4, bsoup3 и html5lib. Рисунок 2 – Средняя скорость обработки одной страницы 72 На рисунке 3 демонстрируется как потребление памяти зависит от числа итераций. В идеале все столбики одного парсера должны быть одинаковой высоты. Если потребление растет с увеличением числа итераций, то это указывает на утечки памяти или проблемы со сборщиком мусора. На рисунке видно, что для парсера на C все столбики практически идентичной высоты. То же самое для lxml.etree. Рисунок 3 – Потребление памяти от числа итераций Усредненное потребление памяти для парсеров представлено на рисунке 4. Из него видно, что расстановка примерно такая же, как в сравнении скорости. lxml.etree требует памяти примерно в 2 раза больше, чем C libxml2, но меньше чем любой другой парсер. Рисунок 4 – Усредненное потребление памяти 73 Overhead на запуск программы Overhead платформы — это время, которое программа тратит не на непосредственно работу, а на подготовку к ней (инициализация библиотек, считывание HTML файла и т.п.). На рисунке 5 отображён overhead парсеров. Рисунок 5 – overhead парсеров Подведем итог исследования. Реализация на C является лучшей. Биндинг libxml2 к питону (lxml.etree.HTML) работает практически с такой же скоростью, но потребляет в 2 раза больше памяти (скорее всего overhead собственно интерпретатора). На Python же выходит более предпочтительным lxml [4]. Все остальные библиотеки уступают по скорости или по памяти. В связи с выбором платформы для разработки Python Django было решено использовать lxml.etree.HTML для разработки системы. Описание извлечения данных по заданному шаблону Для структурирования полученной парсером информации всегда используются шаблоны. В шаблоне описывается основная структура страницы для парсинга. Довольно часто используются конструкции регулярных выражений. Пример щаблона для страницы ресурса TradeMap представлен ниже [2] <table*id=’ ctl00_PageContent_MyGridView1’*><tr*><tr*><tr*> <tr*>*<td*>VAL1</td><td*>VAL2</td><td*>VAL3</td>* Рисунок 6 – Пример шаблона Для извлечения информации по заданному шаблону используется обычный проход по дереву, которое было сформировано в результате работы парсера. 74 Описание алгоритма определения достоверности экономической информации полученной с интернет-ресурсов Начнем с хранения полученных данных. База данных будет состоять из двух частей. Первая часть хранит все данные, полученные с ресурсов в исходном виде, чтобы не допустить потерю информации. Кроме того, данные полученные с этого же ресурса в другой период времени также сохраняются. Вторая часть представляет собой информацию, которая получена в результате экономического анализа. Этот экземпляр будет использоваться лишь в двух случаях: при получении пользователем запрашиваемых данных, а также при занесении результата анализа. Добавление данных осуществляется в два этапа. Этап первый – анализ достоверности [3]. Данный этап использует исключительно первую часть базы. Для осуществления данного этапа администратором системы задаются ресурсы для забора данных, а также «доверие» самого администратора к этим ресурсам. Данный параметр будет влиять на оценивание достоверности данных с разных ресурсов. Далее администратор задает процент допустимого отклонения, которым можно пренебречь при сравнении данных. Например, при задании допустимого процента на уровне 1% торговый оборот в 10000$ и 9900$ будут считаться одинаково достоверными. После сравнения существующих данных ресурсам помимо пользовательского «доверия» добавляется программное «доверие». Если данные из ресурса равны (или приблизительно равны с пользовательской точностью) с достоверной, то ресурс по текущему показателю считается «программно доверенным». Исходя из вышеперечисленного администраторское доверие является более приоритетным. Однако существуют и некоторые ситуации, при которых администраторское доверие может быть оспорено. Так, если более 90% ресурсов не являются программно доверенными, то делается предположении о ложном доверии администратора и ему приходит оповещение о конфликтной ситуации. Этап второй – экономический анализ с помощью нейронных сетей. Выводы При написании этой статьи были проведен анализ существующих парсеров, в результате которого был выбран оптимальный для реализации системы. Описана возможная структура шаблона, а также способ извлечения информации по этому шаблону. Описан алгоритм определения достоверности экономической информации. Литература 1. Хабрахабр - Бенчмарк HTML парсеров [Электронный ресурс]. - Режим доступа: https://habrahabr.ru/post/163979/ – (25.10.2016) 2. TradeMap [Электронный ресурс]. – Режим доступа: http://www.trademap.org/Bilateral_TS.aspx (24.10.2016) 3. И.Н. Кузнецов Информация: сбор, защита, анализ. Учебник по информационно-аналитической работе – М. Яуза, 2001. 4. The lxml.etree [Электронный ресурс]. - Режим доступа: http://lxml.de/ - (25.10.2016). 5. Python – BeautifulSoup3 [Электронный ресурс]. Режим доступа: https://pypi.python.org/pypi/BeautifulSoup - (21.10.2016) 6. Python – BeautifulSoup4 [Электронный ресурс]. Режим доступа: https://pypi.python.org/pypi/beautifulsoup4 - (21.10.2016) 7. Python – html5lib [Электронный ресурс]. - Режим доступа: https://pypi.python.org/pypi/html5lib (21.10.2016) 8. XMLSoft - The XML C parser and toolkit of Gnome [Электронный ресурс]. - Режим доступа: http://xmlsoft.org/ - (21.10.2016) 9. Django [Электронный ресурс]. - Режим доступа: https://www.djangoproject.com/ - (23.10.2016) 10. Python [Электронный ресурс]. - Режим доступа: https://www.python.org/ - (23.10.2016) Titarenko M.G., Kolmoitseva I.A. "Trade political map of the world" information system. This article analyzes the existing approaches to extracting information from web pages, and the efficiency of sites parsers. The approach to extracting data from template, and an algorithm for determining the economic information reliability. Keywords: parser, template, reliability analysis, Python. 75 УДК 004.93'12 Исследование процессов самообучения неокогнитрона при распознавании графических образов Т.И. Труханов, М.Е. Алехов, О.И. Федяев Донецкий национальный технический университет [email protected], [email protected] Труханов Т.И., Алехов М.Е., Федяев О.И. Исследование процессов самообучения неокогнитрона при распознавании графических образов. В статье изучаются принципы настройки многослойной нейронной сети типа неокогнитрон на распознавание различных графических образов. Для этого разработана программная модель архитектуры неокогнитрона с алгоритмом обучения нейронной сети на основе её самоорганизации. Неокогнитрон, настроенный по алгоритму конкурентного обучения, приобретает способность правильно распознавать образы при различных искажениях в их форме. Ключевые слова: нейронная сеть, неокогнитрон, нейрон, распознавание, самоорганизация. Введение В 1980 году японским учёным К.Фукушимой (K.Fukushima) [1] предложена серия новых нейросетевых архитектур типа «когнитрон» (cognitron) с алгоритмом их обучения по стратегии «обучение без учителя». Благодаря специфичной архитектуре и новому принципу самоорганизации мультислоистого неокогнитрона он приобретает способность правильно распознавать образы в условиях различного вида помех. Цель данной работы заключается в разработке программного эмулятора неокогнитрона с возможностью его обучения на распознавание определенного класса образов. Такой эмулятор позволит путём моделирования более детально изучить принципы самоорганизации многосвязной мультислоистой структуры неокогнитрона и подбирать значения параметров прикладной модели нейросети для качественного распознавания изображений заданного класса. На теоретико-множественном уровне параметрическую модель многослойного неокогнитрона NC (NeoCognitron) можно представить виде кортежа (1). NC X , L,{ K l ,{al ,,sm, p,(i , j ) }, l ,c ,{b l ,s }, l ,s ,{dl ,,cn, p,(i , j ) }, l ,c ,{c l ,c }, l ,s , Y , (1) l где L – количество модулей в неокогнитроне; l – номер модуля, 1≤ l ≤L; K – количество плоскостей в одном слое (S или C) l-го модуля; Х, Y – соответственно входы (выходы) неокогнитрона для приёма (снятия) входных (выходных) сигналов; al ,,sm, p (i , j ) - весовой коэффициент связи m-го входа (ij) нейрона р-й плоскости S-го слоя модуля l с выходом ν-го нейрона ( C lp1,1 p K l 1 , – координаты нейрона в области связи); C lp1 - область связи на p-й плоскости С слоя (l-1)-го модуля; dl ,,cn, p , (i , j ) - весовой коэффициент связи n-го входа (ij) нейрона р-й плоскости слоя С модуля l с выходом ν-го нейрона из его рецептивной области ( S p ,1 l p K l ); S lp – область связи для (ij) нейрона, расположенная на р-й плоскости S-го слоя модуля l. В слоях S и C каждого модуля неокогнитрона имеются тормозящие нейроны, которые в кортеже описываются параметрами bl,s , cl , c . Это постоянные коэффициенты тормозящего входа для всех нейронов соответственно слоёв S и С модуля l. Функции активации базовых нейронов обозначены как cl ,c и l ,c , а функции активации тормозящих нейронов - и . Параметрическая модель и многослойная структура неокогнитрона с последовательными связями позволяет в явном виде получить функциональную зависимость выходных сигналов Y нейросети от её входных сигналов Х (2). l,s l,s 76 Y f ( X , NC (a, b)). (2) Задача состоит в разработке такой имитационной (программной) модели неокогнитрона и алгоритма его обучения, которые в совокупности минимизируют функционал Ф(a,b) и тем самым настраивают (обучают) его распознавать множество требуемых образов Y (3). (a, b) Y Y min (3) a ,b , X Y где a, b – настраиваемые весовые коэффициенты неокогнитрона; Y , Y – реальные и желаемые выходные сигналы неокогнитрона; . – выбранная норма вектора. Структура неокогнитрона Неокогнитрон является иерархической нейронной сетью, состоящей из достаточно большого числа идущих друг за другом слоёв и имеющих неполные (можно сказать достаточно редкие) связи между слоями. На рисунке 1 представлена упрощенная структура неокогнитрона. Рисунок 1 – Структура многослойной нейросети типа неокогнитрон На рисунке изображены три модуля нейросети, в каждом из которых имеются два типа слоёв: «простые» (S-слои, от слова simple) и «комплексные» (C-слои, от слова complex), которые состоят соответственно из «простых матриц» (распознают характерные признаки во входных образах) и «комплексных матриц» (обобщают распознанную информацию). С целью простоты рисунка на нём не показаны плоскости с тормозящими нейронами. Из приведенной структуры видно, что размер первого слоя совпадает с размером входного образа (U0) и к последнему слою размеры плоскостей уменьшаются. В последнем слое в каждой плоскости находится только по одному нейрону. Математическая модель неокогнитрона Для вычисления выходных сигналов usl нейронов S-плоскости использовалась формула 4 [1]. K 1+ l 1 al kl 1 ,υ,kl uCl 1 kl 1 , n + υ υ k l 1=1 S l uSl kl , n = rl 1 rl 1+ bl kl vCl 1 n 1 + r l В этой формуле учитываются выходные сигналы тормозящей плоскости по формуле (5). 77 (4) vCl 1 , которые вычисляются vCl 1 n = K l 1 c υu k =1υS l l 1 2 Cl 1 l 1 ,n + υ (5) k l 1 где L – количество модулей в неокогнитроне; l – номер модуля, 1≤ l ≤ L; a, b – настраиваемые весовые коэффициенты неокогнитрона; φ- функция активации S-нейронов; rl – параметр управления интенсивностью запрещения; n – позиция нейрона в плоскости kl ; cl-1 – фиксированные весовые коэффициенты С-нейронов в модуле l-1; Sl – область связи для S-нейрона, расположенного в позиции n модуля l; υ – позиции нейронов в области связи Sl ; uCl-1 – выходные сигналы C-нейронов модуля l-1. Алгоритм обучения неокогнитрона Для обучения неокогнитрона применялась стратегия «обучение без учителя» [2, 3]. При этом настраиваются только весовые коэффициенты S-плоскостей. Веса нейронов C-плоскостей задаются перед обучением и не изменяются [1]. В целом процесс обучения проводится последовательно, начиная с обучения Sплоскостей 1-го модуля и заканчивая обучением последнего S-слоя. Способ самоорганизации неокогнитрона, предложенный К.Фукушимой [1], достаточно сложный для исследования аналитическими методами. Поэтому в работе особое внимание уделено программной реализации алгоритма самоорганизации с целью его всестороннего анализа методами имитационного моделирования. В алгоритме самоорганизации можно условно выделить четыре этапа [4,5]: подача входного образа и вычисление выходных сигналов обучаемого S-слоя; выбор кандидатов в представители по S-цилиндрам фиксированной ширины; выбор представителей из кандидатов; обучение нейронов тех плоскостей, в которых были отобраны представители. Анализ алгоритма самоорганизации Программная модель неокогнитрона написана на языке программирования Python. Язык Python широко используется в научно-исследовательских проектах. Это объясняется в первую очередь простотой языка, а также наличием хорошо протестированных библиотек, которые позволяют быстро и эффективно решать прикладные задачи. В работе использовались следующие библиотеки: NumPy (для эффективных вычислений), Matplotlib (для визуализации информации), PIL (для работы с изображениями). Разработанная программная модель подробно визуализировала состояния сети и полученные результаты. В частности на экран выводились результаты обучения сети на распознавание конкретного изображения, в частности, текущие значения выходных сигналов и весовых коэффициентов всех нейронов сети. Настраиваемыми коэффициентами выступали коэффициенты от нейронов комплексного слоя к нейронам простого слоя и коэффициент от тормозящего нейрона к нейрону простого слоя. Коэффициенты от комплексных нейронов к тормозящему нейрону и от простых нейронов к комплексным являются фиксированными. Таким образом, можно увидеть, какие признаки выделяются S-плоскостями на том или ином этапе распознавания. Для детального изучения внутренней самоорганизации неокогнитрона в данной работе были исследованы модели неокогнитрона, настроенные на распознавание простейших печатных символов Т, С, Н, Г, П. Во всех описанных ниже экспериментах использовался неокогнитрон, состоящий из трех модулей. Он обучался на символы Т, С, Н, Г и П, расположенные по центру и не имеющие искажений. Рассмотрим детально несколько примеров распознавания буквы «Н». На рисунке 2 показаны изменяемые коэффициенты для тех плоскостей, которые отреагировали на образ буквы «Н». Как видно из рисунка, на первом модуле нейросеть выделила из образа простейшие характерные признаки. На втором модуле показаны выходные сигналы S-слоя и характерные признаки первого S-слоя, объединенные в группы. Второй и последующие слои получают входные сигналы со всех плоскостей предыдущего модуля, за счёт чего они формируют комплексные характерные признаки, состоящие из более простых признаков, выделенных на первом модуле. На третьем модуле нейроны также получают входные сигналы со всех плоскостей предыдущего модуля, поэтому формируют более сложные характерные признаки из комплексных признаков второго модуля. В данном случае на третьем модуле нейросеть уже полностью распознаёт образ. За счёт наличия C-слоя неокогнитрон способен различать образы даже со смещениями и искажениями [5,6]. 78 Рисунок 2 – Иллюстрация процесса распознавания символа «Н» Выходные сигналы нейронов тех плоскостей, которые отреагировали на символ «Н», во всех слоях неокогнитрона можно посмотреть на рисунке 3. По номерам плоскостей можно определить, на какой признак они среагировали (см. рис. 2). Рисунок 3 – Состояние нейронов в плоскостях, которые отреагировали на подачу символа «Н» на вход неокогнитрона: ■ - активный нейрон; □ - пассивный нейрон 79 Из этого иллюстративного примера хорошо видно, что в процессе самоорганизации неокогнитрон выделил на первом слое характерные признаки во входных образах. Эти признаки зафиксированы в значениях весовых коэффициентах нейронов соответствующих плоскостей, которые при распознавании будут выступать в роли «экспертов» по обнаружению своих признаков во всех позициях входного изображения и на их основе правильно его классифицировать независимо от его позиции и формы. Выводы В работе выполнен частичный анализ принципа настройки многослойной нейронной сети типа неокогнитрон на распознавание различных образов. Для этого была разработана программная модель неокогнитрона с алгоритмом обучения нейронов на основе их самоорганизации. Был проведен ряд экспериментов на простейших буквенных образах. В результате этих экспериментов было улучшено понимания процессов, происходящих внутри нейросети. Кроме того были получены важные данные по влиянию различных параметров нейросети на её поведение во время обучения и распознавания. Неокогнитрон, который настроен по алгоритму конкурентного обучения, приобретает способность правильно распознавать графические образы при различных искажениях в их форме [5,6]. На модели проведен ряд экспериментов по изучению взаимовлияния каналов усиления и торможения нейронов сети, а также изучены особенности неконтролируемого обучения S-нейронов. По результатам этих экспериментов можно сделать вывод о том, что полученная модель неокогнитрона позволяет исследовать сложные алгоритмы неконтролируемого обучения и распознавания. Литература 1. Kunihiko Fukushima, Sei Miyake Neocognitron: a new algorithm for pattern recognition tolerant of deformations and shifts in position — Great Britain: Pattern Recognition Vol 15, No 6, 1982. – pp 455-469. 2. Уоссермен Ф. Нейрокомпьютерная техника. Теория и практика. – М.: Мир, 1992. 3. Руденко О.Г., Бодянский Е.В. Основы теории искусственных нейронных сетей. Уч. пособие. – Харьков: ТЕЛЕТЕХ , 2002. – 317 с. 4. Федяев О.И. Алёхов М. Е. Состояние проблемы компьютерного распознавания лиц человека // Материалы международной научно технической конференции студентов, аспирантов и молодых учёных. – Донецк, ДонНТУ – 2015. 5. Труханов Т.И., Федяев О.И. Модель многослойной нейросети с архитектурой неокогнитрона // Інформаційні управляючі системи та комп’ютерний моніторинг / Матерiали IV мiжнародної науково-технiчної конференцiї – Донецьк, ДонНТУ – 2013, Том 1, с. 456-462. 6. Федяев О.И., Махно Ю.С. Распознавание графических образов при наличии искажений с помощью неокогнитронных нейросетей // Тр. 8-й междунар. науч. конф. «Интеллектуальный анализ информации ИАИ2008». – К.: Просвіта, 2008. - С. 512-521. Труханов Т.И., Алехов М.Е., Федяев О.И. Исследование процессов самообучения неокогнитрона при распознавании графических образов. В статье изучаются принципы настройки многослойной нейронной сети типа неокогнитрон на распознавание различных графических образов. Для этого разработана программная модель архитектуры неокогнитрона с алгоритмом обучения нейронной сети на основе её самоорганизации. Неокогнитрон, настроенный по алгоритму конкурентного обучения, приобретает способность правильно распознавать образы при различных искажениях в их форме. Ключевые слова: нейронная сеть, неокогнитрон, нейрон, распознавание, самоорганизация. Truhanov T., Alekhov M., Fedyaev O. Research of self-education processes of neocognitron for recognition of graphics images. In this paper we study the principles of tuning a multilayer neural network type neocognitron to recognize different images. It was developed software architecture model of neocognitron and learning algorithm of the neural network on the basis of its self-organization. Neocognitron configured by the algorithm of competitive training, acquires the ability to properly recognize patterns in various distortions in their form. Keywords: neural network, neocognitron, neuron, recognition, self-organization. 80 УДК 004.6 Компьютерная лингвистика: морфологический словарь И.Д. Фоминых, Л.В. Рудак, Л.В. Незамова Донецкий национальный технический университет [email protected] И.Д. Фоминых, Л.В. Рудак, Л.В. Незамова. Компьютерная лингвистика: морфологический словарь. Была создана программа для формирования русскоязычного морфологического словаря в форме базы данных, описаны методы, применённые во время разработки, применена комбинация C# и Python, произведён анализ скорости загрузки в базу данных большого объёма информации разными методами. Ключевые слова: морфология, словарь, часть речи, сбор данные, кодировка Введение Цель работы – создать программу, которая позволит сформировать русскоязычный морфологический словарь в форме базы данных. Она будет применима в следующих предметных областях: образование, лингвистика, искусственный интеллект и некоторых других областях. Перед началом работы мы проанализировали все доступные ресурсы[1][2], соответствующие поставленной задаче. Найденные программы были разделены на две категории (по функциональности): разбор по одиночно введённых слов; готовые базы данных. Недостатками ресурсов первого типа являются отсутствие возможности собрать базу и ограниченность во вводе. Недостатками ресурсов второго типа являются отсутствие возможности программно расширить базу данных, сложная структура базы данных, отсутствие возможности бесплатного пользования. Морфологический разбор слова – это полная грамматическая характеристика данной словоформы. При морфологическом анализе важно уметь определять, к какой части речи относится слово, какими постоянными и изменяемыми признаками оно обладает, в какой форме оно употреблено, а также какова его роль в предложении. В программе для реализации морфологического разбора используется свободная библиотека с открытым исходным кодом pymorphy2 (написанная на языке Python). Для нее определены такие граммемы: часть речи: имя существительное, имя прилагательное (полное), имя прилагательное (краткое), компаратив, глагол (личная форма), глагол (инфинитив), причастие (полное), причастие (краткое), деепричастие, числительное, наречие, местоимение-существительное, предикатив, предлог, союз, частица, междометие; одушевлённость: одушевлённое, неодушевлённое; вид: совершенный, несовершенный; род: мужской, женский, средний; число: единственное, множественное падеж: именительный, родительный, дательный, винительный, творительный, предложный, звательный, первый родительный, второй родительный (частичный), второй винительный, первый предложный, второй предложный (местный); включенность говорящего в действие: включён, не включён; наклонение: повелительное, изъявительное; время: настоящее, прошедшее, будущее; лицо: первое, второе, третье; залог: действительный, страдательный; переходность: переходный, непереходный. [3] Вариации ввода данных Пользователю предоставляется возможность вводить данные как с клавиатуры, так и из файла. Рассмотрим первый случай. Интерфейсом предусмотрено поле для одиночного добавления слова. Пример 81 разбора слова «что», относящегося к разным частям речи приведен на рисунке 1, оно подпадает под 4 части речи, схематически обозначенные на рисунке. Рисунок 1 – Морфологический анализ слова «что» Пример разбора слова «программист», принадлежащего к одной части речи, но с большим числом морфологических характеристик изображён на рисунке 2. Рисунок 2 – Морфологический анализ слова «программист» Следующий вариант – считывание данных из файла формата *.txt. Подходят любые кодировки, поддерживающие русский язык. Содержимое файла может быть как структурированным словарём, так и произвольно набранным текстом. Кодировки файлов Русский язык поддерживают 2 вида кодировок: utf-8 и win1251. Чтобы облегчить процесс загрузки и не проверять/переформатировать каждый источник вручную, был использован код, который проверяет текст на соответствие utf-8, иначе – считает, что он win1251. В свою очередь, utf8 бывает двух типов (utf-8-BOM и utf-8) отличие заключается в том, что в первом варианте первые 3 байта в файле выделяются для маркера последовательности байтов (англ. Byte Order Mark (BOM))[4]. Можно сказать, идеальный вариант, проверяем 3 байта и знаем кодировку. Иначе же приходится проверять весь текст побайтово на соответствие маске. Символы в UTF-8 кодируются последовательностями длиной от 1 до 4 байт (октетов). Вот в таком формате: U+000000-U+00007F: 0xxxxxxx (ANSI) U+000080-U+0007FF: 110xxxxx 10xxxxxx (сюда входит кириллица) U+000800-U+00FFFF: 1110xxxx 10xxxxxx 10xxxxxx U+010000-U+10FFFF: 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 82 По маске первого октета определяется общее число октет в последовательности, а затем они проверяются на соответствие маске 10xxxxxx. Если какой-то байт не соответствует маске, значит кодировка отличная от UTF-8 (win1251). Адаптация формата текста для базы данных Отделить слова от ненужных символов после считывания из файла помогла технология LINQ[5] из .NET. Проходя по каждому символу из текста, производится проверка на условие, является ли этот символ пробелом или буквой (с помощью Char.isLetter() и Char.IsWhiteSpace()), если нет, то удаляем. После чего по пробелам строка делится на элементы списка. Так же каждое слово приводится к нижнему регистру. Использованная библиотека для морфологического разбора написана на языке Python. Как известно возможности разработки интерфейса для Python не такие широкие, как в WPF, поэтому было решено комбинировать высокоуровневость языка Python и широкие возможности для разработки UI по средствам технологии DLR[6]. Код на Python просто забирается из файла, компилируется и дальше может использоваться из переменных в C#. Минусом является то, что вместе с программой необходимо переносить стандартные библиотеки для Python (всего ~6мб). При загрузке данных возникла проблема с тем, что необходимо загружать примерно 100-200 тыс. записей. Если это сделать с помощью стандартного оператора в SQL - INSERT, то загрузка длилась бы очень долго. Во избежание этого было использовано технологию BULK INSERT. Особенность в том, что данные группируются и отключаются некоторые счетчики и уведомления (например, счетчик количества добавленных записей). Сравнение скорости можно увидеть на рисунке 3. Рисунок 3 – Графики времени загрузки в БД На рисунке 3 представлен график скорости загрузки данных БД в зависимости технологии. По оси X – количество записей, по оси Y – время в секундах. Всего 5 графиков (слева направо). Первый – стандартная загрузка. Второй и третий (слились в один) BULK – загрузка, ручная и автоматическая, в программе была применена автоматическая. 4 и 5 – методы загрузки BLOB полей, они не подходят для нашей структуры. После загрузки в базу слова отображаются в списке в программе в алфавитном порядке. Для удобства работы с ними предусмотрены фильтры и маркеры. С их помощью можно оставить в списке только слова, принадлежащие к выбранным частям речи. Окно фильтров изображено на рисунке 4. 83 Рисунок 4 – Окно фильтров Выводы В данной работе был реализован программный продукт, который полностью реализует поставленную задачу: сбор базы данных. Для выполнения этой задачи были использованы следующие средства разработки: WPF для Visual Studio 2015, бесплатная база данных “SQLite 3”, Python 2.7. Дальнейшими направлениями разработки будут: расширение поддерживаемых языков, общее повышение производительности. Литература 1. Компьютерная грамматика русского языка: лексика, морфология, синтаксис. - 2010. - Режим доступа: http://www.solarix.ru/sql-dictionary-sdk.shtml. - База данных по русской и английской лексике и морфологии. 2. Русская виртуальная библиотека. 2000-2016. Режим доступа: http://rvb.ru/soft/catalogue/catalogue.html. - Каталог лингвистических программ и ресурсов в Сети. 3. Открытый корпус. - 2016. - Режим доступа: http://opencorpora.org/dict.php?act=gram. - Граммемы. 4. Википедия - 2016. - Режим доступа: https://ru.wikipedia.org/wiki/Маркер_последовательности_байтов. Маркер последовательности байтов. 5. Википедия. - 2016. - Режим доступа: https://ru.wikipedia.org/wiki/Language_Integrated_Query. – LINQ. 6. Документация Microsoft. 2016. Режим доступа: https://msdn.microsoft.com/ruru/library/dd233052(v=vs.110).aspx. - Dynamic Language Runtime Overview. И.Д. Фоминых, Л.В. Рудак, Л.В. Незамова. Компьютерная лингвистика: морфологический словарь. Была создана программа для формирования русскоязычного морфологического словаря в форме базы данных, описаны методы, применённые во время разработки, применена комбинация C# и Python, произведён анализ скорости загрузки в базу данных большого объёма информации разными методами. Ключевые слова: морфология, словарь, часть речи, сбор данных ,кодировка. I.D. Fominykh,L.V. Rudak,L.V. Nezamova. Computer linguistic: morphological dictionary. We created a program in order to form Russian morphological dictionary in a form of data base , overviewed methods used during the program development, also was used a combination of C# and Python and we did analysis of speed of a bid data upload to data base using different technologies. Keywords: morphology, dictionary, part of speech, data overview, encoding. 84 УДК 004.657 Методы разработки систем учета научно-технических мероприятий Ходич Д.В., Завадская Т. В., Грищенко В.И. Донецкий национальный технический университет, кафедра программной инженерии [email protected] Ходич Д.В., Завадская Т.В., Грищенко В.И. Методы разработки систем учета научнотехнических мероприятий. В данной статье были проанализированы существующие методы разработки программных систем учета научно-технических мероприятий. В результате анализа был выявлен самый оптимальный метод разработки программной системы. На основе этого метода была разработана система учета научно-технических мероприятий для ДонНТУ с открытым кодом. В системе реализовано генерирование отчетности по данным из БД, которая была спроектирована с учётом специфики ВУЗа. Ключевые слова: научно-технические мероприятия, система учета мероприятий, методы разработки систем учёта, генерация отчётов, база данных, клиент-серверная архитектура. Введение За многие годы было проведено множество различных научно-технических мероприятий (НТМ). Учитывая то, что по каждому из мероприятий нужно оформить большое количество подготовительных документов (на начальном этапе) и множество отчетов после проведения мероприятия, в архивах университетов и различных организаций накопилось большое количество информации в бумажном виде. Актуальность данной работы состоит в том, что система проектируется с учетом современных технологий контроля данных, обладает клиент-серверной архитектурой, что в свою очередь позволяет с лёгкостью работать с БД обычным пользователям ПК, а не программистам. Также благодаря такой архитектуре система доступна на сервере в любой момент времени через глобальную сеть Интернет с удобным и интуитивно понятным пользовательским интерфейсом. Существует два основных метода разработки и реализации систем учёта НТМ – офлайн приложение и приложение с клиент-серверной архитектурой, структура которой представлена на рис. 1. Первый метод подходит для организаций, в которых контроль над данными по мероприятиям и сотрудникам ведёт один человек и структура БД статична. Второй метод подходит, как и для организаций, в которых контроль над данными ведёт один человек, так и для организаций, в которых контроль над данными и сотрудниками ведут несколько человек. Однозначным плюсом такой архитектуры является то, что каждый пользователь, взаимодействующий с системой, обращается к актуальной версии БД по мероприятиям посредством запросов к серверу. Также в системах с такой архитектурой возможно разделение полномочий и возможностей пользователей в системе. Целью данной работы является: 1) Определение оптимального метода разработки системы учета НТМ; 2) Реализация программной системы и оценка ее эффективности. 1. Специфика задачи За многие годы в ДонНТУ накопилось большое количество бумажной отчетности по мероприятиям. Все эти документы время от времени приходится просматривать для подготовки отчетов за определенный период времени или годовых отчетов. Чтобы облегчить работу ответственным за проведение мероприятий было решено создать автоматизированную систему составления приказов и оформления отчетов. В ДонНТУ ежегодно проводятся следующие виды научно-технических мероприятий НТМ: - конференция; - семинар; - форум; - симпозиум; 85 - олимпиада; - презентация. Рисунок 1 – Архитектура программной системы Система учета мероприятий ДонНТУ является информационной системой, которая в свою очередь направлена на: - уменьшение рутинной работы; - сокращение времени на оформление отчетов и приказов; - уменьшение числа возможных ошибок; - резкое сокращение времени для обработки данных и получении нужной отчетности. Для решения поставленной цели необходимо осуществить: - автоматизацию ввода, контроля и загрузки данных в базу НИЧ ДонНТУ; - автоматизацию регистрации на сайте конференций; - формирование отчетности по заданным конференциям; 2. Анализ функциональных возможностей программных систем учета НТМ и методов построения существующих 2.1 Программная система "Учет мероприятий и семинаров" Рассмотрим структуру системы: "Учет мероприятий и семинаров" - предназначена для комплексной автоматизации компаний, занимающихся организацией деловых мероприятий. Программа позволяет вести базы данных клиентов. Данная программа легко и быстро настраивается под конкретные требования заказчика. Основные функции: - учет клиентов-организаций, которые участвуют в мероприятиях; - ведение базы контактов клиентов, сотрудников организаций; - учет прошедших и будущих мероприятий; - ведение календарного плана (расписание) мероприятий; - ведение базы участников мероприятий (авторов и лекторов); ведение базы тем выступлений лекторов; - учет договоров, заключенных с клиентами; - учет сотрудников, их логинов и паролей для доступа в программу; - минимизация ошибок ввода, уменьшение времени на обработку заявки; - возможность импорта и экспорта данных [1]. 86 2.2 Программная система "Программа контроля и управления мероприятиями" Рассмотрим структуру системы: “Программа контроля и управления мероприятиями” включает журнал мероприятий по контролю каждого мероприятия, праздника и события. Контроль реализации мероприятий включает учет дохода от праздника или события. Поднять престиж и осуществить все самые недостижимые цели вы сможете, используя учет управленческий. Автоматизированное управление технологическими процессами позволяет контролировать все рабочие моменты [2]. Существующие аналоги программных систем учета мероприятий не подходят для ДонНТУ, исходя из того, что они не учитывают специфику ВУЗа. Цели, которые ставят перед собой аналогичные системы, не соответствуют целям нашего университета. Также база данных для учета мероприятий ДонНТУ должна иметь значительно больший объем, что поможет в дальнейшем составлять нужную отчетность. Поэтому было принято решение о разработке своей, более узкоспециализированной программной системы. Для разработки информационной системы учета НТМ потребуется использование персональных машин, которые будут ориентированы на конечного пользователя, а также администратора. Создание системы автоматизации позволит руководителю мероприятия производить оформление документации быстрее и эффективнее 3. Проектирование и реализация собственной программной системы учета НТМ с использованием клиент-серверной архитектуры В ходе реализации программной системы возникла необходимость создания нескольких модулей: - модуль просмотра списка таблиц; - модуль обновления данных в таблицах; - модуль генерирования отчетов; -модуль регистрации пользователей. Модульная структура системы учета НТМ представлена на рис. 2. Рисунок 2 – Модульная структура системы Система включает в себя около 25 таблиц и справочников. Для реализации системы необходима установка и настройка сервера, php, СУБД mysql, phpmyadmin. На web-сервере располагается база данных для мероприятий. Для создания базы данных использовалось утилита phpmyadmin, которая располагается на сервере. Система для учета участия в мероприятиях состоит из двух частей: серверной и клиентской. Скрипты, 87 расположенные на сервере, предназначены для получения данных и для обработки запросов (добавления данных, обновления данных, для удаления данных и для редактирования) [3,4]. На данном этапе спроектирована и полностью реализована программная система учёта НТМ. Главная форма представлена на рис. 3. Рисунок 3 - Главная форма 4. Порядок работы с программной системой. Начальник НИЧ заполняет сведения о заместителях декана по науке факультетов ДонНТУ: ФИО, должность, контактные телефон и эл. почта до 1 декабря текущего года. 1 декабря осуществляется напоминающая рассылка на адрес эл. почты заместителям декана по науке о необходимости подтвердить авторизацию для новых пользователей и внести сведения в факультетский план НТМ на следующий календарный год до 20 декабря. С 20 по 31 декабря начальник НИЧ проверяет корректность ввода сведений о НТМ в общем плане мероприятий. 31 декабря, проверенный план НТМ получает статус утвержденного, после подписания печатного варианта проректором по научной работе ДонНТУ. 10 января осуществляется рассылка на адрес эл. почты ответственных секретарей оргкомитетов о необходимости подтвердить авторизацию для новых пользователей и необходимости ознакомления с порядком работы с системой (внесения сведений, подготовки приказа и отчета и т.д.). За 20 дней до даты проведения мероприятия осуществляется рассылка на адрес эл. почты ответственного секретаря соответствующего оргкомитета о необходимости подготовки приказа, о возможности внести окончательные изменения в сведения о мероприятии, включая его отмену. За 10 дней до даты проведения мероприятия осуществляется рассылка на адрес эл. почты ответственного секретаря соответствующего оргкомитета о необходимости публикации пресс-релиза и размещения программы (положения) мероприятия. Через 5 дней после даты проведения мероприятия осуществляется рассылка на адрес эл. почты ответственного секретаря соответствующего оргкомитета о необходимости публикации пост-релиза о проведенном мероприятии. Через 10 дней после даты проведения мероприятия осуществляется рассылка на адрес эл. почты ответственного секретаря соответствующего оргкомитета о необходимости сдачи отчета о проведенном мероприятии. В случае отсутствия сведений о подготовке приказа (за 17 дней), публикации пресс-релиза (за 8 дней), программы или положения (за 8 дней), пост-релиза (через 7 дней), отчета (через 13 дней) начальнику НИЧ приходит уведомление на эл. почту. 88 По требованию начальника НИЧ формируется отчет о проведенных мероприятиях за месяц, квартал, полугодие, год или за выбранный период времени. На основе введенных данных выполняется расчет показателей НТМ. Выводы В результате анализа методов разработки программных систем учёта НТМ было выявлено, что лучшим методом является создание клиент-серверного приложения. С использованием данного метода была разработана программная система. Система учёта НТМ имеет следующие достоинства: - система позволяет упростить работу с мероприятиями, проводимыми в ДонНТУ; - применение системы значительно ускоряет процесс составления документации по данным мероприятиям, а также повышает качество составляемой отчетности; - система позволяет ответственным за проведение конкретного мероприятия, т. е. заместителям деканов по науке на каждом факультете, формировать документацию в автоматизированном виде, что также позволит избежать множества ошибок. Как перспективу развития данной системы можно предоставить возможность генерирования отчетности в системе посредством составления расписания получения отчетов конкретным пользователем. Вторым перспективным направлением развития системы можно назвать расширение путём добавления возможности редактирования отчетов в браузере. Литература 1. Конфигурация "Учет мероприятий и семинаров"//Простой софт программы для дома и офиса. [Электронный ресурс]. – Режим доступа: http://prostoysoft.ru/Events.htm. 2. Учет мероприятий // Автоматизация работы компании по организации и проведению мероприятий. [Электронный ресурс]. – Режим доступа: http://usu.kz/uchet_meropriyatiy.php. 3. Осипов, Д. Л. InterBase и Delphi. Клиент-серверные базы данных / Д.Л. Осипов. - М.: ДМК Пресс, 2015. - 536 c. 4. Растригин, Л.А. Адаптация сложных систем. Методы и приложения / Л.А. Растригин. - Москва: РГГУ, 1981. - 501 c. 5. ИУСМКМ - 2016: VII Международная научно-техническая конференция, 26 мая 2016: - Донецк: ДонНТУ, 2016. – С. 167-172. Ходич Д.В., Завадская Т.В., Грищенко В.И. Методы разработки систем учета научнотехнических мероприятий. В данной статье были проанализированы существующие методы разработки программных систем учета НТМ. В результате анализа был выявлен самый оптимальный метод разработки программной системы. На основе этого метода была разработана система учета НТМ для ДонНТУ с открытым кодом. В системе реализовано генерирование отчетности по данным из БД, которая была спроектирована с учётом специфики ВУЗа. Ключевые слова: научно-технические мероприятия, система учета мероприятий, методы разработки систем учёта, генерация отчётов, база данных, клиент-серверная архитектура. Khodich Dima, Zavadskaj T.V., Grishenko Viktor. Methods of development of accounting systems of scientific and technical events. The analysis has been identified the most optimal method for the development of a software system. On the basis of this method, the system was developed STE accounting for DonNTU open source. The system is implemented to generate reports on the data from the database, which was designed taking into account the specifics of the university. Key words: STE, accounting system of events, methods for developing accounting systems STE, reports generation, database, client-server architecture. 89 СЕКЦИЯ «СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ» УДК 004.5 Анализ технологии и средств адаптации САПР СПРУТ В.С. Авраимов, Григорьев А.В. Донецкий национальный технический университет [email protected] Авраимов В.С., Григорьев А.В. Анализ технологии и средств адаптации САПР СПРУТ. В статье производится анализ САПР СПРУТ, его преимуществ и актуальность. Описывается его свойства, функции, сферы применения, а также актуальность данной системы в наше время. Ключевые слова: САПР, СПРУТ, анализ, инструментальные средства разработок, PDMS, PLM. Введение В настоящее время [1] увеличение производительности труда разработчиков новых изделий, сокращение сроков проектирования, повышение качества разработки проектов являются важнейшими проблемами, решение которых определяет уровень ускорения научно-технического прогресса общества. В деятельности различных организаций широко внедряется компьютеризация, поднимающая проектную работу на качественно новый уровень, более обоснованно решаются многие сложные инженерные задачи, которые раньше рассматривались лишь упрощенно. Во многом это происходит благодаря использованию эффективных специализированных программ, которые могут быть как самостоятельными, так и в виде приложений к общетехническим программам. Данная автоматизация проектирования реализуется благодаря использованию систем автоматизированного проектирования. В современном обществе очень высока доля людей, которые профессионально используют системы автоматизированного проектирования в своей деятельности. Однако таких систем очень много, поэтому специалисты должны четко представлять, какую систему удобно использовать для решения таких профессиональных задач, как умение читать конструкторскую и технологическую документацию; выполнять комплексные чертежи геометрических тел и проекции точек, лежащих на поверхности; выполнять эскизы, технические рисунки и чертежи деталей, их элементов, узлов в ручной и машинной графике; выполнять графические изображения технологического оборудования и технологических схем в ручной и машинной графике и многое другое. Далее мы рассмотрим САПР СПРУТ, его преимущества, актуальность и перспективность. Инструментальные средства разработки САПР Система Sprut [2], представляющая собой интегрированную отладочную среду, является мощным инструментальным средством разработчика, включающим экранный редактор и большой набор функций: трансляцию и запуск программ на выполнение; пошаговое выполнение программ с просмотром текущих значений интересующих переменных и результатов проектирования, ввод точек останова и т.д.; нахождение позиций ошибок, обнаруженных как в процессе трансляции, так и при выполнении программ. Отладочная среда имеет встроенную контекстно-зависимую систему получения подробной справочной информации об операторах всех подсистем СПРУТ. Собственный язык программирования высокого уровня имеет проблемную ориентацию и подразделяется на следующие подсистемы: SGR — подсистема базовой графики; SETS — подсистема структур данных; SHELL — подсистема многооконного интерфейса; SBDE — подсистема управления базами данных; 90 GPS — процессор 2D-геометрии; SIGI — подсистема взаимодействия с интерактивным вводом геометрии; SPM — подсистема 3D-моделирования; DOG — подсистема оформления чертежей; TPS — технологический процессор ЧПУ; DOX — подсистема работы с документами. SprutX — система позволяет описывать информационные модели объектов проектирования. Объектом является любая деталь, сборка или узел. Информационная модель представляет собой вариантную структуру (И/ИЛИ) составляющих ее объектов, а также свойства объектов и методы их проектирования. С помощью инструментальной системы SprutX осуществляется формирование классов, описание их свойств и методов объектов, а также согласование свойств объектов для подключения к уже существующей системе новых, независимо разработанных компонентов . Дерево объектов является средством навигации по проекту и обеспечивает доступ к свойствам и методам как во время проектирования прикладной системы, так и во время ее работы. SprutMX — среда визуального проектирования интерфейса прикладной системы на основе информационной модели проектируемого изделия, созданного в SprutX. Существует возможность включать в интерфейс окна, разработанные в Delphi. Набор стандартных экранных форм и унифицированного представления интерфейса позволяет быстро создавать «лицо» прикладной программы и управление обработкой событий. Также в системе реализуется автоматическая генерация интерфейса расчетной системы, разработанной в SprutExPro. SprutDoX — система по своему построению аналогична SprutX и предназначена для построения документо-ориентированных прикладных систем. SprutDoX позволяет описывать бланки различных форм документов и устанавливать вызов событий при активизации полей бланка. На основе SprutDoX реализована, например, система проектирования технологических процессов. SprutExPro — представляет собой инструментальную среду, которая предназначена для того, чтобы специалисты, не владеющие программированием, смогли компьютеризировать знания для конструкторских, технологических и других прикладных систем. SprutExPro реализует принципиально новый метод генерации программных средств, позволяющий пользователю, не прибегая к программированию на языках высокого уровня типа C++ или Pascal, создавать прикладные программные комплексы с производительностью на порядок выше, чем профессиональный программист. В системе использован метод экспертного программирования, объединяющий лучшие качества объектно-ориентированного подхода и экспертных систем искусственного интеллекта. При этом применяется простейший язык, основанный на правилах, записываемых с помощью ограниченного естественного языка . Универсальные системы SprutCAD [3] является открытой конструкторской средой для автоматизации труда конструкторов и разработчиков систем проектирования. Система в полной мере поддерживает стандарт ЕСКД и имеет расширяемый пользователем набор сервисных функций, что позволяет создать на его основе рабочее место конструктора, реально автоматизирующее типовые проектные операции, которые необходимы на конкретном рабочем месте. SprutCAD имеет библиотеку стандартных параметрических элементов, которую можно достаточно просто пополнять в процессе эксплуатации; кроме того, имеется возможность создавать собственную пользовательскую базу типовых решений. В системе реализована возможность создания и поддержки иерархической базы чертежей изделия, что позволяет более удобно и наглядно организовать процесс проектирования и контроля над изменениями в проекте. Уникальность параметризации SprutCAD состоит в том, что все геометрические объекты имеют в системе двоякое представление — текстовое и графическое. Текстовое описание представляет собой не что иное, как программу на языке СПРУТ с использованием операторов подсистем базовой графики GPS и оформления чертежей DOG. В результате черчения автоматически генерируется текст программы на языке СПРУТ в окне отладчика. Система обеспечивает синхронизацию между графическим и текстовым представлением каждого элемента. Интерактивное изменение элемента приводит к корректировке его текстового определения, и наоборот, редактирование текстового определения любого элемента автоматически отражается на чертеже. При этом в любом случае система не только изменит редактируемый элемент чертежа, но и по дереву построения автоматически переопределит все элементы, имеющие взаимосвязи с измененным. Реализованная таким образом параметризация, сочетающая в себе взаимосвязанное представление в виде графики и текста (языка СПРУТ), дает безграничные возможности по генерации чертежей. SprutCAM [4] — это современная система генерации управляющих программ для обработки деталей на 2; 2,5- и 3-координатных станках с ЧПУ. Благодаря развитым функциям импорта геометрической модели 91 система легко интегрируется с любой современной CAD-системой. Осуществляется импорт геометрических моделей в форматах: IGES, DXF, PostScript, STL, 3DM, реализован прямой интерфейс с системой СПРУТ. SprutCAM поддерживает широкий спектр форм представления геометрической информации — от ломаных и триангулированных сеток до NURBS-кривых и NURBS-поверхностей, что обеспечивает высокую степень достоверности модели. Функции модификации геометрической модели и полнофункциональная среда двухмерных построений позволяют произвести все необходимые изменения и дополнительные построения. Широкий набор типов технологических операций и функции управления их параметрами позволяют сформировать оптимальный процесс обработки, а автоматический подбор параметров операций дает возможность сделать это максимально быстро. Автоматическое определение и доработка остаточного материала исключают рутинную работу технолога. До отправки управляющей программы на станок с ЧПУ ее можно проверить при помощи средств моделирования обработки, что полностью исключит ошибки и сэкономит время, материалы и средства. Инвариантный постпроцессор позволяет легко настроиться на любой формат системы ЧПУ. Удобный и понятный технологу интерфейс позволяет осваивать систему за считанные дни. Среда Sprut NCTuner предназначена для контроля и окончательной доводки управляющих программ для фрезерных и токарных станков с ЧПУ. Система является логическим продолжением более ранних разработок фирмы: системы моделирования обработки InDraw и потокового редактора управляющих программ SED, различные версии которых уже в течение многих лет используются на предприятиях. NCTuner предоставляет все необходимые средства для реалистичного моделирования процесса обработки, отладки и редактирования управляющих программ, то есть в системе объединены блок моделирования обработки на станке с ЧПУ, многооконный текстовый редактор и современная отладочная среда, со всеми присущими ей функциями. Исходной информацией для моделирования процесса обработки служит управляющая программа в формате любой системы ЧПУ, параметры режущих инструментов и форма заготовки. В комплект поставки входит множество файлов настройки на часто встречающиеся системы ЧПУ. При помощи встроенных средств настройки достаточно просто научить систему интерпретировать управляющую программу для любой стойки ЧПУ. Реализуется перевод управляющих программ из одной системы ЧПУ в другую. Результат моделирования представляет собой фотореалистичную твердотельную модель, которая может быть экспортирована во внешние файлы и использована другими приложениями, например CAD/CAM/CAEсистемами. Система SprutTP служит для автоматизации проектирования маршрутно-операционной технологии. В новой версии система использует принцип активного документа: при выборе какого-либо поля документа программа автоматически из базы данных выводит на экран только свойственную этому полю информацию либо производит определенные действия. Такой подход к реализации интерфейса значительно ускоряет процесс освоения программы, поэтому технологи предприятия, видя перед собой одни и те же документы, не будут затрачивать дополнительные усилия на изучение не свойственных выбранному полю форм и таблиц баз данных. В состав системы SprutTP входит специальный редактор STTS, с помощью которого создаются технические документы. Вследствие этого каждое предприятие, использующее нестандартные формы документации, может без привлечения сторонних программистов сгенерировать нужный комплект документов. В состав системы входит технологическая база знаний по проектированию процесса механообработки (последовательность операций, переходов, оснащение переходов, расчет режимов резания, нормирование), разработанная и модифицируемая с использованием системы SprutExPro. Система SprutStamp, предназначенная для автоматизации конструкторско-проектных работ по проектированию штамповой оснастки для холодной листовой штамповки, объемной штамповки и ковки, обеспечивает: интерактивный ввод исходных данных, необходимых для проектирования оснастки; проектирование штампа для деталей любой формы, с неограниченным количеством пробиваемых отверстий любой конфигурации, для любого пресса; выбор пресса в зависимости от усилия штамповки и габаритов штампуемой детали; выбор блока со стандартными или нестандартными плитами; генерацию комплекта чертежей и спецификаций; интерактивное редактирование полученных чертежей штампа с использованием открытой среды конструкторского проектирования SprutCAD; пополнение и редактирование графической базы прессового оборудования; создание трехмерной модели любой детали штампа и сборки. При наличии инструментальной среды СПРУТ у пользователя имеется возможность расширять SprutStamp. Системы SprutMX и SprutX используются для создания новых схем штампов и стандартных деталей, расширения интерфейса системы. 92 SprutIntegrator — это система для управления процессом подготовки производства на основе информационной модели изделия и протоколов привязки модели к информационным ресурсам и структуре предприятия. Основным связующим звеном в системе подготовки производства является подсистема управления проектами. Функциональные возможности подсистемы разделяются на три основные группы, характеризующие круг решаемых подсистемой задач: управление архивами моделей изделий; выдача заданий на проектирование; контроль выполнения проектов. Подсистема управления проектами состоит из двух функциональных модулей — сервера управления проектами и администратора проектов. Сервер управления проектами может использоваться как в однопользовательском, так и в сетевом варианте. Для сетевой версии в качестве хранилища информационных моделей и документов могут применяться стандартные SQL-серверы (Sybase, Microsoft и др.). Данный сервер может использоваться и в случае, когда в качестве базовой системы проектирования выбран продукт сторонней фирмы. Сервер управления проектами выполняется как самостоятельный продукт и поддерживает практически любые типы документов. Одной из важных возможностей системы является поддержка функций коллективной разработки. Администратор проектов гарантирует синхронизацию при работе над одним и тем же проектом нескольких сотрудников. Использование централизованного хранилища данных с механизмом захвата документов (Check In/Out) позволяет справиться с проблемой коллективной разработки. Произвольная структуризация хранилища документов и распределение пользователей в рабочие группы позволит не подстраивать работу предприятий под использование системы, а настроить ее на решение вопросов в привычной для них форме и последовательности. Интеграция с PDM/PLM Операционные эскизы могут быть разработаны в различных CAD [5]-системах и переданы в карты эскизов (КЭ) или операционные карты (ОК) комплектов ТП, используя: графические форматы CAD-системы (*.DWG,*.DXF AutoCAD, *.SL DDRW SOLIDWORKS, *.CDW, *. FRW Компас, …); векторные форматы обмена (*.IGS, *.WMF, *.EMF); пиксельные форматы (*.BMP, *.JPG). Стремительный рост потребности взаимодействия «СПРУТ-ТП» c различными PDM/PLM/ERPсистемами привел к осуществлению интеграции с использованием схемы преобразования (трансформации). Схема преобразования необходима для того, чтобы интерактивно настраивать импорт/экспорт данных из/в систему «СПРУТ-ТП». Схема преобразования представлена в виде XML-файла. Настраивается схема с помощью любой программы для просмотра и редактирования XML. Работа со схемой трансформации не требует программирования и работы с программным кодом, все изменения вносятся в понятном, табличном виде. Схема трансформации позволяет IT-специалистам предприятия: - самостоятельно изменять работу экспорта и импорта из/в систему СПРУТ-ТП; - добавлять или изменять параметры для передачи, регулировать, как и какая информация будет передаваться между системами. Варианты взаимодействия справочников СПРУТ-ТП со справочниками PDM/PLM, [6] АСУ предприятия: 1) Разовый экспорт/импорт данных. 2) Разовый экспорт/импорт данных + синхронизация справочников по установленным правилам и времени. 3) Присоединение справочников СПРУТ-ТП к БД PDM/PLM, АСУ. 4) Анализ корректности заполнения ТП. Механизмы интеграции СПРУТ-ОКП аналогичны СПРУТ-ТП. Типовая обмениваемая информация СПРУТ-ОКП: Входная информация: Состав изделий, Спецификации, Технологические процессы (заготовки, материалы, в т.ч. вспомогательные, операции, оборудование, переходы, оснастка, режимы обработки, нормы времени), Выходная информация: Данные о плановом и фактическом производстве, 93 Информация по складам, Данные по снабжению и сбыту, Результаты экономических расчетов. Выводы Преимущества систем очевидны, поэтому разработки «СПРУТ-Технологии» вызывают интерес не только российских, но и зарубежных предприятий. С системами уже работают в Великобритании, Германии, Швейцарии, Италии, Норвегии, Швеции, Греции, Турции, США, Канаде, Корее, Японии и в других странах. «СПРУТ-Технология» — единственная российская компания, которая, используя свои оригинальные идеи, занимается разработкой специализированных инструментальных средств для создания прикладных систем. Удобство, простота, функциональная насыщенность, открытость для пользователей — вот отличительные качества программных продуктов «СПРУТ-Технологии». Литература 1. Малюх Владимир Введение в современные САПР; ДМК Пресс - Москва, 2012. - 192 c. 2. http://www.sprut.ru/ Главная страница официального сайта СПРУТ технологии. 3. Райан Д. Инженерная графика в САПР; Мир - Москва, 2001. - 391 c. 4. Кунву Ли сновы САПР (CAD/CAM/CAE); Питер, 2004.-540с. 5. Saaksvuori A. Product lifecycle management / Antti Saaksvuori, Anselmi Immonen. – New York: McGrawHill, 2009. – 334 p. 6. Sendler U. CAD and PDM: Optimizing processes by integrating them / Ulrich Sendler. Авраимов В.С., Григорьев А.В. Анализ технологии и средств адаптации САПР СПРУТ. В статье производится анализ САПР СПРУТ, его преимуществ и актуальность. Описывается его свойства, функции, сферы применения, а также актуальность данной системы в наше время. Ключевые слова: САПР, СПРУТ, анализ, инструментальные средства разработки,PDMS, PLM. Avraimov VS, Grigoriev AV Analysis of the technology and means of CAD SPRUT adaptation. The article is made of CAD SPRUT analysis of its advantages and relevance. It describes the properties, functions, scope and relevance of the system at this time. Keywords: CAD, SPRUT, analysis, development tools, PDMS, PLM.. 94 УДК 004.62 Рефакторинг сайта электронного журнала ДонНТУ Бубловский Д.Н., Андрюхин А.И. Донецкий национальный технический университет [email protected] Бубловский Д.Н., Андрюхин А.И. Рефакторинг сайта электронного журнала Донецкого национального технического университета. В работе рассматриваются вопросы реконструкции и рефакторинга электронного журнала «Информатика и кибернетика». Приведены результаты использования CMS WordPress. Введение Цель работы: провести рефакторинг сайта электронного журнала ДонНТУ. Актуальность работы: в ходе своей загруженности, у преподавателей мало времени на составление страниц с докладами. Последующая работа обеспечит удобное и быстрое добавление статей на сайт электронного журнала с помощью системы автоматического проектирования. В области сайтостроения такую систему называют «движком» сайта. Анализ существующей системы На данный момент структура файлов сайта представляет из себя набор файлов разных форматов, которые находятся в корневом каталоге. Также эти файлы подписаны таким образом, что даже администратору сайта будет сложно в них разобраться. Однако это не единственная проблема. Дело в том, что поисковые системы не воспринимают должным образом сайты с такой структурой файлов. Отсюда и низкая посещаемость, и плохая поисковая оптимизация. Такая структура файлов изображена на рис. 1. Рисунок 1 – Неправильная структура файлов Чтобы правильно расположить все файлы на сервере, необходимо сначала определиться с тем, каким образом будет вестись администрирование данного сайта, напрямую или со вспомогательными системами. 95 Сайты, администрирование которых ведется напрямую, называются статическими. Это значит, что все страницы создаются вручную в формате html. Обычно – это небольшие сайты. Именно таким являлся сайт электронного журнала ДонНТУ до его рефакторинга. Сайты, администрирование которых ведется со вспомогательными системами – называют динамическими сайтами. Полное название таких систем - Content Management System(CMS) – система управления контентом. В народе просто – движки. Они имеют единую шаблонную, почти похожую структуру. На таких сайтах очень легко оперировать большими объемами данных, однако из-за таких сайтов увеличивается нагрузка на сервер, что влияет на скорость загрузок страниц. Чаще всего пользователь не замечает этого «добавленного» времени, но на машинном уровне эта разница существенная. В добавок ко всему, для управления таким электронным ханилищем, желательно знать дополнительные языки, такие как PHP, Java и MySQL. В противном случае придется ограничиваться стандартными шаблонами, что влечет за собой заурядность дизайна. Обзор CMS Исходя из цели работы, были рассмотрены несколько систем управления контентом, а именно: Joomla WordPress Drupal Data Life Engine OpenCart Bitrix Ucoz Проанализировав каждый из них, был сделан вывод, что самый оптимальный для вышеописанной цели, подойдет WordPress. И вот почему: Joomla более громоздкий и тяжелый для данного сайта, чем WordPress, поэтому он отпадает. Drupal больше подходит для сайтов, на которых содержится большое количество медиафайлов, такие как музыка, фильмы и даже игры. Поэтому он не брался в учет. Data Life Engine – это платный движок. OpenCart в основном для интернет-магазинов. Bitrix - платный. Ucoz – не заточен под поисковую оптимизацию, а также этот движок добавляет рекламу на каждый сайт, созданный в его пределах. Чтобы убрать эту рекламу, необходимовнести определенную сумму денег, а поэтому такой CMS тоже отпадает. Остается WordPress. WordPress — популярная и удобная программа для управления контентом (CMS). Первоначально задумывалась и создавалась как система управления содержимым блогов, но вскоре обрела большую популярность не только у блоггеров, но и у владельцев небольших сайтов. Она ориентирована на красоту, поддержку стандартов и удобство использования. WordPress бесплатен и свободен к распространению. Среди достоинств выбранного движка можно выделить самые главные, для электронного журнала: 1. Локальная установка WordPress предназначен для установки на собственном Web-сервере, или на сервере хостера, который предоставляет полный контроль над сайтом. 2. Переносимая основа Возможность выбирать, как строить дерево связанных файлов WordPress, которые формируют рабочую среду (back-end) публикуемого контента, и эти файлы могут находиться в той же директории, что и сайт - или в другом месте. 3. Динамическая генерация страниц Страницы не нужно перестраивать каждый раз после обновления информации или изменения любого из аспектов сайта. Все страницы генерируются с использованием базы данных и шаблонов (templates) каждый раз, когда страница веб-ресурса запрашивается браузером. Это значит, что обновление сайта или его дизайна происходит настолько быстро, насколько это возможно, и требуемое дисковое пространство на сервере минимально. 4. Редактор файлов В WordPress встроен редактор файлов, который можно использовать для редактирования шаблонов и связанных с ним файлов, прямо в браузере. Нет необходимости скачивать их для редактирования или иметь к ним доступ по FTP. 5. Плагины Имеется возможность расширить функциональность ядра сайта. Большое количество плагинов доступно для скачивания и последующего внедрения на ресурс. 96 6. Архивация После продолжительного ведения электронного хранилища в нём может накопиться много статей. Архивация в WordPress предоставляет возможность организовывать их вывод в удобной для пользователя форме. Можно выбрать к показу записи за определённый год, месяц, неделю, день, какой-то категории или автора. Страницы будут генерироваться автоматически при помощи специального шаблона. 7. Модерирование WordPress предоставляет варианты контроля комментариев перед добавлением их в блог. использование специфических слов в них. IP адресов, с которых можно отправлять комментарии. количество ссылок в комментарии. 8. Загрузка файлов В WordPress возможно загружать файлы и указывать ссылки или отображать (если это картинки) их в своей публикации. Так же имеется опция создания превью картинок в момент загрузки на сервер. Реализация Для установки WordPress необходимо скачать файлы движка с официального сайта и залить их на хостинг. Место для этого предоставляет официальный сайт донецкого национального технического университета [1]. Это нужно для того, чтобы файлы с расширением php были успешно прочитаны. Распознают такой язык исключительно сервера. Поэтому без сервера запуск сайта невозможен. На рис. 2 видна правильная структура файлов сайта. Рисунок 2 – Правильная структура файлов сайта Далее необходимо создать базу данных. Она необходима для распаковки системы управления контентом. После того, как в процессе установки были указаны все необходимые данные для существования сайта, можно перейти на панель администратора. Выглядит она таким образом, как на рис. 3. 97 Рисунок 3 – Главная страница администраторской панели движка WordPress Чтобы созданный сайт принял достойный внешний вид, была проведена тонкая и гибкая настройка всех вкладок администраторской панели, выбран один из готовых имеющихся дизайнов тем, добавлены и настроены необходимые виджеты, выбраны и внедрены нужные плагины, была проведена корректировка кодов шаблона, а также было проведено наполнение электронного хранилища необходимым контентом. После всех вышеперечисленных манипуляций был получен внешний вид сайта, который можно наблюдать на четвертом скриншоте ниже. Рисунок 4 – Новый дизайн сайта электронного журнала ДонНТУ Полученный веб-сайт значительно отличается, как внешне, так и внутренне, от своей «первой версии». Старую версию вы можете увидеть на рис. 5. 98 Рисунок 5 – Старый дизайн сайта электронного журнала «Информатика и кибернетика» ДонНТУ Выводы В ходе рефакторинга сайта электронного журнала Донецкого национального технического университета, был совершен «переезд» страниц и контента на них, написанного вручную на систему автоматического проектирования сайтов – движок «WordPress», а также достигнуты такие результаты: Усовершенствована строка главного меню; Исправлена ошибка неверного отображения шапки сайта; Скорректированы текстовые данные в подвале сайта; Модернизация внешнего вида языковых переключателей; Компоновка и структурирование файлов электронного хранилища; Перенос сайта на систему управления контентом; Реализация более удобного доступа к любому опубликованному докладу на сайте; Добавлена строка поиска по сайту; Осуществлена адаптация разрешения экрана в зависимости от устройства; Добавлена удобная «Карта сайта» с рубрикаторами. Для выполнения всех этих пунктов был задействован CMS WordPress и публикации [3-8]. В результате был получен совершенно новый, красивый и удобный в использовании сайт, на котором (мы надеемся) приятно будет находиться не только новым посетителям, но и постоянным пользователям, которые видят этот сайт ежедневно. Литература 1.Официальный сайт ДонНТУ [Электронный ресурс]. — Режим доступа: http://donntu.org/ 2.Электронный журнал ДонНТУ [Электронный ресурс]. — Режим доступа: http://infcyb.donntu.org/ 3.Webstudio2u [Электронный ресурс]. — Режим доступа: http://webstudio2u.net/ru/programming/96cms.html 4.Блог Евгения Вергуса [Электронный ресурс]. — Режим доступа: https://sovetywebmastera.ru/plaginywordpress/chto-takoe-wordpress 5.Wordpress.org Русский [Электронный ресурс]. — Режим доступа: https://ru.wordpress.org/ 6.На пути к миллиарду! [Электронный ресурс]. — Режим доступа: http://first-billion.com/blogging/kakustanovit-i-nastroit-wordpress.html 7.На пути к миллиарду! [Электронный ресурс]. — Режим доступа: http://firstbillion.com/blogging/wordpress-seo-by-yoast-universalnyj-plagin-dlya-bloga.html. 8.Интернет капуста [Электронный ресурс]. — Режим доступа: http://internetkapusta.ru/stroim-svoysayt/kak-vybrat-dvizhok-dlya-sajta.html Bublovsky D., Andryukhin A.. Refactoring Ezine site of Donetsk National Technical University. The paper deals with the electronic journal for Reconstruction and refactoring "Informatics and Cybernetics". Results CMS WordPress use. Key words: CAD, CMS, the engine, the WordPress, Website, electronic storage. 99 УДК 004.896 Анализ функциональных возможностей и перспектива развития САПР одежды А.В. Власюк, А.В. Григорьев Донецкий национальный технический университет [email protected], [email protected] Власюк А.В., Григорьев А.В. Анализ функциональных возможностей и перспектива развития САПР одежды. В статье описан термин «Одежда», основные этапы проектирования одежды в практике дизайнеров и в практике САПР. Приведён пример известной популярной САПР «Грация», описан её функционал и пошаговое проектирования изделия. Проанализированы основные перспективы развития САПР и новшества систем на данный промежуток времени. Ключевые слова: САПР одежды, САПР «Грация», проектирование, одежда, изделие, развитие. Введение Цель: исследование функциональных возможностей САПР одежды в общем, а также на примере конкретной программы; рассмотрения методов проектирования одежды в реальной жизни, и в системе САПР. Актуальность работы: в последнее время усиленно развиваются средства информационных технологий, что приводит к большим изменениям в области автоматизации проектирования в разных отраслях, а также к росту развития промышленности. Во многих странах появились современные системы проектирования, которые более качественно выполняют работу, повышая эффективность труда, уменьшая затраченное время. Это наблюдается также и в швейной промышленности, где актуальностью является быстрая смена моделей одежды, большее разнообразие элементов изделий, вариантов их обработки. Дизайнеры, модельеры постоянно выдумывают новые бренды, за которыми охотятся «звёзды» и простые модники. В этом видят свою выгоду швейные предприятия, которые изготовляют новые изделия для брендовых и обычных магазинов. Хорошие товары быстро раскупаются, что приносит огромную прибыль торговцам. Им в свою очередь выгоднее сотрудничать с предприятиями, чьи специалисты и работники качественнее, быстрее и лучше выполняют свою работу. С помощью такой системы как САПР одежды, можно не только быстрее изготовить изделие, ну а также воплотить все свои лучшие фантазии и создать что-то нереальное, или же просто стабильно и хорошо выполнять данную работу. Наиболее развитые системы проектирования одежды включают [1]: 1) дизайнерские программы, позволяющие разрабатывать внешний вид изделий, под­бирать наиболее удачные сочетания расцветок ткани; 2) конструкторские программы, реализующие творческий замысел дизайнера в лекалах; 3) технологические программы оптимизации раскладки лекал на материале и проектирования процесса раскроя и пошива изделий, учитывающие особенности конкретных производств. Современные САПР должны содержать такие требования: • полная функциональность, способность решать весь спектр задач от конструирования изделия до подготовки его к раскрою и управления раскроем; • мобильность, учитывающая требования конкретных заказчиков; • динамичность, т. е. развитие и совершенствование продукта, который постоянно наращивает свои возможности и вбирает в себя все новые достижения в области технологических разработок. 1. Одежда как объект проектирования Что же такое одежда? Это совокупность разных изделий (из ткани, вязаного полотна, кожи и меха), надеваемых человеком с целью защитить своё тело от негативного влияния окружающей среды (погодных условий, насекомых, токсических веществ и другого), а также для соблюдения норм, существующих в обществе. Одежда выполняет эстетические функции — создаёт образ (имидж) человека, что позволяет судить о его социальной роли. Не зря говорят, что «по одежке встречают, а по уму провожают». Одежда не только дает представление о человеке и его социальном статусе, но и выражает идеалы общества в целом в ту или иную эпоху. Сочетание разных частей одежды и дополняющих ее предметов образует готовый комплект или костюм. Разнообразие швейных изделий очень велико, поэтому включает в себя множество видов одежды. Классифицируют их следующим образом: по размерам, ростам и полнотам; по назначению; по сезону; по половозрастному признаку; по применяемым материалам; по стилевому решению; по характеру опоры. Например, различаются стили одежды [2] авангард, гламур, богема и т.д. (см. рис.1-11). 100 Рисунок 4 – Стиль Гламур Рисунок 1 – Стиль Авангард Рисунок 5 – Стиль Гранж Рисунок 2 – Стиль Богема Рисунок 3 – Стиль Винтаж Рисунок 6 – Стиль Классика 101 Рисунок 7 – Стиль Кантри Рисунок 10 – Стиль Сафари Рисунок 8 – Стиль Кэжуал Рисунок 11 – Стиль Этно Рисунок 9 – Стиль Милитари 102 Существуют определённые правила и нормы, которые применяются к одежде. Соблюдение этикета позволяет произвести хорошее впечатление о вашем вкусе к одежде, а также о ваших внутренних достоинствах. Правила этикета придумывает и устанавливает само общество, на протяжении долгого времени. Например, на собеседовании мы должны доказать компетентность, длинное платье и яркий макияж будет только отвлекать работодателя. Зато на дискотеке и венском балу данный образ будет только привлекать внимания девушки, воспроизводив всю её красоту и неотразимость. 2. Дизайнерские методы проектирования одежды План творческого процесса всегда существует у дизайнера, который собирается спроектировать одежду. 1) Первоначальная идея, первый замысел. Дизайнер придумывает, какое изделие, и с какой целью он хочет создать. Рисует в голове у себя разные модели, и, в конце концов, рисует первый эскиз на бумаге. 2) Дизайнер собирает и копит разные материалы, находит свой творческий источник, а также выгодные и удобные средства для создания своей идеи, способные точно выразить главную мысль. 3) Все свои усилия концентрирует и начинается интенсивная работа. Использует различные методы проектирования. 4) «Перерыв» - отдых от работы на некоторое время, так как дизайнер должен оценить свою работу «свежим взглядом». 5) Озарения – дизайнер определяет окончательное оптимальное решение по поводу проектирования. 6) Дизайнер дорабатывает, доводит до конца проделанную работу, оценив её по итогу. Оформляет документацию. На всех этапах практика и теория строится по единой методике. Методический процесс можно разделить на 4 этапа [3]: информационный; аналитический (исследовательская часть); синтетический; коммуникативный (практическая часть). Рисунок 12 – Пример первого замысла дизайнера 3. Общие методики проектирования одежды в САПР Существуют типичные этапы проектирования одежды в САПР: 1) Конструкторская подготовка: Конструктор строит базовую конструкцию по любой методике «с нуля» или адаптирует готовую. Строит модельную конструкцию в базовом размере. Затем составляет документацию, печать лекал и отшив опытного образца. В конце работы вносит замечания и пожелания. Размножает лекала на необходимый диапазон размеров и ростов. В итоге строит комплект лекал на индивидуальную фигуру. 2) Технологическая подготовка: Технолог составляет технологическую последовательность изготовления. Рассчитывает время и стоимость. Составляет схему разделения труда. По итогу рассчитывает заработную плату швее, а также технико-экономические показатели и расход ниток. 103 3) Проектирование раскладок лекал: Проектировщик занимается проектированием раскладок с учётом свойств материала и технологических требований для раскроя настила. 4) Учет, планирование и управление: Главный разработчик планирует, когда разрабатывать коллекцию. Составляет план выпуска изделия. Определяет потребности в материалах и степени готовности к запуску в производство. Ведёт расчёт себестоимости проектируемого изделия. Контролирует выполнения производственного плана. Следит за поступлением на склад готовой продукции и взаимодействие с контрагентами. По итогу составляет отчётную информацию. Рисунок 13 – Работа конструктора (построение модельной конструкции по базовым размерам) Рисунок 14 – Работа проектировщика (раскладка и лекал) 4. Анализ функциональных возможностей современных САПР одежды на примере САПР «Грация» – программы моделирования и проектирования одежды 4.1. Назначение, общие функции и структура САПР «Грация» САПР “Грация” – самая популярная система по автоматизации процессов конструкторской и технологической подготовки моделей к производству. С помощью её можно выполнять работу в автоматическом режиме: побыть в роли художника и выполнить эскиз, выполнить технический рисунок модели, сформировать цветовое решение; построить базовые конструкции по выбранной методике; разработать модельные конструкции; автоматически генерировать лекало по размерам, ростам и полнотам; автоматически формировать табель технических измерений изделия и лекал, готовить их к печати; зарисовывать раскладки в натуральную величину и в масштабе; создавать управляющую программу раскроя на автоматизированных раскройных установках отечественного и зарубежного производства. Эти действия осуществляют подсистемы программы. На рис. 15 показан интерфейс САПР «Грация», а - в таб.1 – структура САПР «Грация». 104 Рисунок 15 – САПР «Грация» Таблица 1. Подсистемы САПР “Грация” [4]. Имя подсистемы Художник Конструктор Технолог Раскладка Диспетчер Клиенты Склад Настройки Назначение Создание эскизов моделей и структурных схем соединений (узлов). Создание информационной базы для конструирования, разработка базовой и модельной конструкций, разработка лекал и конструкторской документации на все рекомендуемые размеры и роста. Создание технического описания и схем разделения труда для одно- и много фасонных процессов. Формирование базы данных на раскладку. Выполнение раскладок в ручном, автоматическом и смешанном режимах. Создание зарисовки раскладки лекал на принтере, плоттере в натуральную и уменьшенную величину. Формирование информации о создаваемых моделях. Создание информационной базы данных об индивидуальных потребителях. Формирование информации о готовой продукции. Задание информации о параметрах системы. Автоматическое выполнение и контроль геометрических и технологических операций обеспечивают методы геометрического проектирования, входящие в основу интеллектуальных возможностей системы. Данная программа удовлетворяет основные требования к современным САПР: универсальность, открытость, высокие функциональные возможности, которые позволяют применять её для решения практически любых задач проектирования без ограничений по видам изделий, материалам и специфическим особенностям технологических процессов; качество разработки, сокращающая длительность процесса, избавления от рутинной работы. С использованной этой системы напряжённый процесс становится увлекательным. 105 4.2. Проектирование одежды в программе САПР «Грация» Порядок проектирования САПР «Грации» предполагает следующие шаги. Шаг 1: Выбрать или создать свою размерную линейку под поставленную задачу. (Можно создать свою, индивидуальную систему под конкретного клиента). Итак, выбираем базовый размер и размерный ряд. Рисунок 16 – Выбранное изделие Шаг 2: Определить базовую конструкцию. Найти баланс между прибавкой и необходимыми модельными параметрами. Рисунок 17 – Базовая конструкция Шаг 3: Создать модельную конструкцию. На базовую конструкцию перенести необходимые модельные линии. Разделить конструкцию на кокетку и нижнюю часть, перенести нагрудную вытачку в нижний срез кокетки. Проделать все необходимые преобразования. Рисунок 18 – Модельная конструкция Шаг 4: Выделить детали из конструкции, оформить комплект лекал с необходимыми припусками на швы, подгибы; нанести долевые нити, засечки, символы, атрибуты; проставить размер, рост модели, детали описания, пояснения. 106 Рисунок 19 - Оформленный комплект Шаг 5: Открыть раскладку и вывести на печать. Рисунок 20 – Раскладка на печать Шаг 6: Разложить лекала на ткань, вырезать и отшить макет пробного образца; сделать примерку, оценить конструкцию визуально. Рисунок 21 – Разложенные лекала на ткани Шаг 7: Внести необходимые изменения в базовую конструкцию, при необходимости - и в модельную. 5. Обзор перспектив развития САПР одежды Основными задачами совершенствования современных систем автоматизированного проектирования швейных изделий в настоящее время являются [5]: 1) разработка сквозной интеграции и параметризации процесса проектирования швейных изделий от разработки эскиза до технологической подготовки производства на основе модульного проектирования; 2) переориентация процесса автоматизации на преобразования объектов, а не процесса проектирования; 3) разработка комплексных САПР от элементов чертежа эскиза, конструкции до элементов технологического потока при организации и передаче потоков между ними позволят пользователю управлять процессом проектирования без дополнительных затрат времени на новую проработку всех стадий; 4) разработка и организация САПР на основе единой информационной системы, интегрирующей и управляющей всеми этапами проектирования; 107 5) применение интеллектуальных технологий, в том числе и использование искусственного интеллекта экспертных систем. В настоящие время в швейной промышленности пользуются трёхмерными дититайзерами, они используются в качестве систем трёхмерного боди-сканирования. Автоматическая установка 3D-сканирования WB4 позволяет «измерить» все размерные признаки, путем сканирования поверхности тела человека в полный рост всего за 12 сек. Данные устройства автоматического измерения поверхности фигуры человека позволяют интенсифицировать процесс обмера, но в отечественной промышленности их использование весьма проблематично, в том числе и за счет высокой стоимости оборудования. Вследствие чего появляется интерес разрабатывать в настоящее время комплексы бесконтактной антропометрии на основе системы технического зрения. Рисунок 22 - 3D- bodyscan В последние годы значительно совершенствуются системы геометрического моделирования. Активно используются технологии параметризации, позволяющие пользователю вносить изменения на любом этапе проектирования. Появляются средства трехмерного поверхностного и твердотельного моделирования. Значительно улучшился интерфейс ведущих САПР швейных изделий. Выводы В статье приведён анализ проектирования одежды в дизайнерской практике и – практике САПР. Рассмотренная на примере система предлагает ряд функций, обеспечивающая быструю, эффективную работу. Данная система может быть использована обычными студентами, так и специалистами, работающими на швейной фабрике. Выполнен анализ перспектив развития САПР одежды. Литература 1. http://www.cniishp.ru/articles/use-computer-technologies.html - Использование компьютерных технологий в швейной промышленности. 2. http://www.liketka.com/moda/item/stili-odezhdy-ot-avangarda-do-klassiki-ot-granzha-do-glamura Стили одежды. 3. http://www.atlanticrus.ru/content/metody-proektirovaniya-v-dizaine-odezhdy?page=show – методический процесс. 4. Г.И. Сурикова, О.В. Сурикова, Н.И. Ахмедулова, А.В. Гниденко -Разработка Конструкций одежды в САПР ”ГРАЦИЯ” Учебное пособие. 5. http://studopedia.org/4-62060.htmlПерспективы развития Автоматизированного проектирования одежды. 6. Ещенко В.Г. САПР “Грация”: Руководство к пользованию.- Харьков: Издательство фирмы “ИНФОКОМ”, 2003.- 83с. 7. Коблякова Е.Б. и др. Конструирование одежды с элементами САПР. – М.: Легпромбытиздат, 1988. - 463с. 8. Конструктивное моделирование одежды: Учеб. пособие для вузов / А.И. Мартынова, Е.Г. Андреева. –М.: МГАЛП, 1999. – 216с. 108 9. Конструирование женской одежды: Учеб пособие /Л.И. Трутченко, А.В. Пантелеева, О.Н. Каратова и др. – Мн.: Выш.шк., 2001. –303с. 10. Компьютерные технологии конструирования швейных изделий. Разработка чертежей конструкций швейных изделий в САПР. Методические указания по курсу «САПР швейных изделий» /Сост. Г.И. Сурикова, Н.В. Китаева. – Иваново: ИГТА, 2002. -36с. Власюк А.В., Григорьев А.В. Анализ функциональных возможностей и перспектива развития САПР одежды. В статье описан термин «Одежда», основные этапы проектирования одежды в практике дизайнеров и в практике САПР. Приведён пример известной популярной САПР «Грация», описан её функционал и пошаговое проектирования изделия. Проанализированы основные перспективы развития САПР и новшества систем на данный промежуток времени. Ключевые слова: САПР одежды, САПР «Грация», проектирование, одежда, изделие, развитие. Vlasyuk AV, Grigoryev AV Analysis of the features and the prospect of the development of CAD clothing. This article describes the term "clothes", the basic stages of designing clothes designers in practice and in the practice of CAD. An example of the well-known popular CAD "Grace", describes its functionality and product design step by step. We analyzed the main perspectives of CAD development and innovation systems in a given period of time. Keywords: CAD garment CAD "Grace", design, clothing, product development. 109 УДК 004.896 Анализ функциональных возможностей и перспектив развития систем автоматизации проектирования и производства мебели С.И. Гончарук, А.В. Григорьев Донецкий национальный технический университет [email protected], [email protected] Гончарук С.И., Григорьев А.В. Анализ функциональных возможностей и перспектива развития систем автоматизации проектирования и производства мебели. В статье раскрыта тематика развития систем проектирования и управления производством мебели. Описана предметная область, специфика процесса проектирования мебели, а также особенности процессов производства мебели и виды производств. Приведены характеристики существующих программных средств. Введение Актуальность работы: В последнее время наблюдаются тенденции к росту количества мебельных предприятий в связи с улучшением покупательской способности на рынке, что в свою очередь сказывается на большом спросе на мебельную продукцию различных сегментов. В настоящее время сегменты мебели можно поделить на такие сегменты (так же указано процентное соотношение сегментов относительно других): Эконом класс (70% всей производимой мебели); Средний класс (20% всей производимой мебели); Премиум класс (10% всей производимой мебели). Потребность в мебели является одной из главных потребностей человека; при этом она характеризуется длительным сроком эксплуатации и высокой ремонтопригодностью. Таким образом, при снижении общей платежеспособности, человек может безболезненно отказаться от приобретения новых предметов мебели за счет увеличения срока эксплуатации старой. Как объект предпринимательства мебель представляет интерес в первую очередь для субъектов малого и среднего бизнеса. Наиболее часто на сегодняшний день предприниматели выбирают производство корпусной (модульной) мебели – кухонных гарнитуров, шкафов-купе и т.д. Такое производство отличается относительной технологической простотой по сравнению, например, с мягкой мебелью. На сегодняшний день в России производством мебели занимаются, по различным оценкам, от 5100 до 5800 предприятий, из которых примерно 500 – крупных и средних. Основная масса производств сосредоточена в Центральном и Приволжском федеральных округах, на долю которых приходится более половины суммарного объема производства по стране. Прогноз развития рынка мебели (2016 – 2020) таков. По оценке экспертов в 2016 году падение рынка мебели продолжится, а, начиная с 2017 года, рынок будет показывать небольшие темпы роста. К 2020 году рынок вернется на уровень 2011-2012 гг. Взяв за основу прогноз развития рынка, можно сделать вывод, что разработка новых систем автоматизации проектирования и производства мебели будет рентабельно. Цель работы: исследование существующих автоматизированных систем автоматизации проектирования и производства мебели, а также определение перспектив их развития. 1. Специфика методик проектирования мебели Мебель – разряд мобильных или интегрированных продуктов для обстановки жилых и общественных помещений и различных зон для жизни человека. Изготовление любого мебельного продукта начинается с создания чертежа (эскиза). Чертежи можно выполнять в ручную и с помощью пакетов моделирования. Процесс выполнения чертежа в ручную выглядит так: 1) Задаются условные размеры (см. рис. 1). 110 Рисунок 1 – Задание условных размеров 2) В зависимости от используемых материалов размеры изделия корректируются и дополняются другими измерениями (см. рис. 2). Рисунок 2 – Корректировка размеров 3) На чертеж наносятся фронтальные детали и их размеры и получают готовый чертеж (см. рис. 3). Рисунок 3 – Конечный чертёж Но гораздо качественнее и более быстрого результат можно добиться при помощи средств автоматизации проектирования (САПР), таких как: bCad; autoCAD; 3DS MAX; PRO100. Рассмотрим для примера функциональные возможности CAD системы bCAD. bCAD — САПР с возможностью проектирования в 2-м и 3-м измерениях, созданная компанией из России: ПроПро Группа. bCAD представляет из себя продукт для выполнения чертежей, создания моделей и визуализации. Продукт приобрел большую популярность в отрасли создания мебели, bCAD Мебель на сегодняшний день одна из лучших и часто встречаемых САПР в отрасли создания мебели на рынке стран СНГ. Характеристики bCAD[17]: 1. Плоское (2D) черчение. 2. Использование стандартов ЕСКД и произвольная настройка форматов вывода документации. 3. Произвольное трехмерное (3D) моделирование. 4. Параметрическое моделирование произвольных мебельных панелей. 5. Параметрическое моделирование профильных деталей 6. Параметрическое моделирование готовых мебельных объектов с возможность последующего произвольного редактирования. 7. Импорт 3D моделей и 2D контуров из других систем проектирования (AutoCAD, 3DMAX, SolidWorks и др.). 8. Обширные библиотеки материалов, профилей, крепежа и комплектующих с возможностью добавления ПРОИЗВОЛЬНЫХ элементов. 111 9. Автоматическое получение отчетно-производственной документации (отчеты, сметы, спецификации, чертежи деталей, карты раскроя панелей и профиля, схемы сборки, сборочные чертежи и т.д.). 10. Передача данных в системы учета и управления (ИТМ, 1С, Excel, Accesse, другие системы через форматы XML, DBF, CSV, TXT), другие системы проектирования, на станки с ЧПУ. 11. Организация работы в мебельных салонах. 12. Проектирование интерьеров помещений и торгово-выставочных павильонов. 13. Реалистичная визуализация проектов. На рис. 4 изображено проектирование мебели в программе bCad. Рисунок 4 – Проектирование мебели в программе bCad 2. Процесс производства мебели 2.1. Общая методика производства мебели. Процесс проектирования мебели, проведенный в CAD-системах, имеет естественное продолжение в системах управления ее производством. В английской нотации речь идет о CAM-системах. Для управления нынешним процессом производством мебели, подбора эффективных планов производства и их изменения, требуется узконаправленное ПО, в которых будут использоваться такие модули как: Включение заказа в обработку; Моделирование дизайна; В зависимости от типа изделия - выбор фурнитуры; Изменение сроков производства; Распределение заказов на свободные мощности. Руководители мебельных предприятий заинтересованы в программах, обладающих подобным функционалом, поэтому очень часто заключают договора с разработчиками. Создание мебельных изделий связывает 2 действия: создание корпусной мебели и создание мягкой мебели. Количество и типы производимой мебельной продукции обуславливаются предоставляемой номенклатурой. Изготовление мебели регламентируется такими ГОСТами[19]: 16371-93: Мебель. Общие технические условия. 19917-93: Мебель для сидения и лежания. Технические условия. 112 26800.4-86: Мебель для административных помещений. Функциональные размеры отделений шкафов. 19882-91: Мебель корпусная. Методы испытаний на устойчивость, прочность и деформируемость. 28136-89: Мебель корпусная настенная. Методы испытания на прочность. 28105-89: Мебель корпусная и столы. Методы испытаний выдвижных ящиков и полуящиков. 21640-91 Мебель для сидения и лежания. Мягкие элементы. Метод определения мягкости. 19120-93 Мебель для сидения и лежания. Диваны-кровати, диваны, кресла-кровати, кресла для отдыха, кушетки, тахты, скамьи, банкетки. 2.2. Варианты организации производства мебели. Существует три варианта организации производства мебели: 1) Небольшой бизнес Частный предприниматель на единой системе налогообложения. Объемы и реализация – мелкосерийное производство на заказ. На одной площади располагается склад готовых изделий, и само производство. Мебель хранится минимальный срок, после создания поступает к заказчику. Для оборудования предприятия потребуется: • ручной фрезер, • шлифовальная машинка, • торцевая электропила, • электролобзик, • шуруповерт, • электродрель, • промышленный фен, • перфоратор, • набор ручного инструмента типа, • набор режущего инструмента: фрезы, сверла, коронки, ножи,- пристрелочные пистолеты (для пружин-амортизаторов и ткани), • швейная машинка, • струбцины, стусло, измерительные приборы. Для обеспечения эффективного рабочего процесса производства необходимо 3-4 человека, из которых 2-3 изготавливают мебель, а 1 занимается работой с клиентами, замерами, проектированием. 2) Среднее производство. Для серийного производства мебели понадобиться 6-10 рабочих, а организационная форма зависит от формы сбыта: заказчики и поставщики предпочитают работать с юридическими фирмами, а налогообложение меньше и ведение учета проще для ИП. Так как такое предприятие специализируется не только на индивидуальных заказах, а и сериях (от 10 штук и больше одного вида изделия), есть смысл в приобретении полуавтоматического оборудования, которое позволит ускорить сроки выполнения заказов, и, соответственно, оборот и прибыль: форматно-растроечный станок; кромкооблицовочный станок; сверлильно-присадочный станок; станок для обработки углов; ручной кромко-фрезерный станок для снятия свесов; фрезерно-копировальный станок (для сверления отверстий под петли, замки неправильной формы; гравировки декоративных элементов на фасадах); оборудование для удаления стружки и пыли. Для полноценной работы одного раскроечного станка производительностью в 120 м2/смену потребуется не менее 500 м2 площади для размещения оборудования, хранения материалов и готовой мебели. 3) Массовое производство. Крупные фабрики, способные переработать от 1000 листов ДСП в смену, могут иметь производственные площади и более 5 000 м2. Для таких объемов целесообразно применение автоматических ЧПУ-станков – механизмов, гарантирующих минимум брака, четкость раскроя и точность отверстий, а главное – быстроту процесса. Самые большие фабрики работают по принципу полного цикла, заготавливая материалы для собственных производственных нужд, что позволяет значительно снизить себестоимость изделий. Сырье и комплектующие для производства мебели. 113 Основа для изготовления мебели зависит от её класса. Это могут быть плиты ДСП, ДВП, МДФ, фанера, мебельный щит. Качество сырья оценивается по следующим показателям: цена; твердость (для плит – послойная плотность); влагоустойчивость (склонность к разбуханию и деформациям); сколообразование; структура и цвет натуральной древесины. Фурнитура различается на конструктивную (крепления с функциональной нагрузкой) и элементы декора. К фурнитуре для изготовления мебели относят: замки и закрывающие системы; шарниры, колесики, петли, крючки, ручки, профильные планки; системы шкафов, полок, стеллажей; системы опорных элементов; фурнитуру для раздвижных дверей и откидных створок; направляющие для выдвижных ящиков; системы освещения мебели; декоративную фурнитуру; различные крепежные материалы. 2.3. Материалы для формирования элементов мягкости и обивки мягкой мебели Упругость современной мебели достигается различными способами. Для диванов и кресел используются пружинные проволоки, блоки из двухконусных, цилиндрических пружин, чередуясь со слоями прокладочного материала. Для мягких стульев и кресел – блоки или слои упругого прокладочного материала, который может быть натуральным или синтетическим. Для формирования элементов мягкости наиболее распространена синтетика и смесь синтетического материала с натуральным: эластичный поропласт полиуретановый (поролон); синтепон; ватин, ватник, ватилин – материалы из слоев синтетической и хлопчатобумажной ваты; ППУ – пенополиуретан холодного формования; пенорезина (смесь синтетического и натурального каучука); гуммированное волокно (конский волос, койра). Качество и срок эксплуатации мебели для сидения во многом зависят от плотности прокладочного материала. Так, минимальная плотность поролона для спинок – 25 кг/м3, для сидений – от 30 кг/м3, ППУ – от 25 кг/м3. Для изделий премиум класса используется вулканизированный натуральный каучук, растительные волокна, морскую траву, шерсть животных. В качестве обивочных материалов применяют: натуральные ткани на основе хлопка, шелка, льна, велюра, шерсти с малоусадочной, грязеотталкивающей и водонепроницаемой обработкой; жаккарды (гобелены) – ткани, изготовленные методом переплетения нитей с неодинаковым шагом, благодаря чему достигается высокая плотность полотна; синтетические ткани – капрон, нитрон, лавсан, шинипп; флок (флок-велюр) – синтетический ворс, который клеится на тканую основу; кожа натуральная или искусственная; искусственный мех. 2.4. Стандартные этапы производства мебели. Стандартный процесс создания мебельного изделия выглядит так: 1. Создание ДСП/ДВП; 2. Распил по размерам при помощи фрезерного станка; 3. Подача распиленной детали на поклейку кромки; 4. Присадка – подготовка и сверление соединительных отверстий и пазов; 5. Сбор корпуса с использованием ручного инструмента или фурнитур; 6. Покрытие необходимых деталей лаком; 7. Установка элементов мягкости, обивка защитными слоями и отделка кожей или тканью. 8. Финишная сборка мебели и упаковка готового изделия. 114 На рис. 5 можно увидеть стандартный процесс создания мебельного изделия. 3. Обзор функциональных возможностей конкретных CAM систем Будем выполнять анализ функциональных возможностей систем автоматизации производства мебели на примере двух наиболее распространенных систем Microsoft Dynamics NAV и MES. 3.1. Общие возможности системы Microsoft Dynamics™ NAV Microsoft Dynamics NAV - Система предоставляет компактный, отлаженный интегрированный функционал для координирования финансов, администрированием предприятия, ведением планов, промышленным изготовлением и обслуживанием, регулирования отношений с заказчиками. Отраслевое решение "ERPC. Управление мебельным бизнесом"[15] – программно-технологический комплекс, предназначенный для автоматизации мебельного бизнеса. Решение "ERPC. Управление мебельным бизнесом" разработано на платформе системы управления предприятием класса ERP Microsoft Dynamics™ NAV и ориентировано на производителей мягкой и корпусной мебели и дистрибуторов мебельной продукции, с возможностью управления как потоковым производством так и производством мебели «под заказ». За счет гибкого планирования ресурсов, и контроля выполнения работ, в режиме реального времени, система позволяет избежать простоев в производственном процессе. Возможности решения для управления мебельной промышленностью: Рисунок 5 – Стандартный процесс создания мебели. Управление продажами: Регулирование взаимоотношений с заказчиками; Контроль финансовых возможностей предприятия; Улучшение работы менеджеров компании, Отслеживание сделки; Интегрирование систем моделирования. В связи с тем, что создание мебели представляет собой отчасти творческий процесс – разнообразие выпускаемой продукции представляет собой огромное количество уникальных экземпляров, что в свою очередь сказывается в потребности создания новых дизайнов и элементов для новой мебели. На рис. 6 продемонстрирован интерфейс приема заказа. 115 Рисунок 6 – интерфейс приема заказа Благодаря модулю «Дизайн» обеспечивается возможность создания новых дизайнерских эскизов, которые в последующем запускаются в производство. Создавать дизайн мебели можно благодаря популярным интегрированным отраслевым средствам моделирования. На рис. 7 продемонстрирована интеграция с дизайнерскими системами. Рисунок 7 – интеграция с дизайнерскими системами При помощи программного блока "Производство" организовывается регистрация результатов работы и оборота денежных средств, а так же управление процессом производства. В состав основных задач входят: возможность описания технологии создания, разработка плана изготовления исходя из загруженности работников и возможном количестве выпускаемых изделий, отчетность по показателям производства, формирование документов для рабочих мест, просмотр состояния выполняемости плана по производству. Функциональные средства модуля позволяют [15]: Создавать динамические спецификации и маршруты; Анализировать емкость и загрузку производственных мощностей; Осуществлять распределение сменного задания; Контролировать цепочку выполнения производственных заказов; Осуществлять интеллектуальное перераспределение заданий между производственными мощностями; 116 Осуществлять выпуск готовой продукции с реальной единичной себестоимостью. Процесс производства мебельных изделий базируется в результате поступающих от заказчиков информации. При регистрации заказа пользователь описывает материалы и получает цену продукта.Это позволяет наиболее точно вести отчетность, рассчитывать стоимость производства и определять какую заработную плату выплачивать работникам предприятия. 3.1.2. Управление загрузкой производственных мощностей Осуществляется контроль текущей, и возможной загрузки производственных мощностей (дополнительно предоставляется возможность просмотра в графическом представлении). Это существенно минимизирует сложность определения узких мест из-за того, что посмотрев на график загрузки легко понять, когда существует необходимость в еще одной смене, объявлении сверхурочной работы или пересмотре графика. Планирование мощностей помогает определять, какой из рабочих центров наиболее подходящим образом может выполнять работу. Если операция привязана к группе рабочих центров, система оценивает весь перечень входящих в группу центров и выбирает наименее загруженный или наиболее подходящий для операции данного типа. На рис. 8 изображена процесс контроля загрузки оборудования. Рисунок 8 – контроль загрузки оборудования 3.1.3. Управление финансами и отчетность Финансовое направление Microsoft Dynamics Nav, на платформе которой базируется продукт ERPC Furniture, полностью встроен со всеми системными модулями. У пользователя существует возможность анализа результатов работы в необходимых масштабах. При анализе результатов продаж производимых продуктов пользователь может просмотреть информацию об определенном клиенте, поставке. Благодаря постоянному мониторингу работы можно с высокой точностью определять достижение бизнес - цели и правильность выбора стратегии развития предприятия. На рис. 9 изображено управление отчетностью. 117 Рисунок 9 – управление отчетностью 3.2. Общие возможности системы MES MES - специализированное ПО, направленное на управления процессом создания и контроля выпускаемых изделий в границах определенного производства. Эти системы ориентированы на управление отдельным цехом. Так же могут выполняться задачи контроля деятельности конкретной фирмы в общем целом. Среди основных задач MES выделяются [18]: 1. Активация производственных мощностей на основе детального пооперационного планирования производства. 2. Отслеживание производственных мощностей. 3. Сбор информации, связанной с производством, от: систем автоматизации производственного процесса, датчиков, оборудования, персонала, программных систем. 4. Отслеживание и контроль параметров качества. 5. Обеспечение персонала и оборудования информацией, необходимой для начала процесса производства. 6. Установление связей между персоналом и оборудованием в рамках производства. 7. Установление связей между производством и поставщиками, потребителями, инженерным отделом, отделом продаж и менеджментом. 8. Реагирование на: Требования по номенклатуре производства, Изменение компонентов, сырья и полуфабрикатов, применяемых в процессе производства, Изменение спецификации продуктов, Доступность персонала и производственных мощностей. 9. Гарантирование соответствия применимым юридическим актам, например нормам Food and Drug Administration (FDA) США. 10. Соответствие вышеперечисленным индустриальным стандартам. На рис. 10 изображено рабочее окно программы MES. 118 Рисунок 10 – рабочее окно системы MES 4. Перспективы развития систем Перспективы развития рынка ПО в данной области в первую очередь зависят от уровня развития рынка сбыта мебели, что в свою очередь зависит от покупательской способности людей. Чем выше будет показатель рынка сбыта мебели, тем больший интерес у инвестора будет вызывать успешная автоматизация предприятия. В связи с тем, что методы производства всегда совершенствуются – разработка новых модулей или изменение старых возникает всегда. К основным направлениям развития можно отнести: 1. Улучшение качества и скорости проектирования новых изделий; 2. Улучшение качества и скорости создания новых изделий; 3. Более дружественный к пользователю процесс приема заказа на предприятие и процесс доставки заказа; 4. Создание и применение более продвинутых в плане качества и затрат технологий, для управления процессом создания мебели. Выводы В статье проведен анализ существующих автоматизированных систем управления, работающих на предприятиях связанных с производством мебели. Проведен анализ предметной области. По результатам изучения предметной области на данный момент можно сделать вывод, что разработка ПО в данной области рентабельна. Определены перспективы развития программных продуктов в этой области. Литература 1) Краев В. Н. Ползунова Н. Н., Исследование систем управления. М.: Академический проект, 2004. 2) Либерзон В И, Основы управления проектами. М.: Нефтяник, 1997.PMI, Руководство к своду знаний по управлению проектами (Руководство PMBOK). M.: Институт Управления Проектами, 2004. 3) Карл И. Вигерс, Разработка требований к программному обеспечению. М.: Русская Редакция, 2004. 4) Ричард Ньютон, Управление проектами от А до Я. М.: Альпина Паблишерз, 2009. 5) Ньюэлл Майкл В., Управление проектами для профессионалов. Руководство по подготовке к сдаче сертификационного экзамена. М.: КУДИЦ-ПРЕСС, 2008. 6) David Rubinstein, "Standish Group Report: There's Less Development Chaos Today," SD Times, 1 марта 2007. 119 7) Архипенков С. (2010, Март) Лекции по управлению программными проектами. [Online]. http://www.arkhipenkov.ru/resources/sw_project_management.pdf. 8) Поллис Гари, Огастин Лиз, Лоу Крис, and Мадхар Джас, Разработка программных проектов на основе Rational Unified Process (RUP). М.: Бином-Пресс, 2005. 9) Филипп Крачтен Пер Кролл, Rational Unified Process - это легко. Руководство по RUP для практиков. М.: КУДИЦ-Образ, 2004. 10) Майкл С. В. Тернер, Основы Microsoft Solution Framework. Сп-Б.: Русская Редакция, Питер, 2008. 11) IBM. (2010, март) Шаблоны RUP для MS Word. [Online]. http://www.it4business.ru/docs/hub/rup_wd_tmpl.zip. 12) Анализ рынка мебельного производства [Online]. http://www.openbusiness.ru/biz/business/obzorrynka-proizvodstvo-mebeli/ 13) Прогноз развития рынка мебельного производства [Online]. http://www.eo.ru/research/furniture_market.htm. 14) Тонкости производства офисной мебели [Online]. http://vproizvodstvo.ru/proizvodstvennye_idei/izgotovlenie_ofisnoj_mebeli/. 15) ERPC Управление мебельным бизнесом [Online]. http://erpc.com.ua/industries/furniture.html. 16) bCad Вики [Online]. https://ru.wikipedia.org/wiki/BCAD. 17) bCad оф.сайт [Online]. http://bcad.ru. 18) MES Вики [Online]. https://ru.wikipedia.org/wiki/MES 19) Тонкости бизнес процесса изготовления мебели [Online]. http://vproizvodstvo.ru/proizvodstvennye_idei/izgotovlenie_ofisnoj_mebeli/ Гончарук С.И., Григорьев А.В. Анализ функциональных возможностей и перспектива развития систем автоматизации проектирования и производства мебели. В статье раскрыта тематика развития систем проектирования и управления производством мебели. Описана предметная область, специфика процесса проектирования мебели, а так же особенности процессов производства мебели и виды производств. Приведены характеристики существующих программных средств. Ключевые слова: автоматизированная система управления, мебель, мебельное производство, интегрированная среда моделирования. Goncharuk S., Grigoriev A. An analysis of the characteristics and prospects of development of design automation systems and furniture manufacturing. The article deals with the theme of designing and managing the production of furniture. Described the subject area, the specific process of furniture design, as well as - especially furniture production processes and products. Including characteristics of the existing software. Key words: automated control system, furniture, furniture manufacture, integrated simulation environment. 120 УДК 004.5 Анализ систем автоматизированного проектирования трубопроводов различного назначения М.В.Жусупов, Григорьев А.В. Донецкий национальный технический университет [email protected] Жусупов М.В., Григорьев А.В. Анализ систем автоматизированного проектирования трубопроводов различного назначения. В статье выполнен анализ функциональных возможностей ряда наиболее востребованных на территории СНГ систем автоматического проектирования трубопроводов различного назначения, определены особенности их структуры и основные свойства. Рассмотрены критерии для выбора лучших систем и определены перспективы их развития. Ключевые слова: сравнительный анализ, САПР, Bentley Plant,CADWorx Plant , PLANT-4D, PDMS, PDS. Введение Проектирование, строительство и эксплуатация различного рода трубопроводов (газопроводов, нефтепроводов, водопроводов и т.д.) является важной научной и практической задачей на территории стран СНГ. Т.о., задача разработки и адаптации систем автоматизации проектирования (САПР) трубопроводов различного назначения это так же важная и актуальная задача. В целом САПР трубопроводов могут быть охарактеризованы как с общих позиций эффективности САПР вообще, так и – с точки зрения специфики их применения. С точки зрения общих подходов, характеризующих САПР трубопроводов, можно сказать следующее. В настоящее время в деятельность изыскательских и проектных организаций быстро проникает компьютеризация, поднимающая проектную работу на качественно новый уровень, при котором резко повышаются темпы и качество проектирования, более обоснованно решаются многие сложные инженерные задачи, которые раньше рассматривались лишь упрощенно. Во многом это происходит благодаря использованию эффективных специализированных программ, которые могут быть как самостоятельными, так и в виде приложений к общетехническим программам. Деятельность по созданию программных продуктов и технических средств для автоматизации проектных работ имеет общее название - САПР. САПР [1] (англ. CAD, Computer-Aided Design) - программный пакет, предназначенный для проектирования (разработки) объектов производства (или строительства), а также оформления конструкторской и/или технологической документации. Компоненты многофункциональных систем САПР традиционно группируются в три основных блока CAD, САМ, САЕ. Модули блока CAD (Computer Aided Designed) предназначены в основном для выполнения графических работ, модули САМ (Computer Aided Manufacturing) - для решения задач технологической подготовки производства, модули САЕ (Computer Aided Engineering) - для инженерных расчетов, анализа и проверки проектных решений. Существует большое количество пакетов САПР разного уровня. Значительное распространение получили системы, в которых основное внимание сосредоточено на создании "открытых" (т.е. допускающих расширение) базовых графических модулей CAD, а модули для выполнения расчетных или технологических задач (соответствующие блокам САМ и САЕ) остаются для разработки пользователям или организациям, специализированным на соответствующем программировании. Такие дополнительные модули могут использоваться и самостоятельно, без CAD-систем, что очень часто практикуется в строительном проектировании. Они сами могут представлять крупные программные комплексы, для которых разрабатываются свои приложения, позволяющие решать более узкие задачи. Таким образом, САПР трубопроводов должен иметь полноценную, развитую структуру, включая CAD, САМ, САЕ – подсистемы. Целью статьи является: сравнительный анализ систем автоматизированного проектирования (САПР) трубопроводных систем, которые положительно зарекомендовали себя на территории СНГ, определение наиболее оптимального состава качеств таких систем, определение дальнейших перспектив их развития. 121 Анализ САПР Bentley Plant Система Bentley Plant включает модули разработки схем, 3D-моделирования, расчеты, генерацию чертежей, спецификаций и изометрических схем. Она интегрирована с системой управления инженерным документооборотом и архивом Bentley ProjectWise. В линейке Bentley Plant представлены 2 семейства продуктов - AutoPLANT, использующее в качестве графической платформы AutoCAD, и PlantSpace на платформе MicroStation. Эти продукты являются взаимозаменяемыми. Компания взяла курс на объединение двух линеек на основе AutoPLANT. В свою очередь, в состав линейки AutoPLANT входят также решения для разнообразных расчетов: НДСТ - AutoPIPE, гидравлических расчетов - PlantFlow, расчет на прочность узлов врезки штуцеров/патрубков сосудов и аппаратов - WinNOZL, расчет пульсаций потоков в трубопроводах PULS. Продукты AutoPIPE и AutoPLANT имеют двунаправленный интерфейс передачи данных, что ускоряет итерационный процесс «проектирование-расчет». Помимо линейки Bentley Plant Bentley Systems Inc. предлагает решения для всех задач проектирования в промышленном и гражданском строительстве - архитектурных, задач изысканий и генплана, проектирования инженерных сетей и т. д., а также задач проектного документооборота - с помощью системы управления проектными данными и инженерным документооборотом ProjectWise. Модуль Bentley ProjectWise обеспечивает возможность распределять проекты и выполнять их администрирование. Анализ САПР CADWorx Plant В программном комплексе CADWorx Plant [2] реализованы инструменты для проектирования трубопроводов, оборудования, металлоконструкций, систем отопления и вентиляции, кабельных трасс, а также динамические связи с базой данных. Исторически CADWorx развивался как графический интерфейс к известному программному продукту для расчета напряженно-деформированного состояния CAESAR II (также COADE), со временем обретя самостоятельное значение. Этим объясняется отлаженная двусторонняя связь между CADWorx и Caesar II, что позволяет в значительной мере упростить процесс создания проекта. CADWorx не имеет аналогов по легкости пополнения библиотек элементов - работа ведется на уровне редактирования текстового файла, т.е. администрирование работы над проектом сводится к минимуму и может осуществляться любым опытным пользователем. В программе реализована возможность совместной работы различных организаций над одним проектом в сети Internet. В нефтегазовой отрасли также применяется еще один продукт компании COADE - PVElite для расчета оборудования. Анализ САПР PLANT-4D Система PLANT-4D работает на основе объектно-ориентированного параметрического ядра, и включает систему коллективной работы над проектом. PLANT-4D позволяет работать с трехмерными твердотельными моделями проектируемых систем, автоматизирует разработку технологических схем, моделей трубопроводов, нестандартного оборудования, металлоконструкций. Полностью автоматически или в интерактивном режиме PLANT-4D позволяет выпускать различные технологические схемы, рабочие чертежи (планы, разрезы, узлы, монтажные изометрические чертежи с размерами и спецификациями, различные ведомости, отчеты, спецификации и многое другое). Когда приходится решать классы задач, включающих поддержку всего цикла от строительства через эксплуатацию до реконструкции проектируемого объекта, нужно рассматривать системы, изначально ориентированные не только на комплексную поддержку разделов проектирования, но и на создание и использование единой модели данных всего объекта. К таким системам на сегодняшний день можно отнести PDMS (AVEVA) и PDS (Intergraph), а также не так давно появившийся комплекс SmartPlant 3D компании Intergraph. Эти два производителя предлагают полный комплекс решений для проектирования промышленных предприятий, проектирование трубопроводных систем - лишь их часть. Анализ САПР PDMS Компания AVEVA [3] является разработчиком семейства интеллектуальных систем VANTAGE, обеспечивающих работу и контроль на всех этапах жизненного цикла предприятия: • VPE - разработка технологической части проекта, электрики, КИПиА. • VPD (PDMS) - разработка детального проекта, выпуска проектной документации, обслуживания при эксплуатации промышленного объекта; • VPRM - управление логистикой, контроль закупок, поставок и складирования, контроль за монтажными и пуско-наладочными работами; 122 • VNET - интеграция и управление всеми проектными данными, на основе современной Webпортальной технологии. Все системы семейства VANTAGE полностью интегрированы между собой и имеют интерфейсы с ведущими системами 2-х и 3-х мерного проектирования, расчетными системами, системами документооборота, управления проектами, системами ERP. Так же системы семейства VANTAGE позволяют обмениваться информацией с любыми внешними базами данных. VPD (PDMS) - многопользовательская среда для проектирования с централизованным хранением данных на основе собственной объектно-ориентированной базы - DABACON. PDMS позволяет осуществлять совместную работу проектного коллектива в режиме реального времени с проверкой на коллизии, что исключает любые неувязки в проекте. Необходимо заметить, что система не имеет ограничений на размер и детальность проработки проекта. VPD (PDMS) содержит следующий набор интегрированных инженерных приложений: • проектирование оборудования, в том числе нестандартного; • проектирование трубопроводов; • проектирование металлоконструкций, узлов металлоконструкций; • проектирование лестниц, стремянок, площадок обслуживания оборудования; • проектирование архитектурной части: панелей и плит, стен и полов, окон, дверей, узлов; • проектирование опор и подвесок; • проектирования систем вентиляции и кондиционирования; • проектирование кабельных конструкций. Проектная документация выдается автоматически непосредственно по данным 3D модели в соответствии нормами оформления. Встроенная функция контроля ревизий позволяет отслеживать все изменения между выпусками чертежей. Система поставляется c базами данных по деталям трубопроводов, металлоконструкциям, элементам зданий, отопления и вентиляции, опор и подвесок, выполненных по ГОСТ, а так же по международным стандартам, что позволяет выполнять как российские, так и международные проекты. Базы данных могут создаваться и редактироваться с помощью удобного графического интерфейса, использование которого не требует навыков программирования. Для компаний, которые отдают части проекта на субподряд или участвуют в совместных проектах, компания AVEVA разработала PDMS Global для распределенного проектирования, которое позволяет эффективно вести и контролировать проекты, выполняемые одновременно силами нескольких проектных организаций. Анализ САПР PDS и SmartPlant 3D Компания Intergraph [4] предлагает не только комплексную, но и полностью интегрированную технологию проектирования, управления поставками на этапе строительства и дальнейшего информационного сопровождения промышленных предприятий. PDS - мощная система, охватывающая основные аспекты проектирования промышленных предприятий, для которой не существует пределов на объем выполняемых проектов. Она изначально была рассчитана на поддержку работы команды специалистов различного профиля над проектами крупных электростанций или заводов. САПР SmartPlant, способная обеспечить проектирование трубопроводов, построен на основе PDS. Комплексное решение SmartPlant включает в себя две основные составляющие: 1) набор специализированных средств проектирования, каждое из которых, по мнению разработчиков, входит в ряд наиболее передовых в своем классе. • Система разработки функционально-технологических схем SmartPlant P&ID. • Система проектирования КИПиА SmartPlant Instrumentation. • Система проектирования электроснабжения SmartPlant Electrical. • Система трехмерного проектирования SmartPlant 3D • Система комплексной трехмерной визуализации SmartPlant Review. • Система управления материально-техническим обеспечением строительства MARIAN. • Системы от других разработчиков ПО (компании Aspentech, в частности). 2) SmartPlant Foundation - единая система управления всей технической информацией на протяжении всего жизненного цикла объекта. Эта система управляет как документами, так и технической информацией и в то же время является платформой, интегрирующей различные САПР и системы класса ERP. SmartPlant 3D вобрала в себя наиболее интересные и перспективные наработки из системы PDS и из других систем трехмерного проектирования. Система оперирует "умными" объектами, которые зависят друг от друга и автоматически меняются при изменении других объектов. Вся выходная документация выдается в автоматическом режиме, включая не только изометрички и отчеты, но и монтажные чертежи с автоматически расставленными размерами и обозначениями. 123 Выводы При определении границ использования той или иной САПР необходимо учитывать особенности объектов проектирования и ведения проектных работ на предприятии. Потребителями могут быть как проектные организации, так и ПКО (ПКБ) заводов. Проектные организации чаще заняты проектированием объектов «с нуля» и крупных промышленных объектов целиком, тогда как в рамках заводов ведутся, в основном, работы по реконструкции существующих систем или проектирование отдельных установок. Поэтому целевыми нишами продуктов высшего уровня PDMS, PDS и SmartPlant 3D в большей степени являются проектные институты. Что касается выбора по техническим особенностям продуктов, удобству интерфейса, соответствию конкретным задачам предприятия и т. д., то такие вопросы решают технические специалисты организации после знакомства с работой продуктов. Немаловажным критерием является стоимость программного продукта. Наиболее доступными являются модули семейства CADWorx, а наиболее дорогостоящими - системы компаний AVEVA и Intergraph, что компенсируется наибольшими функциональными возможностями. Помимо стоимости самого продукта, необходимо учитывать также стоимость необходимого программного обеспечения - графической платформы, СУБД, а также затраты, входящие в стоимость владения продуктом - обучение, обновление лицензий, техническая поддержка и т.д. Если продукт не имеет собственной графической платформы и встроенной СУБД, на их приобретение потребуются дополнительные затраты. Все системы среднего уровня - Bentley Plant, CADWorx и Plant-4D используют стандартные СУБД Oracle, MS SQL Server, MS Access. Кроме того, в Bentley Plant может использоваться MSDE (ядро системы MS SQL Server), что не требует оплаты дополнительных лицензий для СУБД. PDS и SmartPlant 3D используют СУБД Oracle или MS SQL Server. А вот компания AVEVA пошла по пути разработки и использования собственной объектноориентированной базы данных DABACON. Одной из важнейших характеристик программных продуктов является, также, возможность обмена данными с другими САПР. Большинство представленных продуктов имеют модульную структуру, что позволяет потребителю формировать индивидуальные рабочие места под конкретные задачи. Среди задач, решаемых при проектировании трубопроводных систем, типовыми являются: • создание технологических схем; • расстановка оборудования; • проектирование трубопроводов; • создание изометрических чертежей • проектирование в части КИПиА (в том числе проектирование кабельных лотков); • создание металлоконструкций (лестницы, площадки, опоры, подвески, и т.д.). Кроме того, при 3D-проектировании появляются возможности для автоматической проверки проекта на возможные пересечения и его визуализации. Поэтому в число стандартных задач включены: • проверка проекта на коллизии; • визуализация проекта (в том числе «облет» объекта и создание демонстрационных роликов). В качестве важных признаков соответствующих модулей выделены следующие моменты: 1) Язык интерфейса. Так, наиболее мощные возможности по проектированию дают системы PDMS, PDS и SmartPlant 3D, но у них отсутствует русифицированный интерфейс. 2) Графическая платформа. Тип платформы, на которой работают системы, определяет возможности организации единой среды проектирования и работы предприятия со смежными организациями. 3) Обучение и его минимальная длительность. Для качественного внедрения САПР важны обучение и техническая поддержка. Литература 1. Малюх Владимир Введение в современные САПР; ДМК Пресс - Москва, 2010. - 192 c. 2 Малюх Владимир Введение в современные САПР; ДМК Пресс - Москва, 2012. - 192 c. 3. Райан Д. Инженерная графика трубопровод в САПР; Мир - Москва, 2012. - 391 c. 4 Судзиловский В. Ю. Моделирование трубопроводов в САПР; Книжный клуб 36.6 - , 2015. - 270 c. Zhusupov M.V., Grigoriev A.V. Analysis of automatic design of piping systems for various purposes. This article gives an analysis of the functionality of some of the most sought-after in the CIS automatic design of piping systems for various purposes, defined the characteristics of their structure and basic properties. We consider the criteria for selecting the best systems and identified the prospects of their development. Keywords: comparative analysis, CAD, Bentley Plant, CADWorx Plant, PLANT-4D, PDMS, PDS. 124 УДК 004.5 Исследование методов разработки графических редакторов в CADсистемах на примере САПР трубопроводов И.О. Зимонин, А.В. Григорьев Донецкий национальный технический университет [email protected] Зимонин И.О., Григорьев А.В. Исследование методов разработки графических редакторов в CAD-системах на примере САПР трубопроводов. Основы и принципы создания. Состав и структура. Анализ существующих САПР систем. Описание ObjectARX SDK и JavaScript API. Преимущества и недостатки использования данного подхода в разработке САПР трубопроводов. Введение В настоящее время идёт активное развитие конкурентоспособных систем автоматизированного проектирования [1], целью которых является сокращение трудоёмкости и сроков производства на этапах планирования и проектирования, вследствие этого сокращение себестоимости и повышение качества результатов. Поэтому в сфере САПР постоянно вводятся новые технологии для расширения возможностей существующих и разработки новых систем и подсистем автоматизированного проектирования, что даёт существенный толчок к разработке качественно новых методов разработки САПР, анализируя уже существующие. Ранее авторами была поставлена задача построения современного САПР трубопроводов и определены инструментальные средства для разработки. Для разработки собственной подсистемы автоматизированного проектирования трубопроводов были выбраны технологии ObjectARX SDK и JavaScript API. Целью предлагаемой статьи есть полноценное и всестороннее обоснование данного выбора инструментальных средств. 1. Основные вопросы, подлежащие решению Для качественной разработки системы или подсистемы автоматизированного проектирования необходимо: - проанализировать принципы создания, состав и структуру САПР; - проанализировать существующие программные продукты; - выявить стратегии дальнейшей разработки оптимального комплекса методов построения CADсистемы в САПР трубопроводов - выполнить оценку эффективности выбранного комплекса; - выполнить обоснование выбранных методов и технологий разработки актуальной современной системы. 2. Общие сведения и принципы создания САПР В первую очередь необходимо определиться, что такое проектирование [2]. Под проектированием подразумевается процесс создания некоторого описания для построения модели ещё не существующего объекта в определённых условиях на основе первичного описания этого объекта. Если этот процесс осуществляется пользователем при взаимодействии с компьютером, то он называется автоматизированным. Следовательно, САПР является комплексом средств для автоматизации проектирования, взаимосвязанных с пользователями. Для процесса проектирования существует семь основных стадий [3]: 1) Предпроектные исследования; 2) Техническое задание; 3) Эскизный проект; 4) Технический проект; 5) Рабочий проект; 125 6) Изготовление, отладка, испытание; 7) Ввод в эксплуатацию. Первая стадия служит для исследования потребностей целевой аудитории пользователей данной системы, предмет автоматизации, составляется отчёт о результатах исследований, в котором также производится анализ существующих отечественных и зарубежных аналогов. На второй стадии пишется техническое задание на разработку САПР, в котором формируются цели, обосновывается оптимальный вариант системы проектирования, указываются сроки, исполнители и этапы создания. Последующие стадии относятся к внутреннему проектированию. На третьей стадии разрабатываются принципиальные решения по созданию САПР. На четвертой стадии разрабатываются и утверждаются окончательные решения по созданию САПР и формам проектной документации. Пятая стадия подразумевает создание документации по САПР в целом и её подсистемам в частности. На шестой стадии предполагается изготовление, отладка и испытание компонентов САПР, а также различных вспомогательных инструментов (например, для стыковки периферийного оборудования и т.п.). На заключительной стадии осуществляется сдача проекта в промышленную эксплуатацию, обучение персонала, комплексная отладка САПР, проведение приёмочных испытаний. От общих сведений о проектировании перейдём к принципам создания системы автоматизированного проектирования. В технической литературе обычно выделяют 4 принципа создания САПР: 1) Системного единства; 2) Совместимости; 3) Типизации; 4) Развития. Первый принцип отвечает за целостность системы и иерархию взаимодействия элементов проектирования. Второй принцип обеспечивает функционирование составных частей САПР и их взаимодействие. Третий принцип служит для унификации повторяющихся элементов САПР, которые имеют перспективу многократного применения. Последний принцип обеспечивает расширяемость и обновляемость системы, а также взаимодействие с другими системами различного назначения. 3. Состав и структура Системы автоматизированного проектирования состоят из подсистем, в которых при помощи различных технологических средств выполняется решение задач в определённой последовательности. Каждая подсистема основана на различных взаимосвязанных средствах автоматизации, которые можно условно разделить на семь типов или, как их называют, видов обеспечения САПР: 1) Математическое обеспечение; 2) Программное обеспечение; 3) Информационное обеспечение; 4) Техническое обеспечение; 5) Лингвистическое обеспечение; 6) Методическое обеспечение; 7) Организационное обеспечение; Первый вид обеспечения базируется на алгоритмах, которые используются в разработке ПО САПР. Они зависят от особенностей объектов проектирования и могут быть как узконаправленными, так и инвариантными. Второй вид имеет два подвида: общесистемное ПО и специальное. К первому подвиду относятся операционные системы, а специфическое программное обеспечение (к примеру, оценка характеристик почвы и т.п.) – к специальному. Третий вид представляет собой совокупность данных, которые используются для проектирования. Это могут быть промежуточные решения, параметры изделия и т.д. К четвертому виду относятся не только компьютеры, а вообще все устройства, которые необходимы для процесса проектирования. Лингвистическое обеспечение (пятый вид) основывается на проблемно-ориентированных языках, предназначенных для описания процедур автоматизированного проектирования. Под методическим обеспечением (шестой вид) подразумевается набор документов об эксплуатации системы. Документы, касающиеся разработки, сюда не входят. Последний вид обеспечения представляет собой комплекс документов, касающихся структуры отделов, эксплуатирующих САПР, взаимодействие эти отделов между собой. В набор организационных документов входят приказы, расписания, квалификационные требования и т.д. 126 4. Анализ существующих САПР-систем В это разделе будут описаны функциональные возможности следующих систем [4]: 1) ADEM; 2) T-Flex; 3) Компас 3D; 4) AutoCAD; 5) Autodesk Inventor; 6) CATIA; 7) SolidWorks. 4.1. Анализ САПР ADEM Рисунок 1 – Интерфейс ADEM Отечественная интегрированная CAD/CAM/CAE система ADEM (рис.1) [5] предназначена для автоматизации конструкторско-технологической подготовки производства. Это единый программный комплекс, в состав которого входят инструменты для автоматизации: проектирования, конструирования и моделирования изделий; оформления чертежно-конструкторской документации в соответствии с требованиями ЕСКД; проектирование техпроцессов и оформления технологической документации в соответствии с требованиями ЕСТД; программирования оборудования с ЧПУ; управления архивами и проектами; реновации накопленных знаний (бумажных чертежей, перфолент). Можно сказать, что ADEM эквивалентен комплексу из шести профессиональных специализированных систем, которые имеют единые математическое ядро и инфраструктуру. Еще одной важной компонентой системы является более чем тридцатилетний опыт автоматизации отечественных и зарубежных машиностроительных предприятий, который в сплаве с современными информационными технологиями определяет высокую надежность и эффективность системы. В части проектирования и конструирования система ADEM имеет самый современный инструментарий объемного и плоского гибридного моделирования. Система содержит обширные библиотеки отечественных и зарубежных стандартов оформления конструкторской документации и стандартных изделий. Благодаря постоянному сотрудничеству с передовыми производителями и поставщиками станков и инструментов, такими как: HANDTMANN, TRUMPF, KUKA Robot Group, УМК «ПУМОРИ-СИЗ», СФТехнологии, HAIMER, ISCAR, SANDVIK, Скиф-М, Rost Group, и др. в системе постоянно совершенствуются методы подготовки ЧПУ программ для самого современного отечественного и зарубежного оборудования. ADEM позволяет программировать следующие технологии обработки: фрезерные 2-5x, в том числе и многопозиционные; токарные, в том числе и многошпиндельные и многотуретные; лазерные 2-5x; электроэрозионные 2-4x; 127 листоштамповку и вибровысечку; а также их комбинации. Для автоматизации проектирования технологических процессов система ADEM поддерживает практически все существующие виды технологий, включая технологии механообработки, сборки, сварки, термической обработки и прочие. При этом выпуск технологической документации может осуществляться как на стандартных картах и формах (ГОСТ), так и на картах и формах предприятия (СТП). В качестве важного дополнения выступают подсистемы нормирования и оснащения, а также библиотеки материалов, оборудования и инструментов. Особую роль интегрированная система ADEM играет для подготовки технических кадров, так как охватывает все важнейшие этапы конструкторско-технологической подготовки производства от первого эскиза до выпуска детали на станке. Опыт внедрения системы в авиастроении, аэрокосмической, приборостроительной и атомной промышленности показывает высокую эффективность использования оборудования, кратчайшие сроки его запуска и быструю окупаемость уже с первых дней эксплуатации системы ADEM. 4.2. Анализ САПР T-Flex Рисунок 2 – Интерфейс T-Flex T-Flex (рис.2) - это комплекс программных средств автоматизации, позволяющих охватить все этапы конструкторско-технологической подготовки производства. Все системы, входящие в комплекс, полностью интегрированы между собой. Комплекс содержит передовые российские разработки в соответствующих областях автоматизированного проектирования, которые учитывают специфику российского производства (стандарты, технические условия, оборудования и т. д.). Каждая из систем может работать в комплексе, в любой комбинации или в автономном режиме, что позволяет гибко и поэтапно решать задачи автоматизации подготовки производства любого предприятия. Важным фактором является стоимость комплекса. При одинаковой функциональности стоимость российских систем значительно ниже, чем западных. Решает задачи: автоматизация выпуска конструкторско-технологической документации; создание твердотельных моделей деталей и сборок; моделирование динамического поведения сборок; подготовка управляющих программ для станков ЧПУ; проектирование штампов, пресс-форм, режущего инструмента и приспособлений; расчет и построение оптимальных схем раскроя деталей на листе; автоматизация задач технического документооборота, управление проектами и ведение состава изделий. 128 4.3. Анализ САПР Компас 3D Рисунок 3 – Интерфейс Компас 3D Основная задача, решаемая системой КОМПАС-3D (рис.3) - моделирование изделий с целью существенного сокращения периода проектирования и скорейшего их запуска в производство. Эти цели достигаются благодаря возможностям: быстрого получения конструкторской и технологической документации, необходимой для выпуска изделий (сборочных чертежей, спецификаций, деталировок и т.д.); передачи геометрии изделий в расчетные пакеты; передачи геометрии в пакеты разработки управляющих программ для оборудования с ЧПУ; создания дополнительных изображений изделий (например, для составления каталогов, создания иллюстраций к технической документации и т.д.). Основные компоненты КОМПАС-3D - собственно система трехмерного твердотельного моделирования, чертежно-графический редактор и модуль проектирования спецификаций. Система трехмерного твердотельного моделирования предназначена для создания трехмерных ассоциативных моделей отдельных деталей и сборочных единиц, содержащих как оригинальные, так и стандартизованные конструктивные элементы. Параметрическая технология позволяет быстро получать модели типовых изделий на основе однажды спроектированного прототипа. Многочисленные сервисные функции облегчают решение вспомогательных задач проектирования и обслуживания производства. 4.4. Анализ САПР AutoCAD Рисунок 4 – Интерфейс AutoCAD AutoCAD (рис.4) [6] — двух- и трехмерная система автоматизированного проектирования, разработанная компанией Autodesk. Программа включает в себя полный набор средств, обеспечивающих комплексное трёхмерное моделирование, в том числе работу с произвольными формами, создание и редактирование 3D-моделей тел и поверхностей, улучшенную 3D-навигацию и эффективные средства выпуска рабочей документации, реализована поддержка параметрического черчения. Ниже описаны некоторые функциональные возможности современной версии: Инструменты работы с произвольными формами позволяют создавать и анализировать сложные трехмерные объекты. Их формирование и изменение осуществляются простым перетаскиванием поверхностей, граней и вершин. Трехмерная печать. Можно создавать физические макеты проектов через специализированные службы 3D-печати или персональный 3D-принтер. Использование динамических блоков позволяет создавать повторяющиеся элементы с изменяемыми параметрами без необходимости перечерчивать их заново или работать с библиотекой элементов. 129 Функция масштабирования аннотативных объектов на видовых экранах или в пространстве модели. Запись операций позволяет формировать последовательности команд даже без опыта программирования. Записываемые операции, команды и значения ввода регистрируются и отображаются в отдельном окне в дереве операций. После остановки записи можно сохранить команды и значения в файле макроса операций с целью последующего воспроизведения. При коллективной работе макросы могут быть доступны всем. Диспетчер подшивок организует листы чертежей, упрощает публикацию, автоматически создает виды, передает данные из подшивок в основные надписи и штемпели и выполняет задания таким образом, чтобы вся нужная информация была в одном месте. Инструменты упрощенной трехмерной навигации: «видовой куб» позволяет переключаться между стандартными и изометрическими видами — как предварительно заданными, так и из выбранной пользователем точки; «штурвал» объединяет в одном интерфейсе несколько различных инструментов навигации и предоставляет быстрый доступ к командам вращения по орбите, панорамирования, центрирования и зумирования. Инструмент «аниматор движения» предоставляет доступ к именованным видам, сохраненным в текущем чертеже и организованным в категории анимированных последовательностей. Его можно применять как при создании презентации проекта (анимированные ролики), так и для навигации. Интерфейс пользователя поддерживает возможность настройки под потребности конкретной отрасли. Изменяются установки по умолчанию для различных функциональных возможностей AutoCAD, включая шаблоны чертежей, содержимое инструментальных палитр, рабочее пространство. 4.5. Анализ САПР Autodesk Inventor Рисунок 5 – Интерфейс Autodesk Inventor Рассмотренный ниже пакет инженерного моделирования твердотельных машиностроительных изделий Inventor позволяет свободно работать как с плоскими, так и с пространственными моделями. Возможность работать и с плоскими, и с пространственными моделями – вот качество, выгодно отличающее Inventor (рис.5) от прочих САПР. Переход от плоской модели к трёхмерной возможен на любой стадии разработки. Inventor решает задачи твердотельного моделирования деталей, сборок, выпуска конструкторской документации – причем с его помощью эти задачи решаются гораздо быстрее и удобнее. Основное назначение Inventor – предоставить пользователям инструментарий, максимально отвечающий их требованиям, создать условия для высокопроизводительной работы, гарантировать возможность создания сложных форм, обеспечить соответствие реальным требованиям рынка в области 2D/3D-проектирования. Инструментальные средства Inventor обеспечивают полный цикл конструирования и создания конструкторской документации К преимуществам можно отнести: адаптивное конструирование, которое позволяет инженерам машиностроительного профиля проектировать естественным для себя образом, именно так, как они привыкли думать; адаптивная компоновка; встроенный конструктор элементов; системы поддержки и сопряжения процесса конструирования; пакет легок в освоении и имеет встроенные средства мультимедийной помощи. Интерфейс включает в себя проектирование на уровне эскиз-объект, систему обучения и помощи, включающую в себя интерактивные видеовставки; возможность проектирования сверху вниз (от проектирования сборочного узла до проектирования деталей, которые в него входят), или проектирование снизу вверх, проектируя по одной детали в каждый момент времени. Конструктор может использовать одновременно уже спроектированные 130 детали и схематичные зависимости в трёхмерном пространстве, чтобы можно было заранее увидеть, как всё будет работать до разработки конечной версии взаимосвязей деталей; при моделировании сверху вниз (от концептуального дизайна к проработке конечного изделия) имеется возможность зеркального отражения и размножения массивами базовых тел и рабочих элементов (плоскости, оси и точки) – с тем, чтобы в дальнейшем использовать их при создании реальной модели изделия; обладает инструментом адаптивных сборок. При работе с крупными сборками применяется адаптивная технология подкачки данных; всё это происходит автоматически, без указания деталей в сборке для их обновления после редактирования. Пакет инженерного моделирования Inventor имеет удобный пользовательский интерфейс, позволяющий работать на интуитивном уровне, используя имеющиеся на экране графические пиктограммы и подсказки, выводимые программой. Стандарты интерфейса, используемые в Inventor, аналогичны стандартам Microsoft Windows. Inventor позволяет работать и с плоскими, и с пространственными моделями. Переход от плоской модели к трёхмерной возможен на любой стадии разработки. Также в любой момент возможен возврат к плоской модели, её редактирование и сохранение. При этом происходит автоматическая перестройка трёхмерной модели. Inventor обеспечивает создание сложных форм с помощью понятной и удобной инструментальной палитры, а также лёгкость сборки деталей. 4.6. Анализ САПР CATIA Рисунок 6 – Интерфейс CATIA Система CATIA (Computer Aided Three-dimensional Interactive Application) (рис.6) - одна из самых распространенных САПР высокого уровня. Это комплексная система автоматизированного проектирования (CAD), технологической подготовки производства (CAM) и инженерного анализа (САЕ), включающая в себя передовой инструментарий трёхмерного моделирования, подсистемы программной имитации сложных технологических процессов, развитые средства анализа и единую базу данных текстовой и графической информации. Система позволяет эффективно решать все задачи технической подготовки производства - от внешнего (концептуального) проектирования до выпуска чертежей, спецификаций, монтажных схем и управляющих программ для станков с ЧПУ. Основные возможности системы CATIA: функции работы с поверхностями; возможность трассировки внутренней проводки, трассировки систем; совместное проектирование (если участвует более 1 разработчика); продуманная система отображения структуры сборки; подготовку к стадии быстрого прототипирования, поддерживается конвертация в STL; имеется система проектирования деталей, гнутых из листового металла возможность кинематического анализа механизмов; имеется возможность эргономического анализа, как позы, так и движения, контроль поля зрения, зон досягаемости, усилий управления; продуманный и достаточно удобный интерфейс. 131 4.7. Анализ САПР SolidWorks Рисунок 7 – Интерфейс SolidWorks SolidWorks (рис.7) – система автоматизированного проектирования, инженерного анализа и подготовки производства изделий любой сложности и назначения. Она представляет собой инструментальную среду, предназначенную для автоматизации проектирования сложных изделий в машиностроении и в других областях промышленности. SolidWorks является системой гибридного (твердотельного и поверхностного) параметрического моделирования, она предназначена для проектирования деталей и сборок в трёхмерном пространстве (3-D проектирования), а также для оформления конструкторской документации. Система относится к САПР "среднего класса". SolidWorks разработан для работы на персональных компьютерах в системе Microsoft Windows. Он имеет стандартный графический пользовательский интерфейс Windows, максимально использует все преимущества системы Microsoft Windows, такие как контекстные меню, режим copy-and-paste, режим drag-and-drop, быстрый просмотр, поиск и открытие файлов с помощью проводника, возможность "отката" и др. SolidWorks эффективно взаимодействует с Windows-приложениями, как Excel, Word и др. Очевидными достоинствами системы являются ее полная русификация и поддержка ЕСКД. В рассматриваемой системе поддерживаются все основные стандарты представления и обмена данными. В состав базового пакета SolidWorks входит более 20 трансляторов для экспорта и импорта. 4.8. Итоги сравнения САПР-систем Проанализировав функциональные возможности представленных систем автоматизированного проектирования можно сделать вывод, что все они поддерживают проектирование как в 2D, так и в 3D пространствах с небольшим расхождением по функционалу. Однако особо крупные комплексные решения поддерживают анимацию (AutoCAD), узкоспециализированное проектирование (ADEM), совместное проектирование (CATIA) и другие возможности. На основе полученных данных для создания САПР трубопроводов было решено использовать современные технологии разработки ObjectARX SDK и JavaScript API на платформе AutoCAD, которая предоставляет основные возможности работы с объектами в пространстве, а также их сохранение и загрузку. 5. ObjectARX SDK и JavaScript API Среда программирования ObjectARX используется для адаптации и расширения функциональных возможностей AutoCAD и продуктов на его основе. Она обеспечивает непосредственный доступ к структурам базы данных AutoCAD, графической системе и определениям встроенных команд. С помощью объектноориентированных интерфейсов программирования на языке C++ разработчики могут создавать приложения для AutoCAD и других продуктов, входящих в это семейство – например, AutoCAD Architecture, AutoCAD Mechanical и AutoCAD Civil3D [7]. ARX-приложения могут напрямую обращаться к базе данных рисунка и геометрическому ядру, позволяет создавать собственные команды, аналогичные стандартным командам AutoCAD. Впервые пакет ObjectARX был реализован для AutoCAD R13. Что касается JavaScript API – данный программный интерфейс был добавлен в AutoCAD относительно недавно (AutoCAD 2014), поэтому является интересной темой для рассмотрения. Данный интерфейс был добавлен целенаправленно для того, что позволить пользователям [8]: 1) Управлять пользовательским интерфейсом, такой как запрос пользовательского ввода и показ временной; 2) Управлять текущим видом: зумирование, панорамирование, переключение визуальных стилей, и т.д. 3) Выполнять реализацию диалогов пользовательского интерфейса с помощью HMTL5, которые подключаются к AutoCAD с помощью JavaScript. Таким образом, JavaScript является «связующим интернет-языком», который позволяет ориентироваться 132 на web-технологии. Помимо этого, JavaScript API поддерживает работу с довольно крупными графическими библиотеками, написанными на JS (например, Tree.js), а значит, уменьшает порог вхождения в разработку различных подсистем в AutoCAD для web-разработчиков. Кроме того, JavaScript API и ObjectARX SDK могут обмениваться информацией и управлять друг другом, что позволяет при помощи скрипт-языка получать доступ к базе данных рисунков и структурам БД. Из недостатков можно отметить, что JavaScript API может иметь небольшие отклонения в работе некоторых не основных функций поскольку является достаточно «молодой» технологией. ObjectARX SDK в свою очередь проверен годами, однако программирование на языке C++ подразумевает наличие уверенных знаний у разработчика как самого языка программирования, так и алгоритмизации при работе с 2D и 3D пространствами [9]. 6. Преимущества и недостатки использования данного подхода в разработке САПР трубопроводов При разработке САПР трубопроводов планируется использовать JavaScript API для разработки гибкого удобного интерфейса, т.к. палитры AutoCad при помощи этого нововведения поддерживают HTML5 разметку со стилями[10], которая является очень удобным инструментом для проектирования и реализации пользовательского интерфейса и последующей связи его с командами AutoCAD через ObjectARX. Данный подход обеспечит высокую скорость работы алгоритмов с объектами сцены, т.к. язык C++ и JavaScript оптимизированы достаточно хорошо, а также позволит системе быть переносимой, расширяемой и совместимой с другими решениями на этой платформе. Вывод В данной статье были описаны основные принципы, состав и структура систем автоматизированного проектирования, а также проанализированы существующие программные продукты и определена стратегия разработки оптимального комплекса методов построения CAD-системы САПР трубопроводов. По предварительным оценкам возможностей технологий ObjectARX SDK, JavaScript API, их преимуществ и недостатков, а также самого ядра платформы AutoCAD, расширением к которому будет являться данная система, можно сказать, что данная разработка будет востребованной, актуальной и современной. Литература Программы T-FLEX — комплексная автоматизация в современных условиях [Электронный ресурс] Режим доступа: http://www.tflex.ru/about/publications/detail/index.php?ID=1187. 2. Понятие САПР [Электронный ресурс] - Режим доступа: http://life-prog.ru/1_10018_ponyatie-sapr.html 3. Промышленные САПР [Электронный ресурс] - Режим доступа: http://www.studfiles.ru/preview/987763/. 4. Анализ CAD/CAM/CAE систем [Электронный ресурс] Режим доступа: http://icvt.tubryansk.ru/index.php?option=com_content&view=article&id=46:-cadcamcae-&catid=11:-5-&Itemid=31 5. ADEM – система автоматизации конструкторско-технологической подготовки производства [Электронный ресурс]: http://pro-spo.ru/-cad-cam-windows/789-adem. 6. AutoCAD [Электронный ресурс] - Режим доступа: https://ru.wikipedia.org/wiki/AutoCAD. 7. Разработка приложений для AutoCAD [Электронный ресурс] Режим доступа: http://www.autodesk.ru/adsk/servlet/index%3Fid%3D22740301%26siteID%3D871736. 8. Getting Started with JavaScript API on AutoCAD 2014 [Электронный ресурс] - Режим доступа: http://adndevblog.typepad.com/autocad/2013/04/getting-started-with-javascript-api-on-autocad-2014.html 9. AutoCAD 2014 для разработчиков [Электронный ресурс] - Режим доступа: http://adn-cis.org/autocad-2014dlya-razrabotchikov.html. 10. Connect AutoCAD to the Web with HTML5 and JavaScript [Электронный ресурс] - Режим доступа: http://au.autodesk.com/au-online/classes-on-demand/class-catalog/2014/autocad/sd5009. 1. Zimonin I.О., Grigoriev A.V. Researching methods for developing graphical editors in the example of Pipeline’s CAD-systems. Fundamentals and principles of development. The composition and structure. Analysis of existing CAD systems. ObjectARX SDK and JavaScript API description. Advantages and disadvantages of using this approach in the development of CAD pipelines. Keywords: article, CAD, ObjectARX, JavaScript, graphics, pipelines. 133 УДК 004.5 Анализ назначения и функциональных возможностей современных роботов Коваленко Г.Р. Григорьев А. В. Донецкий национально технический университет [email protected] Коваленко Г.Р., Григорьев А.В. Анализ функциональных возможностей современных роботов. В статье представлены промежуточные результаты анализа современных методик проектирования роботов различного назначения. Для чего выполнено исследование темы роботостроения, исходя из различных источников. Для чего: рассмотрена существующая классификация, основные компоненты, типы, способы перемещения роботов; проанализированы существующие системы управления роботами; рассмотрены средства и методы работы с роботами в системах автоматизированного проектирования. Ключевые слова: робот, классификация, САПР, системы управления, типы. Введение Актуальность работы: Роботы – это часть нашей жизни, каждый день мы пользуемся ими. С развитием науки, роботы все больше заменяют человека. Робот - автоматическое устройство, созданное по принципу живого организма, предназначенное для осуществления производственных и других операций, которое действует по заранее заложенной программе и получает информацию о внешнем мире от датчиков, робот самостоятельно осуществляет производственные и иные операции, обычно выполняемые человеком. При этом робот может как иметь связь с оператором (получать от него команды), так и действовать автономно. Внешний вид и конструкция современных роботов могут быть весьма разнообразными. Слово «робот» было придумано чешским писателем Карелом Чапеком и его братом Йозефом [1]. Цель работы: Исследовать тему роботостроения, исходя из различных источников. Для чего: - Рассмотреть существующую классификацию, основные компоненты, типы, способы перемещения роботов; - Проанализировать существующие системы управления роботами; - Рассмотреть средства и методы работы с роботами в системах автоматизированного проектирования. 1. Классификация роботов Роботы делятся на два класса — манипуляционные и мобильные роботы. 1) Манипуляционный робот – это машина, установленная на подвижном или не подвижном основании (см. рис. 1). Она состоит из: 1) основания, 2) манипулятора, 3) рабочего органа, 4) устройства программного управления [2]. Рисунок 1 - Манипуляционные роботы 134 Представим человекоподобного робота, который сидит на стуле и закручивает болты одной рукой. Основание такого робота — туловище. На нем закреплены все остальные части робота. Оно выполняет функцию удержания всей системы. Манипулятором служит часть руки от плеча до запястья. Она ориентирует и перемещает рабочий орган в пространстве. В нашем примере это переход от одного винта к другому. Рабочим органом служит часть руки от запястья до кончиков пальцев. Она выполняет требуемую операцию — закручивание болтов с помощью ключа. Устройством программного управления служит мозг. Там происходят все операции, связанные с перемещением манипулятора, движением рабочего органа, определением координат и сил, необходимых для решения поставленной задачи. Если после выполнения задачи робот встанет и перейдет в другое место, то можно будет сказать, что он выполнен на подвижном основании. 2) Мобильный робот — автоматическая машина, в которой имеется движущееся шасси с автоматически управляемыми приводами (см. рис. 2). Такие роботы могут быть колёсными, шагающими и гусеничными (существуют также ползающие, плавающие и летающие мобильные робототехнические системы) [2]. Рисунок 2 - Интеллектуальный мобильный робот 2. Основные компоненты роботов Приводы: это «мышцы» роботов. В настоящее время самыми популярными двигателями в приводах являются электрические, но применяются и другие, использующие химические вещества или сжатый воздух [2]. Варианты приводов: 1) Электрические двигатели: 1.1) Двигатели постоянного тока: Самый мощный двигатель, можно использовать практически в любом типе робота. Рисунок 3 – Пример двигателя постоянного тока 1.2) Серводвигатели: Используется в роботах с весом менее 2,5 кг. и в типах роботов с ногами. 135 Рисунок 4 – Пример серво - двигателя 1.3) Шаговые электродвигатели: Как можно предположить из названия, шаговые электродвигатели не вращаются свободно, подобно двигателям постоянного тока. Они поворачиваются пошагово на определённый угол под управлением контроллера. Это позволяет обойтись без датчика положения, так как угол, на который был сделан поворот, заведомо известен контроллеру; Пожалуй самые слабые, используются в небольших и легких роботах. Рисунок 5 – Шаговый двигатель 2) Пьезодвигатели: Современной альтернативой двигателям постоянного тока являются пьезодвигатели, также известные как ультразвуковые двигатели. Принцип их работы весьма оригинален: крошечные пьезоэлектрические ножки, вибрирующие с частотой более 1000 раз в секунду, заставляют мотор двигаться по окружности или прямой. Преимуществами подобных двигателей являются высокое нанометрическое разрешение, скорость и мощность, несоизмеримая с их размерами. Пьезодвигатели уже доступны на коммерческой основе и также применяются на некоторых роботах. Рисунок 6 - Пьезодвигатель 3) Воздушные мышцы: Воздушные мышцы — простое, но мощное устройство для обеспечения силы тяги. При накачивании сжатым воздухом мышцы способны сокращаться до 40 % от своей длины. Причиной такого поведения является плетение, видимое с внешней стороны, которое заставляет мышцы быть или длинными и тонкими, или короткими и толстыми. Рисунок 7 – Воздушные мышцы роботов 136 4) Электроактивные полимеры: Электроактивные полимеры — это вид пластмасс, который изменяет форму в ответ на электрическую стимуляцию. Они могут быть сконструированы таким образом, что могут гнуться, растягиваться или сокращаться. 5) Эластичные нанотрубки: Это — многообещающая экспериментальная технология, находящаяся на ранней стадии разработки. Отсутствие дефектов в нанотрубках позволяет волокну эластично деформироваться на несколько процентов. Человеческий бицепс может быть заменён проводом из такого материала диаметром 8 мм. Подобные компактные «мышцы» могут помочь роботам в будущем обгонять и перепрыгивать человека. Рисунок 8 – Эластичная нано-трубка 3. Способы перемещения роботов [2] Имеются следующие способы перемещения роботов: 1) Колёсные и гусеничные роботы: Наиболее распространёнными роботами данного класса являются четырёхколёсные и гусеничные роботы. Создаются также роботы, имеющие другое число колёс — два или одно. Такого рода решения позволяют упростить конструкцию робота, а также придать роботу возможность работать в пространствах, где четырёхколёсная конструкция оказывается неработоспособна. Рисунок 9 – Гусеничный робот 2) Шагающие роботы Рисунок 10 – Шагающий робот 3) Прыгающие роботы 137 Рисунок 11 – Робот - кенгуру В 1980-х годах профессором Марком Рейбертом Массачусетского технологического института был разработан робот, способный сохранять равновесие посредством прыжков, используя только одну ногу. Движения робота напоминают движения человека на тренажёре. Впоследствии алгоритм был расширен на механизмы, использующие две и четыре ноги. Подобные роботы продемонстрировали способности к бегу и способность выполнять сальто. Роботы, перемещающиеся на четырёх конечностях, продемонстрировали бег, перемещение рысью, скачками. Адаптивные алгоритмы поддержания равновесия. В основном базируются на расчете отклонений мгновенного положения центра масс робота от статически устойчивого положения или некоей наперед заданной траектории его движения. В частности. 4) Летающие роботы. Большинство современных самолётов являются летающими роботами, управляемыми пилотами. Автопилот способен контролировать полёт на всех стадиях — включая взлёт и посадку Рисунок 12 – Робот - летун 5) Ползающие роботы. Существует ряд разработок роботов, перемещающихся подобно змеям, червям, слизням. Предполагается, что подобный способ перемещения может придать им возможность перемещаться в узких пространствах; в частности, предполагается использовать подобных роботов для поиска людей под обломками рухнувших зданий. Рисунок 13 – Ползающий робот 6) Плавающие роботы. Существует много разработок роботов, которые перемещаются в воде, подражая движениям рыб. По некоторым подсчётам, эффективность подобного движения может на 80 % 138 превосходить эффективность движения с использованием гребного винта. Кроме того, подобные конструкции производят меньше шума, а также отличаются повышенной манёвренностью. Рисунок 14 – Пример плавающего робота 4. Анализ систем управления роботами [2] По типу управления робототехнические системы подразделяются на: 1) Биотехнические: 1.1) командные - кнопочное и рычажное управление отдельными звеньями робота; 1.2) копирующие - повтор движения человека, возможна реализация обратной связи, передающей прилагаемое усилие; 1.3) полуавтоматические - управление одним командным органом, например, рукояткой всей кинематической схемой робота; 2) Автоматические: 2.1) программные - функционируют по заранее заданной программе, в основном предназначены для решения однообразных задач в неизменных условиях окружения; 2.2) адаптивные - решают типовые задачи, но адаптируются под условия функционирования; 2.3) интеллектуальные - наиболее развитые автоматические системы; 3) Интерактивные: 3.1) автоматизированные - возможно чередование автоматических и биотехнических режимов; 3.2) супервизорные - автоматические системы, в которых человек выполняет только целеуказательные функции; 3.3) диалоговые - робот участвует в диалоге с человеком по выбору стратегии поведения, при этом как правило робот оснащается экспертной системой, способной прогнозировать результаты манипуляций и дающей советы по выбору цели. 5. Функциональное назначение роботов Типы роботов по отношению к моделированию человека [1]: 1) Андроид (человекообразный робот); Рисунок 15 – Пример робота-андроида 139 2) Биоробот — человек или животное, у которого вместо мозга вставлен имплантат (процессор), всё остальное тело — органическое. В зависимости от функционального назначения, выделяют следующие типы роботов: 1) Промышленный робот. В промышленности роботы заменяют людей, на больших заводах с помощью роботов работает 15-20 человек, остальное все делают роботы. Роботы выполняют сложные производственные операции по 24 часа в сутки и не устают, что свойственно для человека. Выпускаемая роботами продукция имеет высокое качество, роботы не болеют, не нуждаются в обеденном перерыве и отдыхе. Роботы не бастуют, не требуют повышения заработной платы и пенсии. Роботы не подвержены воздействиям окружающей среды, опасных для жизни человека Рисунок 16 – Промышленный робот 2) Транспортный робот - автоматическая машина, представляющая собой совокупность манипулятора, перепрограммируемого устройства управления и ходового устройства. Рисунок 17 – Транспортный робот 3) Подводный робот – небольшой робот или устройство, используемое для выполнения разнообразных задач под водой и на морском дне. Работает автономно, преимущество в том что робот или устройство может опускаться на те глубины, которые человеку или подводной лотки опасны. Рисунок 18 - Манипуляционные роботы 140 4) Бытовой робот. Одним из первых бытовых роботов была «собачка», также выпускают человекоподобных роботов, которые способны дать справку, следить за помещением, узнавать лица, понимать некоторые фразы. Также популярны роботы-уборщики, к примеру робот пылесос, который автоматически убирает мусор и следит за чистотой и самостоятельно подзаряжается. Рисунок 19 – Бытовой робот - уборщик 5) Боевой робот. Боевые роботы используют в разведке, разминировании, в боевых действиях (авиационные беспилотные с дистанционным управлением, подводные аппараты и надводные корабли) Рисунок 20 - Манипуляционные роботы 6) Робот-хирург. В медицине используют также роботов, больше всего создают хирургических роботов. Роботы – помощники хирургов, неуклонно расширяют свое присутствие в больницах Рисунок 21 – Современный робот-хирург 141 7) Аптечный робот. Аптечных роботов используют в аптеках, они помогают хранить и доставка необходимых медицинских препаратов на рабочее место провизора. Медицинские центры по всему миру все чаще и чаще прибегают к помощи аптечных роботов. Рисунок 22 – Робот для аптечных нужд 8) Микроробот. Микроботы - это область микроробототехники, в частности проектирование мобильных роботов с характерными размерами менее 1 мм. Это название также может быть использовано для роботов, способных к работе с компонентами размером в микрометры [19]. Рисунок 23 – Микроробот - комар 9) Наноробот. Нанороботы, или наноботы — роботы, размером сопоставимые с молекулой (менее 100 нм), обладающие функциями движения, обработки и передачи информации, исполнения программ. Нанороботы, способные к созданию своих копий, то есть самовоспроизводству, называются репликаторами [18]. Рисунок 24 – Наноробот 142 10) Персональный робот. Персональный робот — тип роботов, которые в отличие от промышленных роботов будут компактны, недороги и просты в использовании. Прямая аналогия с понятием персональный компьютер [17]. Рисунок 25 – Робот - партнер 11) Робот-артист. Рисунок 26 – Робот - художник 12) Робот-игрушка. Рисунок 27 – Робот - игрушка 13) Робот-официант. Бортовая интеллектуальная система управления робота позволяет ему безошибочно ориентироваться в помещении и находить маршрут из одной точки в другую. Обучение робота производится единожды путем проведения его по маршруту в ручном режиме. База знаний может быть переписана с одного робота на другого [6]. 143 Рисунок 28 – Робот - официант 14) Робот-программа. Робот, или бот, а также интернет-бот, www-бот и т. п. — специальная программа, выполняющая автоматически и/или по заданному расписанию какие-либо действия через те же интерфейсы, что и обычный пользователь. При обсуждении компьютерных программ термин употребляется в основном в применении к Интернету [16]. 15) Робот-экскурсовод. При помощи двухколёсного привода, роботы ростом 120 см и массой 60 кг могут развивать скорость до 20 м/мин. Для точной навигации внутри музея, робот оборудован 12-ю ультразвуковыми датчиками, 12-ми датчиками давления, гироскопом, системой космической навигации GPS. Без подзарядки батарей робот может работать 6 часов. Функция роботов – проводить посетителей музея по постоянному экскурсионному маршруту (как это обычно делают гиды). А также принимать участие в проводимых в музее тематических робот-классах [7]. Рисунок 29 – Робот – экскурсовод 16) Социальный робот. Социальный робот — робот, способный в автономном или полуавтономном режиме взаимодействовать и общаться с людьми в общественных местах или дома. Это роботы: няни и сиделки (Wakamura, RIBA, PaPeRo, Hubo), дворецкие (Pepper, Cubic), роботы телеприсутствия (Romo,Double, Даша, R.Bot, Webot, Promobot), роботы-учителя (андроид Пушкин) и помощники для детей с аутизмом (Nao) и т. д. 15]. Wakamura amura Рисунок 30 – Социальный робот 144 17) Шаробот. Шаробот — подвижный робот, использующий для передвижения единственное сферическое колесо (т.е. шар), и постоянно самобалансирующий на нём как в движении, так и в покое. Благодаря единственной точке контакта с поверхностью, шаробот одинаково легко передвигается во всех направлениях, являясь чрезвычайно подвижным, манёвренным, и естественным в движениях, по сравнению с обычным наземным транспортом [8]. Рисунок 31 – Подвижный шаро-робот 18) Роботы для обеспечения безопасности. Активно используют роботов в полиции, спасательных операциях, в пожаротушении. В штате Калифорния заступили на стражу правопорядка автономные роботы-полицейские. Роботы патрулируют торговые центры и другие общественные места. Они пока не могут самостоятельно предотвращать преступления или задерживать преступников, зато без устали слоняются по заданному периметру и могут заснять попытку совершения преступления или опознать подозрительную активность [9]. Рисунок 32 – Робот - полицейский 19) Роботы-ученые. Ученые-роботы наравне с учеными-людьми будут вскоре работать над поиском новых научных знаний. Об этом независимо друг от друга утверждают профессор Ход Липсон из Корнельского университета США и профессор Росс Кинг из Университета Уэльса В частности, Липсон в своей статье сообщил, что робот сумел вывести основные законы механики на основании наблюдений за движением маятников. В свою очередь, Кинг описал робота, самостоятельно организовавшего, осуществившего и проанализировавшего эксперимент по поиску генов, кодирующих ферменты пекарных дрожжей. Липсон надеется, что продемонстрированная ими способность машин находить взаимосвязи между различными типами переменных в огромных массивах данных, получаемых с помощью современного научного оборудования, может быть использована для поиска универсальных закономерностей в биологических системах, изучение которых «вручную» чрезвычайно сложно. Робот, получивший имя «Адам», сумел сформулировать 20 гипотез о причастности тех или иных генов к кодированию 13 ферментов, и получить данные, говорящие том, что 12 из 20 гипотез могут быть справедливыми. Группа Кинга надеется в будущем, опираясь на прототип «Адам» создать нового робота, имя которому ученые уже придумали – «Ева». «Ева», по замыслу создателей, будет еще более мощным техническим средством, способным существенно облегчить рутинную работу многих ученых по поиску новых лекарственных средств [14]. 145 Также роботов-ученых используют в исследовании местности в научных целях где проходимость для человека невозможна(вентиляционных шахт). Рисунок 33 – Ученый - робот 20) Роботы-учителя. Роботы-учителя будут давать теоретические и практические знания. Начало учебного года. Вместе с детьми в школу идут роботы, но не в качестве учеников, а в качестве учителей. С развитием робототехники все более актуальным становится внедрение машин в систему общего образования. Так в школе Гарлема PS 76 робот Nao французского происхождения помогает студентам развивать математические способности. Машина способна распознавать разные языки и воспроизводить речь. Сидя на письменном столе, Nao не решает задачи, а дает подсказки, которые помогают студентам находить правильные решения [10]. Рисунок 34 – Робот - преподаватель 6. Роботы в системах автоматизированного проектирования Комбинация Mastercam и Robotmaster Что такое Mastercam ? CAM-система Mastercam предназначена для создания управляющих программ для станков с ЧПУ (Числовое программное управление)фрезерной, токарной, токарно-фрезерной, электроэрозионной групп, а также для деревообрабатывающего оборудования [12]. Robotmaster: С помощью Robotmaster производители могут программировать роботизированные ячейки быстро и эффективно, используя проверенные мировой индустрией CAD/CAM-технологии Mastercam. Необходимость в инновационных технологиях, повышение требований к гибкости производства – вот факторы, которые помогают роботам стремительно заменять собою такие привычные в цехах средства, как фрезерные станки с ЧПУ. Сегодня роботы, когда-то выполнявшие примитивные операции типа «возьми и положи», сильно продвинулись в своих возможностях, улучшили свои характеристики точности и жесткости, и их всё чаще применяют для задач, связанных с удалением материала. Присущая решениям на базе роботов гибкость 146 позволяет производить изделия быстрее, с более высоким качеством и с меньшими затратами – то есть, повышается конкурентоспособность предприятий [11]. Robotmaster позволяет эффективно объединить 3D-моделирование, создание точных траекторий на основе 3D-модели и генерацию УП непосредственно из среды Mastercam. Мультипрограммный подход обычных офлайн-средств для программирования роботов подразумевает использование разного ПО: одного – для подготовки траекторий инструмента, другого – для того, чтобы преобразовать эти траектории в соответствующие положение суставов робота, третьего – чтобы симулировать движения манипулятора и проверить их правильность [11]. Интегрированное решение обеспечивает: – быстрое создание траекторий, их проверку и генерацию УП; – простоту и удобство при внесении изменений. В среду Robotmaster встроен постпроцессор, который обеспечивает: – выпуск УП в соответствии с синтаксисом, который понимает конкретный робот – автоматическую проверку траектории на коллизии перед генерацией УП – автоматическое разбиение УП на подпрограммы, если её объем превышает максимально допустимое значение [11]. В среде Mastercam с помощью мощных средств подготовки траекторий создается последовательностьтехнологических операций обработки. При этом технолог использует привычную методику и приемы, зарекомендовавшие себя в деле программирования станков с ЧПУ. Когда операции обработки подготовлены, технолог активизирует функции Robotmaster для того, чтобы выбрать конкретный вариант исполнения роботизированной ячейки и навесной агрегат, а затем указать ряд специфичных параметров. После этого выполняется симуляция и проверка движений на виртуальной ячейке. При необходимости можно провести оптимизацию или тонкую отладку параметров. Когда все операции обработки отлажены, осуществляется выпуск УП [13]. Вывод: То есть данная система выполняет три функции: CAD/CAM/CAE. Рисунок 35 – Среда программирования роботов 7. Языки программирования роботов Используют такие языки программирования: Arduino — торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники Python — высокоуровневый язык программирования общего назначения, ориентированный на повышение производительности разработчика и читаемости кода. Синтаксис ядра Python минималистичен. В то же время стандартная библиотека включает большой объём полезных функций. Ассемблер (assembler) — транслятор исходного текста программы, написанной на языке ассемблера, в программу на машинном языке. А также языки , С++, С#, java и т. д. Выводы Роботы чаще всего заменяют людей в выполнении нудной и однообразной работы. Еще несколько лет назад роботы казались для нас чем то невероятным, а уже сейчас роботы заменяют человека почти во всем: в промышленности, медицине, социальной жизни человека и т. д. Основная роль робота - это облегчить жизнь человека, сделать её более комфортной, улучшить условия труда, высвободить рабочие руки ,увеличить производительность. В статье представлены промежуточные результаты анализа современных методик проектирования роботов различного назначения. Для чего выполнено исследование темы роботостроения, исходя из различных источников. Для чего: рассмотрена существующая классификация, основные компоненты, типы, способы 147 перемещения роботов; проанализированы существующие системы управления роботами; рассмотрены средства и методы работы с роботами в системах автоматизированного проектирования. Перспективы работы состоят в выявлении и классификации методик проектирования роботов. Литература 1. https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B1%D0%BE%D1%82. 2. https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B1%D0%BE%D1%82%D0%BE%D1%82.%D0%B5 %D1%85%D0%BD%D0%B8%D0%BA%D0%B0. 3. http://www.yaplakal.com/forum2/topic199210.html. 4. http://robot-develop.org/archives/1590. 5. https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%B0%D0%BD%D1%81%D0%BF%D0%BE.%D1%80 %D1%82%Dhttp://pixanews.com/auto/ropits-transportnyj-robot-ot-hitachi.html. 6. http://robin.dynsoft.ru. 7. http://roboting.ru/1639-robot-ekskursovod-v-koree.html. 8. https://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D1%80%D0%BE%D0%B1%D0%BE%D1%82. 9. https://geektimes.ru/post/276158/ . 10. http://hi-news.ru/technology/5-robotov-kotorye-uzhe-rabotayut-v-shkolax.html. 11. http://www.mastercam-russia.ru/robotmaster_doc_131.html. 12. http://machinery.ascon.ru/software/developers/items/?prpid=1188. 13. http://www.mastercam-russia.ru/robotmaster_doc_130.html. 14. https://focus.ua/society/38083/. 15. https://ru.wikipedia.org/wiki/%D0%A1%D0%BE%D1%86%D0%B8%D0%B0%D0%BB%D1%8C%D0%BD %D1%8B%D0%B9_%D1%80%D0%BE%D0%B1%D0%BE%D1%82. 16. https://ru.wikipedia.org/wiki/%D0%A0%D0%BE%D0%B1%D0%BE%D1%82_(%D0%BF%D1%80%D0%B E%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0). 17. https://ru.wikipedia.org/wiki/%D0%9F%D0%B5%D1%80%D1%81%D0%BE%D0%BD%D0%B0%D0%BB %D1%8C%D0%BD%D1%8B%D0%B9_%D1%80%D0%BE%D0%B1%D0%BE%D1%82. 18. https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%BD%D0%BE%D1%80%D0%BE%D0%B1%D0%BE %D1%82. 19. https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BA%D1%80%D0%BE%D1%80%D0%BE%D0%B1 %D0%BE%D1%82. Коваленко Г.Р., Григорьев А.В. Анализ функциональных возможностей современных роботов. В статье представлены промежуточные результаты анализа современных методик проектирования роботов различного назначения. Для чего выполнено исследование темы роботостроения, исходя из различных источников. Для чего: рассмотрена существующая классификация, основные компоненты, типы, способы перемещения роботов; проанализированы существующие системы управления роботами; рассмотрены средства и методы работы с роботами в системах автоматизированного проектирования. Ключевые слова: робот, классификация, САПР, системы управления, типы. Kovalenko G.R., Grigoryev A.V. Analysis of the functional capabilities of modern robots. The article presents the interim results of the analysis of modern methods of designing robots for various purposes. What used to study the topics of robotics, according to different sources. Why: The existing classification of the main components, types, ways of moving robots; analyzed the existing robot control system; discussed ways and means of working with robots in computer-aided design systems. Keywords: robot, classification, CAD, control systems, types. 148 УДК 002.53:004.89 Перспективы интеграции технологии коллективного семантического поиска и формата rdf Д.Ю. Кравченко, А.А. Новиков, В.А. Козачков Федеральное государственное автономное образовательное учреждение высшего образования «Южный федеральный университет» [email protected] Кравченко Д.Ю., Новиков А.А., Козачков В.А. Перспективы интеграции технологии коллективного семантического поиска и формата rdf. В статье рассмотрены основы модели RDF, свойства, практические примеры, основы работы технологии коллективного семантического поиска и перспективы интеграции CSS и RDF . Актуальность данной темы обусловлена возрастающим интересом к данной технологии и применением её в большинстве приложений. Модель RDF позволяет значительно упростить поиск нужных материалов в Интернете и передачу данных между пользователями. Данная модель реализуется в базах данных, поисковых системах и социальных сетях. Технология CSS выполняет семантические поиски разрозненных источников данных. Данная технология реализуется в семантических сетях и онтологиях. Ключевые слова: Семантический поиск, поисковый запрос, графы, базы данных, интернет. Введение С момента появления интернета и первых поисковых систем прошло много времени и в данный момент мы имеем огромную сеть с неограниченным потоком данных. Эти данные хранятся в различных моделях и форматах и доступ к ним можно получить с помощью обычного поискового запроса. Проблема заключается в том, что поисковый запрос не всегда выдаёт нужный результат и уже довольно долго идёт разработка новых технологий для улучшения качества поисковых запросов. Одной из таких технологий является формат данных RDF, который упрощает поисковые запросы с помощью специальных описаний и словарей. Также в статье рассматривается технология коллективного семантического поиска (CSS), способная поддерживать возможность документировать и разделять цели поиска и результаты, и её перспективы интеграции с форматом данных RDF. Основные понятия RDF RDF или resource description framework (“среда описания ресурса”) – формат данных для представления информации во всемирной паутине. Ресурсом в RDF может быть любая сущность – информационная (изображение или веб-сайт) или неинформационная (человек, машина, город и т.д.). Утверждение, которое высказывается о ресурсе, имеет вид «субъект-предикат-объект» или «подлежащее-дополнение-сказуемое» и называется триплетом (рис.1). В качестве примера можно привести фразу «небо голубого цвета», где субъект «небо», предикат - «имеет цвет», объект – «голубой». Для обозначения субъектов, объектов и отношений в RDF используются универсальные идентификаторы ресурсов URI. Предикат Объект Субъект Рисунок 1 - Триплет RDF Множество подобных утверждений образует ориентированный граф, в котором субъекты и объекты являются вершинами, а рёбра отображают отношения. RDF сам по себе является лишь абстрактной моделью данных, которая описывает структуру, способы обработки и интерпретации данных. Для хранения и передачи информации, находящейся в модели RDF, существует целый ряд форматов записи, таких как: 1) RDF/XML – запись в виде XML-документа; 2) RDF/JSON – запись в виде JSON-данных; 3) RDF in attributes (RDFa) – запись внутри атрибутов; 4) N-Triples, Turtle, N3 – компактные формы записи утверждений. 149 Для хранения RDF-данных используются два основных вида хранилищ: специализированные (native, «родные») и не специализированные. Специализированные хранилища позволяют достичь большей степени оптимизации, но более трудоёмки в проектировании, так как строятся специально для работы с RDF. Остальные хранилища более просты в проектировании, но менее оптимизированы под работу с RDF. К основным специализированным хранилищам, пригодным для производственного использования, относятся: 1)решения от Oracle; 2)сервер приложений Virtuoso; 3)4Store; 4)Stardog; 5)GraphDB; 6)Allegrograph. При использовании данной модели можно получить: 1)Логический вывод новых фактов 2)Обеспечения семантического поиска 3)Гибкость модели данных 4)Экстремальная легкость обмена данными между системами Основной смысл данной модели заключается в том, что модель RDF обеспечивает формальные описание, с помощью которых поисковый агент может искать факты и знания. На этих формальных описаниях основывается семантический поиск, который отличается возможностью находить нужные пользователю данные благодаря точному описанию, пропуская при этом данные имеющие словосочетания, содержащиеся в запросе пользователя. Также для выражения семантики требуются словари, таксономии и онтологии и наличие в рассматриваемом графе связей с ними. Так как модель RDF строится на триплетах, она является более гибкой и легкой для изменений. В неё легко можно добавлять новые сущности, действия и утверждения, так как вся модель устроена достаточно просто. Есть два взаимодополняющих способа рассматривать информацию, представленную в RDF. Первый способ – считать её набором утверждений. Второй способ – считать её графом (рис.2). Граф имеет сильное сходство с сетью. Граф состоит из узлов, соединённых рёбрами. Например, в Интернете узлы- это компьютеры, а рёбра – соединяющие их сетевые шнуры. В RDF узлы - это имена(но не сами сущности), а рёбра – утверждения. Например: Рисунок 2 - Представление модели RDF в виде графа Здесь каждая стрелка (ребро) – это RDF –утверждение: имя у начала стрелки – это субъект, имя у конца стрелки- объект, и имя у самой стрелки – предикат. Когда RDF представлен в виде графа, он содержит всю ту же информацию, что и выписанный в виде триплетов, но графическое представление позволяет легче увидеть структуру описываемых данных. Пример использования и применения RDF В данный момент RDF используется при оформлении баз знаний или представлении их данных в рамках различных проектов. Поисковые системы предлагают веб-мастерам использовать RDF и аналогичные языки разметки страниц для повышения информативности ссылки на их сайт в результатах поиска. Социальные сети предлагают веб-мастерам использовать RDF для описания свойств страниц, так же позволяющих красиво оформить ссылку на неё в записи пользователя социальной сети. Формат RDF широко используется для краткого представления перечня новых записей на периодически пополняющихся сайтах. В формате RDF представляют данные для анализа и интеграции в информационных системах предприятий, что даёт возможность исследовать их с помощью SPARQL, а при опоре на отраслевой стандарт, позволяет унифицировано обмениваться данными различных предприятий на уровне отрасли. 150 RDF это технология, которая лучше всего подходит для сведения распределенной информации в общую систему. Рассмотрим пример: есть база данных о продуктах различных поставщиков и оценках этих продуктов различными экспертами. Взять на себя ответственность за поддержание общей центральной базы данных крайне не выгодно, так как эта база содержала бы информацию о конкурентах, и возможно, отрицательные оценки собственной продукции. Также будет происходить нехватка ресурсов у экспертов для постоянного поддержания в общей базе данных актуальной информации. RDF отлично подходит для решения данной задачи. Каждый поставщик и каждый эксперт размещают на собственно веб-сервере RDF-файл (рис.3). Поставщики выбирают для своих продуктов URI, и эксперты используют эти URI, когда публикуют свои оценки. Тогда поставщики не вынуждены выбирать общую схему наименования для своих продуктов, и эксперты не привязаны к форматам данных, выбранным поставщиками. RDF позволяет и поставщикам, и экспертам использовать те инструменты, которые им удобнее, и никто не заставляет никого пользоваться каким-то определенным языком. Рисунок 3 - Вид RDF-файлов, которыми обмениваются поставщики и эксперты Вопрос с обменом этими файлами оставим в стороне, это отдельная тема. Как только приложение получает эти файлы, у него появляется достаточно информации, чтобы соотнести продукты, цены, оценки и шифры изделий. Этот пример показывает, насколько гибок RDF: данная модель не накладывает никаких ограничений и всё же позволяет приложениям моментально соотносить распределённую информацию. В данной модели поставщикам и экспертам не приходилось идти на компромиссы: они договорились использовать RDF, и всё. Также , в плане взаимной совместимости, можно выделить тот момент, что не было целенаправленного вырабатывания общего формата, необходимо всего лишь использовать триплеты, которые использовались изначально. Эффективность применения формата данных RDF при обработке нерегламентированных поисковых запросов может быть повышена за счет интеграции с технологиями коллективного семантического поиска (collaborative semantic search). Это обусловлено дополнительными возможностями, такими как: 1) создание и разделение поисковых задач; 2) заполнение поисковой задачи; 3) просмотр связанных поисковых задач. Использование CSS для семантического поиска Приложение CSS технологий - сетевое поисковое приложение предприятия, построенное на Lucene.Net. CSS выполняет предназначенные семантические поиски разрозненных источников данных, используя различные типы вводов данных пользователем и/или определенных пользователями онтологий. Технология CSS применяет основанный на онтологии анализ текста и методы обработки естественного языка в извлечении знания из структурированных и неструктурированных текстовых источников. Технология CSS отличается от большинства поисковых систем двумя ключевыми способами: 1) Поддержка как структурированных, так и неструктурированных данных: Как правило, предприятия имеют доступ и к неструктурированным данным в файловой системе, и к структурированным данным в базах данных. CSS может обрабатывать оба типа данных, тем самым осуществляя поиск в различных источниках данных. Применение может внести в указатель и искать, напротив, текстовое содержание SQL сервера и баз данных Oracle® в дополнение к документам в файловой системе. 2) Поддержка сложных входных типов: CSS принимает целый ряд различных типов пользовательского ввода вне основных ключевых слов. Чем больший ввод пользователь предоставляет, тем более точным является процесс формулирования запросов и, следовательно, более смысловое содержание может быть извлечено строителем запроса. Это приводит к результатам поиска, которые соответствуют задаче поиска пользователя более точно. Различные типы ввода, поддерживаемые приложением CSS, показаны на рисунке 2 и включают в себя: 151 1) Ключевые слова: Как все поисковые системы, CSS позволяет пользователю непосредственно вводить отдельные условия, которые он ищет. Пользователь также имеет возможность присвоения веса для каждого термина, а также может указать, имеются ли термины "должен", "следует", или "не должен" в выходных данных. Пользователь также имеет возможность указать точное соответствие фразы. 2) Пример текста: Пользователь может также предоставить пример текста, который обсуждает на естественном языке, понятия о том, что пользователь ищет. Этот текст может быть столь же коротким как единственное предложение или как весь документ или весь каталог документов. Пример текста анализируется построителем запросов, который генерирует взвешенный список важных символов для поиска. 3) Онтологии: Онтология захватывает важные понятия и отношения, относящиеся к области поиска задачи пользователя. При применении технологии CSS, пользователь может улучшить процесс поиска с использованием онтологий, которые идентифицируют термины, представляющие особый интерес в рамках домена. Модели онтологии часто предоставляют информацию, которая связывает контекст с определенным поиском и может использоваться, чтобы снять неоднозначность условий и обеспечить базовое знание, которое могло бы помочь в интерпретации содержания. Например, термин "запуск" будет иметь различное значение у музыкального руководителя, астронома и веб-предпринимателя. Использование модели онтологии для оказания помощи поиска влияет как на содержание, так и на взвешивание списка терминов, произведенной построителем запросов. 4) Сокращенные Списки и Словари: Наконец, пользователь может поставить набор сокращенного списков и/или глоссариев, чтобы увеличить поиск. Оба этих входа предоставляют дополнительную информацию об определенных важных условиях, которые могут появиться во входах поиска или в выходных данных. Построитель запросов использует эту информацию, чтобы увеличить веса и содержание термина списка, который он генерирует. Заключение Дальнейшие перспективы данной интеграции зависят от повышения эффективности и улучшения оптимизации данных технологий. Более 10 лет концепция Semantic Web, частью который является RDF, развивается, является предметом споров и обсуждений, и сегодня ее все активнее поддерживает сообщество в своих приложениях, так как с помощью RDF можно серьёзно упростить передачу данных и работу поисковых запросов в Интернете. Литература 1. Joshua Tauberer. «What is RDF and what is good for?», 2008. 2. W3C Recommendation. «SPARQL Query Language for RDF»,2008. 3. https://habrahabr.ru/post/94707/ 4. Toby Segaran, Colin Evans, Jamie Taylor. Programming the Semantic Web. — O’Reilly Media, 2009. 5. John Hamilton, Belita Gopal, Perakath Benjamin Enabling Technology for Collaborative Semantic Search Д.Ю. Кравченко, Новиков А.А., Козачков В.А. Перспективы интеграции технологии коллективного семантического поиска и формата rdf. В статье рассмотрены основы модели RDF, свойства, практические примеры, основы работы технологии коллективного семантического поиска и перспективы интеграции CSS и RDF . Актуальность темы обусловлена возрастающим интересом к данной технологии и применением её в большинстве приложений. Модель RDF позволяет значительно упростить поиск нужных материалов в Интернете и передачу данных между пользователями. Данная модель реализуется в базах данных, поисковых системах и социальных сетях. Технология CSS выполняет семантические поиски разрозненных источников данных. Технология реализуется в семантических сетях и онтологиях. Ключевые слова: Семантический поиск, поисковый запрос, графы, базы данных, интернет. Kravchenko D.Y, Novikov A.A, Kozachkov V. A.Prospects for integration technology collaborative semantic search (css) and rdfThe article describes the basics of RDF models, properties, practical examples, the basics of collective semantic search technology and prospects CSS and RDF integration. The relevance of this topic is due to the growing interest in this technology and applying it in most applications. The RDF model can significantly simplify the search for the right materials in the Internet and data transmission between users. This model is implemented in the databases, search engines and social networks. CSS technology performs semantic searching disparate data sources. This technology is implemented in semantic networks and ontologies. Keywords: Semantic search, search query, graphs, databases, Internet. 152 УДК 681.3.06:658.51.011.5 Гибридный метод при решении задачи компоновки схем с учетом критерия энергопотребления Т.Ю. Кудрякова, Н.С. Семушина, Е.Ю. Семушин Южный Федеральный университет [email protected] Кудрякова Т.Ю., Семушина Н.С., Семушин Е.Ю. "Гибридный метод при решении задачи компоновки схем с учетом критерия энергопотребления". Статья посвящёна разработке метода решения задачи компоновки на основе гибридизации генетического и роевого алгоритмов. Сформулирована постановка задачи компоновки блоков схемы ЭВА, как задача разбиения графа на части по критерию минимизации числа внешних рёбер. Разработана структурная блок-схема алгоритма компоновки. Ключевые слова: генетический алгоритм, пчелиный алгоритм, ЭВА. Введение Одной из центральных комбинаторных проблем теории графов является проблема разбиения графов на подграфы. Решение этой проблемы важно не только для самой теории графов, но и для многих практических приложений. Алгоритмы разбиения графов на подграфы необходимы при решении многих прикладных задач и, в частности, при автоматизации проектирования и контроля, при автоматическом анализе содержания документов и т.д. [1]. При решении задач проектирования конструкций современной ЭВА, задач распределения алгоритмов и программ в коллективах вычислителей и микроконтроллерных сетях возникает необходимость разбиения (декомпозиции) аппаратуры на отдельные части, соответствующие унифицированной конструктивно-технологической базе, а также выделения программных блоков, размещаемых в вычислителях с заданными характеристиками. Решение указанных задач требует декомпозиции сложных объектов проектирования (аппаратуры, программ) на блоки по заданным критериям оптимизации и при наличии ограничений [1]. В последнее время для решения различных «сложных» задач, к которым относятся и задачи разбиения, всё чаще используются способы, основанные на применении методов искусственного интеллекта. Особенно наблюдается стремительный рост интереса к разработке алгоритмов, инспирированных природными системами. В основе большинства этих алгоритмов лежат идеи, заимствованные в природе, а также базовые постулаты универсальности и фундаментальности, присущие самоорганизации природных систем [2]. Одним из новых направлений таких методов являются мультиагентные методы интеллектуальной оптимизации, базирующиеся на моделировании коллективного интеллекта. Коллективная система способна решать сложные динамические задачи по выполнению совместной работы, которая не могла бы выполняться каждым элементом системы в отдельности в разнообразных средах без внешнего управления, контроля или координации. В таких случаях говорят о роевом интеллекте (Swarm intelligence), как о замысловатых способах кооперативного поведения, то есть стратегии выживания. Оптимизация с использованием роя частиц (Particle Swarm Optimization, PSO) – это метод поиска, который базируется на понятии популяции, и моделирует поведение птиц в стае и косяков рыб [3]. Рой частиц может рассматриваться как многоагентная система, в которой каждый агент (частица) функционирует автономно по очень простым правилам. В противовес почти примитивному поведению агентов, поведение всей системы получается на удивление разумным. В работе излагается метод решения задачи разбиения на основе роевого интеллекта и генетической эволюции. Постановка задачи компоновки с учетом критерия энергопотребления Под компоновкой понимают процесс формирования конструктивов высших иерархических уровней из конструктивов низших иерархических уровней. Под компоновкой также понимают разрезание на части большой схемы, которая может быть структурная, функциональная, логическая, электрическая принципиальная, на части. Наиболее известными параметрами, используемыми при разрезании схемы на части (модули), являются: число модулей, число связей между модулями, число терминалов, электромагнитная совместимость элементов, тепловая совместимость элементов. Однако в настоящее время, в связи с увеличением точности технологического процесса изготовления СБИС, геометрические размеры транзисторов сократились до 0.09 153 микрон! В настоящее время промышленностью выпускается широкая номенклатура СБИС, суперкристаллов, содержащих миллионы элементов на кристалле 25х25мм. Неуклонное повышение степени интеграции СБИС привело к тому, что в них более 60% общей временной задержки сигнала приходится на задержки в межсоединениях. Рост размера области, отводимой для межсоединений, опережает рост размера области, предназначенной для активных элементов. В чипе, содержащем 10 миллионов транзисторов и использующем 4 слоя металлизации, около 40% площади отводится под межсоединения [2]. Печатные проводники проходят на достаточно близком расстоянии друг от друга и имеют относительно малые линейные размеры сечения. С увеличением быстродействия ЭВМ все большее значение приобретают вопросы учета параметров проводников и высокочастотных связей между ними. Рассмотрим определение основных характеристик печатных проводников [4]. Сопротивление проводника определяется выражением: R=ρl/(bt), (1), где ρ - удельное объемное электрическое сопротивление проводника; l - длина проводника; b - ширина проводника; t - толщина проводника. Величина ρ различается для проводников, изготовленных различными методами. Так, для медных проводников, полученных электрохимическим осаждением, ρ равно 0,02-0,03 мкОм/м, а для медных проводников, полученных методом химического травления ρ равно примерно 0,0175 мкОм/м. Длина цепи nj в такой модели определяется по формуле: L(n j ) | xi xc | | yi yc | i n j где xi,yi - координаты контакта ui, xc, yc - координаты средней точки контактов nj, которые являются средними значениями координат x и y всех контактов (рис. 1) [5]. Ud(xd,yd) Up(xp,yp) ld,i Ui(xi,yi) Uq(xq,yq) Рисунок 1 - Модель цепи для оценки временной задержки между контактами цепи Оценка задержки на участке цепи: D(n j ) rc * L(n j ) , где r – сопротивление проводника на единицу длины; с – емкость проводника на единицу длины. Гибридный алгоритм Предложим гибридный алгоритм компоновки с учетом энергопотребления. Идея пчелиного алгоритма заключается в том, что все пчелы на каждом шаге будут выбирать как элитные участки для исследования, так и участки в окрестности элитных, что позволит, во-первых, разнообразить популяцию решений на последующих итерациях, во-вторых, увеличить вероятность обнаружения близких к оптимальным решения. Таким образом, пчелиный алгоритм можно описать следующей последовательностью операций (рис. 2): 1° В соответствии с постановкой задачи разбиения и исходными данными формируется популяция пчёл (хромосом). 154 2° Отправка пчёл-исследователей. Определение месторасположения источников нектара vi. Для каждой пчелы случайным образом задается начальная позиция xi; 3° Оценка ЦФ пчёл в популяции. Выбор источника нектара пчелой-исследователем с определённой вероятностью, в зависимости от его качества. Для каждой пчелы определяется лучший (элитный) участок, который она посещала с начала первой итерации, и значение целевой функции fiti на этом участке. Участки е, на которых значения ЦФ больше (элитные участки) отбираются для поиска решений в их окрестностях. 4° Выбор пчёл с лучшими значениями ЦФ с каждого источника. 5° Если решение на исследуемом участке не улучшается с течением нескольких итераций переход к п.6, иначе п.3. 6° Отправка пчёл-разведчиков, осуществляющих случайный поиск и оценка их ЦФ. 7° Формирование новой популяции пчёл, в состав которой будут входить как пчелы с лучшими значениями ЦФ с элитных участков, так и пчелы со случайными значениями ЦФ. 8° Конец работы алгоритма. Начало 11 Внешняя среда 1 Создание начальной популяции пчел 2 Определение окрестности поиска нектара 3 Оценка ЦФ в соответствии с найденными ими участками 4 Ранжирование пчел в популяции 5 Выбор элитных участков е для поиска решений в их окрестности 6 Поиск решений в окрестности элитных участков 7 ГА 9 Копирование лучшего решения в популяцию Да 8 Нет Улучшение достигнуто? 10 Отправка пчел-разведчиков. Принятие случайно полученного решения Конец Рисунок 2 - Гибридный алгоритм компоновки На 1 шаге алгоритма случайным образом задаётся пространство поиска решений. На 2 шаге N пчёл располагаются случайно на поверхности (в окрестности) m участков. По аналогии с эволюционными стратегиями, колонию пчел можно трактовать как популяцию, а отдельную пчелу как индивида (хромосому). Это дает возможность построения гибридной структуры поиска решения, основанной на сочетании эволюционно-генетического поиска с методами роевого интеллекта. Связующим звеном такого подхода является структура данных, описывающая решение задачи в виде хромосомы. Если каждая пчела в колонии представлена как хромосома, то число генов в хромосоме равно числу вершин гиперграфа. В этом случае возникают некоторые требования к структуре хромосомы и значениям генов: 1) Значения генов могут быть непрерывными или дискретными; 2) Значения генов должны быть независимыми друг от друга, то есть хромосомы должны быть гомологичными. На 3 шаге определяются ЦФ участков. 155 Далее те участки е, на которых значения ЦФ больше (элитные участки) отбираются для поиска решений в их окрестностях с большей вероятностью, причём на этих участках проводятся более детальные исследования, т.е. отправляются больше пчёл, чем на каждый из m−е участков. На 4 шаге проводится оценка значений ЦФ и выбираются лучшие пчёлы в соответствии со значениями ЦФ исследуемых ими участков. Если по истечении заданного количества итераций решение на данном участке не улучшается, то он исключается из дальнейшего рассмотрения (шаг 5). А пчёлы-исследователи данного участка становятся пчёлами-разведчиками и отбор решений осуществляется случайно (шаг 6). Эти пчёлы доформировывают новую популяцию решений, которая будет участвовать в следующей итерации алгоритма. Данная операция продолжается до тех пор, пока не будет достигнут критерий останова алгоритма. В конце работы алгоритма популяция решений будет состоять из двух частей: пчёлы с лучшими значениями ЦФ элитных участков, а также группа пчёл-разведчиков со случайными значениями ЦФ. Заключение В статье рассмотрена актуальная на сегодняшний день задача компоновки схем с учетом критерия энергопотребления. В ходе выполнения работы были рассмотрены проблемы решения задачи компоновки. Разработан гибридный алгоритм на основе последовательной работы роевого алгоритма, основанного на поведении пчелиной колонии и генетического алгоритма. Литература 1 Норенков И.П. Основы автоматизированного проектирования [Текст] / И.П. Норенков – М.: Изд-во МГТУ имени Н.Э.Баумана, 2006.-360с. 2 Курейчик В.В. Эволюционные методы решения оптимизационных задач [Текст] : Монография / В.В. Курейчик. – Таганрог: Изд-во ТРТУ, 2009. – 99 с. 3 Лебедев Б.К. Методы поисковой адаптации в задачах автоматизированного проектирования СБИС [Текст] / Б.К. Лебедев. – Таганрог: Издательство ТРТУ, 2007. – 192 с. 4 Лежебоков А.А Проблемы учета временных задержек в задачах конструкторского проектирования. [Текст] / А.А. Лежебоков, А.Н. Дуккардт // Известия ЮФУ. Технические науки. №7, 2011 г., С. 108-113. 5 Дуккардт А.Н. Методы Генетического поиска для мультихромосомных представлений [Текст] / А.Н. Дуккардт // VII Всеросийская научная конференция студентов и аспирантов «Техническая кибернетика, радиоэлектроника, и системы управления», Таганрог, 2004. - 108 с. Кудрякова Т.Ю., Семушина Н.С., Семушин Е.Ю. Гибридный метод при решении задачи компоновки схем с учетом критерия энергопотребления. Статья посвящёна разработке метода решения задачи компоновки на основе гибридизации генетического и роевого алгоритмов. Сформулирована постановка задачи компоновки блоков схемы ЭВА, как задача разбиения графа на части по критерию минимизации числа внешних рёбер. Разработана структурная блок-схема алгоритма компоновки. Ключевые слова: генетический алгоритм, пчелиный алгоритм, ЭВА. Kudryakova T.Y., Semushina N.S., Semushin E.Y. The hybrid method for solving the problem layout schemes, taking into account the criterion of energy. The article is dedicated to the development of a method for solving the layout problem based on genetic hybridization and swarm algorithms. Formulate the layout of circuit blocks EVA tasks, as the problem of the partition of the graph on the criterion of minimizing the number of external fins. A structural block diagram of a layout algorithm. Keywords: genetic algorithm, bees algorithm, EVA. 156 УДК 623.2.045.772.12 Решение задачи компоновки эволюционным методом И.О. Купов, В.А. Козачков, В.В. Царегородцев Южный Федеральный университет [email protected] Купов И.О., Козачков В.А., Царегородцев В.В. Решение задачи компоновки эволюционным методом. В статье рассмотрена ключевая проблема решения задачи компоновки блоков ЭВА, т.е. разбиение коммутационной схемы на части. Это связанно с тем, что решение данной задачи позволяет значительно сократить временные затраты. Подробно рассмотрена одна из важнейших задач этапа конструкторского проектирования, а именно задача компоновки блоков электронно-вычислительной аппаратуры, качество решения которой напрямую влияет на качество размещения и трассировки схем и их тепловых, временных, энергетических характеристик. Определена постановка задачи компоновки блоков ЭВА.В работе разработан модифицированный эволюционный поиск решения задачи компоновки блоков ЭВА, основанный на основе эволюционной модели Поппера. В предложенном алгоритме используются модифицированные генетические операторы. Ключевые слова: Компоновка, ЭВА, блок, эволюция, метод. Введение В настоящее время создание комплексных систем поддержки жизненного цикла изделий определяются подсистемами компьютерного - интегрированного производства (КИП). В компьютерные системы для автоматизации жизненного цикла продукции включаются системы автоматизации проектирования (САПР(CAD)), автоматизированные системы технологической подготовки производства (АСТПП(CAM)), автоматизированные системы управления технологическими процессами (АСУТП(CAE)) [1]. Для того, чтобы получить решение задачи за приемлемое время, при условиях, когда размещение полной информации об объекте в памяти компьютера невозможно, в современных системах проектирования применяется иерархический подход [1]. Суть иерархического подхода – разбиение задачи проектирования СБИС на несколько последовательных этапов. Именно на этапе конструкторского проектирования САПР ЭВА достигаются те результаты, которые наибольшим образом отражаются в процессе производства. Поэтому автоматизация конструкторского проектирования является актуальной и важной задачей, связанной с непрерывным изменением технологий производств и появлением новых элементов с большой степенью интеграции (более 109). Основные этапы конструкторского проектирования ЭВА — это разбиение (компоновка), размещение, планирование, трассировка, сжатие топологии и верификация [1]. Среди этих задач компоновка блоков ЭВА, т.е. разбиение коммутационной схемы на части занимает особое место. Это связанно с тем, что решение данной задачи позволяет значительно сократить временные затраты. Так что разработка новых и модифицированных эволюционных методов компоновки с полиномиальной временной сложностью является актуальной и важной задачей сегодняшнего дня. Постановка задачи компоновки Компоновка - одна из первоначальных процедур, выполняемых на этапе конструкторского проектирования ЭВА. Процедура перехода от принципиальной электрической схемы к конструктивному распределению имеющихся элементов на группы, согласные конструктивам различных уровней. Другими словами, компоновка это процедура преобразования функционального описания аппаратуры в конструктивное. Задачу компоновки схемы блоков ЭВА можно сформулировать, как задачу разбиения графа G=(X,U) на части Gi = (Xi,Ui), Xi X, Ui U, i I={1,2,...,l}, где, l – число частей, на которое разбивается граф. 157 Другими словами, совокупность частей P(G)={G1, G2, Gi, ..., Gl} является разбиением графа G, если любая часть из этой совокупности не пустая, если для любых двух частей из P(G) пересечение множества вершин пустое, пересечение множества ребер может быть не пустым, а также если объединение всех частей l равно графу G. |Ui,j|=Ki,j называется числом соединительных ребер частей Gi и Gj графа G. Число соединительных ребер всех частей графа [2]. 1 n n K K i , j , 2 i 1 j 1 (ij). (1) Задачей разбиения графа G=(X,U) является нахождение такой совокупности частей, чтобы число соединительных ребер графа G удовлетворяло заданному критерию оптимальности. Обычно за критерий разбиения принимают величину K. Тогда целью оптимизации является K→min. Отметим, что это аналогично стремлению к максимуму числа внутренних ребер разбиения [2-4]. (|U|-K)→max. (2) Назовем отношение суммарного числа внутренних ребер к суммарному числу соединительных ребер коэффициентом разбиения d(G) графа G. d(G)= (|U|-K)/K. (3) Коэффициент разбиения d(G) служит для оценки разбиения графа G на части. Этот коэффициент можно также использовать как критерий для сравнения различных алгоритмов разбиения графа. Задача разбиения графа G на части относится к задачам комбинаторно-логического типа, получение оптимального решения которых связано с большим перебором различных вариантов разбиения [5-6]. Разработка модифицированной схемы эволюционного поиска Модифицированная архитектура схемы разбиения графа на части на основе эволюционной модели Поппера представлена на рис. 1. Здесь в блоке 1 строится начальная популяция, т.е. определяется заданное подмножество разбиений В1, В2, ..., Вk. Отметим, что такая популяция (подмножество решений) может быть получена точным, эвристическим, случайным, направленным или комбинированными методами. При наличии большого количества элементов наиболее предпочтительными будут эвристические, конструктивные, итерационные, случайные и поисковые алгоритмы для получения текущей популяции решений. В качестве ЦФ выберем К. Для каждого элемента текущей популяции вычисляется и определяется среднее значение ЦФ на данной популяции. Блок 4 осуществляет сортировку популяции на основе ЦФ. Здесь могут быть применены все существующие методы сортировки. Сначала расставляются элементы с наименьшим значением К и т.д. по возрастанию. Также блок 5 выполняет селекцию популяции для получения родительских пар. Селекция выполняется одним из методов, описанных далее. Простейшим случаем селекции может являться последовательный метод выбора наилучших (в смысле функции К) хромосом после сортировки. Блок 5 осуществляет реализацию ГО и их модификаций. Блок 6 осуществляет проверку условия выхода, сохранение и выбор лучшего решения из текущей популяции. Блоки 7 и 8 осуществляют построение новой популяции решений. Далее для каждой хромосомы из новой популяции вычисляется К и выживают те элементы из старой и новой популяции, у которых К < Кср. При этом в стандартном случае, количество элементов в новой популяции не должно превышать число элементов в старой популяции. Блок 9 содержит информацию о внешней среде, которая влияет на процесс формирования популяции. Здесь задаются параметры допустимости решений (ограничения), конструкторские и топологические ограничения, параметры проводников для модели Эльмора. 158 Начало 1 9 Создание начальной популяции Внешняя среда 2 Оценка решений (расчет ЦФ) 3 8 Реализация различных моделей эволюции Создание новой популяции 4 Сортировка и выбор хромосомы для ГО 5 Модифицированные ГО (ОК, ОМ, ОИ) 7 Редукция 6 нет Анализ условия окончания? да Конец Рисунок 1 – Модифицированная схема генетического поиска В ходе выполнения алгоритма для каждой хромосомы определяются ЦФ. Алгоритм поиска, описанный выше, для числа итераций, определяемых пользователем. ГА использует устоявшийся подход, в котором генерации определяются для исследования эволюции и накопления статистики. Это позволяет частично решать проблему предварительной сходимости. Заключение В статье был рассмотрен очень важный этап в начале конструкторского проектирования. Это задача компоновки блоков ЭВА с учетом функциональных критериев. В ходе выполнения работы были рассмотрены и проанализированы проблемы решения задачи компоновки блоков ЭВА. Литература 1 Норенков И.П. Основы автоматизированного проектирования [Текст] / И.П. Норенков – М.: Изд-во МГТУ имени Н.Э.Баумана, 2006.-360с. 2 Курейчик В.М. Математическое обеспечение конструкторского и технологического проектирования с применением САПР [Текст] / В. М. Курейчик. – М: Радио и связь, 2010. – 352 с. 3 Курейчик В.М. Генетические алгоритмы и их применение [Текст]: Монография /В.М. Курейчик. – Таганрог: Изд-во ТРТУ, 2012. 4 Курейчик В.В. Эволюционные, синергетические и гомеостатические методы принятия решений [Текст]: Монография / В.В.Курейчик. – Таганрог: Изд-во ТРТУ, 2011. – 221 с. 5 Курейчик В.В. Построение и анализ генетических алгоритмов раскраски графа на основе моделей искусственных систем [Текст] / В.В Курейчик // Труды международного конгресса IСАI-2011, Искусственный интеллект в 21-веке. – М.: Физмалит. –2011. – С. 665 – 675. 6 Дуккардт А.Н. Методы Генетического поиска для мультихромосомных представлений [Текст] / А.Н. Дуккардт // VII Всеросийская научная конференция студентов и аспирантов «Техническая кибернетика, радиоэлектроника, и системы управления», Таганрог, 2004. - 108 с. 159 Купов И.О., Козачков В.А., Царегородцев В.В. Решение задачи компоновки эволюционным методом. В статье рассмотрена ключевая проблема решения задачи компоновки блоков ЭВА, т.е. разбиение коммутационной схемы на части. Это связанно с тем, что решение данной задачи позволяет значительно сократить временные затраты. Подробно рассмотрена одна из важнейших задач этапа конструкторского проектирования, а именно задача компоновки блоков электронно-вычислительной аппаратуры, качество решения которой напрямую влияет на качество размещения и трассировки схем и их тепловых, временных, энергетических характеристик. Определена постановка задачи компоновки блоков ЭВА.В работе разработан модифицированный эволюционный поиск решения задачи компоновки блоков ЭВА, основанный на основе эволюционной модели Поппера. В предложенном алгоритме используются модифицированные генетические операторы. Ключевые слова: Компоновка, ЭВА, блок, эволюция, метод. Kupov I.O., Kozachkov V.A., Tsaregorodtcev V.V. Solution of the problem partitioning evolutionary methodsarrangement. The article deals with the key problem of solving the problem layout blocks EVA, ie partitioning a portion of a circuit diagram. This is due to the fact that the solution of this problem can significantly reduce the time spent. Details considered one of the most important tasks of the design development phase, namely the task of linking units of computer equipment, the quality of decisions that directly affect the quality of the placement and routing schemes and their thermal, time, energy characteristics. Formulation of the problem is defined layout blocks EVA.V work developed a modified evolutionary search for solutions to the problem layout blocks EVA, based on the basis of Popper's evolutionary model. The proposed algorithm uses a modified genetic operators. Keywords: partitioning, EVA block evolution method. 160 УДК 623.2.045.772.12 Разработка гибридного алгоритма решения задачи компоновки СБИС Е.О. Лебедева, Полякова (Кравцова) А.А., Терещенко Д.Ю. Южный Федеральный университет [email protected] Лебедева Е.О., Полякова (Кравцова) А.А., Терещенко Д.Ю. "Разработка гибридного алгоритма решения задачи компоновки СБИС". В статье рассмотрена ключевая проблема решения задачи компоновки. Подробно рассмотрена одна из важнейших задач этапа конструкторского проектирования, а именно задача компоновки компонентов сверхбольших интегральных схем, качество решения которой напрямую влияет на качество компоновки, а также трассировки схем и их тепловых, временных, энергетических характеристик. В работе рассмотрен гибридный алгоритм решения задачи компоновки СБИС с учетом функциональных критериев. Одним из новых направлений решения задачи компоновки являются мультиагентные методы интеллектуальной оптимизации, базирующиеся на моделировании коллективного интеллекта. Представлена постановка задачи компоновки, маршруты проектирования СБИС. Основная идея данного подхода заключается в последовательной работе роевого и генетического алгоритмов. Ключевые слова: гибрид, алгоритма, компоновка, СБИС Введение В последнее время для решения различных «сложных» задач, к которым относятся и задачи компоновки, всё чаще используются способы, основанные на применении методов искусственного интеллекта. Особенно наблюдается стремительный рост интереса к разработке алгоритмов, инспирированных природными системами. В основе большинства этих алгоритмов лежат идеи, заимствованные в природе, а также базовые постулаты универсальности и фундаментальности, присущие самоорганизации природных систем [1-3]. Одним из новых направлений таких методов являются мультиагентные методы интеллектуальной оптимизации, базирующиеся на моделировании коллективного интеллекта. Коллективная система способна решать сложные динамические задачи по выполнению совместной работы, которая не могла бы выполняться каждым элементом системы в отдельности в разнообразных средах без внешнего управления, контроля или координации. В таких случаях говорят о роевом интеллекте (Swarm intelligence), как о замысловатых способах кооперативного поведения, то есть стратегии выживания. Оптимизация с использованием роя частиц (Particle Swarm Optimization, PSO) – это метод поиска, который базируется на понятии популяции, и моделирует поведение птиц в стае и косяков рыб [2]. Рой частиц может рассматриваться как многоагентная система, в которой каждый агент (частица) функционирует автономно по очень простым правилам. В противовес почти примитивному поведению агентов, поведение всей системы получается на удивление разумным. В работе излагается метод решения задачи компоновки на основе роевого интеллекта и генетической эволюции. Постановка задачи Под компоновкой понимают процесс формирования конструктивов высших иерархических уровней из конструктивов низших иерархических уровней. Под компоновкой также понимают разрезание на части большой схемы, которая может быть структурная, функциональная, логическая, электрическая принципиальная, на части. Наиболее известными параметрами, используемыми при разрезании схемы на части (модули), являются: число модулей, число связей между модулями, число терминалов, электромагнитная совместимость элементов, тепловая совместимость элементов. Однако в настоящее время, в связи с увеличением точности технологического процесса изготовления СБИС, геометрические размеры транзисторов сократились до 0.09 микрон! В настоящее время промышленностью выпускается широкая номенклатура СБИС, суперкристаллов, содержащих миллионы элементов на кристалле 25х25мм. Неуклонное повышение степени интеграции СБИС привело к тому, что в них более 60% общей временной задержки сигнала приходится на задержки в межсоединениях. [4]. 161 а) б) Рисунок 1 – Разбиение графа на три части а) Граф G=(X,U); б) Разбиение графа G на три подграфа B1, B2, B3. На рис. 1 число межблочных цепей F всех трех кусков графа G составляет F=7. Основными критериями оптимизации являются [5]: - число межблочных соединений; - длина задержки сигнала; - число конструктивно законченных блоков. В качестве ограничений, которые накладываются на задачу разбиения, могут быть [6]: - число модулей разбиения; - число элементов в каждом модуле; - максимальное число внешних связей. Задача разбиения относится к задачам дискретной условной оптимизации. Количество методов решения таких задач довольно велико, хотя эффективные алгоритмы популярны лишь для специальных классов задач (например, линейного, квадратичного или выпуклого программирования). Следовательно, большинство методов не может быть использовано в задаче разбиения в связи с её дискретностью. Поэтому, данные задачи выделяют в особый класс комбинаторных задач. Решение задачи разбиения полным перебором даже с учётом ограничений недопустимо, из-за очень большого объёма вычислительной работы. В предоставленной работе решается задача компоновки элементов. Роевой алгоритм компоновки В основном под задачей компоновки подразумевается определение взаимного расположения элементов на плоскости в соответствии с заданным критерием или несколькими критериями. На основе критериев предлагается целевая функция. Сформулируем задачу компоновки. Пусть задано множество элементов и множество позиций на коммутационном поле (КП) [1,5,6]. Необходимо назначить элементы в позиции в соответствии с критерием (критериями) таким образом, чтобы целевая функция имела значение наиболее приближенное к оптимальным. В качестве модели представления цепи был выбран звездный граф. Центром графа является вершина находящаяся наиболее близко к геометрическому центру области, описывающей все вершины графа. В алгоритме компоновки каждое решение представляется в виде точки (позиции) xs в многомерном пространстве, где каждая координата позиции xi представляет собой один параметр функции Fs, которую надо оптимизировать. Каждая позиция является аналогией источника нектара. Количество нектара содержащегося в некотором источнике определяется координатами соответствующей позиции. Найденное количество нектара представляет собой значение целевой функции в этой точке. Разработка поведенческой модели самоорганизации колонии пчёл, заключаются в разработке методов и механизмов: - формирования роя агентов разведчиков и роя агентов фуражиров; - поиска перспективных позиций разведчиками; - выбора базовых позиций среди перспективных для исследования их окрестностей; - передачи информации между разведчиками и фуражирами; - выбора фуражирами базовых позиций; - выбора фуражирами позиций в окрестности базовой позиций; - общей структуры оптимизационного процесса [2]. Рассмотрим организацию поисковой процедуры на основе моделирования адаптивного поведения пчелиной колонии. Весь процесс формирования показан на рис. 2. 162 1 3 6 2 5 7 4 9 8 Окрестности решения л разв 1 3 6 2 5 7 4 9 8 9 пче едчи к 9 1 F 10, f ( x1 ) 10 0 пчел 0 ра 6 3 5 7 2 8 9 4 1 F 8, f (x1) 8 f ( x2 ) з ве дч ик 1 F 5 1 2 3 4 5 6 7 8 9 разв едчи к 4 пче л 5п че л 1 F 1 Улей разведчик f (x4 ) 1 f ( x1 ) F 4 1 f (x3) F Рисунок 2 - Схема поиска и определение окрестности Ввод схемы и параметров алгоритма. Посадочные места под компоненты имеют фиксированные габариты в виде прямоугольников. Вначале вводиться параметры поля x и y , где x - количество посадочных мест по горизонтали, y - количество посадочных мест по вертикали. После чего вводятся количество деталей размещенных в этих ячейках. Количество посадочных мест должно быть меньше чем количество компонентов. Также вводиться матрица связности. В нашем случае можно выбрать вариант: генерировать матрицу связности случайным образом (random), или корректировать в ручном режиме. Матрица связности определяет привязку компонентов к посадочным местам. Схема генерируется случайным образом, поскольку задачи связывать программу с какой-то конкретной схемой, не стоит. Так же вводим данные для биониспирированного алгоритма. Это число итераций, число разведчиков и число фуражиров (пчелы сборщики). Разведка формирование случайных решений R . Разведчики вылетают из улья, тем самым формируют строку решения для каждой целевой функции, в области поиска. После чего они возвращаются в улей и сообщают фуражирам о найденных решениях (значение целевой функции в нашей задачи это минимальное число связей между элементами). После чего пропорционально значению целевой функции вылетают фуражиры. Разработка гибридного алгоритма решения задачи компоновки Предложим гибридный алгоритм компоновки с учетом функциональных критериев. Идея гибридного алгоритма заключается в том, что все пчелы на каждом шаге будут выбирать как элитные участки для исследования, так и участки в окрестности элитных, что позволит, во-первых, разнообразить популяцию решений на последующих итерациях, во-вторых, увеличить вероятность обнаружения близких к оптимальным решения. Таким образом, гибридный алгоритм можно представить следующей последовательностью операций: 1°В соответствии с постановкой задачи разбиения и исходными данными создаётся популяция пчёл (хромосом). 2°Отправка пчёл-исследователей. Определение месторасположения источников нектара vi. Для каждой пчелы случайным образом задается начальная позиция xi; 3° Исследование окрестности источника с нектаром. 4°Оценка ЦФ пчёл в популяции. Выбор источника нектара пчелой-исследователем с определённой вероятностью, в зависимости от его качества. Для каждой пчелы устанавливается лучший (элитный) участок, который она посещала с начала первой итерации, и значение целевой функции fiti на этом участке. Участки е, на которых значения ЦФ больше (элитные участки) отбираются для поиска решений в их окрестностях; 5°Выбор пчёл с лучшими значениями ЦФ с каждого источника; 6°Задание размера окрестности для поиска О; вводится управляющий параметр от 1 до 100. 7° Осуществляется поиск решений в окрестности элитных участков; 8° Формирование популяции на основе анализа элитных участков. 9° Переход от популяции источников к популяции хромосом. 10° выполнение генетического алгоритма. Генетических операторов кроссинговера и мутации. 11° Редукция лучших решений. 12° Проверка критерия останова (количество итерация, время работы алгоритма). 13° Конец работы алгоритма. 163 Заключение В статье рассмотрена актуальная на сегодняшний день задача компоновки схем с учетом функциональных критериев. Были рассмотрены проблемы решения задачи компоновки. Разработан гибридный алгоритм на основе последовательной работы роевого алгоритма, основанного на поведении пчелиной колонии и генетического алгоритма. Литература 1 Норенков И.П. Основы автоматизированного проектирования [Текст] / И.П. Норенков – М.: Изд-во МГТУ имени Н.Э.Баумана, 2006.-360с. 2 Курейчик В.М. Математическое обеспечение конструкторского и технологического проектирования с применением САПР [Текст] / В. М. Курейчик. – М: Радио и связь, 2010. – 352 с. 3 Лебедев Б.К. Методы поисковой адаптации в задачах автоматизированного проектирования СБИС [Текст]: Монография / Б.К. Лебедев. – Таганрог: Издательство ТРТУ, 2010. – 192 с. 4 Курейчик В.М. Генетические алгоритмы и их применение [Текст]: Монография /В.М. Курейчик. – Таганрог: Изд-во ТРТУ, 2012. 5 Курейчик В.В. Эволюционные, синергетические и гомеостатические методы принятия решений [Текст]: Монография / В.В.Курейчик. – Таганрог: Изд-во ТРТУ, 2011. – 221 с. 6 Курейчик В.В. Построение и анализ генетических алгоритмов раскраски графа на основе моделей искусственных систем [Текст] / В.В Курейчик // Труды международного конгресса IСАI-2011, Искусственный интеллект в 21-веке. – М.: Физмалит. –2011. – C. 665 – 675. Лебедева Е.О., Полякова (Кравцова) А.А., Терещенко Д.Ю. Разработка гибридного алгоритма решения задачи компоновки СБИС. В статье рассмотрена ключевая проблема решения задачи компоновки. Подробно рассмотрена одна из важнейших задач этапа конструкторского проектирования, а именно задача компоновки компонентов сверхбольших интегральных схем, качество решения которой напрямую влияет на качество компоновки, а также трассировки схем и их тепловых, временных, энергетических характеристик. В работе рассмотрен гибридный алгоритм решения задачи компоновки СБИС с учетом функциональных критериев. Одним из новых направлений решения задачи компоновки являются мультиагентные методы интеллектуальной оптимизации, базирующиеся на моделировании коллективного интеллекта. Представлена постановка задачи компоновки, маршруты проектирования СБИС. Основная идея данного подхода заключается в последовательной работе роевого и генетического алгоритмов. Ключевые слова: гибрид, алгоритма, компоновка, СБИС Lebedeva E.O., Polyakova (Kravtcova) A.A., Tereshenko D.Y. The development of a hybrid algorithm for solving the problem of VLSI layout. The article deals with the key problem of solving the problem layout. Details considered one of the most important tasks of the design development phase, namely the task of linking the components of VLSI, the quality of decisions that directly affect the quality of the accommodation and trace circuits and heat, time, energy characteristics. In this paper we consider a hybrid algorithm for VLSI layout based on functional criteria. One of the new directions for solving the problem layout is multi-agent intelligent optimization techniques based on modeling of collective intelligence. Presented formulation of the problem layout, routes VLSI design. The basic idea of this approach is consistent work streams and genetic algorithms. Keywords: hybrid, algorithm, layout, VLSI 164 УДК 004.023 Композитный алгоритм компоновки А.А. Лежебоков, А.В. Ковтун, Е.В. Туйсус Южный Федеральный университет [email protected] Лежебоков А.А., Ковтун А.В., Туйсус Е.В. Композитный алгоритм компоновки. В статье проводится рассмотрение проблемы композитного алгоритма компоновки, заключающейся в минимизации числа внешних связей между блоками элементов сверхбольших интегральных схем. Подробно рассматривается одна из главных задач конструкторского проектирования– задача компоновки. Решение, полученное в ходе выполнения этой задачи, оказывает влияние на последующие этапы конструкторского проектирования и влияет на такие ключевые параметры, как временные задержки, общая длина соединений и т.д. Проводится экспериментальное исследование сравнения композитного алгоритма с итерационным и эволюционным. Ключевые слова: последовательный алгоритм, итерационный алгоритм, эволюционный алгоритм, популяция, мутация. Введение Одной из основных задач конструкторского проектирования является задача компоновки. В наше время СБИС состоять из сотен миллионов транзисторов и с каждым годом их сложность только увеличивается. Для решения этой проблемы производится разбиение схемы на блоки согласно заданным критерия.С целью получения приемлемых результатов за допустимые промежутки времени появляется необходимостьв постоянной разработке новых алгоритмов компоновки. Одним из возможных вариантов может быть композитный алгоритм. Наиболее эффективным, на сегодняшний день, является использование различных алгоритмов, имитирующих природные процессы. Примерами таких алгоритмов могут быть: генетически, роевой, эволюционный и т.д. Они позволяют находить решения, приближенные к оптимальным, за приемлемые промежутки времени [1]. Постановка задачи С точки зрения математики задача компоновки (разбиения) имеет следующую формулировку. Дан граф G(X,U), где Х – множество вершин, отображающее множество элементов схемы; U – множество ребер, показывающее количество связей между элементами. Необходимо разбить граф G на k подграфов (G1, G2,…,Gk) таким образом, чтобы число вершин в подграфах не превышало заданное, а число ребер, между подграфами, имело минимальное значение [2]. Композитный алгоритм Композитный алгоритм представляет собой комплекс алгоритмов, использующихся последовательно и параллельно, с целью нахождения оптимального решения. Такой подход позволяет повысить скорость нахождения оптимального решения, приводит к снижению вероятности попадания в локальный оптимум и зачастую приводит к более качественным решениям, нежели чем при использование каждого алгоритма по отдельности [3,4,5]. На начальном этапе используется последовательного алгоритма. На его основе производится начальное разбиение начального множества элементов на блоки. Следующий этап представляет собой улучшение полученного начального решения средствами итерационного и эволюционного алгоритмов. Рассмотрим подробней последовательный алгоритм. Он представляет собой наиболее простой алгоритм компоновки. Входными параметрами являются количество элементов и число подграфов (блоков). Принцип его работы состоит в последовательном расположение элементов по блокам в зависимости от значения их локальной степени (числа связей). Полученное решение имеет низкое качество и требует последующего улучшения [2,6,7]. 165 Начало Входные данные Последовательный алгоритм Итерационный алгоритм Эволюционный алгоритм Условие остановки? да нет Вывод решения Окончание Рисунок 1 – Структурная схема композитного алгоритма Проведем рассмотрение итерационного алгоритма. Принцип работы это алгоритма заключается в многократной перестановке элементов или групп элементов. При перестановке элементов парами проводится расчет числа связей до и после перестановки. Затем производится выбор пары элементов, при перестановке которых максимально уменьшает число внешних связей между подграфами. Алгоритм будет выполнять итерации до выполнения критерия остановки или при достижение максимального улучшения. Метод групповых перестановок схож с парными перестановками, но заключается в перестановке групп, а не пар элементов. В этом методе производится временная перестановка элементов между подграфами с целью нахождения групп элементов при перестановки которых будет произведено уменьшение число внешних связей [2,6,7]. Выполним рассмотрение эволюционного алгоритма. Этот алгоритм моделирует процесс эволюции в живой природе. Его отличительной особенностью является использование различных операторов, моделирующих естественные процессы, таких как скрещивание, селекции, мутации и отбора. После окончания работы итерационного алгоритма улучшение осуществляется средствами эволюционного алгоритма. Принцип эволюционного алгоритма заключается в выборе пар хромосом для их последующего скрещивания. Выполнения случайных изменение в хромосоме по средствам мутации с заданной вероятностью. Расчет целевой функции и отбор, на основание ее значения, лучших решений [2,8]. Была проведена разработка программной реализации композитного алгоритма компоновки, интерфейс которой представлен на рис. 2. 166 Рисунок 2 – Интерфейс программной реализации В ходе проведения экспериментальных исследований были получены следующие результаты. Начальные параметры: количество элементов – 100; число подграфов – 2; вероятность мутации – 10%; время работы –10 с. Используемый алгоритм Итерационный Эволюционный Композитный 100 33 22 19 200 82 65 61 Таблица 1. – Сравнение алгоритмов по значению ЦФ. Количество связей 500 1000 2000 227 462 956 196 417 865 184 399 841 Рисунок 3 – Зависимость ЦФ от общего числа связей Можно заметить, что композитный алгоритм предоставляет нам наилучшее решения компоновки элементов по блокам. Его результаты являются схожими с результатами эволюционного алгоритма. Также видно падение эффективности итерационного алгоритма с ростом числа связей по сравнению с другими 167 рассмотренными алгоритмами. В ходе наблюдений композитный алгоритм показал 5-10% прирост в эффективности решения по сравнению с эволюционным алгоритмом и 20-30% по сравнению с итерационным. Заключение В представленной работе выполнен подход к одной из основных задач конструкторского проектирования – задаче компоновки. Полученное решение поставленной задачи оказывает непосредственное влияния на последующие этапы конструкторского проектирования. За счет оптимального решения поставленной задачи происходит снижение общей длины соединений между элементами, снижаются временные задержки. Правильное компонование элементов приводит к улучшению тепловой и электромагнитной совместимость. Было предложено решить поставленную задачу путем использования композитного алгоритма. Литература 1. Курейчик В. В., Курейчик В. М., Родзин С. И. Теория эволюционных вычислений. – М.: ФИЗМАТЛИТ, 2012. 2. Курейчик В.В. Композитные бионические алгоритмы в компоновке блоков. - Известия ЮФУ. Технические науки. – 2006. № 8 (63). С. 41-46. 3. Bova V.V., Lezhebokov A.A., Gladkov L.A. Problem-oriented algorithms of solutions search based on the methods of swarm intelligence, World Applied Sciences Journal. 2013. Т. 27. № 9. С. 1201-1205. 4. Кравченко Ю.А., Марков В.В. Принятие решений в интегрированных информационных моделях на основе метода анализа иерархий, Известия ЮФУ. Технические науки. 2012. № 11 (136). С. 212-216. 5. Бова В.В., Курейчик В.В., Лежебоков А.А. Многоуровневый алгоритм решения задач транспортной логистики на основе методов роевого интеллекта, Вестник Ростовского государственного университета путей сообщения. 2013. № 3 (51). С. 113-118. 6. Кулиев Э.В., Лежебоков А.А., О гибридном алгоритме размещения компонентов СБИС, Известия ЮФУ. Технические науки. 2012. № 11 (136). С. 188-192. 7. Кулиев Э.В., Лежебоков А.А., Дуккардт А.Н. Подход к исследованию окрестностей в роевых алгоритмах для решения оптимизационных задач, Известия ЮФУ. Технические науки. 2014. № 7 (156). С. 1525. 8. Бова В.В., Курейчик В.В., Лежебоков А.А. Проблемно ориентированный генетический алгоритм упаковки разногабаритных элементов, Вестник Ростовского государственного университета путей сообщения. 2014. № 3 (55). С. 52-59. Лежебоков А.А., Ковтун А.В., Туйсус Е.В. Композитный алгоритм компоновки. В статье проводится рассмотрение проблемы композитного алгоритма компоновки, заключающейся в минимизации числа внешних связей между блоками элементов сверхбольших интегральных схем. Подробно рассматривается одна из главных задач конструкторского проектирования– задача компоновки. Решение, полученное в ходе выполнения этой задачи, оказывает влияние на последующие этапы конструкторского проектирования и влияет на такие ключевые параметры, как временные задержки, общая длина соединений и т.д. Проводится экспериментальное исследование сравнения композитного алгоритма с итерационным и эволюционным. Ключевые слова: последовательный алгоритм, итерационный алгоритм, эволюционный алгоритм, популяция, мутация. Legebokov A.A., Kovtun A.V., Tuysus E.V. Composite algorithm of layout. The article addressing the issue of composite layout algorithm is to minimize the number of external connections between the blocks elements of VLSI. Details considered one of the main tasks of construction engineering - the problem layout. The solution obtained in the course of this task, has an effect on the subsequent stages of construction engineering and influences key parameters such as time delays, the total length of connections, etc. It is conducting a pilot study comparing the composite algorithm with an iterative and evolutionary. Keywords: sequential algorithm, iterative algorithm, evolutionary algorithm, population, mutation. 168 УДК 004.896 Модуль интеграции данных для экспертной оценки результатов процессов проектирования А.А. Лежебоков, Е.В. Туйсус, А.В. Ковтун Южный Федеральный университет [email protected] Лежебоков А.А., Туйсус Е.В., Ковтун А.В. Модуль интеграции данных для экспертной оценки результатов процессов проектирования. В работе рассмотрена экспертная оценка результатов процесса проектирования на примере задачи компоновки, выделены критерии, используемые для оценки качества результатов решения этой задачи и данные задачи, которые необходимо интегрировать в экспертную систему для последующей экспертной оценки. Выполнена разработка архитектуры, структуры базы данных и алгоритма работы модуля для интеграции данных о задаче компоновки. Также в работе рассмотрены уровни интеграции данных, особости интеграции данных в сервисно-ориентированых приложениях, рассмотрена архитектура типовой экспертной системы. Ключевые слова: интеграция, экспертная система, проектирование. Введение Работа с интегрированными данными позволяет производить анализ полученных результатов, вести статистику, а также производить сравнительный анализ нескольких сходных этапов проектирования, проверять улучшились или ухудшились результаты для проектирования топологии одних СБИС и сравнивать их для других, а также возможно последующая интеграция этих данных в другие информационные системы. Такой обмена информацией применим во множестве сфер человеческой деятельности. Например, в научной деятельности, данными являются результаты научных исследований, инженерных и технических расчетов, эти данные могут быть получены в одних системах, и интегрированные в другие системы для последующего изучения и анализа. Такое использование данных позволяет сравнивать несколько данных различного вида, в одной системе, или переносить данных из систем, изначально не предназначенных для анализа данных [1]. Целью данной работы является создание архитектуры, структуры базы данных и алгоритма работы модуля интеграции данных для экспертной оценки результатов процесса конструкторского проектирования и для хранения результатов этой оценки. Процесс проектирования Проектирование — процесс определения архитектуры, компонентов, интерфейсов и других характеристик системы или её части. Проектирование технического объекта – создание, преобразование и представление в принятой форме образа этого еще не существующего объекта. Образ объекта или его составных частей может создаваться в воображении человека в результате творческого процесса или генерироваться в соответствии с некоторыми алгоритмами в процессе взаимодействия человека и электронной вычислительной машины (ЭВМ) [2]. Для современных СБИС выделяют три основных независимых части проектирования [3]: логическое проектирование, тестирование и верификация, синтез топологии. В данной работе наибольший интерес представляет этап конструкторского проектирования. В контексте проектирования СБИС, исходными данными для конструкторского проектирования являются электрические схемы, в итоге конструкторского проектирования получается топология схемы [3]. В ходе конструкторского проектирования выполняются следующие этапы: разбиение, планирование, размещение, трассировка, компакция, верификация. Рассмотрим эти этапы подробней. 169 Разбиение. На этом этапе происходит разбиение компонентов схемы в блоки. Критериями разбиения является множество факторов: размер блоков, число блоков, число межсоединений между блоками. В итоге формируется множество блоков и межсоединений между ними. Планирование. На этом этапе определяется взаимное расположение блоков друг относительно друга. Критерии планирования: Длина связей между блоками, распределение связей по полю кристалла, число изгибов соединений, временные задержки, площадь и размеры кристалла. Размещение. В ходе этого этапе определяется конкретное место для каждого блока на кристалле. Для задачи размещения принимаются такие же критерии, что и в задаче планирования. Трассировка. Этап заключается в конструктивной реализации связей элементов между собой. В настоящее время используется двухуровневая трассировка: глобальная и детальная (Канальная) [3]. Глобальная трассировка. Заключается в предварительном распределении соединений по областям трассировки без определенной геометрии топологии. Для глобальной трассировки используется следующие данные: информация о размещении блоков, выводов на их границах, расположении выводов на границе чипа, а также список указанием соответствующих цепей, которые подходят выводам блоков [4]. Детальная (канальная) трассировка. Основная задача канальной трассировки – нахождение минимально возможной ширины канала, для размещения в нём необходимых соединений и назначение их на магистрали. Также, необходимо минимизировать суммарную длину соединений (цепей), число переходных отверстий и т.п. Также в ходе канальной трассировке следует соблюдать следующие ограничения [3]: цепи не могут накладываться друг на друга; точки касания цепей отсутствуют; в одной точке пересекаются не более двух цепей. Компакция. Этап сводится к уменьшению общей площади кристалла. Верификация. На этом этапе производятся проверки параметров влияющих на работу (например, геометрические размеры, временные задержки, ограничения) итоговой топологии схемы. Архитектура модуля Созданная архитектура имеет 4 контролера для связи между пользователем и слоем доступа к данным и несколько вспомогательных служб, рассмотрим эти компоненты подробнее. Контроллер формы интеграции данных: отвечает за связь между представлением формы интеграции и слоем хранения данных, контроллер позволяет принимать POST-запросы от формы и обрабатывать их и передавать в соответствующие модели. Контроллер также связан со службой экспертной оценки. Контроллер алгоритмов САПР, предоставляет функционал для работы с алгоритмами, внесенными в систему, также контроллер позволяет вносить и сохранять в систему новые алгоритмы. Контроллер схем, позволяет работать с интегрированными в систему схемами, в случае компоновки, с данными задачи компоновки и её грифовым представлением. Контроллер результатов, предназначен для работы с результатами, полученными в ходе работы ЭС, также с этим контроллером связана работа служба экспертной оценки. Служба экспертной оценки, предназначена для проведения оценки и проведения оценки работы алгоритмов. Программная реализация алгоритмов представляет собой отдельные службы, реализующие один интерфейс, а служба экспертной оценки является классом фабрикой, которая использует нужные службы алгоритмов и возвращает обобщённый результат. На рис. 1 показано её графическое представление Рассмотрим слой хранения данных, для данной архитектуры используется структура БД показанная на рис. 2. В модуле структура реализуется в виде следующих моделей: Алгоритм САПР – сущность алгоритма САПР используемого в системе для оценки, новые алгоритмы можно добавлять через панель администрирования модуля. Для алгоритма можно задать название, псевдоним, используемый при работе ЭС и указать класс, в котором будет содержаться программная реализация алгоритма – служба алгоритма. Категория алгоритма – категория задачи решаемого алгоритмом, например компоновка. Схема компоновки – сущность содержащая данные задачи компоновки. Результат компоновки – сущность содержащая данные результата компоновки, сущность связана со схемой компоновки и алгоритмом САПР. Вершина – вершина графового представления данных задач проектирования, коллекция таких вершин представляет собой граф, связанный с сущностью схемы. 170 Рисунок 1 – Архитектура разрабатываемого модуля Рисунок 2 – Структура БД 171 Алгоритм работы На рис. 3 показан алгоритм работы модуля интеграции данных, для примера выбран этап компоновки. Рассмотрим алгоритм работы подробней. На первом и втором этапе происходит ввод данных задачи конструкторского проектирования. После ввода данные задачи интегрируются в систему, также для задачи компоновки происходит построение графовой модели задачи. Далее происходит построение предварительных результатов, при необходимости происходит прогон задачи по некоторым (или всем) алгоритмам, если предварительная оценка невозможна. После построение оценок происходит их анализ, и итоговые данные интегрируются в систему для последующего анализа и хранения. В итоге пользователю предоставляются результаты оценок с рекомендациями, по использованию алгоритмов для компоновки. Рисунок 3 – Алгоритм работы модуля интеграции данных Заключение В результате работы была разработана архитектура, структура базы данных, схема и алгоритм работы для модуля интеграции данных для экспертной оценки результатов процесса проектирования. Архитектура построена принципам MVC архитектуры, и включает в себя представления интерфейса, модели баз данных, контроллеры для связи между ними, а также вспомогательные службы необходимые для работы модуля. Также выполнена программная реализация этого модуля на языке высокого уровня PHP с использованием фреймворка Zend Freamwork. Разработанный модуль является частью экспертной системы для оценки результатов процессов проектирования и позволяет производить интеграцию данных в экспертную систему для дальнейшего хранения и анализа. Экспертная система работает посредством веб-интерфейса, что позволяет использовать ЭС вне зависимости от операционной системы или устройства, также, использование клиент-серверной архитектуры позволят предоставлять удаленный доступ к ЭС для её пользователей. 172 Литература 8.Черняк Л. Интеграция данных: синтаксис и семантика [текст] / Л. Черняк // «Открытые системы», № 10, 2009. 9.Норенков И. П. Основы автоматизированного проектирования: Учебное пособие для вузов [Текст] / И. П. Норенков Москва: Изд-во МГТУ имени Н.Э. Баумана, 2009. – 430с. 10. Кравченко Ю.А., Марков В.В., Принятие решений в интегрированных информационных моделях на основе метода анализа иерархий, Известия ЮФУ. Технические науки. 2012. № 11 (136). С. 212-216. 11. Кравченко Ю.А., Лежебоков А.А., Запорожец Д.Ю., Способы интеллектуального анализа данных в сложных системах, Известия Кабардино-Балкарского научного центра РАН. 2012. № 3. С. 52-57. 12. Лежебоков А.А., Бова В.В., Шугушхов Х.М., Средства и технологии виртуального прототипирования для поддержки процессов автоматизированного проектирования, Известия Кабардино-Балкарского научного центра РАН. 2013. № 5 (55). С. 17-21. 13. Кудаев А.Ю., Лежебоков А.А., Нагоев З.В., Виртуальное прототипирование в интегрированных сапр машиностроения и электроники на основе онтонейроморфогенетического моделирования, Известия ЮФУ. Технические науки. 2013. № 7 (144). С. 29-35. 14. Запорожец Д.Ю., Кудаев А.Ю., Лежебоков А.А., Многоуровневый алгоритм решения задачи параметрической оптимизации на основе биоинспирированных эвристик, Известия Кабардино-Балкарского научного центра РАН. 2013. № 4 (54). С. 21-28. 15. Bova V.V., Lezhebokov A.A., Gladkov L.A., Problem-oriented algorithms of solutions search based on the methods of swarm intelligence, World Applied Sciences Journal. 2013. Т. 27. № 9. С. 1201-1205. Лежебоков А.А., Туйсус Е.В., Ковтун А.В. Модуль интеграции данных для экспертной оценки результатов процессов проектирования. В работе рассмотрена экспертная оценка результатов процесса проектирования на примере задачи компоновки, выделены критерии, используемые для оценки качества результатов решения этой задачи и данные задачи, которые необходимо интегрировать в экспертную систему для последующей экспертной оценки. Выполнена разработка архитектуры, структуры базы данных и алгоритма работы модуля для интеграции данных о задаче компоновки. Также в работе рассмотрены уровни интеграции данных, особости интеграции данных в сервисно-ориентированых приложениях, рассмотрена архитектура типовой экспертной системы. Ключевые слова: интеграция, экспертная система, проектирование. Legebokov A.A., Tuysus E.V., Kovtun A.V. Module data integration for peer evaluation of the design process. The paper considers the results of expert assessment of the design process by the example of the layout problems, highlighted the criteria used to assess the quality of the results of this task and the task data that must be integrated into an expert system for the subsequent peer review. Completed development of the architecture, database structure and algorithm of the module for the integration of the layout of the task data. Also in the paper the levels of data integration, a special data integration serviceorientation applications, the architecture of a typical expert system. Keywords: integration, expert system design. Keywords: system, information, accounting, record, research intensity. 173 УДК 004.82 Об одном модуле визуализации результатов экспериментов А.А. Лежебоков, Э.С. Цырульникова, А.Е. Лебединский Южный Федеральный университет [email protected] Лежебоков А.А., Цырульникова Э.С., Лебединский А.Е. Об одной модуле визуализации результатов экспериментов. В статье рассмотрена проблема визуализации результатов экспериментов, которая заключается в создании модуля для интегрированной инструментальной среды поддержки процедур эволюционного поиска, с помощью средств веб-разработки. Представлен подход к решению одной из задач процесса компьютерного моделирования, а именно задачи визуализации результатов научных исследований, обеспечивающих анализ и правильную интерпретацию результатов вычислений, а также дальнейшую работу с вычислительной моделью. Подробно рассмотрена архитектура модуля визуализации и алгоритм его работы. Ключевые слова: визуализация, компоновка, генетический алгоритм. Введение Визуальное представление численных данных, являющихся результатами научных исследований или прикладных, инженерных и технологических расчетов, на сегодняшний день представляет собой важнейшую отрасль знания и технологического развития. Без использования современных концепций, методов и программных средств научной визуализации, изложенных в работе [1] и в научной статье [2] невозможно провести полный и достоверный анализ результатов численного моделирования сложных физических и технологических процессов, проводимый на современной вычислительной технике. Еще до появления компьютерной техники, то есть в период традиционной, “бескомпьютерной” (или “докомпьютерной”) визуализации, к основным функциям визуализации относили иллюстративную и коммуникативную функции. Но из иллюстративного инструмента визуальное представление данных эксперимента превратилось в полноправный инструмент познания окружающего мира, добавив к своему перечню функций когнитивную. Получить и понять научный результат становится возможным зачастую только с помощью совокупности методов и концептуальных подходов визуального представления численных данных. Это новое качество визуального представления численных полей называют научной визуализацией [3]. Визуализация является существенной частью процесса численного моделирования [4-5], обеспечивающей анализ и правильную интерпретацию результатов вычислений, а также дальнейшую работу с вычислительной моделью, что крайне важно в области систем автоматизированного проектирования, где почти все задачи являются NP-трудными и результаты которых, особенно в условиях с большим количеством данных, сложно интерпретировать безошибочно. Архитектура модуля визуализации Модуль визуализации представляет собой часть интегрированной инструментальной среды поддержки процедур эволюционного поиска, позволяет работать с данными не только экспертам в области САПР, но и обычным пользователям. После занесения экспертом данных, либо вручную, либо из внешнего файла, пользователь может их анализировать, пользуясь удобством и итеративностью графиков и диаграмм. Внутреннее устройство модуля визуализации (рис. 1) представляет собой набор взаимосвязанных блоков. Модуль имеет веб-интерфейс и ввод/вывод осуществляется через веб-браузер, обеспечивающий абсолютную кроссплатформенность, будь то стационарный компьютер или мобильное устройство, что на данный момент является крайне популярным видом используемой компьютерной техники. Блок авторизации, т.е. предоставления определённому лицу прав на использование функционала модуля. Блок ввода исходных данных представляет собой занесение пользователем данных для визуализации в таблицы. 174 Рисунок 1 - Архитектура модуля визуализации Блок импорта, не реализованный на данный момент, с помощью, JS-библиотеки Highcharts, позволяет загружать данные из CSV-файлов, HTML-таблиц или Google-таблиц. Управление экспериментами дает возможность выбора параметров и особенностей ЭВМ на которой проводились эксперименты, выбора статуса эксперимента, а так же управление входящими в эксперимент таблицами данных, их редактирование. Блок управление бенчмарками позволяет создавать и редактировать бенчмарки. Настройки параметров таблиц включают в себя размерность таблицы, описание строк и столбцов, описание данных хранимых на их пересечении. Блок экспорта реализует экспорт графиков в форматах: PNG, JPEG, PDF, SVG, для дальнейшей работы с ними вне модуля визуализации. Блок визуализации осуществляется с помощью выбранной в главе 1 JS-библиотек и представляет собой процесс преобразования табличных данных в графики. Модуль имеет базу данных (БД) для хранения данных о пользователях, созданных экскрементах, бенчмарках, таблицах данных. Алгоритм работы модуля Алгоритм работы модуля пошагово раскрывает все его возможности и дает достаточное представление о его функционале (рисунок 2). Блок №1 — авторизация предоставляет зарегистрированным пользователям доступ к использованию функционала модуля. Если же пользователь не зарегистрирован, то для доступа необходимо пройти процедуру регистрации. Блок №2 — возможность перехода на создание бенчмарка или если нет в нем необходимости переход на блок 4. Блок №3 — создание бенчмарка (занесение эталонных значений). Блок №4 — для внесения данных в таблицы необходимо создать «эксперимент», который объединяет одной темой серию полученных результатов исследований. Блок №5 —создание эксперимента. Блок №6 — для внесения данных необходимо создать таблицу, в которую заносятся полученные данные результатов исследований. Блок №7 — для создания таблицы необходимо заполнить все обязательные поля, такие как название таблицы, описание, дата, название столбцов, строк, выбрать число столбцов, строк, и значения ячеек, которые будут на пересечении заголовок строк и столбцов. Блок №8 — добавление данных, которые далее будут визуализированы в виде графиков. Блок №9 — внесение данных возможно из внешних источников (CSV-файлов, HTML-таблиц или Google-таблиц). Блок №10 — собственно загрузка файла с данными. Блок №11 — внесение данных в таблицу, созданную на 5ом шаге, при создании таблицы осуществляется переход на следующую страницу, где сформирована таблица, на основании введенных ранние данных. Блок №12 — имеется возможность редактирования внесенных вручную данных - важная функция, т.к. здесь человеческий фактор играет большую роль и вероятность ошибки велика. Блок №13 — редактирование доступно для всех таблиц, в которых было введено хотя бы одно значение. Блок №14 — если есть необходимость сравнения с бенчмарком, переход на блок 15, если нет, на блок 16. Блок №15 — при выборе бенчмарка происходит добавление строк в исходную таблицу, для последующей совместной визуализации. Блок №16 — если нужно провести анализ данных, включающий выбор типа графика для визуализации и саму визуализацию, то переход к блоку 17, иначе к блоку 22. Блок №17 — выбор типа графика/диаграммы, подходящего под конкретные данные и нужды. 175 Рисунок 2 - Алгоритм работы модуля визуализации Блок №18 — собственно визуализация, отображение внесенных данных в графическом виде. Блок №19 — после внесения и визуализирования данных, пользователь может видеть составленные графики/диаграммы и экспортировать их отдельно к себе на устройство. Блок №20 — экспорт графиков возможен в формате PNG, JPEG, PDF, SVG. Блок №21 — стандартное сохранение файла с интернет страниц, выбор места сохранения на запоминающем устройстве. Блок №22 — если работа завершена и больше нет необходимости внесения/изменения/анализа данных, то выход из системы - конец работы алгоритма, иначе возвращается ко 2му шагу. Заключение В работе представлен подход к решению одной из задач процесса компьютерного моделирования, а именно задачи визуализации результатов научных исследований, обеспечивающих анализ и правильную интерпретацию результатов вычислений, а также дальнейшую работу с вычислительной моделью. Авторами было предложено решить задачу визуализации и в ходе работы были рассмотрены основные методы визуализации, дано обоснование выбора подхода к реализации процесса визуализации, проведен обзор и анализ средств визуализации. В работе отмечается важность и актуальность процесса визуализации результатов научных исследований и практическое применение визуализации для задач конструкторского проектирования. Разработана архитектура, структура базы данных и алгоритм работы модуля визуализации данных. Программная реализация модуля выполнена на языке высокого уровня PHP с использованием фреймворка Symfony, а также с помощью языка JavaScript и JavaScript-библиотек jQuery – для упрощения 176 написания кода и Highcharts – для визуализации данных. И так как модуль имеет веб-интерфеса были использованы возможности языка разметки — HTML5 и каскадных таблиц стилей – CSS3. Произведена демонстрация работы модуля на примере задачи компоновки. Литература 16. А.Е. Бондарев, В.А.Галактионов Научная визуализация в задачах вычислительной физики: концепции, методы, перспективы // Институт прикладной математики им. М.В.Келдыша РАН. 17. К.А. Шаропин, О.Г. Берестнева, Г.И. Шкатова Визуализация результатов экспериментальных исследований // Известия Томского политехнического университета. Т.316, N 5, 2010, стр 172-176. 18. Авербух В.Л. К теории компьютерной визуализации [Текст] / В.Л. Авербух // Вычислительные технологии, 2005. С 21-51. 19. Heermann Ph. D. Production Visualization for the ASCI One TeraFLOPS Machine // Proceedings of the 9th Annual IEEE Conference on Visualization, Oct 18-23 1998, ACM Press, New York, 1998, pp. 459-482. 20. Самарский А.А. Математическое моделирование и вычислительный эксперимент [Текст] / А.А. Самарский // Вестник АН СССР, 1979. C. 38-49. 21. Bova V.V., Lezhebokov A.A., Gladkov L.A., Problem-oriented algorithms of solutions search based on the methods of swarm intelligence, World Applied Sciences Journal. 2013. Т. 27. № 9. С. 1201-1205. 22. Кравченко Ю.А., Лежебоков А.А., Запорожец Д.Ю., Способы интеллектуального анализа данных в сложных системах, Известия Кабардино-Балкарского научного центра РАН. 2012. № 3. С. 52-57. 23. Кравченко Ю.А., Марков В.В., Принятие решений в интегрированных информационных моделях на основе метода анализа иерархий, Известия ЮФУ. Технические науки. 2012. № 11 (136). С. 212-216. Лежебоков А.А., Цырульникова Э.С., Лебединский А.Е. Об одной модуле визуализации результатов экспериментов. В статье рассмотрена проблема визуализации результатов экспериментов, которая заключается в создании модуля для интегрированной инструментальной среды поддержки процедур эволюционного поиска, с помощью средств веб-разработки. Представлен подход к решению одной из задач процесса компьютерного моделирования, а именно задачи визуализации результатов научных исследований, обеспечивающих анализ и правильную интерпретацию результатов вычислений, а также дальнейшую работу с вычислительной моделью. Подробно рассмотрена архитектура модуля визуализации и алгоритм его работы. Ключевые слова: визуализация, компоновка, генетический алгоритм. Legebokov A.A., Tsyrulnikova E.S., Lebedinsky A.E. On a visualization module of the experimental results. In the article the problem of visualizing the results of experiments, which is to create a module for an integrated tool environment support evolutionary search procedures using web development tools. An approach to solving one of the problems of computer simulation of the process, namely the problem of visualization of research results, providing analysis and correct interpretation of the results of calculations, as well as further work with the computer model. The article details the architecture visualization module and algorithm of its work. Keywords: visualization, layout, genetic algorithm. 177 УДК 004.051 Разработка PDM-подсистемы САПР сайта научного журнала Новиков Е.Т., Андрюхин А.И. Донецкий национальный технический университет [email protected], [email protected] Новиков Е.Т., Андрюхин А.И. Разработка PDM-подсистемы САПР сайта научного журнала. В работе предлагается решение задачи автоматизации документооборота. Приведен обзор используемого процесса создания моделей. Данная работа нацелена на исследование современных технологий и методов, используемых для автоматизации документооборота, а также освящение современных программных продуктов, реализующих эти технологии. Введение Электронный документооборот - высокотехнологичный и прогрессивный подход к существенному повышению эффективности работы. Чем выше количество различных документов и файлов, тем сложнее становиться их использовать. Система управления базами данных предоставляет полный контроль над процессом определения данных, их обработкой и использованием. Совместное использование систем электронного делопроизводства и хранилищ информации позволяет систематизировать и объединять информацию, что облегчает ее анализ и составление отчетов и дальнейшее использование. Информационные безбумажные технологии облегчают процесс управления знаниями. Они создают основу решений, обеспечивающих автоматизированный и централизованный обмен знаниями, и получают только необходимую информацию из всех доступных источников. Общая постановка проблемы РНР — это серверный язык создания сценариев, разработанный специально для Web. В HTMLстраницу можно внедрить код РНР, который будет выполняться при каждом ее посещении. Код РНР интерпретируется Web-сервером и генерирует HTML или иной вывод, наблюдаемый посетителем страницы. Таким образом, можно задать последовательность действий, которая будет выполнена над загружаемым документом. Документу можно поменять имя, которое будет автоматически присвоено разработанным модулем. Это нужно для последующей сортировки и управления потоками документов. Так же по данному имени файла он будет автоматически выгружен на сайт научных статей. Предусмотрен контроль над типом загружаемого файла и его размером, что бы избежать загрузки неверных файлов. Все загруженные документы должны быть обработаны и автоматически сохранены в базу данных, из которой они и будет выгружены на сайт [1]. В информационной системе предусмотрены три уровня управления: 1) управление файлами, осуществляемое в процессе их генерации и эксплуатации. Основными операциями являются открытие и закрытие, переименование, реорганизация, восстановление баз данных, снятие отчетов по базам данных; 2) управление записями, которое включает чтение, добавление, удаление и составление записей; 3) управление полями записей[2]. Классификация структуры БД MySQL - это система управления реляционными базами данных, очень часто применяемая в сочетании с PHP [3]. База данных представляет собой структурированную совокупность данных. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является ПО MySQL. В реляционной базе данных данные хранятся в отдельных таблицах, благодаря чему достигается выигрыш в скорости и гибкости. Таблицы связываются между собой при помощи отношений, благодаря чему обеспечивается возможность объединять при выполнении запроса данные из нескольких таблиц. SQL как часть системы MySQL можно охарактеризовать как язык структурированных запросив плюс наиболее распространенный стандартный язык, используемый для доступа к базам данных. В таблице приведена сравнительная характеристика способов обращения к данным для различных структур баз данных [3]. 178 Технические возможности СУБД MySQL MySQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API). Мы также поставляем сервер MySQL в виде многопоточной библиотеки, которую можно подключить к пользовательскому приложению и получить компактный, более быстрый и легкий в управлении продукт. Cтруктура MySQL трехуровневая: базы данных — таблицы — записи. Базы данных и таблицы MySQL физически представляются файлами с расширениями frm, MYD, MYI. Логически - таблица представляет собой совокупность записей. А записи - это совокупность полей разного типа. Имя базы данных MySQL уникально в пределах системы, а таблицы - в пределах базы данных, поля - в пределах таблицы. Один сервер MySQL может поддерживать сразу несколько баз данных, доступ к которым может разграничиваться логином и паролем. Ниже приведена таблица сравнения характеристики и способов обращения к данным для различных структур баз данных и схема последовательности работы клиент-сервер[4]. Таблица 1 - Сравнение характеристики и способов обращени к данным Рисунок 1 – Схема последовательности работы клиент-сервер 179 Методы решения задачи При проектировании архитектуры системы за основу была принята технология клиент-сервер. В основе этой концепции лежит идея о том, что кроме хранения файлов базы данных, центральный сервер должен выполнять основную часть обработки данных. Пользователи обращаются к центральному серверу с помощью специального языка структурированных запросов (SQL, Structured Query Language), на котором описывается список задач, которые выполняются сервером. Запросы пользователей принимаются сервером и порождают в нем процессы обработки данных. СУБД MySQL является реляционной. В реляционных базах данных информация храниться в одной или нескольких таблицах. Связь между таблицами осуществляется с помощью значений одного или нескольких совпадающих полей. Каждая строка таблицы в реляционных базах данных уникальна. Для обеспечения уникальности строк используется индексация по одному или нескольким полям таблицы. [5] Страница для загрузки файлов может быть реализована при помощи специальной формы, которая выглядит так: <form enctype="multipart/form-data" action="__URL__" method="POST"> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <!-- Название элемента input определяет имя в массиве $_FILES --> Отправить этот файл: <input name="userfile" type="file" /> <input type="submit" value="Send File" /> </form> Глобальный массив $_FILES содержит всю информацию о загруженных файлах. $_FILES['userfile']['name'] Оригинальное имя файла на компьютере клиента. $_FILES['userfile']['type'] Mime-тип файла, в случае, если браузер предоставил такую информацию. Пример: "image/gif". Этот mime-тип не проверяется в PHP, так что не полагайтесь на его значение без проверки. $_FILES['userfile']['size'] Размер в байтах принятого файла. $_FILES['userfile']['tmp_name'] Временное имя, с которым принятый файл был сохранен на сервере. $_FILES['userfile']['error'] Код ошибки, которая может возникнуть при загрузке файла[6]. Когда форма отправляется на сервер, управление данными передается программе, заданной атрибутом action тега <form>. Предварительно браузер подготавливает информацию в виде пары «имя=значение», где имя определяется атрибутом name тега <input>, а значение введено пользователем или установлено в поле формы по умолчанию [8]. PHP-скрипт, принимающий загруженный файл, должен реализовывать логику, необходимую для определения дальнейших действий над принятым файлом. Например, вы можете проверить переменную$_FILES['userfile']['size'], чтобы отсечь слишком большие или слишком маленькие файлы. Также вы можете использовать переменную $_FILES['userfile']['type'] для исключения файлов, которые не удовлетворяют критерию касательно типа файла, однако, принимайте во внимание, что это поле полностью контролируется клиентом, используйте его только в качестве первой из серии проверок. Также вы можете использовать $_FILES['userfile']['error'] и коды ошибок при реализации вашей логики. Независимо от того, какую модель поведения вы выбрали, вы должны удалить файл из временной папки или переместить его в другую директорию. В случае, если при отправке формы файл выбран не был, PHP установит переменную $_FILES['userfile']['size'] значением 0, а переменную $_FILES['userfile'] ['tmp_name'] - пустой строкой. none [8]. По окончанию работы скрипта, в случае, если принятый файл не был переименован или перемещен, он будет автоматически удален из временной папки. Приведенные методы позволят реализовать предлагаемую систему по автоматизированному управлению потоками документов: проверка на корректность, переименование, сохранение, последующая выгрузка на сайт в заданный раздел. Все это делается автоматически, без затраты человеческих ресурсов, что позволяет экономить много времени на рутинных действиях с которыми может справиться компьютер [9]. Исследования В ходе работы выделены основные возможности SQL: выполнять запросы к базе данных; извлекать данные из базы данных; добавить записи в базу данных; обновить записи в базе данных; удалить записи из базы данных; создавать новые базы данных; создавать новые таблицы в базе данных; 180 создавать хранимые процедуры в базе данных; настроить разрешения для таблиц . Предлагаемая база данных состоит из одной таблицы содержащей столбцы и строки в которых помещается информация о присылаемом файле. Алгоритм совершаемых действий над присылаемым файлом можно свести к нескольким шагам: Прием файла и проверка его на корректность; Переименование файла в зависимости от конечной цели; Сохранение файла в созданную БД, а так же всей информации которая идет с файлом; Размещение файла на сайте в заданном виде. Данная модель позволяет работать с большим количеством документов, а так же изменять свой функционал в зависимости от конечной цели. Предлогаемая система вмещает в себя ряд различных языков и методов для ее реализации: PHP – задействован метод передачи файлов POST; HTML – необходим для разработки графической части системы; MySQL – необходим для создания базы данных, в которой хранятся файлы.; Преимущества Представленная идея автоматизированной системы управления документооборотом позволит автоматизировать сбор, обработку, сохранение и размещение присланных документов. Преимущество предлагаемой системы состоит в том, что для управления такой системой необходимо тратить минимум времени. Так же система легко адаптивна. Если потребуется функциональное изменение для решения новых задач, то данная система имеет возможность изменения. Такой подход предлагается реализовать на языке серверной разработке PHP. Так же будет задействован язык гипертекстовой разметки HTML. Выводы В данной работе были рассмотренные наиболее актуальные методы реализации автоматизированной системы управления документами. Рассмотрен язык программирования PHP. В ходе разработки применен метод передачи файлов POST. Рассмотрены различные средства реализации баз данных. Был выбран самый подходящий для данной задачи клиент-сервер. Реализован интерфейс, поля ввода и внешний вид формы средствами HTML. Литература 1.PHP.SU [Электронный ресурс]. - Режим доступа к ресурсу: http://www.php.su/php/?php. к ресурсу: http://elearning.sumdu.edu.ua/free_content/lectured:89b3d175c06a6b137e410cb14821d0e94549ad5a/20151030211833/ 44150/index.html. 2. Информационные системы работы с базами данных [Электронный ресурс]. - Режим доступа к ресурсу: http://bibliograph.com.ua/deyatelnost-predpriyatiya-2/20.htm 3. Справочное руководство по MySQL [Электронный ресурс] - Режим доступа к ресурсу: http://www.mysql.ru/docs/man/MySQL-PostgreSQL_ features.html 4. Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа к ресурсу: https://ru.wikipedia.org/wiki/MySQL. 5. Информационные системы и базы данных [Электронный ресурс]. - Режим доступа. 6. Википедия - свободная энциклопедия [Электронный ресурс]. - Режим доступа к ресурсу: https://ru.wikipedia.org/wiki/PHP. 7. Методы создания оптимальной модели баз данных [Электронный ресурс] - Режим доступа к ресурсу: http://ua.textreferat.com/referat-8069-1.html 8. Локальный сервер на Windows [Электронный ресурс] - Режим доступа к ресурсу: https://habrahabr.ru/post/150972/. 9. Работа с данными в базе данных [Электронный ресурс] - Режим доступа к ресурсу: http://www.programmersforum.ru/showthread.php?t=108739. Novikov E. T., A. I. Andryukhin Development of PDM system for CAD of the website of the scientific journal. This paper proposes a solution to the problem of workflow automation. Given an overview of the process of creating models. This work aims to study the modern technologies and methods used to automate the workflow, as well as the consecration of modern software products that implement these technologies. Keywords: HTML, CAD, PHP, MySQL, client-server. 181 УДК 004.5 Анализ и сравнение современных MIDI-секвенсоров как проблемноориентированных САПР Погорелов Д.Д. , Григорьев А.В. Донецкий национальный технический университет [email protected] Погорелов Д.Д., Григорьев А.В. Анализ и сравнение современных MIDI-секвенсоров как проблемно-ориентированных САПР. В статье производится анализ современных MIDIсеквенсоров, поиск в них функционала типичного САПР. Выполнен обзор наиболее актуальных на сегодняшний день MIDI-секвенсоров Ключевые слова: САПР, секвенсор, анализ инструментальные средства композитора. Введение Актуальность работы: в последнее время аудио-секвенсоры всё больше используют для написания музыки, не только современно направленной, но и классической. В будущем каждый музыкант и композитор должен будет уметь использовать данные программы, что бы быть актуальным на музыкальном рынке. Секвенсор – это аппаратное или программное устройство для записи в реальном времени и воспроизведения музыки, как совокупности нот и характеристик их исполнения, представляемых в различных формах, например CV-Gate или MIDI-сообщений. Принцип работы секвенсера заключается в том, что записываются MIDI-сообщения от устройств во внутреннюю программную память для последующего воспроизведения. Таким образом, секвенсор по своим функциям аналогичен магнитофону, за исключением того, что он записывает не звуковые данные, а программные команды для различных MIDI-устройств Типичный секвенсор включают в себя полный в той или иной мере набор инструментов для композитора, включая: генерация нотных данных; сохранение во всех видах муз-данных; подключение миди-инструментов; редактирование звуков; генерация нотных данных, сохранение во всех видах муз-данных, подключение мидиинструментов и редактирование звуков. Приведённые ниже программы включают в себя полный в той или иной мере набор для композитора. Исходят из функций, конкретных операций, возможностей и результатов работы, можно сказать, что секвенсор – это проблемно-ориентированный САПР музыкальных произведений. Соответствие анализ такого рода систем можно проводить с точки зрения полноты функциональности его как САПР. Это позволит точнее исследовать полноту его функциональности, возможности технологии и выявления проблем и перспектив развития. Цель работы: - Анализ и сравнение современных MIDI-секвенсоров с точки зрения представления их как типичного САПР, т.е. поиск в них: CAD, CAM CAE элементов; - Выявление перспектив развития секвенсоров. 1. Структура и функции типичного САПР В соответствии с ГОСТ[1][2], в структуре САПР выделяют следующие элементы: КСАП САПР — комплекс средств автоматизации проектирования САПР; подсистемы САПР, как элемент структуры САПР, возникают при эксплуатации пользователями КСАП подсистем САПР; КСАП-подсистемы САПР — совокупность ПМК, ПТК и отдельных компонентов обеспечения САПР, не вошедших в программные комплексы, объединённая общей для подсистемы функцией; ПТК — программно-технические комплексы; компоненты обеспечения ПТК САПР; ПМК — программно-методические комплексы; компоненты обеспечения ПМК САПР; компоненты обеспечения САПР, не вошедшие в ПМК и ПТК; 182 Совокупность КСАП различных подсистем формируют КСАП всей САПР в целом. 2. Обзор наиболее актуальных на сегодняшний день аудио- секвенсоров. 2.1. Анализ FL Studio FL Studio – это мощная студия для редактирования музыки на вашем компьютере. FL Studio, которая раньше называлась Fruity Loops, была преобразована из MIDI-секвенсора в полноценное приложение для редактирования звука. Есть множество причин скачать FL Studio и начать использовать ее, чтобы писать музыку на компьютере. Как она выглядит? Давайте взглянем на интерфейс FL Studio (рис. 1). Пользователи, знакомые с FL Studio, сразу узнают темно-зеленый цвет и окно со скругленными краями, которые были в предыдущих версиях. Однако для нового пользователя структура программы может быть трудной для понимания. Окно проводника слева содержит все файлы, которые вам понадобятся – от пресетов до проектов и партитур. При нажатии на ресурс откроется окно, где можно выбрать отдельный элемент. Эту библиотеку, где уже содержится внушительное количество плагиноввроде DirectWave, EQUO или Fruity Squeeze, можно наполнить своими семплами. В FL Studio есть "умный" поиск, который позволяет быстро найти любой трек, инструмент или эффект. Рисунок 1 – Интефейс программы FL Studio Как использовать FL Studio Для редактирования треков в FL Studio вы можете использовать окно с паттернами, где находятся все инструменты, которые вы выбрали. Для каждого инструмента вам нужно будет создать необходимые паттерны. Также вы можете использовать окно плейлиста, которое разделено на область паттернов (сверху) и аудио-треков (снизу). В этом окне есть удобный инструмент "кисточка", при помощи которого можно раскрашивать паттерны в разные цвета. Также вы можете редактировать треки при помощи окна фортепианной клавиатуры, что может быть удобно, если у вас подключена midi-клавиатура. Первоначально FL Studio может показаться запутанной, но если вы знакомы с секвенсорами, то у вас не должно возникнуть проблем. Все инструменты и семплеры работают в стерео-режиме, поэтому чтобы получить несколько выходов, необходимо создать нужное количество элементов. Для тех, кто хочет подсоединить настоящие инструменты, в FL Studio есть поддержка нескольких midiвходов и педали сустейна. В микшере FL Studio есть большое количество пресетов, что поможет вам очень точно настроить звучание трека. FL Studio – отличный секвенсор для тех, кто хочет создавать биты. Удобное окно проводника и такие окна редактирования, как плейлист, фортепианная клавиатура или окно паттернов помогут вам работать так, как вам удобно. Благодаря микшеру с точными настройками и большой библиотеке плагинов FL Studio является отличным приложением для редактирования звука. Функция Сhop позволяет генерировать мелодии относительно стиля и темпа (см. рис. 2.): 183 Рисунок 2 – Добавлекние нотных данных в программу FL Studio Рисунок 3 – Пример генерации нотных данных программы FL Studio Достоинства и недостатки Преимущества FruityLoops: Приятный, оригинальный интерфейс, Полная автоматизация почти всех элементов управления, Поддержка интерфейсов MIDI, DirectX, ASIO, VST(i), ReWire, Поддержка файлов формата MIDI, Wave, AIFF, MP3, Ogg Vorbis, FastTracker, Гигантская (по сравнению с другими аналогичными программами) коллекция виртуальных синтезаторов, самплеров, ромплеров, контроллеров, эффектов, Отличная студия для записи рока, синтпоп и хип-хоп, для проведения экспериментов. Недостатки FruityLoops: Программа не стабильна, и может зависнуть в любой не подходящий момент, Программа потребляет слишком много ресурсов при работе с драйверами DirectX и MIME с посторонними генераторами и эффектами, Программа потребляет слишком много ресурсов при работе с драйверами DirectX и MIME с посторонними генераторами и эффектами, Цена: 299 долларов. В качестве вывода отметим: что в программе FL Studio присутствуют CAD-технологии. Кроме того в программе присутствуют CAE-элементы. Это утверждение выходид из набора функционала программы. В частности, функция “Chop” – демонстрирует возможности синтеза и моделирования нотных данных. Программа отлично подходит для новичков и самостоятельного обучения, но не является профессиональной. 2.2. Анализ Reason Reason — программа для создания и записи музыки (рис 3) (цифровая звуковая рабочая станция), разработанная шведскойкомпанией Propellerhead Software. Эмулирует рэковую стойку с установленными в 184 неё аналоговыми синтезаторами, семплерами, сигнальными процессорами, секвенсорами и микшерами. Может использоваться или как самостоятельная виртуальная студия звукозаписи, или как набор виртуальных музыкальных инструментов для живого выступления, или для записи при помощи внешних секвенсоров Как она выглядит? Рисунок 3 – Интерфес программы Reason Как использовать Reason Идеей Reason является студия закрытого типа, с несколькими основными синтезаторами и самплерами, которые звучат обобщённо и могут имитировать звучание синтезаторов и самплеров прошлого. Для больших возможностей существует гигантская, умопомрачительная коллекция Звуковых банков для Причины, именуемая Рефиллами (Refill). Достоинства и недостатки Преимущества Reason: Невероятная стабильность, даже при полной загрузке, Удобный своеобразный интерфейс в виде стойки с оборудованием и проводами, Встроенные генераторы, эффекты и коллекция звуковых образцов и петель обеспечивает выполнение любых музыкальных задач, Особое звучание, имитирующее аналоговое оборудование, Поддержка образцов и петель в форматах Wave, AIFF, Rex, SoundFont, AKAI (при установке некоего дополнительного модуля), Собственный формат передачи данных ReWire для синхронизации с другими программами (С теми же Фруктами, например), бесчисленное количество звуковых банков (в основном, со звукозаписями), подходит для создания любой электронной музыки, любой «акустической» музыки, для экспериментов. Недостатки Reason: Закрытый интерфейс, нельзя подключить свой VSTi/DXi - подключаемый модуль, Цена: 399 Евро В качестве вывода отметим: Что программа Reason также имеет необходимый набор СADтехнологий. Программа в полный мере реализует себя при работе в студии. В связи с этим программа не подходит для домашнего использования. 2.3. Анализ Cubase Компания Steinberg в начале 2009 года анонсировала пятую версию популярного секвенсора Cubase (рис 4). Речь идет о трех вариантах аудио/MIDI редактора: Cubase, Cubase Studio и Cubase Essential. В продаже на российском рынке полный вариант Cubase стоит от $750. Для владельцев предыдущих версий имеется 185 возможность апгрейда за меньшую сумму в $300. Кроме того, возможен переход на полную версию Cubase 5, с урезанных Cubase Studio 4/5 или Cubase SX/SL. Как она выглядит? Рисунок 4 – Интерфейс программы Cubase Как использовать Cubase Cubase имеет несколько рабочих окон, предназначение которых совершенно разное. Окно Проекта основное окно программы. Здесь происходит монтаж вашей композиции, так как это своего рода мультитрековая среда. Здесь добавляются нужные миди, аудио треки, здесь происходит запись партий, здесь назначаются каналы и на треки подключаются VST инструменты - это ничто иное, как секвенсор. Окно клавишного редактора - это как бы другой уровень, уровень редактирования конкретной партии. Поскольку в миди редакторе, преимущественно мы имеем дело с миди событиями, то и редактирование партий происходит на уровне миди сообщений. Но чтобы нам было понятней, что как и куда - все редактирование представлено в виде отпечатков нот в клавишном редакторе. Здесь нужно оперировать такими понятиями, как длительность ноты, её высота, громкость. Другими словами, если в Окне проекта мы имеем дело с частями партии, то здесь с нотами. Следующие окна есть также немаловажными, например, окно редактирования аудио, предназначенное именно для для работы с аудио: обрезка, удаление шумов, деструктивная обработка - это все здесь. Но Cubase, прежде всего, это редактор midi, поэтому сначала нужно разобраться именно с этой частью программы. Вот как бы три основных рабочих окна. Окно для работы с нотами (Scores) - этой вкладкой есть смысл пользоваться лишь тогда, когда дело доходит до распечатывания партитур, а для редактирования нот вполне хватает Клавишного редактора. Окно Dram Map Setap в меню MIDI - на начальном этапе, пока вы не освоили клавишный редактор, нет смысла трогать. Предназначение этой вкладки - создать свою карту для барабанной установки, то есть можно запрограммировать вашу миди клавиатуру таким образом, что каждой отдельной клавише будет соответствовать тот или иной барабанный семплер. Таким образом, вы можете создать свою ударную установку из разных наборов ударных инструментов и управлять её. Очень подробно об этом, как создавать такие карты, объясняет Роман Борнысов в своем видеокурсе, так что - рекомендую. Впрочем в его видеоуроках можно почерпнуть не только эту информацию. Как работать в клавишном редакторе, как пользоваться настройками КВАНТАЙЗА, как пользоваться миди контролерами и т.д. и т.д. Поэтому, кто испытывает затруднения в изучении работы в Cubase - лучше всего прикупить себе этот курс и спокойно, без напрягов пройти его за 2-3 дня. Тогда перед вами выстроится вся целостная картина, а это очень важно, так как фишек и наворотов в Cubase немерено, поэтому нужно знать не только что и как, но и когда их использовать. Программа Cubase позволяет на выходе получать ноты (рис. 5). 186 Рисунок 5 – Нотные данные Достоинства и недостатки Достоинства Cubase: Невероятная стабильность, даже при полной загрузке Удобный своеобразный интерфейс в виде стойки с оборудованием и проводами, Встроенные генераторы, эффекты и коллекция звуковых образцов и петель обеспечивает выполнение любых музыкальных задач, Особое звучание, имитирующее аналоговое оборудование, Поддержка образцов и петель в форматах Wave, AIFF, Rex, SoundFont, AKAI (при установке некоего дополнительного модуля), Собственный формат передачи данных ReWire для синхронизации с другими программами (С теми же Фруктами, например), Бесчисленное количество звуковых банков (в основном, со звукозаписями), Подходит для создания любой электронной музыки, любой «акустической» музыки, для экспериментов. Недостатки Cubase: Закрытый интерфейс, нельзя подключить свой VSTi/DXi - подключаемый модуль, Цена: 399 Евро. В качестве вывода отметим: Что программа Cubase имеет полный набор CAD-технологий. Подходит для работы в домашних и студийных условиях. Имеет хороший набор CAE-элементов, генерирует нотные данных для дальнейшего использования. Выводы В данной статье проведен анализ современных MIDI-секвенсоров как проблемно ориентированных САПР. Провели анализ программа, выявили их достоинства и недостатки. Как перспективные пути развития и проблемы технологии в целом можно назвать: - достройка пакетов до полноценного состава САПР, т.е. – наличие в них необходимого пакета компонентов CAD/CAM/CAE/PDM; - развития отдельных компонент секвенсоров до уровня возможностей наиболее развитых частей САПР в других пакетах, в разряде «более подвинутых» предметных областей. . Литература 1. 2. 3. 4. http://www.rishamanis.com/uroki-muzyki/sekrety-elektronnoj-muzyki/flstudio-reason-i-cubase-chtoluchsche/ Справочник MIDI-секвенсоров. http://fl-studio.ru/- Главная страница официального сайта FL-Studio Документация. http://cubase5.ru/- Главная страница официального сайта Cubase5 Документация. https://www.propellerheads.se/reason-Справочник по программе- Reason. 187 Погорелов Д.Д., Григорьев А.В. Анализ и сравнение современных MIDI-секвенсоров как проблемно-ориентированных САПР. В статье производится анализ современных MIDIсеквенсоров, поиск в них функционала типичного САПР. Выполнен обзор наиболее актуальных на сегодняшний день MIDI-секвенсоров Ключевые слова: САПР, секвенсор, анализ инструментальные средства композитора. Pogorelov D.D. Grigoriev A.V. Analysis and comparison of modern-the MIDI sequencer as a problemoriented CAD. In the article, an analysis of modern MIDI-sequencers, search in their typical CAD functionality. A review of the most relevant today MIDI-sequencers Keywords: CAD, sequencing, analysis tools composer. 188 УДК 004.051 Эффективность применяемого алгоритма построения моделей с ограничениями в различных САПР Е.А. Роговец, А.В. Григорьев Донецкий национальный технический университет [email protected], [email protected] Роговец Е.А., Григорьев А.В. Эффективность применяемого алгоритма построения моделей с ограничениями в различных САПР. В работе предлагается решение задачи параметризации, использован вариативный метод создания параметрической модели. Приведен обзор используемого процесса создания моделей. К ознакомлению представлен математический метод построения моделей. Данная работа нацелена на исследование современных технологий и методов решения задачи параметризации, а также освящение современных программных продуктов, реализующих эти технологии. Введение Зачастую, при проектировании, в чертёж приходится вносить изменения, вызванные недостатками конструкции или модификации, и порой даже незначительные корректировки в размерах одной детали приводят к редактированию значительной части чертежа. Различные САПР предлагают для использования огромное множество зависимостей и алгоритмов, основными являются два вида налагаемых зависимостей: геометрические и размерные. Углубление в изучение параметризации позволит более гибко настраивать модели, а также автоматизировать процесс построения объектов в системе. Общая постановка проблемы Параметрические операции — это ключевые методы построения геометрических фигур в процессе их моделирования. Основным элементом для большинства операций есть 3D-профиль, при движении которого осуществляется формообразование. Параметрическое моделирование существенно отличается от обычного двухмерного черчения или трехмерного моделирования. Конструктор, в случае параметрического проектирования, создает математическую модель объектов с параметрами, при изменении которых происходят изменения конфигурации детали, взаимные перемещения деталей в сборке и т.п. Таким образом, параметризация предполагает автоматическое построение и последующее решение соответствующей системы уравнений, обеспечивающих перерасчет подмножества параметров модели объекта по части параметров, изменивших свое значение. Подробная схема актуальности использования параметризации для модели обусловлено также и частыми изменениями параметров объекта, это показано на рис. 1. Т.о., типичная задача параметризации состоит в модификации, реконструкции полученного ранее решения. Специфика конкретных задач параметризации зависит от специфики предметной области и типа задачи: создание нового объекта, модификация известного решения. Разработка средств параметризации для специфических условий применения в той или иной проблемно-ориентированной САПР – это важная и актуальная задача.[1] Классификация САПР Существует классификация САПР, различающаяся полнотой систем: тяжелые, легкие и средние САПР: Тяжелые. Основная особенность этого типа состоит в том, что их большие функциональные возможности, высокая производительность и стабильность получены в результате длительного развития. Все они довольно стары: CATIA появилась в 1981 г., Pro/Engineer — в 1988-м, Unigraphics NX, вышла совсем недавно, является результатом слияния двух весьма важных систем — Unigraphics и I-Deas, приобретенных вместе с компаниями Unigraphics и SDRC. Несмотря на то что такие системы значительно дороже других типов систем, затраты на их приобретение окупаются, особенно когда речь идет о сложном производстве, например, кораблестроении, двигателестроении, машиностроении и аэрокосмической промышленности. Сейчас 189 производители средств автоматического проектирования возлагают большие надежды на предприятия среднего и малого бизнеса, которых намного больше, чем промышленных гигантов. [7] Средние. Ведущими компаниями этого типа являются системы SolidEdge (разработанная фирмой Intergraph, позже перекупленная и теперь принадлежащая UGS PLM Solutions (EDS)), SolidWorks одноименной компании (в настоящее время — подразделение Dassault Systemes), а также главным лидером и самым популярным продуктом является Inventor и Mechanical Desktop корпорации Autodesk. Это далеко не полный перечень средних САПР. Их популярность среди пользователей постоянно растет, и именно поэтому данная область очень динамично развивается. В результате по функциональным возможностям средний класс постепенно догоняет своих более дорогостоящих и тяжелых конкурентов. Однако совершенно не всем пользователям нужно такое разнообразие функций. Тем, кто работает с двумерными чертежами, прекрасно подойдет система легкого типа, которая стоит гораздо дешевле. Легкие. Программы легкого сегмента служат для простого черчения в формате 2D, поэтому их обычно называют электронной чертежной доской. Хотя стоит сказать, что к настоящему времени этот тип и обрел некоторые трехмерные возможности. Рисунок 1 – Актуальность использования параметризации Методы решения задач параметризации Программирование в ограничениях и недоопределенные модели. Программирование в ограничениях (constraint programming) - достаточно новое направление в декларативном программировании. Появилось оно во многом в результате развития систем символьных вычислений, искусственного интеллекта и исследования операций. Программирование в ограничениях является по своей сути максимально декларативным и основано на описании модели задачи, а не алгоритма ее решения. То есть программирвание в ограничениях - это своего рода програм-мирование в терминах "постановок задач". В общем случае постановка задачи - это конечный набор переменных x[1], ..., x[n], соответствующих им конечных (перечислимых) множеств значений X = {X[1], ...,X[n]}, и набор ограничений С = {C[1],...,C[m]}. Ограничения представлены как утверждения, в которые входят в качетсве "параметров" переменные из некоторого подмножества X[j],j=1..m набора X. [5] Решение такой задачи - набор значений переменных, удовлетворяющий всем ограничениям C[j]. Такая постановка задачи называется проблемой удовлетворения ограничений, а для ее решения используются различные алгоритмы и методы. Теория «Концептуального програм-мирования». Этот алгоритм базируется на типе данных «неопределенное значение». Данный тип используется для описания переменных, которые пока что не определены не по типу, не по значению. Семантические модели задают переменные и отношения, имя модели задается в операторе задачи. В отношении задаются все возможные пути расчета всех переменных через прочие переменные, входящие в некоторое математическое выражение. Различаются: входные переменные (значения задаются), выходные переменные (значения вычисляются), слабо связанные переменные (иногда задаются, иногда рассчитываются), сильно связанные (значения меняются отношением), определяющие переменные (значения определяют применимость отношения). Имеются разрешимые и неразрешимые задачи, для которых путь построить невозможно. Затем генератор программ формирует программу как линейный вызов базовых функций, связанных по данным, в совокупности реализующих требуемый путь расчетов. 190 Относящийся к этому направлению аппарат недоопределенных моделей используется в широком спектре приложений и предоставляет принципиально новые возможности для решения задач в таких областях, как математические расчеты, инженерия знаний, проектирование, планирование. Недоопределенная модель. В Н-моделях переменной сопоставляется недоопределенное значение (или Н-значение), являющееся оценкой реального значения-денотата на основе доступной нам в данный момент информаци. Н-значение является промежуточным между полной определенностью (точное значение) и полной неопределенностью (весь универсум) и может уточняться по мере получения более точных данных. В процессе уточнения, т.е. при поступлении более точных данных, Н-значение становится все более определенным и в пределе может стать точным, т.е. равным денотату данной недоопределенной переменной (Н-переменной). Это означает, что для Н-переменной, вне зависимости от ее типа, следует различать два значения реальное неизвестное нам значение-денотат, которое она представляет, и ее текущее Н-значение, являющееся доступной оценкой этого реального значения.[4]. Недоопределенность может характеризовать не только значения параметров существующих объектов или процессов, но и виртуальных объектов, находящихся в процессе создания. В этом случае Н-значение выступает в качестве ограничения на вычисляемое значение. Исследования Все связи, именуемые параметрическими, можно условно разделить на категории: • геометрические (параллельность, перпендикулярность, взаимоотношения и т.д.); • топологические; • математические (связь параметров разных элементов, блоков и уравнений); • размеры.[2] Предлагаемая вариационная параметризация базируется на построении макета или эскиза, а также накладывании ограничений, зависимостей параметров и связей на объекты. Алгоритм построения параметрической модели вариационного вида можно свести к нескольким шагам: Создание эскиза для нужного действия, впоследствии на который и накладывают параметрические связи; Далее уточняются параметры, размеры и значения. Определяются переменные и задаются зависимости; Производится выбранное действие, в котором значения параметров и операций уже имеет значение и влияние; В случае необходимости создания сборки взаимное положение компонентов сборки задаётся путём указания сопряжений между ними. Вариационная параметризация позволяет легко изменять форму эскиза или величину параметров операций, что позволяет удобно модифицировать трёхмерную модель.[3] Предлагаемая вычислительная модель M=(X=( X1, Xi, X0), R) состоит из ряда параметров: Х – множество параметров, значения которых могут принимать различный вид: X1 – определяет одно точное значение; Хi – интервальное значение параметра; X0 – обозначает не определенное значение; R – множество отношений между параметрами.[6]. Преимущества Представленная идея вариационной параметрической модели позволит создавать проекты, которые будут иметь взаимосвязанные параметры. Возможность параметризировать трехмерную модель может значительно упростить создание объектов и оптимизировать работу над существующими проектами. Математическая модель будет изменять параметры автоматически подстраиваясь под внесенное редактирование уже готового объекта. Такой подход предлагается реализовать на языке LISP и интегрировать в среду САПР AUTOCAD.[11] Выводы В данной работе были рассмотренные последние достижения и разработки в области решения задачи параметризации, как Российских, так и зарубежных. Приведен обзор наиболее актуальных технологий. Программирование в ограничениях стало за последнее десятилетие самым перспективным и быстро развивающимся направлением на стыке искусственного интеллекта и вычислительной математики. Как видно, наиболее актуальной технологией в этой сфере является программирование в ограничениях, парадигма которого была предложена Российским ученым Нариньяни А.С. Эта технология широко применяется для решения разнообразного класса задач, включая задачи САПР и др. [12] 191 Литература 1. Параметрическое моделирование [Элект-ронный ресурс]. Режим доступа: https://ru.wikipedia.org/wiki/Параметрическое_моделирование. 2. Параметризация [Электронный ресурс]. - Режим доступа: http://www.sapr .ru/article.aspx ?id=8064&iid=325. 3. Нариньяни А.С., Телерман В.В., Ушаков Д.М., Швецов И.Е. Программирование в ограничениях и недоопределенныемодели //Информационные технологии №7, 1998. М., Издательство “Машиностроение”. - C. 13-22. 4. Григорьев А.В. Методы построения функций в специализированной оболочке для создания интеллектуальных САПР // Искусственный интеллект. – Донецк, 2001 – №3 – C. 40–53. 5. Журнал «Сапр и графика». SprutCAD: особенности национальной параметризации, // http://www.sapr.ru/article.aspx?id=7889&iid=319. 6. Программирования в ограничениях и недоопределенные модели, А.С.Нариньяни, В.В. Телерман, Д.М. Ушаков, И.Е. Швецов // http://www.raai.org/about/persons/nariniani/N-MODEL2.doc. 7. Статья. Инструментарий компьютерного моделирования. // http://rvles.ieie.n sc.ru/par inov/taomodel/2.htm. 8. Клещев А. С., Артемьева И. Л.. Математические модели онтологий предметных областей. Часть 1. Существующие подходы к определению понятия «онтология». // Научно – техническая информация, серия 2 «Информационные процессы и системы», 2001, № 2, с. 20 – 27. 9. Т. А. Гаврилова, В. Ф. Хорошевский. Базые знаний интеллектуальных систем. – С.-Пб.: Питер, 2001. 10. Кутателадзе С.С. Параметризация выпуклых изометрических задач. Сибирский журнал индустриальной математики, 1998. Том 1, № 1. 11. Роговец Е.А., Григорьев А.В. Разработка программных средств, повышающих эффективность решения задачи параметризации в САПР AUTOCAD // Информатика, управляющие системы, математическое и компьютерное моделирование ИУСМКМ– 2016. 12. Роговец Е.А. Нечеткая математика и параметризация в САПР // Компьютерная и программная инженерия - Донецк, 2015 - С. 184. Роговец Е.А., Григорьев А.В. Эффективность применяемого алгоритма построения моделей с ограничениями в различных САПР. В работе предлагается решение задачи параметризации, использован вариативный метод создания параметрической модели. Приведен обзор используемого процесса создания моделей. К ознакомлению представлен математический метод построения моделей. Данная работа нацелена на исследование современных технологий и методов решения задачи параметризации, а также освящение современных программных продуктов, реализующих эти технологии. Ключевые слова: autocad, САПР, алгоритм, программирование в ограничениях, параметризация. Rogovets EA Grigoriev AV The effectiveness of the applied algorithm for constructing models with constraints in CAD. The paper proposes a solution to the parameterization problem of variability used method for creating parametric model. An overview of the process used to create models. To educate is represented by a mathematical method for constructing models. This work focuses on the study of modern technologies and methods for solving the parameterization of the task, as well as the consecration of modern software products that implement those technologies. Kye-words: autocad, CAD, algorithm, constraint programming, parameterization. 192 УДК 658.512.2.011.5 Роевой алгоритм размещения компонентов СБИС с учетом временных характеристик Е.Ю. Семушин, И.О. Купов, В.В. Царегородцев Южный Федеральный университет [email protected] Семушин Е.Ю., Купов И.О., Царегородцев В.В. Роевой алгоритм размещения компонентов СБИС с учетом временных характеристик. В работе рассматривается задача размещения компонентов СБИС с учетом временных задержек сигнала. Предложена постановка задачи размещения, учитывающая временную задержку сигнала. Разработан роевой алгоритм размещения с учетом временных задержек. Проведены экспериментальные исследования разработанного роевого алгоритма размещения. Ключевые слова: Размещение, СБИС, роевой алгоритм, временные задержки. Введение В настоящее время аналоговая техника стремительно вытесняется более надежной цифровой, которая вся основывается на сверхбольших интегральных схемах (СБИС). С каждым днём площадь кристаллов СБИС становится всё меньше, а степень их интеграции всё больше [1]. Стоимость кристаллов СБИС складывается из стоимости их проектирования (постоянные затраты) и стоимости производства (переменные затраты). Основная задача автоматизации проектирования – обеспечение бездефектного проектирования, снижение материальных затрат, сокращение сроков проектирования и ликвидация роста количества инженерно-технических работников, занятых проектированием [1]. На сегодняшний день эффективным направлением в эволюционном моделировании являются вероятностные алгоритмы, основанные на процессах, происходящих в живой природе. Моделирование развития и совершенствования природы позволяет перейти к построению интеллектуальных систем. Проецируя закономерности окружающего мира на определенные сферы деятельности человека, мы получаем эффективный инструмент для решения задач проектирования СБИС [2]. Роевой интеллект (англ. Swarm intelligence) описывает коллективное поведение децентрализованной самоорганизующейся системы. Системы роевого интеллекта, как правило, состоят из множества агентов (многоагентная система) локально взаимодействующих между собой и с окружающей средой. Сами агенты обычно довольно просты, но все вместе, локально взаимодействуя, создают так называемый роевой интеллект. Примером в природе может служить колония муравьев, рой пчел, стая птиц, рыб [3]. Таким образом, разработка алгоритмов, позволяющих находить квазиоптимальные решения за полиноминальное время, является важной и актуальной проблемой, стоящей перед разработчиками САПР. Постановка задачи размещения Для задачи размещения вершин графа в узлы координатной сетки постановка задачи имеет следующий вид: задан граф G ( X ,U ) , где X {xi | i 1,2,..., n} - множество вершин, U {u j | j 1,2,..., l} - множество ребер и П {пi | i 1,2,..., c} - множество узлов на координатной сетке. Узел представляет собой квадратную ячейку. Для каждого узла заданы координаты, которые соответствуют центру узла. Для размещения всех вершин графа необходимо, чтобы выполнялось условие c n . Произвольное размещение всех вершин в позициях представляет собой перестановку P p(1), p(2),..., p(i ),..., p(n) , где P(i ) задает координаты узла, в которую назначена вершина xi . В зависимости от выбранного критерия для оценки результатов размещения вводится целевая функция F (P) [4]. Целевая функция может быть выражена следующим выражением: L F ( P) D j , где D j оценка задержки цепи j j 1 Задача оптимизации заключается в минимизации значения целевой функции: F(P)→min. 193 Роевой алгоритм размещения компонентов СБИС Основной трудностью решения оптимизационных задач является предварительная сходимость алгоритмов. Основными входными параметрами роевого алгоритма являются количество агентов R, максимальное количество итераций T max, начальное количество агентов-разведчиков Fxstart, ограничение максимального количества агентов-разведчиков Fxmax. В начальный момент времени все агенты расположены в "улье". В процессе поиска агенты связываются друг с другом косвенно. Каждый агент делает ряд локальных перемещений, и таким образом постепенно составляет решение задачи [5]. Процесс поиска является итеративной процедурой. Первая итерация считается законченной, тогда и только тогда, когда агенты найдут хотя бы одно допустимое решение. После чего лучшее решение сохраняется, а затем происходит переход к следующей итерации. Далее процесс поиска решений продолжается по достижению заданного числа итераций. На каждой итерации алгоритма выполняется два этапа. На первом этапе производится запуск агентов разведчиков (случайным образом размещаются в пространстве поиска). На втором этапе осуществляется отправка агентов - фуражиров, которые прикреплены к определённым источникам ресурса. Задача агентов разведчиков заключается в формировании окрестности поиска решений, в то время как агенты - фуражиры ведут поиск оптимальных решений непосредственно в найденных разведчиками окрестностях [3]. Представим на рис. 1 алгоритм роевого интеллекта для задачи размещения. Исходя из вышесказанного, опишем разработанный алгоритм. 1. Формирование начального множества источников. Данный блок отвечает за генерацию источников с нектаром. Каждый источник является решением со своей популяцией (начальным решением). 2. Оцениваем целевую функцию источников. Пчелой - исследователем выбирается источник нектара с некоторой вероятностью (Р), в зависимости от качества источника. Каждая пчела находит лучший участок, из посещенных с начала работы алгоритма (с первой итерации) и значения ЦФ на этом участке. Участки, на которых целевая функция будет больше, отбираются для дальнейшего поиска решений в их окрестностях. 3. Отбор источников с лучшими ЦФ. 4. Производим поиск решений в окрестностях элитных решений. 5. Производим отбор (редукцию). Формируем базовое множество участков, лучшие решения сохраняются, а также добавляется множество решений пчелами-разведчиками. 6. Если количество итераций пройдено меньше заданного количества окрестностей, то переходим к блоку 2, в ином случаи конец алгоритма. Начало 1 7 Формирование начального множества источников 2 Внешняя среда Оценка ЦФ источников (начальных решений) 3 Отбор источников с лучшими ЦФ 4 Поиск решений в окрестностях элитных участков 5 Редукция 6 нет Проверка условия останова да Конец Рисунок 1 - Работа пчелиного алгоритма 194 Экспериментальные исследования Основная цель экспериментальных исследований состоит в нахождение набора параметров поставленной задачи, при котором обеспечивается процесс нахождения оптимальных решений за минимальное время. В качестве объекта исследования используется разработанный роевой алгоритм размещения компонентов СБИС. При проведении анализа и исследования характеристик разработанного алгоритма были использованы схемы с различным количеством элементов. Целью проведения экспериментов было установление временной сложности алгоритма (ВСА). Для определения ВСА алгоритма был проведён ряд экспериментов для разного набора тестовых примеров, различающихся количеством элементов в схеме. Усредненные результаты экспериментов отражены на рис. 2. Рисунок 2 - График зависимости времени работы от количества элементов Результаты исследований позволяют сделать вывод о том, что временная сложность разработанного роевого алгоритма, не выходит за пределы полиномиальной зависимости, и может быть выражена формулой: O(nlogn)- O(n2), где n – число элементов схемы. Заключение В работе определена постановка задачи размещения компонентов СБИС, учитывающая критерий временных задержек. Предложен роевой алгоритм размещения компонентов СБИС, основанный на адаптивном поведении пчелиной колонии. Проведенные экспериментальные исследования для разного набора тестовых пример, позволяют сделать вывод, что временная сложность разработанного роевого алгоритма не выходит за пределы полиномиальной зависимости. Литература 1. Курейчик В.В., Полупанова Е.Е. Эволюционная оптимизация на основе алгоритма колонии пчел //Известия ЮФУ. Технические науки. – 2009. – №12 (101). – С. 41-46. 2. Запорожец Д.Ю. Роевой алгоритм в задачах оптимизации. [Текст] / Д. Ю. Запорожец, В. В. Курейчик // Известия ЮФУ. Технические науки. Тематический выпуск "Интеллектуальные САПР". – Таганрог: Изд-во ТТИ ЮФУ. – 2010. 3. Курейчик В.В. Применение роевого алгоритма для решения задачи размещения элементов СБИС. [Текст] /В.В. Курейчик, Д. Ю. Запорожец // Труды конгресса по интеллектуальным системам и информационным технологиям «AIS– IT’10» – М.: Физматлит, 2010 4. Курейчик В.В., Курейчик В.М. Перспективные технологии для решения оптимизационных задач. IEEE AIS-03, CAD-2003. Интеллектуальные системы, интеллектуальные САПР т.1. М.: Физматлит, 2003, с 5967. 5. Э.В. Кулиев, Генетический алгоритм решения задачи размещения элементов СБИС [Текст] / Кулиев Э.В. // IX Всероссийская научная конференция молодых ученых, аспирантов и студентов «Информационные технологии, системный анализ и управление». Таганрог: Изд-во ТТИ ЮФУ, 2012.-Т.2. – С. 55-59 195 Семушин Е.Ю., Купов И.О., Царегородцев В.В. Роевой алгоритм размещения компонентов СБИС с учетом временных характеристик. В работе рассматривается задача размещения компонентов СБИС с учетом временных задержек сигнала. Предложена постановка задачи размещения, учитывающая временную задержку сигнала. Разработан роевой алгоритм размещения с учетом временных задержек. Проведены экспериментальные исследования разработанного роевого алгоритма размещения. Ключевые слова: Размещение, СБИС, роевой алгоритм, временные задержки. Semushin E.Y., Kupov I.O., Tsaregorodtcev V.V. Swarm algorithm for VLSI placement of components based on timing. We consider the problem of accommodation of VLSI components, taking into account the time delay of the signal. A statement of the location problem, taking into account the time delay of the signal. A swarm placement algorithm based on time delays. Experimental studies designed accommodation swarm algorithm. Keywords: Placement, VLSI, swarm algorithm time delays. 196 УДК 004.023 Размещение компонентов СБИС на основе биоинспирированного метода Н.Э. Страхов, Кулиев Э.В., О.А. Логинов Южный федеральный университет [email protected] Страхов Н.Э., Кулиев Э.В., Логинов О.А. Размещение компонентов СБИС на основе биоинспирированного метода. В работе рассматривается модифицированный гибридный алгоритм размещения компонентов СБИС. Описан принцип работы популяционного алгоритма, основанный на поведение косяка рыб. Представлена область поиска альтернативных решений, а также ранжированная популяция альтернативных решений. Рассмотрена архитектура биоинспирированного алгоритма. Ключевые слова: Размещение, генетический алгоритм, адаптация, алгоритм на основе поведения косяка рыб, эволюционный алгоритм, популяция, селекция. Введение В наше время сверхбольшие интегральные схемы (СБИС) состоят из сотен миллионов транзисторов и с каждым годом их сложность только увеличивается возникает необходимость в разработке новых подходов, стратегий, алгоритмов, направленных на улучшение качества решений на этапе конструкторского проектирования. Наиболее эффективным, на сегодняшний день, является использование различных алгоритмов, имитирующих природные процессы. Примерами таких алгоритмов могут быть: генетически, роевой, эволюционный и т.д. Они позволяют находить решения, приближенные к оптимальным, за приемлемые промежутки времени. Рассмотрим популяционный алгоритм оптимизации, основанный на поведении косяка рыб. Входными параметрами в данном алгоритме являются: функция приспособленности (функция, для которой необходимо найти экстремумы), область исследования этой функции и параметры работы алгоритма (о них чуть позже). Область поиска представляет собой аквариум, в котором плавают агенты (рыбы). Как известно, в условиях поиска пищи рыбы плавают косяком, поэтому в нашем случае конечной целью является смещение всех агентов в область экстремума функции. Схема работы алгоритма в общем случае следующая: 1. Инициализация популяции (равномерное распределение рыб в аквариуме). 2. Миграция агентов к источнику пищи (аналогия: чем больший шаг агенты совершили в направлении области экстремума функции, тем больше еды они получили). 3. Завершение поиска. Стадия «Миграция агентов» выполняется поитерационно, и в каждой из итераций выполняются операторы двух групп: 1.Операторы плавания, обеспечивающие миграцию агентов в пределах аквариума. 2.Операторы кормления, фиксирующие успех исследования тех или иных областей аквариума [1-3]. Постановка задачи размещения Задача размещения может быть представлена следующим образом. Дано множество элементов (модулей) с расположенными на них терминалами (выводами) элементарная сеть, связывающая терминалы модулей. Задано коммутационное поле, на котором могут размещаться элементы. Необходимо разместить элементы на коммутационном поле с оптимизацией некоторых критериев качества. Входная информация включает описание модулей, в котором указывается форма, размеры, расположения терминалов на модулях, список цепей, указывающий на межсоединения модулей и описание коммутационного поля. Выходная информация представляет собой список xy – координат на коммутационном поле для всех модулей. Для задачи размещения вершин графа в узлы координатной сетки постановка задачи будет иметь следующий вид. Пусть имеем некоторое множество элементов. Представим исходные данные в виде графовой модели. Тогда, пусть задан граф G ( X ,U ) , где X {xi | i 1,2,..., n} 197 - множество вершин, а U {u j | j 1,2,..., l} П {п | i 1,2,..., c} i - множество ребер и множество узлов на координатной сетке. Узел представляет собой квадратную ячейку. Для каждого узла заданы координаты, которые соответствуют центру узла (рис.1). Xi,Yi ni Рисунок 1 - Пример рабочего поля c n . Произвольное размещение всех вершин в узлах представляет собой перестановку P p(1), p(2),..., p(i),..., p(n) , где P(i ) - задает x координаты узла, в которую назначена вершина i . В зависимости от выбранного критерия для оценки Для размещения всех вершин графа необходимо выполнения условия результатов размещения вводится целевая функция F (P) . Необходимо найти оптимальное значение функции F на множестве перестановок P . Основными известными критериями при размещении являются: минимальная суммарная длина связей; минимальная длина самой длинной связи; минимум числа возможных пересечений; минимум числа изгибов соединений; минимальная площадь кристалла; Все эти критерии косвенно способствуют решению основной задачи: максимизировать число реализованных соединений. В большинстве случаев выбирается один главный критерий, в наилучшей степени учитывающий многочисленные конструктивные и технологические требования. Классическим критерием является критерий минимума суммарной длины соединений, т.к. минимизация общей длины межсоединений ведет к уменьшению временных задержек, возникающих в длинных цепях, и в связи с этим к увеличению скорости обработки информации в чипе, а также повышается надежность и снижается трудоемкость изготовления печатных плат. С учетом этого, целевая функция имеет вид: l F d j j 1 где dj Длина , - длина uj uj ребра ребра. dj находится по следующей формуле: d j | xi1 xi 2 | | yi1 yi 2 | где ( xi1 , yi1 ) и ( xi 2 , y i 2 ) , – соответственно координаты одной и другой вершин инцидентных ребру Задача оптимизации – минимизация целевой функции F min . uj . Разработка модифицированного биоинспирированного алгоритма Для решения задачи размещения была произведена разработка модифицированного биоинспирированного алгоритма, представленного на рис. 2. Первым делом происходит формирование начальной популяции решений (Блок №1) на основе заданной целевой функции производится селекция («отбор») среди имеющихся альтернативных решений (Блок № 3). После этого осуществляется выполнение ГА (Блок № 4). Основным генетическим оператором, как известно, является оператор кроссинговера, мутации и инверсии, в результате чего создается новое множество 198 альтернативных решений. При этом для каждой особи (решения) вычисляется оценка приспособленности. В предлагаемом генетическом алгоритме добавлены блоки эволюционной адаптации (Блок №5), блок отвечающий за анализ неперспективных решений (Блок №7) и блок роевого интеллекта (Блок №8). Блок эволюционной адаптации предназначен для выбора и реализации различных стратегий и механизмов адаптации, а также изменении порядка использования и применения различных генетических операторов и схем поиска. Результаты работы блока эволюционной адаптации оказывают непосредственное влияние на процесс перестройки текущей популяции альтернативных решений и создания на ее основе новой популяции [4-6]. Начало 1 Формирование начальной популяции 2 Оценка начальной популяции 8 Блок популяционного алгоритма 3 6 Отбор лучших популяций Создание новой популяции 5 4 Блок эволюционной адаптации 7 Анализа неперспективных решений ГА Окончание Рисунок 2 – Схема алгоритма В предложенной архитектуре дополнительным блоком является блок анализа неперспективных решений (Блок №7). Данный блок собирает и анализирует решения, получаемые в процессе выполнения генетического алгоритма. Каждому решению (индивиду) в результате проведенного анализа присваивается определённый ранг (перспективное, неперспективное, тривиальное и др.). Важной составляющей является блок популяционного алгоритма (Блок №8) основанный на алгоритме поведения косяка рыб. Число итераций задается в исходных данных. По достижению этого параметра производится фиксация лучших значений. Осуществляется поиск наилучшего решения целевой функции в новых точках. Минимальное значение целевой функции из всех найденных является критерием отбора. После производится формирование матрицы решений целевой функции и начинается новая итерация поиска решения. Использование гибридных биоинспирированных алгоритмов позволяет ощутимо повысить эффективность поиск лучших решений. Дает возможность регулировать направление поиска. Литература 1. Карпенко А.П. «Популяционные алгоритмы глобальной поисковой оптимизации. Обзор новых и малоизвестных алгоритмов» [Текст]/ «Информационные технологии» - 2012. -№7. – С. 13-15. 2. Карпенко А.П. Современные алгоритмы поисковой оптимизации. Алгоритмы вдохновленные природой : учебное пособие [Текст] / А.П. Карпенко. – Москва: Изд-во МГТУ им. Н.Э. Баумана, 2014. – 446 с.: ил. 3. Частикова В.А. Исследование эффективности алгоритма поиска косяком рыб в задаче глобальной оптимизации. [Текст] / В.А. Частикова, М.А. Дружинина, А.С. Кекало – Пенза: Издательство: Издательский Дом “Академия Естествознания”, 2014. 199 4. Курейчик В.М. Кажаров А.А. Использование роевого интеллекта в решении NP-трудных задач. Известия ЮФУ. Технические науки. Тематический выпуск «Интеллектуальные САПР». – Таганрог: Изд-во ТТИ ЮФУ, 2011, № 7 (120), С. 30-37. 5. Курейчик В.М. Биоинспирированный поиск с использованием сценарного подхода [Текст] / Известия ЮФУ. Технические науки. Тематический выпуск «Интеллектуальные САПР». –Таганрог: Изд-во ТТИ ЮФУ, 2010. -№7(108). С. 7-12. 6. Курейчик, В.М. Модифицированные генетические операторы [Текст] / Известия ЮФУ. Технические науки. Тематический выпуск «Интеллектуальные САПР». –Таганрог: Изд-во ТТИ ЮФУ, 2009. -№12(101). С. 714. Страхов Н.Э., Кулиев Э.В., Логинов О.А. Размещение компонентов СБИС на основе биоинспирированного метода. В работе рассматривается модифицированный гибридный алгоритм размещения компонентов СБИС. Описан принцип работы популяционного алгоритма, основанный на поведение косяка рыб. Представлена область поиска альтернативных решений, а также ранжированная популяция альтернативных решений. Рассмотрена архитектура биоинспирированного алгоритма. Ключевые слова: Размещение, генетический алгоритм, адаптация, алгоритм на основе поведения косяка рыб, эволюционный алгоритм, популяция, селекция. Strahov N.E., Kuliev E.V., Loginov O.A. Placement of VLSI components based on bioinspired method. The paper deals with modified hybrid algorithm accommodation VLSI components. The principle of working population of the algorithm based on the behavior of shoals of fish. Submitted by area search for alternative solutions, as well as the population's ranking of alternative solutions. The architecture bioinspired algorithm. Keywords: Accommodation, genetic algorithm, the adaptation algorithm based on the behavior of shoals of fish, evolutionary algorithm, population, selection. 200 УДК 004.023 Модифицированный алгоритм решения задачи размещения компонентов СБИС Н.Э. Страхов, Н.В. Кулиева, Н.С. Семушина Южный федеральный университет [email protected] Страхов Н.Э., Кулиева Н.В., Семушина Н.С. Модифицированный алгоритм решения задачи размещения компонентов СБИС. В работе рассматривается модифицированный биоинспирированный алгоритм решения задачи размещения компонентов СБИС. Описан принцип работы популяционного алгоритма, основанный на поведение косяка рыб. Рассмотрена схема биоинспирированного алгоритма и приведено его сравнение с классическим генетическим алгоритмом. Ключевые слова: Размещение, генетический алгоритм, адаптация, алгоритм на основе поведения косяка рыб, эволюционный алгоритм, популяция, селекция. Введение Одной из сложнейших и наиболее важных задач при создании средств микроэлектронной техники является синтез топологий сверхбольших интегральных схем (СБИС). Синтез – создание проектного решения в виде его конструктивных особенностей, функциональной или структурной [1]. Отличительной особенностью современного этапа является высокая сложность и размерность проектирования устройств. Методы автоматизированного проектирования, технологической подготовки проектирования и конструирования позволяют создавать высоконадежные сверхбольшие интегральные схемы в короткие сроки и при сравнительно низких затратах. Проектирование СБИС производится на нанометровом диапазоне, что требует новых методов и подходов. Одним из таких подходов является эволюционный поиск и биоинспирированный подход. именно роевые алгоритмы решения оптимизационных задач. Большую роль в стратегию развития эволюционного поиска внесли такие учёные, как: Гольдберг Д.Е., Растригин Л., Холланд Д.Х., Курейчик В.М., Норенков И.П., Букатова И.Л., Батищев Д.И., и др. Генетические алгоритмы, эволюционные алгоритмы, а также алгоритмы роевого интеллекта являются фундаментальными направлениями научных исследований в области случайно- направленного поиска. Целью создания биоинспирированных алгоритмов является нахождение наилучшего, а не оптимального варианта размещения [2]. Важным вопросом при решении задачи размещения элементов СБИС с большим количеством локальных оптимумов является предварительная сходимость алгоритмов. Иначе говоря, попадание решения в локальный оптимум. В связи с этим, необходимо разрабатывать методы и архитектуры поиска решения. Применение методов эволюционного моделирования, генетического поиска, принципов адаптации и самоорганизации, используют для повышения эффективности решения задач проектирования. В последнее время активно развивается научное направление Natural Computing, основанное на принципах природных механизмов принятия решений и включающее генетические алгоритмы, нейросетевые вычисления, муравьиные алгоритмы, метод роящихся частиц, табуированный поиск и др. ACO-алгоритмы обладают способностью находить более высококачественные решения за приемлемое время [3]. На сегодняшний день эффективным направлением в эволюционном моделировании являются вероятностные алгоритмы, основанные на процессах, происходящих в живой природе. Проецируя закономерности окружающего мира на определенные сферы деятельности человека, мы получаем эффективный инструмент для решения задач проектирования СБИС. Системы роевого интеллекта, как правило, состоят из множества агентов (многоагентная система) локально взаимодействующих между собой и с окружающей средой. Сами агенты обычно довольно просты, но все вместе, локально взаимодействуя, создают так называемый роевой интеллект. Примером в природе может служить рой пчел. Современные ЭВ на основе ССБИС и СБИС реализуют качественное решение проблемы межсоединений на всех уровнях. Этап конструкторского проектирования является важным этапом автоматизации СБИС, включающий в себя: типизацию, компоновку, размещение, планирование кристалла, сжатие, трассировку и верификацию. Ввиду вышеизложенного, разработка алгоритмов, позволяющих найти приемлемое по качеству и по трудоемкости решение задачи размещения, является важной и актуальной проблемой, стоящей перед разработчиками САПР. 201 Популяционный алгоритм решения задачи размещения Рассмотрим популяционный алгоритм оптимизации, основанный на поведении косяка рыб. Входными параметрами в данном алгоритме являются: функция приспособленности (для которой необходимо найти экстремумы), область исследования данной функции и параметры работы. Область поиска является аквариум, в котором плавают агенты (рыбы). В поисках пищи рыбы плавают косяком, поэтому в нашем случае конечной целью является смещение всех агентов в область экстремума функции. Схема работы алгоритма в общем случае следующая: 1. Инициализация популяции. 2. Миграция агентов к источнику. 3. Завершение поиска. Стадия «Миграция агентов» выполняется по-итерационно, и в каждой из итераций выполняются операторы двух групп: 1. Операторы плавания, обеспечивающие миграцию агентов в пределах аквариума. 2.Операторы кормления, фиксирующие успех исследования тех или иных областей аквариума [4-6]. Для решения задачи размещения была произведена разработка модифицированного биоинспирированного алгоритма представленного на рис. 1. В основе данного алгоритма лежит использование классического генетического алгоритма и алгоритма на основе поведения косяка рыб. Начало Популяционный алгоритм 1 6 Ввод данных 2 Создание начальной популяции Формирование окрестности источника ГА 7 3 Оценка ЦФ 8 Оператор кормления Селекция 9 Оператор плавания 4 5 Отбор лучших решений Нет Исследование окрестности 10 Формирование популяции агентов 11 Проверка условия Да остановки 12 Вывод результата Конец Рисунок 1 – Схема алгоритма Входе выполнения работы был разработан программный продукт, реализующий вышеописанный алгоритм. Также была произведена оценка работы эффективности алгоритма на примере сравнения с генетическим и случайным алгоритмами размещения. Ниже представлены результаты сравнения (Таблица 1) и для лучшей наглядности их графическое представление (рис. 2). Таблица 1. Оценка эффективности алгоритмов. Количество элементов Алгоритм 1000 2500 5000 7500 10000 Случайный 65,3 114,9 138,5 149,1 198,9 Генетический 50 102,1 123,3 142,8 190,8 Биоинспирированный 58,8 79,8 94,6 122,1 143,5 202 Рисунок 2 – Оценка эффективности алгоритма Как видно использование гибридного биоинспирированного алгоритма дает заметно лучший результат. Использование подобных алгоритмов позволяет ощутимо повысить эффективность поиск лучших решений и предоставляет возможность регулировать направление поиска. Литература 1. Гладков Л.А., Курейчик В.В., Курейчик В.М., Сороколетов П.В. Биоинспирированные методы в оптимизации. – М.: ФИЗМАТЛИТ, 2009. – 384 с. 2. Курейчик В.М. Биоинспирированный поиск с использованием сценарного подхода [Текст] / Известия ЮФУ. Технические науки. Тематический выпуск «Интеллектуальные САПР». –Таганрог: Изд-во ТТИ ЮФУ, 2010. -№7(108). С. 7-12. 3. Курейчик, В.М. Модифицированные генетические операторы [Текст] / Известия ЮФУ. Технические науки. Тематический выпуск «Интеллектуальные САПР». –Таганрог: Изд-во ТТИ ЮФУ, 2009. -№12(101). С. 714. 4. Карпенко А.П. «Популяционные алгоритмы глобальной поисковой оптимизации. Обзор новых и малоизвестных алгоритмов» [Текст]/ «Информационные технологии» - 2012. -№7. – С. 13-15. 5. Карпенко А.П. Современные алгоритмы поисковой оптимизации. Алгоритмы вдохновленные природой : учебное пособие [Текст] / А.П. Карпенко. – Москва: Изд-во МГТУ им. Н.Э. Баумана, 2014. – 446 с. : ил. 6. Частикова В.А. Исследование эффективности алгоритма поиска косяком рыб в задаче глобальной оптимизации. [Текст] / В.А. Частикова, М.А. Дружинина, А.С. Кекало – Пенза: Издательство: Издательский Дом “Академия Естествознания”, 2014. Страхов Н.Э., Кулиева Н.В., Семушина Н.С. Модифицированный алгоритм решения задачи размещения компонентов СБИС. В работе рассматривается модифицированный биоинспирированный алгоритм размещения компонентов СБИС. Описан принцип работы популяционного алгоритма, основанный на поведение косяка рыб. Рассмотрена схема биоинспирированного алгоритма и приведено его сравнение с классическим генетическим алгоритмом. Ключевые слова: Размещение, генетический алгоритм, адаптация, алгоритм на основе поведения косяка рыб, эволюционный алгоритм, популяция, селекция. Strahov N.E., Kulievа NV., Semushina N.S. " "A modified algorithm for solving the location problem of VLSI components ". The paper deals with the modified algorithm bioinspired accommodation VLSI components. The principle of working population of the algorithm based on the behavior of shoals of fish. Considered bioinspired flowchart and given its comparison with the classical genetic algorithm. Keywords: Accommodation, genetic algorithm, the adaptation algorithm based on the behavior of shoals of fish, evolutionary algorithm, population, selection. 203 УДК 623.2.045.772.12 Об одной информационной системе учета наукоемких показателей Э.С. Цырульникова, А.Е. Лебединский, Ю.А. Кравченко Южный Федеральный университет [email protected] Цырульникова Э.С., Лебединский А.Е., Кравченко Ю.А. Об одной информационной системе учета наукоемких показателей. Работа посвящена разработке информационной системы учета и анализа научных показателей. Проанализированы основные определения наукометрических показателей. В статье рассмотрена актуальная задача разработки информационной подсистемы учета наукометрических показателей (ИПУНМП), в которой является важной частью подсистема анализа информации. Разработан модуль анализа данных на основе вебтехнологий, обеспечивающих модуль такими задачами, как: удобная регистрация и авторизация; интуитивно понятный интерфейс создания карточки публикации, а также определения прав доступа; удобный блок ее редактирования; удобная система управления базой данных. Разработанная ИПУНМП поддерживает современные интернет технологии; при написании программного кода использовался скриптовый язык PHP и СУБД MySQL. Ключевые слова: Система, информация, учет, показатель, наукоемкость. Введение Сегодня для оценивания результативности научной деятельности совместно с экспертными заключениями все чаще используют и наукометрические показатели, основанные на количестве публикаций автора и на количестве ссылок на его работы [1]. В настоящее время существует проблема объективной оценки научно-исследовательской деятельности, поэтому для повышения уровня объективности оценки результатов научных исследований, на практике применяется методика количественно-качественной оценки результатов с использованием так называемых наукометрических показателей, построенных на основе содержательных нормативных критериев, отражающих степень воздействия определенных показателей на уровень научной значимости результата [2]. Возросший интерес к наукометрическим показателям вызван в первую очередь возможностью автоматизации процесса оценивания благодаря развитию электронных библиографических баз данных и возможностей автоматического расчета соответствующих индексов с использованием программных средств баз данных WebofScience, Scopus, Российской научной библиотеки (elibrary.ru) [3]. Актуальность создания и применения такой системы, которая бы вела учет результатов научной деятельности внутри университета, обуславливается дешевизной и быстротой проверки, отсутствием человеческого фактора, а так же желанием самих преподавателей и студентов занимающихся научной деятельностью иметь наглядное представление о всех сведенных в одном месте результатах и заслугах. Однако применение наукометрических показателей встречает много трудностей, а также сильное противодействие, в первую очередь, самих преподавателей, указывающих на невозможность количественного измерения значимости научного результата, неполноту и подверженность любого индекса манипулированию со стороны заинтересованных лиц, и только лишь профессиональная экспертиза может дать всестороннюю объективную оценку научных результатов и заслуг, наукометрические же показатели служат инструментом поддержки принятия решений [4]. Разработка подсистемы анализа данных Ниже представлена информационно-логическая модель подсистемы анализа данных (рис. 1). 204 Преподаватель Статья Тезис Доклад Ввод информационной карточки Расширенный поиск Вывод результатов Классификация Стандартизация Отсортированный список Представление данных Комментирование Просмотр и редактирование комментариев Руководитель Рисунок 1 - Инфологическая модель Преподаватель загружает статью, тезис либо доклад, предварительно введя соответствующую информацию в карточке работы. Блок «Классификация» позволяет произвести классификацию уже имеющихся в профиле работ по каким-либо критериям, которые задает пользователь. В блоке «Представление данных» - выполняется подготовка информации к сохранению в базе данных, а именно ее представление (описание) на языке работы с БД SQL. Сохранение одной карточки публикации может потребовать изменения содержимого нескольких связанных таблиц, именно поэтому данный блок осуществляет всю необходимую подготовительную работу. С помощью функции расширенного поиска можно найти интересующую работу по ключевому слову либо фамилии автора. Стандартизация – применение принятых международных стандартов к описанию карточки научного ресурса (в том числе к оформлению статей, описанию метаданных). Использование блока стандартизации позволит повысить расширяемость разработанной подсистемы по интеграции с внешними источниками информации о научных публикациях. Функция комментирования предоставляет пользователям возможность обратной связи, (оставление каких-либо комментариев под работами разных авторов). Вывод результатов подразумевает выдачу информации для руководителя после совершения какого-либо из действий. Блок «Отсортированный список» - в нем происходит построение определенного списка по заданному критерию, определенного пользователем. Так же имеется возможность просмотра и редактирования комментариев. Разработка архитектуры подсистемы На рис. 2 изображена архитектура подсистемы аналитики, статистики и отчетов. В режиме профиля автора предоставляется доступ к профилю автора статей, тезисов, докладов, с помощью которого мы можем вести работу с системой. Краткое описание: Профиль руководителя предоставляет доступ к профилю с помощью которого руководитель подразделения имеет возможность работы в системе. Сохраненные запросы – механизм интуитивного поиска, когда в поле ввода данных отображаются предыдущие совершенные запросы. В отчете «Активности автора» можно вывести сводные данные за выбранный период (допустим год), и у нас выведется информация: всего публикаций, из них в РИНЦ, из них в ВАК, из них в Scopus, из них в WebOfScience, из них со студентами. В детализированном же отчете уже видно список конкретных работ по каждой группе, и имеется возможность перехода к карточке работы. В отчете «Активности подразделения», руководитель подразделения может построить отчет по всему подразделению. Отчет «Список трудов» представляет собой стандартную форму списка работ автора (определенных типов) за выбранный промежуток времени. Печатная форма может быть сразу использована для печати и заверения научным руководителем, например для дальнейшего представления в ученом совете, в различного рода заявках на гранты и участия в конкурсах. Отчет «Рейтинг подразделения» - этот отчет доступен руководителю института или отдельного научного подразделения. По институту формируется рейтинг кафедр на основании выбранного критерия за указанный промежуток времени. Отчет по кафедре содержит сводный рейтинг сотрудников. 205 Подсистема администрирования и ввода данных Интерфейс администратора Подсистема аналитики, статистики и отчетов Интерфейс редактора Интерфейс автора Интерфейс руководителя Общие настройки системы Ввод новой научной работы Профиль автора Профиль руководителя Справочники Корректировка научной работы Сохраненные запросы Сохраненные запросы Подразделения и сотрудники Загрузка файлов (оригиналы pdf) Отчет «Активность автора» Отчет «Активность подразделения» Резервное копирование Поиск двойников Отчет «Список трудов» Отчет «Рейтинг подразделений» Блок экспорта отчетов Блок импорта информации База данных Отчет Отчет Отчет Рисунок 2 - Подсистема аналитики, статистики и отчетов Блок экспорта отчетов позволяет после работы с системой генерировать отчеты в различных форматах (PDF, DOC). Заключение В ходе выполнения работы было дано определение наукометрического показателя: понятие наукометрического показателя, классификация наукометрических показателей, разновидности наукометрических показателей. Было выявлено, что достаточно актуальной является разработка информационной подсистемы учета наукометрических показателей (ИПУНМП), в которой является важной частью подсистема анализа информации. В результате разработан модуль анализа данных на основе веб- технологий, обеспечивающих модуль такими задачами, как: удобная регистрация и авторизация; интуитивно понятный интерфейс создания карточки публикации, а также определения прав доступа; удобный блок ее редактирования; удобная система управления базой данных. Разработанная ИПУНМП обладает следующими характеристиками: является кроссплатформенной; имеет многопользовательский режим; поддерживает современные интернет технологии; при написании программного кода использовался скриптовый язык PHP и СУБД MySQL. Литература 1. С. Д. Штовба, Е. В. Штовба / Обзор наукометрических показателей для оценки публикационной деятельности ученого / Журнал: Управление большими системами. Специальный выпуск 44: «Наукометрия и экспертиза в управлении наукой» – М., 2013. 2. Vine, Rita (January 2006). «Google Scholar». Journal of the Medical Library Association 94 (1): 97– 9.Краснова, Г.А. Технологии создания электронных обучающих средств - 2-е издание, М.: МГИУ, 2009. 3. Информационная система // Википедия. [2015—2015]. Дата обновления: 16.02.2015. URL: http://ru.wikipedia.org/?oldid=68621960 (дата обращения: 16.02.2015).Готская И.Б. Аналитическая записка «Выбор системы дистанционного обучения» - Москва: Информационно-издательский дом «Филин». – 2005. 4. Наукометрия // Википедия. [2015—2015]. Дата обновления: 25.02.2015. URL: http://ru.wikipedia.org/?oldid=68855205 (дата обращения: 25.02.2015). 206 Цырульникова Э.С., Лебединский А.Е., Кравченко Ю.А. Об одной информационной системе учета наукоемких показателей. Работа посвящена разработке информационной системы учета и анализа научных показателей. Проанализированы основные определения наукометрических показателей. В статье рассмотрена актуальная задача разработки информационной подсистемы учета наукометрических показателей (ИПУНМП), в которой является важной частью подсистема анализа информации. Разработан модуль анализа данных на основе вебтехнологий, обеспечивающих модуль такими задачами, как: удобная регистрация и авторизация; интуитивно понятный интерфейс создания карточки публикации, а также определения прав доступа; удобный блок ее редактирования; удобная система управления базой данных. Разработанная ИПУНМП поддерживает современные интернет технологии; при написании программного кода использовался скриптовый язык PHP и СУБД MySQL. Ключевые слова: Система, информация, учет, показатель, наукоемкость. Tsyrulnikova E.S, Lebedinsky A.E, Kravchenko Y.A. A knowledge-based information system of accounting rates. The work is dedicated to the development of information system for recording and analysis of scientific indicators. Analyzes the basic definition of scientometric indicators. In the article the actual problem of development information subsystem accounting scientometric indicators (IPUNMP), which is an important part of the subsystem analysis. Data analysis module was developed based on web technologies for module tasks such as: easy registration and authorization; intuitive creation interface card publication and determination of access rights; convenient unit to edit it; easy database management system. Developed IPUNMP support modern Internet technologies; when writing code used scripting language PHP and database MySQL. Keywords: System, information, accounting, record, research intensity. 207 СЕКЦИЯ «КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ» УДК 681.3 Применение инфракрасного отражателя TCRT5000 в системе ориентирования в пространстве Н.А. Горин, В.Н. Струнилин Донецкий национальный технический университет, г. Донецк кафедра компьютерной инженерии [email protected] Горин Н.А., Струнилин В.Н. Применение инфракрасного отражателя TCRT5000 в системе ориентирования в пространстве. Выполнена разработка электронного устройства, отслеживающего при помощи модуля GY-531 и инфракрасного отражателя TCRT5000 положение объекта и генерирующего сигналы управления для корректировки работы двигателей при движении робота по заданному маршруту. Ключевые слова: отражатель. микроконтроллер, акселерометр, гироскоп, драйвер, инфракрасный Постановка проблемы При взаимодействии роботизированной техники с окружающими объектами возникает необходимость в системах ориентирования в пространстве. Эти системы позволяют достоверно оценивать перемещение управляемого объекта в пространстве и его взаимодействие с другими объектами. Актуальной является также автоматизация работы складов, заводов и других промышленных объектов, в которых роботы-грузчики передвигаются по заранее указанным маршрутам. Маршруты наносятся на поверхность движения яркой краской в виде линий, и роботы должны двигаться строго по указанным линиям, не отклоняясь от них. Следовательно, исследование и разработка систем ориентирования в пространстве остаётся актуальной и является продолжением более ранних работ [1, 2]. Цель статьи – разработка электронного устройства, отслеживающего при помощи акселерометра и гироскопа положение объекта в пространстве, а при помощи инфракрасных отражателей - отклонение робота от заданного маршрута, а также генерирующего управляющие сигналы для корректировки работы двигателей. Выбор платформы Разработка системы ориентирования в пространстве выполнена на платформе ArduinoUno (рис.1). Данная платформа построена на основе микроконтроллера ATmega328 [3]. Платформа имеет 14 цифровых входов/выходов (шесть из которых могут использоваться как выходы широкополосной импульсной модуляции), шесть аналоговых входов, кварцевый генератор 16 МГц, разъем USB, силовой разъем, разъем ICSP и кнопку перезагрузки. Для работы необходимо подключить платформу к компьютеру посредством кабеля USB либо подать питание при помощи адаптера AC/DC или батареи [3]. Рисунок 1 – Внешний вид ArduinoUno Платформа программируется посредством программного программирования устройств Arduino основан на C/C++ [4, 5]. 208 обеспечения Arduino. Язык Для программирования микроконтроллера используется среда разработки Arduino 1.0.5. Микроконтроллер ATmega328 поставляется с встроенным загрузчиком, облегчающим запись новых программ без использования внешних программаторов. Главным элементом модуля GY-531 является микросхема MPU6050, которая содержит акселерометр, гироскоп и температурный сенсор. Помимо этой микросхемы на плате модуля расположена необходимая обвязка MPU6050, в том числе подтягивающие резисторы интерфейса I2C, а также стабилизатор напряжения на 3,3 вольта с малым падением напряжения и фильтрующими конденсаторами. Также на плате располагается SMD светодиод с ограничивающим резистором, выполняющие функцию индикации питающего напряжения [6]. Обоснование выбора инфракрасного отражатель TCRT5000 Инфракрасный отражатель TCRT5000 представляет собой сборку в одном корпусе инфракрасного излучателя (диода) и инфракрасного приемника (транзистора), разделённых перегородкой. Данный датчик излучает инфракрасный сигнал и затем ловит отражение этого инфракрасного сигнала от поверхности (рис. 2). В зависимости от типа и цвета поверхности меняется интенсивность отраженного сигнала. По этой интенсивности можно приблизительно судить об оттенках цвета поверхности. Данный датчик также может использоваться как датчик Холла для определения скорости перемещения робота. Датчик состоит из светодиода, излучающего свет в инфракрасном диапазоне, и фототранзистора. Рабочая дистанция до 12 мм. Рисунок 2 – Принцип действия инфракрасного отражателя TCRT5000 Математический аппарат Данные, приходящие с гироскопа, определяются следующими зависимостями: d guro _ x _ scalled xgyro ; dt d guro _ y _ scalled ygyro ; dt d guro _ z _ scalled zgyro , dt где guro_x_scalled, guro_y_scalled и guro_z_scalled – это переменные, в которые библиотечная функция MPU6050_ReadData() заносит значения, считанные с гироскопа с учётом калибровки. В дальнейшем будем рассматривать все расчёты на примере оси x. Для расчета угла необходимо проинтегрировать переменную gyro_x_scalled. Для реализации дискретного интегрирования будем использовать метод Эйлера. Математически интегрирование методом Эйлера можно записать следующим образом: xgyro (t n ) gyro _ x _ scalled * T xgyro (t n1 ) ; T tn tn1 , где n={1, 2, 3…} – количество итераций. Предполагаем, что начальные углы относительно осей x, y, z после калибровки равны 0, 0 и 90 градусов соответственно, так что для итерации n=0: xgyro (t0 ) 0 , ygyro (t0 ) 0 , zgyro (t0 ) 90 . Из-за неидеальной калибровки гироскопа gyro_x_scalled никогда не принимает нулевое значение. Кроме того, ее значения со временем изменяются. Для решения данной проблемы проводится расчет угла с 209 помощью акселерометра и полученные значения сравниваются с углом гироскопа. Так как модуль MPU6050 располагается горизонтально, ускорение по оси z равно 1g (т.е. 9,81 м/с2). Используем этот вектор ускорения и его проекцию на ось y для расчета угла между осями x и y. Угол, который рассчитывается с помощью акселерометра, определятся зависимостями: accel _ x _ scalled ; xaccel tan1 accel _ y _ scalled 2 accel _ z _ scalled 2 yaccel tan 1 accel _ y _ scalled . accel _ x _ scalled 2 accel _ z _ scalled 2 Основными проблемами при определении угла наклона с помощью акселерометра являются сильная зашумленность сигнала и очень сильная чувствительность к вибрациям, без которых ни один механизм не работает. Более того, при перемещении MPU6050 вдоль одной из осей координат, полученные значения угловых скоростей будут мешать расчету угла. Для лучшего результата углы с гироскопа и акселерометра обрабатываются с помощью фильтра: x Filter _ gain * xgyro (1 Filter _ gain) * xaccel . Окончательно уравнение для определения угла наклона принимает вид: xgyro (t n ) gyro _ x _ scalled * T x (t n1 ) . В дальнейших расчётах использовался коэффициент усиления 0,95. В зависимости от динамики системы, можно его повышать, но не до единицы, так как значения будут сильно отклоняться от истинных. Принцип работы системы Разработанная система ориентирования в пространстве должна определять угол подъёма или спуска движущегося объекта и в зависимости от этого генерировать управляющие сигналы для увеличения/уменьшения напряжения, подаваемого на двигатели. Если объект преодолевает подъём, то система определяет угол подъёма и увеличивает напряжение, подаваемое на двигатели, чтобы не утратить скорость движения. Если объект преодолевает спуск, то система определяет угол спуска и уменьшает напряжение на двигатели, чтобы предотвратить неконтролируемый разгон объекта. Инфракрасные отражатели TCRT5000, установленные на расстоянии друг от друга не больше, чем ширина линии маршрута (должно соблюдаться условие, что оба датчика будут попадать на линию маршрута), будут подавать сигналы на микроконтроллер. Сигналы будут приравниваться к логическому нулю или единице в зависимости от уровня освещённости фототранзистора. Если линия маршрута будет белая на тёмном фоне, то максимальная освещённость фототранзистора будет приравниваться к логической единице, минимальная освещённость – логическому нулю при отклонении от маршрута. Схема подключения модуля GY-531 в системе ориентирования в пространстве представлена в [2]. Подключение инфракрасных отражателей TCRT5000 производится при помощи двух резисторов к выходу +5В и GND, информационный выход SIGNAL подключается для левого датчика к контакту А0, а правый датчик подключается к контакту А1 (рис. 3). А0 и А1 – это аналоговые входы/выходы платформы Arduino Uno [7]. Рисунок 3 – Схема подключения инфракрасного отражателя TCRT5000 Следует отметить, что в данном проекте использовался акселерометр и гироскоп одновременно, чтобы повысить точность полученных данных. Это обусловлено разной спецификой работы акселерометра и гироскопа, а также определяемых ими параметров [9]. Двигатель будет управлять платформой при помощи микросхемы драйвера двигателей L293D [10]. 210 Выводы Выполнена разработка и моделирование электронного устройства, определяющего положение объекта в пространстве при помощи акселерометра и гироскопа. Устройство определяет углы подъёма или спуска и генерирует сигналы управления для корректировки работы двигателей. Полученная система ориентирования в пространстве простая в применении и дешёвая при сборке. Применение различных микросхем драйвера двигателей позволяет управлять данным электронным прибором электродвигателями любой мощности. Так же при помощи инфракрасных отражателей система может отслеживать отклонение робота от нанесенного маршрута, генерируя управляющие сигналы для корректировки работы двигателей. Следует отметить, что при помощи модуля GY-531 система контролирует обороты двигателей, а при помощи инфракрасных отражателей система производит остановку и запуск двигателей для корректировки пути движения по заданному маршруту. Для программирования микроконтроллера используется язык С. Среда разработки транслирует программу на язык Assembler, понятный для микроконтроллера. Литература 1. Горин Н.А. Разработка системы ориентирования в пространстве с использованием ультразвукового датчика/ Н.А. Горин, В.Н. Струнилин // Материалы Международной научно-техническая конференции студентов, аспирантов и молодых ученых «Информационные управляющие системы и компьютерный мониторинг». – Донецк, 2015. – С. 34-36. 2. Горин Н.А. Разработка системы ориентирования в пространстве с использованием модуля GY-531/ Н.А. Горин, В.Н. Струнилин // Материалы Международной научно-техническая конференции студентов, аспирантов и молодых ученых «Информатика, управляющие системы, математическое и компьютерное моделирование». – Донецк, 2016. – С. 534-538. 3.Платформа Arduino Uno [электронный ресурс] // Официальный сайт Ардуино в России: [сайт]. [2016]. URL: http://arduino.ru/Hardware/ArduinoBoardUno. 4. Официальный сайт Arduino [электронный ресурс]: [сайт]. URL: http://arduino.cc. 5. Подбельский В. В. Программирование на языке Си: Учеб. пособие. – 2-е доп. изд./ В. В. Подбельский, С. С. Фомин. – М.: Финансы и статистика, 2004. – 600 с., ил. 6. Arduino Playground [электронный ресурс] // Энциклопедия знаний по MPU-6050: [сайт]. [2016]. URL: http://playground.arduino.cc/Main/MPU-6050. 7. Alldatasheet [электронный ресурс] // Electronic Components Datasheet Search: [сайт]. [2016]. URL: http://pdf1.alldatasheet.com/datasheet-pdf/view/26406/VISHAY/TCRT5000.html. 8. Alldatasheet [электронный ресурс] // Electronic Components Datasheet Search: [сайт]. [2016]. URL: http://www.alldatasheet.com/view.jsp?Searchword=L293d. 9. Avislab [электронный ресурс] // Cайт для палких паяльників: [сайт]. [2016]. URL: http://www.avislab.com/blog/mpu-6050_ru/. 10. Zelectro [электронный ресурс] // Сообщество Zelectro: [сайт]. [2016]. URL: http://zelectro.cc/L293D. Горин Н.А., Струнилин В.Н. Применение инфракрасного отражателя TCRT5000 в системе ориентирования в пространстве. Выполнена разработка электронного устройства, отслеживающего при помощи модуля GY-531 и инфракрасного отражателя TCRT5000 положение объекта и генерирующего сигналы управления для корректировки работы двигателей при движении робота по заданному маршруту. Ключевые слова: отражатель. микроконтроллер, акселерометр, гироскоп, драйвер, инфракрасный Gorin N.A., Strunilin V.N. The use of infrared reflector TCRT5000 for the system of orientation in space. An electronic device that tracks with the help of 531 GY-module and an infrared reflector TCRT5000 property position and generates control signals for adjusting the engine operation when the robot movement for a given route is developed. Keywords: microcontroller, accelerometer, gyroscope, driver, infrared reflector. 211 УДК 531.8 Исследование магнитометра HMC5883L в системе измерения скорости вращения летательного объекта Елагин И.А., Краснокутский В.А. ГОУ ВПО «Донецкий национальный технический университет» кафедра компьютерной инженерии E-mail: [email protected] Елагин И.А., Краснокутский В.А. Исследование магнитометра HMC5883L в системе измерения скорости вращения летательного объект. В статье рассматривается вопрос использования магнитометра для измерения скорости вращения объекта относительно магнитного поля Земли. Определены основные проблемы использования и пути их решения. Ключевые слова: летательный объект, скорость вращения, магнитометр HMC5883L, устройство измерения. Введение Для доставки грузов с воздуха на землю используются различные парашютные системы, в том числе и управляемые. Однако, парашютным системам присущи определенные недостатки. Главные из них – это ограниченная маневренность и не высокая точность доставки. В последнее время проводятся исследования систем доставки грузов, сбрасываемых с самолета, использующих принцип скольжения крылаток, например, семечко клена [1]. Биологическая функция крылатки семечка клена заключается в плавном спуске семечка с дерева на землю. Благодаря особенностям формы крылатки, семечко клена совершает вращательное движение. Процессом снижения летательного аппарата, построенного на принципе планирования крылатки, возможно управлять. Управление заключается в изменении расположения и ориентации аппарата. Для построения модели и системы управления летательного аппарата необходимо измерять скорость вращения и азимутальный угол в процессе вращения. В работе рассматриваются вопросы построения устройства для измерения скорости вращения летательного аппарата в режиме авторотации. Постановка задачи измерения скорости вращения При измерении скорости вращения летательного аппарата необходимо определять его положение относительно сторон света, используя магнитное поле земли. Навигационные системы для определения своего положения используют электронные компасы. Электронный компас имеет ряд преимуществ таких, как вибро и ударопрочность, прямое сопряжение с электронной аппаратурой, возможность автоматической компенсации внешних магнитных полей. Существуют различные типы датчиков магнитного поля: индукционные, магниторезистивные, датчики Холла, феррозонды и др. Магниторезистивные датчики отличаются высокой чувствительностью и позволяют измерять малые изменения магнитного поля. Они применяются для определения угла поворота, положения объекта относительно магнитного поля земли и др. Принцип работы магниторезистивных датчиков основан на изменении направления намагниченности внутренних доменов слоя пермаллоя (NiFe) под воздействием внешнего магнитного поля [2]. В зависимости от угла между направлением тока и вектором намагниченности изменяется сопротивление пермаллоевой пленки. Под углом 90° оно минимально, угол 0° соответствует максимальному значению сопротивления. Магниторезистивные датчики выпускаются в виде интегральных микросхем фирмами Philips, HL Planar, Honeywell. Конструкция магниторезистивных датчиков Honeywell состоит из четырех пермаллоевых слоев, которые организованы в мостовую схему. Датчики позволяют измерять самые слабые магнитные поля (от 30 мкГаусс) с последующим их преобразованием в выходное напряжение. В конструкции датчика могут быть объединены несколько мостовых схем, образуя, таким образом, двух - и трехосевые сенсоры. Среди датчиков фирмы Honeywell особый интерес представляет микросхема НМС5883L. Это гибридная микросхема, разработанная для измерения слабых магнитных полей с цифровым интерфейсом и может использоваться для построения электронных компасов и магнитометров. Микросхема НМС5883L включает в себя современный датчик HMC118X с высоким разрешением, усилитель, драйвер обмотки автоматического размагничивания, компенсацию смещения и 12 – разрядный АЦП, обеспечивающий точность измерения 1 – 2 градуса. Последовательный интерфейс I2C позволяет легко подключаться к любому микроконтроллеру. 212 Решение поставленной задачи Основной характеристикой магнитного поля является магнитная индукция B, представляющая собой векторную величину. Направление вектора магнитной индукции совпадает с направлением силы, действующей на северный полюс магнита, помещенного в данную точку магнитного поля. Напряженность магнитного поля H эквивалентна индукции B. Тангенс угла отклонения вектора H определяется отношением проекций вектора H на оси x и y (рис. 1). Рисунок 1 – Разложение вектора напряженности Таким образом, азимут может быть определен по формуле (1) [3]. (1) Используя азимут можно определить скорость вращения летающего объекта. Для этого необходимо определить число полных оборотов системы измерения за секунду. Для решения задачи был создан тестовый стенд. На рисунке 1 показана структура системы измерения для решения поставленной задачи. Рисунок 1 – Структура системы измерения Измерительная система состоит из платы датчиков GY-80, платы микроконтроллера NodeMCU ESP8266 и персонального компьютера. Плата GY-80 включает в себя трехосевой магнитометр HMC5883L, трехосевой гироскоп L3G4200D и трехосевой акселерометр ADXL345(рис.2). Рисунок 2 – Измерительная плата GY-80 Так же на плате есть подтягивающие резисторы интерфейса I2C и стабилизатор напряжения. Датчик может питаться от 3.3V или 5V. Плата GY-80 подключается к плате ESP8266 (рис.3) по цифровому интерфейсу I2C. Для этого соединяются между собой выводы питания 3.3V, земли GND, линии данных SDA, линии тактирования SCA на обеих платах. ESP8266 – это 32-разрядный микроконтроллер с поддержкой беспроводной передачи данных WI-FI. Рисунок 3 – Плата ESP8266 Плата ESP8266 может подключаться к компьютеру, используя интерфейс последовательной передачи RS232 или с помощью WI-FI. Встроенная антенна WI-FI позволяет передавать данные по воздуху на расстоянии до семидесяти метров, что достаточно для начального этапа проектирования. В дальнейшем есть возможность подключения дополнительной антенны для увеличения расстояния передачи. 213 Все вычисления целесообразно проводить на самом микроконтроллере, так как он 32-разрядный и имеет частоту 160 МГц. Его мощности хватит для решения задачи. Однако, на этапе отладки системы измерения возможен вариант проводить все вычисления на персональном компьютере. Для микроконтроллера была написана тестовая программа, которая считывает данные с магнитометра и вычисляет азимут. Для определения правильности определения азимута был проведён эксперимент, в котором результаты измерения сравнивались с показаниями механического компаса. На рисунке 4 показано сравнение направления стрелки механического компаса и направления стенда на север. О направлении на север говорит результат выполнения программы нахождения азимута, который выводится на персональный компьютер с микроконтроллера через COM-порт (рис. 5). Рисунок 4 – Сравнение направления компаса и стенда Из рисунка 4 видно, что направления не совпадают. Это связано с различными факторами, о которых пойдет речь далее. Рисунок 5 – Значение азимута магнитометра в эксперименте Возможные проблемы и их решения При измерении скорости вращения с помощью магнитометра могут возникнуть различные проблемы. Первая и самая главная проблема – это влияние внешних факторов на показания датчика. Магнитометр измеряет напряженность магнитного поля Земли по своим осям, и наличие рядом с ним любого элемента с большим магнитным полем будет искажать показания датчика. Данные с магнитометра можно визуализировать. На рисунке 6 показан график, полученный в среде Matlab, значений магнитометра по осям OX и OY, когда датчик вращается вокруг своей оси в горизонтальной плоскости. Рисунок 6 – График показателей магнитометра при вращении на 360º 214 На рисунке видно, что начало координат находится не в центре окружности, а также фигура представлена эллипсом, что является неверным, так как точки должны быть равноудаленными от центра. То есть присутствует искажение магнитного поля. Существует два типа искажений, действующих на компас: Hard Iron и Soft Iron[4]. Искажение Hard Iron появляются при появлении рядом с магнитометром элементов со своим сравнительно большим магнитным полем. Такое негативное воздействие в нашей измерительной системе могут оказать, например, электронные цепи контроллера, провода питания, аккумуляторная батарея. На графике такое искажение характеризуется сжатием фигуры. Искажение Soft Iron создается посторонними предметами, искажающими уже имеющееся магнитное поле. Это могут быть любые металлические элементы, например, рама стенда. На графике такое искажение характеризуется тем, что центр фигуры располагается не в начале координат. Эти искажения могут быть учтены и компенсированы. Для компенсации искажений необходимо найти масштабирующие коэффициенты Xsf и Ysf [3], учет которых даст нам график в виде окружности, и значения смещений Xoffs и Yoffs, учет которых установит окружность в начале координат. Значения X и Y, которые используются для нахождения азимута, могут быть получены с компенсацией по следующим формулам: (2) Для того чтобы найти Хsf и Ysf необходимо определить максимальные и минимальные значения Ymin Ymax Xmin Xmax по осям OX и OY, а затем выполнить расчет формул (3). (3) Для нахождения Xoffs и Yoffs используются следующие формулы: (4) В результате была проведена калибровка датчика. Её суть заключалась в нахождении масштабируемых коэффициентов и смещений. Это было сделано при помощи программы Magneto. Было считано облако значений в разных положениях датчика, которое было загружено в программу Magneto. В итоге были получены коэффициенты и смещения, которые теперь учитываются в тестовой программе стенда. Так магнитометр стал показывать верные значения, по которым был построен график, показанный на рис. 7. Рисунок 7 – График после калибровки Теперь значения представлены в виде окружности, в центре которой находится начало координат. Следующая проблема – это влияние наклона датчика на показатели. Если мы фиксируем ось X строго по направлению к северу, и начинаем вращать датчик вокруг этой оси (придаем крен), проекция поля на ось X остается неизменной, а вот проекция на Y меняется. Таким образом, наличие крена или тангажа (вращение по оси Z) искажает правильное значение азимута. Для того чтобы решить данную проблему необходимо 215 применить уравнение поворота (5) ко всем трем осям магнитометра и получить верные значения проекций вектора напряженности [5]. (5) В этих формулах – это значение тангажа, значение крена. Эти значения мы получим при помощи совместного использования акселерометра и гироскопа, применяя комплементарный фильтр. Общий смысл компенсации ошибки от наклона магнитометра представлен на рисунке 8. Рисунок 8 – Принцип компенсации ошибки наклона магнитометра Выводы В результате работы был рассмотрен вопрос измерения скорости вращения летательного объекта. Представлен способ решения поставленной задачи. Рассмотрены возможные проблемы и пути их решения. На следующих этапах планируется создание вращающего стенда, на котором можно будет проводить эксперименты по расчету скорости. Литература 1. 1. Andreas Kellas. The Guided Samara: Design and Development of Controllable Single-Bladed Autoroteting Vehicle./Интернет ресурс.- Режим доступа: URL: https://dspace.mit.edu/bitstream/handle/1721.1/42047/229893867-MIT.pdf?sequence=2 2. A New Perspective on Magnetic Field Sensing./ Интернет ресурс.- Режим доступа: URL: https://aerospace.honeywell.com/en/~/media/aerospace/files/technicalarticles/anewperspectiveonmagneticfieldsensing_ta.pdf 3. M.J. Caruso, “Application of Magnetoresistive Sensors in Navigation Systems”, Sensors and Actuators 1997, SAE SP-1220, (Feb. 1997) 15-21. 4. Калибровка магнитометра. / Интернет-ресурс. - Режим доступа: URL: http://robotclass.ru/articles/magnetometer-and-compass/ 5. M.J. Caruso, “Application of Magnetic Sensors for Low Cost Compass System”, Sensors and Actuators 1997, SAE SP-1220, (Jan. 1997) 15-21. Elagin I.A., Krasnokutskiy V.A. The research of magnetometer HMC5883L in the measurement system of the flaying object’s rotation speed. The research considers a question about how to use a magnetometer for the object rotation speed measurement relative to magnetic field of Earth. Defined the main problems of using and ways to solve them. Keywords: flying object, rotation speed, magnetometer HMC5883L, measuring system. 216 УДК 004.4'236, 004.42 Демонстрационная модель персонального компьютера Е.В. Иванникова, Т.В. Завадская Донецкий национальный технический университет Иванникова Е. В., Завадская Т. В. Демонстрационная модель персонального компьютера, на базе компьютера-шаблона. Разработка 3D модели персонального компьютера и его компонентов, реализация взаимодействий между ними. Ключевые слова: модель, системный блок, компьютер-шаблон, 3D моделирование, Unity Введение С точки зрения философии моделирование — это эффективное средство познания природы. Оно является основным методом исследований во всех областях знаний и научно обоснованным методом оценок характеристик сложных систем, используемым для принятия решений в различных сферах инженерной деятельности [1]. Существующие и проектируемые системы можно эффективно исследовать с помощью математических моделей (аналитических и имитационных), реализуемых на современных ЭВМ, которые в этом случае выступают в качестве инструмента экспериментатора с моделью системы [2]. Для наилучшего понимания работы персонального компьютера, необходимо визуально представлять, как происходят взаимодействия между его элементами внутри системного блока. Для этого подойдёт наглядная модель, которая демонстрирует эти взаимодействия. Подобие и моделирование позволяют по-новому описать реальный процесс и упростить экспериментальное его изучение [2]. Реализация модели персонального компьютера будет выполнятся при помощи методов компьютерного моделирования. Под компьютерной моделью будет пониматься компьютерная программа, реализующая представление объекта, системы или понятия в форме, отличной от реальной, но приближенной к алгоритмическому описанию, включающей и набор данных, характеризующих свойства системы и динамику их изменения со временем [3]. Основными этапами компьютерного моделирования будем считать: 1.Постановка задачи и её анализ. 2.Построение информационной модели. 3.Разработка метода и реализации компьютерной модели. 4.Разработка компьютерной модели. 5.Проведение эксперимента. Независимо от разбиения большой системы на подсистемы при проектировании каждой из них необходимо выполнить внешнее проектирование (макропроектирование) и внутренне (микропроектирование). На стадии макропроектирования должна быть разработана обобщенная модель процесса функционирования системы в целом. На стадии микропроектирования разрабатывается модель с целью создания эффективных подсистем [4]. Моделирование — это циклический процесс. Это означает, что за первым четырёхэтапным циклом может последовать второй, третий и т. д. При этом знания об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта или ошибками в построении модели, можно будет исправить в последующих циклах [5]. Первый этап выполнения задачи компьютерного моделирования предполагает выяснения цели моделирования, вида исходных данных и результата. Постановка задачи моделирования персонального компьютера В основе моделирования лежит теория подобия, которая утверждает, что абсолютное подобие может иметь место лишь при замене одного объекта другим точно таким же [6]. При моделировании абсолютное подобие отсутствует, и это приводит к тому, что приходится ограничиваться тем требованием, чтобы созданная модель достаточно хорошо отражала лишь какие-то отдельные стороны функционирования объекта. В основе любого вида моделирования лежит некоторая модель, имеющая соответствие, базирующееся на некотором общем качестве, которое характеризует реальный объект. Объективно реальный объект обладает некоторой формальной структурой, поэтому для любой модели характерно наличие некоторой структуры, соответствующей формальной структуре реального объекта, либо изучаемой стороне этого объекта [2]. 217 Демонстрационная модель персонального компьютера предполагает визуализацию объектов, из которых состоит системный блок, и моделирования взаимодействий между ними. Для корректной реализации данной модели необходимо выбрать, так называемый, системный блок-шаблон. То есть, системный блок, который выступит в качестве модели при дальнейшей разработке. В качестве такого компьютера-шаблона был взят компьютер фирмы Acer (см.рис.1). Рисунок 1 – Модель системного блока-шаблона в 3D Основными компонентами системного блока, которые играют важную роль, при моделировании работы компьютера, являются: 1. Материнская плата. 2. Центральное процессорное устройство. 3. Оперативная память. 4. Видеокарта. 5. Блок питания [7]. Характеристики данных компонентов представлены в таблице 1. Таблица 1. Характеристики компонентов компьютера-шаблона Aser RS780HVF Материнская плата Чипсет AMD 780G Южный мост AMD SB700 Версия BIOS R01-B1 AMD Phenom X4 9550 Центральное процессорное устройство Архитектура K10 Количество ядер 4 Частота 2200 МГц NVIDIA GeForse 9600 GT Видеокарта DDR2 (4Гб) Оперативная память Эти компоненты персонального компьютера, их внешний вид и внешний вид системного блока, принципы их взаимодействия между собой и будут являться входными данными для построения модели персонального компьютера. Демонстрационная модель персонального компьютера предполагает 3D-представления системного блока. По нажатию определённой клавиши, крышка системного блока должна отодвигаться (см.рис.2). 218 Рисунок 2 – Вид системного блока без крышки После этого должно демонстрироваться его содержимое, то есть основные компоненты, список которых представлен выше. При нажатии на одном из основных компонентов будет появляться его 3D-модель и описание работы. На рисунке 3 показан пример 3D-представления элемента системного блока на примере материнской платы. В идеальном варианте, принцип работы элементов и всего блока в целом будет непосредственно моделироваться с помощью технологии компьютерного моделирования объекта. Рисунок 3 – 3D модель материнской платы Средства реализации моделей Для реализации моделей будет использоваться программная среда UNITY 3D. Она используется для разработки 2D/3D игр и приложений, предназначенных для работы в операционных системах Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также на игровых консолях Wii, PlayStation 3 и Xbox 360, Xbox One. Данное программное обеспечение имеет большой ряд достоинств. Первое и основное из них – доступность лицензированной версии. Также существует возможность разрабатывать интернет-приложения посредством подключения модуля WebPlayer к браузеру Unity. Все программные продукты, созданные в среде Unity, обладают поддержкой графических технологий DirectX и OpenGL. Среда Unity поддерживает три скриптовых языка: C#, модифицированный JavaScript и Boo Script (диалект Python). Расчёт игровой физики производится платформами PhysX от nVidia. Программная среда Unity поддерживает следующие форматы: - .3ds, .max, .obj, .fbx,.dae - для трёхмерных моделей; - .mp3, .wmv, .ogg - для звуковых файлов; - .bmp, .gif, .png, .tga, .psd, .tif, .dds - для изображений; - .mov, .ovg - для видеофайлов. В дальнейшем предполагается импорт модели системного блока и его компонентов из полнофункциональной программной системы 3D Max, которая является средством для создания и редактирования трёхмерной графики и анимации. Данная система работает в операционных системах Windows 219 и Windows NT [8]. Она является бесплатной для некоммерческого использования. С помощью системы 3D Max будет моделироваться внешний вид компонентов системного блока, взаимодействие этих объектов будет моделироваться, как уже было сказано, в программной среде Unity 3D. При разработке проект в среде Unity 3D будет состоять из сцен, так называемых уровней, каждый из которых представляет собой отдельный файл, который содержит объекты созданного в данной среде приложения, настройки для этих объектов и другие ресурсы, используемые в проекте [9]. Демонстрационная модель персонального компьютера будет разрабатываться в среде операционной системы Windiows 7 Professional, где также будет учтён импорт системы в среду других операционных систем этого семейства. Заключение В работе было рассмотрено построение задачи моделирования системы персонального компьютера. Были проведены исследования и сделан выбор необходимых программных средств компьютерного моделирования. В будущем планируется реализация данной модели персонального компьютера. Литература 1. Глинский Б. А. Моделирование как метод научного исследования. - М: Изд-во Московского университета, 1965 – 248с. 2. Советов Б. Я., Яковлев С. А. Моделирование систем: Учеб. для вузов — 3-еюд., перераб. и доп. — М.: Высш. шк., 2001. — 343 с. 3. Шеннон Р. Имитационное моделирование систем. — М.: Мир, 1978 – 240с. 4.Кашин В.М., Новиков В.Г. Основы теории и практики моделирования динамических систем: Учебное пособие – Коломна: КИ МГОУ, 2011. – 215 с. 5. Уемов А. И. Логические основы метода моделирования. М: Мысль, 1971 – 312с. 6. Седов Л.И. Методы подобия и размерности в механике. - М: Наука, 1987. – 432 с. 7. Скотт Мюллер. Модернизация и ремонт ПК = Upgrading and Repairing PCs. — 17-е изд. — М.: Вильямс, 2007. — С. 1181—1256. 8. Келли Мэрдок. Autodesk 3ds Max 2013. Библия пользователя = Autodesk 3ds Max 2013 Bible. — М.: Диалектика, 2013. — 816 с. 9. https:/docs.unity3d.com/ru/530/Manual/UnityManual.html Электронный ресурс – 2015 – Режим доступа: https://docs.unity3d.com/Manual/index.html - Unity Manual 10. Костогрызов А.И., Нистратов Г.А. Стандартизация, математическое моделирование, рациональное управление и сертификация в области системной и программной инженерии – М.: Изд-во ВПК и 3 ЦНИИ МО РФ. 2004. – 396 с. Иванникова Е. В., Завадская Т. В. Демонстрационная модель персонального компьютера на базе компьютера-шаблона. Разработка 3D модели персонального компьютера и его компонентов, реализация взаимодействий между ними. Ключевые слова: модель, системный блок, компьютер-шаблон, 3D моделирование, Unity Ivannikova E.V., Zavadskaja T.V. Demonstration model of the personal computer based on computer template. Development of a 3D model of the personal computer and components, the implementation of internal connections. Keywords: model, computer case, template of computer, 3D modeling, Unity 220 УДК 004.5 Исследование методов создания эмуляторов периферийных устройств для удаленной отладки проектов в FPGA-лаборатории В.С. Ленч (КСм-15 КИ), Ю.Е. Зинченко к.т.н. доц., А.В. Коваль асс., Т.А. Зинченко асс. Донецкий национальный технический университет [email protected] Ленч В.С., Зинченко Ю.Е., Коваль А.В., Зинченко Т.А. Исследование методов создания эмуляторов периферийных устройств для удаленной отладки проектов в FPGAлаборатории. В данной статье описываются методы организации удаленного управления периферийными устройствами, подключенных к отладочному FPGA-стенду, методы организации передачи, ввода и вывода информации. Также рассматривается схема взаимодействия пользователя с FPGA-лабораторией и проблемы многопользовательского управления комплексом в целом. Ключевые слова: периферийные устройства, FPGA, удаленный доступ, websockets, виртуальная FPGA-лаборатория. Введение FPGA (Field Programmable Gate Arrays) широко применяются для моделирования микроэлектронных устройств и их детального исследования и отладки [1-4], поэтому так важно студентам специальностей, связанных с компьютерной инженерией, иметь навыки работы с FPGA разработкой. Но для детального освоения навыков работы с FPGA и получения практического опыта студентам необходима инфраструктура. Высокая стоимость не позволяет студентам иметь собственные отладочные стенды, а ВУЗы не имеют возможности приобретать их достаточное количество, чтобы обеспечить беспрепятственную работу студентам во время учебных занятий. Поэтому одним из выходов из данной ситуации является разработка удаленного доступа к FPGA-лаборатории посредством технологии Интернет, что позволило бы студентам отлаживать свои проекты в любое удобное для них время, и более детально углубляться в разработку и исследование электронных устройств. Одной из проблем удаленной отладки на FPGA-стендах является отсутствие доступа к подключенным периферийным устройствам ввода/вывода. Именно этой проблеме и посвящена данная статья. Постановка задачи Вопрос решения проблемы удаленного доступа к FPGA комплексам уже поднимался в других работах [5-7], где был продемонстрирован определенный успех, но в этих трудах решалась задача организации управления периферийными устройствами, такими как мышь, клавиатура и т.п. Чаще всего авторы ограничивались светодиодами и переключателями. Попытка решения такой задачи предпринималась студентами ДонНТУ [8, 9, 12], но в целом решение достигнуто не было. Также ранее был проведен обзор текущей проблемы и было выбрано направление ее решения [10, 11]. Данная статья описывает конкретно решение проблемы эмуляции периферийных устройств, для обеспечения прозрачного управления платой и тестирования своих проектов, использующие подобные устройства. С помощью среды разработки Xilinx ISE Design Studio студенты имеют возможность собирать свою систему на кристалле (СнК), добавляя в нее необходимые периферийные компоненты, которые потом можно программировать. Далее собранное устройство и программа загружаются в FPGA плату, и она тестируется при помощи подключенных физических устройств. В ядре СнК в FPGA-стендах компании Xilinx располагаются спроектированные микропроцессор Microblaze или микроконтроллер Picoblaze. Цель работы заключается в том, чтобы пользователи могли создавать свои программы для СнК и могли выполнять их как в удаленной Webсреде, так и при непосредственном доступе к FPGA-плате, без каких-либо изменений в программном коде. Также пользователь, при использовании Web-среды, не должен ощущать трудностей при тестировании подключенных периферийных устройств. 221 Организация удаленного доступа Управление платой структурно организовано в виде трех основных частей: клиентская, серверная и FPGA-стенд. Структурная схема представлена на рисунке 1. Рисунок 1 – Структура организации удаленного доступа Управление платой реализуется при помощи Web-интерфейса через интернет соединение, поэтому клиентская (визуальная) часть создается при помощи технологий HTML, CSS и JavaScript. Клиентская часть планируется состоять из главной страницы, которая должна презентовать виртуальную FPGA-лабораторию, обратную связь, регистрацию и сам кабинет виртуальной лаборатории. Доступ в виртуальный кабинет должны иметь только пользователи с особыми разрешениями, которыми может наделить только администратор сайта. Структура интерфейса планируется быть максимально простой и интуитивно понятной. Все запросы к серверной части в виртуальном кабинете должны производиться без перезагрузки страницы, это возможно при помощи технологии AJAX (Asynchronous Javascript and XML). Также за платой должно быть наблюдение в реальном времени при помощи видеотрансляции. В текущей реализации видеотрансляция на клиентской части организована при помощи HTML5 тега video. На стороне сервера видеотрансляцию производит программа VLC media player. Имеется также возможность вместо видео запрашивать снимок с камеры в реальном времени. Личный кабинет виртуальной лаборатории оснащен упрощенным файловым менеджером, который позволяет управлять выделенным пространством на сервере для загрузки файлов прошивок. В файловом менеджере есть возможность переименовывать файлы и папки, создавать папки, загружать файлы прошивок, инициировать запись прошивки в плату. Для того, чтобы во время работы с платой другие пользователи не могли загружать в нее свои проекты, необходимо обеспечивать контроль над сессией. Если плата занята, не позволять загружать новые файлы прошивок, но если пользователь, работающий с платой, не проявляет активности некоторое время, то необходимо освобождать плату автоматически. Структура виртуального личного кабинета приведена на рисунке 2. Рисунок 2 – Структура виртуально кабинета лаборатории Основная часть, которой следует уделить особое внимание, это организация прозрачного управления платой. Обмен данными с клиентом по протоколу HTTP реализован таким образом, чтобы клиент запрашивал данные, а сервер их отдавал. Для эмуляции периферийных устройств такая схема работы не подходит, потому что необходимо в минимальные промежутки времени передавать и принимать данные без перезагрузки страницы. Для решения этой проблемы можно применять два подхода. Первый подход заключается в 222 использовании технологии Long Polling. В основе этой технологии лежит использование фоновых AJAX запросов в короткие промежутки времени, то есть клиент запрашивает постоянно данные у сервера, и если данные есть, то получает соответствующий ответ. Передача данных в таком случае происходит по запросу пользователя. Минусом такой технологии является большая нагрузка на сервер за счет множества запросов и синхронность обмена, что сказывается на производительности. Плюсом является высокая поддержка современными браузерами. Второй подход заключается в использовании протокола Websocket. Этот протокол позволяет производить обмен с сервером в реальном времени. На сегодняшний день эту технологию поддерживают все современные браузеры, поэтому на стороне клиента технология обладает всеми преимуществами перед Long Polling. Трудности возникают на стороне сервера. Websocket требует отдельной программы сервера, который бы обрабатывал запросы, а также Websocket-сервер не может работать на том же порте, что и веб сервер. Websocket-сервер в текущем проекте реализован при помощи PHP cli скрипта, который постоянно слушает соединение с сокетом и COM-портом. Плата подключена к серверу через COM-порт, и именно через этот интерфейс производится обмен данными. Так как стандартная библиотека PHP не поддерживает работу с COM-портом, необходимо использовать внешнюю программу, которая бы «слушала» изменения на этом интерфейсе и передавала данные на Websocket-сервер, а сервер уже передавал данные клиенту. Именно по такой схеме и реализован обмен в текущей реализации проекта. Связующим звеном между Websocket-сервером и «слушателем» COM-порта является стандартный буфер ввода/вывода ОС (stdout/stdin). Загрузка прошивки на плату организована с помощью batch-скрипта, который запускается по запросу пользователя. На FPGA-стенде все операции ввода/вывода должны перенаправляться на порт RS232. Для этого необходимо разработать эмуляторы периферийных устройств, которые должны принимать данные с порта RS232 и перенаправлять их на шину process local bus (PLB), а также ответ с шины передавать в порт RS232. Эмуляция периферийного устройства Из описанного выше вытекает то, что эмулятор периферийного устройства должен быть задействован на всех трех каскадах структуры виртуальной лаборатории (рисунок 3). Рисунок 3 – Жизненный цикл одного действия эмулятора периферийного устройства В случае эмуляции устройств ввода данные, которые вводит клиент в виртуальном кабинете (например, нажатие клавиш, или координаты движения мыши), необходимо преобразовать в пакеты, которые аналогичны пакетам данных устройства. Далее эти пакеты данных должны передаваться через Websocket-соединение на сервер. Сервер передает данные на COM-порт, после чего эти данные принимает FPGA-стенд, где основная программа-эмулятор обрабатывает данные в соответствии со стандартами периферийных устройств и передает дальше на шину PLB. Далее данные может получить программа, написанная для СнК и использовать их в собственных целях. После, с шины PLB, может прийти ответ, который передается обратно клиенту через сервер, где уже javascript-сценарий для конкретного периферийного устройства должен принять решения о последующих действиях. В случае эмуляции устройств вывода, например, VGA монитора или LCD дисплея, на клиентской стороне можно использовать такую технологию HTML5 как canvas. В таком случае инициатором служит FPGA-плата, которая передает данные клиенту, а на стороне клиента должен работать сценарий, который обрабатывает принятые данные и выводит их в соответствующем виде. При таком подходе FPGA-эмуляторы должны передавать свой уникальный идентификатор, чтобы javascript-сценарий мог идентифицировать устройство, и обработал принятые данные соответствующим образом. 223 Проблема многопользовательского доступа и производительности COM-порт как приемо-передатчик был выбран из-за простоты работы. Но использование такого метода передачи информации накладывает некоторые ограничения. Одним из таких ограничений является использование одного сервера на одну плату, это обусловлено аппаратным обеспечением персонального компьютера. Эту проблему можно было бы разрешить, используя в качестве приемо-передатчика порт RJ-45 и Ethernet-протокол. В таком случае, каждая плата служила бы отдельным сетевым устройством, которое могло бы подключаться через сетевой концентратор к серверу, и можно было бы клиенту выбирать свободное устройство и работать непосредственно с ним. Также передача данных через COM-порт обладает низкой пропускной способностью, что может создать ограничения при обмене большими объемами информации. Эту проблему также решает Ethernet протокол. Цель текущей работы создать эмуляцию периферийных устройств, но созданная структура взаимодействия позволяет в перспективе переделать любой из способов передачи информации, так как структура пакетов обмена изменяться не будет. Литература Зинченко Ю., Калашников В., Хайдук С. и др. FPGA-технологии проектирования и диагностика компьютерных систем / Сборник научных трудов VI Междунар. научн.-практ. конф. «Современные информационные технологии и ИТ-образование». - Москва: МГУ, 2011. - Т. 1. 787 С. 422-429. http://conf.it-edu.ru/conference/2011/works 2. Зинченко Ю., Дяченко O. и др. Новые технологии проектирования в ДонГТУ/ Материалы междунар. научно-техн. конф. ”Новые информационные технологии в САПР и АСУ”. Киев.- 2001.- С 15-19. 3. Медведев К.В., Зинченко Ю.Е. Навигационная система на базе FPGA-технологий с возможностью самотестирования // Сборник трудов VII международной научно-технической конференции студентов, аспирантов и молодых ученых Информатика и компьютерные технологии – 2011. – Донецк: ДонНТУ – 2011. 4. Волошин Д.Н., Зинченко Ю.Е. Разработка системы реального времени на базе Xilinx XC3S500E Spartan-3E FPGA // Сборник трудов VII международной научно-технической конференции студентов, аспирантов и молодых ученых Информатика и компьютерные технологии, 22-23 ноября 2011 г., Донецк: ДонНТУ. – 2011. В 2-х томах, Т. 1. – с. 44-47. 5. Rusen J., Kolberg S. Online FPGA laboratory for interactive digital design //International Conference on Engineering Education 2004 (ICEE2004). – 2004. – С. 16-21. https://www.researchgate.net/ publication/ 237336992_Online_ FPGA_laboratory_for_interactive _digital_design 6. A Remote FPGA Laboratory for Digital Design Students. Авторы: Joao Soares, Jorge Lobo. Режим доступа: http://ap.isr.uc.pt/archive/jlobo-REC2011.PDF 7. Лаборатория Электронных Средств Обучения (ЛЭСО) СибГУТИ. Интернет ресурс. Режим доступа: http://www.labfor.ru/online/fpga 8. Персональный сайт на портале магистров ДонНТУ. Автор: Беседа Д. Г. 2014 г. Интернет ресурс. Режим доступа: http://masters.donntu.org/2014/fknt/beseda/diss/index.htm 9. Зинченко Ю.Е., Зинченко Т.А., Асланов И.Г. Виртуальная FPGA-лаборатория с дистанционным доступом // Современные компьютерные информационные технологии: Материалы III Всеукраинской школы-семинара молодых ученых и студентов АСИТ‘2013. – Тернополь: ТНЕУ, 2013 http://ea.donntu.org/handle/123456789/19624 10. Персональный сайт на портале магистров ДонНТУ. Автор: Ленч В. С. 2016 г. Интернет ресурс. Режим доступа: http://masters.donntu.org/2016/fknt/lench/diss/index.htm 11. В.С. Ленч, В.А. Гень, Ю.Е. Зинченко, А.В. Коваль. Исследование организации удаленного доступа к fpga-лаборатории // Международная научно-техническая конференция студентов, аспирантов и молодых ученых «Компьютерная и программная инженерия – 2015», Донецк, 15-16 декабря 2015г., с. 43. http://cs.conf.donntu.org/docs/sbornik2015.pdf (Дата обращения 29 октября 2016г.) 12. Беседа Д.Г., Зинченко Ю.Е. Разработка метода эмуляции работы FPGA-платы с клавиатурой через порт PS/2 // Сборник трудов V Всеукраинская научно-техническая конференция студентов, аспирантов и молодых ученых, Информационные управляющие системы и компьютерный мониторинг (ИУС КМ-2014), 22-23 апреля 2014 г., г. Донецк : – Донецк: ДонНТУ, 2014 - т.1 - С. 157-162 1. 224 Ленч В.С., Зинченко Ю.Е., Коваль А.В. Исследование методов создания эмуляторов периферийных устройств для удаленной отладки проектов в FPGA-лаборатории. Рассмотрен масштабируемый способ организации удаленного управления FPGA-стендом на основе трех каскадной модели взаимодействия пользователя с конечным устройством, которая позволяет студентам моделировать и отлаживать собственные системы на кристалле. Разработан способ отладки периферийных устройств на плате. Описаны возможные проблемы при организации удаленного доступа к FPGA-лаборатории. Ключевые слова: FPGA-лаборатория, эмулятор периферийных устройств, удаленное управление, websockets, PLB Lench V.S., Zinchenko Y.E., Koval O.V. Research of methods creation emulator peripheral devices for remote debug in FPGA-lab. Considered a scalable method of organization remote manage FPGA based in three-cascade model of user interaction with end device, which allows for students simulate and debug own system-on-chip. Developed a method of debug peripheral devices on the board. Considered problems with the organization of remote access to the FPGA-lab. Keywords: FPGA, FPGA KIT, Spartan-3E, SoC, Microblase, Picoblase, PLB, FPGA Remote Control, Peripheral emulator, websockets, 225 УДК 004.89 Анализ компьютерных технологий распознавания жестов рук В.А. Лупашевский, А.Я. Аноприенко Донецкий национальный технический университет, г. Донецк кафедра компьютерная инженерия [email protected] Лупашевский В.А., Аноприенко А.Я. Анализ компьютерных технологий распознавания жестов рук. Рассмотрена история появления первых перчаток для определения жестов, появление камер для распознавания рук человека, а также новейшей технологии Project Soli. Найдены закономерности в развитии технологий распознавания рук человека на основе результатов множества исследований за последнее десятилетие. Ключевые слова: распознавание рук человека, жесты, исследование, система реального времени, человеко-компьютерное взаимодействие. Вводная часть Жесты человека состоят из множества выраженных телом движений, которые включают в себя выражения лица, а также движения рук. Среди всего множества жесты рук являются наиболее информативными и часто используемыми в повседневной жизни человека, особенно у людей с ограниченными возможностями. Технологии распознавания данных жестов дают возможность для более простого и естественного взаимодействия с системами виртуальной реальности [1]. Эта область является предметом исследования вот уже многие годы. История распознавания жестов рук в компьютерной индустрии берет свое начало с изобретения устройств на основе перчаток. Исследователи поняли, что использование языка жестов предоставляет более простой способ посылать команды компьютеру. Это, в свою очередь, повлияло на разработку более точных акселерометров, инфракрасных камер, а также сенсоров на базе оптоволокна. Некоторые из исследователей предложили идею разработки систем компьютерного зрения без использования сенсоров, размещенных на перчатке [1] История Data Glove Первый прототип перчатки Sayre Glove был разработан в 1977 г. и использовал с одной стороны гибкие трубки с источником света и фотоприемник с другой. Данные трубки размещались вдоль каждого пальца. При сжимании пальцев происходило уменьшение количества света, проходящее через трубку. Система определяла количество сжатых пальцев при помощи измеряемого напряжения, используя фотодиод [2]. Вторым прототипом, работающим на другом принципе, является перчатка, разработанная Гэри Гримсом в 1983 г., использовала установленные на ткань сенсоры разного типа: сенсор прикосновения, сенсор гибкости, сенсор наклона и сенсор измерения скручивания предплечья. Данная перчатка могла распознавать до 80-ти уникальных жестов. Указанные прототипы имели ограниченную точность и применялись для специфических приложений. Они не получили достаточного внимания среди экспериментальных устройств и остались в качестве опытных образцов, но показали возможность осуществления задумки. В 80-х годах, во времена холодной войны, начали бурно развиваться технологии сенсоров, а также компьютерные технологии. В 1987 г. появилась первая коммерчески доступная перчатка Data Glove [2]. Это была улучшенная версия перчатки Циммермана (рис. 1), которая была разработана в 1982 г. Идея была подобна Sayre Glove, однако использовала оптоволокно и была оборудована от 5 до 15 дополнительными сенсорами для увеличения количества возможных распознаваемых жестов. Большое количество доступных сенсоров сделало данный продукт популярным среди исследователей из разных областей. На базе этой перчатки было разработано множество различных устройств. В частности, одним из устройств была Power Glove, которая использовалась как контроллер для видео консоли Nintendo [2]. 226 Рисунок 1 – Перчатка Циммермана Устройства на базе камер В 1990-2000 гг. интерес к вышеупомянутым разработкам уменьшился, однако, начиная с 2009 г., когда производительность персональных компьютеров стала достаточной для произведения сложных вычислений и использования нейронных сетей, интерес к разработке систем распознавания рук и жестов начал вновь расти. Возникла задача определения рук при помощи камер. На рынок вышли такие продукты как Microsoft Kinect и Leap Motion (рис. 2), которые были способны распознавать руки человека, используя обычный персональный компьютер тех времен. Рисунок 2 – Microsoft Kinect (слева) и Leap Motion (справа) Microsoft Kinect [43] состоит из двух камер: RGB и инфракрасной, а также имеет инфракрасный прожектор. Leap Motion [44] имеет похожее строение. В нем находятся инфракрасные прожекторы и две инфракрасные камеры. Project Soli В 2015 г. подразделение инновационных разработок Advanced Technology and Projects (ATAP), входящее в состав компании Google, представило Project Soli – технологию, позволяющую распознавать жесты пальцев при помощи радара (рис. 3). Рисунок 3 – Project Soli 227 Радар представляет собой микросхему размером 8х10 мм (рис. 4). Диапазон определения достигает до 1 м от микросхемы. Рисунок 4 – Микросхема-радар Soli На данный момент данная технология может определять три вида жестов: нажатие кнопки, поворот ручки потенциометра и передвижение слайдера (рис. 5). Рисунок 5 – Определяемые жесты при помощи радара Soli: а) нажатие кнопки; б) поворот ручки потенциометра; в) передвижение слайдера Учитывая достаточно малые размеры микросхемы, данная технология имеет большие перспективы в ближайшем будущем, т.к. ее можно будет внедрять в устройства ежедневного пользования, начиная от смартфонов и заканчивая автомобилем. Исследование закономерностей Для выявления закономерностей был исследован ряд статей на тему определения жестов рук [3-34]. В табл. 1 приведена краткая информация по итогам исследований различных методов. Табл. 2 отображает краткую сводку про области применения и инвариантный фактор некоторых методов, приведенных в литературных источниках. № источника [10] [7] [33] [34] [16] [19] [20] Таблица 1. Краткая информация об итогах исследований. Год Кол-во распознаваемых Кол-во жестов для Процент правильного исследования жестов обучения и тестирования распознавания, % 2012 26 1040 98,80 2011 6 60 95,00 2010 26 208 92,78 2008 10 300 90,45 2009 31 130 90,45 2012 6 60 100 для более чем 4-х жестов 2012 20 200 95,00 228 Таблица 2. Области применения и инвариантный фактор методов. № ист. [21] [18] [10] [7] Область применения Система реального времени/управление виртуальным краном/игра камень-ножницы-бумага Распознавание знаков Распознавание знаков Язык жестов [16] Управление роботом [24] [19] Система реального времени Распознавание знаков [20] Распознавание знаков [22] Рисование графических элементов, таких как треугольник, квадрат/Действия «Копировать, Вставить, Отменить»/Контроль робота Инвариантный фактор Условия освещения, Перемещение Условия освещения, Перемещение Вращение Вращение, Перемещение, Масштабирование Вращение, Перемещение, Масштабирование Вращение, Масштабирование Вращение, Перемещение, Масштабирование Вращение, Перемещение, Масштабирование - Проанализировав результаты исследований, можно сделать вывод, что на данный момент существуют методы, с помощью которых можно определить жесты руки с вероятностью более 95%, что дает возможность применять рассмотренные методы в технических целях. На рис. 6 показана зависимость изменения средней вероятности правильного опознавания рук по годам исследования. Рисунок 6 – Возрастание вероятности правильного опознавания рук по годам исследования Информация табл.2 показывает, что почти все методы инварианты к вращению, перемещению и масштабированию. Это означает, что данные технологии могут применяться во многих отраслях, где необходимо отслеживание рук человека. Однако, их требованием является необходимость, чтобы условия освещения были неизменны. Лишь только малая часть методик является инвариантной к освещению, что связано с трудоемкостью и сложностью развития технологий распознавания на данный момент. В то же время учет изменения освещения является направляющим вектором для дальнейшей модернизации камер и других сенсоров. Выводы В данной работе выполнен анализ технологий определения рук человека, начиная от первых изобретений, представляющих собой перчатки (Data Glove, Zimmerman Glove), и заканчивая камерами Microsoft Kinect и Leap Motion, а также новейшей технологии на основе радара от Google – Project Soli. Также произведен анализ характеристик разработок по теме распознавания рук человека и жестов, приведенных в публикациях за 2008-2012 гг. Результаты показывают, что за последнее десятилетие были разработаны методы, которые инварианты к вращению, перемещению и масштабированию, однако накладывают ограничения на освещение. Точность определения составляет более 95%, что представляет возможным применять данные методы в реальных системах. Исходя из всего вышесказанного, в ближайшие 10-20 лет следует предвидеть бурное развитие и внедрение данных технологий практически во все сферы человеческой жизни (в первую очередь для людей с ограниченными физическими возможностями), и, соответственно, изменение привычного образа жизни до неузнаваемости. 229 Литература 1. Sharma P. K., Sharma S. “Evolution of Hand Gesture Recognition: A Review” // IJECS Volume 4 Issue 1 January, 2015. – P.9962-9965. 2. Premaratne P. Human Computer Interaction Using Hand Gestures, Cognitive Science and Technology, Springer Science+Business Media Singapore, 2014. - Ch.2: Historical Development of Hand Gesture Recognition. 3. Khan R. Z., Ibraheem N. A. Hand Gesture Recognition: A Literature Review // IJAIA, 2012. - Vol.3, No.4. – P.161-174. 4. Murthy G. R. S., Jadon R. S. A Review of Vision Based Hand Gestures Recognition // International Journal of Information Technology and Knowledge Management, 2009, vol. 2(2). - Р. 405-410. 5. Garg P., Aggarwal N., Sofat S. Vision Based Hand Gesture Recognition // World Academy of Science, Engineering and Technology, 2009, Vol. 49. - Р. 972-977. 6. Karray F., Alemzadeh M., Saleh J. A., Arab M. N. Human Computer Interaction: Overview on State of the Art // International Journal on Smart Sensing and Intelligent Systems, 2009, Vol. 1(1). 7. Hasan M. M., Misra P. K. Brightness Factor Matching For Gesture Recognition System Using Scaled Normalization // International Journal of Computer Science & Information Technology (IJCSIT), 2011, Vol. 3(2). 8. Li X. Gesture Recognition Based on Fuzzy C-Means Clustering Algorithm // Department of Computer Science. The University of Tennessee Knoxville, 2003. 9. Mitra S., Acharya T. Gesture Recognition: A Survey // IEEE Transactions on systems, Man and Cybernetics, Part C: Applications and reviews, 2007, vol. 37 (3). - Р. 311- 324. 10. Wysoski S. G., Lamar M. V., Kuroyanagi S., Iwata A. A Rotation Invariant Approach On Static-Gesture Recognition Using Boundary Histograms And Neural International Networks // IEEE Proceedings of the 9th International Conference on Neural Information Processing, Singapura, 2002. 11. Joseph J., LaViola Jr. A Survey of Hand Posture and Gesture Recognition Techniques and Technology // Master Thesis, Science and Technology Center for Computer Graphics and Scientific Visualization, USA, 1999. 12. Khan R. Z., Ibraheem N. A. Survey on Gesture Recognition for Hand Image Postures // International Journal of Computer And Information Science, 2012, Vol. 5(3). 13. Moeslund T. B., Granum E. A Survey of Computer Vision-Based Human Motion Capture // Elsevier, Computer Vision and Image Understanding, 2001, Vol. 81. - Р. 231–268. 14. Ibraheem N., Hasan M., Khan R., Mishra P. Comparative study of skin color based segmentation techniques // Aligarh Muslim University, A.M.U., Aligarh, India, 2012. 15. Mahmoud E., Ayoub A., Jorg A., Bernd M. Hidden Markov Model-Based Isolated and Meaningful Hand Gesture Recognition // World Academy of Science, Engineering and Technology 41, 2008. 16. Stergiopoulou E., Papamarkos N. Hand gesture recognition using a neural network shape fitting technique // Elsevier Engineering Applications of Artificial Intelligence, 2009, Vol. 22(8). - P. 1141– 1158. 17. Hasan M. M., Mishra P.K. HSV Brightness Factor Matching for Gesture Recognition System // International Journal of Image Processing (IJIP), 2011, Vol. 4(5). 18. Malima, A., Özgür, E., Çetin, M. A Fast Algorithm for Vision-Based Hand Gesture Recognition For Robot Control // IEEE 14th conference on Signal Processing and Communications Applications, 2006. -P.1-4. 19. Hasan M. M., Mishra P.K. Features Fitting using Multivariate Gaussian Distribution for Hand Gesture Recognition // International Journal of Computer Science & Emerging Technologies IJCSET, 2012, Vol. 3(2). 20. Hasan M. M., Mishra P.K. Robust Gesture Recognition Using Gaussian Distribution for Features Fitting // International Journal of Machine Learning and Computing, 2012, Vol. 2(3). 21. Freeman W. T., Michal R. Orientation Histograms for Hand Gesture Recognition // IEEE International Workshop on Automatic Face and Gesture Recognition, 1995. 22. Min B., Yoon, H., Soh, J., Yangc, Y., Ejima, T. Hand Gesture Recognition Using Hidden Markov Models // IEEE International Conference on computational cybernetics and simulation, 1997, Vol. 5. 23. Verma, R., Dev A.Vision based hand gesture recognition using finite state machines and fuzzy logic // IEEE International Conference on Ultra-Modern Telecommunications & Workshops (ICUMT '09). - P. 1-6. 24. Lamberti L., Camastra F. Real-Time Hand Gesture Recognition Using a Color Glove // Springer Proceedings of the 16th international conference on Image analysis and processing: Part I ICIAP, 2011. 25. Minghai Y., Xinyu Q., Qinlong G., Taotao R., Zhongwang L., (2010). “Online PCA with Adaptive Subspace Method for Real-Time Hand Gesture Learning and Recognition” // Journal World Scientific and Engineering Academy and Society WSEAN, Vol. 9(6). 26. Ibraheem N. A., Khan R. Z. Vision Based Gesture Recognition Using Neural Networks Approaches: A Review // International Journal of Human Computer Interaction (IJHCI), 2012, Malaysia, Vol. 3(1). 230 27. Maraqa M., Abu-Zaiter R. Recognition of Arabic Sign Language (ArSL) Using Recurrent Neural Networks // IEEE First International Conference on the Applications of Digital Information and Web Technologies, (ICADIWT), 2008. - P. 478-480. 28. Maung T. H. H. Real-Time Hand Tracking and Gesture Recognition System Using Neural Networks // World Academy of Science, Engineering and Technology 50, 2009. - P. 466- 470. 29. Cheng-Chang L., Chung-Lin H. The Model-Based Dynamic Hand Posture Identification Using Genetic Algorithm // Springer, Machine Vision and Applications, 1999, Vol. 11. 30. Kouichi M., Hitomi T. Gesture Recognition using Recurrent Neural Networks // ACM conference on Human factors in computing systems: Reaching through technology (CHI '91), 1999. - P. 237-242. 31. Guan, Y., Zheng .M. Real-time 3D pointing gesture recognition for natural HCI // IEEE Proceedings of the 7th World Congress on Intelligent Control and Automation WCICA 2008. 32. Freeman, W. T., Weissman, C. D. Television Control by Hand Gestures // IEEE International Workshop on Automatic Face and Gesture Recognition, 1995. 33. Kulkarni V. S., Lokhande S.D. Appearance Based Recognition of American Sign Language Using Gesture Segmentation // International Journal on Computer Science and Engineering (IJCSE), 2010, Vol. 2(3). - P. 560-565. 34. Zhao S., Tan W., Wen S., Liu Y. An Improved Algorithm of Hand Gesture Recognition under Intricate Background // Springer the First International Conference on Intelligent Robotics and Applications (ICIRA 2008), Part I. -P. 786–794. 35. Joshi P., Escrivá D. M., Godoy V. OpenCV By Example: Packt Publishing, 2016. – 296 p. 36. Szeliski R. Computer Vision: Algorithms and Applications: Springer, 2010. – 979 p. 37. Арзамасцев А. А. Искусственный интеллект и распознавание образов: учеб. пособие / А. А. Арзамасцев, Н. А. Зенкова ; М-во обр. и науки РФ, ГОУВПО «Тамб. гос. ун-т им. Г. Р. Державина». Тамбов: Издательский дом ТГУ им. Г. Р. Державина, 2010. – 196 с. 38. Шапиро Л. Компьютерное зрение / Л. Шапиро, Дж. Стокман; Пер. с англ. - М.: БИНОМ. Лаборатория знаний, 2006. - 752 с. 39. Jähne B., Haußecker H. Computer Vision and Applications A Guide for Students and Practitioners: Academic Press, 2000. – 702 p. 40. Jähne B., Haußecker H., Geißler P. Handbook of Computer Vision and Applications Volume 1 Sensors and Imaging: Academic Press, 1999. – 657 p. 41. Jähne B., Haußecker H., Geißler P. Handbook of Computer Vision and Applications Volume 2 Signal Processing and Pattern Recognition: Academic Press, 1999. – 967 p. 42. Jähne B., Haußecker H., Geißler P. Handbook of Computer Vision and Applications Volume 3 Systems and Applications: Academic Press, 1999. – 955 p. 43. Microsoft Kinect [электронный ресурс] // Wikipedia: [сайт]. [2016]. URL: https://ru.wikipedia.org/wiki/Kinect 44. How Does the Leap Motion Controller Work [электронный ресурс] // Blog Leap Motion: [сайт]. [2016]. URL: http://blog.leapmotion.com/hardware-to-software-how-does-the-leap-motion-controller-work Лупашевский В.А., Аноприенко А.Я. Анализ компьютерных технологий распознавания жестов рук. Рассмотрена история появления первых перчаток для определения жестов, появление камер для распознавания рук человека, а также новейшей технологии Project Soli. Найдены закономерности в развитии технологий распознавания рук человека на основе результатов множества исследований за последнее десятилетие. Ключевые слова: распознавание рук человека, жесты, исследование, система реального времени, человеко-компьютерное взаимодействие. Lupashevskyi V., Anoprienko A. Analysis of computer technologies for hand gesture recognition. The history of developing the first Data Glove as well as the invention of cameras for hand gesture recognition and brand-new technology Project Soli have been studied. Patterns in the sphere of hand recognition technologies based on many researches for the last ten years have been found. Keywords: human hand recognition, gestures, research, real-time system, human-computer interaction. 231 УДК 004.93 Использование пространства тетралогики для программной реализации фильтра Габора при распознавании лиц Р. В. Лычагин, А. Я. Аноприенко, С. В. Иваница Донецкий национальный технический университет, кафедра компьютерной инженерии, г. Донецк [email protected] Лычагин Р. В., Аноприенко А. Я., Иваница С. В Использование пространства тетралогики для программной реализации фильтра Габора при распознавании лиц. Выполнен анализ фильтра Габора. Рассмотрены способы его применения для выявления характерных признаков лица и модернизации интерпретируемых значений результата фильтрации. Ключевые слова: гармоническая функция, неопределенность, множественность. гауссиан, фильтр Габора, тетралогика, Введение Биометрия – один из способов защиты информации, идентификации человека и подтверждения личности человека, основанные на физиологических или поведенческих характеристиках [1]. Одной из физиологических характеристик являются характеристика лица. Распознание лиц сводится к процессу вычисления признаков и их последующие сравнение. Так в ГОСТ Р ИСО/МЭК 19794-5-2006 «Данные изображения лица» [2] выделяют антропометрические контрольные точки (закрашенные) и другие контрольные точки (не закрашенные) (рис. 1): Рисунок 1 – Коды контрольных точек MPEG-4 по ИСО/МЭК 14496-2 (сокращенный вариант) [2] При анализе изображения лица на рис. 1 выявлено, что все точки являются крайними точками на разных частях лица. В связи с этим целесообразно использование фильтра Габора, так как он применяется для распознавания границ объектов [3]. Основными проблемами в подобных алгоритмах являются быстродействие выполнения алгоритма и точность полученных результатов. Данный алгоритм работает с недостаточной в ряде случаев точностью, т. е. имеет возможность формирования определенного процента вероятности. Поскольку в большинстве случаев распознавания лица требуется большая вероятность узнаваемости лица, то фильтра Габора можно подвергнуть модификации с использованием современных аппаратно-программных комплексов и технологий. Поскольку процесс обработки данных при распознавании образов достаточно сложен, что приводит к большим временным затратам, то, с целью минимизации времени на представление (кодирование) и обработку ряда параметров фильтра Габора, в данной работе предложено использование расширенного логического пространства, в частности – пространство тетрологики [4, 5]. 232 Фильтр Габора Фильтр Габора – линейный электронный фильтр, импульсная переходная характеристика которого определяется в виде гармонической функции, помноженной на гауссиан [3]. Двухмерный фильтр Габора имеет мнимую и действительную части [6]. Действительная часть фильтра представлена формулой (1): (1) где ; ; x, y – координаты ядра в заранее заданных пределах; – период ядра в пикселях; – наклон ядра; – стандартное отклонение Гаусового ядра; – смещение фазы ядра; – сжатие Гауссиана. Мнимая часть фильтра представлена формулой (2): (2) Графически функция выглядит как гармоническая функция, ограниченная гауссианой [3]. Как видно данный фильтр имеет параметр наклона , что позволяет задать углы искомых краев. Сжатие , можно ее определить, как погрешность находимых краев, закругление; чем этот параметр меньше тем прямее будут находится линии. Этот параметр не следует завышать, так как при этом наклона теряет влияние. Таким образом, чтобы выделить все края на лице (относительно круглом объекте), применим фильтр Габора с различными углами наклона ядра и объединить результаты некоторой функцией (операцией). Так, например, при использовании логической функции «ИЛИ» (см. рис. 2 в) формируются контуры искомых углов , а при использовании функции «И» (см. рис. 2 б) – набор точек пересечений краев с углами (в последнем случае используется меньше углов, так как результат на каждом шаге вычислений может заместить (потерять) значения предыдущего шага, что приведет к получению множества мелких невыраженных точек). а) б) в) г) Рисунок 2 – Пример применения серий фильтра Габора (значения , подобраны экспериментальным путем): а) оригинал; б) результат применения одного фильтра; в) набор из 7-ми фильтров, объединённых функцией «ИЛИ»; г) набор из 3-х фильтров, объединённых функцией «И» Для реализации поставленной задачи в разрабатываемом программного обеспечении TCV (TetraСomputer Vision) применяется технология OpenCV (Сomputer Vision) [7], представляющая собой набор открытых библиотек компьютерного зрения, обработки изображений и численных алгоритмов общего 233 назначения. В TCV используется метод Виолы-Джонсона [8] для вычисления позиции лица и дальнейшем обработки только области лица. При этом полученная область изображения приводится к одному общему размеру 200х200 пикселей, что приводит к получению однородных и более выраженных краев. В результате фильтрации получаем матрицу с положительными и отрицательными элементами с плавающей запятой типа float (рис. 2 б). Как видно на изображении самые темные области являются самыми полезными. Поэтому для получения итоговой маски принимаем, что все элементы меньшие 0 равны 1 (отображаются как черный), а остальные, больше, равны 0 (отображаем как белый). Как видно при использовании функции «ИЛИ» получаем слишком много параметров, а при использовании функции «И» параметров недостаточно. Поэтому для повышения качества интерпретируемой информации полученной фильтром, мы будем использовать расширенной логическое пространство тетрологики. Тетрологика Тетрологика [9, с. 64], включающая в себя наряду с классическими «истиной» (1) и «ложью» (0) значения «неопределенности» (А) и «множественности» (М). Полученные результаты могут служить основой для дальнейшего развития так называемой «алгебры тетралогики», которую можно рассматривать как важный этап развития постбинарной логики будущего. Данный вариант тетралогики представим в виде множества четырех состояний L4 = {0, 1, A, M}. Состояния тетралогики могут кодироваться тетракодом, представленным в виде значений С4 = {0, 1, A, M} и используемым по аналогии c бинарным кодом для поразрядного представления количественных значений. При этом в отличие от двоичной логики, где n-разрядное пространство определено двоичными значениями, в тетралогике количество увеличивается до значений тетракодов. Пространство тетралогики (тетралогическое пространство) можно представить совокупностью четырех непустых множеств: Q, J — содержащих по одному фиксированному логическому элементу («истина», «ложь»); А, М — содержащих, в конечном представлении, по два элемента, представляющих собой результат логической операции над элементами множеств Q, J («истина» или «ложь», «истина» и «ложь»). Математическая запись определения множеств Q, J, А и М: (3) (4) (5) (6) Из записей (3) и (4) очевидно, что множества Q и J представляют собой множества фиксированных значений {0} и {1} соответственно ( — const 0; — const 1). Запись (5) показывает, что множество А определимо как сумма (объединение) множеств Q и J (a(QJ)) и словесно может быть описано как «или 0 или 1». Запись (6) показывает, что множество М определимо как произведение (пересечение) множеств Q и J (m(QJ)) и словесно может быть описано как «и 0 и 1». На основании принятых утверждений (2–5) можно определить понятия каждого элемента тетралогики: Q = {0} — множество «ложь», представляющее значение «ложь» (логический 0) классической логики; J = {1} — множество «истина», представляющее значение «истина» (логическая 1) классической логики; А — множество абсолютной неопределенности, «непроявленности» (на данный момент, т. е. на момент фиксации логического состояния (высказывания), неизвестно, или «истина» или «ложь»), которая может быть выражена объединением множеств «истина» и «ложь»; М — множественность, многозначность (и «истина» и «ложь» одновременно, т. е. невозможна однозначная фиксация высказывания), которая может быть выражена пересечением множеств «истина» и «ложь». Фильтр Габора и тетралогика Как уже было сказано наиболее полезные результаты фильтрации лежат в области ниже 0, остальные (серые) отсекались как ненужные. От сюда появляется возможность добавления значений путем разбиение на следующие отрезки: 1) меньше или равно 0; 2) (0;85]; 3) (85;170]; 4) больше170. Таким образом выполнив квантование закодируем значения пикселей следующим образом: 1) 0; 2) 85; 3) 170; 4) 255. Но данный подход еще не приводит к концептам тетралогики. Нет многозначности как одновременного «1 и 0», или неопределённости как неизвестности «0 или 1». Поэтому к тетралогике приходим путем объединения нескольких вариантов фильтра с помощью нахождения среднего арифметического (7). , где n – количество слоев, p – значение пикселя Отсюда, если , то зададим пикселю 234 (7) в качестве конечного изображения значение многозначности М. А если , то в качестве значения выступает неопределённость А. а) в) б) Рисунок 4 – Пример использования фильтра Габора с тетралогикой (белый – 0, черный – 1, зеленый – М, оранжевый – А): а) оригинал; б) результат объединения нескольких фильтров с одним углом; в) результат применения функции «И» Таким образом на рис. 4б получено изображения не одного фильтра, а уже диапазона фильтров. От сюда появляется возможность диапазонной настройки фильтра что позволит учитывать более большой диапазон возможностей конструкции лица. Подобное внедрение дополнительных значений может позволить выполнение по-новому тех же 235 логических операций «ИЛИ», «И» и возможности других бинарных операций тетралогики. Это может привести к упрощению выявления контрольных точек лица. Так, например, на рис. 4в изображено применение функции «И», кроме той же информации с функции «И» при бинарной логике мы также получаем дополнительные интересующие нас области в виде значений неопределённости А. Выводы Произведен анализ фильтра Габора. Были рассмотрены простейшие методы использования фильтра Габора, с элементарной интерпретацией результата на 0 и 1. Были найдены, экспериментальным путем, параметры фильтра. Выявлена основная проблема использования фильтра Габора, выбор параметров фильтра, в особенности λ и σ (период и отклонение ядра). И хоть уже подобраны достаточно удачные параметры возможен подбор еще более эффективных параметров. Рассмотренное расширенное логическое пространство, тетрологики, должно упростить алгоритмы определения контрольных точек на лице человека, тем самым повысить быстродействие и точность распознавания лица в дальнейшем. Предложен вариант интеграции тетралогики с данным фильтром путем разбиения результатов на большее количество значений. Таким образом получено некоторый диапазонный вариант фильтра. Данное применение позволяет получить больше данных сравнительно с бинарной логикой. Продолжается работа над алгоритмами адаптивного подбора параметров фильтра, а также по аналитическому вычислению указанных антропометрических контрольных точек. Литература 1. Биометрия. Сам себе пароль // Зуденков Андрей Евгеньевич – Режим доступа: http://www.fondai.ru/art1/art228.html. 2. ГОСТ Р ИСО/МЭК 19794-5-2006 – Режим доступа: http://docs.cntd.ru/document/gost-r-iso-mek-197945-2006. 3. Фильтр Габора // Википедия – свободная энциклопедия – Режим доступа: https://ru.wikipedia.org/wiki/Фильтр_Габора. 4. Иваница С. В. Особенности реализации операций тетралогики / С. В. Иваница, А. Я. Аноприенко // Научные труды Донецкого национального технического университета. Серия: «Информатика, кибернетика и вычислительная техника» (ИКВТ-2011). Выпуск 13 (185). — Донецк: ДонНТУ, 2011. С. 134–140. 5. Аноприенко А. Я. Особенности реализации постбинарных логических операций / А. Я. Аноприенко, С. В. Иваница // Научно-теоретический журнал «Искусственный интеллект», № 2, 2011. С. 110–121. 6. Сегментация кровеносных сосудов // Нафиков Максим – Режим доступа: https://habrahabr.ru/post/259017/ 7. OpenCV – Режим доступа: http://opencv.org/ 8. Viola-Jones object detection framework. // Википедия – свободная энциклопедия – Режим доступа: http://en.wikipedia.org/wiki/Viola%E2%80%93Jones_object_detection_framework 9. Аноприенко А.Я., Иваница С.В. Постбинарный компьютинг и интервальные вычисления в контексте кодо-логической эволюции. / А.Я. Аноприенко, С.В. Иваница — Донецк: ДонНТУ, УНИТЕХ, 2011. — 248 с. Лычагин Р. В., Аноприенко А. Я., Иваница С. В. Использование пространства тетралогики для программной реализации фильтра Габора при распознавании лиц. Выполнен анализ фильтра Габора. Рассмотрены способы его применение для выявления характерных признаков лица. Способы модернизации интерпретируемых значений результата фильтрации. Ключевые слова: гармоника, гауссиан, фильтр Габора, тетралогика, неопределенность, множественность. Lychagin R., Anopriyenko A., Ivanitsa S. Tetralogical space for software development of the Gabor filter in face recognition system. An analysis of the Gabor filter. Methods of its application for the detection of the facial features. Methods of modernization for interpretable filtered result values. Keywords: harmonic, gaussian, Gabor filter, tetralogic, uncertainty, multiplicity. 236 УДК 004.414 Настройка и тестирование базовой модели квадрокоптера В.В. Мохначёв, Д.В. Тоичкин, Ю.Е. Зинченко, А.В. Коваль Донецкий национальный технический университет [email protected] [email protected] Мохначёв В.В., Тоичкин Д.В., Зинченко Ю.Е., Коваль А.В. Разработка базовой модели квадрокоптера. Описаны основные характеристики квадрокоптера. Проанализирован процесс настройки параметров системы. Предложен подход тестирования и настройки макетного образца квадрокоптера. Ключевые слова: квадрокоптер, FPGA, микроконтроллер, STM32, ПИД-регулятор, Qt. Введение С каждым днём в новостных источниках появляется всё больше и больше информации о мультикоптерах, а, начиная с 2015 года, обладателей таких устройств обязали проходить регистрацию в США и России. Всё это свидетельствует о стремительном росте популярности дронов. Сегодня они уже нашли своё применение в различных сферах жизни человека, и число новых областей их применений растёт очень быстро. В настоящие время это одно из самых актуальных направлений робототехники, о чём свидетельствуют международные технические форумы и выставки [1]. Таким образом, возникает необходимость в наличии устройств такого класса для современного общества. Готовые устройства весьма дорогие, что заставляет задуматься о возможности самостоятельного изготовления квадрокоптера. Поскольку это сложное устройство, в ходе исследования было принято решение разбить процесс изготовления на несколько итерационных этапов. На первом этапе стоит задача выбора наиболее оптимальных компонентов для квадрокоптера, а также изготовление и тестирование базовой модели и в первую очередь важнейшего компонента – система позиционирования и система передачи данных. Цель Описание методов настройки параметров системы квадрокоптера, разработка архитектуры средств для тестирования и отладки (верификации) базовой модели квадрокоптера. Конфигурация квадрокоптера Обобщённая структура квадрокоптера, предложенная в [3], приведена на рисунке 1. Она включает в себя основные элементы и дополнительные. Основные обеспечивают работоспособность устройства, а дополнительные расширяет его функционал. К основным элементам можно отнести схему управления, аккумулятор, датчик положения (гироскоп), контроллеры моторов, моторы и радиопередатчик. К дополнительным элементам обычно относят датчик GPS, датчик высоты, камеру и видеопередатчик. На предыдущем этапе уже была выбрана оптимальная конфигурация по соотношению «цена/качество». 237 Гироскоп/ акселерометр Аккумулятор GPS/Глонасс Контроллер моторов Схема управления Камера Моторы сигналы управления сигналы с датчиков Радиопередатчик видео поток Видеопередатчик Рисунок 1 – Общая структура квадрокоптера Наиболее сложным этапом является разработка ядра системы. Ранее [4] было исследована возможность построения ядра квадрокоптера на FPGA. Однако было выявлены существенные недостатки, поэтому было принято решение использовать микроконтроллер STM32 как главный элемент управления, а FPGA [2] использовать для промежуточных задач, таких как тестирование, отладка, верификация других модулей. Проектирование квадрокоптера предполагается осуществлять на базе FPGA-лаборатории ДонНТУ [5, 6]. ПИД-регулятор и его настройка Для описания метода управления квадрокоптером необходимо, прежде всего, рассмотреть вопрос с физической точки зрения. Будем считать, что квадрокоптер находится в неподвижной системе координат OXYZ. Положение летательного аппарата в пространстве [7] определяется его наклоном относительно этих трех осей. Тангаж определяет наклон квадрокоптера вперед или назад относительно оси OY, а крен – отклонение по сторонам, относительно OX. В случае квадрокоптера это деление условное, т.к. он симметричен и у него нет ни фронта, ни тыла, и он может двигаться во всех направлениях. Рыскание – угол поворота квадрокоптера вокруг вертикальной оси (см рис. 2). Рисунок 2 – Система координат квадрокоптера Квадрокоптер управляется оператором, который с пульта управления задает углы крена, тангажа и рыскания, но мы с целью упрощения опустим последний. Во время полета на летательный аппарат кроме силы тяги двигателей действуют аэродинамические, гравитационная силы. И поэтому квадрокоптер нуждается в постоянном автоматическом регулировании для обеспечения положения, заданного оператором. 238 Управлять квадрокоптером можно, изменяя скорость вращения его винтов. Равномерное увеличение скорости вращения всех моторов увеличивает высоту полета. Увеличение скорости вращения винта относительно противоположного заставляет квадрокоптер наклоняться, подобно весам, в сторону более медленного мотора. Стоит отметить, что каждая пара противоположных моторов отвечает только за наклон по своей оси. Следовательно, оператор задает положение квадрокоптера, которые нужно обеспечить за счет изменения скорости вращения каждого из винтов. Для этого применяется управление с обратной связью, где управляющая величина – угол, управляемая – скорость вращения винтов; в качестве обратной связи регулятор получает углы тангажа и крена от датчиков. Типичным решением подобных задач является применение ПИДрегулятора. ПИД-регулятор [8] получает на вход отклонение (ошибку) e(t) квадрокоптера от заданного пользователем угла. Выходное значение регулятора u(t) состоит из суммы пропорциональной (П), интегральной (И), и дифференциальной (Д) частей: Для дискретных сигналов формула упростится: где – ошибка, полученная на последнем такте, – ошибка полученная, на предыдущем такте, – интервал времени между опросами датчиков. P – пропорциональный коэффициент усиления ошибки I – коэффициент усиления интеграла ошибки D – коэффициент усиления производной ошибки Пропорциональная составляющая определяет скорость поворота квадрокоптера, устойчивость. Дифференциальная часть в большей степени уменьшает влияние сильных, кратковременных воздействий, а интегральная минимизирует длительное, накапливающееся воздействие. Следующий этап – реализация алгоритма. Все моторы имеют один и тот же базовый уровень скорости вращения, который определяет скорость движения квадрокоптера и высоту полета. Регулятор будет изменять скорости вращения моторов относительно именно этого значения. Изменение в скорости вращения винтов для двух противоположных моторов будет одинаковым по модулю, но противоположным по знаку. Для корректной работы регулятора необходимо определить численное значение коэффициентов P, I и D. Регуляторы крена и тангажа работают одинаково, поэтому достаточно определить коэффициенты только для одного из них. Для этого квадрокоптер был закреплен по одной из осей, что дает возможность измерять только один угол наклона неподвижного квадрокоптера. В начале происходит настройка пропорционального коэффициента, затем интегрального и дифференциального. Общий принцип настройки можно свести к некоторым правилам [9]: увеличение пропорционального коэффициента увеличивает быстродействие и снижает запас устойчивости; с уменьшением интегральной составляющей ошибка регулирования с течением времени уменьшается быстрее; увеличение дифференциальной составляющей увеличивает запас устойчивости и быстродействие; Такая настройка дает быстрый результат, но не является точной и требует корректировки с применением численных методов. 239 Тестирование устройства Для тестирования ставятся следующие задачи: получение данных с датчика положения (гироскоп + акселерометр), передача их контроллеру управления (на базе STM32), связь микроконтроллера и компьютера по USB, визуализация данных в программе. Предлагаемая система отображена на рис. 3. Рисунок 3 – Система тестирования базовой модели На данном этапе для коммуникации компьютера с квадрокоптером используется USB-кабель. Однако в дальнейшем планируется переход на радиопередатчики типа SI4432. Для визуализации данных была выбрана среда Qt. Данный выбор обусловлен хорошей поддержкой как работы с графикой, так и работы с периферийными устройствами. Помимо того, Qt имеет очень широкий набор библиотек и развитое сообщество, что обеспечивает более быструю и лёгкую работу со средой. На рис. 4 показан текущий вид программы тестирования. С помощью данной программы можно управлять квадрокоптером, который подключен по USB и принимать данные от него. В частности, исследуемый объект передаёт компьютеру информацию о его позиции в пространстве и скорости вращения моторов. В свою очередь, пользователь имеет возможность установить скорость вращения любого мотора или задать значение для всех моторов одновременно. Помимо этого, для настройки параметров введена возможность задания параметров ПИД-регулятора «на лету» и установка желаемой позиции квадрокоптера. На случай аварийной ситуации предусмотрена кнопка аварийного отключения устройства. Также реализована защита от зависания программы: если квадрокоптер не получит сигнал подтверждения в заданное время, произойдёт аварийное отключение моторов. Рисунок 4 – Интерфейс системы тестирования базовой модели 240 Выводы Предложена архитектура среды для её тестирования базовой версии квадрокоптера. С помощью системы тестирования был показан возможный метод настройки квадрокоптера. В работе была представлена лишь базовая модель квадрокоптера, которая имеет очень много векторов развития. Литература 1. 7 лучших дронов на CES 2016 [электронный ресурс]. Режим доступа: https://geektimes.ru/company/robohunter/blog/269478/ 2. Ресурс Altera. [электронный ресурс]. - Режим доступа: https://www.altera.com/products/fpga/cycloneseries/cyclone-ii/support.html 3. Принцип работы квадрокоптера. [электронный ресурс]. Режим доступа: http://quatrocopter.com/printsip-rabotyi-kvadrokoptera 4. В.В. Мохначёв, Ю.Е. Зинченко, А.В. Коваль. Анализ возможности разработки квадрокоптера на базе FPGA // Сборник трудов V ежд. научн-техн. конф. студентов, аспирантов и молодых ученых «Компьютерная и программная инженерия – 2015». – Донецк: ДонНТУ. – 2015. – С 4. 5. Зинченко Ю., Калашников В., Хайдук С., и др. FPGA-технологии проектирования и диагностика компьютерных систем в ДонНТУ / Сборник научных трудов VI Междунар. научн.-практ. конф. «Современные информационные технологии и ИТ-образование». - Москва: МГУ, 2011. - Т. 1. 787 С. 422-429 6. Зинченко Ю.Е., Калашников В.И., Дяченко О.Н., и др.. Современные проекты FPGAлаборатории ДонНТУ / Материалы международной научно-практической конференции «Инновационные перспективы Донбасса», том 5. «Компьютерные науки и технологии, г. Донецк, 20-22 мая 2015 г. – Донецк: ДонНТУ, 2015. С 60-66 7. Справочник авиационного техника. – М.: Воениздат, 1961 8. Гудвин Г.К., Проектирование систем управления/Гудвин Г.К., Гребе С.Ф., Сальгадо М.Э.-М.: БИНОМ. Лаборатория знаний, 2004. 9. Tim Wescott PID Without a PhD. Wescott Design Services. [электронный ресурс]. - Режим доступа: http://www.wescottdesign.com/articles/pid/pidWithoutAPhd.pdf Мохначёв В.В., Тоичкин Д.В., Зинченко Ю.Е., Коваль А.В. Разработка базовой модели квадрокоптера. Описаны основные характеристики квадрокоптера. Проанализирован процесс настройки параметров системы. Предложен подход тестирования и настройки макетного образца квадрокоптера. Ключевые слова: квадрокоптер, FPGA, микроконтроллер, STM32, ПИД-регулятор, Qt. Mohnachov V.V., Toichkin D.V., Zinchenko Y.E., Koval A.V. The development of the base model quadrocopters. The basic characteristics quadrocopters. The process of configuration the system parameters. Testing and configuring quadrocopters prototyping model. Keywords: quadrocopter, FPGA, microcontroller, STM32, PID controller, Qt. 241 УДК 004.925 Разработка блока поиска пересечения луча с полигональным объектом А.Н. Попова, А.Б. Азаров, Р.В. Мальчева Донецкий национальный технический университет [email protected] Попова А.Н., Азаров А.Б., Мальчева Р.В. Разработка блока поиска пересечения луча с полигональным объектом. Рассмотрено распараллеливания вычислений при расчете математических выражений для поиска пересечения луча с полигональным объектом для метода обратной трассировки лучей. Разработанные UML-диаграммы упрощают дальнейшую аппаратную реализацию. Приведен пример моделирования расчета скалярного произведения на языке Verilog. Ключевые слова: Трассировка аппаратная реализация, Verilog. лучей, распараллеливание вычислений, UML-диаграмма, Введение При построении высоко реалистичных изображений возникает проблема выбора: построение более реалистичного изображение с существенными затратами времени на его прорисовку или более быстрое построение, но с худшим качеством. Для реализации алгоритма трассировки лучей используются различные параллельные системы [1, 2, 3], что не всегда приводит к эффективному использованию вычислительных ресурсов. Существует ряд задач и решений [4], для которых режим реального времени более важен, чем, например, спецэффекты или очень мелкие детали. Целью работы является рассмотрение вариантов распараллеливания вычислений для получения эффективной аппаратурной реализации этапа поиска пересечения луча с полигональным объектом для метода обратной трассировки лучей. Построение UML-диаграмм При разработке основного вычислительного блока использовано представление процессов в виде UMLдиаграмм [5]. Unified Modeling Language (UML) можно рассматривать в качестве общей основы для современного моделирования и проектирования цифровых устройств. UML позволяет создать платформу для независимого описания, которое затем может быть использовано для принятия решений о программной (микропрограммной) или аппаратной реализации той или иной части системы. UML поддерживается значительной частью инструментальных средств [6]. Построение UML-диаграмм основывается на математических выражениях для поиска пересечения луча с полигональным объектом. Луч задается параметрическим уравнением. Параметр t определяет пересечение луча с многогранником и определяется отношением числителя (dev) к знаменателю (div), взятому с обратным знаком (1) [7]. . (1) Знаменатель представляет собой скалярное произведение сформированного в системе координат объекта, на нормальный вектор { S вектора луча { } грани (выражение 2). . }, (2) Числитель есть подстановка точки начала луча в уравнение плоскости грани (4). При этом свободный член уравнения плоскости, d, определяется из выражения (3) подстановкой координат { } любой вершины грани в уравнение ее плоскости. . (3) . (4) Для построения диаграмм выделим блоки элементарных вычислений (EBL): умножение – Sub-machine M1, сложение – Sub-machine A1, деление с инверсией знака – Sub-machine В1 (рис.1). 242 Рисунок 1 – UML представление блоков элементарных вычислений EBL Реализация выражения (2) требует 3-х умножений и 2-х сложений (рис.2), такой блок назовем P0BL. Используя введенные выше блоки элементарных вычислений получаем UML-диаграмма блока вычисления скалярного произведения. Рисунок 2 – UML-диаграмма блока вычисления скалярного произведения (P0BL) Блок вычисления числителя имеет ту же организацию, но в Sub-machine A1 вместе с Res2 нужно подать значение d. Обозначим такой блок P1BL. Делимое и делитель независимы и, следовательно, могут вычисляться параллельно. При этом для числителя необходимо предварительно вычислить параметр d. Рисунок 3 показывает такой порядок вычислений. Рисунок 3 – UML-диаграмма последовательно – параллельной реализация выражений (2)-(4) 243 Если для вычисления dev вместо блока с P1BL структурой применить блок с P0BL структурой, а затем к результату (dev0) прибавить параметр d (выражения 5), то выражения (2), (3) и первая часть из (5) могут быть рассчитаны параллельно (рис.4). ; . (5) Рисунок 4 – UML-диаграмма параллельной реализация выражений (2)-(4) Таким образом одним из преимуществ построения UML-диаграмм является то, что можно наглядно оценить реализацию выражений различными способами и выбрать оптимальное решение поставленной задачи. Использование UML-диаграмм не только позволяет продемонстрировать процессы, выполняемые параллельно, но и упрощает процесс написания HDL-кода [8,9]. Моделирование Для моделирования используется Verilog. Язык Verilog – для описания и синтеза функциональных компонентов и инфраструктуры диагностического обслуживания цифровых систем на основе IEEE 1500 стандарта, testbench-технологий [10]. Приведем код для вычисления скалярного произведения на языке Verilog: module top( //выходы элемента output wire[15:0] r, //значение скалярного произведения output wire vis, // флаг видимости // входные данные // координаты нормали плоскости input wire[15:0] x1, input wire[15:0] y1, input wire[15:0] z1, // координаты вектора луча input wire[15:0] x2, input wire[15:0] y2, input wire[15:0] z2 ); assign r = x1*x2 + y1*y2 + z1*z2; // вычисления скалярного произведения Endmodule Вычисление формулы в программе разбивается средой на отдельные действия (x1*x2, y1*y2, …) и независимые действия выполняются параллельно. Схема такого устройства изображена на рисунке 5. 244 Рисунок 5 – Схема устройства определения видимости грани Для того, чтобы показать параллельность вычислений в код модели были внесены временные задержки следующим образом: wire[15:0] m1; wire[15:0] m2; wire[15:0] m3; wire[15:0] s1; assign #20 m1 = x1*x2; assign #20 m2 = y1*y2; assign #20 m3 = z1*z2; assign #5 s1 = m1+m2; assign #5 r = s1+m3; При моделировании получены следующие временные диаграммы (рис. 6). Рисунок 6 – Результаты моделирования на Verilog Заключение В ходе выполнения моделирования система разбила формулу вычисления скалярного произведения на действия и выполнила их параллельно (рис. 5) так же, как было представлено на UML-диаграмме блока вычисления скалярного произведения (P0BL) (рис. 2). В дальнейшем будет проведено моделирование параметра t, который определяет пересечение луча с многогранником. Литература 1. Гуров А.В., Зори С.А. Реалистичная стерео-визуализация трехмерных сцен методом трассировки лучей на специализированных параллельных вычислительных системах. В кн.: "Інформаційні управляючі системи та комп’ютерний моніторинг (ІУС КМ - 2011)": II Всеукраїнська науково-технічна конференція студентів, аспірантів та молодих вчених11-13 квітня 2011 р. – Донецьк: ДонНТУ, 2011. - Т.1. - 297 с. – с. 129133. 245 2. Сереженко А.А., Мальчева Р.В. Оптимизация метода трассировки лучей. В кн.: "Информатика и компьютерные технологии – 2010": 6я Международная научно-техническая конференция студентов, аспирантов и молодых учёных. -Донецк: ДонНТУ, 2010. -С.105-109. 3. Мальчева Р.В., Юнис М. Реализация модифицированного алгоритма трассировки лучей на кластере NeClus. // Наукові праці Донецького національного технічного університету. Серія: Обчислювальна техніка та автоматизація. Випуск 1 (24). - Донецьк, ДонНТУ, 2013. С - 263-268 4. Raisa Malcheva, Mohammad Yunis. An acceleration of FPGA-based ray tracer. // European Scientific Journal, Vol.3, February 2014. - p. 186-190. 5. Mellor, S.J., Balcer, M.J. Executable UML. A Foundation for Model-Driven Architecture. - Indianapolis. Addison-Wesley, 2002. - 322 pp. 6. Gonzalez, I., Aguayo, E., Lopez-Buedo, S. Self-reconfigurable embedded systems on Low-Cost-FPGAs // Micro, 2007. - № 27(4). – pp. 49–57. 7. Попова А.Н., Селинова А.В. Мальчева Р.В. Разработка устройства поиска пересечения луча с полигональным объектом. В кн.: "Компьютерная и программная инженерия": Сборник материалов международной научно-практической конференции студентов, аспирантов и молодых ученых 15-16 декабря 2015 года. -Донецк,ДонНТУ, 2015. -С.31-33. 8. Malcheva R. Application of multilevel design on the base of UML for digital system developing // in book “Design of Digital Systems and Devices. Series: Lecture Notes in Electrical Engineering. – Springer-Verlag Berlin Heildelberg, 2011. – Vol. 79. - pp. 93-117. 9. Кудояр В.И., Селинова А.В., Мальчева Р.В. Разработка специализированного устройства для определения области видимости объекта. В кн.: "Компьютерная и программная инженерия": Сборник материалов международной научно-практической конференции студентов, аспирантов и молодых ученых 15-16 декабря 2015 года. -Донецк, ДонНТУ, 2015. -С.34-36. 10. Хаханов В.И., Хаханова И.В., Литвинова Е.И., Гузь О.А. Проектирование и верификация цифровых систем на кристаллах. Verilog & System Verilog. – Харьков: ХНУРЭ, 2010. – 528 с. Попова А.Н., Азаров А.Б., Мальчева Р.В. Разработка блока поиска пересечения луча с полигональным объектом. Рассмотрено распараллеливания вычислений при расчете математических выражений для поиска пересечения луча с полигональным объектом для метода обратной трассировки лучей. Разработанные UML-диаграммы упрощают дальнейшую аппаратную реализацию. Приведен пример моделирования расчета скалярного произведения на языке Verilog. Ключевые слова: Трассировка аппаратная реализация, Verilog. лучей, распараллеливание вычислений, UML-диаграмма, Popova A.N., Azarov A.B., Malcheva R.V. Development of the processor unit to find a cross of a ray with a polygonal object. The parallelization of the calculations of mathematical expressions for finding the intersection of a ray with a polygon feature for back ray tracing is considered. Developed UML diagrams are simplified the hardware realization. An example of simulation of the scalar product calculation using Verilog language is shown. Keywords: Ray-tracing, parallelization of computations, UML-diagram, hardware realization, Verilog. 246 СЕКЦИЯ «МАТЕМАТИЧЕСКОЕ И КОМПЬЮТЕРНОЕ МОДЕЛИРОВАНИЕ» УДК 004.588 Применение ментальных карт и геймификации при разработке компьютерных обучающих систем Д.П. Давыденко, Н.Е. Губенко Донецкий национальный технический университет [email protected] Давыденко Д.П., Губенко Н.Е. Применение ментальных карт и геймификации при разработке компьютерных обучающих систем. В статье рассматриваются возможности сочетания геймификации и ментальных карт в обучающих системах для вовлечения обучаемых в познавательную деятельность. Ключевые слова: ментальные карты, геймификация, компьютерные обучающие системы, интеллект-карты. Постановка проблемы Образовательные процессы в современном обществе сопровождаются возрастающими информационными потоками, которые требуют для своего восприятия соответствующих методов визуализации. Для решения этой проблемы в современном образовательном пространстве используются ментальные карты (maindmapping) и геймификация. Ментальные карты - современный способ восприятия и организации информации любого объема и любой структурной сложности, что актуально при разработке и использовании обучающих компьютерных систем. Интенсивное развитие информационных технологий и мобильных средств коммуникаций вторгается во все сферы жизни, том числе и в образовательный процесс. Геймификация компьютерных обучающих систем введение игровых приемов в процесс обучения. Она способствует формированию информационнокоммуникационной компетенции обучаемых, развитию их познавательных навыков, творческого мышления, умения самостоятельно оценивать и конструировать полученные знания, уверенно ориентироваться в информационном пространстве. Цель статьи Совершенствование технологии обучения с помощью ментальных карт и геймификации обучающих систем. Ментальные карты или диаграммы связей - эффективная техника альтернативной записи и визуализации больших объемов информации. Современное представление о них было изложено в 70-е гг. прошлого века в работах британского психолога Тони Бьюзена [1,2]. Ментальные карты (mindmap, карты ума, диаграммы связей, ассоциативные карты) относятся к графическим методам представления информации и являются альтернативой привычной нам “плоской” текстовой схеме фиксирования информации, которая не очень приспособлена к её структурированию и запоминанию [3]. Maindmapping - удобный способ структурирования информации, где главная тема находится в центре листа, а связанные с ней понятия располагаются вокруг в виде древовидной схемы. Здесь удачно совмещены психология, мнемоника и нейролингвистика. Ментальные карты помогают эффективно структурировать и обрабатывать информацию, а также использовать творческий и интеллектуальный потенциал как разработчика обучающей системы, так и обучаемого. Преимущества ментальных карт: 1. Наглядность. Всю проблему с ее многочисленными сторонами можно окинуть одним взглядом. 2. Привлекательность и эстетичность. 3. Запоминаемость. Благодаря работе обоих полушарий мозга, использованию образов и цвета интеллект-карта легко запоминается. 247 4. Своевременность. Интеллект-карта помогает выявить недостаток информации и понять, какой информации не хватает. 5. Творчество. Интеллект-карта стимулирует творчество, помогает найти нестандартные пути решения задачи. 6. Возможность пересмотра. Пересмотр интеллект-карт через некоторое время помогает усвоить картину в целом, запомнить ее, а также увидеть новые идеи. Информацию в ментальных картах очень удобно организовывать, и ее элементы легко связывать между собой. К тому же карты “оживляют”, визуализируют фиксируемую информацию с помощью разных приемов (картинки, значки, цвета, контуры -“облачка” и пр.). Это очень помогает как ее “опознаванию” с одного взгляда, так и запоминанию. Нарисовать ментальные карты можно на обычном листе бумаги, используя только ластик и карандаш. Можно нарисовать, используя технологии распространенных офисных пакетов или графических редакторов. Однако предпочтительнее создавать такие визуальные схемы с помощью специализированных компьютерных программ, так как они лучше дают понять суть метода и быстрее представить результаты[4]. В мире существуют более 200 программ для построения ментальных карт. Интернет-сервисы для создания ментальных карт доступны в режиме online и требуют постоянный доступ в интернет. К ним относятся следующие сервисы: Coggle; MindMeister; Bubbl.us. Большинство программ Mindmap в свободном доступе имеются в ограниченном режиме. Проведем сравнение наиболее популярных компьютерные программы для создания ментальных карт (Табл.1). Таблица 1 – Сравнительные характеристики программ Mindmap Xmind VisualMind MindManager Visimap Standart Windows, Mac, Linux Windows Windows Windows Язык интерфейса английский, немецкий, французский, русский английский, испанский, русский, датский английский, немецкий, французский английский Инструментарий для рисования + - - - Создание шаблонов + - + - + - - - + + + + + + + + JPEG, PNG, ASII - ASII, RTF, DOC JPEG, PNG, ASII,RTF RTF, ASII, HTML, DOC RTF, ASII, HTML BMP, GIF, PICT, TGA, EMF/WMF, TIFF BMP, GIF, PICT, TGA, EMF/WMF, TIFF Программа Операционная система Возможность перемещения ветвей Добавление текстовых заметок Добавление графики и символов Импорт текста Экспорт в текстовые форматы Поддержка графических форматов RTF, ASII, HTML BMP, GIF, PICT, TGA, EMF/WMF, TIFF RTF, ASII, HTML BMP 248 Нами разрабатывается компьютерная обучающая система “Мир животных” для детей младшего школьного возраста. Она предназначена для формирования первичных базовых знаний о животном мире, имеет простой красочный интерфейс и реализуется в форме увлекательной игры с элементам геймификации и использования ментальных карт. При разработке компьютерной обучающей системы будут использоваться ментальные карты, сделанные в программе Xmind. Например, Классификация животного мира (см.рис.1) и карты , нарисованные в других графических программах (см.рис.2, см.рис.3). Рисунок 1- Ментальная карта ”Классификация животного мира” Рисунок 2 - Ментальная карта ”Хордовые” 249 Рисунок 3 - Ментальная карта ”Млекопитающие” Поскольку лидером современных образовательных стратегий и обучающих систем является геймификация, целесообразно сочетать ее с ментальными картами при разработке обучающей системы. Gamification: The use of game elements and game-design techniques in non-game contexts. Геймификация использование игровых элементов и приёмов игрового дизайна в неигровом контексте (перевод)[5]. Отличием геймификации от других образовательных технологий, основанных на принципах игры, является внедрение в процесс обучения подходов, характерных для компьютерных игр. Необходимыми условиями для геймификации являются простые, понятные, не слишком жесткие правила и возможность достижения «победы». Использование обучающего приложения должно приносить положительные эмоции и иметь развлекающую составляющую. Примерами игровой механики в данном случае могут служить: теория постепенной передачи информации, когда информация пользователю подается пошагово, таким образом пользователь узнает что-то новое для него, а не получает весь массив данных сразу; а так же внедрение «системы штрафов» за невыполненные задания, которые придают азарт игровому процессу и дисциплинируют пользователя. Такой комплексный подход предлагается применить при разработке обучающей системы для младших школьников “Мир животных”. Поскольку геймификация — это часть процесса проектирования обучающей программы, а не отдельная функция, которая может быть внедрена позднее, то для всего процесса разработки важно установить четкую цель применения игровых элементов с самого начала. Почти так же важно, измерять достижения обучающихся и знать, когда и как оно было сделано. Для этого в системе предполагается собирать статистику. Из опыта разработки игр будет реализован элемент промежуточного и итогового тестирования игровой механики на всех этапах. При тестировании нужно обращать внимание не только на функционирование элементов геймификации, но на достижение ими поставленных целей [6]. Важным принципом геймификации является наличие постоянной, измеримой обратной связи от обучаемого, обеспечивающей возможность динамичной корректировки его поведения и, как следствие, быстрое освоение всех функциональных возможностей. Ещё одним приемом геймификации является создание легенды, истории, снабжённой драматическими приёмами, которая сопровождает процесс использования обучающей системы. Это способствует формированию у пользователей ощущения сопричастности, вклада в общее дело, интереса к достижению каких-либо вымышленных целей. В нашем случае, нами будет использоваться персонаж “Мамонтенок”, который будет направлять и стимулировать пользователя на всех уровнях обучающей системы. Кроме того, при геймификации применяется поэтапное изменение и усложнение целей и задач по мере приобретения пользователями новых навыков и компетенций, что обеспечивает развитие эксплуатационных результатов при сохранении пользовательской вовлечённости. 250 Основные характеристики геймификации: динамика - использование сценариев, требующих внимание пользователя и реакцию в реальном времени; механика - использование сценарных элементов, характерных для игрового процесса, таких как виртуальные награды, статусы, очки, виртуальные товары; эстетика - создание общего игрового впечатления, способствующего эмоциональной вовлечённости; социальное взаимодействие широкий спектр техник, обеспечивающих межпользовательское взаимодействие, характерное для игр [7]. Выводы В данной работе проведен анализ приема геймификации и ментальных карт в обучающих системах и их использование для повышения эффективности процесса изучения мира животных младшими школьниками с помощью специально разработанного приложения. Литература 1. Бьюзен Т. Карты памяти. Используй свою память на 100%[Текст]. – М. : Росмэн-Пресс, 2007.- 96с. 2. Бьюзен Т. Супермышление [Текст] / Т. Бьюзен, Б. Бьюзен. – Минск : ООО «Попурри», 2003. – 304 с. 3. Что такое Ментальные карты и для чего они? // Статья. URL: http:// mind-manager.ru/article/what_ is_mindmaps. 4. Как создать карту памяти в Xmind? Электронный ресурс]. Режим доступа: http://inphormatika.ru/practicum/kak_sozdat_kartu_pamyati_v_xmind.html. 5. Werbach К. Gamification / K. Werbach // Coursera [Электронный ресурс]. Режим доступа: https://class.coursera.org/gamification-2016-001. 6. Chou Y. Octalysis Complete Gamification Framework // Yu-kai Chou & Gamification: Gamification expert & Follower of Christ. – 2016 7. Мосин А. Плюс геймификация всей страны? / А. Мосин // Банки Украины [Электронный ресурс]. Режим доступа: http://www.ukrbanks.info/kolonka/Plyusgyaymifikaciya-vsyay-strany.html. Давыденко Д.П., Губенко Н.Е. Применение ментальных карт и геймификации при разработке компьютерных обучающих систем. В статье рассматриваются возможности сочетания геймификации и ментальных карт в обучающих системах для вовлечения обучаемых в познавательную деятельность. Ключевые слова: ментальные карты, геймификация, компьютерные обучающие системы, интеллект-карты. Davydenko DP, Hubenko NE Application of mental maps and gamification in the development of computer-based training systems. The article discusses the possibility of a combination of gamification and mental maps in the training systems for engaging students in cognitive activity. Keywords: mental maps, gamification, computer training systems, intelligence card. 251 УДК 681.322 Анализ программно-аппаратных средств защиты информационной системы отделения банка В.В. Еремеев, Н.Е. Губенко Донецкий национальный технический университет [email protected] Еремеев В.В., Губенко Н.Е. Анализ программно-аппаратных средств защиты информационной системы отделения банка. В данной статье рассматривается проблема защиты информационных систем (ИС) банковских отделений от наиболее актуальных и опасных информационных атак. Проанализированы наиболее распространенные векторы атак банковских систем, детально рассмотрены различные меры защиты информационных систем и разработан общий подход к политике безопасности банковских ИС. Ключевые слова: статья, информационная безопасность, информационные системы, векторы атаки, защита информации. Введение Спрос на решения для защиты конфиденциальной информации по-прежнему остается достаточно высоким со стороны финансовых организаций. Это связано с тем, что информация традиционно считается одним из главных и ценнейших активов любого банка. [2] По мнению экспертов, востребованность таких решений в 2016 году по сравнению с прошлым годом значительно выросла. Это связано с увеличившимся числом киберугроз, направленных именно на финансовый сектор. Подзаконные акты Федеральной службы по техническому и экспортному контролю РФ (ФСТЭК), ФСБ, Банка России выдвигают ряд серьезных требований по построению современной системы информационной защиты финансовых организаций. Эти требования предполагают использование самого широкого набора решений, инструментов и механизмов. Среди них можно выделить основные: системы предотвращения вторжений, межсетевые экраны, шифрование, антивирусные решения, защита от утечек, системы управления событиями безопасности, управление идентификацией пользователей, контроль доступа и другие защитные механизмы, перечисленные в руководящем документе ФСТЭК «Основные мероприятия по организации и техническому обеспечению безопасности персональных данных, обрабатываемых в информационных системах персональных данных». В этом документе излагается общая методика построения защиты информационных систем и требования к классификации данных, к месту их хранения, к выстраиванию для них моделей угроз и моделей нарушителя. И уже затем на основе всех этих данных можно выбрать средства защиты, способные предотвратить конкретные, возникающие в ходе ежедневной работы, угрозы.[1] Актуальные угрозы и векторы информационных атак С развитием информационных технологий становятся более сложными и информационные структуры банков. Сейчас основным и самым ценным ресурсом банков является информация о счетах клиента, его транзакциях и банковских операциях, которую необходимо надежно защитить.[3] Угрозы для конфиденциальной информации баковских систем могут возникать как снаружи информационной структуры, так и внутри ее, следовательно, можно выделить 2 основных типа угроз по их векторам атак: - внешние: DDOS-атаки, взлом сетевой инфрастуктуры, перехват каналов передачи данных, заражение вирусным ПО извне; - внутренние: уязвимости оборудования к установке на них вирусного и шпионского ПО, утечки данных, несанкционированное подключение оборудования к банковским локальным сетям, а также деятельность инсайдеров. Изучив статистику, на первое место по числу инцидентов, связанных с утечкой и уничтожением ценной информации, находятся инсайдеры. Их деятельность - это 80% утечек баз данных клиентов, остатков на их счетах, отчетов о транзакциях, кредитных операциях. Причем инсайдинг может быть, как случайным, по вине небрежности и неинформированности персонала, там и намеренным, осуществляемым лицом, которое 252 получает законный доступ к данным, целенаправленно [4]. Изучив характеры и особенности различных угроз, можно выделить основные векторы атак на банковские информационные системы, которые наиболее актуальны в данный момент: 1. Взлом локальной сети банковского отеделения для перехвата сетевых транзакций между базой данных головного офиса и компьютерами отделения. 2. Взлом локальной сети банковского отделения для установки на задействованных в этой сети компьютерах вредоносного ПО. 3. Взлом локальной сети банковского отделения с последующим получением доступа к учетным записям пользователей на компьютерах персонала. 4. Взлом сети видеокамер для получения видео с компроментирующей информацией. 5. Инсайдерская деятельность, направленная на получение и/или удаление конфиденциальной информации. 6. Инсайдерская деятельность, направленная на хищение носителей информацией с конфиденциальной информацией и банковским ПО. Выделив основные векторы информационных атак и типы угроз, следует разработать комплекс мер по противодействию этим атакам и перекрытию этих угроз. Программно-аппаратные меры защиты ИС банковского отделения Методы защиты банковских ИС можно разделить по основным частям инфологической структуры, которые они должны защищать. Можно выделить следующие способы защиты информационной системы банковского отделения от несанкционированного доступа к конфиденциальной информации: Защита каналов связи. Первый тип защитных систем - это межсетевые экраны для Web-приложений (Web Application Firewall, WAF). Вся корпоративная сеть банка и каждое отдельное рабочее место сотрудника должны быть защищены не только от атак вирусов, но и от целенаправленных сетевых атак. Для этого необходимо поставить систему блокировки неиспользуемых сетевых протоколов и сервисов, что и выполняют межсетевые экраны. Нередко к функциональности экранов добавляют и средства организации виртуальных частных сетей - VPN. На развитие и появление систем WAF свое влияние оказал стандарт PCI DSS, в соответствии с которым информация о кредитных картах в публичных Web-приложениях должна быть защищена каким-либо из двух методов: с помощью анализа кода Web-приложения или путем установки точки применения политики безопасности. Одно из назначений систем WAF - защита данных (например, в соответствии с PCI DSS) путем анализа и блокирования входящих потенциально опасных сеансов. В данной области следует обратить внимание на следующие меры защиты: регистрация и проверка МАС-адресов компьютеров в локальной сети; камеры наблюдения должны быть изолированы от сетевых подключений извне во избежание взлома и хищения видеозаписей, которые могут содержать конфиденциальную информацию; точка доступа Wi-Fi для клиентов не подключена к общей сети отделения; шифрование каналов связи как с внешней сетью, так и с локальной, межсетевой экран. Среди средств защиты выделяют также сканеры уязвимостей, проверяющие информационную систему банка на наличие различных «слабых мест» в операционных системах и в программном обеспечении. Зачастую это отдельные программы или устройства, тестирующие систему. Происходит это с помощью посыла специальных запросов, имитирующих атаку на протокол или приложение. Сканеры уязвимостей можно использовать для проведения внутреннего аудита защиты, предусмотренного стандартами ФСТЭК [8]. Защита от несанкционированного доступа к оборудованию или использования его не по назначению. Так как оборудование в банках - это не только носитель секретной информации, но еще и носитель инструментария работы с ней и алгоритмов ее защиты, то самым желанным и всеобъемлющим источником информации об устройстве банковской ИС являются именно компьютеры, за которыми работает персонал. Для защиты аппаратуры следует выделить следующие методы защиты: необходимые ограничения пользователя, под которым на ПК будет работать сотрудник; использование USB-токена для работы сотрудников с банковской ИС с RFID-чипом(все токены зарегистрированы, утеря токена ведет к удалению устройства из соответствующей БД и запрету дальнейшего использования устройства данным идентификатором для доступа к банковской ИС. ID токенов привязаны к сотрудникам, статичны); RFID-чипизация ПК, мышек, клавиатур для исключения выноса или подмены оборудования; 253 ПК представлены в форм-факторе моноблоков для хорошей видимости всех подключенных устройств; установка наклеек-пломб на свободные разъемы I/O-устройств на корпусах ПК, удаление внешних оптических приводов; учет подключенного оборудования, запрет на замену устройств ввода-вывода без ведома администрации; компьютер администратора предоставляет доступ при подлючении USB-токена с синхроннодинамическим паролем (Синхронизированные по времени одноразовые пароли постоянно меняются в установленное время, например, раз в минуту. Для этого должна существовать синхронизация между токеном клиента и сервером аутентификации. Для устройств не подключенных к сети, эта синхронизация сделана до того, как клиент приобрел токен. Другие типы токенов синхронизируются, когда токен вставляется в устройство ввода. Главная проблема с синхронизированными токенами состоит в том, что они могут рассинхронизоваться, спустя какой-то большой период времени. Тем не менее, некоторые системы, такие как SecurID компании RSA, позволяют пользователю синхронизировать сервер с токеном, путём ввода нескольких последовательных кодов доступа. Большинство из них не может иметь сменные батареи, следовательно имеют ограниченный срок службы) [5]; Защита хранимых и исполняемых данных на компьютерах и физических носителях. В конечном счете, цель всех злоумышленников, атакующих банковские ИС, является информация, поэтому, даже в случае успешного перехвата данных, управления оборудованием либо же даже получения в распоряжение рабочий компьютер или носителя информации, данные по-прежнему должны быть защищены от чтения и изменения, а ПО - от декомпиляции и обратной инженерии. В данных неблагоприятных сценарий избежать нежелательных последствий может принятие следующих мер: установка и обновление антивирусного ПО; исполнение банковского ПО на виртуальной машине, ввод данных через виртуальную клавиатуру; шифрование всего диска, т.е. любой файл, записанный на диск, будет зашифрован. Криптографические программы шифруют данные, прежде чем операционная система поместит их на диск. Для этого криптографическая программа перехватывает все попытки операционной системы записать данные на физический диск и производит операции шифрования, что называется, «на лету». Шифрование всего диска позволяет избежать ситуаций, когда какаялибо часть важных данных или их точная копия остаются где-нибудь на диске в незашифрованном виде. Наконец, существует такая технология, как защита процесса загрузки. Ее целесообразно осуществлять при шифровании всего диска, поскольку именно в этом случае операционная система не сможет запуститься до тех пор, пока какой-либо механизм не расшифрует файлы загрузки. Чтобы операционная система могла начать свою работу, пользователю требуется ввести пароль. Если пользователь вводит пароль правильно/применяет USB-токен, программа шифрования получает доступ к ключам шифрования, что позволяет считывать информацию с диска [6]. Защита от утечек информации. Информационная безопасность — постоянная головная боль банков. Хакеры, организующие DDoSатаки, вирусы и другие блуждающие по Интернету угрозы могут причинить немало неприятностей кредитной организации. Однако на первом месте по числу инцидентов, связанных с утечкой и уничтожением ценной информации, находятся инсайдеры [7]. Практически каждый банк в той или иной степени использует механизмы по защите от утечек информации и действий инсайдеров. Без соответствующих мер информация будет «утекать», что рано или поздно скажется на функционировании и благополучии банка. Какое решение для защиты выбрать, каждый банк решает для себя, исходя из своих потребностей и возможностей. Необходимо обратить внимание на следующие меры защиты: внедрение DLP-системы (комплексные системы DLP (data leak prevention), позволяющие блокировать USB-порты, анализировать на наличие ключевых слов почтовые сообщения, ограничивать доступ в Интернет. Каждый просмотренный пользователем экран и каждое нажатие клавиши регистрируются и анализируются в режиме реального времени, после чего становятся доступными для повторного воспроизведения конкретных сеансов работы сотрудников. Также, что немаловажно, контроль USB-траффика). Следует заметить, что если стоимость защиты существенно превосходит стоимость ущерба, то смысла в развертывании таких систем нет. Однако при этом можно использовать более дешевые решения по защите. Такие средства, конечно же, не в той же мере эффективны, как комплексные решения, и 254 проигрывают по функционалу, но в то же время они позволяют реализовать основные меры по защите от инсайдеров за существенно меньшие деньги. Например, можно ввести контроль или ограничение объема пересылаемой информации по электронной почте или при копировании на USB-носители. Это минимизирует риски утечки больших объемов информации. Можно полностью ограничить сотрудников в доступе к USB-портам или Интернету, если данный доступ им не требуется для выполнения их служебных обязанностей. В целом следует руководствоваться принципом предоставления сотрудникам минимально достаточного уровня доступа для выполнения их работы [9]; внедрение анти-бот системы - в случае с ботами антивирусы и прочие решения для обеспечения ИБ могут оказаться практически бессильными, необходима целенаправленная защита от ботов. Примеры: Check Point Anti-bot Software Blade и т.п. Организация соответствующей требованиям безопасности ЛВС банковского отделения Для наилучшего понимания была составлена обобщенная схема банковского отделения, которую можно увидеть на рисунке 1. Как можно заметить, в составе ЛВС нет беспроводных коммуникаций. Это сделано для исключения несанкционированного подключения к сети с помощью мобильных устройств. Если в отделении и должна быть точка доступа Wi-Fi, то она не должна быть подключена к локальной сети отделения. Также можно видеть, что все сигналы от камер идут не по беспроводному каналу либо через Интернет, как это организовано в IPкамерах, а напрямую в коммутатор и терминируются на компьютере администратора. Это сделано для того, чтобы к камерам имел доступ лишь один компьютер, т.к. в последнее время участились случаи заражения камер ботнетами и другими вредоносным ПО, а также их банального взлома [10]. Канал выхода в Интернет защищен межсетевым экраном, контролирующим траффик, запрещающим использование определенных протоколов и сервисов. Рисунок 1 - Обобщенное устройство ЛВС отделения банка Выводы Были перечислены наиболее актуальные на данный момент угрозы для информационных систем банков, проанализированы их особенности, а также рассмотрены основные векторы атак на информационные системы с использованием данных угроз. На основе данной информации были проанализированы методы защиты с уязвимостями, которые они нейтрализуют, выделены основные меры по обеспечению безопасности ИС банковских отделений, составлена обобщенная схема ЛВС для филиалов банков, отвечающая требованиям инфобезопасности. Литература 1. Гайкович Ю. В, Першин А. С. Безопасность электронных банковских систем. — М: Единая Европа, 1994 г. C.16 2. Абрамов А. В. Новое в финансовой индустрии: информатизация банковских технологий. — СПБ: Питер, 1997 г. 255 3. Демин В. С. и др. Автоматизированные банковские системы. — М: Менатеп-Информ, 1997 г. 4. Аджиев В. Мифы о безопасности программного обеспечения: уроки знаменитых катастроф. — Открытые системы, 1998 г., №6. 5. Аглицкий И. Состояние и перспективы информационного обеспечения российских банков. — Банковские технологии, 1997 г. №1. 6. Титоренко Г. А. и др. Компьютеризация банковской деятельности. — М: Финстатинформ, 1997 г. 7. Как защититься от инсайдера [Электронный ресурс]. - 2011 // Режим доступа: http://www.prostobankir.com.ua/it/stati/kak_zaschititsya_ot_insaydera 8. Шифрование forever: о рынке банковской информационной безопасности России [Электронный ресурс]. 2012 //Режим доступа: http://www.prostobankir.com.ua/it/stati/shifrovanie_forever_o_rynke_bankovskoy_informatsionnoy_bezopasnosti_ross ii 9. Информационная безопасность и человеческий фактор [Электронный ресурс]. - 2015 // Режим доступа: http://www.prostobankir.com.ua/it/stati/informatsionnaya_bezopasnost_i_chelovecheskiy_faktor 10. Как уберечь IP камеру от ботнета Mirai - Habrahabr [Электронный ресурс]. - 2016 // Режим доступа: https://habrahabr.ru/company/erlyvideo/blog/314146/ Еремеев В.В., Губенко Н.Е. Анализ программно-аппаратных средств защиты информационной системы отделения банка. В данной статье рассматривается проблема защиты информационных систем (ИС) банковских отделений от наиболее актуальных и опасных информационных атак. Проанализированы наиболее распространенные векторы атак банковских систем, детально рассмотрены различные меры защиты информационных систем и разработан общий подход к политике безопасности банковских ИС. Ключевые слова: статья, информационная безопасность, информационные системы, векторы атаки, защита информации. Yeremeev V., Gubenko N. Analysis of software and hardware protection of information systems (IS) in bank departments. This article deals with the problem of protection of information systems of bank branches of the most pressing and dangerous phishing attacks. Analyzed the most common attack vectors banking systems, discussed in detail the various measures to protect information systems and developed a common bank of IP protection concept. Keywords: article, information security, information systems, attack vectors, information protection. 256 УДК 004.056.5 Анализ метода разграничения доступа к информации на основе одноразового графического пароля И.А.Ефремченко, Н.Е.Губенко Донецкий национальный технический университет [email protected] Ефремченко И.А., Губенко Н.Е. Анализ методов разграничения доступа к информации на основе одноразового графического пароля. В данной статье анализируются существующие системы аутентификации и рассматривается модель встраивания ЦВЗ для разграничения доступа пользователей к информации. Анализируется метод разграничения доступа к информации на основе графического пароля, выделяются основные свойства и главные особенности этого метода для использования в авторском приложении. Ключевые слова: методы аутентификации, графический пароль, цифровой водяной знак, авторизация, информационная система, пользователь. Постановка проблемы В последнее время повышаются требования к безопасности доступа к ресурсам информационных систем. В связи с появлением мониторов и различных устройств с сенсорными экранами ведутся разработки систем графических паролей, которые создаются, чтобы избавить пользователя от сложных паролей и упростить авторизацию, но при этом обезопасить доступ к ресурсам. Одним из недостатков этих систем является то, что большинство из них основаны на присвоении определенных символов изображению или координат нажатий, выбранных пользователем для авторизации. Предлагаемые системы графических паролей на основе цифровых водяных знаков (ЦВЗ) избавлены от этого недостатка путем встраивания в графические файлы случайных символов, выработанных встроенным генератором случайных последовательностей. Пароли в приведенных системах являются одноразовыми. То есть после каждой успешной авторизации автоматически меняется последовательность символов цифровых водяных знаков, используемых в качестве паролей. Существующие системы аутентификации Основой любых систем защиты информационных систем являются идентификация и аутентификация, так как все механизмы защиты информации рассчитаны на работу с поименованными субъектами и объектами автоматизированной системы. В качестве субъектов АС могут выступать как пользователи, так и процессы, а в качестве объектов АС – информация и другие информационные ресурсы системы. Присвоение субъектам и объектам доступа личного идентификатора и сравнение его с заданным перечнем называется идентификацией. Идентификация обеспечивает выполнение следующих функций: − установление подлинности и определение полномочий субъекта при его допуске в систему, − контролирование установленных полномочий в процессе сеанса работы; − регистрация действий и др. Аутентификацией (установлением подлинности) называется проверка принадлежности субъекту доступа предъявленного им идентификатора и подтверждение его подлинности [1]. Рассмотрим наиболее показательные методы аутентификации информации. Аутентификация на основе многоразовых паролей. Учетные записи пользователей современных операционных систем включают в себя службу аутентификации, которая может хранить простейший идентификатор (login) и пароль (password) пользователя в своей базе данных. При попытке логического входа в сеть пользователь набирает свой пароль, который поступает в службу аутентификации. По итогам сравнения пары login/password с значением из базы данных учетных записей пользователей пользователь может успешно пройти процедуру простейшей аутентификации и авторизоваться в информационной системе. Основными характеристиками метода, определяющего его стойкость, являются множество символов (алфавит), мощность множества и длина. Они применяются в web-сайтах, сетевых службах, смартфонах и планшетах при аутентификации на web-сайтах, аутентификации пользователей в операционной системе, аутентификации при удаленном доступе к сетевым службам. 257 Аутентификация на основе одноразовых паролей. Для организации удаленного доступа пользователей к защищенным информационным ресурсам были разработаны достаточно надежные схемы с применением одноразовых паролей (OTP – One Time Password). Суть концепции одноразовых паролей состоит в использовании различных паролей при каждом новом запросе на предоставление доступа. Одноразовый пароль действителен только для одного входа в систему. Динамический механизм задания пароля является одним из лучших способов защитить процесс аутентификации от внешних угроз. Известно четыре метода аутентификации с применением технологии ОТР: − использование механизма временных меток на основе системы единого времени; − применение общего пароля для легального пользователя и проверяющего списка случайных паролей и надежного механизма их синхронизации; − использование общего пароля для пользователя и проверяющего генератора псевдослучайных чисел с одним и тем же начальным значением; − применение фиксированного числа случайных (псевдослучайных) последовательностей, скопированных на носители в виде скретч-карт [2]. Основными характеристиками метода, определяющего его стойкость, являются множество символов (алфавит), мощность множества и длина. Они применяются в мобильных банках, web-сайтах и OTP-токенах при аутентификации при оплате услуг через интернет, аутентификации при восстановлении пароля на webсайтах и аутентификации с помощью уникального предмета. В большинстве случаев аутентификация с помощью уникального предмета обеспечивает более серьезную защиту, чем парольная аутентификация. Предметы, используемые для аутентификации, можно условно разделить на следующие две группы: 1. «Пассивные» предметы, которые содержат аутентификационную информацию (например, некий случайно генерируемый пароль) и передают ее в модуль аутентификации по требованию. При этом, аутентификационная информация может храниться в предмете как в открытом (примеры: магнитные карты, смарт-карты с открытой памятью, электронные таблетки Touch Memory), так и в защищенном виде (смарткарты с защищенной памятью, USB-токены). В последнем случае требуется ввод PIN-кода для доступа к хранящимся данным, что автоматически превращает предмет в средство двухфакторной аутентификации. 2. «Активные» предметы, которые обладают достаточными вычислительными ресурсами и способны активно участвовать в процессе аутентификации (примеры: микропроцессорные смарт-карты и USB-токены). Эта возможность особенно интересна при удаленной аутентификации пользователя, поскольку на основе таких предметов можно обеспечить строгую аутентификацию. Под этим термином скрывается такой вид аутентификации, при котором секретная информация, позволяющая проверить подлинность пользователя, не передается в открытом виде [3]. Биометрическая аутентификация. Биометрические системы распознают людей на основе их анатомических особенностей или поведенческих черт, т.е. пользователь предъявляет параметр, который является частью его самого. В процессе биометрической аутентификации эталонный и предъявленный пользователем образцы сравнивают с некоторой погрешностью, которая определяется и устанавливается заранее [4]. Основными характеристиками метода, определяющего его стойкость, являются уникальность признака, FAR и FRR. Они применяются в ПК, смартфоны и СКУД для аутентификации при доступе к устройству. Аутентификация на основе графического пароля. Система аутентификации с использованием графического пароля построена на выполнении действий на изображении. Когда пользователь предпринимает попытку войти при помощи графического пароля в систему, та оценивает нарисованные им графические знаки и сравнивает их с эталоном, который был создан при выборе графического пароля. Далее система оценивает разницу между каждым графическим знаком и принимает решение о том, авторизовать пользователя или нет, на основании количества ошибок в комплексе. Если графический знак неверен или использован не в том порядке– то авторизация не пройдет. Если типы линий, точек, их порядок и положение правильны, то система будет оценивать, насколько графический знак отличается от эталона, и примет решение, является ли он достаточно похожим, чтобы авторизовать пользователя. Основными характеристиками метода, определяющего его стойкость, являются множество узлов (сетка) полей, множество фигур и количество задействованных узлов. Они применяются в ПК, смартфонах и планшетах для аутентификации при доступе к устройству. Система графических паролей на основе ЦВЗ Графические пароли находят применение в основном в мобильных и портативных устройствах с сенсорными экранами. Человеку, который не раз наблюдал сеансы входа в систему, будет не трудно вывести зависимость и определить пароль. Однако эту проблему можно избежать при использовании графических паролей на основе ЦВЗ. Для того чтобы файлы не были изменены без ведома автора и содержали информацию о правомерном использовании, применяются стеганографические вставки, или цифровые водяные знаки (ЦВЗ). Если 258 информация подвергается какому-то изменению, то вместе с ним изменяется видимый водяной знак. Цифровой водяной знак (ЦВЗ) — специальная метка, незаметно внедряемая в изображение или другой сигнал с целью тем или иным образом контролировать его использование [5]. Встраивание и выделение секретной информации сообщений из стегоконтейнера выполняет стегосистема, которая состоит из следующих элементов, представленных на рисунке 1. Рисунок 1− Структурная схема стегосистемы с ЦВЗ Основные элементы структурной схемы стегосистемы: − стегопрекодер – устройство, предназначенное для преобразования скрываемого сообщения к удобному виду для встраивания в сигнал-стегоконтейнер; − стегокодер – устройство для осуществления вложения скрытого сообщения в другие данные с учетом их модели; − стегодетектор – устройство для определения наличия стегосообщения; − декодер – устройство, восстанавливающее скрытое сообщение. Чтобы осуществить вложение цифровых водяных знаков стегоконтейнер, цифровой водяной знак должен быть преобразован к подходящему виду, если в качестве стегоконтейнера выступает изображение, то и последовательность цифровых водяных знаков обычно представляется как двумерный массив бит [6]. Если цифровой водяной знак используется для подтверждения подлинности, то недопустимое изменение стегоконтейнера должно приводить к разрушению цифрового водяного знака. Системы графических паролей на основе цифровых водяных знаков (ЦВЗ) встраивают в графические файлы случайные символы, которые вырабатываются встроенным генератором случайных последовательностей. Пароли в этих системах являются одноразовыми. Так после каждой пройденной авторизации автоматически меняется последовательность символов цифровых водяных знаков, используемых в качестве паролей. Модель системы ЦВЗ для разграничения доступа пользователей к информации, применяемая в построении системы графического пароля [7], показана на рис. 2. Рисунок 2 − Модель системы ЦВЗ для аутентификации 259 Алгоритм системы графических паролей на основе ЦВЗ: 1. Предложение системы выбрать пользователю последовательность графических файлов. 2. Наложение цифрового водяного знака на выбранные графические файлы. ЦВЗ является оригинальным для каждого графического объекта. 3. Формирование заверенного сообщения. 4. Встраивание конструкции водяного знака в графический контейнер, используя при этом конфиденциальный ключ. 5. Осуществление пользователем выбора последовательности графических объектов для своей аутентификации. 6. Передача выбора по каналу связи. 7. Воздействие нарушителя, а так же случайных и преднамеренных помех на заверенное сообщение в канале связи. 8. Поступление модифицированного сообщения, в результате воздействия на приеме, в устройство проверки водяных знаков. 9. Формирование оценки ЦВЗ по алгоритму обнаружения водяного знака. Подлинность пользователя определяется в соответствии с этой оценкой [8]. Система аутентификации пользователей на основе ЦВЗ имеет некоторые особенности: − заверяемое сообщение и встроенный в него ЦВЗ являются взаимозависимыми, то есть при разрушении сообщения разрушается и ЦВЗ, а если водяной знак сохранил свою целостность, то и принятое сообщение ее не потеряло; − получатель, принимая искаженный фрагмент сообщения, может не отказываться от всего сообщения, а отказаться только от одного фрагмента; − нарушитель, не знающий конфиденциальный ключ подписи, практически не имеет возможности формировать сообщения с формально верным водяным знаком; − внедряя в один контейнер несколько сообщений с разными водяными знаками, должна прослеживаться очередность подписей, при этом подписи не должны разрушать друг друга; − отказ от авторства подписанного сообщения невозможен для систем с конфиденциальным ключом подписи и открытым ключом проверки; Метод графического пароля на основе встраивания ЦВЗ обладает следующими отличительными особенностями: − каждый раз пользователь выбирает различные изображения (вводит различные данные), что не позволяет злоумышленнику узнать парольные изображения; − использование ЦВЗ в качестве одноразовых паролей, делает систему не уязвимой при сетевом перехвате. Выводы Использование метода аутентификации на основе графического пароля позволяет пользователю быстрее запоминать пароли и уменьшает время авторизации в системах. Однако он обладает рядом существенных недостатков. В большинстве случаев графические системы основываются на том, что в качестве пароля выступают либо координаты щелчков мыши, либо определенный набор символов, присвоенный графическим объектам. Как в первом, так и во втором случае знание реализации системы графического пароля дает возможность подобрать пароль методом перебора. В связи с этим обоснована необходимость использования методов стеганографии в системах графических паролей, что существенно усложняет взлом системы путем подбора или перехвата пароля при аутентификации пользователя. Благодаря использованию ЦВЗ в системах графических паролей, атаки на данные системы становятся более сложными в реализации и значительно отличаются от атак на часто используемые символьные системы. Можно сделать вывод, что системы графического пароля с использованием ЦВЗ имеют ряд преимуществ, таких как увеличение стойкости систем доступа к информации к взломам злоумышленниками, быстрое запоминание пароля пользователем, а также уменьшение времени авторизации в системах разграничения доступа. Литература 1. 2. 3. Мартынова Л. Е., Умницын М. Ю., Назарова К. Е., Пересыпкин И. П. Исследование и сравнительный анализ методов аутентификации // Молодой ученый. — 2016. — №19. — С. 90-93. Как построить и сертифицировать систему управления информационной безопасностью? [электронный ресурс] // InfoSecurity: [сайт]. URL: http://www.infosecurity.ru/cgibin/mart/arts.pl?a=_060920#2_1 Методы аутентификации [электронный ресурс] // Панасенко Сергей, 2005: [сайт]. URL: http://www.panasenko.ru/Articles/69/69.html 260 4. 5. 6. 7. 8. Идентификация и аутентификация [электронный ресурс] // CitForum: [сайт]. URL: http://citforum.ck.ua/security/articles/galatenko/ Грибунин В. Г. Цифровая стеганография // В. Г. Грибунин. – М.:СОЛОН-Пресс, 2002. – 273 с. Шокарев А. В. Применение цифровых водяных знаков для разработки систем графического пароля / А. В. Шокарев // Известия Томского политехнического университета [Известия ТПУ]. — 2014. — Т. 324, № 5 : Информационные технологии. — [С. 49-57]. Шокарев А.В. Цифровые водяные знаки. Защита авторских прав / А.В.Шокарев // Научное творчество молодежи: Материалы Х Всероссийской научно-практической конференции. Ч.1. – Томск: Томский государственный университет, 2006. С -98-100. Шокарев А.В., Шелупанов А.А. Использование компьютерной стеганографии для аутентификации пользователей // Научная сессия ТУСУР – 2006: Материалы докладов Всеросс. Научно техн. конф. cтудентов, аспирантов и молодых ученых. – Томск: ТУСУР, 2006. – С. 173–176 Ефремченко И.А., Губенко Н.Е. Анализ методов разграничения доступа к информации на основе одноразового графического пароля. В данной статье анализируются существующие системы аутентификации и рассматривается модель встраивания ЦВЗ для разграничения доступа пользователей к информации. Анализируется метод разграничения доступа к информации на основе графического пароля, выделяются основные свойства и главные особенности этого метода для использования в авторском приложении. Ключевые слова: методы аутентификации, графический пароль, цифровой водяной знак, авторизация, информационная система, пользователь. Yefremchenko I.A., Gubenko N.E. Analysis on the basis of a one-time password, graphical methods of differentiation of access to information. This article analyzes the existing authentication system and is considered a model of embedding a digital watermark to distinguish between user access to information. Analyzed by restricting access to the password-based graphic information, highlights the main features and the main features of this method for use in the author's application. Keywords: authentication methods, a graphical password, digital watermark, authorization, information system, users. 261 УДК 004.92 Подсистема прогнозирования траектории движения подвижного объекта распределенного симулятора тяжелой инженерной техники А.А. Койбаш, С.В. Кривошеев Донецкий национальный технический университет, г. Донецк кафедра компьютерной инженерии [email protected] Койбаш А.А., Кривошеев С.В. Подсистема прогнозирования траектории движения подвижного объекта распределенного симулятора тяжелой инженерной техники. Выполнен анализ алгоритма поиска кратчайшего пути А* для подвижных объектов, исследована оптимизация вычисления пути при помощи средств управления потоками. Проведен сравнительный анализ работы алгоритма на одном и нескольких ядрах. Ключевые слова: прогнозирование поведения объекта, поиск кратчайшего пути, многопоточность. Введение Развитие информационных технологий неизбежно приводит к внедрению новейших разработок во многие сферы жизни. Значительную роль в открытии инновационных технологий играет моделирование. Одним из важнейших аспектов моделирования является предсказание поведения объекта. Прогнозирование поведения объекта позволяет предсказывать его дальнейшие действия и соответствующим образом корректировать линию поведения (например, маршрут движения). Для этого используется множество факторов, такие как вероятность определенного действия объекта, возможность выполнения какого-либо действия, а также характеристики действий и самого объекта. Точность любого прогноза обусловлена объемом верифицированных данных, а также свойствами системы. Таким образом, компьютерная модель объекта должна обладать достаточным набором параметров, чтобы иметь возможность сообщить, как и каким способом может быть выполнено следующее действие. Есть множество способов описать схему поведения, и наиболее оптимальным является описание при помощи графов. Просчет кратчайшего маршрута Для решения графов существует множество различных методов. В случае просчета оптимального пути, поле перемещения объекта с максимально допустимой детализацией представляется в виде мультиграфа, где расстояние является весом ребра. Объект может перемещаться по вертикали, горизонтали и диагонали. Поле перемещения объекта с просчетом пути из точки A в точку B представлено на рис. 1. Рисунок 1 – Поле перемещения объекта с просчетом пути Наиболее рациональным методом для просчета оптимального пути тяжелой техники является алгоритм А*, который представляет собой эвристический подход к алгоритму Дейкстры. Данный алгоритм использует 262 оценочную стоимость. Просчитываются все 8 соседних вершин рядом с текущей позицией и в качестве следующей текущей выбирается вершина с минимальной стоимостью. В качестве эвристического приближения используется расстояние Чебышева. Преимущество данного алгоритма в том, что в нём пошагово просматриваются все пути, ведущие из вершины A в вершину B, пока не найдется путь с минимальной стоимостью. При этом алгоритм А* обходит минимальное количество вершин, поскольку он эффективно использует эвристику [1]. Оптимизация вычислений Из рисунка видно, что при вычислении просчитываются параметры для всех соседних клеток текущей позиции. Такие вычисления являются очень ресурсоёмкими. В связи с этим вопрос об оптимальном программировании вычисления поведения является крайне актуальным, так как оптимальность играет очень важную роль – во времени и энергопотреблении. Существенной производительности можно добиться путём распараллеливания программы. В алгоритме есть циклы, которые целесообразно распределить по потокам [2]. Если операционная система поддерживает концепции потоков в рамках одного процесса, она называется многопоточной. Схема организации однопоточного и многопоточного процесса изображена на рис. 2. Рисунок 2 – Диаграмма конкуренции 2 потоков разных маршрутов Как видно из схемы, однопоточный процесс использует код, данные в основной памяти и файлы, с которыми он работает. Процесс также использует определенные значения регистров и стек, на котором исполняются его процедуры. Многопоточный процесс организован несколько сложнее. Он имеет несколько параллельных потоков, для каждого из которых ОС создает свой стек и хранит свои собственные значения регистров. Потоки работают в общей основной памяти и используют то же адресное пространство, что и процесс-родитель, а также разделяют код процесса и файлы [3]. Многопоточные приложения имеют ряд преимуществ: улучшенная реакция приложения; более эффективное использование мультипроцессирования; улучшенная структура программы; эффективное использование ресурсов системы. Одним из решений является распределение двойного цикла обхода соседних вершин на 8 потоков – по одному на каждую вершину. Обработка соседних вершин аналогична алгоритму для одного потока. При нахождении соседней вершины вызывается завершение потоковой процедуры и строится траектория. Это очень удобно, так как система сама управляет потоками и распределит ядра для их выполнения. Платформа .NET предоставляет ряд функций для работы и синхронизации многопоточных приложений, поэтому для реализации использован язык C#. Чтобы избежать гонок памяти, при которых разные потоки одновременно начнут редактировать один участок памяти, проведена синхронизация при помощи мьютексов [4]. Таким образом, выполняется синхронизация доступа к спискам, что позволит избежать задействования одной и той же переменной несколькими потоками. Для сравнения быстродействия необходимо зафиксировать время вызова программного модуля, дождаться обработки и зафиксировать время окончания выполнения. Для этого были внесены изменения в код 263 программы. Также для фиксации результатов был написан внешний сценарий вызова программы, который фиксирует время начала и время завершения работы программы. Тестирование проводится на двух разных процессорах, время выполнения считается как разница между временем запуска и временем завершения программы. Тест показал, что распределение модуля на 8 потоков показало ухудшение производительности по сравнению с однопоточной реализацией. Падение производительности связано с тем, что все потоки обращаются и обрабатывают одни и те же переменные. Каждый поток при обработке общего участка памяти вынужден ожидать в очереди, если этот участок уже обрабатывается другим потоком, что негативно влияет на скорость выполнения программы [5]. Для формирования статистики средствами Micrisoft Visual Studio 2013 произведено профилирование конкуренции за ресурсы при параллельной обработке. Результат представлен на рис. 3. Рисунок 3 – Диаграмма конкуренции 8 потоков На диаграмме конкуренции изображена интенсивность конкуренции в секунду, отложенную по оси времени. На ней отображены конфликты ресурсов. Из изображения следует, что частота конкуренции крайне высока – 33 состязания. Алгоритм программы перестроен для двух потоков, первый обрабатывает 1 – 4 вершины, второй 5 – 8 вершины. Координаты остались теми же. Доступ к редактированию открытого списка также синхронизируется. При коротком маршруте тестирование обеих реализаций дало одинаковое время выполнения. Для полноценного теста было разработано поле с множеством препятствий и альтернативными способами добраться до цели. Это должно осложнить работу алгоритма, заставив его обрабатывать большее количество вершин. Тестирование на разных процессорах показали более чем двукратное падение производительности. Причина также в конкуренции ресурсов – потоки ожидают разрешение на обработку переменных. Результат представлен на рис. 4. Рисунок 4 – Диаграмма конкуренции 2 потоков Однако, сравнив результат с предыдущим тестированием видно, что конкуренция ресурсов снизилась. Средствами профилировщика определено 10 состязаний. Альтернативным вариантом оптимизации алгоритма является одновременный расчет пути сразу двух объектов. При этом задаются две стартовые точки и две конечные цели. Также для каждого потока задается свой список препятствий. Положительной стороной является отсутствие разделяемой памяти и как следствие, необходимости синхронизации мьютексами, так как все переменные будут локальными в каждом потоке. Результаты показывают увеличение производительности. То есть, за меньшее время вместо одного пути прогнозируются сразу два. Результат представлен на рис. 5. 264 Рисунок 5 – Диаграмма конкуренции 2 потоков разных маршрутов Конкуренция практически отсутствует, за исключением конкуренции за главный поток в месте синхронизации. На обоих процессорах зафиксировано повышение производительности. Вывод Таким образом, была проведена оптимизация при помощи средств управления потоками. Были проведены тестирования разных вариантов оптимизации: распределение на 8 потоков, распределение на 2 потока, одновременное вычисление пути двух объектов. При распараллеливании на несколько потоков результаты по времени выполнения ухудшились. Это связано с активной работой с памятью, доступ к которой необходимо синхронизировать. Однако вычисление сразу двух траекторий дало положительный результат, так как отсутствуют общие переменные и не требуется синхронизация доступа к ним. Такое решение можно использовать для деления одного маршрута на участки. Это позволит усилить детализацию для более детального просчета маршрута. Литература 1. Койбаш А.А., Кривошеев С.В. Прогнозирование траектории движения подвижного объекта распределенного симулятора тяжелой инженерной техники. В кн.: Информатика, управляющие системы, математическое и компьютерное моделирование (ИУСМКМ – 2016): материалы VII междунар. науч.-техн. конф., Донецк, 2016. / редкол. А.Ю. Харитонов и др. Донецк: ДонНТУ, 2016. С. 343-346. 2. Томас Х. Кормен, Чарльз И. Лейзерсон, Рональд Л. Ривест, Клиффорд Штайн. Алгоритмы: построение и анализ – 3-е изд. – М.: «Вильямс», 2013. – 1328 с. 3. Hughes C., Hughes T. Professional Multicore Programming: Design and Implementation for C++ Developers. – Indianapolis: Wiley Publishing, Inc., 2008 – 648 p. 4. Эндрю Троелсен. Язык программирования C# 5.0 и платформа .NET 4.5 – 6-е издание. – М: «Вильямс», 2013. – 1312 с. 5. Кристиан Нейгел и др. C# 5.0 и платформа .NET 4.5 для профессионалов. – М.: «Диалектика», 2013. – 1440 с. Койбаш А.А., Кривошеев С.В. Подсистема прогнозирования траектории движения подвижного объекта распределенного симулятора тяжелой инженерной техники. Выполнен анализ алгоритма поиска кратчайшего пути А* для подвижных объектов, исследована оптимизация вычисления пути при помощи средств управления потоками. Проведен сравнительный анализ работы алгоритма на одном и нескольких ядрах. Ключевые слова: прогнозирование поведения объекта, поиск кратчайшего пути, многопоточность. Koibash A.A., Kryvosheyev S.V. The prediction unit of moving object trajectory of the heavy engineering vehicle distributed simulator. The algorithm for finding the shortest path has been analyzed for moving objects, optimization of a path computation has been investigated using the stream control tools. Comparative analysis of the algorithm has been completed on a single and multiple kernels. Keywords: prediction the behavior of the object, find the shortest path, multithreading. 265 УДК 003.26 Сравнительный анализ методов лингвистической стеганографии С.В. Медгаус, Н.Е. Губенко Донецкий национальный технический университет [email protected], [email protected] Медгаус С.В., Губенко Н.Е. Сравнительный анализ методов лингвистической стеганографии. В тексте данной статьи анализируются существующие методы лингвистической стеганографии и делаются выводы об эффективности каждого из методов. Предлагается выбор наиболее эффективных стеганографических методов. Ключевые слова: шифрование. стеганография, лингвистическая стеганография, скрытая передача, Введение На протяжении всей истории человечества возникала необходимость в сокрытии передаваемой информации в тайне от окружающих. Эта информация могла быть стратегически важной и для её защиты применялись различные методы стеганографии и шифрования. Шифрование скрывало содержание сообщения, то есть потенциальный враг мог перехватить сообщение и увидеть, что оно зашифровано, но для расшифровки необходимо было знание метода шифрования и ключа. Стеганография же скрывает сам факт передачи сообщения (от лат. стеганос – скрытый, графо – писать) [1]. Нужное сообщение встраивается каким-либо образом в контейнер (текст, аудио или видеофайл) таким образом, чтобы люди, не знающие, что передаваемое сообщение содержит что-то секретное, не заподозрили факт передачи. Для повышения эффективности сокрытия данных при скрытой передаче принято использовать комбинацию криптографии и стеганографии, то есть сначала зашифровать сообщение, а потом встроить его в контейнер. Стегосистема – это совокупность средств и методов, которые используются для формирования скрытого канала передачи информации. Сообщение – это любая информация, подлежащая скрытой передаче. В качестве сообщения может использоваться любой вид информации: текст, изображение, аудио сигнал. Скрытое сообщение – это сообщение, встроенное в контейнер. Контейнер – это информация в любой форме, предназначенная для скрытия сообщения. Выбор вида контейнера оказывает существенное влияние на надёжность стегосистемы и возможность обнаружения факта передачи скрытого сообщения [2]. На рис. 1 [3] представлена известная структурная схема стегосистемы. Рисунок 1 – Структурная схема стегосистемы Целью данной работы является проведение сравнительного анализа существующих методов лингвистической стеганографии, а также заключение о лучшем методе или их комбинации. 266 1 Анализ методов стеганографии Существуют несколько видов стеганографии: классическая, компьютерная и лингвистическая. Классическая стеганография представляет методы сокрытия информации, которые использовались древними людьми для сокрытия факта передачи сообщения: симпатические чернила, акростихи и решётки, которые кладут на текст сообщения. Компьютерная стеганография получила своё развитие при появлении и использовании компьютеров для коммуникации людей. Этот тип стеганографии включает методы, которые встраивают данные в различные аудио-, видеофайлы и изображения таким образом, чтобы сам контейнер сильно не изменился. Лингвистическая стеганография специализируется на встраивании сообщений в текстовые контейнеры. В тексте данной статьи рассматриваются, анализируются и сравниваются такие методы лингвистической стеганографии: метод произвольного интервала, метод выровненного текста, метод изменения пунктуации, метод изменения стиля и структуры текста или перефразирование, графематический метод сокрытия и жаргон [4]. 1.1 Метод произвольного интервала Данный метод заключается в добавление некоторого количества пропусков (пробелов, знаков табуляции) между словами или предложениями. [4] Алгоритм метода приведён на рис. 2. Анализ алгоритма показывает, что реализация этого метода достаточно проста, но и обнаружение факта сокрытия тоже несложное. Начало Получить встраиваемый текст Получить текстконтейнер Представить встраиваемый текст в бинарном виде. Конец сообщения? Да Конец Нет Заменить 1 пробел на 2 Нет Текущий символ ‘0’? Да Оставить 1 пробел Рисунок 2 – Алгоритм метода произвольного интервала 1.2 Метод выровненного текста Этот метод заключается в добавлении чётного или нечётного количества пробелов между слов в строках для получения выровненного текста, где чётное количество, например, кодируется 0, нечётное – 1. Реализация данного метода проста, но этот метод неудобно применять, так как много программ могут потерять количество пробелов во время передачи или сохранения файла. Более того, существуют текстовые редакторы, которые удаляют лишние пробелы в тексте, что тоже может плохо повлиять на правильную передачу сообщений [4]. 1.3 Метод изменённой пунктуации Данный метод заключается в замене некоторых знаков пунктуации на их словесные аналоги. Например, в перечислениях можно писать перечисляемые слова через запятую, а можно использовать союз «и». 267 Ещё можно заменять «:» на «такие как» и так далее. Такой способ тоже можно использовать для кодирования бинарных чисел [4]. 1.4 Перефразирование Этот метод частично изменяет текст, меняя местами главное и придаточное предложение. Например, предложение «Я выходил из дома, когда зазвонил телефон» заменяется на «Когда зазвонил телефон, я выходил из дома». Смысловое наполнение предложение сильно не меняется, однако таким методом можно, как и в методах, указанных раннее, кодировать бинарные числа для передачи сообщений [4]. 1.5 Графематический метод Данный метод заключается в замене букв из одного языка на буквы из другого языка или символы. Например, о(рус.) – o(англ.), а(рус.) – a(англ.). В компьютерном представлении это будут различные символы, а на экране отображение текста не поменяется. Можно кодировать бинарные числа, если принимать, что русская буква – 0, а английская буква – 1. В данном методе можно использовать несколько языков для получения большего количества подстановок и соответственно большей возможности для кодирования. Этот метод достаточно хорош, однако он применим только для передачи электронных сообщений [4]. Алгоритм данного метода представлен на рис. 3. Начало Получить встраиваемый текст Получить текстконтейнер Представить встраиваемый текст в бинарном виде. Конец сообщения? Да Конец Нет Нет Текущий символ можно представить в двух языках? Да Представить текущую букву буквой английского алфавита Нет Бит в сообщении = 0? Да Представить текущую букву буквой русского алфавита Рисунок 3 – Алгоритм графематического метода 1.6 Жаргон Этот метод может дать неоднозначные результаты при его применении, так как для его реализации нужен словарь жаргонизмов, на которые менять обычные слова. Однако этот метод легко узнаваем и слова из жаргона будет видно. Пример слов-жаргонизмов: «капуста» - деньги. Такой вид жаргона легко узнать, но если заменять слова обычными синонимами, тогда факт передачи сообщения будет тяжелее обнаружить. Для такого сокрытия понадобится заранее условленный словарь синонимов [5]. 268 1.7 Сравнение методов После анализа приведённых выше методов лингвистической стеганографии, была составлена сравнительная таблица, учитывающая следующие характеристики: сложность реализации, сложность обнаружения, сложность внедрения и извлечения сообщения из контейнера. Каждый метод оценивается баллами от 1 до 3 в зависимости от веса соответствующего критерия в нём (см. табл. 1). Критерии Сложность реализации Сложность внедрения и извлечения сообщения Сложность обнаружения Таблица 1. Сравнительная характеристика методов лингвостеганографии Методы лингвистической стеганографии Произволь Выровненны Изменённая ный Перефразирование Графематика й текст пунктуация интервал Жаргон 1 1 2 3 1 2 1 1 2 3 2 3 1 1 2 3 3 3 Выводы При проведении исследования были проанализированы различные методы лингвистической стеганографии, а также была построена сравнительная таблица вышеуказанных методов. Они сравнивались по сложности реализации, сложности внедрения и извлечения сообщений и сложности обнаружения. Как выяснилось, методы, которые труднее в реализации и во внедрении и извлечении сообщений, лучше защищают сообщение от обнаружения факта передачи. Можно сказать, что эффективнее всего себя покажет комбинация всех методов лингвистической стеганографии. Литература 1. Citforum. Стеганография [электронный ресурс]. – Режим доступа: http://citforum.ru/security/articles/min_bit. 2. Исследование метода компьютерной стеганографии для защиты информации [электронный ресурс]. – Режим доступа: http://5fan.ru/wievjob.php?id=36765. 3. Структурная схема стегосистемы [электронный ресурс]. – Режим доступа: https://goo.gl/zdr1hF 4. Лингвистическая стеганография. ИУСМКМ - 2011: Вестник московского государственного лингвистического университета. Серия: Гуманитарные науки: - Москва: МГЛУ, 2016. – С. 66-73. 5. Бабина, О.И. Лингвистическая стеганография: современные подходы. Часть 1 / О.И. Бабина // Вестник ЮУрГУ. Серия «Лингвистика». – 2015. – Т. 12, № 3. – С. 27–33. Медгаус С.В., Губенко Н.Е. Сравнительный анализ методов лингвистической стеганографии. В тексте данной статьи анализируются существующие методы лингвистической стеганографии и делаются выводы об эффективности каждого из методов. Предлагается выбор наиболее эффективных стеганографических методов. Ключевые слова: шифрование. стеганография, лингвистическая стеганография, скрытая передача, Sergey Medgaus, Natalya Gubenko Comparative analysis of linguistic steganography methods. There is analysis of existing linguistic steganography methods in the text of this article. It is made a conclusion about efficiency of these methods. Choice of the most effective methods is proposed. Key words: steganography, linguistic steganography, hidden transfer, ciphering. 269 УДК 004 Выбор политик и правил информационной безопасности для повышения уровня информационной защищенности центра оптовой торговли «Мост» Ходич Д.В., Губенко Н. Е. Донецкий национальный технический университет Кафедра компьютерного моделирования и дизайна [email protected], [email protected] Ходич Д.В., Губенко Н. Е. Выбор политик и правил информационной безопасности для повышения уровня информационной защищенности центра оптовой торговли «Мост». В данной статье описан процесс и методы разработки политики информационной безопасности для ЦОТ “МОСТ”. Ключевые слова: Мост, центр оптовой торговли, информационная безопасность, разработка политик информационной безопасности, информационная защищённость . Введение Политика информационной безопасности ЦОТ «МОСТ» определяет цели и задачи системы обеспечения информационной безопасности (ИБ) и устанавливает совокупность правил, требований и руководящих принципов в области ИБ, которыми руководствуется Организация в своей деятельности. Цели Политика информационной безопасности направлена на защиту информационных активов от угроз, исходящих от противоправных действий злоумышленников, уменьшение рисков и снижение потенциального вреда от аварий, непреднамеренных ошибочных действий персонала, технических сбоев, неправильных технологических и организационных решений в процессах обработки, передачи и хранения информации и обеспечение нормального функционирования технологических процессов. Задачами настоящей политики являются: − описание системы управления информационной безопасностью в организации; − определение политик информационной безопасности, а именно: − политика реализации антивирусной защиты; − политика учетных записей; − политика предоставления доступа к информационному ресурсу; − политика использования паролей; − политика конфиденциального делопроизводства; − определение порядка сопровождения ИС. Построение структурной модели информационной системы (ИС) Рассмотрим структуру центра оптовой торговли “МОСТ” с точки зрения информационной безопасности (ИБ). Структура включает в себя такие отделы и группы: отдел закупок, отдел менеджеров, отдел продаж, отдел складского хозяйства, отдел защиты информации, отдел режима и охраны, группа безопасности внешней политики и инженерно-техническая группа. Рассмотрим подробнее отделы, отвечающие за безопасность, представленные на рис. 1. 270 Рисунок 1 – Организационная структура ЦОТ “МОСТ” Для того, чтобы можно было представить, как функционирует система, была составлена структурная модель ИС. Эта модель позволяет проанализировать функции, которые выполняются каждым звеном системы. Рисунок 2 – Структурная модель информационной системы После того как структура ИС определена нужно назначить ответственных за регламент использования каждого элемента системы для всех пользователей системы. В статье рассматривается определение полномочий 271 пользователей по отношению к компонентам ИС и проводится идентификация информационных ресурсов с точки зрения их критичности. Классификация угроз ИБ для ЦОТ “МОСТ” При проведении мониторинга структурной модели ИС были выявлены основные категории рисков, описанные в таблице 1. Таблица 1 – Категории возможных потерь Категории рисков Риск потери ликвидности Описание Фирма не сможет в конкретный момент погасить свои обязательства имеющимся капиталом[1] Потеря данных К примеру потеря данных происходит тогда, когда персонал не выполняет своих обязанностей по политике безопасности предприятия. Потеря рынка сбыта Эта категория касается ситуаций, оказывающих влияние на установление общественного доверия. Проведём оценку рисков. При этом уровни риска подразделяются на три категории: высокий (В), средний (С) и низкий (Н). Таблица 2 – Матрица оценки рисков Зона Уязвимости Физический Уровень Сетевой Уровень Уровень СУБД Уровень бизнеспроцессов организации Угроза Риск потери ликвидности Потеря данных Пот еря рынка сбыта Неавторизованное раскрытие защищаемой информации Н В С Ухудшение обслуживания Н Н В Неавторизованное раскрытие защищаемой информации С В С Ухудшение обслуживания Н Н В Неавторизованное раскрытие защищаемой информации С В В Ухудшение обслуживания Н Н В Неавторизованное раскрытие, защищаемой инф-ции В В В Ухудшение обслуживания С С В Из таблицы 2 следует то, что актуальными угрозами, объектом атаки которых является информация, для организации являются: угроза неавторизованного раскрытия информации на сетевом уровне, на уровне СУБД, на уровне бизнес-процессов организации и угроза ухудшения обслуживания на уровне бизнеспроцессов; Разработка правил политики ИБ ЦОТ “МОСТ” Политика информационной безопасности регламентирует эффективную работу средств защиты информации. Она охватывают все особенности процесса обработки информации, определяя поведение ИС и ее пользователей в различных ситуациях. Политика информационной безопасности реализуется посредством административно-организационных мер, физических и программно-технических средств и определяет архитектуру системы защиты. [2] 272 В процессе разработки политики безопасности формулируется свод правил информационной безопасности для противодействия угрозам информационной системы организации. На основе свода правил создается политика безопасности. Правило №1: В данной организации должны отслеживаться действия пользователей и отправляться отчёты по собранной информации ответственным за регламент использования каждого компонента системы. Правило №2: Следует проводить модернизацию защиты информации и повышение квалификации персонала Правило №3: Обеспечение защиты СУБД и хранение информации. Правило №4: Обеспечение защиты бизнес-процессов ЦОТ “МОСТ”. Правило №5: Разграничение доступа. Правило №6: Использование современных инструментов защиты от вирусов. Выводы Описанные в тезисах методы для оценки риска, структурная модель и правила политики ИБ позволяют сформулировать политику безопасности ЦОТ «МОСТ» в виде следующей таблицы. Таблица 3 – Политика безопасности организации Правила ИБ Ответственные Виды защитных мер В данной организации должны отслеживаться действия пользователей и отправляться отчёты по собранной информации ответственным за регламент использования каждого компонента системы. Администратор ИБ Организационные и технические Следует проводить модернизацию защиты информации и повышение квалификации персонала в данной области Администратор ИБ Организационные Обеспечение защиты СУБД и хранение информации Персонал (операторы АРМ, администраторы) Организационные и технические Обеспечение защиты бизнеспроцессов филиала коммерческого банка Персонал (операторы АРМ, администраторы) Организационные и технические Разграничение доступа Персонал (операторы АРМ, администраторы) Организационные и технические Администраторы ИБ и СУБД Организационные и технические Использование современных инструментов защиты от вирусов. Требования настоящей Политики могут подчиняться и другим внутренними нормативными документами ЦОТ “МОСТ”, которые дополняют и уточняют ее. В случае изменения действующего законодательства и иных нормативных актов, а также устава ЦОТ “МОСТ” настоящая Политика и изменения к ней применяются в части, не противоречащей вновь принятым законодательным и иным нормативным актам, а также уставу ЦОТ “МОСТ”. В этом случае ответственное 273 подразделение обязано незамедлительно инициировать внесение соответствующих изменений. Ответственным за внесение изменений в настоящую Политику является руководитель структурного подразделения, по инициативе которого были внесены изменения. Литература 1. Конфигурация "Учет мероприятий и семинаров"//Простой софт программы для дома и офиса. [Электронный ресурс]. – Режим доступа: http://www.aup.ru/articles/finance/4.htm 2.Конфигурация "Учет мероприятий и семинаров"//Простой софт программы для дома и офиса. [Электронный ресурс]. – Режим доступа: http://www.femida-audit.com/docs/038771.pdf 3. В.И. Ярочкин. Информационная безопасность. Учебник для вузов. – М.: Академический Проект, Мир, 2008. – 544 с. 4. Т.Л. Партыка, И.И. Попов. Информационная безопасность. – М.: Форум, Инфра-М, 2002. 5. В.П. Мельников, С.А. Клейменов, А.М. Петраков. Информационная безопасность. – М.: Академия, 2012. – 336 с. 6. В.И. Ярочкин, Я.В. Бузанова. Аудит безопасности фирмы: теория и практика. – М.: Академический проект, Парадигма, 2005. – 352 с. 7. С.Н. Загородников, А.А. Шмелев. Основы информационного права. – М.: Академический Проект, Парадигма, 2005. – 192 с. 8. А.Н. Прохода. Обеспечение интернет-безопасности. – М.: Горячая Линия - Телеком, 2007. – 184 с. Ходич Д.В., Губенко Н. Е. Выбор политик и правил информационной безопасности для повышения уровня информационной защищенности центра оптовой торговли «Мост». В данной статье описан процесс и методы разработки политики информационной безопасности для центра оптовой торговли “Мост”. Ключевые слова: Мост, центр оптовой торговли, информационная безопасность, разработка политик информационной безопасности, информационная защищённость Khodich D., Gubenko N. The selection policies and rules of information security to enhance information security center of wholesale trade "Bridge". This article describes the process and methods of developing information security policy for wholesale trading center “Bridge” Keywords: Bridge, center of wholesale trade, information security, development of information security policies, information security. 274 СЕКЦИЯ «ПРИКЛАДНАЯ МАТЕМАТИКА» УДК 622.14 Моделирование процессом управления перемещением породы на отвале Е.В.Прокопенко, Е.В.Лапшина Донецкий национальный технический университет, г. Донецк кафедра прикладной математики [email protected] Прокопенко Е.В, Лапшина Е.В. Моделирование процессом управления перемещением породы на отвале. В статье предлагается концепция по применению теории графов для создания хронолитологической модели породного отвала, которая позволит выявить интервалы локализации вредных химических компонент на отвале, и дать рекомендации по дальнейшему использованию этих компонент. Ключевые слова: шахта, отвал, порода, граф, модель отвала Введение На сегодняшний день в регионе накоплено 4 млрд. тонн отходов, которыми занято чуть менее 2 % территории области. Основные отрасли, образующие отходы - угольная промышленность (около 120 шахт и горнодобывающих предприятий). [1] Отходы угольных предприятий в основном сосредотачиваются на отвалах. На территории Донбасса находится 1257 терриконов, которые занимают площадь 5526, 3 га. Большинство отвалов Донбасса являются горящими. В их недрах держится высокая температура, так как там, в избытке накоплен мышьяк, ртуть, цианиды, сера и другие вредные вещества и их соединения. Отвалы принимают породу от отдельной шахты, обогатительной фабрики или от группы угольных предприятий. [2] В отвалах угольных шахт много запасов некоторых металлов, соизмеримых по объему с природными месторождениями полезных ископаемых, тем более что в настоящее время многие из минеральных ресурсов уже исчерпаны, что является одной из глобальных проблем. Цели и задачи работы Основной задачей данной работы является моделирование процессом управления породы на отвал в пределах одной или нескольких шахт. Помимо этого, часть исследования посвящена созданию хронолитологической модели породного отвала, которая позволит выявить интервалы локализации вредных химических компонент на отвале, и дать рекомендации по дальнейшему использованию этих компонент. Анализ последних публикаций и исследований В ближайшем будущем все запасы благородных и цветных металлов, железа будут исчерпаны. Поэтому именно сейчас актуально рассматривать отходы горного производства, как альтернативный вариант пополнения природных ресурсов. Само по себе возведение террикона требует значительных усилий, ведь вначале надо построить собственно шахту, пройти километры горных выработок. Вся поднятая на-гора порода попадает в террикон, туда же идут и всевозможные отходы из шахты, это могут быть металлоконструкции, железобетон, дерево, кабели, и, небольшая часть угля (до 30 процентов).В модели отвала должна быть отражена локализация определенных типов (видов) пород и связанных с ними химические компоненты. Единственным достоверным источником такой информации являются результаты маркшейдерскогеологических съемок в горных выработках периодически с маркшейдерскими съемками отвалов. Выбор математической модели Так как каждый пласт имеет свое геологическое строение, то можно составить прогноз тех химических реакций, которые произойдут при соприкосновении тех или иных элементов, содержащихся в различных пластах, то есть заранее выявить неблагоприятные зоны на отдельном ярусе и в целом на отвале. Исходя из вышесказанного, можно сделать вывод, что маркшейдерский план — это хронология деятельности ''живого 275 организма'', и данную хронологию можно использовать для построения динамической модели формирования породного отвала Порода попадает на породный отвал не хаотически, а в определенных объемах и последовательности. Основой для этого могут служить маркшейдерская горно-графическая документация, которая, по сути, является единым достоверным источником информации за весь период эксплуатации шахты, и, следовательно, за весь период отсыпки породы на отвал. Горные работы ведутся по определенной системе и планированию, используя планограмму развития горных работ. Исходя из выше сказанного, можно проследить динамику насыпки породы на отвал за определенной период времени, состоящую из следующих этапов: 1. Горные работы ведутся по определенной системе и планированию, используя планограмму развития горных работ. 2. Данная планограмма отображается на планах горных работ по каждому пласту, на котором ведутся работы. 3. Развитие горных работ осуществляется за определенный интервал времени (t) и в определенном месте проходческого забоя, т. е. осуществляется во времени и в пространстве. 4. Данная информация отображается на маркшейдерских планах горных работ в виде подвигания каждой выработки за определенное время. Зная динамику насыпки пород, можно выявить опасные очаги выбросов вредных веществ на отвале, так как загрязнение атмосферы вредными веществами оказывает значительное воздействие на здоровье населения и экосистему области.[1] Вычислительный эксперимент Разработка данной модели предусматривает использование элементов теории графов, так как данная теория рассматривает постановку и решение задач управления организационными системами. [3] Одной из таких систем и является отсыпка породы на отвал. Граф представляет собой систему, которая интуитивно может быть рассмотрена как множество кружков и множество соединяющих их линий. Кружки называются вершинами графа, линии со стрелкамидугами, без стрелок - ребрами. На основании графиков ввода-вывода проходческих забоев, порода попадает на отвал в основном из квершлагов, уклонов, транспортных штреков и штреков за лавами. Используя эти данные можно составить граф. На рисунке 1 представлен граф, реализующий доставку породы на отвал в пределах одного пласта. Структура данного графа и все обозначения, представленные на схеме, могут быть сведены в таблицу 1, которая отражает полную характеристику данного графа. Множество P представляет собой ориентированный граф G = (V,E), каждому ребру (u, v) E которого поставлено в соответствие число с(u, v) 0 , называемое пропускной способностью ребра. Под числом в данной модели будем понимать единичный объем породы Vi, отсыпаемый на отвал. Следовательно, в данном графе можно выделить две группы вершин – истоки P - (пласты, источники информации о породе) и истоки S - (средства отображения информации, или породный отвал). Путем информационного потока будем называть упорядоченную последовательность вершин r (v j , v1 , v2 , vk ), vi V , v j P, vk S , i 1, k , (1) причем любые две последовательные вершины соединены хотя бы одним ребром из множества Е. При этом пару d = (v1, vk) будем называть информационным соответствием. Состояние информационных потоков разрабатываемых угольных пластов можно описать совокупностью информационных соответствий. При этом для каждого информационного соответствия будет существовать реализующий его путь информационного потока. С учетом выше сказанного можно составить алгоритм управления информационными потоками на отвале. Входом для алгоритма будет информация об угольных пластах G = (V,E) и набор информационных соответствий r1, r2, …rm.. Выходом будет набор путей информационных потоков d1, d2, …dm, реализующий заданные соответствия Данная структура графа рассмотрена только в пределах одного пласта, т.е. по схеме можно рассмотреть динамику насыпки пород в зависимости от планограммы развития горных работ, которая отражена на маркшейдерских планах. По каждому пласту составляется геологический разрез и осуществляется характеристика состава пород, входящих в пласт. Для остальных пластов составляется такой же граф. 276 Рисунок 1- Модель формирования отвала в виде графа Таким образом, зная, что происходит с насыпкой породы в пределах одного пласта, и, зная какие работают пласты, то ли одновременно, то ли каждый по отдельности, можно составить хронолитологическую модель насыпки породы, в результате которой могут быть выявлены места с накоплением вредных веществ [4]. По данной модели можно составить рекомендации по контролю за данными веществами , а также дать рекомендации по дальнейшему использованию этих веществ. 277 Обозначение вершины Таблица 1- Характеристика элементов, входящих в граф Назначение вершины P Наименование пласта P1 Вид выработок- квершлаги P2 Вид выработок- уклоны P3 Вид выработок- транспортные штреки P4 Вид выработок- штреки за лавами P1-2 Суммарный объем пород квершлагов и уклонов P1-3 Суммарный объем пород квершлагов и транспортных штреков P1-4 Суммарный объем пород квершлагов и штреков за лавами P2-3 Суммарный объем пород уклонов и транспортных штреков P2-4 Суммарный объем пород уклонов и штреков за лавами P3-4 Суммарный объем пород транспортных штреков и штреков за лавами Обозначение дуг 1 P 1 P2 2 P33 P4 4 Обозначение ребер 1 1 1 P12 , P13 , P14 P221 , P223 , P224 P331 , P332 , P334 P441 , P442 , P443 Назначение дуг Отсыпка породы только из квершлагов Отсыпка породы только из уклонов Отсыпка породы только из транспортных штреков Отсыпка породы только из штреков за лавами Назначение ребер Одновременная работа квершлагов с уклонами, транспортными штреками и штреками за лавой Одновременная работа уклонов с квершлагами, транспортными штреками и штреками за лавой Одновременная работа транспортных штреков с квершлагами, уклонами и штреками за лавой Одновременная работа штреков за лавами с квершлагами, уклонами и штреками Выводы После разработки модели управления потоком породы на отвал можно сделать следующие заключения. 1. Так как отдельный ярус породного отвала насыпается определенное количество лет, то можно составить карту насыпки отвала за определенный период времени. Кроме того, в связи с тем, что каждый пласт имеет свое геологическое строение, то можно составить прогноз тех химических реакций, которые произойдут при соприкосновении тех или иных элементов, содержащихся в различных пластах, то есть заранее выявить неблагоприятные зоны на отдельном ярусе и в целом на отвале [5-7] 2. Используя данную модель, можно решить задачу о нахождении максимального компонента среди состава пород, входящих в пласт, а также сформировать вектор, позволяющий оценить единичный объем выдачи на отвал породы, содержащий максимальный компонент по пластам [8-10]. Литература 1. С.В. Трет'якова, Г.Аверіна .Земля тривоги нашої. За матеріалами доповіді про стан навколишнього природного середовища у Донецькій області у 2008-2009 роках /.– Донецьк: Новий світ.-2009.-124с. 2. Панов Б.С. Некоторые проблемы экологии Донецкого бассейнов./ Панов Б.С., Проскурня Ю.А. Тез.докл.Межд.Научно-практичекой конференции [“Стратегия выживания и развития Донбасса ”]./Донецк. 1996.с.56. 278 3. Бурков В.Н., Заложнев А.Ю., Новиков Д.А. Теория графов в управлении организационными системами/- М.: Синтег, 2001.-124с. 4. Прокопенко Е.В. Использование теории графов для создания хронолитологической модели формирования породного отвала/ Науковий вісник НГУ. - Національний гірничий університет, 2011. №5, т. С.28-31. 5. Прокопенко Е.В. Обеспечение устойчивости породного отвала при прогонозировании его высоты на основе маркшейдерських съёмок /С.В.Борщевский, Е.В.Прокопенко, Старченко Н.С// Сучасний стан і перспективи розвитку гірництва та підземного будівництва. Зб. наук. праць. Вип 1, – Київ: НТУУ, 2010. С.3741. 6. Прокопенко Е.В. Определение опасных экологических очагов породных отвалов /С.В.Борщевский, Е.В.Прокопенко, С.В.Масло, М.В.Платоненко// Перспективы развития Восточного Донбасса. / Шахтинский инт (филиал) ЮРГТУ (НПИ). – Новочеркасск: ЮРГТУ,2010. – С.228233. 7. Прокопенко Е.В. Использование теории графов для создания хронолитологической модели формирования породного отвала /Матеріали міжнародної конференції "Форум гірників-2011".Д.:ДВНЗ «Національний гірничий університет»,2011.С.248253. 8. Прокопенко Е.В. Использование теории графов для создания хронолитологической модели формирования породного отвала // Науковий вісник НГУНаціональний гірничий університет, 2011.№5. С.2831. 9. Прокопенко Е.В. Построение пространственной модели участков ярусов породного отвала с использованием программного пакета Surfer /С.В.Борщевский, Е.В.Прокопенко// Збірник наукових праць НГУ. Національний гірничий університет, 2010. №34, т.1. С. 8287. 10. Прокопенко Е.В. Обоснования для разработки хронолитологической модели формирования породного отвала// Наукові праці УкрНДМІ НАН України. Випуск 8 / під заг. Ред. А.В. Анциферова. - Донецьк, УкрНДМІ НАН України, 2011. – С. 4348. Прокопенко Е.В, Лапшина Е.В. Моделирование процессом управления перемещением породы на отвале. В статье предлагается концепция по применению теории графов для создания хронолитологической модели породного отвала, которая позволит выявить интервалы локализации вредных химических компонент на отвале, и дать рекомендации по дальнейшему использованию этих компонент. Ключевые слова: шахта, отвал, порода, граф, модель отвала Prokopenko E.V, LapshinaE.V. Simulation of the motion control process of the breed on the blade. The paper proposes a concept for the application of graph theory to create a chronolithological model of waste dump, which will identify the intervals localization of harmful chemical components on the dump, and make recommendations to further the use of these components. Keywords: mine, rock of dump, graph, model rock of dump 279 УДК 004.432 Работа с комплексными числами в языках программирования Т. Ф. Шевченко, Т. В. Кучер Донецкий национальный технический университет [email protected], [email protected] Шевченко Т. Ф., Кучер Т. В. Работа с комплексными числами в языках программирования. Рассмотрены возможности современных языков программирования Pascal, C++, Fortran, Python при реализации задач с комплексными числами. Ключевые слова: программирование, комплексное число, структура, класс, Pascal, С++, Fortran, Python. Введение Целью данной работы является обзор возможностей некоторых современных языков программирования для работы с комплексными числами. Комплексные числа замыкают ряд вещественных чисел и в ряде случаев позволяют значительно упростить решение сложных задач, в доказательстве к которым использование традиционных методов невозможно либо слишком сложно для понимания. Комплексные числа имеют достаточно широкий диапазон применения в различных сферах науки: физике, математике, инженерной и конструкторской деятельности. В электротехнике комплексные числа нашли себя в качестве удобной замены дифференциальным уравнениям, которые неизбежно возникают при решении задач с линейными цепями переменного тока. Для этого величины, описывающие систему, заменяются их комплексами, где действительная часть равна активной составляющей величины, мнимая – реактивной. Расчет таким образом сильно упрощается. Математическая трактовка комплексных чисел выглядит следующим образом: комплексным числом называется составная величина вида z=x+iy, где x – действительная (real) и y – мнимая (imagine) части числа, символ i – так называемая мнимая единица, для которой i2=-1. Данную форму записи называют алгебраической, также существуют следующие формы записи: тригонометрическая z r cos i sin и экспоненциальная (показательная) z r ei , где r x 2 y 2 – модуль комплексного числа, arctgz – аргумент комплексного числа. С формулами математических операций с комплексными числами (сложение, вычитание, умножение, деление, извлечение корня и т.д.) можно ознакомиться в [1]. Задача данной работы – на примерах показать реализацию математических действий и задач линейной алгебры с комплексными числами. Программные средства обработки комплексных чисел В современных языках программирования для реализации задач с комплексными числами можно использовать структуру данных (запись), представляющую комплексное число [2, 3]. Структура в этом случае будет содержать два поля для хранения действительной и мнимой частей, а математические действия с комплексными числами будут реализованы в виде функций. Для каждого комплексного числа используется переменная типа объявленной структуры. Следует отметить, что обрабатывать комплексное число как структуру не самый рациональный подход, так как все математические операции с комплексными числами требуют от пользователя разработки дополнительного алгоритма решения. Также для программной обработки комплексных чисел можно определить свой тип данных, используя классы [3-5]. В них можно использовать перегрузку операторов, т.е. переопределить операции сложения, умножения и т.д. для своего типа данных. Пример программы с классом «комплексное число» на языке Pascal показан в [3], пример программы на С++ можно посмотреть в [4]. Более удобный вариант работы с комплексными числами – это применение встроенных инструментов современных языков программирования. Язык программирования C++ позволяет использовать встроенные алгоритмы работы с комплексными числами, которые объединены в библиотеку complex [2, 6]. Данную библиотеку необходимо подключить 280 совместно с библиотекой math.h. Объявление переменных следует начинать со служебного слова complex, далее в треугольных скобках объявляется тип переменной (int, float, double т.д), после чего указывается сама переменная. В консоли вводить комплексное число следует в круглых скобках через запятую. Простые операции, такие как сложение, вычитание, умножение, деление, возведение в степень, а также логические операции равенства, неравенства и сравнения выполняются точно так же, как и с обычными числами. Остальные операции реализованы при помощи функций [6]. Примеры реализации задач линейной алгебры с комплексными числами, такие как определение обратной матрицы, вычисление определителя, можно посмотреть в [2]. #include <iostream> #include <math.h> #include <complex> using namespace std; int main() {setlocale(LC_ALL, "Russian"); complex <double> x; //Описание комплексного числа cout<<" Введите комплексное число x="; cin>>x;//Ввод комплексного числа b //примеры использования функций для работы с комплексными числами cout<<"имеет действительную="<<real(x)<<"\t и мнимую часть ="<<imag(x)<<"\n"; cout << "модуль числа =" << abs(x) << "\t аргумент числа =" << arg(x) << "\n"; cout << "Сопряженное комплексное число для x = " << conj(x) << "\n"; //примеры математических операций с комплексными числами double a=3.1, b=-2.12; //формируем комплексное число y с действительной частью a и мнимой b complex <double> y(a,b); complex <double> z (-6.3,12.4); cout<<"Произведение комплексных чисел y*z="<<y*z<<endl; cout<<"x^2+sin(y)*ln(z)="<<x*x+sin(y)*log(z)<<endl; return 0; } Работа с комплексными числами реализована также в языке Fortran [7, 8]. В Fortran имеется встроенный комплексный тип данных – complex, complex(4), complex(8), double complex. В программе вначале следует объявить переменные типа complex, а затем можно выполнять с этими переменными арифметические действия и выполнять вычисления с помощью математических функций. Для решения задач линейной алгебры с комплексными числами можно складывать, умножать одномерные массивы комплексных чисел с помощью математических операторов, а также пользоваться встроенными функциями скалярного произведения векторов, матричного умножения матриц, транспонирования, вычисления суммы элементов, максимального и минимального элементов в массиве. Ниже приведен листинг программы обработки комплексных чисел. program Complex complex(4) :: a=(4.2,-1.1), b real :: a1=1.11, a2=2.22, r, fi, re, im re=real(a); im= aimag(a) print *, a print *,'Действительная часть: ', re, ', мнимая часть: ', im b=(exp(a)-sqrt(a))/sin(a); print *,'Расчет по формуле', b print *,'Сопряженное число ', conjg(a) b=cmplx(a1,a2) !конструктор комплексного числа print *, b r=abs(a); fi=atan2(im, re); print *, 'Модуль: ',r, ' , аргумент :', fi end program Complex Еще одна программа демонстрирует действия с матрицами комплексных чисел. На рис. 1 показан результат работы программы. program matrix complex :: a(2, 2), b(2, 2), c(2,2), s; integer j, i write(*,*)'Введите матрицу А(2,2)'; do i=1,2; read(*,*)(a(i,j),j=1,2); end do write(*,*)'Введите матрицу B(2,2)'; do i=1,2; read(*,*)(b(i,j),j=1,2); end do c=a+b; write(*,*)'A+B'; do i = 1, 2; write(*,*) a(i,:); end do c=matmul(a,b); write(*,*)'A*B'; do i = 1, 2; write(*,*) a(i,:); end do 281 s=sum(c); write(*,*) 'Сумма всех элементов матрицы :', s c=transpose(a); write(*,*)'A(T)'; do i = 1, 2; write(*,*) C(i,:); end program matrix endo do Рисунок 1 – Работа с матрицами комплексных чисел в Fortran Рассмотрим работу с комплексными числами на языке программирования Python. Python – универсальный язык программирования, который позволяет не только решать математические задачи, но и программировать визуальные приложения, управлять процессами в операционной системе и многое другое. Весь потенциал языка реализован в основном при помощи функций. Возможность обработки комплексных чисел также присутствует, причем большинство математических действий определены по умолчанию. Вводить комплексные числа в Python можно двумя способами: используя системную переменную «j» либо «J»; используя функцию complex(действительная часть, мнимая часть). Пример ввода показан на рис. 2. Тип переменных при вводе задается автоматически. Посмотреть, какого типа будет введенная переменная, можно при помощи функции type(переменная). Существует возможность вывести на экран действительную и мнимую часть комплексного числа при помощи функций real и imag, обращение к функциям осуществляется через точку. При помощи функции conjugate можно получить комплексно сопряженное к комплексному числу. В Python простые операции с комплексными числами, такие как сложение, вычитание, умножение и деление, выполняются по умолчанию и не требуют разработки дополнительных алгоритмов, также определены операции возведения в квадрат и нахождения модуля, сравнение при помощи операции ==. Рассмотрим на примере вышеперечисленные операции (рис. 3). Рисунок 2 – Ввод комплексных чисел. Рисунок 3 – Простейшие операции над комплексными числами Кроме того, существует и более расширенный перечень возможностей обработки комплексных чисел в Python, который реализуется путем подключения модуля cmath. После подключения данного модуля пользователю станут доступны функции преобразования алгебраического комплексного числа в тригонометрическую форму, логарифмические, тригонометрические и другие функции [9, 10]. Подключается модуль cmath при помощи команды import. После подключения обращение к модулю выполняется через точку (рис. 4). 282 Рисунок 4 – Использование библиотеки cmath. Также в среде Python можно формировать вектора и матрицы из комплексных чисел. К сожалению, базовый пакет Python не включает в себя средства обработки матриц, поэтому при необходимости производить сложение, умножение, использовать функции линейной алгебры и многое другое, необходимо дополнительно установить две ключевые библиотеки, такие как scipy и numpy. Один из способов установки библиотек – необходимо зайти на сайт [11] и скачать пакет Anaconda, который позволит в дальнейшем установить необходимые библиотеки. Для того чтобы подобрать необходимую версию программы, пользуйтесь подсказками на сайте. Установленный Ipython – это полный аналог Python, но имеет список расширенных возможностей. Если библиотеки установлены, то матрицы можно полноценно обрабатывать. Рассмотрим пример обработки нескольких матриц (рис. 5). Во-первых, перед началом ввода матриц и их обработки необходимо подключить библиотеку. Во-вторых, при использовании библиотеки меняется и способ ввода. Для ввода массива (матрицы) необходимо обратится к библиотеке используя символ «точка», указать что мы вводим именно массив (слово array), ввести массив. Если вводиться массив из комплексных чисел, то необходимо указать это следующей записью: dtype=np.complex. После проделанных действий пользователю становятся доступными операции сложения, умножения, деления, вычитания, а также, некоторые другие операции, реализованные в виде функций. Рисунок 5 – Подключение и использование библиотек numpy. Для того, чтобы получить возможность использовать возможности линейной алгебры необходимо подключить библиотеку, выполнив команду «from numpy.linalg import C*», где C*- функция, которую необходимо подключить. Для подключения доступны функции (табл. 1). 283 Таблица 1. Некоторые функции линейной алгебры Ipython. linalg.matrix_power(a,n) Возводит матрицу «a» в степень n linalg.cholesky(a) Разложение Холецкого linalg.gr(a[mode]) QR разложение linalg.svd(a[full_matrices, compute_uv) Сингулярное разложение linalg.eig(a) Собственные значения и собственные векторы linalg.norm(x,[org,axis]) Норма вектора или оператора linalg.cond(x[p]) Числа обусловленности linalg.det(a) Вычисление определителя матрицы linalg.slogdet(a) Знак и логарифм определителя linalg.solve(a,b) Решает систему линейных алгебраических уравнений Заключение В работе на примерах показаны возможности языков программирования Pascal, C++, Fortran и Python для реализации задач с комплексными числами. Современные языки программирования позволяют использовать как встроенные функции, так и создавать собственные алгоритмы обработки комплексных чисел. Для обработки комплексных чисел достаточно базовых знаний программирования. Одним из плюсов обработки комплексных чисел является возможность просматривать алгоритм решения задачи и формировать комбинированное решение в случае, если задача представлена сложным алгоритмом. По мнению авторов для реализации задач линейной алгебры с комплексными числами наиболее удобными языками являются С++ и Fortran. Литература 1. Е. Б. Александрова, Т. А. Свенцицкая, Л. Н. Тимофеева. Теория функций комплексного переменного: Учебное пособие/ Под редакцией Г. Г. Хамова. – СПб. : Изд-во РГПУ им А. И. Герцена, 2006. – 168 с. 2. Е. Р. Алексеев, О. В. Чеснокова. Самоучитель по программированию на C/С++. - Донецк.: ДонНТУ, 2013. - 289 с. 3. Е. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. Самоучитель по программированию на Free Pascal и Lazarus. – Донецк.: ДонНТУ, Технопарк ДонНТУ УНИТЕХ, 2011. - 503 с. 4. Алексеев Е. Р. Учимся программировать на Microsoft Visual C++ и Turbo C++ Explorer - М.: НТ Пресс, 2007. - 352 с.: ил. 5. Павловская Т. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2001.– 460 с. 6. http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/complex.h.html. – complex.h 7. Бартеньев О. В. Современный Фортран. - М.: ДИАЛОГ- МИФИ, 2000. - 449 с 8. http://www.fortran-online.info/index.html - Язык программирования Фортран (Fortran) 9. http://rus-linux.net/MyLDP/BOOKS/python.pdf - Г.Россум, Ф.Л.Дж.Дрейк, Д.С.Откидач, М.Задка, М.Левис, С.Монтаро, Э.С.Реймонд, А.М. Кучлинг, М.-А. Лембург, К.-П. Йи, Д. Ксиллаг, Х.Г. Петрилли, Б.А. Варсав, Дж.К.Ахлстром, Дж.Роскинд, Н.Шеменор, С.Мулендер. Язык программирования Python./ 2001. — 454c. 10. http://pythonworld.ru/samouchitel-python – Python 3 для начинающих URL 11. https://www.continuum.io – Continuum | Home Шевченко Т. Ф., Кучер Т. В. Работа с комплексными числами в языках программирования. Рассмотрены возможности современных языков программирования Pascal, C++, Fortran, Python при реализации задач с комплексными числами. Ключевые слова: программирование, комплексное число, структура, класс, Pascal, С++, Fortran, Python. Shevchenko T. F., Kucher T. V. Working with complex numbers in programming languages. Describes the possibilities of modern programming languages Pascal, C++, Fortran, Python with implementation of tasks with complex numbers. Keywords: programming, a complex number, structure, class, Pascal, C++, Fortran, Python 284 УДК 004.7 Методы размещения файлов в компьютерных сетях Ю.С. Юрко, Д.В. Бельков Донецкий национальный технический университет [email protected] Юрко Ю.С., Бельков Д.В. Методы размещения файлов в компьютерных сетях. В работе предлагаются новые методы для решения актуальной научной задачи оптимизации размещения файлов в компьютерных сетях (метод имитации отжига, муравьиный и генетический методы). Они могут быть использованы для повышения эффективности компьютерной сети на этапах ее проектирования и эксплуатации. Критерием оптимальности размещения файлов является суммарный поток локальных запросов, инициированных в узлах сети в единицу времени. С увеличением потока локальных запросов эффективность функционирования сети увеличивается за счет уменьшения времени отклика на запросы к файлам. В работе приведены результаты вычислительного эксперимента. Ключевые слова: файлы, узлы компьютерной сети, интенсивность запросов к файлам, методы распределения файлов по компьютерам. Введение Быстрое развитие информационных и коммуникационных технологий в современном мире привело к широкому распространению распределенных систем обработки данных на основе компьютерных сетей. Большой вклад в решение задач повышения эффективности функционирования компьютерных сетей внесли В.М. Глушков, А.А. Стогний, Е.Л. Ющенко, В.Н. Редько. Однако в связи с массовым распространением распределенных систем, работы в этом направлении не утрачивают актуальности и требуют дальнейшего развития. Одним из способов повышения эффективности функционирования компьютерных сетей является оптимизация размещения файлов. Поэтому задача оптимального размещения файлов по узлам сети имеет важное практическое значение. Эта задача относится к классу NР - трудных. Точные методы можно применять только для решения задач малой размерности. В случае большой размерности необходимо использовать приближенные методы. Поэтому актуальной является разработка новых методов размещения файлов [1-6]. Целью данной работы является повышение эффективности функционирования компьютерной сети за счет оптимизации размещения файлов. Задачи работы: 1. Разработать методы размещения файлов в компьютерной сети, которые позволяют уменьшить время решения этой задачи за счет исключения полного перебора вариантов решений. 2. Исследовать точность решений задачи распределения файлов, разработанными методами. Анализ работ по размещению файлов в компьютерных сетях свидетельствует, что для обеспечения эффективного функционирования распределенной системы необходимо рациональное размещение файлов по узлам компьютерной сети в зависимости от интенсивности запросов к ним. Наиболее рационально размещать файл в тот узел, который чаще других выдает запрос на его использование. Это позволяет существенно повысить эффективность функционирования сети за счет уменьшения нагрузки на каналы связи. Для статического размещения файлов по узлам компьютерной сети необходимо при фиксированных значениях интенсивностей запросов к файлам так распределить файлы по узлам компьютерной сети, чтобы время отклика сети было минимальным. Задача размещения файлов В данной работе для уменьшения времени отклика оптимизируется интенсивность информационного трафика. При функционировании сети в каждом узле образуются два типа запросов: сетевой запрос, для обработки которого необходим файл, не содержащийся в том узле, где возник запрос и локальный запрос, для обработки которого необходим файл, содержащийся в том узле, где возник запрос. Критерием оптимальности размещения файлов является суммарный поток локальных запросов, инициированных в узлах в единицу времени. Чем больше суммарный поток локальных запросов, тем меньше время отклика сети. 285 Обозначим: Fij - количество запросов к файлу i из узла j в единицу времени; X ij 1 , если файл i расположен в узле j, иначе X ij 0 ; Vi - объем файла i; B j - объем узла j, i=1...m, j=1…n. Для рационального использования памяти узлов целесообразно минимизировать объем их свободной памяти. Поэтому коэффициент заполнения узлов, равный отношению Vi / B j необходимо максимизировать. Задача размещения файлов по узлам компьютерной сети имеет вид: Целевая функция m n m n i 1 j 1 i 1 j 1 L FijVi X ij / B j Lij X ij max (1) Ограничения: n X ij {0,1} , X ij 1 , i=1...m (2) j 1 m Vi X ij B j (3) i 1 В задаче (1)-(3) необходимо найти матрицу размещений файлов X. В задаче максимизируется суммарный поток локальных запросов [6]. Увеличение потока локальных запросов связано с увеличением m n эффективности функционирования сети следующим образом. Пусть Fij - суммарная интенсивность всех i 1 j 1 m n m n m n i 1 j 1 i 1 j 1 i 1 j 1 запросов, Fij X ij - суммарная интенсивность локальных запросов, ( Fij Fij X ij ) - суммарная интенсивность сетевых запросов, R0 - среднее время выполнения сетевого запроса, X 0 - максимальная пропускная способность сети, R - среднее время отклика сети. Среднее время отклика на один запрос совпадает со средним временем ожидания обслуживания сетевого запроса. Оно состоит из среднего времени доступа к каналу связи и среднего времени выполнения запроса. Значение R определяется по формуле m n m n i 1 j 1 i 1 j 1 m n R R0 ( Fij Fij X ij ) / X 0 . Критерий Fij X ijVi / B j max задачи размещения файлов обеспечивает i 1 j 1 m n максимизацию значений Fij X ij и, следовательно, минимизацию значения R . i 1 j 1 Таким образом, максимизация интенсивности локальных запросов к файлам приводит к повышению эффективности функционирования сети за счет уменьшения среднего времени отклика на запросы к файлам. Известно [7], что интенсивность запросов к файлам в Internet меняется в пределах от 0 до 1000 запросов в 0, x k секунду и подчиняется вероятностному распределению Парето F ( x) P( X x) , где 1 (k / x) , x k , 2 P( X x) - вероятность того, что значение случайной величины X не превысит заданное число x. Параметр 1 1,5 . Большинство файлов находится в диапазоне 100–100000 байт. Распределение объемов файлов подчиняется вероятностному распределению Парето с параметром 2 1,1 . Вычислительные эксперименты по размещению файлов среди узлов сети проведены для случая E1 500 запросов в секунду, k1 (1 1) E1 / 1 166,67 запросов в секунду. Интенсивность запросов к i-му файлу из j-го узла вычислялась по формуле: Fij k1 /(1 )1 / 1 (запросов в секунду), где – случайная величина, равномерно распределенная на интервале (0;1), E2 50000 байт, k2 ( 2 1) E2 / 2 4545,46 (байт). Объем i-го файла вычислялся по формуле: Vi k2 /(1 )1 / 2 (байт), i=1,2,…,8; j=1,2,3. В ходе вычислительных экспериментов предлагаемыми в работе методами и методом полного перебора решается задача распределения m файлов среди n узлов сети, m=8, n=3. Для полного перебора требуется nm 38 6561 итерация, предлагаемые методы выполняют 1000 итераций. На каждой итерации формируется матрица размещение файлов, и вычисляется целевая функция (ЦФ) по формуле (1). Программы разработаны в среде Delphi. Метод имитации отжига В данном разделе для решения задачи размещения файлов предлагается алгоритм „Машина Коши” (МК), относящийся к классу методов имитации отжига. Алгоритм работает следующим образом. „Температура” T 286 изменяется по формуле T : T0 / , T0 =1000, 1,5 , - номер итерации. Вероятность выбора узла j для n размещения i-го файла вычисляется по формуле Pj : C j / C j , где C j j 1 1 , r – максимальное 1 exp{ Fij /(r T ) текущее значение ЦФ на очередной итерации. Первоначально r=1000. Узел выбирается по правилу рулетки. Если найденное решение не удовлетворяет условию (3) задачи, то оно отвергается. Результаты вычислительного эксперимента показаны на рис. 1. Получено строго оптимальное решение на 984 итерации. Рисунок 1. – Динамика поиска решений методом имитации отжига Муравьиный алгоритм В данном разделе для решения задачи размещения файлов предлагается алгоритм, относящийся к классу алгоритмов муравьиной колонии. Этот класс алгоритмов появился в результате исследований поведения живых муравьев. Муравей, двигаясь по определенному маршруту, оставляет за собой след пахнущего вещества (феромона). Такое вещество влияет на выбор маршрута: выбирается то направление движения, где уровень феромона больше. Самоорганизация муравьев обеспечивается взаимодействием следующих компонентов: случайность, многократность, положительная обратная связь, отрицательная обратная связь. Центральной идеей муравьиного алгоритма является накопление и использование статистических данных, собираемых искусственными муравьями [8]. Для решения задачи (1)-(3) в данной работе предлагается следующий алгоритм: Шаг 1. Присвоить переменной record первоначальное (небольшое) значение; Шаг 2. Присвоить переменной t значение 1; Шаг 3. While t t max Do Begin Шаг 4. For i:=1 to m do Begin Шаг 5. Сформировать вектор P(n) вероятностей размещения i-го файла в j-й узел. Шаг 6. Сгенерировать случайную величину g, распределенную по закону P(n); Шаг 7. Если условие j g j 1 и условие (3) задачи выполняются, то назначить i-й файл в j-й узел, иначе сгенерировать новое значение случайной величины g. End; Шаг 8. Вычислить значение целевой функции по формуле (1) и присвоить его переменной c_f; Шаг 9. If c_f > record then Begin Шаг 10. Присвоить переменной record значение переменной c_f и сохранить рекордное решение; End; Шаг 11. Присвоить переменной t значение t+1; End; Шаг 12. Вывести наилучшее решение и завершить алгоритм. Пусть j - количество феромона, накопленное очередным муравьем на маршруте j, – коэффициент испарения феромона, 0,01 , 0 – первоначальный уровень феромона, 0 0,01 , j уровень феромона на маршруте j. Вероятность размещения файла в узел j вычисляется по формуле: 287 Pj j Fj (4) n j F j j 1 При выборе узла p для размещения файла происходит увеличение значения p: p : (1 ) p p / ideal , значение переменной ideal должно быть одного порядка с оптимальным значением целевой функции. При переходе к очередной итерации алгоритма уровень феромона накапливается: n j : (1 ) j k / ideal . k 1 Результаты вычислительного эксперимента показаны на рис. 2. Получено строго оптимальное решение на 311 итерации. Рисунок 2. – Динамика поиска решений муравьиным методом Генетический алгоритм В данном разделе для решения задачи размещения файлов предлагается алгоритм, относящийся к классу генетических алгоритмов (ГА). Это стохастические эвристические оптимизационные методы. Они работают с совокупностью "особей" - популяцией, каждая из которых представляет возможное решение данной проблемы [9,10]. Для решения задачи (1)-(3) предлагается генетический алгоритм ГА, который выполняет поиск оптимального решения задачи с помощью постоянной эволюции предыдущего решения. При переходе от решения к решению применяются генетические операторы селекции, кроссинговера и мутации. В работе используется мультихромосомное представление решений задачи. Очередным решением является особь, мультихромосома которой показана в табл. 1. Она состоит из m хромосом и mn генов, где m – число файлов, n – число узлов, X ij {0;1} . Таблица 1. Мультихромосома (MH) особи X11 X12 X13 X14 X15 … X1n X21 X22 X23 X24 X25 … X2n … … … … … … … Xm1 Xm2 Xm3 Xm4 Xm5 … Xmn В ГА используются генетические операторы кроссинговера и мутации. Оператор кроссинговера производит обмен хромосомами между особями. Оператор мутации позволяет дать хромосомам-потомкам свойства, отсутствующие у родителей. Это позволяет алгоритму выходить из зоны локального экстремума. Выполнение кроссинговера показано в табл. 2а, 2б (две хромосомы особей поменялись местами). Выполнение мутации показано в табл. 3 (две хромосомы одной особи поменялись местами). 288 Таблица 2а. Две родительские особи (S и D) S11 S12 S13 S14 S15 … S1n S21 S22 S23 S24 S25 … S2n S31 S32 S33 S34 S35 … S3n S41 S42 S43 S44 S45 … S4n … … … … … … … Sm1 Sm2 Sm3 Sm4 Sm5 … Smn D11 D12 D13 D14 D15 … D1n D21 D22 D23 D24 D25 … D2n D31 D32 D33 D34 D35 … D3n D41 D42 D43 D44 D45 … D4n … … … … … … … Dm1 Dm2 Dm3 Dm4 Таблица 2б. – Результат кроссинговера Dm5 … Dmn S11 S12 S13 S14 S15 … S1n D21 D22 D23 D24 D25 … D2n S31 S32 S33 S34 S35 … S3n S41 S42 S43 S44 S45 … S4n … … … … … … … Sm1 Sm2 Sm3 Sm4 Sm5 … Smn D11 D12 D13 D14 D15 … D1n S21 S22 S23 S24 S25 … S2n D31 D32 D33 D34 D35 … D3n D41 D42 D43 D44 D45 … D4n … … … … … … … Dm1 Dm2 Dm3 Dm4 Таблица 3. – Результат мутации Dm5 … Dmn S11 S12 S13 S14 S15 … S1n S21 S22 S23 S24 S25 … S2n S41 S42 S43 S44 S45 … S4n S31 S32 S33 S34 S35 … S3n … … … … … … … Sm1 Sm2 Sm3 Sm4 Sm5 … Smn В предлагаемом ГА оператор селекции имеет три разновидности: 1) оператор селекции генов используется при формировании генов хромосом; 2) оператор селекции хромосом используется при выборе хромосом для выполнения кроссинговера и мутации; 3) оператор селекции особей используется при выборе родительских особей из популяции. 289 При формировании генов i-й хромосомы используется оператор селекции генов. Вероятность ij выбора j-го гена i-й хромосомы вычисляется, как отношение генной и хромосомной приспособленности по формуле (5): Lij Z ij (5) ij n Liq Z iq q 1 При формировании каждого гена i-й хромосомы разыгрывается случайная величина, подчиняющаяся распределению . Для этого используется следующая процедура: Шаг 1. 1 : 1 Шаг 2. For q:=1 to n-1 do Шаг 3. Begin q 1 : q q 1 End Шаг 4. : random Шаг 5. For q:=1 to n-1 do Шаг 6. Begin If q q 1 then X iq : 1 else X iq : 0 Шаг 7. End При выборе хромосом для выполнения кроссинговера и мутации используется оператор селекции хромосом. Вероятность i выбора i-й хромосомы вычисляется, как отношение хромосомной и мультихромосомной приспособленности по формуле (6): n Lij X ij i j 1 m n (6) Lrj X rj r 1 j 1 Пусть Yr 1 , если выбрана хромосома r, иначе Yr 0 . При формировании значений Yr генерируются случайные величины, подчиняющиеся распределению . Для этого используется процедура, аналогичная процедуре оператора селекции генов. При выборе из популяции родительских особей используется оператор селекции особей. Вероятность Pk выбора особи на k-й итерации вычисляется, как отношение индивидуальной и наилучшей приспособленности. Пусть CFk - значение целевой функции на k-й итерации, RCF - максимальное значение среди CFs , где m n s=1,2,…k. На каждой итерации целевая функция вычисляется по формуле: CF Lij X ij . Вероятность Pk i 1 j 1 вычисляется по формуле (7). Лучше приспособленные особи имеют большую вероятность стать родительскими. Pk CFk / RCFk (7) При выборе особи генерируется случайная величина, подчиняющаяся распределению Pk . Для этого используется такая же процедура, как и в операторе селекции генов. Реализация ГА предусматривает выполнение следующих действий: {Подготовительная часть} {Формирование первоначальной особи} Шаг 1. k:=1; Шаг 2. Случайным образом сгенерировать мультихромосому особи MH(k); Шаг 3. Вычислить значение CFk целевой функции особи MH(k); Шаг 4. RCF : CFk ; {Основная часть} {Цикл формирования популяции} Шаг 5. While k kmax Do Begin Шаг 6. Выполнить мутацию особи MH(k) и получить особь MH(k+1); Шаг 7. Вычислить значение CFk 1 целевой функции особи MH(k+1); 290 Шаг 8. If CFk 1 RCF then RCF : CFk 1 ; Шаг 9. k:=k+1; Шаг 10.Выполнить кроссинговер особей MH(k-1), MH(k) и получить особи MH(k+1) и MH(k+2); Шаг 11. Если условие (3) задачи выполняется, выполнить мутацию особей MH(k+1) и MH(k+2); Шаг 12. Вычислить значение CFk 1 целевой функции особи MH(k+1); Шаг 13. If CFk 1 RCF then RCF : CFk 1 ; Шаг 14. Вычислить значение CFk 2 целевой функции особи MH(k+2); Шаг 15. If CFk 2 RCF then RCF : CFk 2 ; Шаг 16. k:=k+2; Шаг 17. Выполнить оператор репродукции; End; Шаг 18. Вывести значения генов мультихромосомы с максимальной целевой функцией и завершить ГА. Результаты вычислительного эксперимента показаны на рис. 3. Получено строго оптимальное решение на 58 итерации. Рисунок 3 – Динамика поиска решений генетическим алгоритмом Выводы В работе предложены метод имитации отжига, муравьиный и генетический методы решения задачи размещения файлов в компьютерных сетях. Динамика работы алгоритмов показана на рис. 4. Рисунок 4 – Динамика поиска решений Предложенные методы могут быть использованы для повышения эффективности компьютерной сети на этапах ее проектирования и эксплуатации. Критерием оптимальности размещения файлов является суммарный поток локальных запросов, инициированных в узлах сети в единицу времени. В ходе вычислительных 291 экспериментов предлагаемыми в работе методами и методом полного перебора решена задача распределения m файлов среди n узлов сети, m=8, n=3. Для полного перебора требуется nm 38 6561 итерация, предложенными методами выполнено 1000 итераций. Получены следующие результаты. Строго оптимальное решение найдено методом имитации отжига на 984 итерации, муравьиным методом на 311 итерации, генетическим алгоритмом на 58 итерации. Перспективным направлением является исследование работы предложенных алгоритмов при решении задач большой размерности для определения точности и быстродействия. Литература Зиновьев Э.В., Стрекалев А.А. Методы управления сетевыми информационными системами. Рига: Зинатне, 1991. - 308 с. 2. Демидович О.В. Математичні моделі оптимального розподілу інформаційних ресурсів серед вузлів обчислювальних мереж та методи їх реалізації. Автореферат дисертації. Львів: 2001. – 20 с. 3. Цегелик Г.Г. Системы распределенных баз данных. Львов: Свит, 1990. - 167 с. 4. Тичковський Р.О., Цегелик Г.Г. Математичні моделі оптимального розподілу файлів серед вузлів обчислювальних мереж та методи їх реалізації. Третя Всеукраїнська конференція молодих науковців “Інформаційні технології в науці, освіті і техніці” (ІТОНТ – 2002). Черкаси: ЧДУ. – 2002. - С. 262-265. 5. Kurose J.F., Simha R. A microeconomic approach to optimal resource allocation in distributed computer systems. //IEEE Transactions on computers, № 5, 1989. - P. 705-717. 6. Бельков Д.В. Методы и вычислительные структуры для оптимизации размещения файлов в компьютерных сетях. Автореферат диссертации. Донецк: 2004. – 20 с. 7. Crovella M, Bestavros A. Self-Similarity in World Wide Web Traffic: Evidence and Possible Causes. //IEEE Transactions on Networking, № 12, 1997. - PP. 32-40. 8. Штовба С.Д. «Муравьиные алгоритмы» // Exponenta Pro. Математика в приложениях, № 4, 2003.- с. 70-75. 9. Гладков Л.А., Курейчик В.В., Курейчик В.М. Генетические алгоритмы. М.: Физматлит, 2006.– 320 с. 10. Емельянов В.В., Курейчик В.В., Курейчик В.М. Теория и практика эволюционного моделирования. М.: Физматлит, 2003.– 426 с. 1. Юрко Ю.С., Бельков Д.В. Методы размещения файлов в компьютерных сетях. В работе предлагаются новые методы для решения актуальной научной задачи оптимизации размещения файлов в компьютерных сетях (метод имитации отжига, муравьиный и генетический методы). Они могут быть использованы для повышения эффективности компьютерной сети на этапах ее проектирования и эксплуатации. Критерием оптимальности размещения файлов является суммарный поток локальных запросов, инициированных в узлах сети в единицу времени. С увеличением потока локальных запросов эффективность функционирования сети увеличивается за счет уменьшения времени отклика на запросы к файлам. В работе приведены результаты вычислительного эксперимента. Ключевые слова: Файлы, узлы компьютерной сети, методы размещения файлов. Jurko J.S., Belkov D.V. File allocation methods in computer networks. New methods for the decision of actual scientific task of optimization of file allocation in computer networks are offered in work (imitation of annealing method, ant method and genetic method). They can be used for the increase of efficiency of computer network on the stages of its design and exploitation. The total thread of the local queries initiated in the nodes of network in time unit is the criterion of optimum of file allocation. With the increase of thread of local queries is multiplied efficiency of functioning of network due to diminishment of response time upon requests to the files. The results of calculable experiment are presenting in work. Keywords: Files, nodes of computer network, file allocation methods. 292 СЕКЦИЯ «ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ТЕХНОЛОГИИ В ТЕХНИКЕ И БИЗНЕСЕ» УДК 681.3.06:378.1 Разработка Web ориентированного модуля А.А. Кравцова (Полякова), Ю.С. Старкова, Д.Ю. Терещенко Южный Федеральный университет [email protected] Кравцова(Полякова) А.А., Старкова Ю.С., Терещенко Д.Ю. "Разработка WEB ориентированного модуля". Работа посвящена проектированию web ориентированного модуля. В статье рассмотрена архитектура модуля и предложены алгоритмы работы пользователей. Отличительной особенностью данного обучающего модуля является внедрение блока интерактивных подсказок. Архитектура web ориентированного модуля в электронном обучающем модуле включает 6 основных блоков Блок интерактивных подсказок представляет собой систему вопросов внедренных в курс лекций с многоуровневыми подсказками. Применение разрабатываемого обучающего модуля позволит повысить эффективность процесса обучения, за счет использования современных интернет-технологий представления учебного материала и наличия интеллектуального блока многоуровневых подсказок. Ключевые слова: Web, модуль, архитектура, интернет-технологии, материал. Введение В современном обществе с каждым годом все более и более развиваются информационные технологии (ИТ). Можно с уверенностью сказать, что информационные технологии тесно переплетаются со многими сферами и областями знаний, так как по сути своей являются универсальным средством работы с информацией. Компьютерные технологии предлагают огромный спектр услуг, которые могут быть использованы в образовании: большое количество способов представления информации, мультимедиа технологии, глобальное пространство Интернет [1]. Образование в нашей стране также должно идти в ногу со временем, во-первых, чтобы поставлять на рынок труда квалифицированные, хорошо обученные кадры. Во-вторых, чтобы облегчить труд персонала самого учебного заведения, так как компьютеризация позволяет автоматизировать рутинную работу, такую как обработка многочисленных данных, определение средних показателей успеваемости, подведение итогов и выявление определенных закономерностей в качестве обучения. Таким образом, можно выявить актуальность работы, которая состоит во внедрении в образование новых технологий, повышающих качество полученных знаний [2]. Архитектура Web ориентированного модуля Архитектура ресурса – понятие, которое неразрывно связано с контентом и оптимизацией. Под архитектурой понимают систему организации файлов, страниц и просто информации, содержащейся на сайте. Если такой системы нет или она была составлена неправильно еще при создании ресурса, в дальнейшем это может серьезно усложнить жизнь посетителям системы [4-3]. В качестве базовых системообразующих признаков деления компьютерных обучающих систем по организации процесса управления выделяются: вид учебной деятельности (самостоятельная и аудиторная); дидактическое назначение. По дидактическому назначению компьютерные системы обучения делится на следующие виды: а) информационные, обеспечивающие прямой канал передачи; б) контролирующие, обеспечивающие обратный канал передачи; в) обучающие, обеспечивающие замкнутый цикл управления [5-6]. Общая архитектурная схема модуля, спроектированная согласно рекомендациям, представлена на рисунке 1. 293 Графический интерфейс преподавателя Графический интерфейс пользователя Блок управления образовательным контентом Блок обучения и контроля Блок интерактивных подсказок Блок анализа результатов обучения Личный профиль с результатами Блок работы с БД и сохранение результатов База данных модуля Рис. 1. Архитектура web ориентированного модуля Как видно из архитектуры в электронном обучающем модуле 6 блоков. Блок управления образовательным контентом - отвечает за лекционный и практически материал (текст, видео-лекции, презентации, задания, контрольные вопросы). Блок обучения – отвечает за предоставление обучаемому лекционного материала, практических занятий. Блок работы с БД и сохранения результатов – необходим для выполнения запросов в базу данных и для ведения журнала событий. Личный профиль с результатами – так называемая карточка обучаемого, в которой будут отражены все его результаты. Блок интерактивных подсказок – данный блок новшество модуля, при помощи которого блок анализа результатов будет оценивать работу обучаемого посредством специальных интерактивных заданий в курсе лекций. Для более детального описания, так же представлены модели работы преподавателя и обучаемого в обучающем модуле рис.2 и рис. 3. Как видно из алгоритма основные функции, выполняемые преподавателем это: редактирование курса; редактирование лекций; редактирование практических заданий; редактирование интерактивных подсказок; просмотра журнала результатов обучаемых. Отличительной особенностью данного обучающего модуля является внедрение блока интерактивных подсказок. Блок интерактивных подсказок представляет собой систему вопросов внедренных в курс лекций с многоуровневыми подсказками. 294 начало 1 авторизация 2 4 6 нет Редактировать лекции? нет Редактировать задания? да Журнал результатов да 3 5 Редактирование лекций Редактирование задания 7 Работа завершена? 8 да Выход из учетной записи нет конец Рис. 2. Модель работы преподавателя в модуле. Данная структура, основанная на подсказках, может быть представлена как многоуровневый процесс освоения деятельности. В нашей методике освоение деятельностью представлено следующими уровнями дозированной помощи: 1 уровень – стимуляция (виды), воспроизведение, работа по образцу; 2 уровень – намек (косвенная подсказка); 3 уровень – обращение внимания на условия задачи; 4 уровень – показ способа решения; 5 уровень – объяснение. 295 На чало 1 ав торизаци я 3 регистра ция 2 Существ ует? нет да 4 Выбор ку рса 5 Выбор лек ции 6 Просмотр лек ции 7 Конт роль зна ний С инт ера ктив ными подска зка ми 8 Просмотр результ атов 9 Обучение завершено? да нет 10 Выход и з учетной записи конец Рис. 3. Модель работы обучаемого в модуле. Представленные уровни подсказок были наполнены адекватной аудиовизуальной технологией – методическим. Рассмотрим пример выполнения задания с учетом выделенных уровней помощи. Подсказка первого уровня (стимуляция): текст условия задачи, картинка – визуализация условий задачи. Подсказка второго уровня (намёк): границы ситуаций. Разбейте задачу на кусочки. Подсказка третьего уровня (обращение внимания на условия задачи): маркером отмечаем границы задачи. Подсказка четвертого уровня (показ способа решения): границы и название каждой ситуации. Подсказка пятого уровня (объяснение): почему эти слова соответствуют данной ситуации [7]. Заключение В ходе проделанной работы были определены особенности функционирования Web ориентированного модуля для внедрения в процесс обучения. Разработана архитектура Web ориентированного модуля. Приведены модели работы обучаемого и преподавателя в модуле, представлено описание работы блока интерактивных подсказок, приведены схемы алгоритмов работы в обучающем модуле. Литература А.Э. Софиев. Компьютерные обучающие системы – Москва: Информационно-издательский дом «Филин». – 2007 2. Башмаков А.И. Разработка компьютерных учебников и обучающих систем – М.: Филинъ, 2003. – 616 с. – ISBN 5-9216-0044-X 3. Краснова, Г.А. Технологии создания электронных обучающих средств - 2-е издание, М.: МГИУ, 2009 4. Львов М. Электронные образовательные ресурсы - Режим доступа: http://kolpincentr.narod.ru/news/eor.htm, свободный 5. Готская И.Б. Аналитическая записка «Выбор системы дистанционного обучения» - Москва: Информационно-издательский дом «Филин». – 2005 6. Кречетников, К.Г., Особенности проектирования интерфейса средств обучения. - Информатика и образование. 2008. №4 с.65. 1. 296 7. Психологические особенности дистанционного обучения - Курсы дистанционного обучения ресурсы - Режим доступа: http://rudocs.exdat.com/docs/index-30080.html?page=3 свободный Кравцова (Полякова) А.А., Старкова Ю.С., Терещенко Д.Ю. "Разработка WEB ориентированного модуля". Работа посвящена проектированию web ориентированного модуля. В статье рассмотрена архитектура модуля и предложены алгоритмы работы пользователей. Отличительной особенностью данного обучающего модуля является внедрение блока интерактивных подсказок. Архитектура web ориентированного модуля в электронном обучающем модуле включает 6 основных блоков Блок интерактивных подсказок представляет собой систему вопросов внедренных в курс лекций с многоуровневыми подсказками. Применение разрабатываемого обучающего модуля позволит повысить эффективность процесса обучения, за счет использования современных интернет-технологий представления учебного материала и наличия интеллектуального блока многоуровневых подсказок. Ключевые слова: Web, модуль, архитектура, интернет-технологии, материал. Kravtsova (Polyakova) A.A., Starkova Y.S., Tereshenko D.Y "Development of WEB-based module".The work is dedicated to the design of web-based module. The article describes the architecture of the module and algorithms of the user experience. A distinctive feature of this training module is to introduce the Interactive tips. The architecture of web-based e-learning module to module includes 6 main blocks Block interactive prompts questions is a system embedded in a series of lectures with multi-level tips. Application of the developed training module will increase the efficiency of the learning process through the use of modern Internet technologies presentation of educational material and the availability of intelligent multi-level unit prompts. Keywords: Web, module architecture, internet technology, material. 297 УДК 004.853 Подходы и технологии BI и KM при проектировании информационноаналитических систем Д.В. Лещанов, В.В. Бова Южный Федеральный университет [email protected] Лещанов Д.В., Бова В.В. Подходы и технологии BI и KM при проектировании информационно-аналитических систем. Работа посвящена разработке инфраструктуры информационно-аналитической системы на основе технологий бизнес интеллекта и анализа данных и управления знаниями. В статье рассматривается комплексное проектное решение для создания информационно-аналитических систем управления знаниями (KM - Knowledge Management) и эффективного использования накопленной в компаниях информации для принятия обоснованных решений. Предлагаемая концепция проектного решения Enterprise Information Management в области создания систем управления знаниями, хранения и обработки консолидированной информации, включает в себя стратегию, методики, технологии и разработанные на их основе решения для интеллектуальной поддержки аналитической деятельности (BI - Business Intelligence), обеспечения информационного взаимодействия подразделений и пользователей информационно-аналитических систем предприятий и организаций. Ключевые слова: Информационно-аналитические системы, управление знаниями, технологии анализа данных, интеллектуальная поддержка аналитической деятельности. Введение За последние годы развития мировой экономики рыночная среда предприятий существенно изменилась: заметно повысилась ее динамичность, появилась «электронная прозрачность», а современные направления информационно-аналитической деятельности внутри предприятий и организаций становятся все более наукоемкими, принимая во внимание самые последние разработки и достижения в области искусственного интеллекта [1-3]. Эти изменения выдвигают новые требования к организации информационной структуры, управлению знаниями и бизнес-процессами предприятий. Главным условием коммерческого успеха в современных условиях является способность организации оперативно адаптироваться к изменениям рынка, а также формировать, накапливать и использовать интеллектуальный капитал [1, 2]. Широкое распространение интеллектуальных организационных сетей, стимулирующее интенсивный обмен информацией и знаниями между отдельными предприятиями-партнерами, актуализирует задачу разработки интеллектуальных информационных аналитических систем (ИАС) предприятий, основанных на архитектуре систем управления знаниям и объединяющих сетевые, объектно- и агентно-ориентированные технологии для задач аналитической обработки данных в стратегических, тактических и оперативных направлениях деятельности компаний [3-6]. В работе предлагается комплексное проектное решение в области разработки IT-инфраструктуры ИАС на основе методов и технологий аналитической деятельности (BI Business Intelligence) и управления знаниями (KM - Knowledge Management) для эффективного использования накопленной в компаниях информации в задачах поддержки принятия обоснованных управленческих решений. Подходы и технологии BI и KM Современная инфраструктура ИАС предприятий должна охватывать все стороны деятельности – планирование, производственные процессы, оперативную деятельность, поддержку принятия решений, учет и взаимодействие с заказчиками и партнерами. Базовыми принципами применения интеллектуальных технологий BI и KM – анализа данных и управления знаниями при создании инфраструктуры ИАС являются [2-5]: принцип оперативного управления (т.е. управление в реальном времени); принцип адаптивного управления (этот принцип обеспечивает динамическую адаптацию технологии управления с учетом изменения воздействия внешней и внутренней среды); принцип сквозного управления (этот принцип обеспечивает информационную поддержку полного цикла управления, включая сбор и анализ информации о состоянии объекта управления, моделирование и 298 прогнозирование его состояния, планирование управляющих воздействий, непосредственную поддержку принятия решений по их реализации, доведение решений до исполнителей и контроль исполнения); принцип сетевого управления (этот принцип позволяет реализовать взаимодействие «вертикальных» и «горизонтальных» линий коммуникации и потоков деятельности организации). Технологии BI и KM в области интеллектуального ведения и сопровождения бизнеса помогают извлекать и анализировать ценную информацию изо всех типов данных как из систем управления бизнесом, так и из внешних источников структурированной и неструктурированной информации. Аналитические инструменты BI используются для преобразования, хранения, анализа, моделирования и доставки информации в ходе работы над задачами, связанными с принятием решений на основе фактических данных. KM в широком смысле определяет [4,5]: процесс превращения данных в информацию и знания о бизнесе для поддержки принятия улучшенных и неформальных решений; информационные технологии (методы и средства) сбора данных, консолидации информации и обеспечения доступа бизнес-пользователей к знаниям; знания о бизнесе, добытые в результате углубленного анализа детальных данных и консолидированной информации. BI-платформа является одним из основных компонентов общекорпоративной инфраструктуры ИАС, поскольку она обеспечивает работу систем, решающих задачи доступа к корпоративной информации и поддержки принятия решений. IT-инфраструктура (информационная среда) ИАС должна быть построена на основе высокодоступной и эффективной архитектуры системы управления знаниями организации для обработки, управления, анализа и доставки информации (рис. 1). Рисунок 1 - IT-инфраструктура ИАС на основе технологий BI и KM На основе представленной архитектуры информационной среды ИАС, предполагающей наличие непрерывного потока информации и средств интеллектуального управления данными и знаниями, можно определить основные задачи разработки проектных решений в области управления знаниями и информацией в ИАС предприятий: управление структурированной и неструктурированной информацией, обеспечивающее возможность эффективной работы с неструктурированной информацией и любыми формами контента; интеллектуальное ведение и сопровождение бизнеса - помогает анализировать и извлекать ценную информацию, с целью принятия продуманных и качественных решений; интеграция данных обеспечивает интеграцию распределенной информации в разнородных средах и системах. 299 Архитектура проектного решения Enterprise Information Management Предлагаемая концепция Enterprise Information Management (EIM), наряду с имеющимся практическим опытом и наработанными решениями в области создания систем KM [5-9], хранения и обработки консолидированной информации, включает в себя стратегию, методики, технологии и разработанные на их основе решения (рис. 2) для интеллектуальной поддержки аналитической деятельности, обеспечения информационного взаимодействия подразделений предприятий и пользователей ИАС. Рисунок 2 - Структура проектного решения EIM Архитектура EIM определяет инфраструктуру и компоненты, необходимые для поддержки внедрения, эксплуатации и администрирования аналитических инструментов и приложений, а также связи этих компонентов. Архитектурное решение EIM состоит из двух слоев: инфраструктуры и прикладных сервисов (или функциональности). Инфраструктурный слой включает информационные ресурсы, среду хранения и обработки данных [1]. На этом слое данные собираются, интегрируются и становятся доступными. Хранилище метаданных является главным компонентом инфраструктурного слоя. Прикладные сервисы включают все аналитические инструменты и приложения, такие как механизмы запросов, анализа, генерации отчетов и визуализации, а также средства поиска и контекстного сотрудничества [9]. Отличительными особенностями EIM являются: поддержка многомерной модели данных; предоставление доступа пользователей к данным из множества различных гетерогенных источников; возможность аналитической обработки данных; возможность составления аналитических отчетов; полная поддержка процесса KDD (Knowledge Discovery in Databases); упрощенная разработка ETL-процессов; выгрузка данных в любых форматах; представление BI инструментов как сервиса. В качестве среды хранения и обработки информации используется Database Warehouse Manager, которая обеспечивает создание инфраструктуры многомерных хранилищ данных и витрин данных, образующих основу проектных решений информационной поддержки аналитической деятельности, а также позволяет управлять и организовывать доступ к данным. Комплексное решение EIM предназначено для построения ИАС компаний различных отраслей экономики и включает многофункциональные инструменты для: извлечения данных из различных источников, включая распределенные базы данных, структурированные и неструктурированные файлы; преобразования, очистки и загрузки информации в витрину данных; для формирования отчетности; интеллектуального анализа и визуализации данных. 300 Заключение Обоснована актуальность задачи разработки IT-инфраструктуры интеллектуальных ИАС предприятий, основанных на архитектуре систем управления знаниям и объединяющих методы технологии BI и KM для аналитической обработки данных в стратегических, тактических и оперативных направлениях деятельности компаний. Предложена концепция и архитектура проектного решения EIM для задач обработки информации и данных и стратегического анализа деятельности предприятий, обеспечивающая выполнение следующих функций: интеграция данных с целью получения единой и целостной картины бизнеса; автоматизация процесса обработки больших объемов информации; аналитическая обработка информации в режиме реального времени; высокоэффективный доступ к информации по требованию с использованием виртуальной интеграции данных. Решение EIM позволит предприятиям быстро преобразовывать данные в бизнес-знания. Это решение предназначено для бизнеса «по требованию» [1], в него встроены инструменты, которые помогают быстро развернуть аналитические Web-приложения. Литература 1. Бьер М. Интеллектуальное ведение и сопровождение бизнеса (Business Intelligence for the Enterprise): Пер. с англ. – М.: КУДИЦ-ОБРАЗ, 2005. – 240 с. 2. Курейчик В.В., Бова В.В., Лещанов Д.В. Интеграция проектных решений в корпоративных прикладных средах // Информационные технологии в науке, образовании и управлении IT + S&E`16.- 2016. С. 221-228. 3. Бова В.В. Модель поиска и анализа решений для управления знаниями в интеллектуальных информационных системах // Известия ЮФУ. Технические науки. 2013. № 7 (144). С. 120-125. 4. Kureichik V.V., Kravchenko Y.A., Bova V.V. Decision support systems for knowledge management // (2015) Advances in Intelligent Systems and Computing, 349, pp. 123-130. 5. Тузовский А.Ф., Чириков С.В., Ямпольский В.З. Системы управления знаниями (методы и технологии) / Под общ. ред. В.З. Ямпольского. – Томск: Изд-во НТЛ, 2005. – 260 с. 6. Запорожец Д.Ю., Кравченко Ю.А., Лежебоков А.А. Способы интеллектуального анализа данных в сложных системах // Известия КБНЦ РАН. 2013. – № 3. – С. 52-56. 7. Бова В.В. Концептуальная модель представления знаний при построении интеллектуальных информационных систем // Известия ЮФУ. 2014. – № 7 (156). – С. 109-117. 8. Морозова О.А. Интеграция корпоративных информационных систем: учебное пособие. – М.: Финансовый университет, 2014. – 140 с. 9. Бова В.В., Гладков Л.А., Кравченко Ю.А., Курейчик В.В., Кулиев Э.В., Лежебоков А.А., Запорожец Д.Ю., Нужнов Е.В., Родзин С.И. Семантически-ориентированный доступ к ресурсам знаний на основе технологий биоинспирированного поиска и дополненной реальности. – Таганрог: Издательство Южного федерального университета, 2016. – 148 с. Leshchanov D.V., Bova V.V. "Approaches of BI and KM technologies in the design of informationanalytical systems". The work is dedicated to the development of the infrastructure of information and analytical system based on technology of business intelligence and data mining, and knowledge management. The article deals with the complex design solution for the creation of information and analytical knowledge management systems (KM - Knowledge Management) and the effective use of information accumulated in the companies to make informed decisions. The proposed concept design solutions Enterprise Information Management in the field of knowledge management systems, storage and processing of consolidated information includes the strategy, methodology, technology, and based on them solutions for intellectual support analytical activities (BI - Business Intelligence), providing information exchange units and users of information-analytical systems of enterprises and organizations. Keywords: Information-analytical systems, knowledge management, data mining technology, intellectual support analytical work. 301 УДК 004.023 Решение задачи трехмерной упаковки модифицированным генетическим алгоритмом А.А. Лобкова, А.И. Секирин Донецкий национальный технический университет [email protected] Лобкова А.А., Секирин А.И. Решение задачи трехмерной упаковки модифицированным генетическим алгоритмом. В данной работе рассматриваются алгоритмы оптимизации загрузки транспортных средств. Рассмотрен модифицированный генетический алгоритм для решения задачи плотной упаковки. Ключевые слова: Генетический алгоритм, плотная упаковка, задача рюкзака. Введение В современном мире многие производственные процессы оптимизируются за счет применения интеллектуальных методов для решения различных задач. Одной из таких задач является погрузка товаров в транспортное средство, при которой появляется проблема разместить груз таким образом, чтобы он занимал как можно меньше места, или, иными словами, мы сталкиваемся с задачей об оптимальной упаковке, так называемой 3-х мерной задаче о рюкзаке. Таким образом, для задачи размещения блоков в транспортном средстве снижается расход на транспортировку грузов из-за более компактного распределения. Было установлено, что эта задача является NP-полной. Все точные алгоритмы, ¬ решающие задачу об упаковке, используют полный перебор всех возможных решений. В следствии чего, даже при небольшом количестве грузов, программа будет работать неприемлемо большое количество времени. Так же проблемой является набор дополнительных ограничений, которые должны быть выполнены при расстановке груза в заданном объеме. Таким образом, создание приближенных алгоритмов, которые за приемлемое время находят решение, близкое к оптимальному, с учетом дополнительных ограничений является актуальной задачей. [1] Анализ методов и алгоритмов В ходе анализа работ [2-10], посвященных созданию моделей и алгоритмов трёхмерной упаковки определено, что для решения подобных задач используют, в основном, эвристические подходы. Большинство из них базируется на декомпозиции исходной задачи и сведению ее к задачам меньшей размерности путем разбиения на слои и заполнением каждого слоя какой-либо эвристикой (генетический алгоритм, нейронные сети и т. д.). [2] В работах зарубежных авторов решение проблемы размещения грузов внутри транспортного средства встречается совместно с решением проблемы построения маршрутов, так называемая задача коммивояжёра. При решении транспортной задачи выделяется 2L-CVRP и 3L-CVRP. Задачи класса 2LCVRP рассматривают двумерное размещение объектов, 3L-CVRP (Three-Dimensional Loading Capacitated Vehicle Routing Problem) соответственно трехмерное. В ходе анализа работ была выделена работа М.В. Луцана и Е.В. Нужнова. В данной работе для решения поставленной задачи предлагается использование генетического алгоритма, основной целью которого является уменьшение суммарного объема пустот в описывающем параллелепипеде (ЦФ → 1). [5] Постановка задачи генетического алгоритма Дана область трехмерного пространства шириной W, длиной L и высотой H – контейнер для погрузки с открывающийся сзади частью размерами H×W для загрузки и разгрузки товаров. Также дано множество блоков N, i=1, 2…, n. Каждый i-й блок характеризуют три параметра – ширина (wi), длина (li) и высота (hi), также ориентация (поворот) в трехмерном пространстве. Каждый груз должен иметь форму параллелепипеда. Объемная фигура имеет 6 вариантов ориентации в пространстве, представленных на рисунке 1. В зависимости от ориентации фигуры в дальнейшем будут высчитываться координаты блоков. 302 Рисунок 1 – Ориентации блоков в пространстве Каждый упакованный блок характеризуется двумя координатами: <x1,y1,z1> и <x2,y2,z2>, где первыми записаны координаты нижнего левого угла (наиболее близкого к началу координат <0,0,0>), а вторыми – координаты с наибольшими значениями. Таким образом, решение задачи имеет вид S={si=(<x1i,y1i,z1i>, <x2i,y2i,z2i>) | i=1,2,…,n }. Существуют начальные ограничения к элементам, участвующим в алгоритме, которые должны проверятся до выполнения алгоритма: 1. Элементы могут иметь только форму параллелепипеда; 2. Упакованы могут быть только те блоки, которые проходят в дверной проем транспортного средства шириной W и высотой H; 3. Упакованы могут быть только те элементы, суммарный объем которых не превосходит объема контейнера для погрузки. Целевая функция В качестве функции оптимизации в данной задаче возьмем такую характеристику, как отношение объема упакованных грузов к объему контейнера. , (1) где vi – объем i-го элемента, V – объем области упаковки. Оценка критерия: следует стремиться к уменьшению суммарного объема пустот в описывающем параллелепипеде. (2) Соответственно, чем плотнее упакованы грузы в контейнер, тем ближе значение целевой функции к единице. Суммируются объемы только тех ящиков, которые могут быть упакованы в контейнер. Представление хромосомы Данная задача представляет собой последовательное размещение трехмерных блоковпараллелепипедов в трехмерном пространстве. Для кодирования хромосомы используем 3 значения <k i, ai, bi>, где ki – номер блока, ai – ориентация блока в пространстве, bi – флаг вхождения блока в план погрузки. Длина хромосомы определяется числом блоков, предназначенных для упаковки. Последовательность генов хромосомы декодируется в последовательность заполнения контейнера блоками. Процесс декодирования хромосомы представляет собой моделирование процесса загрузки грузов в ТС. Для этого используется эвристика «нижнего левого», представленная на рисунке 2. 303 Рисунок 2– Эвристика «нижнего левого» Эта эвристика заключается в следующем: существует список точек с возможными координатами размещения блоков. Каждый блок имеет несколько точек возможного расположения. Загрузка начинается с дальнего нижнего левого угла контейнера. То есть первый блок всегда ставится в точку с координатами (0, 0, 0). Точкой размещения блока является его угол с наименьшими координатами, назовем его «нижний левый». После размещения первого блока из списка возможных положений удаляется координата только что размещенного блока (для первого блока это нулевая точка) и добавляется набор координат углов этого блока. На рисунке 3 они изображены черными точками. При размещении следующего блока все возможные точки размещений сортируются по возрастанию координат в порядке: Z, Y, X, и выбирается первая из этого списка. По всем возможным точкам размещения блоков производится проверка возможности упаковки. Упакованным блоком считается тот блок, который удовлетворяет следующим условиям[12]: Каждый блок лежит на дне контейнера или на верхней части другого блока. Для блоков, у которых координата высоты (Z) нижней стороны больше 0, проверяется, что блок не находится в «воздухе», все его 4 нижние угловые точки лежат на верхних сторонах других блоков: (3) где xi – координата xi-го блока, W – его ширина, n – число блоков, R – прямоугольник, образованный верхней стороной j-го блока. Аналогичная проверка проводится для остальных 3 координат нижних углов блока Ни один блок не выходит за границы заданного объема: x1i ≥ 0; y1i ≥ 0; z1i ≥ 0; x2i ≤ W; y2i ≤ L; z2i ≤ H. (4) Блоки не налагаются друг на друга в объеме: (x2i ≥ x1j & y2i ≥ y1j & z2i ≥ z1j) ∨ (x2i ≤ x1j & y2i ≥ y1j & z2i ≥ z1j) ∨ (x2i ≥ x1j & y2i ≤ y1j & z2i ≥ z1j) ∨ (x2i ≥ x1j & y2i ≥ y1j & z2i ≤ z1j) ∨ (x2i ≤ x1j & y2i ≤ y1j & z2i ≥ z1j) ∨ (x2i ≥ x1j & y2i ≤ y1j & z2i ≤ z1j) ∨ (x2i ≤ x1j & y2i ≥ y1j & z2i ≤ z1j) = 1 ∀ i ≤ n, j ≤ n (i≠j). Алгоритм погрузки представлена на блок-схеме ниже. 304 (5) начало i 0 + n - конец i≠0 Сортируем массив возможных точек Устанавливаем блок в точку (0,0,0) Цикл по возможным точкам Ро – возможная точка Исключаем блок из плана погрузки Расчет точки Р1 Проверка дна блока Проверка на границы контейнера Проверка на пересечение блоков - + Удовлетвор яет Рисунок 3 – Блок-схема погрузки Операторы отбора и скрещивания В качестве оператора отбора родителей для скрещивания используется метод ранжирования. А именно линейное ранжирование, где вероятность отбора определяют следующим выражением: Ps (ai) = 1 i 1 a a b , N N 1 (6) где 1 ≤ a ≤ 2 выбирается случайным образом; b = 2 – a; N – мощность популяции; i – номер особи в упорядоченном списке. В качестве оператора кроссинговера в данной работе используется порядковый кроссинговер (order (OX)). Он также используется для решения задачи коммивояжёра. ОХ – строит потомков, выбирая кусок из одного родителя, остальные города – из другого, соблюдая очередность городов. Оператор мутации Для данной работы был разработан оператор мутации, который работает следующим образом: 1. В хромосоме случайным образом определяется позиция гена, который будет подвержен мутации. 2. Меняется значение ориентации данного гена случайным значением от 1 до 6. 305 Выводы В результате работы были собраны и изучены материалы по вопросам, связанным с трехмерной упаковкой товаров. Были исследованы применяемые методы и алгоритмы оптимизации погрузки грузов в транспортные средства. Был разработан модифицированный генетический алгоритм для плотной упаковки на основе эвристике «нижнего левого». Литература 1. Лобкова А.А., Секирин А.И. Алгоритмы оптимизации загрузки транспортных средств. Международная научно-техническая конференция студентов и молодых учёных Компьютерная и программная инженерия». 2. Корчевская О.В. Диссертация «Информационные модели и методы решения задач ортогонального раскроя-упаковки на основе конструктивных и нейросетевых подходов». СГТУ, 2009г. – 147с. 3. Курейчик В.В., Заруба Д.В., Запорожец Д.Ю. «Применение генетического алгоритма решения задачи трехмерной упаковки», «Известия ЮФУ. Технические науки»,2012г. - 264с. 4. Александрова О.А., Секирин А.И., «Оптимизация грузовых перевозок с использованием генетических алгоритмов», ДонНТУ, 2009г. 5. Луцан М.В., Нужнов Е.В. Решение задачи трехмерной упаковки с палетированием контейнеров. Известия ЮФУ. Технические науки. – 2014. – № 7 (156). – С. 196-204. 6. Нужнов Е.В., Барлит А.В. Трехмерная упаковка на основе эвристических процедур. Известия ТРТУ. – 2002. – № 3. – С. 95-101. 7. Псиола В.В. Диссертация «Об одном приближении плотной упаковки». МГУ имени М.В. Ломоносова, 2011г. -143с. 8. Заруба Д.В., Запорожец Д.Ю., Кравченко Ю.А. Использование методов эволюционной оптимизации для решения задач трехмерной упаковки. Информатика, вычислительная техника и инженерное образование. 2012. - №2 (9). 9. Кощеев И.С. Диссертация «Оптимизация доставки груза потребителям с учетом его размещения внутри транспортных средств на основе эвристических методов». Уфимский государственный авиационный технический университет, 2015г. -133с. 10. Gilmanova N. A., Bronshtein E. M. Three-dimensional loading vehicle routing problem solution with setpartitioning-based method. Вестник Уфимского государственного авиационного технического университета Выпуск № 6 / том 17 / 2013 Лобкова А.А., Секирин А.И. Решение задачи трехмерной упаковки модифицированным генетическим алгоритмом. В данной работе рассматриваются алгоритмы оптимизации загрузки транспортных средств. Рассмотрен модифицированный генетический алгоритм для решения задачи плотной упаковки. Ключевые слова: Генетический алгоритм, плотная упаковка, задача рюкзака. Lobkova A.A., Sekirin A.I. The decision of the three-dimensional packing problem modified genetic algorithm. In this paper, we consider algorithms to optimize vehicle loading. Considered a modified genetic algorithm for solving dense packing problem. Keywords: Genetic algorithm, dense packing, knapsack problem 306 УДК 002.53:004.89 Когнитивная архитектура агентов Ю.С. Старкова, Н.В. Кулиева, Ю.А. Кравченко Южный Федеральный университет [email protected] Старкова Ю.С., Кулиева Н.В., Кравченко Ю.А. "Когнитивная архитектура агентов". В статье рассматриваются разработка самоорганизуемой когнитивной архитектуры агентов основанная на предикативной теории для реализации в мультиагентных системах механизмов обучения. Использование когнитивной архитектуры агентов для мультиагентных систем имеет множество преимуществ по отношению к задачам интеллектуального анализа данных. Внутренняя многослойная структура каждого агента состоит из компонентов, которые могут быть оценены и использованы для нахождения оптимальной организации поведения в течение жизни агента. Основная цель заключается в том, чтобы агент в автоматическом режиме мог настраивать свою собственную структуру поведения. Ключевые слова: когнитивная архитектура, мультиагентная система, систем машинного обучения с подкреплением, метаобучение, интеллектуальный агент, программирования с экспрессией генов Введение Принципы когнитивной организации интеллектуальных систем тесно связаны с мультиагентным разделением функций в многоклеточном организме. Когнитивные центры в искусственной интеллектуальной системе должны представлять собой активных агентов, взаимодействующих друг с другом на основе принципов коллективной оптимизации параметров, критичных для сохранения целостности всей системы, ее выживаемости [1]. Использование когнитивных архитектур агентов интеллектуальных мультиагентных систем (МАС), связанных с решением задач интеллектуального анализа данных, является актуальным и имеет множество преимуществ, основными из которых являются распределенная и параллельная природа мультиагентной системы [2]. Возможность распараллеливать сложные, требующие большой производительности, задачи позволяет повысить эффективность методов решения задач интеллектуального анализа данных. Расширяемость системы обуславливается взаимосвязью различных частей системы. Это позволяет пользователям легко добавлять свои собственные компоненты и повторно использовать реализованные компоненты для различных наборов данных. Для разработки МАС используются следующие сценарии обработки наборов данных [3]: в общем случае, когда пользователь знает, какой метод и какие входные параметры для данного метода необходимо использовать; если пользователь знает, какой из методов необходимо использовать, но не знает, какие параметры устанавливаются, то система ищет пространство входных параметров метода и предлагает тот набор, который обеспечивает наилучшие результаты; если пользователь не знает, какой из методов необходимо использовать, то система предлагает наилучший метод или предоставляет ряд методов, выбор которых основан на прогнозировании ошибок и продолжительности выполнения. Для двух последних сценариев в системе используются собственные интеллектуальные функции обучения, которые могут быть модифицированы. В статье предлагается многослойная самоорганизуемая когнитивная архитектура агентов, использующая общий алгоритм метаобучения, для повышения эффективности механизмов обучения агентов МАС. 307 Когнитивная архитектура агентов Когнитивные архитектуры (КА) представляют собой основу для интеллектуальных агентов, а под термином архитектура предполагается подход, при котором моделируется не только поведение, но и внутренняя структура. КА моделирует познание в целом, а не отдельные его механизмы [4]. Для многоагентной системы предложена многослойная архитектура когнитивных агентов, основанная на предикативной теории [5]. Предикативная архитектура разделяется на слои. Каждый слой предоставляется в системе как набор предварительно установленных поведений агентов, где более высокие уровни основываются на более низких уровнях, для создания сложных моделей поведения. Возможность самоорганизации агента достигается путем изменения его поведения и количества слоев с использованием многоуровневого обучения. Это означает, что каждый агент имеет искусственный процесс эволюции, который отвечает за определение многослойной структуры. Существует два принципа использования многоуровневого обучения [6]: 1. Многоуровневое обучение предназначено для предметных областей, которые являются слишком сложными для отображения с сенсоров агентов на их выходы. Вместо этого использование многоуровневого обучения заключается в разбиении на несколько уровней характеристик и использования систем машинного обучения с подкреплением (СМОП) на каждом уровне. Многоуровневое обучение использует поэтапный подход «снизу вверх» к иерархической декомпозиции задачи. 2. СМОП используются в качестве основополагающей части многослойного обучения, для использования данных в целях обучения или адаптации системы в целом. На рисунке 1 показана модифицированная когнитивная архитектура, основанная на принципах категоризации. Селекция поведений Обмен знаниями кроссинговер Идентификация наборов поведений Генерация новых знаний Программирование с экспрессией генов (GEP) Блок выбора модели поведения Описание предикатов Оператор рекомбинации Оператор мутации Мотивационный уровень XCS ... NLS Поведение 4 Поведение 3 LCS Поведение 2 AIS Поведение 1 другие системы XCS – система расширенной классификации СНО – система нейросетевого обучения LCS – система обучения по классификатору AIS – искусственная иммунная система Рисунок 1 – гибридная архитектура когнитивных агентов 308 Получение новых знаний Слой обработки Сенсорные входы Управление процессом категоризации Управление иерархией предикатов Оператор транспозиции механизм агрегации Оператор кроссинговера Поведение n Слой гибридного обучения Блок эволюции поведений системы машинного обучения Слой эволюции и выбора модели поведения Блок управления наборами поведений Каждый слой соединен с системой машинного обучения с подкреплением в случайном порядке. СМОП имеют схожий интерфейс и цель, независимо от того, какая из них связана с каждым слоем. После обучения, поведение каждого агента записывается в набор поведений соответственно его типу, где применяется механизм эволюции так, что каждое поведение агентов изменяется не только локально, но и развивается глобально, для использования агентами из следующей популяции. Блок эволюции основан на алгоритме программирования с экспрессией генов (GEP) [7], который отвечает за самоорганизацию агентов, определение количества слоев, их поведение, связи и иерархию между агентами и т.д. 1) Слой гибридного обучения. Все уровни в многоуровневой архитектуре связаны с одной СМОП, так, что каждый агент сможет использовать полученные знания в созидательных целях. Каждый агент «обучается» независимо и параллельно, через взаимодействие с окружающей средой, создавая внутренние представление, правила и накапливает общие знания. Этот механизм СМОП способствует повышению надежности, отказоустойчивости, использованию биоинспирированных методов, адаптивности и не требует определения предшествующих знаний (неконтролируемое обучение). 2) Эволюционный слой и слой выбора модели поведения. Внутренняя многослойная структура каждого агента разбивается на компоненты, которые могут быть оценены и использованы для нахождения оптимальной организации поведения в течение жизни агента. Основная цель заключается в том, чтобы агент в автоматическом режиме самостоятельно мог настраивать свою собственную структуру поведения. GEP использует два набора [7]: функциональный и терминальный (конечный). Функциональный набор состоит из функций: AND, OR, NOT, IFMATCH, INHIBIT, SUPRESS и AGGREGATE. Функции AND, OR и NOT это логические операторы, используемые для группировки и исключения подмножества элементов. Условная функция IFMATCH является предикатом, который соответствует определенной проблемной ситуации. Терминальный набор состоит из набора поведений и уровней мотивации. Выбор модели поведения зависит от уровня мотивации агента, который моделируется на основе «настроения» когнитивного агента. «Настроение» агента продолжает непрерывно изменяться с течением времени до тех пор, пока агент взаимодействует с внешней средой. Все агенты имеют полигенную хромосому, каждая хромосома имеет набор генов, где каждый ген представляет собой предикат, например, агент имеет набор поведений (генов), как часть своего генотипа, и каждое из них применяется в зависимости от ситуации [8-9]. Каждый ген представляется в дереве, а затем применяется набор генетических операторов (селекция, мутация, транспозиция, двухточечная рекомбинация) для генов агента [8-9]. Для каждого набора поведений применяется вероятностный метод выбора моделей поведения с наилучшими показателями приспособленности для использования агентами следующей популяции. Затем генетический оператор кроссинговера применяется для каждой пары выбранных поведений: выбирается часть знаний, полученных каждым агентом и меняется местами с другой. Наконец, генерируется максимальное количество поведений, которое агент может иметь в своей базе знаний, и создается новый набор поведений для агентов следующей популяции. Заключение Использование когнитивных архитектур агентов интеллектуальных мультиагентных систем, связанных с решением задач интеллектуального анализа данных, является актуальным и имеет множество преимуществ, основными из которых являются распределенная и параллельная природа мультиагентной системы. В статье предлагается многослойная архитектура когнитивных агентов, где каждый слой предоставляется в системе как набор предварительно установленных поведений агентов, где более высокие уровни основываются на более низких уровнях, для создания сложных моделей поведения. Литература 1. Нагоев З.В., Денисенко В.А. Синтез интеллектуального поведения агента на основе рекурсивной когнитивной архитектуры // Программные системы и вычислительные методы, 2013. – № 4. – С. 323-329. 2. Запорожец Д.Ю., Кравченко Ю.А., Лежебоков А.А. Способы интеллектуального анализа данных в сложных системах // Известия КБНЦ РАН. 2012. – № 3. – С. 52-57. 3. Дуккардт А.Н., Шауцукова Л.З., Бова В.В. Использование моделей коллективного поведения для решения задач распределенного искусственного интеллекта // Известия КБНЦ РАН. 2013. – № 4 . – С. 14-20. 4. Nagoev Z.V. Multiagent recursive cognitive architecture. Biologically Inspired Cognitive Architectures 2012. Proceedings of the third annual meeting of the BICA Society, in Advances in Intelligent Systems and Computing series, Springer. 2012. – Pp. 247-248. 309 5. Бова В.В., Дуккардт А.Н., Нагоев З.В., Токмакова Д.Г. Метод формального представления семантики естественного языка на основе мультиагентной рекурсивной когнитивной архитектуры // Известия КБНЦ РАН. Нальчик: Издательство КБНЦ РАН. 2014. 6. Курейчик В.М., Писаренко В.И. Кравченко Ю.А. Технология многоаспектного аналитического исследования как метод машинного обучения // Открытое образование, 2008. – №2. – с. 11-17. 7. C. Ferreira, Gene Expression Programming: A new adaptive algorithm for solving problem // Complex System, 2001. – Vol. 13– Pp. 87-129. 8. Kureichik, V.V., Zaruba, D.V. The bioinspired algorithm of electronic computing equipment schemes elements placement // Advances in Intelligent Systems and Computing, 347, 2015. – pp. 51-58. 9. Zaporozhets, D.U., Zaruba, D.V., Kureichik, V.V. Representation of solutions in genetic VLSI placement algorithms // Proceedings of IEEE East-West Design and Test Symposium, 2014. – EWDTS 2014. Старкова Ю.С., Кулиева Н.В., Кравченко Ю.А. "Когнитивная архитектура агентов". В статье рассматриваются разработка самоорганизуемой когнитивной архитектуры агентов основанная на предикативной теории для реализации в мультиагентных системах механизмов обучения. Использование когнитивной архитектуры агентов для мультиагентных систем имеет множество преимуществ по отношению к задачам интеллектуального анализа данных. Внутренняя многослойная структура каждого агента состоит из компонентов, которые могут быть оценены и использованы для нахождения оптимальной организации поведения в течение жизни агента. Основная цель заключается в том, чтобы агент в автоматическом режиме мог настраивать свою собственную структуру поведения. Ключевые слова: когнитивная архитектура, мультиагентная система, систем машинного обучения с подкреплением, метаобучение, интеллектуальный агент, программирования с экспрессией генов Starkova Yu. S., Kulieva N.V., Kravchenko Y.A. Cognitive architecture of agents. The article discusses the development of self-organized cognitive architectures of agents based on subsumption theory for the realization in multi-agent systems the mechanisms of learning. Using cognitive architecture of agents for multi-agent systems has many benefits in relation to the data mining tasks. Inner multilayer structure of each agent consists of components that can be evaluated and used to find the optimal organization of behavior during the life of the agent. The main goal is that the agent can automatically configure its own behavior structure. Keywords: cognitive architecture; multi-agent system; reinforcement machine learning system, intelligent agent, gene expression programming 310 СЕКЦИЯ «СИСТЕМЫ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА» УДК 004.932.2 Применение алгоритмов таксономии для задач построения панорамных изображений В.А. Гуляев, Д.М. Бочаров Донецкий национальный технический университет [email protected] Гуляев В.А., Бочаров Д.М. Применение алгоритмов таксономии для задач построения панорамных изображений. Предложен новый принцип создания панорамных изображений с использованием алгоритмов таксономии. Разработан алгоритм соединения двух фотоснимков в панораму используя алгоритмы таксономии, рассмотрены частные случаи, которые могут возникнуть в процессе работы алгоритма и описаны возможные варианты по его оптимизации. Проанализирована сложность выполнения этого алгоритма. Ключевые слова: панорама, таксономия, алгоритмизация, распознавание изображений, нахлёст, словарь примитивов Введение Слово «панорама» впервые было применено в 18 веке Робертом Баркером в названии своей картины «Панорама Эдинбурга». Данная картина состоит из нескольких картин, сложенных последовательно друг с другом в таком порядке, который позволяет увидеть круговой обзор города, развернутый на плоскость. Помимо невероятных эстетических качеств эта и подобные ей картины являются уникальной возможностью посмотреть на некоторые исторические места глазами художника, причём не просто в виде 2D проекции, а с обзором на 360 градусов, что без сомнений является очень ценным источником информации для ученых. Тот же самый принцип положен и в процесс создания панорамных фотографий, который на данный момент является необходимой функцией любого современного мобильного устройства. Однако идею создания очереди картин, которую использовал Роберт Баркер, невозможно применить в цифровом устройстве – программное обеспечение должно само находить общие элементы изображений и на их основании создавать очередь фотографий. Чаще всего в подобных программных продуктах применяется алгоритм попарного сравнения распознанных объектов и методы складывания изображения, основанные на сложных математических вычислениях. Целью исследования является разработка альтернативного алгоритма поиска схожих элементов для составления панорамных изображений, оценка сложности его реализации и выполнения, сравнение его эффективности с уже использующимися алгоритмами. Задача данного исследования заключается в создании и описании алгоритма сравнения двух изображений, используя известные алгоритмы таксономии. Актуальность данной работы состоит в том, что она позволяет использовать базовые навыки, связанные с анализом данных, для решения проблем, которые обычно решаются более сложными математическими методами, и, следовательно, повысить доступность технологии создания панорамных изображений. Описание работы алгоритма Допустим, существуют две фотографии, которые сделаны с «нахлёстом», т.е. у каждой из них есть некоторый процент кадра, который присутствует как на первой фотографии, так и на второй. Рассмотрим тот случай, когда камера не движется ни по какой оси, только вращается по оси проходящей через неё и перпендикулярной кадру. Примером тому могут служить специальные устройства для создания панорамных изображений, закрепленных на штативе, например, Manfrotto 303 или 303SPH. В этом случае получается ситуация, которая изображена на рисунке 1. 311 4682мм 3750мм Нахлёст Камера Ф. 1 Ф. 2 Рисунок 1 – Процесс фотографирования двух изображений для панорамы, вид сверху В общем случае можно рассматривать также и тот вариант, когда камера может немного смещаться в пространстве – это особенно актуально для камер, не закрепленных на штативе, что является обычным случаем для пользователей мобильных устройств, однако, разработанный алгоритм позволяет допустить подобную погрешность. Поскольку в разработанном алгоритме делается упор именно на то, как сопоставлять изображения, подробности некоторых этапов будут опущены. В данной статье, слова, которые выделены курсивом, подразумевают, что значения количественных параметров, на которые они указывают, являются открытым вопросом. Они могут задаваться либо пользователем, либо быть заранее вычисленными константными значениями. Эти значения определяются как аналитически, так и путём внедрения нейронной сети с учителем, который бы мог регулировать насколько полученное панорамное изображение соответствует действительности. Алгоритм соединения двух изображений состоит из описанных ниже этапов. 1. Распознавание примитивов на изображениях. На данном этапе подразумевается наличие некоторого словаря примитивов и алгоритма их поиска на изображении [1-4]. На рисунке 2 приведен пример распознавания примитивов на фотоснимке учебной аудитории. Рисунок 2 – Пример распознавания примитивов на изображении 2. 3. Кластеризация распознанных примитивов на изображениях одним из алгоритмов таксономии с одинаковыми параметрами [5]. На этом этапе необходимо использовать распознанные объекты без деления по примитивам, это позволит добиться более качественной таксономии. Попарное сравнение кластеров. Если кластеры по своему количественному и качественному составу равны или почти равны, следует определить и сохранить для дальнейшего рассмотрения вектор между центрами кластеров в одном из заранее выбранных направлений (слева направо или справа налево). Следует отметить, что чем выше разбиение на кластеры, тем больше векторов может получиться. Это обусловлено и тем, что самих кластеров станет больше, и такими ситуациями, когда два кластера с примерно одинаковыми элементами на самом деле относятся к 312 разным объектам на исходных фотоснимках. Такие векторы в дальнейшем будут называться побочными. Пример такого случая изображен на рисунке 3. а с d c 7 5 1 l a 2 l t 1 a 2 t 1 l Изображение 1 Изображение 2 a t 2 1 Рисунок 3 – Пример побочного вектора 4. Выделение группы векторов и сравнение их количества с общим числом векторов. На данном этапе возможен один из двух подходов. Подход первый – провести модифицированную таксономию для этих векторов. Необходимо выбрать один из существующих алгоритмов таксономии (или использовать тот, который был применен на этапе 2) и модифицировать его таким образом, чтобы допустить возможность неудачной кластеризации, то есть все вектора находятся достаточно близко к друг другу что исключает необходимость выделения нескольких кластеров. Этого можно достичь, например, задав начальный радиус достаточно большим и ограничив число итераций (применимо к алгоритмам семейства FOREL). Подход второй – попарно сравнить каждый из векторов. Векторы, которые примерно совпадают почти со всеми остальными занести в массив векторов. В каждом случае, если число векторов в найденной группе достаточно велико в сравнении с общим количеством найденных векторов, допускается возможность объединения изображений, иначе алгоритм прекращает свою работу. На рисунке 4 показан пример того, что программа должна выделить из группы векторов если условно принять для графика, что все векторы начинаются в точке начала координат. y x Рисунок 4 – Пример выделения группы векторов 5. 6. В найденной группе векторов определить вектор смещения одного изображения по отношению к другому. В общем случае можно рассчитать вектор смещения как среднее арифметическое всех векторов группы, но для повышения точности смещения можно найти в группе векторов по крайней мере два совпадающих. В таком случае можно допустить, что при распознавании объектов в других кластерах один или несколько были распознаны иначе или вообще не распознаны, т.е. сослаться на погрешность. По вектору смещения соединить 2 изображения. 313 Оценка эффективности алгоритма Поскольку работа нацелена на разработку алгоритма сопоставления изображений, в общую оценку времени работы алгоритма не должен включаться этап распознавания изображения. Этап 1: распознавание изображений имеет свою сложность, которая может зависеть не только от разрешения изображения, но и параметр, задаваемых пользователем. Чаще всего их сложность не ниже O(n3). Этап 2: рассмотрим алгоритм k-средних - он имеет сложность O(n1k1l), где n1 – количество распознанных элементов на первом изображений, k1 – число кластеров на первом изображении, l – число итераций, но его использование нецелесообразно, поскольку пользователь заранее не может предсказать количество кластеров. Другие алгоритмы в целом могут иметь худшую производительность в сравнении с ним, например, иерархический метод имеет сложность O(n2), однако они не зависят от описанных параметров. Поскольку анализируются два изображения, то сложность данного этапа удваивается. Этап 3: под сравнением кластеров подразумевается, что сравниваются не собственно элементы кластеров друг с другом, а состав кластера, т. е. сложность алгоритма будет равна k1*k2, где k1*k2 соответственно количество полученных кластеров на первом и втором изображениях. Этап 4: первый случай имеет сложность О( g н2 ) в худшем случае, где g н – количество найденных векторов, в то же время второй алгоритм имеет постоянную сложность O( gн ( gн 1) ), что в целом позволяет варьировать оба варианта в зависимости от условий. Этап 5: если учитывать, что проводится проверка на наличие двух одинаковых векторов, то помимо одной арифметической операции сложность будет увеличиваться на O( gобр ( gобр 1) ), где gобр – количество векторов в найденной группе. Таким образом, разработанный алгоритм не имеет сложности, которую можно было бы выразить, используя только количество элементов. Выводы Таким образом, в данной работе был предложен, разработан и проанализирован алгоритм склеивания изображений с использованием алгоритмов таксономии. В процессе исследования было обнаружено, что открытыми являются вопросы задания параметров на некоторых этапах работы алгоритма. Помимо этого, в дальнейших исследованиях может возникнуть вопрос выбора наилучшего алгоритма таксономии, который мог бы в большей мере компенсировать описанные выше погрешности определения векторов смещения таксонов. Литература 1. Выделение геометрических примитивов на фотоизображении / Р.А. Сорокин, Д.М. Бочаров // Инновационные перспективы Донбасса: материалы VI международной научно-практической конференции (Донецк, 20 – 22 мая 2015 года) / Донецкий национальный технический университет. Донецк, 2015. – Т.-5. Компьютерные науки и технологии. – С. 86-90. 2. Исследование влияния методов выравнивания яркости в задачах выделения геометрических примитивов на фотоизображении / Д.М. Бочаров, Р.А. Сорокин // Научный журнал “Информатика и кибернетика”, № 2, – Донецк: ДонНТУ, 2015. - С. 22-27. 3. Исследование методов выравнивания яркости фотоснимков для задач обработки визуальной информации / М.И. Сутковая, Д.М. Бочаров // Компьютерная и программная инженерия – 2015: материалы международной научно-технической конференции студентов, аспирантов и молодых ученых (Донецк, 15 – 16 декабря 2015) / Донецкий национальный технический университет. Донецк, 2015. ‒ С. 279-282. 4. Исследование методов описания контура объекта на изображении / М.И. Сутковая, Д.М. Бочаров // Информатика, управляющие системы, математическое и компьютерное моделирование: материалы VII Международной научно-технической конференции в рамках II Международного Научного форума Донецкой Народной Республики (Донецк, 26 мая 2016) / Донецкий национальный технический университет. Донецк, 2016. ‒ С. 329-334. 5. Загоруйко Н.Г. Прикладные методы анализа данных и знаний. – Новосибирск, Издательство института математики, 1999. – 270 с. Gulyaev V.A. Bocharov D.M. Application of taxonomy algorithms for constructing panoramic images tasks. A new principle of creating panoramic images using the taxonomy's algorithms was offered. The algorithm was developed for the connection of two images into a panorama using the taxonomy's algorithms, the special cases were parsed that may arise in the course of the algorithm and were described the potential options for its optimization. The complexity of implementation of this algorithm was analysed. Keywords: panorama, taxonomy, algorithmization, image recognition, overlaps, primitives dictionary 314 УДК 37.018.4 Использование тестирования и методология создания тестов при дистанционном образовании Иванов А.А Донецкий национальный технический университет кафедра искусственного интеллекта и системного анализа [email protected] Иванов А.А. Использование тестирования и методология создания тестов при дистанционном образовании. В данной статье рассмотрено использование тестирования при дистанционном образовании, приведена общая характеристика тестов используемых в дистанционном образовании, приведены основные методы оценки результатов тестирования. Данная модель создания тестов позволит создавать тесты высокой валидности и надёжности. Ключевые слова: статья, доклад, тест, дистанционное образование, методология создания тестов Постановка проблемы В настоящее время в мире накоплен значительный опыт реализации систем дистанционного обучения. Которые различается не только методологией, но и зависят от особенностей той или иной страны, в которой практикуются методы и подходы к организации дистанционного образования. Однако, в целом, все признают что будущее за дистанционным обучением, не только в силу развития информационно-коммуникационных технологий, но и как следующий, закономерный этап развития образовательных систем. Контроль, или проверка результатов обучения, является обязательным компонентом процесса обучения. Она имеет место на всех стадиях процесса обучения, но особое значение приобретает после изучения какого-либо раздела программы и завершения ступени обучения. Суть проверки результатов обучения состоит в выявлении уровня освоения знаний учащимися, который должен соответствовать образовательному стандарту по данной программе, предмету. Использование тестирование при дистанционном образовании Однозначные и воспроизводимые оценки способны дать лишь объективные методы контроля качества знаний учащихся, опирающиеся на специально созданные для этого материалы – тесты. Они должны быть разработаны по каждому уровню усвоения опыта. Тест – это средство, которое позволяет выявить уровень и качество усвоения. Следует учесть, что исследование состояния контроля знаний студентов с применением тестовых измерителей выявило определенные проблемы при использовании тестов: недостаточное качество и валидность содержания тестовых заданий, ненадежность результатов тестирования, недостатки обработки результатов по классической теории тестов, отсутствие использования современной теории обработки тестовых материалов с применением вычислительной техники [1]. Высокая погрешность измерения тестовых результатов не позволяет говорить о высокой надежности результатов измерения. Применение методов искусственного интеллекта и инженерии знаний может превозмочь субъективность и прямолинейность процесса тестирования, поднимая уровень оценивания знаний машинными системами. Дело в том, что применение традиционных методов компьютерного обучения и контроля (прямое тестирование, бальная система, и т. д.) имеет существенный недостаток: процесс взаимодействия оценивающего и оцениваемого не поддается строгой формализации, поэтому основные алгоритмические функции не смогут описать в полной мере данную предметную область [2]. Т. е. осуществление автоматизированного контроля знаний, умений обучаемых, в первую очередь, включает решение проблемы определения совокупности требуемых качеств знаний, без которых критерии оценки знаний и способы определения уровня их усвоения, выявить нельзя. Чаще всего при дистанционном обучении можно увидеть тесты, работающие в режиме реального времени, данная система представленная на рисунке 1. В этом случае тестируемый отвечает на вопросы теста в режиме прямого диалога с компьютерной программой удаленного сервера [3]. Тесты включают вопросы и варианты ответов (один из которых, как правило, верный, а другие – ложные). Учащемуся не нужно записывать ответ, достаточно только щелкнуть курсором мыши по нужной строке. В большинстве тестов на проверку знаний дается 3–5 различных ответов на одно задание. После выполнения тестов на экране появляется результат – комментарии, оценка, рекомендации по дальнейшей работе и т. д. Тесты в целом предъявляют менее высокие 315 требования к уровню «активности» и «прочности» усвоения знаний. Многие ответы можно выбрать за счет пассивного «узнавания» или интуитивного «угадывания». Грамотно написанные тесты учитывают это и заманивают учащихся в «ловушки», специально предлагая им ложные ответы. В начале любого теста дается краткая инструкция по выполнению задания, например: «Выберите правильный ответ.», «Выберите наиболее правильный ответ.», «Впечатайте в свободном поле ответ.» и т.п. Если задания представлены в одной форме, инструкция пишется один раз для всего теста. Если же тест включает различные задания, то перед каждым новым заданием пишется новая инструкция. Текст задания, как правило, пишется прописными буквами или жирным шрифтом, для того чтобы зрительно сразу же отделить само задание от вариантов ответа. Рисунок 1 – Общая схема люраюотки теста в режиме реального времени Одно из важных требований при тестировании – наличие заранее разработанных правил выставления баллов. В общем случае применения тестов за правильный ответ в каждом задании дается один балл, за неправильный – ноль [4]. Сумма всех баллов, полученных учащимся, дает число правильных ответов. Это число ассоциируется с уровнем его знаний и с понятием «тестовый балл испытуемого». Но существуют и другие, более сложные схемы оценивания, например рейтинговые. Дистанционное обучение предполагает разработку тестов главным образом в рамках критериально–ориентированного подхода, при котором задачей тестирования является сопоставление учебных достижений отдельного ученика с планируемым к усвоению объемом знаний, умений и навыков. В качестве интерпретационной системы отсчета используется конкретная область содержания. Методология создания тестов Наиболее полно процесс разработки тестов представлен в работе М. Даунинга [5]. Им предлагается пошаговая технология для создания тестов достижений. Однако ключевые моменты являются важными и для других видов тестов. Это сделало возможным переработку технологии для того, чтобы создать универсальную схему последовательности действий по разработке тестов. Эта усовершенствованная схема предлагается в данном разделе. Каждый шаг имеет отдельную цель, предполагающую получение вполне конкретного конечного продукта, на который опираются дальнейшие действия. Цель каждого шага отражена непосредственно в его названии. Подразделение на этапы выделяет качественно различные области деятельности в процессе разработки теста. Особо акцентировать внимание следует на том, что последовательность шагов, является не просто рекомендуемым алгоритмом, удобным для пользования, а отражает сложный процесс. И как для любого процесса здесь существует закономерность в последовательности действий, вытекающих одно из другого. Все задачи, решаемые на разных этапах процесса разработки тестов, взаимосвязаны. Результат каждого этапа становится основой и условием успешности выполнения задач на последующих. Если какой-то этап пропущен, или соответствующие ему задачи решены неадекватно, то это снижает эффективность действий на последующих этапах и, в конечном итоге, влияет на качество конечного продукта. Хотя особенности работы, длительность и сложность каждого этапа могут быть различными и зависят от специфики конкретного теста. Далеко не все разработчики понимают, что стандартизация, даже на очень представительных выборках, сама по себе ничего не даёт: стандартизировать можно любой случайный набор данных. Ключевым моментом разработки теста является валидность и надёжность – те характеристики теста, которые должны прорабатываться ещё задолго до их проверки. Результат проверки в виде некоторого статистического показателя – это лишь закономерный итог всех предыдущих действий, их успешности или неадекватности. Важно сконцентрировать внимание на целостном системном видении всего процесса по 316 разработке тестов. Процессуальное видение даёт возможность некоторого прогнозирования результата, понимания того, как конкретное действие отразится на том или ином показателе через два-три шага. Ориентация на процесс заставляет также разработчика постоянно оглядываться назад, на каждом шагу сверяя свои действия с предыдущими промежуточными результатами, их успешностью. Ниже приведена методология разработки тестов: Шаг 1. Планирование проекта: формулирование предварительных характеристик теста; определение основных источников валидности; выбор исследовательских моделей; составление подробного плана разработки теста; организационные решения. Шаг 2. Определение содержания: определение исходного теоретического концепта; формирование выборки содержания; описание ключевой феноменологии. Шаг 3. Разработка пунктов: разработка пунктов; профессиональная редакция пунктов; создание банка пунктов. Шаг 4. Сборка теста: компоновка рабочих версий теста; утверждение пробной версии теста. Шаг 5. Анализ и коррекция пунктов: отбор и переформулирование пунктов; повторный пилотаж (при необходимости); утверждение состава и структуры теста. Шаг 6. Уточнение процедуры тестирования: уточнение процедуры и времени; разработка инструкций; утверждение рабочей версии теста. Шаг 7. Изучение и проверка валидности и надёжности: исследование ретестовой надёжности; изучение конструктной валидности; проверка критериальной валидности; утверждение окончательной версии теста; корректорская проверка окончательной версии теста. Шаг 8. Массовые обследования для стандартизации: формирование выборки стандартизации; массовые обследования по плану; стандартизация теста для различных групп; фиксация способов перехода к нормам. Шаг 9. Разработка схем интерпретации и диагностических отчётов: описание алгоритмов обработки данных и схем анализа результатов; описание принципов интерпретации результатов; разработка критериев для диагностических выводов; описание моделей составления отчётов; разработка компьютерных программ обработки данных и составления отчётов. Шаг 10. Написание технических отчётов: подготовка подробной документации о результатах, полученных на всех этапах разработки теста; составление технических отчётов о разработке и психометрической проверке теста. Шаг 11. Юридическое оформление : юридические процедуры; рецензирование методики; сертификация методики. Шаг 12. Издание: подготовка руководства для пользователя; издание методики. 317 Шаг 13. Сопровождение использования теста: проверка основных характеристик методики другими исследователями; дальнейшее изучение конструктной валидности; создание новых форм и модификаций теста; совершенствование пользовательских характеристик теста. Методы оценивания результатов тестирования Методы оценивания результатов тестирования используют для оценки текущего и финального результата тестирования [6]. С точки зрения способа вычисления оценки методы оценивания делятся на три класса: методы на основе количественных критериев; методы на основе вероятностных критериев; методы на основе классификационных критериев. Методы на основе количественных критериев используют количественные шкалы, т. е. оценка в этом случае задается числом. В простейшем случае эта оценка может представлять собой сумму баллов, полученных тестируемым за правильные ответы на задания. В более сложных случаях при формировании оценки учитывают типы и характеристики заданий, а также характеристики выполнения этих заданий тестируемым (время тестирования, число правильно выполненных заданий, число попыток выполнить задание и др.) Методы на основе вероятностных критериев определяют вероятности правильных ответов тестируемого как функции уровня его подготовленности и параметров задания. Эти методы строятся на основе классической теории тестов и IRT–модели. Методы на основе классификационных критериев предполагают отнесение тестируемого к одному из нескольких устойчивых классов с учетом совокупности признаков, определяющих данного тестируемого. Примерами являются методы на основе алгоритма вычисления оценок, а также методы на основе нечетких множеств [7]. Шаблонный алгоритм тестирования и категории классификации, используемые для выбора действия, показаны на рисунке 2. Рисунок 2 – Шаблонный алгоритм тестирования Исходными данными метода являются параметры тестирования: параметры, характеризующие отдельное задание и его выполнение (характеристики задания; тип задания; время, отведенное для выполнения задания; время выполнения задания тестируемым); параметры, используемые для настройки алгоритма тестирования (количество заданий, предусмотренных для тестирования; предельное время тестирования; метод проверки результатов тестирования, цели тестирования, характеристики тестируемого и др.). 318 Выбор способов реализации действий шаблонного алгоритм осуществляет разработчик алгоритма в зависимости от цели тестирования и условий его проведения. Выводы В статье была представлена и исследована технология разработки теста для определения и распределения действий при разработки тестов. Для удобства и понятности технология была разбита на конкретные шаги включающие определённые действия. Это позволит более сконцентрировано держать внимание на целостном системном видении всего процесса по разработке тестов. В статье был представлен и исследован шаблонный алгоритм тестирования и категории классификации, используемые для выбора действий при тестировании. Алгоритм позволяет выбирать способы реализации действий разработчику в зависимости от цели тестирования и условий его проведения. Предложенный метод разработки алгоритмов тестирования, на основе шаблона и классификаций тестирования может быть использован разработчиками тестов для организации педагогического и профессионального тестирования. Для исследования этого алгоритма был проведён анализ оценивания результатов тестирования. Определенны основные два подхода к проверке и оценке знаний, умений и навыков студентов в учебном процессе. Литература 1. Полат Е. С. Теория и практика дистанционного обучения: учебное пособие для студ. высш. пед. учеб. заведений / Е. С. Полат, М. Ю. Бухаркина, М. В. Моисеева. – М.: «Академия», 2004. – 416 с. 2. Гаврилова Л. А. Дистанционное образование. Электронные курсы: Учебно-методическое пособие для преподавателей. – Екатеринбург: УГГУ, 2006. – 74 с. 3. Канаев В. И. Дистанционное обучение: технологические аспекты. – М.: Современный гуманитарный университет, 2004. – 192 с. 4. Батурин Н. А. Технология разработки тестов / Мельникова Н. Н. Вестник ЮУрГУ, Психология, 2009 – 130 с. 5. Handbook of test development / edited by Steven M. Dowing, Thomas M. Haladyna. - 2006 by Lawrence Associates, Inc. 778p. 6. Лаврухина, Н. А. Методы оценки качества тестов по результатам тестирования / Н. А. Лаврухина, Н. И. Абасова // Информационные технологии и проблемы математического моделирования сложных систем. – Иркутск : ИИТМ ИрГУПС, 2010. – Вып. 8. – С. 124–134. 7. Блэк Р. Ключeвыe прoцeссы тeстирoвaния. Плaнирoвaниe, пoдгoтoвкa, прoвeдeниe, сoвeршeнствoвaниe. – СПб.: Лoри, 2006. – с. 576. 319 УДК 004.9 Современные средства для разработки высокопроизводительных многопользовательских графических мультиплатформенных приложений М.М. Маруга И.С. Грунский Донецкий национальный технический университет [email protected] Маруга М.М., Грунский И.С. Современные средства для разработки высокопроизводительных многопользовательских графических мультиплатформенных приложений. Рассмотрены современные средства разработки графических приложений и средства сетевой коммуникации, проведен краткий анализ производительности и основных различий. Ключевые слова: мультиплатформенность, кроссплатформенность, производительность, графические, разработка приложений высокая Введение Актуальной задачей при разработке программного продукта для различных платформ (Android, IOS, Windows, Linux) является выбор технологии разработки. Основными критериями выбора должны быть минимизация стоимости и времени, а также обеспечение актуальности продукта при его выпуске. Цель данной статьи - обзор различных методов и средств решения задачи выбора технологии разработки для различных платформ. Задачи работы: анализ производительности технологий, определение их достоинств и недостатков. Основная идея технологий Основной идеей анализируемых технологий является использование одной реализации для нескольких платформ. Основными средствами разработки выбраны LibGDX и Netty. Средство LibGDX разработано на языках Java и С/С++ (для ускорения работы модулей). Оно позволяет создавать один унифицированный код, который можно запустить на различных платформах, например, Windows, Linux, Mac OS X, Android ОС, браузерах с поддержкой WebGL и iOS, 32 и 64-разрядных версиях ОС. Используется низкоуровневая поддержка с графической частью устройства, что позволяет показывать высочайшую производительность. При использовании данного фреймворка скорость разработки приложения существенно увеличивается, так как отпадает необходимость интерпретации базы готового решения под каждую необходимую платформу. Разработка ограничивается лишь небольшими изменениями при использовании каждой из них. Для использования сетевой коммуникации приложений рассмотрим фреймворк Netty. Это клиентсерверный фрейморк, использующий технологию асинхронного неблокирующего ввода-вывода (non-blocking I/O). Использование данного подхода при разработке приложения, позволяет добиться большого количества активных соединений, что в свою очередь, позволяет создавать высокопроизводительное и высоконагруженное приложение. А в совместном использовании с LibGDX - графическое мультипользовательское приложение в кратчайшие сроки и с максимальным уровнем поддержки различных платформ. Существующие аналоги LibGDX Прямыми аналогами LibGDX можно назвать Unity3D и Unreal Enginge 4. Иные средства мы не будем рассматривать, так как они не поддерживают философию «одна реализация – много платформ». Unity - это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, Linux и OS X. Созданные с помощью Unity приложения работают под операционными системами Windows, OS X, Windows Phone, Android, Apple iOS, Linux, а также на игровых приставках Wii, PlayStation 3, PlayStation 4, Xbox 360, Xbox One и MotionParallax3D. Есть возможность создавать приложения для запуска в браузерах с помощью специального подключаемого модуля Unity (Unity Web Player), а также с помощью реализации технологии WebGL 320 Unreal Engine — инструмент, разрабатываемый и поддерживаемый компанией Epic Games. Написанный на языке C++, позволяет создавать игры для большинства операционных систем и платформ: Microsoft Windows, Linux, Mac OS и Mac OS X; консолей Xbox, Xbox 360, Xbox One, PlayStation 2, PlayStation 3, PlayStation 4, PSP, PS Vita, Wii, Dreamcast, GameCube и др., а также на различных портативных устройствах, например, устройствах Apple с ОС IOS. Для упрощения портирования движок использует модульную систему зависимых компонентов; поддерживает различные системы рендеринга (Direct3D, OpenGL, Pixomatic; в ранних версиях: Glide, S3, PowerVR), воспроизведения звука (EAX, OpenAL, DirectSound3D; ранее: A3D), средства голосового воспроизведения текста, распознавание речи), модули для работы с сетью и поддержки различных устройств ввода. Характеристики анализируемых средств показаны в табл.1, табл.2. Таблица 1. Характеристики средств разработки Windows Linux MAC OS Apple IOS Windows Phone Поддержка ОС Android LibGDX + + + + + - + Unity3D + + + + + + + UnrealEngine4 + + + + + - - Поддержка консолей LibGDX Таблица 2. Характеристики средств разработки Xbox XBox360 Xbox One GameCube Wii Wii U PS2 PS3 PS4 PS Vita Nintendo - Unity3D UnrealEngine4 HTML5 + - - + + + + - - - - + + + + + - - + + + + - - + + Анализ LibGDX, Unity3D, Unreal Engine 4 Основные достоинства LibGDX: Хорошо документированный исходный код и удобная справка, позволяющая быстро найти необходимые ресурсы, ознакомиться с их характеристиками и свойствами; Большое количество примеров и проектов, с открытым исходным кодом; Большое количество активных членов сообщества, что позволяет быстро решить любой возникающий вопрос и получить информационную поддержку; Открытый исходный код, открытая лицензия, позволяющая изменять базу фреймворка под свои нужды или необходимые требования; Основные недостатки LibGDX: Нет графического окна моделирования сцены; Нет удобного Asset Store, все открытые материалы приходится искать по разным источникам; Скорость разработки ведется исключительно с помощью программирования, без каких-либо сторонних графических средств. Основные достоинства Unity3D: Основные элементы Unity – это объекты (GameObject) и компоненты (MonoBehaviour). Освоив эту концепцию, вы уже можете работать с Unity. Если правильно пользоваться этой системой, она позволяет значительно улучшить организацию проекта; В Unity включено много компонентов, обеспечивающих вас всем необходимым для создания приложения; Редактор можно расширять собственными сценариями, кроме того, в Asset Store доступна масса ресурсов на все случаи жизни. Хранилище Asset Store также содержит множество полезных сценариев, моделей материалов и пр. Они будут особенно кстати при прототипировании — можете просто загрузить все необходимое в виде временных ресурсов и пользоваться этим как подручными имитационными моделями; Unity был одним из первых общедоступных движков, поддерживавших мобильную разработку. Поэтому он очень удобен при развертывании в мобильной среде, выглядит и действует там практически так же, как и в редакторе. Система постоянно совершенствуется, и развертывание протекает очень гладко; 321 Unity имеет самое широкое сообщество специалистов среди всех игровых движков и поддерживает множество языков для написания сценариев. Имеется документация по каждому из них; В Unity проделана огромная работа по оптимизации рендеринга для множества однотипных объектов. Чтобы добиться сопоставимой производительности в Unreal, пришлось бы задействовать Instanced Rendering, а этот механизм обычно менее гибок, чем рендеринг в Unity. Основные недостатки Unity3D: 24. Исходный код движка закрыт. Поэтому возможны проблемы; 25. Новая система UI вполне хороша. В ней отсутствует специальный редактор, все изменения вносятся прямо в сцене. Когда вы открываете сцену и хотите отредактировать UI, вам сначала придется изрядно увеличить масштаб интересующей вас области; 26. C новой системой UI в Unity есть две проблемы. При нажатии пальцем по сенсорному экрану вы не сможете определить, был ли нажат конкретный графический элемент; Вторая проблема с пользовательским интерфейсом Unity связана с масштабированием под дисплеи различного размера. В принципе, у объекта холста есть опции масштабирования с некоторыми параметрами. Но организовать их предпросмотр очень сложно; Кроме того, нас очень озадачила статистическая панель Unity. Реализовав внутриигровой счетчик кадровой частоты, мы сравнили его значение с тем, что выводилось на статистической панели редактора Unity. Основные достоинства Unreal Engine 4: Пробная версия Unreal совершенно бесплатная. В ней вы получаете полнофункциональный редактор; В Unreal есть мощный редактор, заключающий в себе несколько узкоспециальных редакторов. Если вы знакомы с этими «вложенными» редакторами, то они очень помогут вам в разработке, а зачастую предоставят и такую информацию, которой в Unity вы не увидите. Есть редакторы, которые даже могут послужить полноценной заменой некоторым программам. Взаимодействие всех этих подсистем очень хорошо реализовано; Движок поставляется вместе со всем исходным кодом. Поэтому в нем можно покопаться и понять, как функционируют отдельные детали. Более того, вы даже можете исправлять баги в движке или самостоятельно дополнять его функционал; Визуализация в редакторе великолепна. Здесь вы найдете массу современных шейдеров, которые также поставляются вместе с движком. Unreal предлагает наилучший механизм рендеринга на рынке. Можно создавать удивительно красивые сцены; Чертежи (blueprints) удобны для того, чтобы быстро создать что-нибудь простое и реализовать базовую игровую логику. Они превосходно интегрируются с C++, и такое решение принято неслучайно: оно не только открывает широчайшие возможности как для начинающих, так и для опытных разработчиков, но и позволяет им взаимодействовать друг с другом; Общая интеграция с C++ великолепна. Как и горячая перезагрузка. Основные недостатки Unreal Engine 4: При разработке на Unreal Engine сложно набрать темп. Даже если вы отлично знаете C++, потребуется немало времени для изучения различных макросов и функций UE4. Это может быть очень сложно для тех, кто одновременно занимается изучением C++; В чертежах можно очень быстро запутаться. Когда логика включает десятки узлов, в каждом из которых находится чертеж, то ее иногда удается упростить до пары строк кода, написанных на обычном C++. Обычно это не проблема, поскольку вполне можно работать и с C++, но с некоторыми вещами, например, »UMG« (система UI) использовать чертежи необходимо, поэтому и возможна путаница; Мобильный симулятор оказался очень непоследовательным; Хотя Unreal и обладает большим сообществом разработчиков, мы редко получали там ответы на вопросы. Кроме того, почти вся оказанная нам поддержка касалась чертежей. Unreal Engine 4 активно наращивает свое сообщество. Серьезно не хватает документации по C++. Кроме того, из-за постоянных обновлений многие возможности быстро устаревают; Мобильная разработка с Unreal медленная. Программа развертывается на устройстве очень долго. В Android возникали некоторые визуальные проблемы, например, там были расплывчатые очертания и неосвещенные деревья. В iOS проблемы были гораздо серьезнее. UE4 поддерживает сборку для устройства с iOS лишь при условии, что ваше приложение состоит только из чертежей. Итак, поддержка мобильной разработки в Unity существенно выигрывает по сравнению с Unreal. Текущая популярность средств разработки на рынке, по версии Unity показана на рис.1. 322 Рисунок 1. Текущая популярность средств разработки на рынке, по версии Unity. Проанализировав рынок существующих решений для сетевой коммуникации, были выявлены несколько основных лидеров. Такие как: Jetty - свободный контейнер сервлетов, написанный полностью на Java. Может использоваться как HTTP-сервер или в паре со специализированным HTTP-сервером (к примеру, с Apache HTTP Server); HttpCore - часть пакета httpcomponents apache, входящий в Apache Commons — проект фонда Apache Software Foundation (далее ASF), имеющий своей целью разработку и поддержку открытого программного обеспечения повторного использования на языке Java, то есть библиотек Java. В более узком смысле Apache Commons — это «большая коллекция маленьких Java-утилит»; Apache – это framework для сетевых приложений, который помогает пользователям разрабатывать выскокопроизводительные и масштабируемые сетевые приложения без особых усилий. Он предоставляет абстрактную модель событийно асинхронного API через различные транспортные транспортные протоколы, такие как TCP/IP and UDP/IP через Java NIO ; Grizzly NIO framework был разработан для помощи разработчикам для доступа к Java NIO API. Цель проекта Grizzly — помочь разработчикам построить масштабируемые и производительные сервера, с использованием NIO, предлагающее следующие расширения: Web Framework (HTTP/S), WebSocket, Comet; Vert.x это мультиязыковой framework для сетевой коммуникации, который запускается на JVM Он работает в различных языках, включающих в себя :Node.js for JavaScript, Twisted for Python, Perl Object Environment for Perl, libevent for C and EventMachine for Ruby; Akka это бесплатный набор инструментов с открытым исходным кодом и запускатором простых конструкций для JVM Akka поддерживает несколько программных моделей, подчеркивающих параллелизм исполнения, на подобии тех, которые были в Erlang. Данный framework может работать на Java и Scala. Akka написан на Scala и как часть Scala 2.10 исполнитель Akka включают в себя зависимости Scala standard library. По результатам исследования компании apache, была проведена оценка производительности различных сетевых решений, показанная в табл. 3, табл. 4. Таблица 3. Характеристики устройства Intel(R) Core(TM) i7-3517U CPU 1.90GHz Processor cache size 4096 KB RAM MemTotal 3933112 kB Java version"1.7.0_13" Java(TM) SE Runtime Environment build 1.7.0_13-b20) Java HotSpot(TM) 64-Bit Server VM (build 23.7-b01, mixed mode) 323 Таблица 4 – сравнение производительности различных технологий, по версии Apache Jetty HttpCore Jetty (NIO) HttpCore Netty (blocking I/O) (blocking I/O) (NIO) Concurrency Level: 50 50 50 50 50 Time taken for tests, seconds: 101.296000 69.299000 87.334000 86.098000 79.597000 Complete requests: 4999999 5000000 5000000 5000000 5000000 Failed requests: 1 0 0 0 0 Write errors: 0 0 0 0 0 Kept alive: 4999999 5000000 5000000 5000000 5000000 Total transferred, bytes: 10239997952 10240000000 10240000000 10240000000 10240000000 Requests per second: [#/sec] 49,360.28 72,151.11 57,251.47 58,073.36 62,816.44 Time per request [ms]: 1.013 0.693 0.873 0.861 0.796 Time per request [ms] (mean, across all concurrent requests): 0.020 0.014 0.017 0.017 0.016 Transfer rate,[Kbytes/sec]: 101,089.85 47,765.48 117,251.01 118,934.24 128,648.06 Вывод По результатам исследования был проведен анализ существующих средств разработки, позволяющих использовать концепцию «одна реализация - много платформ». Рассмотрены технологии разработки LibGDX, Unreal Engine, Unity3D. Проанализированы различные технологии сетевой коммуникации устройств (Netty, Jetty, Java NIO, Apache HttpCore). Показано, что оптимальным является использование свободного ПО, например, LibGDX или Netty. Разработка с помощью данных технологий ведется быстро и без проблем при реализации. Перспективным направлением исследований является анализ, позволяющий выявить сильные и слабые стороны средств разработки с учетом изменений на рынке ПО. Литература 1. Маруга М.М. Современные средства кроссплатформенности для использования и разработки ПО. Информатика, управляющие системы, математическое и компьютерное моделирование в рамках II форума «Инновационные перспективы Донбасса» (ИУСМКМ – 2016): VII Международная научно-техническая конференция, 26 мая 2016, г.Донецк: / Донец. национал. техн. ун-т; редкол. А.Ю. Харитонов и др. – Донецк: ДонНТУ, 2016. – с. 109-115. 2. Маруга М.М. Современные проблемы мобильности по и возможные методы их решения. Мир компьютерных технологий: Сборник статей студенческой научно-технической конференции, г.Севастополь, 04 – 08 апреля 2016 г/ М-во образования и науки РФ, Севастопольский государственный университет; науч. ред. Е.Н. Мащенко – г. Севастополь: СевГУ, 2016. – 197-199 с. 3. https://habrahabr.ru/ - Электронный ресурс компании «ТМ» 2015 Режим доступа https://habrahabr.ru/post/268895/ - Разработка IoT cloud на Netty или 10к рек-сек на ядро 4. http://wiki.apache.org/ Оффициальный справочный сайт компании Apache. Режим доступа http://wiki.apache.org/HttpComponents/HttpCoreBenchmark - HttpCore performance micro-benchmark 5. https://habrahabr.ru/company/piter/blog/269415/ Электронный ресурс компании «ТМ» 2015 , Режим доступа https://habrahabr.ru/company/piter/blog/269415 Unreal против Unity: на чем лучше разрабатывать мобильные игры? 6. http://www.makinggames.biz — Оффициальный сайт компании «Making Games», Режим доступа http://www.makinggames.biz/feature/unreal-vs-unity-which -engine-is-better-for -mobile- games, 8472.html - Unreal vs. Unity – Which engine is better for Mobile Games? 7. http://netty.io— Оффициальный сайт технологии «Netty». Режим доступа http://netty.io/images/components.png — Netty home page/about 8. https://unity3d.com/ - Оффициальный ресурс компании «Unity 3D», Режим доступа https://unity3d.com/public-relations — Unity3D features. Ссылка на рисунок [1] 9. https://www.unrealengine.com/ Оффициальынй сайт компании Unreal Engine, Режим доступа https://www.unrealengine.com/unreal-engine-4 — Unreal Engine features. 10. https://libgdx.badlogicgames.com/ - Оффициальный сайт компании «Bad Logic Games», Режим доступа https://libgdx.badlogicgames.com/features.html — LibGDX features. 324 Маруга М.М., Грунский И.С. Современные средства для разработки высокопроизводительных многопользовательских графических мультиплатформенных приложений. Рассмотрены современные средства разработки графических приложений и средства сетевой коммуникации на языке Java, проведен краткий анализ производительности и основных различий. Ключевые слова: мультиплатформенность, кроссплатформенность высокопроизводительность, графические, разработка. Maruga MM, Grunskii I.S. Modern facilities for the development of high-performance multi-user multiplatform graphical applications. The modern development tools, graphical applications and means of network communication in Java, held a brief analysis of the performance and the main differences. Keywords: Multi-platform, cross-platform performance, graphics, design. 325