Научная статья на тему 'Итерационный алгоритм диспетчерского управления'

Итерационный алгоритм диспетчерского управления Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
157
37
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АЛГОРИТМ / ДИСПЕТЧЕРСКОЕ УПРАВЛЕНИЕ / ЛИФТ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Никонов В.Н., Силивонец М.В.

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

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

AN ITERATIVE ALGORITHM OF DISPATCHING CONTROL

An iterative algorithm of dispatching control, exceeding standart algorithms in terms of throughput, passengers service quality and energy efficiency is created.

Текст научной работы на тему «Итерационный алгоритм диспетчерского управления»

Доклады БГУИР

2013 № 2 (72)

УДК 621.876.11 + 519.872.2

ИТЕРАЦИОННЫЙ АЛГОРИТМ ДИСПЕТЧЕРСКОГО УПРАВЛЕНИЯ

ВН. НИКОНОВ, М.В. СИЛИВОНЕЦ

Белорусский государственный университет информатики и радиоэлектроники П. Бровки, 6, Минск, 220013, Беларусь

Поступила в редакцию 1 ноября 2012

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

Ключевые слова: алгоритм, диспетчерское управление, лифт.

Введение

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

Оценим трудоемкость задачи поиска оптимального распределения вызовов между лифтами в группе. Пусть некоторое высотное здание, содержащее К этажей, обслуживает группа из п (п<К) лифтов. Предположим, что с каждого /-го (/=1,2,..., К) этажа здания в любой момент времени могут поступать запросы на обслуживание типа «Вверх» и «Вниз» (креме крайних этажей, где имеет смысл запрос только в одном направлении), причем запросы обоих типов могут поступать одновременно. Для формализации задачи примем:

- время перехода лифта на 1 этаж (т ) вверх или вниз одинаково для всех лифтов группы;

- время посадки/высадки пассажиров в лифт (кт) одинаково для всех лифтов группы. Нужно разбить все множество запросов М, поступающих с различных этажей здания,

п

на такие непересекающиеся подмножества Мг (М = , 7= 1, 2,...,«), чтобы максимальное

¡=1

время отработки 7-м лифтом подмножества запросов М7 с учетом уже имеющегося внутреннего задания было минимальным. Т.е. было минимальным время

Т = тах{Т;/ = 1,2,..., п}, (1)

где Т - общее время обслуживания всех запросов; Т{ - время обслуживания 7-м лифтом подмножества запросов М-.

Время обслуживания 7-ым (7 = 1, 2, ..., п) лифтом подмножества запросов М] будет в свою очередь, складываться из времени движения мо лифта от его текущего положения до самого «дальнего» по числу этажей запроса из подмножества М7, а также времени посадки/высадки пассажиров во время обслуживания всех запросов из подмножества М7 и всех «внутренних» заданий на обслуживание этажей, не входящих в подмножество М7 и расположенных между этажом текущего положения 7-го лифта и этажом самого «дальнего» запроса из подмножестваМ7 , т.е.:

Т =т| N - №р\ + к-т-mi + к ■т■vi, (2)

где т1 = |МТ| - число запросов в подмножестве М{; И'Т - номер этажа, на котором в текущий момент времени находится 7-ый лифт; И'Р - номер наиболее «дальнего» этажа относительно этажа И'т, запрос с которого включен в подмножество Mi; V, - число «внутренних» заданий на обслуживание этажей, расположенных между этажами И'т и И'Р не входящих в подмножество МТ-Подставляя (2) в (1), получаем:

Т ={ т|N -+ кх(щ +vl);1 = 1,2,...,п }. (3)

Таким образом, задача управления групповым взаимодействием лифтов сводится к задаче разбиения множества текущих запросов М на такие непересекающиеся подмножества Mi (т = 1,2,..., п) запросов для каждого лифта группы, в результате которого достигался бы минимум целевой функции (З).Данную задачу можно отнести к классу комбинаторных задач, для решения которых существует ряд методов. Однако все эти методы так или иначе требуют полного перебора возможных вариантов, число которых при решении задачи будет равно:

С = (2п - 1)т, (4)

где т = | М | - число запросов, п - число лифтов.

В максимальном случае т = 2(К - 1), где К - число этажей в здании. Поэтому:

С = (2п -1)2(^-1). (5)

Рассмотрим в качестве примера здание из первого контрольного сценария работы [1]. Число этажейв рассматриваемом здании 20, а число лифтов - 4. Получаем:

С = (24 -1)38 * 2152. (6)

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

Описание методики

В работе [2] предложен иной подход к подобной проблеме комбинаторного распределе-нияцелей, основывающийся на стратегии распределенного или коллективного принятия решения. Этот подход основывается на итерационном алгоритме оптимизации, суть которого заключается в последовательном выборе каждым объектом, входящим в группу, такой цели, которая давала бы экстремальное приращение целевого функционала при фиксированном выборе всех остальных объектов группы. Итерационный процесс оптимизации продолжается до тех пор, пока в двух последовательных циклах итерации значение целевого функционала не изменяется.

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

Предположим, существует некоторое начальное разбиение множества запросов М на подмножества М/ (Т = 1,2,., п,]= 0,1,., где] - шаг итерации). Итерационный алгоритм оптимизации предполагает последовательную попытку каждого лифта группы улучшить начальное распределение для минимизации целевой функции (3). Сначала попытку делает первый лифт. Среди множества запросов М он выделяет подмножество М! (т = 1) допустимых для него запросов, удовлетворяющих указанным выше ограничениям, и в тоже время не включенных ранее в множество М/. Далее из подмножества М] выделяется запрос, который включается в

