Научная статья на тему 'ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON В ИМИТАЦИОННОМ МОДЕЛИРОВАНИИ'

ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON В ИМИТАЦИОННОМ МОДЕЛИРОВАНИИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
524
98
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ / УПРАВЛЕНИЕ ПРОИЗВОДСТВОМ / ВЫБОР НАДЁЖНОГО ВАРИАНТА / PUTHON / АНАЛИЗ ДАННЫХ / ПРОГРАММИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бадика Егор Максимович, Зырянов Дмитрий Александрович, Бабчинецкий Сергей Геннадьевич

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бадика Егор Максимович, Зырянов Дмитрий Александрович, Бабчинецкий Сергей Геннадьевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

USING THE PYTHON PROGRAMMING LANGUAGE IN SIMULATION MODELING

This article discusses the use of the Python programming language in simulation modeling. Examples of areas where these models are used are given, as well as simple listings of programs used for data analytics and simulation modeling are considered by example. The forecast about the future development of simulation modeling systems is given.

Текст научной работы на тему «ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON В ИМИТАЦИОННОМ МОДЕЛИРОВАНИИ»

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

1. Шелковников Евгений Юрьевич, Шляхтин Константин Алексеевич, Шелковникова Татьяна Евгеньевна, Егоров Станислав Феликсович ПРИМЕНЕНИЕ НЕЙРОННОЙ СЕТИ АРХИТЕКТУРЫ U-Net ДЛЯ СЕГМЕНТАЦИИ СТМ-ИЗОБРАЖЕНИЙ // Химическая физика и мезоскопия. 2019. №2. URL: https://cyberleninka.ru/article/n/primenenie-nei-ronnoi-seti-arhitektury-u-net-dlya-segmentatsii-stm-izobrazhenii (дата обращения: 13.05.2022).

2. Горелов Антон Игоревич Обучение сети yolo для распознавания отходов в городской среде // Вестник науки и образования. 2019. №9-4 (63). URL: https://cyberleninka.ru/article/n7obuchenie-seti-yolo-dlya-raspoznavaniya-othodov-v-gorodskoy-srede (дата обращения: 13.05.2022).

3. Друки Алексей Алексеевич, Спицын Владимир Григорьевич, Болотова Юлия Александровна, Башлыков Артём Андреевич Семантическая сегментация данных дистанционного зондирования Земли при помощи нейросетевых алгоритмов // Известия ТПУ. 2018. №1. URL: https://cyberleninka.ru/article/n/semanticheskaya-segmentatsiya-dannyh-distantsionnogo-zondirovaniya-zemli-pri-pomoschi-neyrosetevyh-algoritmov (дата обращения: 13.05.2022).

4. Айзенберг Игорь Наумович Некоторые алгоритмы обработки изображений и их реализация на нейросетях // КО. 1997. №17. URL: https://cyberleninka.ru/artide/n/nekotorye-algoritmy-obrabotki-izobrazheniy-i-ih-realizatsiya-na-neyrosetyah (дата обращения: 13.05.2022).

© Е.М. Бадика, Д.А. Зырянов, С.Г. Бабчинецкий 2022.

УДК 004.021

ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ PYTHON В ИМИТАЦИОННОМ

МОДЕЛИРОВАНИИ

Бадика Егор Максимович, Зырянов Дмитрий Александрович Badika Egor Maksimovich, Zyryanov Dmitry Aleksandrovich

Студент Student

Санкт-Петербургский государственный университет аэрокосмического приборостроения

Saint-Petersburg State University of Aerospace Instrumentation Бабчинецкий Сергей Геннадьевич Babchinetsky Sergey Gennadievich

Магистрант Master's student

Санкт-Петербургский государственный университет аэрокосмического приборостроения

Saint-Petersburg State University of Aerospace Instrumentation

USING THE PYTHON PROGRAMMING LANGUAGE IN SIMULATION MODELING

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

Abstract: This article discusses the use of the Python programming language in simulation modeling. Examples of areas where these models are used are given, as well as simple listings of programs used for data analytics and simulation modeling are considered by example. The forecast about the future development of simulation modeling systems is given.

Ключевые слова: Имитационное моделирование, управление производством, выбор надёжного варианта, Puthon, анализ данных, программирование.

