Научная статья на тему 'Элементы динамического программирования в экстремальных задачах маршрутизации'

Элементы динамического программирования в экстремальных задачах маршрутизации Текст научной статьи по специальности «Математика»

CC BY
460
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
Журнал
Проблемы управления
ВАК
Область наук
Ключевые слова
ДИНАМИЧЕСКОЕ ПРОГРАММИРОВАНИЕ / МАРШРУТ / УСЛОВИЯ ПРЕДШЕСТВОВАНИЯ / DYNAMIC PROGRAMMING / ROUTE / PRECEDENCE CONDITIONS

Аннотация научной статьи по математике, автор научной работы — Ченцов Алексей Александрович, Ченцов Александр Георгиевич, Ченцов Павел Александрович

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

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

Похожие темы научных работ по математике , автор научной работы — Ченцов Алексей Александрович, Ченцов Александр Георгиевич, Ченцов Павел Александрович

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

The paper considers the routing problem of visiting megalopolises, that is complicated by constraints in the form of precedence conditions and work within megalopolises; it is assumed that the cost function may depend on the job list. It is noted that the application of the theory may be associated with the task of disassembly the decommissioned nuclear plant. In this problem, the cost of moving depends on the list of outstanding tasks: not removed pieces of equipment emit. It is shown that the computational difficulty of the constructed algorithms requires the use of parallel structure elements.

Текст научной работы на тему «Элементы динамического программирования в экстремальных задачах маршрутизации»

атематические проблемы управления

УДК 519.6

ЭЛЕМЕНТЫ ДИНАМИЧЕСКОГО ПРОГРАММИРОВАНИЯ В ЭКСТРЕМАЛЬНЫХ ЗАДАЧАХ МАРШРУТИЗАЦИИ1

A.A. Ченцов, А.Г. Ченцов, П.А. Ченцов

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

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

ВВЕДЕНИЕ. ОБСУЖДЕНИЕ ЗАДАЧИ

Рассматриваемые в статье постановки восходят к известной труднорешаемой ЗК [1—4], но содержат ряд существенных особенностей, связанных с прикладными задачами, на решение которых ориентированы разрабатываемые методы. Речь идет об учете естественных для инженерных задач условий предшествования и функций стоимости, отвечающих специфике некоторых типов вредных воздействий. Все это осложняет математическую постановку и требует разработки специальных методов исследования. Напомним, что ЗК (прототип рассматриваемых задач) относится к классу МР-полных задач [1]; усилия специалистов направлены в основном на построение приближенных алгоритмов (особо отметим, однако, метод ветвей и границ [5] и МДП [6, 7]). В настоящем исследовании мы, напротив, сосредоточимся на проблеме поиска оптимальных решений, имея в виду, с одной стороны, разработку элементов теории, а, с другой, — использование этой теории в случаях умеренной размерности, что характерно для некоторых инженерных задач в атомной энергетике и, в частности, для задачи о демонтаже энергоблока АЭС. В то же время упомянутые обстоятельства

1 Работа выполнена при финансовой поддержке РФФИ (гранты № 10-01-96020, № 12-01-00537, № 11-01-90432-укр_ф_а).

(ограничения, сложные функции стоимости) доставляют трудности другого рода. Их преодолению посвящено настоящее исследование, базирующееся на конструкциях [8—14] для задач с аддитивным агрегированием затрат (отметим также работы [15, 16], где исследовалась задача «на узкие места», в работе [17] использовалась абстрактная функция агрегирования затрат). Итак, данная работа ориентирована на оптимизацию при наличии ограничений.

Принятые сокращения:

в/з — вещественнозначная (функция); ДР — допустимое решение; ЗК — задача коммивояжера; МДП — метод динамического программирования;

ОЗМ — основная задача маршрутизации, п/м — подмножество; УП — упорядоченная пара.

В качестве основного применяется МДП. В рассматриваемых «усложненных» маршрутных задачах с ограничениями при выводе уравнения Белл-мана возникают трудности как технического, так и идейного характера. Поэтому важную роль играют эквивалентные преобразования задач, их сведение к более простому виду. Это касается, в частности, редукции ограничений (допустимость по предшествованию заменяется допустимостью по вычеркиванию заданий из списков). Важную роль играет

преобразование критерия с выделением некоторой базовой задачи. Наконец, полезное обстоятельство связано с тем, что в рассматриваемой далее версии МДП не строится весь массив значений функции Беллмана; конструируются ее слои, отвечающие идейно построениям [8, 4.9] и используемые в работах [9—21]. Отметим подход [22], получивший развитие в работе [21].

В заключительной части в краткой форме излагается метод итераций, предусматривающий декомпозицию задачи и базирующийся на ее преобразовании к экстремальной задаче с независимыми переменными (в исходной задаче переменные (маршрут, трасса) зависимы: трасса должна быть согласована с маршрутом). Итерационная процедура приводит, вообще говоря, к неоптимальным решениям; вместе с тем, она выигрывает во времени счета при сравнительно небольшом, как показал вычислительный эксперимент, проигрыше в качестве. Отметим вариант жадного алгоритма в работе [9], обеспечивающий безусловное соблюдение условий предшествования.

Вопросы параллельной реализации алгоритма построения массива значений функции Беллмана рассматривались в работах [18—20]; эти конструкции базируются на детальном анализе структуры пространства позиций в части, связанной с проблемой соблюдения ограничений в виде условий предшествования. Отметим, что разработан теоретический метод [19, 20], позволяющий на принципиальном уровне обеспечить независимую работу процессоров (затруднения в практической реализации связаны с дефицитом памяти; в этой связи в работах [18, 21] применялись другие процедуры распараллеливания).

1. ОБОЗНАЧЕНИЯ ОБЩЕГО ХАРАКТЕРА

