ОСОБЛИВОСТІ ПРОГРАМУВАННЯ АЛГОРИТМІВ І СТРУКТУР ДАНИХ ПРИ ПРОГНОЗУВАННІ АВТОМОБІЛЬНОГО ТРАФІКУ
DOI:
https://doi.org/10.31891/2307-5732-2024-331-38Ключові слова:
алгоритм, структура даних, програмування, програмне забезпечення, база даних, прогнозування автомобільного трафікуАнотація
У роботі проаналізовано можливі варіанти організації структур і сховищ даних при побудові системи, яка передбачає моніторинг і прогнозування автомобільного трафіку. Враховано особливості реалізації цих структур даних мовою Python на основі використання пакетів NumPy, Pandas. Приділено особливу увагу використанню переліків, багатовимірних масивів та словників у якості структур даних та файлів різного типу і баз даних в якості сховищ даних. Створено вебдодаток на основі використання фреймворку розробки вебдодатків Django. Запропоновано і представлено відповідну структуру реляційної бази даних для підтримки організації сховища. Розроблений вебдодаток дозволив визначити час виконання різних сценаріїв використання структур даних на основі відповідних алгоритмів у складі програмної системи. Експерименти виконувались з заповненням сховищ даних даними спостережень за автомобільним трафіком за 59 станціями з 1.01.2019 року по 30.09.2022 року в місті Мадрид. Базові сценарії відслідковування включають читання даних, відбір даних. Прогнозування автомобільного трафіку заплановано виконувати для умов обмеженості ресурсів. Передбачено підготовку даних як у вигляді часових рядів, так і для реалізації необхідного в такому випадку відбору релевантних станцій. Враховано можливості створення індексів для пришвидшення пошуку. Надано рекомендації щодо вибору структур даних для підтримки різних варіантів застосування таких програмних систем. Попередньо структуровані дані у вигляді переліків і словників за умов швидкого доступу є достатньо ефективною основою для організації вибору і підготовки даних для виконання відповідних функцій у програмі. Загалом у випадку необхідності читання даних з файлів перед виконанням відповідних операцій звернення до бази даних є більш доцільним варіантом підтримки таких функцій.