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

Учебное пособие 2125

.pdf
Скачиваний:
4
Добавлен:
30.04.2022
Размер:
6.64 Mб
Скачать

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

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

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

Литература

1.Комашинский В.И. Нейронные сети и их применение в системах управления и связи / В.И. Комашинский, Д.А. Смирнов. - М.: Горячая Линия— Телеком, 2003. - С. 94.

2.Терехов В.А. Нейросетевые системы управления / В.А. Терехов,

Д.В. Ефимов, И.Ю. Тюкин. - М.: Высш. шк., 2002. - 184 с.

3. Ясницкий Л.Н. Введение в искусственный интеллект / Л.Н. Ясницкий. - М.: Академия, 2005. - 176 с.

ФГБОУ ВО «Воронежский государственный технический университет», Россия

УДК 004.622 004.045

В.А. Носиков

СОВРЕМЕННЫЕ МЕТОДЫ И ИНСТРУМЕНТЫ ПО НАКОПЛЕНИЮ И АНАЛИЗУ ИНФОРМАЦИИ

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

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

10

Рейтинг популярности систем хранения данных

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

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

Collectd – является «демон» процессом, который преимущественно на Unix системах собирает различные метрики оправляя их в различные базы данных;

Zabbix – система мониторинга и отслеживания статусов разнообразных сервисов компьютерной сети, серверов и сетевого оборудования;

Logstash – это механизм сбора данных с открытым исходным кодом

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

11

Beats (Elastic) – набор различных информационных систем для сбора «сырых», таких как лог файлы, статусы состояния систем. Преимущественно используется с продуктами Elastic.

Все эти системы позволяют собирать информацию из самых различных источников, помещая их как в традиционные реляционные базы данных, так и NoSQL и Time-series базы данных. Рассмотрим преимущества хранения в Timeseries базах данных. Time series (временные ряды) – один из наиболее часто встречающихся в аналитической практике объектов. Временной ряд – это статистика серии наблюдений за одним и тем же явлением, параметром какоголибо процесса, на протяжении некоторого времени. Каждому результату наблюдения (измерению) соответствует время, когда это наблюдение было сделано, или его порядковый номер – опять же, по шкале времени. Таким образом, при анализе временных рядов учитываются не только базовые статистические закономерности, но и взаимосвязь измерений со временем.

Базы данных временных рядов (time series database) позволяют пользователям создавать, считать, обновлять и удалять различные временные ряды и организовывать их неким образом. Сервер часто поддерживает ряд основных вычислений, которые работают на ряды в целом, например, умножая, складывая или иным образом комбинируя различные временные ряды в новый временной ряд. Они могут также фильтровать по произвольным образцам, при этом значения одного ряда могу являться фильтром для другого. Простой синтаксис является залогом привлекательности специальных баз данных временных рядов. Среди таких специальных баз данных преобладают продукты, основанные на свободной лицензии: Open TSDB, InfluxDB, Graphite, TimescaleDB и прочие.

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

Некоторые типы данных и процессов в информационных системах нельзя разделить и анализировать только с помощью временных рядов. Для таких случаев используются решения, базируемые на NoSQL базах данных. К таким решениям можно отнести Elasticsearch, MongoDB и другие.

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

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

12

доходит до огромных данных и получения результатов поиска через запросы из базы данных. Предприятия в настоящее время ищут альтернативные способы, где данные хранятся таким образом, что извлечение быстро. Это может быть достигнуто путем выбора NoSQL решений. Elasticsearch – одна из таких распределенных баз данных NOSQL. Elasticsearch использует гибкие модели данных для создания и обновления профилей посетителей в соответствии с требованиями рабочей нагрузки и низкой задержкой, необходимой для взаимодействия в реальном времени.

Реляционная база данных работает сравнительно медленно, когда дело доходит до огромных данных и получения результатов поиска через запросы из базы данных. (Есть способы оптимизировать это, как индексирование, но тогда есть связанные ограничения, такие как мы не можем индексировать каждое поле. Обновление строк в сильно индексированных таблицах потребует времени. Люди также масштабируют свои СУБД по вертикали для повышения производительности.) Эта проблема преодолевается Elasticsearch.

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

Анализ информации во всех перечисленных решениях осуществляется с помощью графиков, дашбордов и таблиц. Сегодня технологии машинного обучения позволяют автоматически составлять различные граффики исходя из зависимостей данных между собой. Существуют такие системы для визуального анализа накопленной информации: Kibana. Grafana, Datadog, Graphite, netdata и другие. Каждое из этих средств представляет себе средство для визуализации данных, составления отч тов, а также предупреждения о каких-либо событиях.

Литература

1.Досмухамедов Б. Р. Анализ угроз информации систем электронного документооборота / Б. Р. Досмухамедов // Вестник АГТУ. Серия: Управление, вычислительная техника и информатика: сб. науч. тр. - Архангельск: АГТУ, 2010. – С. 101 – 106.

2.Смелянский А.Э. Создание базы данных для накопления, систематизации и анализа результатов первичной обработки данных МСРП / А.Э. Смелянский // Известия Самарского научного центра Российской академии наук. – 2012. – № 4 – 2. С. 758 – 761.