Используем стандартную символику: кванторы, пропозициональные связки; ёеГ заменяет фразу «по определению», = — равенство по определению. Для всякого множества Н через Р(Н) (через Р(Н)) обозначаем семейство всех (всех непустых) п/м Н. Если т — объект, то {т} есть ёеГ одноэлементное множество, содержащее т (и только т). Если к есть УП, т. е. к = (а, Ь), где а и Ь — объекты, то черезргДк) ирг2(к) обозначаем первый и второй элементы к: рг1(к) = а, рг2(к) = Ь. Для любых трех объектов р, q и г, как обычно [23, с. 17], (р, q, г) = ((р, q), г). Если же А, В и С — множества, то [23, с. 17] А х В х С = (А х В) х С. Используем индексную форму записи функций [24]. Каждому непустому множеству ^ сопоставляем множество

] всех неотрицательных в/з функций на если g е К+[£] и Т е Р(£), то |Т) е Р+[Т] есть

ёеГ сужение gна множество Т: ^|Т)(?) = £(?) V е Т. Как обычно, N = {1; 2; ...}; N = {0} и N = {0; 2; ...}. Полагаем далее

рТ^ = {/ е ^|(р < /)&(/ < q)} Ур е N0 Vq е

Непустому конечному множеству К сопоставляем его мощность |К | е N и непустое множество

(Ы)[К] всех биекций [25, с. 86] «отрезка» 1, |К| на К; полагаем также, что |0| = 0. Если X и У — непустые множества, а к — биекция X на У, то через к 1 обозначаем биекцию У на X, обратную к к. Перестановкой непустого множества А называем [25, с. 87] биекцию А на себя.

2. ЗАДАЧИ МАРШРУТИЗАЦИИ, 1 (динамическое программирование)

Фиксируем непустое множество X, х0 е X, N е N со свойством 2 < N а также конечные множества М1 е Р^), ..., Мм е Р^), именуемые далее мегаполисами. Пусть

(х0 г М- У е 1, N )&(Мр П М^ = 0 Ур е 1, N

Vq е 1, N \{р})

(1)

