Способ миграции виртуальных ресурсов в центрах обработки данных

Способ миграции виртуальных ресурсов в центрах обработки данных, в котором, используя множество U={ei}, 1<=i<=k, формируют множество заданий на перемещение {Ti};
упорядочивают множество {Ti} по уменьшению произведения Vi*(Ai+1) и формируют из него очередь Q;
извлекают очередной элемент из очереди Q;
инициируют нулем переменную observeTime, которая отвечает за рассматриваемое в данный момент точку в расписании;
C
если текущее время равно t, переходят к следующему шагу, иначе пытаются поставить перемещение в текущее время - observeTime:
a) формируют Hres(observeTime);
b) ищут путь минимальный по заданной стоимости в графе Hres(observeTime) от вершины si до вершины di; поиск производится при помощи алгоритма Дейкстры [1]; стоимость ребра (физического канала) в графе - это занятая пропускная способность; если не удалось найти путь, переходим к подпункту (iv);
C
c) проверяют, превысили ли мы время миграции: если превысили, то переходят к следующему шагу, иначе проверяют, мешают ли каким-нибудь перемещениям и если не мешаем никаким перемещениям, то кладут сформированное перемещение TRi в множество уже обработанных перемещений {TRj} и обновляют время t, иначе переходят к следующему шагу;
d) пропускают ближайшее к текущему времени перемещение;
производят попытку переместить элемент ei, при этом ищут путь от si до di в графе Hres(0) и если неуспех, то кладут обрабатываемое Ti в конец очереди и алгоритм возвращает неуспех;
проверяют, превышено ли время миграции и если превышено, то кладут обрабатываемое Ti в конец очереди и алгоритм возвращает неуспех;
C
кладут сформированное перемещение TRi в множество уже обработанных перемещений {TRj} и обновляют время t;
если очередь Q зациклилась, то алгоритм возвращает неуспех, если очередь Q пуста возвращает успех.