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

905

.pdf
Скачиваний:
2
Добавлен:
09.01.2024
Размер:
11.53 Mб
Скачать

Рис. 4. Функция с извлечением требуемых данных

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

Рис. 3. Функция преобразования и сохранения информации в файл json

Для того чтобы собрать данные с нескольких страниц интернет-магазина достаточно организовать цикл и заменять адрес текущей просматриваемой страницы (рис. 4.)

111

Риc. 4. Функция получения информация с нескольких страниц

В данном примере показано, что информация была собрана с четырёх страниц сайта (рис. 5.).

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

Рис. 6. Вывод программы в файл json

Собранные данные сохраняются в удобном иерархически структурированном формате json, который «понимают» большинство языков программирования. Тем са-

112

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

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

Список литературы

1.A Practical Introduction to Web Scraping in Python –URL: https://realpython.com/python- web-scraping-practical-introduction/ (дата обращения 09.10.20230).

2.Райан, Митчелл. Современный скрапинг веб-сайтов с помощью Python /Райан Митчелл. 2-е издание. ‒ 2021.

УДК 004.032.26

ТЕХНОЛОГИИ СОЗДАНИЯ ИНС

А.П. Сединин – студент 3-го курса;

И.C. Шевчук – научный руководитель, старший преподаватель ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия

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

Ключевые слова: нейронная сеть, FANN, Tensor Flow, Keras, Theano, Scikit learn, PyTorch, NumPy, Seaborn, PyBrain, CNTK, библиотека, машинное обучение.

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

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

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

Рассмотрим наиболее распространённые для создания ИНС, основанных на популярных языках программирования.

113

Fast Artificial Neural Network (FANN – быстрая искусственная нейронная сеть)

– бесплатная С++ библиотека нейронных сетей с открытым исходным кодом, которая реализует многослойные искусственные нейронные сети прямого распространения. В библиотеке уже заложены алгоритмы обучения для перцептронов. На выходе получается файл с конфигурациями обученной нейросети. На данные момент также переписана на C#, её можно найти в Nuget пакетах Visual Studio [1].

Tensor Flow – библиотека Python, предназначенная для машинного обучения и постройки нейросетей. Позволяет строить нейросети для распознавания образов, обнаружения текста, работы с естественными языками, распознавания звуков. Также применяется для создания нейронных сетей в математических задачах, например, при решении дифференциальных уравнений [4].

Keras – библиотека интегрирует в себе большое количество автономных модулей нейронных сетей, таких как:

оптимизаторы нейронных слоёв;

функции возбуждения слоев;

схемы инициализации;

функции затрат;

модели регуляризации.

Keras не является самостоятельной библиотекой создания и обучения нейросетей. Её лучше всего использовать в связке с другими библиотеками, функционал которых она расширит [4].

Theano является математической библиотекой, на основании инструментария которой можно создавать нейронные сети. Имеет широкую популярность среди программистов, создающих и обучающих нейронные сети. Благодаря ней можно быстро и точно вычислять сложные математические выражения. Библиотека имеет очень высокую производительность за счёт оптимизации под большинство типов процессоров [4].

Scikit learn – данная библиотека машинного обучения позволяет создавать нейросети и обучать их как с учителем, так и без учителя. Можно реализовать нейросеть основных топологий и классификаций, к примеру, персептрон, нейросеть Хакимова, Кохонена, Хебба и другие [4].

PyTorch – библиотека машинного обучения, включающая примеры уже обученных нейронных сетей. Имеет собственный компилятор для создания нейросетей - Glow, оптимизирована под любые типы процессоров. Может работать в SaaS (в облаке). У библиотеки большое сообщество [3].

NumPy – также как библиотека Theano, является математической, а значит на ней можно реализовать создание и обучение нейронных сетей. Но лучше ее использовать в связке с какой-нибудь другой библиотекой [4].

Seaborn – библиотека с хорошей визуализацией данных, благодаря которой скорость обучения, разработки нейронных сетей и создания приложений вырастает в разы. Лучше использовать в связке с другими библиотеками [4].

PyBrain – одна из самых лучших Python библиотек для создания и обучения нейросетей. Благодаря ней можно создать нейросеть любых классификаций и топологий. Подходит как для начинающих изучение нейронных сетей, так и для исследователей в этой области [2].

CNTK (Computational Network Toolkit – инструментарий вычислительной сети)

– решение от кампании Майкрософт, позволяющая создавать и обучать нейронные се-

114

ти. Библиотека содержит в себе реализации многих известных методов обучения нейронных сетей, которые позволяют сократить большинство операций, благодаря которым программистам, создающим нейросети, можно сконцентрировать своё внимание только на создании нейронной сети, соответствующей требованиям заказчика. Можно скачать Nuget пакетом, в IDE Visual Studio от Microsoft [5].

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

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

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

Список литературы

1.Библиотека FANN. Создание простой нейронной сети на C++ - 1q5p6 [сайт]. – URL: https://1q5p6.blogspot.com/2015/11/fann.html (дата обращения 10.04.2023).

2.PyBrain работаем с нейронными сетями на Python - habr [сайт]. – URL: https://habr.com/ru/articles/148407/ (дата обращения 10.04.2023).

3.WELCOME TO PYTORCH TUTORIALS - pytorch [сайт]. – URL: https://pytorch.org/tutorials/ (дата обращения 10.04.2023).

4.Топ 8 библиотек Python для машинного обучения и искусственного интеллекта - pythonist [сайт]. – URL: https://pythonist.ru/top-8-bibliotek-python-dlya-mashinnogo-obucheniya-i- iskusstvennogo-intellekta/ (дата обращения 10.04.2023).