(мегаполисы попарно не пересекаются (см. выраже-

0 0 ( N

ние (1)) и не содержат х ). В виде X = {х }и( и Мг

V г = 1

получаем фазовое пространство процесса

Х ^ (¿1 е Ма(1) Х Ма(1)) ^

^ е МаЗД Х МаШ^

а(ЛУ

(2)

где а — перестановка 1, N, именуемая далее маршрутом. В выражении (2) рассматривается следующая система перемещений исполнителя,

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

руем множество К е Р(1, N х 1, N) со свойством

УК е Р'(К) Зг0 е К0: рг1(г0) * рг2(г) У г е К0. Имеем (непустое) множество

А 4 {а е Р|а ^(г)) < а ^(г)) Уг е К} е р'( Р),

(3)

где Р — множество всех перестановок 1, N . Тогда А (3) — множество всех маршрутов, допустимых по предшествованию. Если г е К, то рг1(г) рассматриваем как отправителя, а рг2(г) — как получателя УП г; мегаполис с индексом отправителя должен посещаться раньше мегаполиса с индексом получателя. Именно этим свойством обладают маршруты из А и только они. Для формализации выражения (2) введем в рассмотрение при а е А множество всех кортежей (г,). ^: 0, N ^ X х X, для каждого из которых

(г, = (X0, х0))&(г е М,л х м У? е 1, N). (4)

а(г)

В связи с формулами (2) и (4) отметим несущественное отличие, определяемое первым выражением в формуле (4): х0 заменено на (х0, х0). Каждую пару (а, г), где а е А и г е Zа, называем ДР; разумеется, ДР составляют непустое конечное множество. В дальнейшем рассматриваем задачи, в которых ДР оцениваются посредством аддитивного критерия качества. Пусть далее

с е ^+[Х х X х

С1 е "+[М х М1 х я], ..., С N е х Мн х Щ],

/ е

N

и м,

I = 1

(5)

где N = Р'(1, N). В выражении (5) указан набор функций стоимости, определяющий критерий:

N

Ща,(г,),е ) 4 X [с (Р^ _ l), к = 1

{а(?): ? е к, N}) + са{к) (г^ {а(?): ? е к, N})] + + /(р-2(г^) уа е А у(г,), ^ е

(6)

В критерии (6) посредством значений с оцениваются всякий раз перемещения в мегаполис извне. Собственно говоря, только такие оценки и достаточны для точной постановки; однако в методических целях данная система оценок продолжается до функции с на X х X х N (можно, например, осуществить «продолжение нулем»).

Функции С1, ..., С N «работают», как видно из критерия (6), в самих мегаполисах, оценивая внутренние работы, которые могут задаваться различными

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

П(а,( г, ),• е 07^) ^ т^

а е А, (), . 07Ж е ^а,

(7)

именуемую далее ОЗМ. Через V условимся обозначать ее значение: V есть наименьшее из

П (а'(г,), е ^), а е A, (г,), е ^ е ^а. Для применения МДП конструируем сначала расширение ОЗМ (7), используя оператор I [8, с. 32], действующий в N. Следуя работе [8, 2.2], определяем при К е N множество

(I - Ы)[К] 4 {а е (Ы)[К]|а(я) е 1({а(?): ? е |К|}) У5 е 17Ш } е Р'((Ъ1)[К].

При х е X и а* е (I — Ы)[К] полагаем, что Z(x, К, а*) есть ёеГ множество всех кортежей

(г,-), : 0, IX ^ X х X, для каждого из которых

г0 = (х х) и г5 е Ма,м X Ма*(5) У5 е 1 \К\ . Если и е X, ПС е N, в е (I — Ы)[К] и И е Z(u, ПС, в), то введем в рассмотрение

М

ПП [и, ПС, в; И] 4 X [с (рг2(И(к — 1)), рг1(И(к)),

к = 1

{в(?): ? е к, }) + Ср(к) (И(к), {в(?): ? е к, |К| })] + + /(рг2(И(|К|))). (8)

В терминах (8) определяем частичные или укороченные задачи: при х е X и К е N рассматриваем экстремальную задачу маршрутизации с критерием (8):

ПП [х; К; а; И] ^ тт, а е (I — Ы)[К ],

И е Z(x, К, а). (9)

Систему задач (9) при переборе (х, К) е X х N рассматриваем как расширение ОЗМ (7). Каждой позиции (х, К) е X х N сопоставляется значение

V(х, К) е [0, <»[ задачи (9): V(х, К) — наименьшее

из ПП [х; К; а; И], а е (I — Ы)[К ], И е Z(x, К, а). Пусть

N 4 ) = N^0} и V(и, 0) 4 /(и) Уи е X.

Итак, введена функция Беллмана V е х N1,

для которой V (х0, 1, N) = V. Следующее положение определяет уравнение Беллмана и устанавли-

вается по аналогии с работой [8, предложение 3.2.1] (см. также статьи [12, 13]).

Теорема 1. Если x е X и K е N, то справедливо равенство

V (x, K) = min min [ c (x, pr,(z), K) +

t e I(K) z e Mt x Mt

+ Сt (z, K) + V(pr2(z), K\{t})]. ♦

Слои функции Беллмана конструируем по схеме из работ [8—20]. Семейство

G 4 {K е N|Vz е K(p/j(z) е K) ^ (pr2(z) е K)}

существенных списков разбиваем в объединение подсемейств Gv ..., GN;

Gs = {K е G| s = |K|} Vs е 1, N.

Тогда G1 = {{t}: t е 1, N\KJ, где K 4 {pr^z):

г е К} есть множество отправителей; = {1, N}

и д* - 1 = {К\{?}: К е д, ? е 1(К)} V е . Получили пошаговую процедуру дм ^ ... ^ д1. Определяем слои Я0, ..., в пространстве позиций X х N. В терминах объединения М

всех множеств М,, I е 1, N \К1, конструируем

Я0 = {(х, 0): х е М}. Полагаем = {(х0, )}, получая одноэлементное множество. При

s е 1, N - 1 и K е Gs в терминах индексного мно-

жества J(K) 4 {t е 1, N\K|{t}UK е Gs + J [8, 4.9.11] вводим объединение Ms[K] всех множеств M, j е J(K), и клетку D s[K] 4 {(x, K): x е M s[K]}. На-

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

Предложение 1. Если m е 1, N, то функция Vm определяется правилом

Vm (x, K) = min min [ c (x, pr,(z), K) +

t e I(K) z e Mt x Mt 1

+ Сt (z, K) + Vm -1 (P2(z), K\{t})] V(x, K) е Dm. ♦

Напомним, что функция Vo известна; V j, ..., Vn

строятся рекуррентно. При этом V = (х , 1, N). Оптимальное ДР строится на основе предложения 1 обычным, для МДП, способом: следует поэтапно определять минимизирующие элементы, формируя одновременно фрагменты оптимальной пары «маршрут — трасса».

3. ЗАДАЧИ МАРШРУТИЗАЦИИ, 2 (эквивалентные преобразования)

Вариант МДП (см. § 2) может применяться для решения иных, по форме, маршрутных задач и в этом смысле ОЗМ (7) обладает определенной универсальностью. Рассмотрим вариант задачи, допускающей сведение к задаче (7). Для этого изменим набор (5) в сторону его усложнения. Итак, фиксируем следующие отображения:

(s, t) ^ cs, t : 1, N X 1, N ^ R+[X х X х N],

t ^ c1 t : 1, N ^ R+[M1 х M1 x n], ..., (11)

конец, при 5 е 1, N - 1 определяем Я* в виде объединения всех клеток ГОДК], К е д*. Слои Я0,

..., ^обладают [8] свойством инвариантности время [21]. Если а е А и (¿г). — е Еа, то

I ^ с^ , : 1, N ^ Р+[М# х х я].

Функцию Л полагаем соответствующей набору (5). Получили «нестационарный» вариант (5), включая в определение стоимостей дополнительную зависимость от параметра, который можно интерпретировать как своеобразное дискретное

(y, K\{k}) е _ 1 Vs е 1, N V(x, K) е Ds

Vk е I(K)} Vy е Mk. (10)

Наконец, Ds е P'(X х N) Vs е 0, N. С учетом этого получаем, что

Vs 4 (V|DS) е R+[DS] Vs е 0, N.

N

п

(а' (Ч e 0TN} 4 Z [Ca(t), t^r2(zt - РГ1(Ч

t = 1

{а(у): ] е ^ N}) + с^ {а(у): у е ^ N})] +

+ Лр^)). (12)

(определение (12) допускает следующую интерпретацию: при ? е 1, N осуществляется обслужи-

Итак, введены сужения функции Беллмана вание мегаполиса М^; при этом стоимости перемещений на Ма^ извне и внутренних работ на Мс полагаются зависимыми от ?). Имеем задачу

(у*(х, К) = V (х, К) при 5 е 0, N и (х, К) е Я*);

