Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_ROD_1.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
1.09 Mб
Скачать

Алгоритм а* оптимального назначения задач на процессоры

Алгоритм А* реализует стратегию поиска первого наилучшего. Алгоритм широко используется для решения задач искусственного интеллекта. Он может использоваться как для древовидных так и не древовидных графов. Обход дерева поиска оптимального назначения задач на процессоры алгоритм начинает с корня. Получаемое начальное решение проблемы можно назвать нулевым. Промежуточной нетерминальной вершине дерева поиска соответствует частичное решение проблемы (одни задачи назначены, другие нет), вершине-листу (терминальной вершине) соответствует полное решение (все задачи назначены на процессоры). Стоимостная функция f(d) вычисляется для каждой вершины d дерева поиска. Значением f(d) является оценочная стоимость наиболее «дешевого» решения от корня к листу, проходящего через вершину d. Эту стоимость можно записать в виде:

, (2)

где g(d) – стоимость решения, ассоциируемая с путем от корня дерева до вершины d; b(d) – нижняя граница стоимости решения, ассоциируемого с путем от вершины d до одного из листьев дерева.

Под раскрытием вершины понимается генерация всех ее дочерних вершин в дереве поиска и вычисление значения функции f для каждой дочерней вершины. Сгенерированные вершины упорядочиваются по убыванию значения функции стоимости. Алгоритм поддерживает упорядоченный список сгенерированных вершин, называемый OPEN. Поскольку из списка выбирается всегда первая вершина с наименьшей стоимостью, алгоритм гарантирует нахождение оптимального решения путем последовательного раскрытия вершин.

Для проблемы поиска оптимального назначения задач на процессоры имеет место следующее:

  • пространством поиска является дерево;

  • начальная вершина (корень) дерева описывает нулевое назначение задач на процессоры;

  • промежуточные (нетерминальные) вершины описывают частичные назначения задач на процессоры;

  • вершины-листья (терминальные) описывают полные назначения.

При расчете значения функции f(d), слагаемое g(d) есть стоимость частичного назначения задач на процессоры в вершине d, т.е. частичная загрузка наиболее загруженного процессора p, определяемая посредством соотношения (1). Для вычисления b(d) используются два подмножества задач: подмножество Tp и подмножество U. Подмножество Tp включает задачи, уже назначенные на процессор p. Подмножество U включает задачи, еще не назначенные на процессоры и имеющие одну или более связей с задачами из множества Tp. Каждая задача ti из U будет назначена на процессор p или другой процессор q, имеющий прямую связь с p. Следовательно, мы можем ассоциировать два вида стоимости с каждым назначением ti: либо Xip (время решения ti на p), либо сумму Hpi времен обмена данными всех задач из Tp, имеющих связи с задачей ti. С использованием минимального значения стоимостей двух видов

cost(ti) = min (Xip, Hpi) (3)

принимается решение о назначении или не назначении ti на p. Нижняя граница b(d) стоимости назначения оставшихся вершин на процессоры оценивается выражением:

. (4)

на каждом шаге работы алгоритма А*.

Описание алгоритма А* дано на рис.1. Особенностью этого описания является генерация случайного начального назначения задач на процессоры. Начальное значение позволяет сократить число раскрываемых вершин в дереве поиска и тем самым ускорить нахождение оптимального значения.

Сгенерировать случайное решение

Пусть S_Opt есть стоимость этого решения

Сгенерировать корневой узел s дерева поиска и построить начальное состояние списка OPEN

Присвоить f(s)=0

Repeat

Выбрать узел d с минимальным значением f(d)

if (d не есть полное решение)

Сгенерировать дочерние вершины узла d

for каждой дочерней вершины d’ do

if (d’ не находится на нижнем уровне дерева поиска)

f(d’) = g(d’) + b(d’)

else f(d’) = g(d’)

end if

if (f(d’) ≤ S_Opt) Вставить d’ в список OPEN

end for

end if

if (d является полным решением) Вывести решение d

Until (d является решением) or (список OPEN пустой)

Рис.1. Алгоритм А* оптимального назначения задач на процессоры

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]