Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Дилемма парикмахера и приоритеты
В очереди в магазине стоят пять человек, делающих приблизительно равными покупки. При этом их обслуживание продавцом занимает приблизительно равное время, скажем 6 мин на каждого. Дверь в торговый зал открывается, и входит молодой человек, пришедший купить сигареты. Его обслуживание занимает 30 с. Молодой человек, пришедший за сигаретами, становится в общую очередь. Посмотрим, как развертываются события, начиная с этого момента. Продавец начинает обслуживание первого стоящего в очереди клиента, и время его ожидания равно нулю. Второй клиент ждет 6 мин, третий— 12 мин, четвертый—18 мин, пятый—24 мин, и молодой человек, пришедший за сигаретами,— полчаса. Суммарное время, которое все покупатели провели в очереди, равно полутора часам, В среднем по 121
15 мин на человека. Запомним эту цифру. Теперь предположим, что молодой человек купил свои сигареты без очереди. Тогда он, вместо получасового стояния в очереди, не затратил никакого времени на ожидание. А последовательность времен ожидания людей, стоявших до его прихода в очереди, имеет вид 0,5; 6,5; 12,5; 18,5; 24,5 мин. При этом полное время ожидания равно 62,5 мин, а среднее время ожидания равно 10,4 мин, т. е. уменьшилось почти в полтора раза. Средняя длина очереди за рассматриваемый отрезок времени изменилась с 2,4 до 2. Конечно, приведенное рассуждение лишь приблизительно отражает картину, так как в нашем примере поступление клиентов прекратилось с момента прихода молодого человека за сигаретами. Однако наш пример поясняет механизм, который обеспечивает снижение средней длины очереди и среднего времени ожидания обслуживания в том случае, когда быстро обслуживаемым клиентам в очереди назначается приоритет. Оказывается, что Остап Бендер был прав, требуя чтобы его пропустили без очереди, так как ему «только справку». Заметим, однако, и это знает каждый, стоявший в очереди, что нет такой силы, которая может заставить человека, стоящего в очереди, захотеть пропустить без очереди другого, т. е. увеличить свое собственное время ожидания, даже, если он твердо знает, что это улучшит общие характеристики системы обслуживания. Если трудно представить себе побудительные мотивы, которые могли бы сформировать систему приоритетов в очереди, то следует подумать, как такую систему могут навязать очереди каналы обслуживания. Для этого, однако, необходимо внести в правила взаимодействия клиентов и каналов право каналов назначать приоритеты или, что равнозначно, право выбирать из очереди клиентов га обслуживание. Теперь из магазина мы перейдем в парикмахерскую, в которой работают несколько равноценных мастеров (система с несколькими равноценными каналами обслуживания). В парикмахерскую приходит несколько категорий клиентов, отличающихся друг от друга временем обслуживания — клиенты, желающие только побриться, клиенты, желающий сделать простую или фасонную стрижку, клиенты, 128 Желающие постричься, побриться и сделать массаж лица и т. п. Как мы уже отметили, для уменьшения средней длины очереди имеет смысл пропустить без очереди тех, кто обслуживается быстро. Если времена обслуживания клиентов известны заранее, то на этом основании в парикмахерской может быть вывешен список приоритетов, составленный по принципу «короче обслуживаешься — раньше обслуживаешься». В этой ситуации опять же заявление Остапа «мне только справку» может служить достаточным основанием для нарушения очереди (дополнительное заявление о не снятых калошах находится вне нашей модели). Список приоритетов может быть достаточно простым. Например, «бреем без очереди!» Сложнее обстоит дело, когда времена обслуживания заранее неизвестны, могут быть случайными величинами и, вообще говоря, могут изменяться во времени. В этом случае мы должны формировать так называемые динамические приоритеты в процессе функционирования системы. В рамках интересующего нас подхода система приоритетов должна порождаться коллективным поведением каналов обслуживания. Для организации коллективного поведения нам необходимо так сформулировать в этой задаче индивидуальные предпочтения, чтобы, добиваясь максимального удовлетворения индивидуальных потребностей для совокупности клиентов, достигать и требуемый общесистемный эффект. Как мы уже отмечали, трудно предложить правдоподобные критерии, делающие для клиента предпочтительным увеличение времени пребывания в очереди. А вот для канала обслуживания такие критерии можно предложить сравнительно легко. Допустим (и это допущение достаточно естественно) , что парикмахер стремится к максимизации своего заработка. Тогда, если с точки зрения парикмахера клиент, обслуживаемый быстро, будет выгоднее клиента, обслуживаемого долго, то парикмахер будет изыскивать способы протащить такого клиента без очереди. Ситуация, в которой освободившийся парикмахер берет из очереди своего постоянного клиента, если последний ему достаточно выгоден, знакома многим. В ряде случаев такое действие вызывает возмущение очереди, но мы уже выше 123 Договорились узаконить право парикмахера иметь любимчиков». Перед обращением за очередным клиентом паракмахер может объявить, например, что студентов он обслуживает вне очереди. Но, как мы уже отметили, клиент, обслуживаемый быстро, должен быть выгоден для парикмахера. Этого можно добиться, введя постоянную плату за обслуживание. Вообще говоря, постоянная плата за обслуживание может привести к росту времени обслуживания — «Раз уж я заплатил деньги, то почему бы не обслужиться по полному кругу»: поэтому можно, как в такси, ввести «плату за посадку», не зависящую от времени обслуживания. Мы начали с того, что в качестве системы обслуживания могут выступать системы самой различной природы, а не только системы, в которых клиентами и каналами служат люди. В' качестве системы обслуживания могут выступать самые разнообразные технические системы: системы связи, вычислительные машины, транспортные системы (например, система транспортерных лент, питающих углем бункеры ТЭЦ) и многое другое. Поэтому, изучая поведение каналов и клиентов в таких системах, мы будем стремиться формализовать их поведение. Формализовать так, чтобы его можно было реализовать достаточно простыми техническими средствами. Такой подход, кроме всего прочего, поможет нам строить и изучать модели организации коллективного поведения в системах обслуживания. Если же в реальном мире локальные задачи будут решаться более тонкими и «разумными» средствами, то тем лучше для системы. Однако для наглядности изложения мы на некоторое время сохраним терминологию парикмахерской. Разделим всех клиентов на несколько типов. Каждый тип клиентов требует времени обслуживания, лежащего в некотором своем интервале. Каждому типу клиентов присвоим номер, одинаковый для всех клиентов данного типа, и назовем его номером клиента. Все клиенты, независимо от их номера, вносят до поступления в канал обслуживания одну и ту же плату. Пусть эта плата состоит из К одинаковых монет, которые парикмахер кладет в копилку. После обслуживания, длившегося Т единиц времени, парикмахер вынимает из копилки Т монет. Если 124 К=<Т, то в копилке ничего не остается и клиент не фиксируется. Если же К > Т, то в копилке остается (К—Т) монет и парикмахер вешает на копилку номер клиента. Клиент, номер которого висит на копилке, в следующий раз имеет право на обслуживание без очереди. Если К равно среднему по всей системе времени обслуживания, то приоритет получат клиенты, длительность обслуживания которых меньше, чем среднее в системе. Если имеющий приоритет клиент вновь придет на обслуживание, внесенная им плата добавится к остатку, находящемуся в обозначенной его номером копилке. Таким образом, за достаточный для этого отрезок времени, все клиенты, время обслуживания которых меньше среднего, будут упорядочены по значениям содержимого копилок, т. е. по средним временам обслуживания, отнесенным к частотам обслуживания клиентов. Действительно, если клиенты типа А дают доход 1 руб и приходят 10 раз в день, то они безусловно выгоднее клиентов типа Б, дающих доход 100 руб., но приходящих 1 раз в месяц. Если все типы клиентов упорядочены и имеют свои номера приоритетов, то для оптимизации длины очереди клиенты типа Б все равно должны иметь приоритет ниже, чем у клиентов типа А, хотя эффект от такого упорядочивания и невелик. Приведенный способ формирования приоритетов мало чем отличается от набора в процессе функционирования статистической информации о характеристиках клиентов и решения на этом основании задачи об оптимальной системе приоритетов. Нас такое решение задачи не должно удовлетворять. Во-первых, техническая сложность системы начинает зависеть от количества типов клиентов. Чем их больше, тем больше надо иметь копилок. Во-вторых, при такой постановке задача организации децентрализованного управления теряет содержательный смысл — на каждом канале обслуживания решается полная задача об оптимальной системе приоритетов. Попытаемся упростить систему и, быть может, тем самым выявить некоторые новые привлекательные черты ее поведения. Ограничим число приоритетов на каждом канале. Пусть каждый парикмахер может иметь лишь ограниченное, весьма небольшое количество «любимчиков». 125
В простейшем случае—двух. Теперь парикмахеру достаточно иметь всего две копилки. Но тогда двое первых оказавшихся выгодными клиентов захватят приоритет на этом канале и, следовательно, формирование системы приоритетов прекратится. Для того чтобы избежать возможности попадания в такие тупиковые состояния, организуем конкуренцию клиентов на канале. Если на обслуживание поступает клиент, не имеющий приоритета по этому каналу, содержимое копилок сравнивается между , собой и копилка, имеющая меньший запас, очищается и начинается работа с новым клиентом. Здесь естественно возникает вопрос о необходимом числе копилок. Их, как видно, должно быть не менее двух, но и не более числа типов клиентов. Исследование поведения таких систем показало, что увеличение числа копилок сверх двух приводит к незначительным изменениям качества функционирования, несоизмеримым с затратами на усложнение системы управления. При построении такой системы возникает еще один вопрос. Если копилка захвачена клиентом, имеющим сравнительно небольшое, но явно не минимальное среднее время обслуживания, и этот клиент сумеет накопить достаточно большую сумму в своей копилке, то очень мала вероятность того, что другие клиенты, используя оставшиеся копилки, сумеют превзойти его, хоть и медленно, но постоянно растущий запас. Если же, начиная с некоторого момента, клиент вообще перестал посещать парикмахерскую, то очень велика вероятность того, что на канале будет удерживаться приоритет несуществующего клиента и опять-таки функционирование системы будет блокировано. Конечно, все эти трудности можно устранить повышением «интеллектуального уровня» правил формирования приоритетов. Но это уже называется «пускаться во все тяжкие», а нас интересуют возможности формирования простейших правил взаимодействия и алгоритмов оптимизации. Отсюда не следует, что если нам встретился умный парикмахер, то он должен зарыть свой талант в землю. Простейшим выходом из создавшегося положения является ограничение объема копилки. Если копилка переполнится, то избыточные деньги сдаются в кассу. Оказывается, что введение такого ограничения улучшает 126 поведение системы в случае, когда характеристики клиентов изменяются во времени и что для каждой степени нестационарности системы, т. е. для каждого среднего времени между изменениями характеристик клиентов, существует оптимальная емкость копилки, при которой средняя длина очереди минимальна. При этом, чем чаще изменяются характеристики, тем меньше должна быть емкость копилки. Здесь уместно вспомнить о существовании оптимальной глубины памяти целесообразных автоматов при их поведении в переключающихся случайных средах. Аналогия здесь полная. Действительно, чем меньше емкость копилок, тем выше способность системы к переучиванию, тем она подвижнее, лабильнее. Однако, чем меньше емкость копилок, тем труднее системе различать между собой выгодных клиентов, тем грубее она работает. Оптимальная емкость как раз и соответствует компромиссу между качеством решения и временем, необходимым для его нахождения. Выработка приоритетов для каналов (причем разных для разных каналов) улучшает еще одно качество системы — количество переключении. Переключением мы называем переход от обслуживания клиентов одного типа к обслуживанию клиентов другого типа. Если подряд обслуживаются два клиента одного типа, то переключения не происходит. Легко понять, что если данный канал, и только он предоставляет приоритет некоторому типу клиентов, то подавляющее большинство клиентов такого типа поступает на обслуживание именно на этот канал, что уменьшает разнообразие типов клиентов на канале и, как следствие, снижает частоту переключении. Что дает системе снижение числа переключении? Во-первых, переключение всегда связано с потерями. Это либо расходы на переналадку оборудования, либо, как в случае систем связи, источник дополнительных помех, либо дополнительная потеря времени. Во-вторых, снижение числа переключении приводит к специализации канала обслуживания, что, как правило, приводит к снижению времени обслуживания приоритетных клиентов. Здесь мы коснулись вопроса, который несколько расширяет нашу модель. Очевидны случаи, когда один и тот же клиент на разных каналах имеет 127 разное время обслуживания и различные времена обслуживания имеют разные клиенты на одном и том же канале. В этом случае перераспределение клиентов по каналам будет изменять не только среднюю длину очереди, но и пропускную способность системы. |
Последнее изменение этой страницы: 2019-05-06; Просмотров: 230; Нарушение авторского права страницы