5.CNTK — нейросетевой инструментарий от Microsoft Research - habr [сайт]. – URL: https://habr.com/ru/companies/microsoft/articles/275959/ (дата обращения 10.04.2023).

УДК 004.4

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

М.С. Смердова – студент, магистр 1-го курса; С.В. Каштаева – научный руководитель, канд. экон. наук, доцент ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия

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

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

115

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

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

Анализ эффективности методов разработки архитектуры ПО можно провести с помощью следующих шагов:

1.Определить виды проектов, для сравнения эффективности проектирования методов на разных программах.

2.Определить цели и требования каждого проекта. Это поможет выбрать наиболее подходящий метод разработки архитектуры.

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

4.Проанализировать полученные данные и сравнить их между собой.

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

Цели проекта: разработать простой калькулятор; получить опыт разработки маленьких проектов в кратчайшие сроки.

Требования к проекту: калькулятор должен поддерживать основные арифметические операции; калькулятор должен иметь простой интерфейс ввода и вывода; калькулятор должен обрабатывать ошибки ввода и выводить сообщение об ошибке при необходимости.

Методы проектирования архитектуры применимые к проекту:

Метод MVP (Model-view-presenter) – это архитектурный шаблон, который разделяет приложение на три компонента: модель, представление и презентер. Где модель отвечает за хранение данных и выполнение вычислений, представление отвечает за отображение пользовательского интерфейса и обработку пользовательского ввода, а презентер отвечает за управление взаимодействием между моделью и представлением [1].

Метод TDD (Test-driven development) – это методология, которая основана на создании тестов для проверки функциональности перед написанием кода [2].

Метод DDD (Domain-driven design) – это методология, которая помогает создавать программное обеспечение, отражающее реальный бизнес-процесс и фокусирующееся на бизнес-логике [3].

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

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

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

116

Результаты проектирования методом MVP. Преимущества метода MVP, вы-

деленные при разработке калькулятора: ускорение процесса разработки; снижение затрат на разработку; избежание ненужных затрат на разработку функций.

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

Недостатки метода MVP, выделенные при разработке калькулятора: узкий фокус на базовой функциональности; игнорирование дополнительных потребностей пользователей; возможность потребности в доработке архитектуры; снижение эффективности метода при разработке более сложных продуктов.

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

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

Результаты проектирования методом TDD. Преимущества метода TDD, вы-

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

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

Недостатки метода TDD, выделенные при разработке калькулятора: необходимость в дополнительном времени на написание тестов; необходимость в специальных навыках, которые требуют определенной методологии и понимания принципов написания тестов.

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

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

иего требований.

Результаты проектирования методом DDD. Преимущества метода DDD, вы-

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

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

Недостатки метода DDD, выделенные при разработке калькулятора: требует больше времени на начальном этапе разработки; подход более сложный для маленьких

117

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

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

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

Список литературы

1.MVP (Model View Presenter) Architecture Pattern in Android with Example. - Текст : электронный // GeeksforGeeks : [сайт]. - URL: https://www.geeksforgeeks.org/mvp-model-view- presenter-architecture-pattern-in-android-with-example/ (дата обращения: 05.04.2023).

2.Test Driven Development (TDD). - Текст : электронный // GeeksforGeeks : [сайт]. - URL: https://www.geeksforgeeks.org/test-driven-development-tdd/ (дата обращения: 11.04.2023).

3.Domain-Driven Design (DDD). - Текст : электронный // GeeksforGeeks : [сайт]. - URL: https://www.geeksforgeeks.org/domain-driven-design-ddd/ (дата обращения: 17.04.2023).

УДК 004.384

ПРОГРАММИРУЕМЫЕ ЛОГИЧЕСКИЕ КОНТРОЛЛЕРЫ

В.В. Столяров – студент, гр. ИСб-21; О.А. Зорин – научный руководитель, канд. техн. наук, доцент

ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия

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

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

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

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

118

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

Программируемый контроллер интересен тем, что может использоваться в самых различных случаях и позволяет создавать типовую систему, т. е объединять программное обеспечение и технические средства, что без особой сложности позволяет получить параметрируемые решения. Нужно понимать, что пользователь не программирует находящееся внутри контроллера цифровое вычислительное устройство, а лишь в привычной для него форме, описывает поставленную перед ним задачу. В это связи термин «контроллер» в сочетании со словом «программируемый» не совсем корректны, хотя повсеместно используются, применение программируемых логических контроллеров имеет большое экономическое значение. Важно понимать, что при четко поставленных задачах отпадает необходимость в продвинутых ЭВМ(продвинутых по сравнению с программируемыми контроллерами) для программирования каждого частного случая применения [2].

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

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

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

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

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

Список литературы

1.Парр, Э. Программируемые контроллеры: руководство для инженера /Э. Парр. – М.: БИНОМ. Лаборатория знаний, 2007. ‒ 516 с. ISBN 978-5-94774-340-1

2.Мишель, Ж. Программируемые контроллеры: архитектура и применение / Ж. Мишель. - М.: Машиностроение, 1986.

УДК 004:631

ЦИФРОВИЗАЦИЯ ОТРАСЛЕЙ СЕЛЬСКОГО ХОЗЯЙСТВА

С.В. Сыромятникова ‒ аспирант; Н.А. Сыромятников ‒ студент;

Е.А. Муратова ‒ канд. экон. наук, доцент ФГБОУ ВО Пермский ГАТУ, г. Пермь, Россия

119

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

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

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

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

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

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

Внедрение цифровых технологий в сельском хозяйстве предусмотрено в Стратегии развития информационного общества в Российской Федерации на 2017-2030 годы (государственная программа «Цифровая экономика Российской Федерации).

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

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

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

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

120

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]