3.Анализ данных и процессов / А. А. Барсегян, М. С. Куприянов, И. И. Холод и др. - 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2008. – 512 c.

ФГБОУ ВО «Воронежский государственный технический университет», Россия

13

УДК 681.3

В.В. Решетов, Е.В. Кащенко

СРАВНИТЕЛЬНЫЙ АНАЛИЗ МЕТОДОЛОГИЙ РАЗРАБОТКИ

ПРОЕКТОВ: WATERFALL И AGILE. ИХ ПЛЮСЫ И МИНУСЫ

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

1.Изменение требований непосредственно в процессе разработки.

2.Нечеткое распределение ответственности за выполняемую работу и ее результат.

3.Наличие непрерывного потока мелких, «быстрых», наваливающихся требований, отвлекающих разработчиков и менеджеров от основного направления работ.

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

всоздании проекта, поэтому возникает логичный вопрос: какой подход выбрать и какие «подводные камни» существуют?

Наиболее популярными считаются Waterfall - каскадная, и Agile – гибкая. Неправильный выбор методики, может отрицательно сказаться на вашем проекте, поэтому учитывайте особенности каждой из них.

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

Agile – система, основанная на принципе «гибкого» управления проектами. Сюда относят методики Scrum, FDD, Kanban, Экстремальное программирование (XP), Lean и т.д. Ключевая особенность такого подхода - создание проекта в несколько циклов (итераций). Эта методология базируется на 12 принципах (так называемый Agile манифест). Давайте познакомимся с ключевыми практическими постулатами Agile:

• Заказчик может изменять или корректировать свои требования на любом этапе разработки.

• Лучшим показателем эффективности команды является рабочее решение.

• Самым продуктивным способом общения является личное общение.

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

14

Waterfall (с англ. – «водопад») – предполагает последовательный переход к каждому этапу разработки и невозможностью вернуться на шаг назад. Внести какие-либо изменения будет возможно только после релиза проекта.

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

Этапы Waterfall методологии

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

Agile используется:

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

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

Заказчик принимает активное участие в разработке на протяжении всего проекта.

Клиенту важно вносить изменения максимально оперативно на любом этапе работы.

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

Ниша, для которой разрабатывает продукт, подвержена постоянным изменениям.

Waterfall подойдет, если:

Проектные требования тщательно продуманы и неизменны. У заказчика есть четко сформулированная концепция продукта.

Технологии и инструменты известны заранее.

Разрабатываемый продукт сложный и требует больших затрат.

15

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

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

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

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

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

Литература

1.Бессмертная классика Waterfall [Электронный ресурс]: Режим доступ: World Wide Web. URL : https://worksection.com/blog/waterfall.html

2.Waterfall методология разработки [Электронный ресурс]: Режим доступа: World Wide Web. URL: https://qaevolution.ru/metodologiyamenedzhment/waterfall/

3.Вольфсон Б. Гибкое управление проектами и продуктами [Текст] / Б. Вольфсон. – СПб.: Питер, 2017. – 144 с.

4.Ларман К. Scaling Lean & Agile Development: инструменты мышления

иорганизации для крупномасштабного Scrum [Текст] / К. Ларман, Б. Водде. - Addison-Wesley Professional, 2008. - 368.

ФГБОУ ВО «Воронежский государственный технический университет», Россия

УДК 004.023

Н.В. Старостин, Е.А. Кумагина, Д.В. Буяков

ИТЕРАЦИОННЫЙ МЕТАЭВРИСТИЧЕСКИЙ АЛГОРИТМ ДЛЯ РЕШЕНИЯ КОНВЕЙЕРНОЙ ЗАДАЧИ

Итерационные алгоритмы, основанные на локальном поиске, характеризуются хорошим потенциалом применимости на практике в силу невысокой сложности реализации и экономичности с точки зрения расхода вычислительных ресурсов [1,2].

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

16

множества решений, технология перехода от одной совокупности решений к другой в переделах итерации.

За основу итерационного алгоритма взят подход, описанный в [3]. Разработанный алгоритм был применен для построения оптимального по быстродействию расписания выполнения работ в системе конвейерного типа. Эта задача заключается в следующем: работы множества N={1, 2, ..., n} подлежат выполнению, для этого предоставляются станки множества M={1, 2,

..., m}. Технологический маршрут у всех работ одинаков: работа считается выполненной, если она прошла выполнение последовательно на всех m станках, начиная с первого. Для каждой работы известно время ее выполнения на каждом станке. Технологические условия выполнения работ состоят в следующем: на одном станке одновременно может выполняться только одна работа; процесс выполнения работы протекает без прерываний; выполнение работы на следующем станке может начаться не раньше, чем завершится ее выполнение на предыдущем станке; все работы доступны сразу; порядок выполнения работ на станках одинаковый. Требуется определить такой порядок включения работ в расписание, при котором минимизируется общее время выполнения всех работ. Так как эта задача относится к классу NP-трудных [4], то разработка эвристических процедур решения является актуальной.

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

выбирается начальная совокупность перестановок P0 {p0

,p0

, ,p0

},