Keywords: Simulation modeling, production management, choosing a reliable option, Python, data analysis, programming.

Введение

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

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

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

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

Numpy - библиотека, созданная для работы с числовыми массивами на ЯП Python. В имитационной модели может применяться как инструмент создания простейшего потока событий (np.random()), кроме того, распределение можно задать нормальным или случайным с определенным шаблоном чисел, чтобы в дальнейшем использовать тот же самый случайный поток чисел. Кроме того, данная библиотека может быть использована для проведения математических операций с матрицами (числовыми массивами).

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

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

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

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

Примеры применения

import matplotlib.pyplot as plt # Подключаем модуль pyplot библиотеки matplotlib и задаем псевдоним

plt

import numpy as np # Подключаем библиотеку numpy

x = np.linspace(0,15,101) # Генерируем последовательность из 101 числа равнораспределенных в интервале от 0 до 15

plt.plot(x) # Визуализируем график #подписываем оси pltxlabel(V) plt.ylabel('y')

plt.show() # Фиксируем вывод

14 • 12 • 10 -8 -6 -4 • 2 -0 ■

0 20 40 60 80 100

х

Рис. 1 Вывод графика прямой

На данном графике показано применение простого вывода графика у = np.cos(x)

plt.plot(x, у) # Визуализируем график, указав обе оси

#подписываем оси

pltxlabel(У)

plt.ylabel('y')

plt.show() # Фиксируем вывод

В библиотеку Numpy также заложены некоторые математические функции, поэтому, для упрощения кода здесь не используется библиотека math (при её использовании в данном случае нужен цикл, проходящий по каждому значению numpy массива)

Рис. 2 Вывод графика косинусоиды

В данном случае выведен график косинусоиды, где указаны обе оси

import pandas as pd # Библиотека для работы с таблицами

# отсюда выгружаем файл

hh_df = pd.read_csvOСсылка на таблицу')

hh_df = hh_df.iloc[:6] # оставляем первые 6 столбцов

hh_df.head(10) # Верхушка таблицы

0 М 44

1 м 42

г м 46

i м 44

4 м 41

5 м 36

в ж 33

? м 41

t ж 42

« м 46

60000 О Ы0ГЫЙ ни* se поддонам p»:kymm горен

чес*

JjMNYOCU

ирга» иттюь mWb пуица MMWoctk птнв» MMM-tortt» П'ГМ« МмЯИЖТ» занятость петым мыя*осп.

ПТМ1Й ММЯЮСТь

гегмая мметостъ

Мостов го>

МоСЯв ЯВ1МЯ1 ЮИШОСТЪ

МИ rccoa 4ICIM4N MKlfOCk. itQWNIKí c*6oi*. циннии

Рис. 3 Вывод части таблицы

с

rww» irmi гиб*fit (Цффм ГЦГиЫ> atmi т»>ь»» ае»»ь. rflOTHitfi робо'в иГ«м> г(шф*< Tf'»i> ДД"» «щпм«м (мАап попиыА дмк смсь*ыЛ граф*« гогмм! ¿МЫ. пжмьй они. потны* ае*« r*rnuí> жиъ и€*»ч» чшЗь« "tyiii** дх^. hwwww ' imflw уд

В данном случае приведен пример простого вывода таблицы. Ниже приведена небольшая аналитика данных при помощи встроенных графиков Pandas. hh_df['3n'].value_counts0.iloc[:30].plot(kind='bar') рК.ййе('График зарплат') plt.show()

Город

0\ ^

ГО 02

¡в

о

О

О.'

¡5 §

О-

I

О

я

ь

1 1 »

| ♦ Н

! * 1 1111 Г

г 9 г г п I г I ¡585 и 1 |

♦ * г § » 21 ? •и * и» л Ь' * 1

♦ ♦ ♦ ♦ ♦ ♦ ♦ "Э -о о $ -О 8 £ (1 И В ■ X X "а о в « • ♦ ♦ $ #

£ I

4 1 1 £ 5 * 1 ►

Количество

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

о со

"Я 3

г:

о

Си £

К о О/

!\) С О 2 о Л

РЧ §

г: ^

о 2 Ой О

1Л1 §

Ой О РЧ

а о

