УДК 004.3
ПРИМЕНЕНИЕ МЕТОДА ВЕТВЕЙ И ГРАНИЦ И ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ЗАДАЧЕ ПЛАНИРОВАНИЯ ДЕЙСТВИЙ ЭКИПАЖА
© 2013 г. Н.М. Орловский, С.П. Воробьев
Орловский Николай Михайлович - аспирант, ЮжноРоссийский государственный политехнический университет (НПИ) имени М.И. Платова. E-mail: [email protected]
Воробьев Сергей Петрович - канд. техн. наук, доцент, Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова. E-mail: [email protected]
Orlovsky Nikolay Michailovich - post-graduate student, Platov South-Russian State Polytechnic University (NPI). E-mail: nikolai. orlovski@mail. ru
Vorobyov Sergey Petrovich - Candidate of Technical Sciences, assistant professor, Platov South-Russian State Polytechnic University (NPI). E-mail:vsp1999@yan dex.ru
Кратко описан процесс планирования полета и проведена формализация данных, а также предложен критерий оптимизации планов. Разработаны два алгоритма: первый реализован по методу ветвей и границ, а второй - на основе теории генетических алгоритмов. Проведены испытания работы обоих алгоритмов и на основе этих результатов сделан вывод об эффективности их применения.
Ключевые слова: планирование; полетная операция; действия экипажа; оптимизация; метод ветвей и границ; генетический алгоритм.
The flight scheduling process is briefly described in the article. Task formalization and a criterion selection are done. The two algorithms for this task are developed. The first is using branch-and-bound method and the second - genetic algorithm theory. Also experiments have been carried out and the decision of their efficiency have been done.
Keywords: scheduling, flight operation, crew activities, optimization, branch-and-bound method, genetic algorithm.
Процесс управления космическим полетом начинается с этапа планирования. Планирование полета происходит в три стадии. Первая - стратегическая, она отвечает за определение основных целей полета. Далее идет тактическая, на которой согласовывается последовательность и методы выполнения работ. Третьей стадией является исполнительное планирование, где формируются подробные указания о действиях персонала управления полетом и экипажа пилотируемого космического аппарата (КА).
Исполнительное планирование может быть долгосрочным, краткосрочным и детальным. Каждое из них отличается интервалом планирования и степенью детализации данных, и в результате их выполнения получаются номинальный план полета (ШШ, охватывает несколько месяцев), оперативный план полета (ОПП, охватывает одну-две недели) и детальный план полета (ДПП, содержит одни сутки полета) соответственно. Самым информационно емким является ДПП, представляющий собой директивный документ для наземного персонала управления полетом, на основе которого разрабатывают управляющие воздействия для бортовых систем КА [1].
Одним из наиболее важных компонентов НПП, ОПП и ДПП является процесс составления расписаний деятельности космонавтов. Его особенностью можно назвать наличие большого количества данных, требующих профессиональной обработки, и высокую
степень ответственности со стороны операторов за корректное распределение полетных операций (ПО) между членами экипажа (ЧЭ) согласно всем правилам и требованиям. С целью уменьшения нагрузки на оператора было принято решение разработать алгоритм составления расписания действий экипажа.
Формальное представление данных, на основе которых производится формирование действий экипажа Российского сегмента (РС) Международной космической станции (МКС), может быть выполнено за счет анализа следующей информации: списка планируемых полетных операций, состава членов экипажа, данных о затратах всех видов ресурсов, количества общего объема каждого вида ресурса [2].
Исходный набор работ, который необходимо включить в план, можно представить в виде множества А = |аг-, i = 1, т| полетных операций, где i - номер
полетной операции; т - количество полетных операций. Элемент множества ai содержит длительность ПО i. Космонавты (члены экипажа) представлены множеством В = |Ь;-, у = 1, п |, где у - номер космонавта; п - количество космонавтов. Элемент множества Ьу содержит идентификатор космонавта у.
Для реализации каждой ПО требуются различные ресурсы. Эти данные хранятся в матрице
C = {cri, r = 1, R; i = 1, , где r - вид ресурса; R -
количество видов ресурса. Элемент матрицы cri -требуемое количество ресурса r для выполнения ПО i. Доступное количество всех видов ресурсов на заданный интервал планирования хранится во множестве Re 5 = |гетг, r = 1, r| . Элемент множества res
представляет оставшийся на борту объем ресурса r. Все данные для введенных множеств A , B, C и Re s поступают из программы полета.
Для корректного формирования плана необходима также следующая информация: список несовместимых полетных операций по времени и/или ресурсам; условия проведения каждой полетной операции; совокупность ограничений и правил для проведения полета, которые корректируются на протяжении формирования всех видов планов.
Результат планирования действий экипажа предлагается представить в виде матрицы
P = |Pji, j = 1, n; i = 1, m|, которая задает распределение ПО между ЧЭ. Элемент матрицы представляет собой кортеж pji = (ppjt, pnji, pkji), где
[1,если ЧЭ j выполняет ПО i; ppji = 1 pnji - время
[0,если ЧЭ j не выполняет ПО i;
начала выполнения ПО; pkjt - время окончания выполнения ПО. Также в процессе расчетов потребуется множество F = | f, i = 1, m|, которое содержит признак о том, включена ли ПО в план или нет. Элемент [1, если ПО i включена в план;
[0, если ПО i невключена в план.
Чтобы выбрать наилучший вариант плана из некоторого набора, следует определить критерий оптимизации и уточнить ограничения, которым должен отвечать план [3].
Одно из наиболее важных требований при распределении ПО между членами экипажа - максимальная загрузка космонавтов, а именно отсутствие простоев между запланированными действиями. Таким образом, оптимизацию процесса планирования действий экипажа предлагается осуществить через минимизацию простоев экипажа
множества f =
1 n
W = - £
n j =1
im \
£ ppßa 1 - i '
I,-
->min, W e [0; 1]. (1)
В выражении (1) I j - интервал функционирова-
m
ния космонавта j в минутах; £ ppjtat - длитель-
i=1
ность выполнения всех ПО космонавтом j .
В свою очередь, существует набор ограничений и правил планирования, которым должен удовлетворять план. К ним относятся:
1) суммарное количество каждого ресурса, используемого всеми запланированными ПО, не должно превышать значение, имеющееся на станции:
m n _
resr -£ cn £ ppfl > 0, r = 1, R ; (2)
i=1 j=1
2) если ПО запланирована, то она должна выполняться как минимум одним членом экипажа:
f = 0, £ ppn = f; j=1
f = 1, ippp > f
(3)
j=1 i = 1, m;
3) соответствие общей продолжительности работ в плане, выполняемых космонавтом j, величине интервала функционирования этого космонавта:
£pp„a1 <I,, j =1 n;
(4)
4) отсутствие одновременной реализации нескольких ПО одним членом экипажа. Для формирования ограничения следует модифицировать матрицу Р в Р следующим образом: для каждого рр}1 = 0 значения рп^ и pkji приравниваются к ближайшему слева pkji_l п_1, у которого рр;г_1 п_1 = 1. Получается, что теперь рп^ = pk^ Ф 0, а общая продолжительность работы pkji _ рп^ = 0 .
I рпп _ р!с)1 > 0;
Vj = 1, n, где pp п = 1 ^
[pkji - pnji <0;
i = 1,m; l = 1, m,l Ф i.
(5)
В дальнейшем необходимо также учитывать выполнение следующих ограничений и правил: отсутствие одновременного выполнения несовместимых работ в плане; соответствие норм режима труда и отдыха в плане; выполнение всех необходимых условий для проведения каждой включенной в план ПО.
План, который удовлетворяет ограничениям (2) -(5), считается допустимым. Для оптимизации процесса планирования используется метод ветвей и границ [4] и модифицированный генетический алгоритм. Результатами работы обоих алгоритмов является такое распределение некоторого подмножества полетных операций из А между космонавтами, которое удовлетворяет всем ограничениям и как можно больше загружает экипаж. Блок-схема алгоритма работы метода ветвей и границ для задачи планирования действий экипажа представлена на рис. 1.
Рис. 1. Блок-схема алгоритма по методу ветвей и границ
Для данной постановки задачи также был разработан генетический алгоритм, адаптированный под специфику процесса формирования расписаний для космонавтов [5 - 8]. Подробное описание работы данного алгоритма и блок-схема (рис. 2, 3) представлены ниже:
1. Начало алгоритма определения оптимального набора ПО (А1);
2. Упорядочить множество А по мере уменьшения длительности выполнения полетных операций ai;
3. Из множества А отсеять полетные операции с недопустимыми значениями характеристик. В результате получится множество А е А ;
4. Определение количества хромосом k в популяции, которая представлена множеством
Н = [И,,1 = й}, где I - номер хромосомы. Элемент
множества h1 представляет собой хромосому и содержит закодированный набор полетных операций, которые участвуют в размещении;
5. Формирование начальной популяции:
5.1. Счетчик номера хромосомы I устанавливается в 0;
5.2. Счетчик номера хромосомы I увеличивается на 1. В хромосому h1 заносятся все полетные операции из множества А ;
5.3. Хромосома ^ проверяется на удовлетворение ограничениям. Если удовлетворяет, то делается переход на 5.9, иначе - на 5.4;
5.4. Коррекция хромосомы h1. Из нее случайным
образом с равной вероятностью исключается У размещенных в ней ПО, которые заносятся во множество А нераспределенных ПО;
5.5. Хромосома ^ проверяется на удовлетворение ограничениям. Если удовлетворяет, то делается переход на 5.6, иначе - на 5.4;
5.6. Коррекция хромосомы h1. В нее из множества А случайным образом с равной вероятностью включаются 50 % от того количества полетных операций, которые были исключены/включены на предыдущем шаге;
5.7. Хромосома ^ проверяется на удовлетворение ограничениям. Если удовлетворяет, то делается переход на 5.6, иначе - на 5.8;
5.8. Коррекция хромосомы h1. Из нее случайным образом с равной вероятностью исключается столько полетных операций, сколько было добавлено на предыдущем шаге;
5.9. Хромосома h1 добавляется в популяцию Н .
Множество А очищается;
5.10. Номер хромосомы I сравнивается с количеством хромосом в популяции k . Если I < k , то делается переход на 5.2, иначе - на 6;
6. Заданное число поколений обозначается как MaxIter . Номер текущего поколения обозначается как Iter . Iter = 0 - начинается процесс эволюции;
7. Номер поколения увеличивается на 1. Iter = Iter +1;
8. Оценка особей популяции H :
8.1. Счетчик номера хромосомы l устанавливается в 0;
8.2. Счетчик номера хромосомы l увеличивается
на 1;
8.3. Хромосома hl проверяется на удовлетворение системе ограничений. Если не удовлетворяет, то переход на 8.4, иначе - на 8.5;
8.4. Коррекция хромосомы ht . Среди размещенных в ней полетных операций происходит поиск минимальной по продолжительности полетной операции, которая затем исключается из данной хромосомы. Переход на 8.3;
8.5. Хромосома hl передается на вход А2. Задача А2 заключается в поиске оптимального варианта распределения ПО относительно друг друга в порядке следования. Переход на 9;
8.6. А2 возвращает лучшее распределение полетных операций относительно друг друга для хромосомы hl ;
8.7. Происходит сравнение полученного значения целевой функции для хромосомы hl в результате работы алгоритма А2 с ранее найденным лучшим значением. Если последнее меньше, то в качестве лучшей запоминается хромосома hl , оптимальное
распределение ПО, входящих в нее, а также значение целевой функции и номера поколений обоих алгоритмов, в которых найден этот результат.
8.8. Номер хромосомы l сравнивается с количеством хромосом в популяции k . Если l < k , то делается переход на 8.2, иначе - на 10;
9. Схема работы алгоритма оптимального распределения ПО (А2):
9.1. На вход подана хромосома hl , полученная в
результате работы А1;
9.2. Номера полетных операций, которые включены в хромосому hl, заносятся в список BasicCollection;
9.3. Инициализируется популяция хромосом
M = jmv,v = 1,V|, где v - номер хромосомы, а элемент множества mv представляет собой хромосому, в которой закодирована определенная последовательность выполнения ПО из хромосомы hl . Количество хромосом V задается вручную и не требует расчетов. Счетчик номера хромосомы v устанавливается в 0;
9.4. Счетчик номера хромосомы v увеличивается
на 1;
С
Начало
I
Упорядочивание А _i_
Усечение А Получение Л е А
^ Определение количества хромосом к
5. Формирование начальном погтуляиии
5-2
1=1+1
54
Исключение из h ПО
5.Й
Исключение из h ПО
Добавление Iii е
погупяцикз Н
ftöf=C
ltar=lter+1
В. Оиэнкв особей. Расчет целе&ой функции
1=0
0.2
1-1+1
8 4 Из h, исключается
минимальная го гролслжггег ьности ПО
Хрюмашма hi передается ни вход Алгоритму №2
1
Лучший рвэуллаг размещения ПО для хромооэ^ы hi
8 7
Сравнение
результата с лучшим
ив ранее найденных
Рис. 2. Блок-схема модифицированного генетического алгоритма. Часть I
9.5. Хромосома mv формируется путем случайной перетасовки ПО из BasicCollection ;
9.6. Номер хромосомы v сравнивается с количеством хромосом в популяции V . Если v < V, то делается переход на 9.4, иначе - на 9.7;
9.7. Заданное число поколений обозначается как MaxIter 2. Номер текущего поколения обозначается как Iter 2. Iter 2 = 0 ;
9.8. Номер поколения увеличивается на 1. Iter 2 = Iter 2 +1;
9.9. Для каждой хромосомы mv из множества
M запускается процедура распределения ПО между членами экипажа. Причем каждая последующая ПО назначается тому космонавту, у которого свободного времени больше остальных;
9.10. Для каждой хромосомы mv из множества M рассчитывается целевая функция;
9.11. Среди хромосом множества M делается поиск наилучшей по значению целевой функции, и такая хромосома запоминается;
9.12. Рассчитывается общее время, необходимое для выполнения полетных операций из Basic-Collection , которое обозначается как PoTotalTime . Рассчитывается общее время функционирования всех космонавтов, которое обозначается как CrewTotalTime . Если PoTotalTime < CrewTotalTime , то переход на 9.13, иначе - на 9.14;
9.13. Среди хромосом множества M происходит поиск хотя бы одного удовлетворяющего ограничениям распределения полетных операций. Если такое распределение найдено, то переход на 9.18, иначе - на 9.14. Такое решение применяется потому, что при заранее известном неоптимальном составе ПО достаточно найти один вариант их распределения между собой. К тому же при дальнейшей эволюции M значение целевой функции не будет меняться при данной постановке задачи однокритериальной оптимизации;
9.14. Селекция хромосом. Осуществляется по методу рулетки;
9.15. Скрещивание хромосом. Осуществляется по алгоритму «кроссовер порядка (кроссовер ОХ)». Вероятность кроссинговера pc = 1;
9.16. Формирование новой популяции. Происходит по принципу поколенческой стратегии - потомки полностью заменяют родителей;
9.17. Номер текущей итерации Iter 2 сравнивается с максимальным количеством итераций MaxIter2 . Если Iter2 < MaxIter2 , то переход на 9.8, иначе - на 9.18;
9.18. Лучшая найденная хромосома передается А1. Переход на 8.6;
10. Селекция хромосом. Осуществляется по методу колеса рулетки;
11. Скрещивание хромосом. Осуществляется путем одноточечного кроссинговера. Вероятность крос-
синговера pc = 1. В итоге формируется популяция потомков H' = , l = 1, k|;
12. Мутация. Вероятность мутации pm = 1. Характер мутации направленный, стремящийся свести свободное время экипажа к 0:
12.1. Счетчик номера хромосомы l устанавливается в 0;
12.2. Счетчик номера хромосомы l увеличивается на 1;
12.3. Для хромосомы h вычисляется оставшееся незанятым время работы всего экипажа и обозначается как freeTime;
12.4. Среди не вошедших в хромосому h полетных операций происходит поиск таких, у которых ai < freeTime, и формируется множество G из таких ПО;
12.5. Множество G проверяется на отсутствие элементов. Если элементов нет, то переход на 12.7, иначе - на 12.6;
12.6. С равной вероятностью случайным образом из G выбирается одна полетная операция и включается в хромосому h ;
12.7. Проводится поиск минимальной по продолжительности ПО среди тех, которые включены в хромосому h;
12.8. Найденная ПО исключается из хромосомы
hl;
12.9. Проводится поиск минимальной по продолжительности ПО среди не вошедших в хромосому ht без учета той, которую исключили в 11.8;
12.10. Найденная в 12.9 ПО включается в хромосому h;
12.11. Номер хромосомы l сравнивается с количеством хромосом в популяции k . Если l < k , то делается переход на 12.2, иначе - на 13;
13. Формирование новой популяции:
13.1. Среди популяции потомков и мутантов H проводится поиск хромосомы ht с лучшим значением целевой функции. Хромосома ht запоминается;
13.2. Среди популяции родителей H проводится поиск хромосомы hd с наихудшим показателем целевой функции. Хромосома hd запоминается;
13.3. В популяции H хромосома hd заменяется на хромосому ht. Новая популяция сформирована;
14. Популяция H проверяется на сходимость. Если все хромосомы одинаковы, тогда переход на 16, иначе - на 15;
15. Номер текущей итерации Iter сравнивается с максимальным количеством итераций MaxIter . Если Iter < MaxIter , то переход на 7, иначе - на 16;
Рис. 3. Продолжение блок-схемы модифицированного генетического алгоритма. Часть II
16. Выдача наилучшей хромосомы, которая была найдена к текущему моменту. Также предоставляется оптимальное распределение ПО, составляющих лучшую хромосому, относительно друг друга и значение целевой функции;
17. Конец алгоритма определения оптимального набора ПО.
Для каждого из двух методов решения поставленной задачи были проведены эксперименты на одинаковом наборе исходных данных. Расчеты проводились для трех космонавтов, количество распределяемых полетных операций менялось от 12 до 30 единиц, а время работы каждого члена экипажа - от 60 до 120 мин. Оба алгоритма в конце каждого теста выдавали одинаковые решения, которые в действительности являлись глобальным минимумом. Этот факт подтверждает отсутствие преждевременной сходимости у генетического алгоритма в локальных оптиму-мах и точность его работы. Результаты приведены в виде графика на рис. 4. Время, с 5,0 4,5 4,0 3,5 3,0 2,5 2,0 1,5 1,0 0,5 0
-Генетический алгоритм
-Метод ветеей и границ
70 80 90 100 110 Рабочее время ЧЭ, мин
120
Рис. 4. Результаты работы модифицированного генетического алгоритма и алгоритма по методу ветвей и границ
Генетический алгоритм, адаптированный под задачу однокритериальной оптимизации процесса планирования действий экипажа РС МКС, имеет явное
преимущество и является более предпочтительным подходом перед методом ветвей и границ для решения поставленной задачи.
Следующим этапом исследования является решение задачи оптимизации планирования действий экипажа РС МКС с несколькими критериями, где помимо загруженности экипажа будут учитываться эффективность выполнения полетных операций каждым космонавтом, а также переменный приоритет ПО, который зависит от конкретного места ее расположения на интервале планирования. Такая задача более близка к реальным условиям составления планов в Центре управления полетов, является ЖР-полной, и для ее эффективного решения предполагается разработать алгоритм на основе уже примененного в данной статье генетического подхода.
Литература
1. Соловьев В.А., Лысенко Л.Н., Любинский В.Е. Управление космическими полетами. Ч. I. М., 2009. 476 с.
2. Станиловская В.И. Автоматизация планирования полетов долговременных орбитальных комплексов: дис. ... канд. техн. наук. Королев, 2008. 198 с.
3. Бахвалов Ю.А. Математическое моделирование: учеб. пособие. Новочеркасск, 2010. 142 с.
4. Черноморов Г.А. Теория принятия решений: учеб. пособие / Юж.-Рос. гос. техн. ун-т: ред. журн. «Изв. вузов. Электромеханика», Новочеркасск, 2002. 276 с.
5. Гладков Л.А. [и др.] Генетические алгоритмы. М., 2006. 402 с.
6. Рутковская Д., Пилиньский М., Рутковская Л. Нейронные сети, генетические алгоритмы и нечеткие системы. М., 2004. 452 с.
7. Курейчик В.В., Стасенко Л.А. Применение генетических алгоритмов для решения оптимизационных задач на графах // Перспективные информационнве технологии и интеллектуальные системы. 2002. № 3 (11).
8. Батищев Д.И., Неймарк Е.А., Старостин Н.В. Применение генетических алгоритмов к решению задач дискретной оптимизации. Н. Новгород, 2007. 88 с.
Поступила в редакцию
6 сентября 2013 г.