У0 {(х, 0) = Л(х) Ух е М. Из свойства (10) и теоремы 1 следует важное в дальнейшем

(t)

П(^ (Zie0"N ) ^ min, а е A, (Zie0"N е (13)

Через V обозначаем значение задачи (13), т. е. наименьшее из чисел П(а, (г,-) а е А,

' г е 0, N

(г,-). ^ е Zа. Понятным образом определяем в

задаче (13) оптимальные ДР.

Имеется простой вариант сведения задачи (13) к виду (7): используем конструкцию, подобную описанной в работах [21, 22]. Введем сначала при

каждом 5 е 1, N (частичную) функцию

с, е X X X N (14)

по правилу с, (И, К) 4 с, N _ ^ + 1(И, К) УИ е X х X УК е N (в связи с функцией (14) напомним соглашения § 1); тогда имеем, как следствие, очевидные равенства:

X Уу е М, УК е N. (15)

cs (x, y, K) = cs, N- |K| + y, K) Vx e X Vy e

С учетом попарной дизъюнктности мегаполисов на основе выражений (14) и (15) определяем в

виде склейки конкретную версию с (5):

(с, (х, у, К) 4 с, (х, у, К) Ух е X У5 е 1, N Уу е М,

УК е N & (с (х, х0, К) 4 0 Ух е X УК е ЭД; (16)

используем определение множества X в § 2. Получаем с учетом выражений (15) и (16), что

Поскольку выбор n был произвольным, установлено (см. (19), (20) и определение множества A), что справедливы равенства

c (pr2(zfc - j), prj(Zk), {a(t): t e kTN }) + + Ca(k) (Zk, {a(t): t e k, n }) =

= Ca(k), fc(Pr2(Zfc- PlU^ {a(t): t e KN }) +

+ са(к), k(Zk, {a(t): t e k,N }) Vk e I7W . (21)

Из (6), (12) и (21) получаем требуемое утверждение. ♦ Из предложения 2 следует, что задача (13) сводится к виду (7) при условиях (14)—(18). При этом

V = V, а уравнение Беллмана (для задачи (13)) вытекает из теоремы 1: используем v в конкретизации (14)—(18); обозначаем данный вариант v через v. Ясно, что v(u, 0) = f(u) Vu e X; при этом

V = v(x0, 1, N). Из теоремы 1 вытекает, что

v(x K) = min min м [c n - |K| + i(x Pi^ K) +

t e I (K) zeM( x Mt ' 1

+ Ct, N - |K| + i(z, K) + v(pr2(z), K)\{t})]

Vx e X VK e N.

(2)

Здесь указано уравнение Беллмана для рассматриваемой сейчас задачи (13). Учитывая выражения (14)—(18), получаем нужный вариант предложения 1 для задачи (13): введем сужения V:

V 4 (v|D) Vs e 0, N .

c (x, y, K) 4 cs, N - |K| + i(x, y, K) Vx e X Vs e 1, N Vy e Ms VK e N. (17)

Конкретизируем теперь функции C 1, ..., CN в

наборе (5): если s e 1, N, h e Ms x Ms и K e N, то

cs (h, K) 4 Ci, n- K| + i(h, K).

(18)

Рассмотрим теперь комбинацию выражений (6), (16) и (18). Получаем следующее

Предложение 2. При а е А и (г,). ^ е Zа справедливо равенство

П(а, (г,\ е 0^ ) = П (а, (г,^).

Доказательство. Фиксируем п е 1, N , получая

а(п) е Т^ и г„ е Ма(п) х Ма(п). Кроме того, А = {а(г):

г е п, N } е N и |А| = N - п + 1; N - |А| + 1 = п, а потому (см. (17))

с - l), А) = са(„); „(рг2(г„ - ^ Pr1(z„), А).(19)

Кроме того, из выражения (18) получаем равенство

Са(п) А) = Са(Д)> „^ А). (20)

Тем самым имеем конкретизации V, V1, ..., VN

(учитываем, что в «нашем» случае V = V). Разумеется, Ш0(х, 0) = /(х) Ух е М; из предложения 1 и выражений (14)—(18) вытекает, что

Шт(х К)= ,«¿П М N - |К| + 1(X, К) +

, е 1( К) ;еМ( 1 М( 1

+ С,, N - |К| + l(г, К) + - Др^ К)\М)]

Ут е ^ У(х, К) е (23)

Здесь конкретизирована рекуррентная процедура построения слоев функции Беллмана, т. е.

процедура Ш0 ^ Ш1 ^ ... ^ ; V = Ш^х0, 1, N).

В условиях, когда значения функций (11) не зависят от списка заданий, полученная конкретизация (7) сводится к задаче, рассматриваемой в работе [21, теорема 1]). Соответствующие представления для данного случая легко извлекаются из выражений (22), (23).

Итак, задача (7), важная сама по себе (в ее постановке реализуются принципиальные аспекты прикладной задачи о демонтаже энергоблока АЭС), может быть полезной и для исследования других маршрутных задач с ограничениями. Зависимость функции стоимости от списка заданий может быть

связана, например, с соображениями приоритетности в части очередности обслуживания мегаполисов. Этот случай рассматривается в § 5.

4. ПРИМЕР РЕШЕНИЯ ОСНОВНОЙ ЗАДАЧИ

В настоящем и следующем параграфах полагаем, что X = К х К, т. е. рассматривается случай плоской задачи.

Пусть N = 22 и \М(| = 12 V/ е 1, 22 . Каждый из мегаполисов М, / е 1, 22 , получается посредством построения сетки на соответствующем прямоугольнике: для каждой стороны на равных расстояниях друг от друга размещаются точки сетки, при этом количества точек для противоположных сторон равны. Данные прямоугольники, содержащие мегаполисы М1, ..., М22, полагаем попарно непересекающимися. В пределах каждого такого прямоугольника находится фиксированная точка, ассоциированная с данным мегаполисом. Итак, при у е 1, N имеем точку а. е К х К, соответствующую мегаполису М.. Будем считать, что в нашей формализации упомянутая точка а. рассматривается как излучающий объект, степень воздействия которого на исполнителя обратно пропорциональна квадрату расстояния от точки а. до текущего положения исполнителя, т. е. квадрату длины радиус-вектора, направленного из источника излучения а. в точку на траектории движения исполнителя, в которой тот в данный момент времени находится. При этом имеются некоторые особенности в оценке вредного воздействия в ближних зонах, т. е. возле а1, ..., а22. При перемещении исполнителя осуществляется интегрирование вдоль пути. Таким образом насчитываются нужные

значения функций с, Сх, ..., С22 . Функция f предполагалась тождественно равной нулю. При этом на этапе построения С х, ..., С22 используем естественное соглашение: при у е 1, 22 исполнитель, перемещаясь от точки х е М к точке а., испытывает как вредное воздействие источника, находящегося в точке а, так и облучение, получаемое от источников а к, к е К\{ у}, где К — список не выполненных, на момент упомянутого перемещения, заданий; воздействия от каждого источника при подсчете размера совокупной дозы облучения в каждый момент времени суммируются, что отвечает реальному влиянию радиактивного излучения на организм работника. При численной оценке облучения исполнителя источником а. в рамках модели ближней зоны (в нашей формализации ей соответствует движение от точки мегаполиса к соответствующему ему источнику излучения) используется несколько иной вид зависимости от расстояния: воздействие обратно пропорционально сумме квадрата расстояния от положения исполнителя до а. и числа 1, дробь умножается на коэффициент 3; данная зависимость интегрируется вдоль пути от х до а.. По прибытии в точку а. исполнитель выполняет демонтаж источника излучения, что, собственно и служит целью посещения мегаполиса М, поэтому при движении от

точки üj к точке y е M. данный источник излучения üj уже не воздействует на исполнителя (отметим, что воздействие от источников ak, к е K\{у}, при этом присутствует и описывается численно функцией, обратно пропорциональной квадрату расстояния от внешнего источника до текущего положения исполнителя). Предполагается, что в нашей модели скорость внешних перемещений в 4 раза больше, чем скорость перемещений в ближних зонах (т. е. при выполнении внутренних работ). Полученные вдоль конкретной трассы посещения мегаполисов Mj, ..., M22 интегральные показатели, моделирующие воздействие радиации, суммируются.

Отметим, что при построении маршрутов и трасс возможна ситуация, когда в процессе внешних перемещений исполнитель проходит через ближнюю зону какого-либо источника, не занимаясь его демонтированием (нередко это связано с условиями предшествования, когда упомянутое демонтирование осуществлять «рано»), прохождение непосредственно через источники при этом запрещается и такие траектории потенциального движения отбрасываются. В этом случае модель ближней зоны не используется, что мотивируется большей (в 4 раза) скоростью внешних перемещений: исполнитель «не чувствует» ближней зоны, поскольку (в данном режиме) находится в ней короткое время. Данное предположение представляет собой огрубление, допустимое на начальном этапе исследований. Разумеется, в дальнейшем требуется уточнение модели радиационных полей.

Имеются условия предшествования, обусловленные технологическими факторами; предполагается, что |K| = 17, т. е. имеется 17 адресных пар «отправитель — получатель». Функция f предполагается тождественно равной нулю. Наконец, пусть x0 — нулевой вектор: x0 = (0, 0).

Мы полагаем здесь, что источники, находящиеся в точках üj, ..., ü22, имеют различные интенсивности излучения, для их количественного выражения зададимся 22 положительными коэффициентами yj, ..., у22.

Для решения с помощью ПЭВМ применялась процедура на основе МДП (см. § 2), реализованная в виде программы на языке программирования C++ (версия Embarcadero RAD Studio XE3), работающей под управлением 64-разрядной операционной системы семейства Windows. Вычислительная часть программы реализована в отдельном от интерфейса пользователя потоке. Для случая решения задачи на плоскости имеется возможность визуализации траектории движения исполнителя в виде графика и сохранения данной информации в виде файла формата bmp.

Было построено оптимальное решение (УП «маршрут — трасса») и определен глобальный экстремум V. Общее время счета 1 ч 13 мин 12 с; из них 23 мин 34 с затрачено на построение матриц, оценивающих внутренние работы (т. е. С х, ..., С22); 42 мин 20 с — на построение матриц, оценивающих внешние перемещения и

реализующих зависимость c (времена счета приведены для портативного компьтера с процессором Core2Duo T7700 2.4 ГГц и объемом ОЗУ 3 ГБ с установленной операционной системой Windows 7 x64 Professional). Отсюда видно, что основное время затрачено на подготовку ис-

Рис. 1. Маршрут и трасса обхода множеств

ходных данных. На рис. 1 приведен график, иллюстрирующий результирующую траекторию обхода мегаполисов с выполнением внутренних работ.

5. ПРИМЕР РЕШЕНИЯ ЗАДАЧИ МАРШРУТИЗАЦИИ С ЭЛЕМЕНТАМИ НЕСТАЦИОНАРНОСТИ В ОПИСАНИИ КРИТЕРИЯ

Рассмотрим пример решения задачи маршрутизации, подобной описанной в статье [21] и связанной с обслуживанием клиентов, имеющих некоторые предпочтения в части, касающейся очередности обслуживания. Полагаем, что каждый из клиентов заинтересован в выполнении (внутренних) работ в пределах подведомственного ему мегаполиса. Здесь зависимость стоимостей от списка не выполненных на текущий момент заданий в явном виде отсутствует, но допускается зависимость от номера в очереди, имеющего смысл дискретного времени. Это вносит в постановку элемент нестационарности.

Фиксируем N = 29 мегаполисов М1, ..., М,, каждый из которых представляет из себя тридцатиэлементное множество на плоскости К х К. Пусть для каждого у е 1, N работа по обслуживанию у-го клиента состоит в перемещении исполнителя от точки входа х е М к заданной и

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

«привязанной» к М. точке а. е

х

а также в после-

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

предпочтения клиента могут быть связаны, например, с требованием более раннего обслуживания «своего» мегаполиса.

Итак, имеем частный случай задачи § 3, полагая, что функции стоимости (11) не зависят явно от К е N. В целях сведения отображений (11) к виду [21], выполним следующее преобразование, заменяя первое отображение (11) набором функций

с1 е П+[Х х М1 х 1, N ], .. с, е П+[Х х М. х 1Т# ]

(24)

(мегаполисы попарно дизъюнктны, следовательно, из функций (24) можно легко сконструировать нужный вариант с (11)). Если у е 1, N, х е X, у е М. и / е 1, N, то с.(х, у, /) е [0, характеризует стоимость перемещения из х в пункт прибытия у мегаполиса М., осуществляемого «в момент» С учетом последующего определения «аддитивного» критерия оказываются существенными только те случаи, когда х £ М (перемещения на мегаполис извне). В частности, это касается перемещений между мегаполисами.

На плоскости фиксируем базу х°. Именно, возьмем

в качестве базы нулевой вектор х° = (0, 0). В качестве р : Хх X ^ [0, используем евклидово расстояние: при х1 е X и х2 е X число р(х1, х2) есть евклидово расстояние между векторами х1 и х2.

Мегаполисы М1, ..., М29 задаются равномерной сеткой на окружности фиксированного радиуса 7,5 (рис. 2). Полагаем, что \М\ = 30 V/ е 1, 29. В качестве точек аг,

/ е 1, 29 , выбираем центры соответствующих окружностей. Далее идет описание функций стоимости. Пусть

при каждом 5 е 1, N функция с определяется условием: при х е X, у е М8 и / е 1, N

с5(х, у, 0 ^ р(х, у)(30 - /).

Таким образом определены стоимости внешних перемещений. Для оценивания внутренних работ исполь-

Рис. 2. Маршрут и трасса обхода множеств

зуются функции с1, ..., с№ определяемые следующим образом: если ^ е 1, N , х е М5, у е М и г е 1, N то с,(х, у, г) 4 р(х, а5) + (р(а5, у))(г + 10).

Наконец, функцию f отождествляем с евклидовой нормой на плоскости X. Тем самым определены функции стоимости с1, ..., сы, с1, ..., с№

Рассмотрим описание мегаполисов. Как сказано ранее, каждый из них определяется сеткой на окружности

радиуса 7,5. Если я е 1, 29, то расположение пунктов М таково, что в состав М непременно включается крайняя правая точка окружности, однозначно определяемая координатой центра и радиусом окружности. При этом полагается, что все 30 точек М занумерованы в направлении против часовой стрелки, причем первая точка есть упомянутая крайняя правая точка окружности. Координаты центров окружностей получены случайным образом, но так, чтобы избежать перекрытия окружностей.

Будем полагать заданным двадцатисемиэлементное множество К (его элементы — адресные пары «отправитель — получатель»)

К = {(2, 3), (3, 29), (5, 22), (5, 19), (6, 18), (8, 2),

(10, 24), (11, 22), (11, 9), (12, 25), (2, 15), (14, 15),

(14, 21), (15, 16), (16, 17), (20, 13), (21, 9), (21, 7), (23, 7), (24, 8), (25, 22), (25, 4), (27, 6), (28, 6), (29,11)}.

В ходе выполнения вычислений получен оптимальный результат: значение задачи 26318,76. Время счета — 8 мин 17 с.

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

В работах [19, 20] рассматривались общие вопросы организации вычислений значений функции Беллмана в пределах слоев, определенных в § 2 (см. также статью [8, 4.9]), приведена схема, обеспечивающая принципиальную возможность построения всех слоев функции

Беллмана (имеется в виду вариант V0, V1, ..., ) посредством системы независимо работающих процессоров. С идейной точки зрения речь идет о том, чтобы (в обозначениях § 2) выделить каждому гипотетическому процессору ровно один список из семейства _ 1. Конструируются дискретные динамические системы с фазовым пространством 5, для каждой из которых определяются области достижимости в пространстве списков, с точками этих областей связываются соответствующие клетки функции Беллмана. Каждый из (гипотетических) процессоров имеет возможность для реализации своей локальной беллмановской (по смыслу) процедуры в попятном режиме. Посредством последующего склеивания

фрагментов определяются функции ..., _ 1 [19, 20]

(варианты V1, ..., -1), после чего с помощью уравнения Беллмана вычисляется глобальный экстремум.

6. ПРЕОБРАЗОВАНИЕ ОСНОВНОЙ ЗАДАЧИ И МЕТОД ИТЕРАЦИЙ

Напомним, что ОЗМ (7) есть оптимизационная задача с зависимыми переменными (маршрут, трасса), что представляет определенные затруднения. Следуя на идейном уровне работам [26, 27], рассмотрим поэтому преобразование ОЗМ к экстремальной задаче с независимыми переменными и, на этой основе, построим итерационную процедуру, допускающую идейные аналогии с методом покоординатного спуска в общей теории экстремальных задач.

N

Пусть М = П (М х М), а функция w е = 1

е Р.+[М х А] такова, что

w(y, а) 4 c(x0, ^(y ), 1, N) +

N - 1

+ X c(Pr2(yа^)^ + i)^ {а0): J e t + 1, N}) +

t = 1

N _

+ X Ca(t) ey^ {a(j): j e t, N}) + /(P^CW) t = 1

V(y.) _ e M Va e A.

i e 1, N

Итак, элементы M — суть наборы (y1, ..., yN), у которых y1 e M1 s M1, ..., yN e MN s MN. Тем самым реализуются пары «городов», соответствующие каждая началу и окончанию внутренних работ. В виде w(h) ^ min, h e M s A, имеем оптимизационную задачу с независимыми переменными; через V обозначаем ее значение, т. е. наименьшее из w(y, a), y e M, a e A. Тогда множество (оптимальных) решений имеет вид:

D

{h0 e M s A|w(h0) = V} e P(M s A).

opt 1 0

Если y e M, то рассматриваем также задачу w(y, а) ^ min, а e A, для которой через (val)[y] обозначаем наименьшее из чисел w(y, а), а e A; (sol)[y] 4 {ао e A|w(y, ао) = (val)[y]} e P(A).

В связи с ОЗМ (7) введем при а e A множество — произведение

Ма 4 П (Ma(i) S Ma(i)).

i = 1

Пусть z0 4 (x0, x0). Введем при y: 1, N ^ X s X

«кортеж-склейку» z □ y: 0, N ^ X s X посредс-

твом правила ((z0 □ y)(0) 4 z0) & ((z0 □ y)(t) 4 y(t)

У? е 1, N). Пусть 6(а)[у] 4 П(а, г0 □ у) Уа е А Уу е Ма. Тогда задача (7) сводится к задаче минимизации 6(а)[у] посредством рационального выбора а е А и у е М . Полагаем, что У есть мно-

жество всех кортежей y: 1, N ^ X s X; тогда в виде S 4 {(a, y) e A x Y | y e Ma} имеем пространство решений последней задачи, S ^ 0. Определяем W e R+[S], полагая при s e S, что W(s) 4 S(a)[y], где a = pr1(s) и y = = pr2(s). Тогда задача (7) сводится к виду:

W(s) ^ min, s e S; (25)

Этой задаче сопоставляем значение (экстремум) v е [0, и непустое множество sol всех ее оптимальных решений. Решаем задачу (26): находим

ю0 е sol и получаем «вилку» v < V < V[ra0j; определяем трассу y(0) е (SOL)[ra0j и конструируем УП X0 4 (ю0, y(0)) е S такую, что W(X0) = У[ю0]. Тем самым реализуется начальный этап процедуры. Для множества S0 4 {s е S | W(s) = V^r^s)]}

имеем X0 е S0. Если X е S, то через SX обозначаем объединение всех множеств {(a, y): y е (SOL)[a]},

a е (sol) [t(X)]. Если X е S0, то SX е P'(S0) и

V — значение задачи (25), а БоМ 4 {^0 е 8|Ж(я0) = X) < Ж(Х) УХ е 8%. С учетом этого конструи-

руем последовательность (Хк)к е м в 80, для кото-

'opt lJ0

= V} е P'(S) — множество ее оптимальных решений. При а е A рассматриваем задачу W(y, a) ^ min, y е Ma, обозначая через V[a] ее значение (наименьшее из W(y, a), y е Ma); (SOL)[a] 4 {y0 е

е Ma| W(a, y0) = V[a]} е P'(Ma). Разумеется, V есть наименьшее из чисел V[a], a е A.

Определяем преобразование t : S ^ M [26, 27] условием: при s е S t(s) 4 y о a 1, где a = pr^s) и y = pr2(s). Оператор T : S ^ M s A [26, 27] имеет вид T(s) 4 (t(s), prx(s)) Vs е S. Тогда W = w о T; T — биекция S на M s A, для которой соответствующая обратная биекция T 1 : M s A ^ S имеет вид: T-1(y, a) = (a, y о a) при y е M и a е A.

Предложение 3. Задача (25) эквивалентна задаче w(h) ^ min, h е M s A: справедливы два равенства

V = V и Dopt = {T(s): s е Dopt}.

Следствие 1. Если a е A, то справедливо равенство V[a] = min w(y, a).

У e M

Метод итераций. Введем M0 4 {x0}. Если i e 0, N

у е 0, N и К е N то П (/, у, К) есть ёеГ наименьшее из с (г, К), г е М х М. При ? е 1, N и К е N через П [?; К] обозначаем наименьшее из чисел СI (г, К), г е М, х М,. Наконец, при у е 1, N число 1. есть ёеГ наименьшее из /(х), х е М... Получаем (минорант-ную) задачу

N - 1

П (0, а(1), 1, N) + X П(а(1), а(t + 1),

t = i

N

{а(к): k e t + 1, N}) + X п НО; {а(к): k e t, N}] +

t = i

+ fa(N) ^ min, а e A.

(26)

рой Х0 было найдено ранее и соответствует задаче (26), Хк е 8 _ 1 Ук е N. При этом реализуются цепочки неравенств

V т V т У^г1(хк)] = Ж(хк) т Ж(хк _ 1) Ук е N.

