Ответ на загадку про кассовые аппараты


Автор:

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

Спешу сообщить, что докупить нужно всего 1 кассовый аппарат. Почему?

Давайте смоделируем ситуацию, используя системную динамику и продукт iThink. Для начала прикинем, какие у нас будут резервуары: по идее, каждый посетитель магазина сначала попадает в торговый зал, далее встает в очередь в кассу (если на кассе кто-либо есть), ожидает своей очереди, пробивает товар и оплачивает покупки. Я выделил 3 резервуара:

  1. Посетители в торговом зале
  2. Посетители в очереди в кассу
  3. Посетители на кассе

Этих 3х резервуаров должно быть достаточно, чтобы описать нашу ситуацию. Теперь следует разобраться в потоках: что наполняет и опустошает каждый из вышеупомянутых резервуаров?

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

Picture 2
Заметьте, что резервуары “Посетители в торговом зале” и “Посетители на кассе” я реализовал как “конвейеры”, чтобы реализовать задержки времени:

  • во-первых, тот факт, что посетители подходят к кассе каждую минуту +-15 секунд
  • во-вторых, тот факт, что посетителей обслуживают на кассе за 1 минуту +- 10 секунд

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

Как мы реализовали распределение значений времени подхода клиентов к очереди в кассу и времени обслуживания клиента на кассе? Элементарно: воспользовавшись встроенной в iThink функцией NORMAL, которой нужно подать 2 значения: среднее и величину отклонения. Поэтому интенсивность потоков “подходят к кассе” и “уходят из магазина” соответственно определена как NORMAL(1,0.25) и NORMAL (1,0.16), что соответствует условиям задачи.

Также для замера среднего времени обслуживания клиента (время в очереди + время на кассе) мы воспользуемся функцией CYCLE TIME (значок секундомера в определении потока – см. картинку ниже, правый верхний угол). Так как мы хотим измерять среднее время от момента подхода к очереди до момента ухода из магазина, то включаем секундомер мы для потока “подходят к кассе”,  а останавливаем для потока “уходят из магазина” (путем определения конвертера с функцией CTMEAN(уходят из магазина)).

Picture 3

Picture 4

Вот что у нас в итоге получилось (см. ниже) – элементарно, не правда ли?

Picture 1

Итак, модель определена, давайте запустим ее и посмотрим сколько как будет вести себя резервуар “Посетители в очереди в кассу” и конвертер “среднее время обслуживания посетителя” в течение 1000 минут? Мы видим, что очередь в кассу, а следом и время обслуживания постепенно растут! Получается что, несмотря на соответствие среднего времени обслуживания клиента на кассе среднему времени подхода клиентов к очереди в кассу, разброс статистических отклонений  накапливается (Голдратту привет :-) ) и выражается в росте очереди!

Picture 1

Что же делать? Докупить кассовых аппаратов! Но сколько? Время обслуживания каждого клиента постепенно поднялось до 18 минут, т.е. если учесть, что каждый клиент обслуживается максимум 1 минуту 10 секунд на кассе, то почти 17 минут он ждет в очереди. Интуиция подсказывает, что нужно докупить еще как минимум 4-5 аппаратов, но давайте проверим это на модели.

Мы меняем определение интенсивности потока “переходят на кассу” с “IF (посетители_на_кассе<1) THEN 1/DT ELSE 0″ (т.е. если на кассе меньше одного человека, то интенсивность потока равна 1, в противном случае 0) на “IF (посетители_на_кассе<2) THEN 1/DT ELSE 0″ (т.е. если на кассе меньше 2х человек, то интенсивность потока равна 1, в противном случае 0). Почему мы позволяем себе делать предположение, что 2 кассовых аппарата эквивалентно способности одной кассы обслужить 2 человек? Это очередной вопрос для вас, дорогие читатели!

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

Какие выводы мы можем сделать из результатов нашего эксперимента? Комментируйте!

Скачать модель


7 отзывов

  • By Alikina Natalya, July 30, 2009 @ 8:59 pm

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

    Ответить

    Bayram Annakov Ответ:

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

    Ответить

  • By Арсений Нуриджанов, August 4, 2009 @ 4:14 pm

    признаться, такой простой модели я не ожидал.

    Ответить

    Bayram Annakov Ответ:

    В этом прелесть iThink и сисдинамики :)

    Ответить

  • By Павел Кабир, November 18, 2010 @ 2:40 pm

    “Почему мы позволяем себе делать предположение, что 2 кассовых аппарата эквивалентно способности одной кассы обслужить 2 человек?”

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

    Ответить

    Алексей Орлов Ответ:

    Все равно соседняя очередь будет идти быстрее согласно закону Паркинсона.

    Ответить

  • By Владимир, December 7, 2011 @ 3:05 pm

    (1) А что означает оценка “посетители подходят к кассе каждую минуту +-15 секунд”? Если это средние данные за рабочий день, то это означает, что бывают интервалы рабочего дня, когда посетителей в торговом зале мало и они приходят к кассе гораздо реже указанной оценки, и в тоже время есть интервалы (например, час пик в вечернее время), когда посетителей много, и они приходят к кассе чаще чем 1 минута+-15 сек. Если это так, то приведенные рассуждения о росте очереди и необходимости еще 1 кассы, сделанные на основании средней загрузки кассы и заполненности торгового зала в течении дня не очень полезны?

    Ответить

Ссылки на эту статью

Оставить отзыв

WordPress Themes