КАНАЛЬНАЯ ТРАССИРОВКА СВЕРХБОЛЬШИХ ИНТЕГРАЛЬНЫХ СХЕМ НА ОСНОВЕ АЛГОРИТМА КОСЯКА РЫБ Галиев Айнур Ильдарович, студент Научный руководитель: Чермошенцев Сергей Федорович, д.т.н., профессор Казанский национальный исследовательский технический университет
им. А.Н. Туполева-КАИ, г.Казань
В статье рассматривается новые механизмы решения задачи канальной трассировки, использующие принципы поведения живой природы. Процесс поиска оптимального решения основан на имитации поведения рыб. Рассматривается способ представления решения задачи канальной трассировки, а также эвристики, имитирующие биологические процессы, происходящие при поиске косяком рыб места скопления пищи.
Этап трассировки межсоединений сверхбольших интегральных схем (СБИС) является заключительным этапом автоматизированного проектирования СБИС. Трассировка межсоединений определяет такие важные параметры в работе электронного средства, как задержка сигнала, помехоустойчивость, быстродействие. В связи с этим, данный этап проектирования СБИС является наиболее сложным и требует тщательного подхода к его реализации. Для поиска решения задачи канальной трассировки (ЗКТ) используется множество методов и алгоритмов. Однако наиболее интересными и перспективными считаются алгоритмы, имитирующие природные процессы поведения животных: пчелиный алгоритм, муравьиный алгоритм [1], алгоритм летучих мышей и т.д.
В данной статье рассматривается алгоритм, имитирующий поведение косяка рыб. Данный алгоритм предложили в 2008 году Фило (B. Filho) и Нето (L. Neto) [2]. Косяк рыб является многоагентной системой, в которой каждый агент движется по определенным правилам, сочетающим как индивидуальный поиск, так и коллективный. При этом на каждой итерации алгоритма рыбе-агенту не нужно запоминать наилучшее решение, которое оно имело на предыдущих итерациях. Такая особенность отличает данный алгоритм от других многоагентных алгоритмов.
Канал описывается двумя последовательностями Р и Q, в которых размещены верхняя и нижняя линейки канала, соответственно. Размер обоих последовательностей равен С — числу колонок в канале. Множество цепей определяется как S = {Л^,...,Nm}, где т — число цепей.
Каждая цепь представляется в виде набора горизонтальных и вертикальных фрагментов. Задача трассировки в канале рассматривается как задача распределения фиксированного множества горизонтальных участков F = {/¿|i = 1,2,..,iV} в множестве магистралей М = {rn.j\j = 1,2, ...,L]. На взаимное расположение горизонтальных фрагмен-
тов накладываются ограничения, задаваемые с помощью графа вертикальных ограничений (ГВО).
Вертикальные ограничения описываются ориентированным графом вертикальных ограничений Су = (_ЕБ,ЕУ), где ЕБ — множество вершин, соответствующих множеству цепей 5, Еу — множество направленных ребер. Ребро (п, т) 6 Еу существует тогда и только тогда, когда цепь п должна быть расположена выше цепи т. для предотвращения наложений вертикальных сегментов цепей.
Цель оптимизации - минимизация числа магистралей, необходимых для размещения в них горизонтальных участков с соблюдением ограничений.
Известны несколько способов представления решения канальной трассировки [3]. В данной работе рассмотрим символьное представление решение задачи канальной трассировки.
Разобьем множество горизонтальных фрагментов F на подмножества ^, F = {Рк1к = 1,2, ...,У] в соответствии со следующими правилами:
1. = п ^ = 0]
2. Любые два участка и Уу 6/^ находятся в горизонтальном конфликте и не могут быть помещены в одну магистраль.
3. Подмножества Ffc сформированы и пронумерованы так, что все левые концы участков Ffc расположены левее всех левых концов участков
Рк+1.
Алгоритм разбиения F на Ffc имеет линейную трудоемкость.
Множество горизонтальных фрагментов F, в соответствии с приведенными правилами, разбивается на подмножества. Обозначим через ак - мощность подмножества Ffc. Среди ак отыскивается атах с максимальным значением, Ук[атах >ак]. Произведем нормирование подмножеств Ffc, путем добавления в них ((Хтах- ак ) нулей в случайной последовательности.
Для отображения решения задачи канальной трассировки (ЗКТ) формируется матрица Ю = / = 1,2, ...,ятах; к = 1,2, ...,К}, число столбцов которой равно числу V подмножеств Ffc, а число строк равно атах. Каждый -й столбец Ок в случайной последовательности заполняется элементами множества Ffc. Процедура получения решения ЗКТ по матрице И осуществляется следующим образом. Магистрали заполняются последовательно, начиная с первой. Последовательно по строкам, начиная с первой, а в пределах строки слева направо, просматриваются элементы матрицы И. Для каждого выбранного элемента матрицы (фрагмента) определяется возможность его размещения в текущей магистрали в соответствии с йу и . Если возможно, то фрагмент помещается в текущую магистраль и удаляется из И. По окончании просмотра матрицы £ осуществляется сжатие всех столбцов, из которых удалялись фрагменты, снизу-вверх. После этого осуществляется переход к заполнению следующей магистрали. Таким образом, матрица £ является символьным представлением реше-
ния задачи канальной трассировки. В работе пространство решений представляется множеством матриц Поиск решения сводится к поиску такой матрицы т.е. к поиску такого порядка расположения элементов в
который оптимизируют показатель качества (критерий).
Алгоритм представляет собой многоагентную систему, в которой каждый агент (рыба) находится в области поиска решения, представляющим собой аквариум. Известно, что рыбы в поиске пищи перемещаются косяком. Таким образом, алгоритм представляет собой перемещение косяка рыб (решений ЗКТ) в точку с наибольшим количеством пищи (оптимальному решению ЗКТ), при этом не выходя за пределы аквариума - пространства решений. Каждая рыба обладает весом, который характеризует, насколько агент успешен в процессе поиска пищи.
Алгоритм состоит из следующих шагов [4]:
1. Инициализация популяции. На этом этапе выполняется заполнение матрицы решения Б: каждый -й столбец заполняется подмножеством Рк так, чтобы при этом соблюдались ограничения, накладываемые ГВО.
2. Индивидуальная стадия плавания агентов. Для каждого агента (решения ЗКТ) выполняется поиск наилучшего решения в окрестностях данного решения. Так как для данного типа задач невозможно определить понятие окрестности решения, рассмотрим данную процедуру.
Процедура состоит из двух этапов. На первом этапе просматривается слева направо каждый столбец матрицы решений Б. В каждом столбце меняются местами элементы ^ и , где I - номер столба, к - нечетное число. Второй этап аналогичен первому, с той разницей, что к - четное число.
Далее следует вычисление функции пригодности найденного решения -если функция пригодности улучшилась, то считаем, что перемещение произошло. Если нет или рыба вышла за пределы аквариума - считаем, что перемещения не было.
3. Стадия кормления. На этом этапе необходимо закрепить улучшение текущего решения агента относительно других рыб в косяке. Для этого используется такое свойство рыбы как ее вес: Ш= где А^ — величина улучшения значения функции пригодности для / - й рыбы.
4. Инстинктивно-коллективное плавание. На каждого агента влияет вся популяция в целом, при этом влияние отдельного агента пропорционально его успехам в индивидуальной стадии плавания. После этого вся популяция смещается на величину шага миграции, характеризующим перемещение всего косяка рыбы.
Для вычисления щага миграции необходимо рассмотреть процесс перемещения одного агента в направлении другого. Пусть текущее решение для данной рыбы - й1. Для того чтобы произвести перемещение к рыбе, имеющей решение , необходимо последовательно просмотреть столбцы матрицы слева направо. В каждом столбце необходимо выяснить отно-
сительное местоположение элементов dik и dik+1, где i - номер столба, к - нечетное число. Если в матрице Dt расположение элементов dik и dik+1 не совпадает с положением в D0, то производится обмен местами данных элементов. Если один из элементов равен нулю, то замена элементов в Dt будет произведена в том случае, если модуль разности между количеством нулей над ненулевым элементом в матрице D0 и количеством нулей над ненулевым элементов в матрице Dt станет меньше. Кроме того, необходимо определить понятие «перемещения с заданной вероятностью а». Перемещение с заданной вероятностью а - это перемещение, при котором сравнение и обмен местами элементов dik и dik+1 в матрицах D0 и Dt производится с вероятностью а.
Для вычисления шага миграции необходимо для каждой рыбы выполнить перемещение с заданной вероятностью а. Для этого вычисляется сумма Sum = Д/j - сумма улучшений функции пригодности для каждого агента в популяции. Тогда каждый агент в косяке переместится к дру-
Д/t
гим агентам с вероятностью а = -.
Sum
5. Вычисление центра тяжести косяка. Данный этап является подготовительным для следующего этапа алгоритма и состоит в вычислении взвешенного решения по отношению к общему весу всего косяка. В данном случае вычисление барицентра выполняется следующим образом: агенты упорядочиваются в степени уменьшения весов; начиная с самого легковесного агента происходит перемещение с заданной вероятностью р к наиболее тяжеловесному агенту. Результат такого перемещения и есть барицентр. Вероятность р — управляемый параметр. В экспериментальных вычислениях р задавался 0.5.
6. Коллективно-волевое плавание. На данном этапе алгоритма выясняется то, как изменился вес косяка рыбы по сравнению с предыдущей итерацией. Если он увеличился, значит популяция приблизилась к области максимума функции, поэтому необходимо сузить круг его поиска, тем самым проявляются интенсификационные свойства. И наоборот: если вес косяка уменьшился, значит агенты ищут максимум не в том месте, поэтому необходимо изменить направление траектории и проявить диверсификацион-ные свойства.
Для данной стадии необходимо определить дистанцию между двумя агентами. Определение дистанции происходит в два этапа. На первом этапе необходимо последовательно просмотреть столбцы матрицы D слева направо. В каждом столбце необходимо выяснить относительное местоположение элементов dik и dik+1 , где i - номер столба, к - нечетное число. Если в матрице Dbarycenter - матрице решения агента, соответствующего вычисленному ранее барицентру - расположение элементов dik и dik+1 не совпадает, то степень различия возрастает на 1, иначе - не возрастает. Второй этап проводится при к - четное число. Степень различия и есть дистанция между двумя агентами.
Коллективно-волевое плавание происходит посредством перемещения в направлении барицентра агента с вероятностью ß = collStep *
rand(0; 1) * —^^— , где dist - расстояние между текущим агентом и ба-
max (dist)
рицентром, max Çdist) - максимальное расстояние между агентом в косяке и барицентром, collStep - шаг волевого смещения, randÇO; 1) - случайное число от 0 до 1.
У. Изменение параметров плавания. На этом этапе изменяется шаг индивидуального перемещения для каждого агента в зависимости от номера итерации. Данная процедура применяется для повышения эффективности алгоритма и более быстрой сходимости.
Алгоритм, имитирующий поведение косяка рыб, показал хорошие результаты в ходе экспериментальных исследований. Для канала с 14 выводами, популяцией в 100 агентов величина точности решения достигла 93%. Дальнейшими направлениями для повышения эффективности работы алгоритма являются модификация метода представления решения ЗКТ, процедур плавания агента в аквариуме, поиск оптимальных значений настраиваемых параметров алгоритма.
Список литературы
1. Суздальцев И.В. Метод муравьиной колонии для планирования СБИС // Актуальные проблемы науки на современном этапе развития: сб. ст. Междунар. науч.-практ. конф. - Уфа.: РИО МЦИИ «ОМЕГА САЙНС», 2015. Ч.2. С. 126-129.
2. Bastos, F., Carmelo J. A. Fish School Search [Электронный ресурс] .- Режим
доступа: http://cs.fit.edu~rmenezes/ Teaching/Entries/2011/8/ 22_OLD_
CSE5801Swarm_ I ntelligence_files/ 01930261.pdf , свободный. - Загл. с экрана.
3. Лебедев Б.К., Лебедев О.Б. Трассировка в канале на основе коллективной адаптации // Международная НТК IEEE AIS'05, CAD 2005. М.: Изд-во Физматлит, 2005. С.: 58-63
4. Карпенко А. П. Популяционные алгоритмы глобальной поисковой оптимизации. Обзор новых и малоизвестных алгоритмов [Электронный ресурс]. - Режим доступа: http://is.ifmo.ru/works/2012/karpenko-population-algorithms.pdf, свободный. - Загл. с экрана.