Как видно из результатов вычислительного эксперимента, (Хк )к е быстро стабилизируется.

Поэтому представляют интерес точки X е 80, для

которых X е 8 %. Легко проверяется свойство: если

УП п е 80 такова, что п е 8П , то Т(п) е М х А реализует покомпонентный экстремум функции w:

Ж(п) = w(T(n)) = ттмКрл(Т(п)), а) =

а е А 1

= тт w(г, рг2(Т(п))).

г е М 2

ЗАКЛЮЧЕНИЕ

Рассмотрены некоторые методы решения задачи последовательного обхода мегаполисов с условиями предшествования и усложенными функциями стоимости (в этих функциях может присутствовать явная зависимость от списка заданий, не выполненных на текущий момент времени). Задачи такого рода могут возникать в атомной энергетике в связи с проблемой снижения облучаемости персонала АЭС (см. работу [28] и библиографию в ней). Отметим, что в отвечающих данному направлению инженерных задачах размерность обычно «умеренная», что вполне соответствует, в частности, содержательной проблеме демонтажа оборудования энергоблока, выведенного из эксплуатации. В то же время имеются другие существенные особенности, осложняющие решение; это прежде всего различные ограничения и сложная зависимость

от действия источников радиации. Представляется, что разработка теоретических конструкций на основе метода динамического программирования представляет собой естественный этап в исследовании упомянутых инженерных задач, для которых применение моделей с элементами маршрутизации является новым уже на постановочном уровне. В статье приведены результаты вычислительного эксперимента при решении модельных задач, ориентированных на упомянутые постановки из атомной энергетики (снижение облучаемос-ти работников). В основу статьи положен доклад авторов на конференции «Параллельные вычисления и задачи управления РАСО'2012» [29]. В данной работе изменено изложение материала; в частности, в § 4 и 5 существенно изменены в сторону усложнения примеры задач, решаемых с помощью ПЭВМ.