(Л! §

о

50000.0 40000.0 30000.0 60000.0 80000.0 70000.0 100000.0 35000.0 25000.0 45000.0 150000.0 120000.0 20000.0 90000.0 200000.0 65000.0 130000.0 55000.0 250000.0 180000.0 75000.0 140000.0 15000.0 110000.0 85000.0 300000.0 160000.0 170000.0 10000.0 220000.0

my_array = ^^1^(9,9))

# добавляем строку единиц my_array[4] = 1

# добавляем столбец единиц my_array[:,4] = 1

# выводим массив по цветам палитры plt. imshow(my_array) plt.colorbarO # цветовая полоса colorbar plt.showO

Рис. 7 Вывод тепловой карты

Это пример использования тепловой карты библиотеки Seaborn. Она может быть применена для получения графика корреляции. Ниже приведён код построения графика корреляции (предварительный парсинг данных для получения данной корреляции не приводится ввиду его сложности и объемности): rcParams['figure.figsize'] = 12, 8 # увеличим размер графиков

# Метод, подсчитывающий попарную корреляцию для элементов. corr_matrix = categorical.corr('spearman')

# Можно указать в параметрах способ подсчета.

sns.heatmap(corr_matrix, cmap= 'coolwarm', vmin=-1, center=0, linewidths=2, linecolor='black', annot = True, fmt='.1g')

Пол Возрос I Город Опыт работы Попила занятость

ЧАСТИЧНАЯ ЗАНЯТОСТЬ Проекжал работа С'ажировкд Bwciue« о6рлю*»м«« Н.?о*омченнг№ высшее Среднее специальное Среднее образован** Зарплата

| -0 08 01 -0 05 -0 04 -003 -0.06 0.03 0 009 -0.03 •0.02 •0 0002 4)2

-оов 1 0.03 0.4 0-03 0.02 0.006 0.1 0.2 -0-1 ■0 1 о.ов 0.2

0 1 ■ооз в 0 007 о.ооо« 0.02 0 00« 0 003 004 0.03 0,01 0 02 0.09

-0.05 04 -0 007 в 0 02 -0 006 001 -0.09 0.1 -0.05 ■0 06 •0.07 0.2

-0 04 0 03 0 0006 0 02 1 -0.3 -0.2 -0.07 -0 001 -0.03 001 -001 01

-0,03 -0.02 0.02 -0 006 0.3 в 0.3 0 03 0.05 0.01 0.02 0.07

0 06 0006 •о осе 0 01 0.2 : 0.3 0.05 003 0.04 0 02 0.05

•о.оэ -0.1 0.003 0.09 0 07 о.з 0.J 1 ООО* 0.04 0.02 -0-006 ■0 1

ООО» 0,7 0 04 01 -0 001 0 03 0 05 0 009 1 0.1 « 0 5 0 3

-0.03 •0.1 0 03 •0.05 -0.03 0 05 0 03 004 и I •0,07 •0.07 0 07

-0.02 •0.1 •0.03 0.06 0 01 ■0.01 •0.04 0.02 0.6 -0.07 I 0.09 •0.2

0.0002 о.ов 0.02 0.07 0.01 0.02 0.02 -0 00« 05 0.07 0.00 1 ■01

-0 2 02 0 09 02 0.1 0,07 0 05 XI 1 0.3 -0.07 •0 2 Н 1

в

I

S

О

ё 8

к t

и

5

«

г

I

3

4 в о

t

X

3

1 оо

0 75

■ -0.25

I

-0 50

-0 75

-1.00

Рис. 8 График корреляции

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

Выводы

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

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

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

1.ИТМО «Имитационное моделирование» с. 246-249.

2.Гмурман «Теория вероятностей и математическая статистика» с. 69-71;

3.В.Н.Задорожный «Имитационное и статистическое моделирование» с. 7;

4.Н.Н. Лычкина «Имитационное моделирование экономических процессов» с. 17;

5.В.П. Лисьев «Теория вероятностей и математическая статистика» с. 35, 37-38;

6.Н.Л. Леонова «Имитационное моделирование», с. 6-8.

© Е.М. Бадика, Д.А. Зырянов, С.Г. Бабчинецкий 2022.

i Надоели баннеры? Вы всегда можете отключить рекламу.