Алгоритм сервиса моделирования товарооборота, который представлен нашим сервисом [1], достаточно прост. Один такт работы модели соответствует одному дню работы склада или магазина, при этом вычисление количества товара на каждом такте производится следующим образом:
1 | Если ожидается поставка товара (см. шаги 2 и 6), то уменьшаем время ожидания на 1. |
2 | Если время ожидания поставки товара равно 0 (см. шаги 1 и 6), то увеличиваем текущее количество товара на складе на значение <количество товара в поставке> и снимаем флаг ожидания поставки. |
3 | Вычисляем N - количество товара проданного в этот день как randNorm(<средний объем продаж>/30 , <отклонение объема продаж>/30) |
4 | Моделируем факт продажи товара, при этом:
|
5 | Для формирования ежемесячных статистик, запоминаем:
|
6 | Проверяем количество товара на складе, если оно меньше или равно <пороговому количеству товара> и при этом флаг "ожидание поставки" еще не выставлен, то устанавливаем флаг "ожидание поставки", и вычисляем время ожидания поставки следующим образом:
|
7 | Если текущий день является последним днем месяца (т.е. его номер - это число кратное 30) обновляем значения ежемесячных статистик, используя при этом числа, запомненные на шаге 5, за каждый день этого месяца. |
8 | Обновляем графическую информацию и переходим к шагу 1. |
В алгоритме используются две функции для генерации случайных чисел:
- randNorm(m,d) - случайная величина сгенерированная по нормальному закону распределения с мат. ожиданием m и средне квадратичным отклонением d (кв. корень из дисперсии).
- randExp(m,d) - случайная величина сгенерированная по экспоненциальному закону распределения с средне квадратичным отклонением d (кв. корень из дисперсии) плюс m.
Предложенная модель, как и любая другая, является лишь примерным описанием процесса товарооборота на реальном складе или магазине. В реальной жизни приходится учитывать массу дополнительных тонкостей и параметров. Однако использование подобного моделирования все равно может быть очень полезно для оптимизации деятельности склада. Если у Вас есть предложения по расширению/усложнению данной модели или замечания по алгоритму, мы будем рады их выслушать или сообщите нам любым удобным вам способом со страницы контакты [2] и мы, по возможности, учтем их в новых версиях сервиса.