ЛИТЕРАТУРА

1. Гэри М., Джонсон Д. Вычислительные машины и трудно-решаемые задачи. — М.: Мир, 1982. — 416 с.

2. Меламед И.И., Сергеев СИ, Сигал И.Х. Задача коммивояжера. Вопросы теории // Автоматика и телемеханика. — 1989. — № 9. — С. 3—34.

3. Меламед И.И., Сергеев СИ, Сигал И.Х. Задача коммивояжера. Точные алгоритмы // Автоматика и телемеханика. — 1989. — № 10. — С. 3—29.

4. Меламед ИИ, Сергеев СИ, Сигал И.Х. Задача коммивояжера. Приближенные алгоритмы // Там же. — 1989. — № 11. — С. 3—26.

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

5. Литл Дж., Мурти К., Суини Д., Кэрел К. Алгоритм для решения задачи о коммивояжере // Экономика и математические методы. — 1965. — Т. 1, вып. 1. — С. 94—107.

6. Беллман Р. Применение динамического программирования к задаче о коммивояжере // Кибернетический сборник. — 1964. — Т. 9. — С. 219—228.

7. Хелд М., Карп Р.М. Применение динамического программирования к задачам упорядочения // Кибернетический сборник. — Там же. — С. 202—218.

8. Ченцов А. Г. Экстремальные задачи маршрутизации и распределения заданий: вопросы теории. — М. — Ижевск: НИЦ «Регулярная и хаотическая динамика», Ижевский институт компьютерных исследований, 2008. — 240 с.

