Лекция 10 (1121239)
Текст из файла
Концепция построения алгоритмов (биологическая модель)
При решении задачи нахождения кратчайшего пути муравьиные алгоритмы позволяют автоматически настраиваться на пример задачи (заданы конкретные значения исходных данных) путем дополнительной разметки исходных данных, которая используется для построения решения на каждой итерации алгоритма и уточняется по мере увеличения числа итераций.
Общая схема работы муравьиных алгоритмов
-
Задание начального количества феромона на ребрах графа, количества и начального положения муравьев.
-
Построение муравьями пути (каждый муравей строит путь независимо от остальных).
-
Вычисление целевой функции для каждого пути.
-
Обновление количества феромона на ребрах.
-
Если условие останова не выполнено, то переход к п.2.
Операция построение муравьем пути
-
Муравей строит путь, переходя из одной вершины в другую.
-
Пройденные муравьем вершины добавляются в табу-список (память муравья), чтобы избежать повторного их посещения.
-
Вероятность перехода муравья из i-й вершины в j-ю зависит от количества феромона на данном ребре, значения локальной целевой функции на ребре и состояния табу-списка.
Вероятность перехода k-го муравья из i-й вершины в j-ю на t-й итерации алгоритма рассчитывается по следующей формуле:
ij(t) - количество феромона на ребре (i,j),
- значение локальной целевой функции на ребре (i,j),
Lk – множество вершин, включенных в табу-список муравья k,
и - параметры алгоритма, определяющие важность феромонного следа и локальной целевой функции.
Операция обновление количества феромона на ребрах
Tk(t) – путь, построенный k-м муравьем,
F(T) – целевая функция, определяющая качество пути,
m – количество муравьев,
p[0,1] – коэффициент испарения феромонов.
-
Сведение задачи условной оптимизации к задаче нахождения на графе маршрута, обладающего определенными свойствами.
-
Задание локальной эвристической функции на ребрах графа.
-
Определение алгоритма построения маршрута муравьем (например, определение правила формирования табу-списка вершин).
Модификации муравьиных алгоритмов были разработаны с целью устранить основные недостатки базового алгоритма:
-
возможность потери наилучшего найденного решения;
-
низкой скоростью сходимости к оптимуму из-за приблизительно равного вклада в обновление феромонов хороших решений из различных областей пространства решений;
-
хранением в памяти алгоритма (количество феромона на ребрах) заведомо не перспективных решений.
Максиминная схема алгоритма позволяет решить проблему быстрой сходимости муравьиного алгоритма к локальному оптимуму. Для этого к базовой схеме добавляются три правила:
-
На каждой итерации феромон добавляется только на лучшее из решений, среди найденных на данной итерации;
-
Ограничивается минимальное и максимальное количество феромона на ребрах:
; -
Изначально количество феромона на всех ребрах равно max.
Изначально одинаковое количество феромона на всех ребрах уменьшает вероятность выбора одного и того же маршрута разными муравьями.
Условие
не позволяет одному относительно хорошему решению доминировать над другими.
Эти ограничения позволяют разнообразить находимые алгоритмом маршруты и избежать попадания в локальный оптимум.
Кроме того, для дополнительного расширения области поиска в максиминном алгоритме применяется механизм «сглаживания следов»: количество откладываемого на ребрах феромона пропорционально величине
.
Модификация с поглощением феромона – ещё один метод, применяющийся для расширения области поиска решений. Проходя по ребру при построении пути, муравей поглощает часть феромона на этом ребре:
, где d – доля поглощаемого феромона.
Ребро, по которому уже прошел один из муравьев, сразу теряет свою привлекательность для других муравьев, что заставляет их выбирать другие ребра.
Усиление сходимости к оптимуму в его окрестности.
Элитные муравьи.
Элитные муравьи откладывают феромоны только на ребрах наилучшего маршрута найденного сначала работы алгоритма.
Ранговый муравьиный алгоритм.
Найденные на каждой итерации решения ранжируются.
Только (w-1) лучших муравьев и один элитный откладываю феромоны.
Совместное использование с алгоритмами локального поиска
Суть подхода заключается в том, что на каждой итерации муравьиного алгоритма алгоритмы локального поиска пытаются улучшить найденные решения. Обычно применяются локально-оптимальные алгоритмы.
Для задачи коммивояжера, часто используются алгоритмы локального поиска, которые улучшают маршрут заменой заданного количества ребер.
Список кандидатов
Используется для решения задач большой размерности.
Список кандидатов представляет собой небольшой список предпочтительных вершин, в которые может перейти муравей из очередной вершины.
Муравей выбирает вершину не из списка кандидатов только тогда, если он прошел его уже полностью.
Штовба С.Д. Муравьиные алгоритмы: теория и применение// Программирование. 2005. №4.
Задача построения статико-динамических расписаний
Пусть задано множество работ:
SW={ai=<si,fi,ti,pi>|i[1..n]}, где
-
[si,fi) – директивный интервал;
-
ti – время выполнения работы;
-
pi – номер раздела работы;
-
и , определяющие, временные затраты на переключение контекста между окнами и резерв свободного времени внутри каждого окна.
Требуется построить расписание, представляющее собой набор окон:
SP={wi=<Si,Fi,SWi>|i[1..m]}, где
-
Si – время открытия окна;
-
Fi – время закрытия окна;
-
SWi={aij}SW – множество работ, выполняемых внутри окна.
Ограничения корректности расписания:
-
(i,j)[1..m],ij:SWiSWj= – множества работ, размещенных внутри разных окон, не пересекаются;
-
i[1..n],j[1..m],aiSWj:siSj<Fjfi – временной интервал окна лежит внутри директивных интервалов работ, выполняющихся в окне;
-
(i,j)[1..n],k[1..m],ai,ajSWk:pi=pj – разделы работ, размещенных внутри одного окна, совпадают;
-
(i,j)[1..m],i<j:SjFi+ – окна не пересекаются и между любыми двумя соседними окнами есть промежуток не короче времени, необходимого на переключение контекста;
-
– суммарное время выполнения всех работ из одного окна с учетом резерва времени не больше, чем длина окна.
Способ сведения задачи построения статико-динамического расписания к задаче нахождения на графе маршрута
Построим полносвязный граф G=<N,A>, где:
-
N={ni|i[1..n]}{O} – множество вершин;
-
A={(ni,nj)|i,j[1..n],ij}{(O,ni)|i[1..n]}> – множество ребер.
Каждой вершине графа соответствует одна из размещаемых работ. Кроме того, добавляется еще одна вершина О, соответствующая началу расписания.
Алгоритм для построения расписания по такой последовательности работ
Пусть дана последовательность работ SL={aik|aikSW;i,k[1..n]}. Первый индекс означает номер работы, второй - номер места работы в последовательности. Построим расписание SP по следующему алгоритму:
-
Инициализация расписания: Time=0 – текущая длина расписания; k=1 – номер места размещаемой работы в SL; SW0= – список работ в добавляемом окне;
-
Установка начальных параметров окна: S=max(Time,sik), F=fik – границы добавляемого окна; T=2 – минимальная необходимая длина окна с учетом добавленных работ; R=rik – раздел для работ в окне;
-
Обновление значений параметров окна с учетом новой добавляемой работы: S’=max(S,sik), F’=min(F,fik), T’=T+tik;
-
Добавление работы в текущее окно: если rik=R , T’F’–S’ (условия корректности не нарушаются), то: S=S’, F=F’, T=T’, SW0=SW0{aik}, k=k+1, если kn (список SL еще не пройден), переход к п.3;
-
Проверка возможности добавления работы в новое окно: если fik–F–<tik , то k=k+1, если kn переход к п.3 – данная работа не может быть размещена ни в текущее окно, ни в новое окно (дальше в списке еще могут быть работы, которые можно разместить в текущее окно);
-
Закрытие окна: F=S+T – устанавливаем время закрытия окна минимально возможным;
-
Добавление данного окна в расписание: SP=SP{<S,F,SW0>};
-
Пересчет длины расписания: Time=F+, k=k+1;
-
Если k n (список еще не пройден), переход к п.2.
-
Условие корректности 1 выполняется, т.к. каждая вершина встречается в построенном маршруте ровно один раз, и соответствующая ей работа размещается лишь в одно окно;
-
Условие 2 выполняется, т.к. S’=max(S,sik)sik; F’=min(F,fik)fik (п.3);
-
Выполнение условий 3 и 5 обеспечивается проверками в п.4 алгоритма – если ограничения нарушаются, работа не размещается в данное окно;
-
Условие 4 выполняется, т.к. Si+1Time (п.2), где Time=Fi+п.8
SW={a1=<0,11,4,1>,a2=<4,11,2,1>,a3=<4,11,2,1>}, ==1
Построенные расписания по различным маршрутам.
Оптимальное расписание.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.