множества М/. В результате получаем новое множество М/+1. Заметим, если ранее данный запрос был включен в некоторое другое подмножество М^, обслуживаемое /ым лифтом, то соответственно это подмножество должно уменьшиться на этот запрос, т.е. /-ый лифт также должен

обслуживать новое множество запросов Mj1. Далее определяется значение величины:

AT = T5J+1 - T6j = max{ \N' - N^11 + k(mJ+1 +vj+1); i = 1,2,..., n } -

, . ., (7)

- max{ \N'T - N'PJ + k(mj + vj );i = 1,2,..., n },

где Tj - время обслуживания, получаемое при старом распределении запросов, когда 7-ый и f-ый лифты обслуживают множества запросов Mf и Mj соответственно; Toj+1 - время обслуживания, получаемое при распределении запросов, где 7-ый и f-ый лифты обслуживают множества запросов M/+1 и Mj+1 соответственно; Nij - номер самого дальнего этажа в множестве

М{; NPj+1 - номер самого дальнего этажа в множестве M/ +1; vj - число «внутренних» заданий 7-го лифта на обслуживание этажей, расположенных между этажами N'T и Nj не входящих в множество Mj; vj+1 - число «внутренних» заданий 7-го лифта на обслуживание этажей, расположенных между этажами Nj и N'p+1, не входящих в множество M/+1; mj = M/| и mj+1 = MT (t'=1,2, —, n).

Аналогичным образом значение величины (7) определяется для всех запросов из подмножества Mj путем их включения во множество запросов M/, обслуживаемое 7-м лифтом. Если в результате выполнения этой процедуры оказывается, что для некоторых запросов из множества Mj выполняется условие AT < 0, то запрос, для которого величина AT получается минимальной, включается во множество M/, и одновременно исключается из множества Mj, в которое он входил ранее. Получаем новое распределение запросов, т.е. новые множества M/+1 (7 = 1,2, — ,n). Значение величины времени обслуживания Toj+1 для этого распределения запросов будет меньше времени To6j получаемого при предыдущем распределении. Аналогичная процедура выполняется для второго лифта, т.е. формируется множество Mj1 допустимых запросов, не включенных ранее в подмножество запросов Mj+1, обслуживаемых вторым лифтом. Для каждого запроса из множества Mj+ определяется значением AT, причем в качестве начального

распределения принимаем подмножества M/+1 (7=1,2, — , n), полученные в результате выполнения процедуры перераспределения запросов для первого лифта. Если для некоторых запросов из множества Mj+ оказывается, что AT < 0, то во множество Mj+1 включается тот запрос, для

которого величина AT минимальна. В то же время этот запрос исключается из множества Mj+1, в которые он входил ранее. В результате получается новое распределение запросов, т.е. новые множества M/+2 (7=1,2, — ,n), для которых значение времени Toj+2 будет меньше времени обслуживания Tj 1 Процедура повторяется для всех лифтов вплоть до n-го, после чего итерационный цикл оптимизации повторяется вновь, начиная с первого лифта, до тех пор, пока в очередном цикле итерации не окажется, что никакое распределение запросов не приводит к уменьшению времени обслуживания. При этом полученное в предыдущем цикле распределение, т.е. множества MS (7=1,2, — ,n), принимается в качестве оптимального и передается на обработку лифтам. Процедура должна периодически повторяться заново с учетом всех происходящих изменений ситуации, что позволяет оперативно оптимизировать распределение с учетом этих изменений. Данная процедура является асимптотически сходящийся в смысле определения Ляпунова, причем число итерационных циклов, за которые данная процедура сходится, будет не более, чем

Iy-rmax y-rmin

^ ^ об - об |, (8) AT-

где Тб^- максимально возможное значение времени обслуживания; To™n - минимально возможное значение времени обслуживания; А^п - минимально возможное изменение времени обслуживания при перераспределении запросов между лифтами.

Значения Т^^, То™п и АТ^п можно оценить, исходя из следующих соображений:

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

Тбax < 2t(K -1)(1 + k). (9)

2. Минимально возможное время обслуживания будет достигаться в случае, если каждый из лифтов выполняет один единственный запрос, перемещаясь при этом на один этаж:

ГоГ >т(1 + k). (10)

3. Минимально возможное изменение времени обслуживания при перераспределении запросов достигается в случае, если один лифт «забирает» у другого один запрос. При этом общее время обслуживания в минимальном случае будет уменьшаться на время посадки-высадки пассажиров кт или время, в течение которого лифт проезжает один этаж т, в зависимости от того, какая из этих величин будет меньше для конкретного здания:

АГт1П > min [кт,т}. (11)

Отсюда получаем:

D ^ (2т(К -1)(1 + k) - т(1 + k)) _ (1 + k) • (2K - 2) min [к т, т} min [к ,1}

Описанная выше процедура оптимизации распределения запросов между лифтами обладает рядом преимуществ по сравнению со стандартными процедурами, основывающимися на полном переборе. Значительно снижется число анализируемых вариантов распределения запросов:

(к +1) • (2K - 2)

М

где D - число циклов итерации;« - число лифтов; mj = |Mj| - число запросов, включенных во

множество допустимых запросов для /-го лифта на j-ом шаге итерации; К - число этажей.

Для рассматриваемого здания K = 20, п = 4, к = 1, получаем: С<5920, т.е. число анализируемых вариантов, по сравнению со случаем полного перебора снижается приблизительно в 9,6-1041 раз. Это позволяет реализовать вышеописанную процедуру в реальном времени изменения ситуации с помощью большинства распространенных вычислительных устройств. Разумеется, такое существенное сокращение анализируемого числа вариантов достигается за счет отказа о гарантии получения глобального оптимума, и достижения некоторого локального оптимума целевой функции. Однако следует отметить, что из-за быстрого и непредсказуемого заранее изменения ситуации, как например появление новых вызовов, и неизвестного заранее точного времени посадки пассажиров по уже имеющимся вызовам, глобальный оптимум может потерять актуальность. В таких условиях имеет смысл как можно чаще искать рациональный оптимум, что и обеспечивает предложенный итерационный алгоритм.

Выбор начального распределения. Значительное влияние на результаты итерационного поиска имеет выбор начального распределения вызовов по лифтам группы. Для наглядности этого влияния в таблице приводится сравнение разработанного итерационного алгоритма с различными вариантами начального распределения вызовов: кольцевой алгоритм, алгоритм зонирования, распределение вызова ближайшему лифту, распределение вызова ближайшему лифту с учетом направления движения кабины, алгоритм приоритета времени вызова. В табл. 1 приведены результаты начальных распределений до обработки итерационным алгоритмом и после последнего цикла итерации для потока вниз и смешанного потока. Межэтажный поток, как правило, имеет не высокую интенсивность и не является определяющим при выборе варианта алгоритма. Поток вверх достаточно сложен для группы лифтов и требует специальных оптимизаций. Как видно из таблицы, наилучшее результаты продемонстрировало начальное распределение вызовов

C = D • п • mj < D • п • K = ±-т-^тт-л—- п • K, (13)

g min

ближайшему попутному лифту.

Таблица 1. Результаты моделирования с разными видами начального распределения

Алгоритм Начальное распределение После финальной итерации

Тип потока Вниз Смешанный Вниз Смешанный

Интенсивность потока 6% 10% 6% 10% 6% 10% 6% 10%

Кольцевой алгоритм Гож 30 49 23 33 38 55 27 34

Гп 46 54 46 55 44 53 45 55

%>мин 18 41 13 25 29 41 19 23

Р Р на пасс 8,42 4,12 11,2 7,27 7,64 3,31 10,7 7,19

Алгоритм зонирования Гож 37 67 29 50 33 56 24 36

Гп 45 49 45 54 46 52 47 55

%>мин 27 42 20 34 22 32 11 24

Р Р на пасс 7,06 2,7 11,1 7,3 6,41 2,34 11,2 6,55

Вызов ближайшему лифту Гож 36 48 13 22 46 66 10 19

Гп 48 52 45 55 49 57 42 56

%>мин 31 39 5 12 33 44 1 11

Р * на пасс 3,81 1,73 8,34 5,46 2,48 1,08 8,62 5,26

Вызов ближайшему попутному лифту Гож 24 31 19 34 22 35 9 17

Гп 46 52 47 58 47 52 42 55

%>мин 12 22 11 22 8 25 2 6

Р * на пасс 4,28 1,81 7,8 5,18 3,9 1,6 9,15 5,86

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

1. Соотношения (7) описывают оптимизацию по общему времени выполнения всех вызовов лифтами, т.е. перестановка вызовов между 2-мя лифтами на текущем шаге итерации осуществляется лишь в том случае, если такая перестановка улучшает общее время выполнения всех вызовов всей группой лифтов. При оценке времени выполнения вызовов используется ряд усредненных значений, которые на практике могут отличаться от расчетных, как, например, время посадки пассажиров в лифт. В результате глобальный прогноз о времени выполнения всех вызовов имеет ряд погрешностей, которые могут влиять на результат работы алгоритма. Рассмотрим перестановки для менее масштабного прогнозирования ситуации:

- перестановка, обеспечивающая максимальную разницу между сокращением времени выполнения вызовов 1-го лифта и увеличением времени выполнения вызовов 2-го лифта;

- перестановка вызовов, которая обеспечивает максимальное уменьшение времени выполнения одного из вызовов:

ЛТ = тах{ЛТ -Д^} = тах{Т/ -Т/+1 -(Т^1 -Т)},/ = 1,2,...,п, (14)

где Т/ и Ту3 - время обслуживания запросов М3 и М3 лифтами г и/соответственно при старом распределении запросов; Т-3+1 и Т^+х - время обслуживания запросов М/+1 и М^+1 лифтами г и / соответственно при новом распределении запросов;

- перестановка, обеспечивающая минимальное время выполнения одного из вызовов:

ЛТ = шахЩк -Ткг },г = 1,2,...,и,/ = 1,2,...,и,к = 1,2,...,К, (15)

7т к гг1 к 1 л • р

г и Т ^ - время выполнение к-го вызова лифтами г и/ соответственно, с учетом очереди

запросов этих лифтов, в которой могут быть более приоритетные вызовы, чем вызов к.

2. Рассмотрим целесообразностьсортировки списка лифтов на каждом шаге итерации, что должно приводить к передаче вызовов от наиболее загруженных лифтов к наименее загруженным. При моделировании были рассмотрены 6 вариантов итерационного алгоритма, образованные 3-мя видами условий перестановки в версиях с сортировкой лифтов и без сортировки. В табл. 2 приведены результаты работы перечисленных выше вариантов итерационного алгоритма для потока вниз и смешанного потока.

Порядок обхода лифтов Без сортировки С сортировкой

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

Тип потока Вниз Смешанный Вниз Смешанный

Интенсивность потока 6% 10% 6% 10% 6% 10% 6% 10%

По времени конкретного вызова Гож 22 33 11 18 15 25 8 16

Гп 47 54 43 55 45 53 42 54

%>мин 8 22 1 8 3 14 0 7

Р Р на пасс 4,47 2,03 9,22 6,07 5,93 2,55 10,2 6,63

По изменению времени работы лифта Гож 37 59 13 23 25 32 9 16

Гп 51 55 47 59 49 51 42 54

%>мин 26 39 3 13 14 21 2 7

Р * на пасс 2,9 1,27 8,03 5,26 3,13 1,71 8,93 5,55

По общему времени работы группы Гож 24 35 8 17 24 37 9 17

Гп 47 52 43 54 48 54 43 55

%>мин 13 23 0 6 13 24 1 8

Р Р на пасс 3,86 1,61 8,98 5,82 3,63 1,57 8,75 5,65

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

4. Оптимизация конкретного вызова с сортировкой (далее - быстрый итерационный алгоритм) по времени выполнения значительно превзошла остальные варианты оптимизаций.

5. Оптимизация по максимальному изменению времени работы лифта с сортировкой (далее - экономичный итерационный алгоритм) является наиболее эффективной с точки зрения рациональности расхода электроэнергии.

Оптимизация итерационного алгоритма в режиме интенсивного потока вверх. Рассмотрим два варианта оптимизаций для интенсивного потока вверх: все свободные лифты отправляются на первый этаж для минимизации времени ожидания пребывающих в холл пассажиров; ближайший к первому этажу свободный лифт отправляется на первый этаж.

Таблица 3. Результаты моделирования для разного вида оптимизаций потока вверх

Тип потока Вверх Вниз Смешанный

Интенсивность потока 6% 10% 6% 10% 6% 10%

Без оптимизации Гож 18 - 15 25 8 16

Гп 56 - 45 53 42 54

%>мин 7 - 3 14 0 7

Р * на пасс 15,5 - 5,93 2,55 10,2 6,63

Все свободные лифты вниз Гож 6 26 19 26 12 16

Гп 46 62 48 54 42 53

%>мин 0 12 6 16 4 6

Р * на пасс 22,8 15,1 8,2 2,92 14,7 7,2

Ближаишии из свободных лифтов вниз Гож 6 21 19 25 12 18

Гп 47 62 47 54 43 55

%>мин 0 11 7 13 3 7

Р * на пасс 20,5 14,8 8,1 2,83 13,7 7,22

Оптимизация включается автоматически Гож 7 22 15 22 10 15

Гп 48 62 45 53 41 53

%>мин 0 10 3 10 1 5

Р Р на пасс 19,8 14,7 5,95 2,47 12,5 7,06

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

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

Критерии включения оптимизации потока вверх строже, чем критерии отключения во избежание частого переключения режима работы при граничных значениях. Критерием включения оптимизации были эмпирически подобраны t = 0,66 и а = 0,5 или t = 0,95 при любом значении а, отключения - t = 0,5 и а = 0,3. Как видно из таблицы, автоматическое отключение оптимизации потока вверх оказывается достаточно эффективным.

Сравнительный анализ алгоритмов

Для сравнения качественных показателей разработанных итерационных алгоритмов были взяты алгоритм трех переходов (как лучший из стандартных алгоритмов [1]) и кольцевой алгоритм (широко распространен). Результаты прогонов для интенсивностей пассажиропотока 6, 8 и 10% в течение 10 мин от общего количества людей в здании сведены в таблицу.

Таблица 4. Результаты моделирования для 11-часового прогона

Интенсивность потока 6% 8% 10%

Алгоритм tож t, %>мин Р Р на пасс tож %>мин Р Рна пасс tож %>мин Р Рна пасс

Кольцевой 19 42 7 14,5 48 46 17 12,1 - - - -

Трехпереходов 18 42 5 14,9 24 46 10 12,4 - - - -

Быстрый итерационный 10 42 1 13,6 12 46 2 11,4 20 51 8 9,58

Экономичный итерационный 14 43 5 12,4 17 47 7 10,5 23 52 12 9,11

Наблюдается значительное превосходство итерационных алгоритмов над стандартными алгоритмами по экономичности (6-25%), которое увеличивается с ростом интенсивности пассажиропотока. В режиме с низкой интенсивностью экономичный итерационный алгоритм, на 6% уступает алгоритму приоритета вызова по времени обслуживания пассажиров, однако расходует при этом на 25% меньше электроэнергии. Итерационные алгоритмы демонстрируют высокую устойчивость к росту интенсивности пассажиропотока. Быстрый итерационный алгоритм, превосходит стандартные алгоритмы по производительности на 4-39%.

Заключение

Разработан эффективный итерационный алгоритм диспетчерского управления. Высокие показатели алгоритма в сравнении с наиболее распространенными алгоритмами по скорости обслуживания пассажиров и экономичности подтверждены имитационным моделированием.

AN ITERATIVE ALGORITHM OF DISPATCHING CONTROL

V.N. NIKONOV, M.V. SILIVONETS Abstract

An iterative algorithm of dispatching control, exceeding standart algorithms in terms of throughput, passengers service quality and energy efficiency is created.

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

1. Марков А.В., Никонов В.Н., Кузнецов В.П. // Докл. БГУИР. 2009. № 4 (42). С.78-86.

2. Каляев И.А. // Искусственный интеллект. 2001. № 3.

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