9. Ченцов А.А., Ченцов А.Г., Ченцов П.А. Экстремальная задача маршрутизации с внутренними потерями // Тр. Института математики и механики УрО РАН. — 2008. — Т. 14, № 3. — С. 183—201.

10. Ченцов А.А., Ченцов А.Г., Ченцов П.А. Экстремальная задача маршрутизации перемещений с ограничениями и внутренними потерями // Известия вузов. Математика. — 2010. — № 6. — C. 64—81.

11. Ченцов А.Г. Об оптимальной маршрутизации в условиях ограничений // Доклады РАН. — 2008. — Т. 423, № 3. — C. 303—307.

12. Ченцов А.Г. Метод динамического программирования в экстремальных задачах маршрутизации с ограничениями // Известия РАН. Теория и системы управления. — 2010. — № 3. — C. 52—66.

13. Сесекин А.Н., Ченцов А.А., Ченцов А.Г. Обобщенная задача курьера с функцией затрат, зависящей от списка заданий // Там же. — № 2. — С. 68—77.

14. Сесекин А.Н., Ченцов А.А., Ченцов А.Г. Задачи маршрутизации перемещений. — СПб.: Лань, 2011. — 240 с.

15. Ченцов А.А., Ченцов А.Г. Экстремальные задачи маршрутизации «на узкие места» с ограничениями в виде условий предшествования // Тр. Института математики и механики УрО РАН. - 2008. - Т. 14, № 2. - С. 129-142.

