Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab12 - Применение генетических алгоритмов.doc
Скачиваний:
17
Добавлен:
03.11.2018
Размер:
1.46 Mб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

"ХАРЬКОВСКИЙ ПОЛИТЕХНИЧЕСКИЙ ИНСТИТУТ"

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к практической работе №12

"Применение генетических алгоритмов"

по курсу "ОСНОВЫ ВЫЧИСЛИТЕЛЬНОГО ИНТЕЛЛЕКТА"

для студентов специальностей 7.091501, 7.091502, 7.091503

дневной и заочной форм обучения

Харьков НТУ "ХПИ" 2010

Цель работы

Изучить применение генетических алгоритмов к различным задачам оптимизации.

Задача №1. Применение генетических алгоритмов к задаче оптимизации вычислительной сети

Краткие сведения из теории:

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

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

  • разработать и реализовать систему снятия статистики трафика на бэкбоне, состоящем из концентраторов;

  • разработать систему представления входных данных для генетического алгоритма;

  • разработать и реализовать генетический алгоритм.

Модель вычислительной сети организации:

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

Пусть в ВС имеется п комм/конц и т узлов. Обозначим узлы ui, i = 1, ..., т, а комм/конц qj, j= 1, ..., п. Каналы связи между ql и qk будем обозначать Slk. Ограничения с точки зрения задачи размещения представлены ограничениями на допустимые длины каналов связи. Каналы Slk в большинстве реальных ВС соединены последовательно (рис. 1). Каналы, замыкающие кольцо (на рис. 1 — точечная линия), необходимы для повышения надежности за счет оперативного формирования новой магистрали в случае повреждения каналов связи.

В контексте задачи существуют два вида каналов связи:

  • <узел> — <комм/конц>;

  • < комм/конц > — <комм/конц>.

В любой ВС имеется т каналов первого типа (по числу узлов) и не более п • (п - 1)/2 — каналов второго типа.

Рис. 1 Пример ВС с коммутацией.

В процессе модернизации ВС изменение топологии представлено следующими действиями: переподключение узлов к другим комм/конц; прокладка новых каналов связи. Эффективность каждого нового канала связи оценивается по влиянию на суммарный трафик всех каналов связи. Функцию эффективности

можно пересчитывать многократно для разных вариантов ВС.

Переменная Тk выражает трафик канала k, а переменная Рk выражает максимальную пропускную способность канала. Задача переподключения узлов к другим комм/конц — это задача разбиения m рабочих станций на п групп. Для каждой i-й группы имеется ограничение на количества подключенных станций.

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

Кодирование решения задачи (хромосомы) может быть следующим. Вариант разбиения узлов на сегменты, т.е. решение, удобно представлять рядом целых чисел. Пусть все узлы имеют уникальные номера от 1 до m и упорядочены в соответствии с этими номерами. Позиция i содержит номер комм/кони (от 1 до n), к которому подключен узел i. Пример кодирования топологии ВС, изображенной на рис. 5.4, приведен в табл. 5.2.

Для двоичного кодирования номера qi комм/конц необходимо: [log2 n] бит, где [] — операция округления в большую сторону.

Для вышерассмотренного примера хромосома с использованием двоичного кодирования приведена в табл. 5.3.

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

  • случайный выбор гена (вероятность 0,001);

  • случайный выбор бита;

  • инверсия выбранного бита;

  • операция по модулю п над геном, содержащим результат инверсии modn(x).

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

где Тк — трафик канала к; Рк — пропускная способность канала;

Lмножество всех вариантов выбора коммуникационного оборудования;

К — количество каналов.

Вид коммуникационного оборудования значительно влияет на загруженность каналов связи. Реальная ВС часто содержит как коммутаторы, так и концентраторы. Улучшить пропускные способности каналов связи можно за счет оптимального выбора коммутаторов или концентраторов. Задача выбора коммуникационного оборудования задается на уровне каналов связи, каждый канал k характеризуется пропускной способностью — реальной Рk и максимальной Рkmax (бит/с). Интенсивность взаимодействия (передачи сообщений) любой пары узлов — это величина Bij (бит/с). Величина Bij измеряется в течение длительного промежутка времени и усредняется. Усреднение может быть представлено или вычислением среднего значения Bijcp, или построением на основе гистограммы распределения вероятностей.

Суммарный трафик, приходящийся на канал связи, зависит от типа канала. Будем рассматривать только каналы типа:

  • коммутатор/концентратор> — <коммутатор/концеитратор>

Тогда можно выделить следующие подвиды каналов:

<коммутатор> — <коммутатор>;

  • концентратор> — <концентратор>;

  • коммутатор> — <концентратор>.

Суммарный трафик выражается по-разному для трех подвидов каналов связи. Рассмотрим суммарный трафик канала типа <коммутатор> —<коммутатор>:

Множество вершин М1 и множество вершин M2 — это множества узлов по одну и другую стороны от канала связи. Суммарный трафик канала <концентратор> — <концентратор> измеряется по-другому, так как канал, образованный концентраторами, составляет общую магистраль:

Суммарный трафик канала <концентратор> — <коммутатор> может быть вычислен следующим образом:

Необходимость модернизации ВС определяется по степени близости суммарного трафика и пропускных способностей каналов связи. Для нахождения оптимального подключения используется следующий генетический алгоритм.

1. Генерируется популяция хромосом случайным образом с проверкой корректности, т.е. возможности подключения, закодированного в хромосоме.

2. Для каждой хромосомы рассчитывается значение функции оптимальности, т.е. величина трафика на бэкбоне при подключении, закодированном в хромосоме.

3. В соответствии со значением функции оптимальности производится ранжирование хромосом, хромосомы упорядочиваются по мере убывания эффективности.

4. Для каждой хромосомы вычисляется вероятность отбора

где Psвероятность отбора; а — хромосома; f — функция оптимальности; t — номер поколения; λ — размер популяции.

5. Проводится масштабирование вероятностей отбора, наибольшая вероятность принимается за единицу, наименьшая — за нуль, остальные пропорционально масштабируются:

где Psвероятность отбора; Pslмасштабированная вероятность; Pmin — минимальная вероятность в популяции; Pmах — максимальная вероятность в популяции.

6. Начинается формирование новой популяции: производится элитный отбор, т.е. определенное число «старых» хромосом переносится в новую популяцию.

7. Производится кроссинговер случайно выбранных хромосом. Точка кроссинговера выбирается случайно. Процесс продолжается до тех пор, пока размер новой популяции не будет равен размеру исходной.

8. Возвращаемся в п. 2, и цикл повторяется заданное число раз.