Автор работы: Пользователь скрыл имя, 26 Февраля 2011 в 12:33, курсовая работа
Актуальность работы. В последние годы интенсивно разрабатывается научное направление с названием «Природные вычисления» (Natural Computing), объединяющее математические методы, в которых заложены принципы природных механизмов принятия решений. Эти механизмы обеспечивают эффективную адаптацию флоры и фауны к окружающей среде на протяжении нескольких миллионов лет.
Введение..................................................................................................................3
Глава 1. Муравьиные алгоритмы.
1. Биологические принципы поведения муравьиной колонии.................5
2. Истории создания муравьиных алгоритмов...........................................7
3. Концепция муравьиных алгоритмов.................................. …………....9
4. Обобщённый алгоритм............................................... ...........................11
5. Этапы решения задачи при помощи муравьиных алгоритмов...........13
6. Достоинства и недостатки муравьиных алгоритмов...........................14
6.1. Достоинства:.........................................................................................14
6.2. Недостатки:...........................................................................................14
Глава 2. Применение муравьиных алгоритмов при решении задач оптимизации.
1.1. Применение муравьиных алгоритмов для задачи
коммивояжёра..............................................................................................16
1.2. Муравьиный алгоритм для задачи коммивояжёра в псевдокоде..............................................................................................................25
2.1. Задача оптимального распределения файлов в компьютерной сети……………………………………………………………………….…...28
2.2 Муравьиный алгоритм для задачи распределения файлов
в компьютерной сети в псевдокоде…………………………..…………29
Заключение………………...................................................................................32
Список использованной литературы...................................................................33
Рис.1.
Представим решение в виде:
Вычисляем границы четырех секторов , j=2,3,4,5 вероятностей:
Таким образом, отрезок [0,100] разбился на четыре участка
Остается запустить генератор случайных чисел и узнать , куда попадает случайное число . В нашем случае генератор дает =65, что указывает на третий участок 57,5<65<75,89. Следовательно, муравей должен направиться к вершине 4.
Вероятности перехода в эти вершины
Вычисляем границы трех секторов , j=2,3,5 вероятностей:
Таким образом, отрезок [0,100] разбился на три участка
Случайное число =61, полученное генератором случайных чисел попадает на второй участок. Этот участок указывает на вершину 3. Далее муравей будет выбирать маршрут из этой вершины.
Таким образом, отрезок [0,100] разбился на два участка
Случайное число =35, полученное генератором случайных чисел указывает на вершину 2.
1.2 Муравьиный алгоритм для задачи коммивояжёра в псевдокоде
1. Ввод матрицы расстояний D
2.
Инициализация параметров
3.
Инициализация рёбер –
4.
Размещение муравьёв в
5. Выбор начального кратчайшего маршрута и определение L*
//Основной цикл
6. Цикл по времени жизни колонии t=1, tmax
7. Цикл по всем муравьям k=1,m
8. Построить маршрут по правилу (1) и рассчитать длину
9. конец цикла по муравьям
10. Проверка всех на лучшее решение по сравнению с L*
11. В случае если решение лучше, обновить L* и T*
12. Цикл по всем рёбрам графа
13. Обновить следы феромона на ребре по правилам (2) и (3)
14. конец цикла по рёбрам
15. конец цикла по времени
16. Вывести кратчайший маршрут T* и его длину L*
Сложность данного алгоритма, как несложно заметить, зависит от времени жизни колонии (tmax), количества городов (n) и количества муравьёв в колонии (m).
Для исследования работы муравьиного алгоритма проведен вычислительный эксперимент. Предложенным алгоритмом решена задача коммивояжера. Количество городов и количество муравьев совпадают. Программа составлена в среде Delphi (Приложение 1).
Зададим начальные значения: количество городов, интенсивность феромона и стоимость маршрута.
После подсчета программа выводит
кратчайший путь 1-2-3-4-5, и длину пути равную
220. Интенсивность феромона на путях
после прохождения по ним муравьев
увеличилась.
В
ходе вычислительного эксперимента
были сравнены решения данной задачи
с помощью муравьиного и генетического
алгоритмов. В результате пришли к
выводу что, что вычисление муравьиным
алгоритмом происходит быстрее.
Опыт 1 | Опыт 2 | Опыт 3 | |
Муравьиный алгоритм | 1,600мс | 1,550мс | 1,750мс |
Генетический алгоритм | 4,300мс | 3,100мс | 4,700мс |
в компьютерной сети.
В данной главе решается задача уменьшения времени отклика компьютерной сети за счет оптимизации размещения файлов распределенной системы. Для решения задачи предлагается алгоритм, относящийся к классу алгоритмов муравьиной колонии. [16]
Обозначим: - количество запросов к файлу i из узла j в единицу времени; , если файл i расположен в узле j, иначе ; - объем файла i; - объем узла j, i=1...m, j=1…n.
В задаче (1)-(3) необходимо найти матрицу размещений файлов X. В задаче максимизируется суммарный поток локальных запросов. Задача размещения файлов по узлам компьютерной сети имеет вид:
(1)
Ограничения:
(2)
2.2
Муравьиный алгоритм
для задачи распределения
файлов в компьютерной
сети в псевдокоде.
1.Присвоить переменной record первоначальное (небольшое) значение;
2.Присвоить переменной t значение 1;
3. While Do
Begin
For i:=1 to m do
Begin
а). Сформировать вектор P(n) вероятностей размещения i-го файла в j-й узел.
б). Сгенерировать случайную величину g, распределенную по закону P(n);
в). Если и условие (3) выполняется,
то назначить i-й файл в j-й узел,
иначе - сгенерировать новое значение случайной величины g.
End;
г).Вычислить значение целевой функции по формуле (1) и присвоить его
переменной c_f;
д) Если c_f > record,
е) то
Begin
ж) Присвоить переменной record значение переменной c_f и сохранить рекордное решение;
End;
з) Присвоить переменной t значение t+1;
End;
4. Вывести наилучшее решение и завершить алгоритм.
Пусть - количество феромона, накопленное очередным муравьем на маршруте j, – коэффициент испарения феромона, , – первоначальный уровень феромона, , - уровень феромона на маршруте j. Вероятность размещения файла в узел j вычисляется по формуле:
При выборе узла p для размещения файла происходит увеличение значения : , значение переменной d должно быть одного порядка с оптимальным значением целевой функции. При переходе к очередной итерации алгоритма уровень феромона накапливается:
Для
исследования работы муравьиного алгоритма
проведен вычислительный эксперимент.
Предложенным алгоритмом и методом
полного перебора решена задача распределения
m файлов среди n узлов сети, m=5, n=3. Объемы
файлов - случайные числа. Программа составлена
в среде Delphi (Приложение 2).
Заключение
Муравьиные алгоритмы могут быть успешно применены для решения сложных задач оптимизации. Основная идея, лежащая в основе алгоритмов муравьиной колонии, заключается в использовании механизма положительной обратной связи, который помогает найти наилучшее приближенное решение в сложных задачах оптимизации. То есть, если в данном узле муравей должен выбрать между различными вариантами и если фактически выбранные результаты будут хорошими, то в будущем такой выбор будет более желателен, чем предыдущий. Этот подход является многообещающим из-за его общности и эффективности в обнаружении очень хороших решений сложных проблем.
В данной дипломной работе приведены
теоретические основы муравьиных алгоритмов
оптимизации, проанализированы применения
муравьиных алгоритмов, описаны решения
муравьиными алгоритмами задачи коммивояжера
и задачи оптимального распределения
файлов в компьютерной сети. Решения задач
были реализованы в среде программирования
Delphi. Приведен сравнительный анализ
результатов решения задачи коммивояжера
с помощью муравьиного и генетических
алгоритмов. В ходе эксперимента было
выявлено, что вычисление с помощью муравьиного
алгоритма происходит быстрее.
Список использованной литературы:
Информация о работе Применение муравьиных алгоритмов при решении задач оптимизации