16. Сесекин А.Н., Ченцов А.А., Ченцов А.Г. Об одной задаче маршрутизации «на узкие места» // Там же. — 2010. — Т. 16, № 1. - С. 152-170.

17. Сесекин А.Н., Ченцов А.А., Ченцов А.Г. Маршрутизация с абстрактной функцией агрегирования стоимостей перемещений // Там же. - № 3. - С. 240-264.

18. Григорьев А.М., Иванко Е.Е., Ченцов А.Г. Динамическое программирование в обобщенной задаче курьера с внутренними работами: элементы параллельной структуры // Моделирование и анализ информационных систем. -

2011. - Т. 18, № 3. - С. 101-124.

19. Ченцов А.Г. Одна параллельная процедура построения функции Беллмана в обобщенной задаче курьера с внутренними работами // Автоматика и телемеханика. -

2012. - № 3. - С. 134-149.

20. Ченцов А.Г. Одна параллельная процедура построения функции Беллмана в обобщенной задаче курьера с внутренними работами // Вестник Южно-Уральского государственного университета. - 2012. - № 18 (277). - С. 53-75.

21. Ченцов А.Г., Ченцов П.А. Динамическое программирование в одной нестационарной задаче маршрутизации // Известия Института математики и информатики УдГУ. - 2012. -Вып. 1 (39). - С. 151-154.

22. Тонков Л.В., Ченцов А.Г. К вопросу оптимального выбора маршрута в условиях временного дисконтирования // Кибернетика и системный анализ. - 1999. - № 1. -С. 95-106.

23. Дьедонне Ж. Основы современного анализа. - М.: Мир, 1964. - 430 с.

24. Варга Дж. Оптимальное управление дифференциальными и функциональными уравнениями. - М.: Наука, 1977. -624 с.

25. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: Построение и анализ. - М.: МЦНМО, 2002. - 960 с.

26. Ченцов А.А., Ченцов А.Г., Ченцов П.А. Метод итераций в задаче маршрутизации с внутренними потерями // Тр. Института математики и механики УрО РАН. - 2009. - Т. 15, № 4. - С. 270-289.

27. Ченцов А.А., Ченцов А.Г. Об одной итерационной процедуре решения задачи маршрутизации с ограничениями // Там же. - 2012. - Т. 18. - № 3. - С. 261-281.

28. Коробкин В.В., Сесекин А.Н., Ташлыков О.Л., Ченцов А.Г. Методы маршрутизации и их приложения в задачах повышения безопасности и эффективности эксплуатации атомных станций. - М.: Новые технологии, 2012. - 234 с.

29. Ченцов А.А., Ченцов А.Г., Ченцов П.А. Динамическое программирование в экстремальных задачах маршрутизации: общая теория и элементы параллельной структуры // Тр. шестой международной конференции «Параллельные вычисления и задачи управления». - М., 2012. - Т. 2. -С. 183-198.

Статья представлена к публикации членом редколлегии В.Г. Лебедевым.

Алексей Александрович Ченцов - канд. физ.-мат. наук, гл. программист, в (343) 350-09-67, И chtntsov_a_a@mail.ru,

Александр Георгиевич Ченцов - чл.-корр. РАН,

гл. науч. сотрудник, в (343) 371-90-16, И chentsov@imm.uran.ru,

Павел Александрович Ченцов - канд. физ.-мат. наук, науч. сотрудник, в (343) 375-81-62, Иchentsov.p@mail.ru,

Институт математики и механики им. Н.Н. Красовского Уральского отделения РАН,

Уральский федеральный университет, г. Екатеринбург.

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