1

2

g

 

удаленных друг от друга на расстояние n -1. Параметр g (мощность множества P0) – является исследуемым параметром алгоритма. При g=1 алгоритм представляет собой простой итерационный поиск. Увеличивая этот параметр, мы увеличим издержки алгоритма по расходу памяти.

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

стартовое множество локальных решений P1 {p1

,p1

, ,p1

}. Для отбора

1

2

g

 

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

Далее на каждой итерации i из множества Pi выбирается пара решений pia

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

между ними – R(pi

,pi

) {pi

, π , π

2

, , π

r 1

, π

r

, pi

}. В силу выбранной

a

b

a

1

 

 

b

 

 

 

 

 

 

 

ab

 

ab

 

 

метрики соседние элементы множества R(pia ,pib ) отличаются друг от друга одной транспозицией элементов.

Так как pia и pib являются локальными решениями, то в окрестности этих перестановок значения критерия оптимальности будут хуже. Перестановки π1 и

17

πr

заведомо

не будут новыми локальными решениями.

Но перестановки

ab

 

 

π2 , ,πk 1k , ,πr 1 могут находиться в окрестностях

новых локальных

решений.

ab

 

 

 

 

Пусть k

будет первой перестановкой, на которой значение критерия

улучшается по сравнению со значением в k-1. Это означает,

что k находится в

окрестности нового локального решения. Процесс рассмотрения перестановок из

R(pia ,pib ) завершается, и выполняется процедура локального поиска в окрестности k. Результатом этой процедуры будет новое локальное решение pk.

Из трех локальных решений pk , pia , pib в новую совокупность решений Pi+1 помещаются только два решения с меньшими значениями критерия для задачи минимизации. Процесс выбора пары перестановок повторяется для новой совокупности локальных решений Pi+1.

Если такой перестановки pk не найдется, то это означает, что между решениями pia и pib не найдено локальных экстремумов. В этом случае

Pi 1 Pi \ pia. Процесс поиска решения завершается, когда в множестве Pi+1 остается одна перестановка.

Для проверки эффективности предложенного подхода при различных мощностях начального множества решений был проведен вычислительный эксперимент. Задачи разной размерности были взяты из библиотеки тестовых задач исследования операций OR-Library [5]. Эксперимент проводился на компьютере со следующей конфигурацией: процессор Intel(R) Core(ТМ) i36100U CPU, 2.30 Ггц. Результаты экспериментов помещены в таблицу.

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

Результаты эксперимента

Число

Среднее

относительное

Среднее

время

работы

отклонение, %

 

алгоритма, мс

 

работ/станков

 

 

g=4

g=8

g=12

g=4

g=8

g=12

 

20/5

2,70

1,96

1,99

511,3

481,5

663

20/10

2,94

2,27

2,11

733,6

691,3

976,2

20/20

2,47

2,23

2,17

737,8

1260,5

1182,4

50/5

1,21

0,88

0,71

58625

20609

25682

50/10

4,09

3,40

3,38

111501

30353

41839

50/20

4,71

3,93

3,70

152783

49827

74102

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

18

Литература

1.Булгаков И.В. Решение задачи коммивояжера с использованием генетических алгоритмов / И.В. Булгаков, Е.А. Неймарк // Вестник Нижегородского университета им. Н. И. Лобачевского. – 1998. – № 2. – С. 186.

2.Старостин Н.В. Многоуровневые алгоритмы декомпозиции графа данных для параллельных вычислений на гетерогенной вычислительной системе / Н.В. Старостин, М.А. Панкратова // Вопросы атомной науки и техники. Серия: Математическое моделирование физических процессов. – 2016.

№ 1. – С. 60-68.

3.Кумагина Е.А. Метаэвристический алгоритм решения задач упорядочения / Е.А. Кумагина, Д.В. Буяков // Интеллектуальные информационные системы: труды Всероссийской конференции с международным участием. Воронеж: ФГБОУ ВО «Воронежский государственный технический университет». – 2017. – Ч. 2. – С. 40-44.

4.Прилуцкий М.Х. Управляемый фронтальный алгоритм решения

задачи

распределения

ресурсов

в

сетевых

канонических

структурах /

М.Х. Прилуцкий, Е.А. Кумагина

//

Вестник

Нижегородского

университета

им. Н. И. Лобачевского. – 2008. – № 6. – С. 152-155.

 

 

 

5.

OR-Library

Flow

shop

scheduling.

Режим

доступа:

http://people.brunel.ac.uk/~mastjjb/jeb/orlib/flowshopinfo.html

 

 

 

ФГБОУ ВО «Нижегородский государственный университет им. Н. И. Лобачевского», Россия

УДК 681.3

И.Я. Львович, А.П. Преображенский, О.Н. Чопоров

ИНТЕЛЛЕКТУАЛЬНЫЕ ТЕХНОЛОГИИ В КОМПЬЮТЕРНЫХ СЕТЯХ

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

Для сетевых ИИС характерными являются такие признаки [12]:

наличие развитых коммуникативных возможностей;

возможности решения сложных задач, которые плохо формализуемы;

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

наличие функций адаптивности.

19