Навигация
Главная
Поиск
Форум
FAQ's
Ссылки
Карта сайта
Чат программистов

Статьи
-Delphi
-C/C++
-Turbo Pascal
-Assembler
-Java/JS
-PHP
-Perl
-DHTML
-Prolog
-GPSS
-Сайтостроительство
-CMS: PHP Fusion
-Инвестирование

Файлы
-Для программистов
-Компонеты для Delphi
-Исходники на Delphi
-Исходники на C/C++
-Книги по Delphi
-Книги по С/С++
-Книги по JAVA/JS
-Книги по Basic/VB/.NET
-Книги по PHP/MySQL
-Книги по Assembler
-PHP Fusion MOD'ы
-by Kest
Professional Download System
Реклама
Услуги

Автоматическое добавление статей на сайты на Wordpress, Joomla, DLE
Заказать продвижение сайта
Программа для рисования блок-схем
Инженерный калькулятор онлайн
Таблица сложения онлайн
Популярные статьи
OpenGL и Delphi... 65535
Форум на вашем ... 65535
21 ошибка прогр... 65535
HACK F.A.Q 65535
Бип из системно... 65535
Гостевая книга ... 65535
Invision Power ... 65535
Пример работы с... 65535
Содержание сайт... 65535
ТЕХНОЛОГИИ ДОСТ... 65535
Организация зап... 65535
Вызов хранимых ... 65535
Создание отчето... 65535
Имитационное мо... 65535
Программируемая... 65535
Эмулятор микроп... 65535
Подключение Mic... 65535
Создание потоко... 65535
Приложение «Про... 65535
Оператор выбора... 65535
Реклама
Сейчас на сайте
Гостей: 26
На сайте нет зарегистрированных пользователей

Пользователей: 13,365
новичок: ceexuwu
Новости
Реклама
Выполняем курсовые и лабораторные по разным языкам программирования
Подробнее - курсовые и лабораторные на заказ
Delphi, Turbo Pascal, Assembler, C, C++, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D
Заказать программу для Windows Mobile, Symbian

Лабораторная работа по динамическим спискам на Turbo Pascal (перемещение...
Программа тестирования (тест) - вступительные экзамены (математика, физи...
Моделирование автомойки на GPSS + Отчет + Блок схемы

Волновой алгоритм сортировки
Математическая постановка задачи

Задача трассировки – одна из наиболее трудоемких задач в общей проблеме автоматизации проектирования РЭА. Это связано с несколькими факторами, в частности с многообразием способов конструктивно-технологической реализации соединений, для каждого из которых при алгоритмическом решении задачи применяются специфические критерии оптимизации и ограничения. С математической точки зрения трассировка – наисложнейшая задача выбора из огромного числа вариантов оптимального решения.
Одновременная оптимизация всех соединений при трассировке за счет перебора всех вариантов в настоящее время невозможна. Поэтому разрабатываются в основном локально оптимальные методы трассировки, когда трасса оптимальна лишь на данном шаге при наличии ранее проведенных соединений.
Основная задача трассировки формулируется следующим образом: по заданной схеме соединений проложить необходимые проводники на плоскости (плате, кристалле и т.д.), чтобы реализовать заданные технические соединения с учетом заранее заданных ограничений. Основными являются ограничения на ширину проводников и минимальные расстояния между ними.
При решении задачи трассировки контактная площадь печатной платы разбивается на элементарные ячейки. Размеры ячеек и их количество определяются площадью поля, допустимой плотностью расположения выводов элементов и проводников. Выбранная система ячеек определяет среду, в которой осуществляется построение соединений. В простейшем случае ячейка представляет собой квадрат со стороной h, равной расстоянию между соседними линиями двух соседних проводников.
В ДРП, приведенном на рисунке 2, определяется множество занятых ячеек, соответствующее зонам, запрещенным для проведения соединений.
Задача трассировки печатных соединений заключается в построении трассы от начальной ячейки до конечной таким образом, чтобы она не включала запрещенные ячейки и имела минимальную длину в ортогональной метрике.
Образец ДРП
Рисунок 1. Образец ДРП

Анализ существующих алгоритмов решения задачи

Существуют две группы алгоритмов решения задачи трассировки: последовательные и параллельные. Более подробная классификация приведена на рисунке 2.
Классификация алгоритмов трассировки
Рисунок 2. Классификация алгоритмов трассировки
В последовательных методах трассы проводят одну за другой последовательно, при этом проведение какой-либо трассы a на (i-1)-ом шаге может затруднить проведение трассы b на i-ом шаге, так как является препятствием для проведения трассы b. Следовательно, особенно актуальным для последовательных алгоритмов является предварительное ранжирование (упорядочивание) соединений до трассировки. Существуют различные стратегии упорядочивания, основанные, в частности, на длине соединений, степени охвата соединением других соединений и др. Однако объективных оценок эффективности таких методик в настоящее время нет, поэтому наиболее разумными представляются использование нескольких вариантов очередности и выбор из них наилучшего.
К волновым относятся алгоритмы, основанные на идеях динамического программирования на дискретном рабочем поле (ДРП). В настоящее время разработано огромное число модификаций волнового алгоритма, предложенного Ли еще в 1961г.; однако все они сохраняют его основной недостаток: большие вычислительные затраты и большие затраты памяти ЭВМ. Временная сложность волнового алгоритма составляет O(M*N), где N – число клеток ДРП, M – число точек, подлежащих соединению. Эффективное использование волновых алгоритмов возможно лишь для ДРП с числом ячеек не более 105, при этом время трассировки составляет несколько часов работы ЭВМ. Число неразведенных трасс обычно не превышает 10%.
Основная идея лабиринтных алгоритмов состоит в отыскании пути между двумя ячейками ДРП посредством последовательного обхода преград в лабиринте, образованном занятыми и свободными ячейками. В отличие от волнового алгоритма поиск носит направленный характер, поэтому время поиска сокращается. Алгоритм обычно обеспечивает разводку около 80% соединений.
Эвристические алгоритмы трассировки эффективны, как правило, только на начальных стадиях трассировки, когда на плоскости мало преград. Основная идея состоит в генерации самых длинных незанятых отрезков в направлении цели с эвристическими приемами обхода препятствий.
В параллельных алгоритмах трассировки вначале определяется допустимое взаимное расположение трасс, которое оптимизируется по выбранному критерию, и лишь потом трассы фиксируются на коммутационном поле.
Перспективными в настоящее время являются канальные алгоритмы, основанные на возможности в некоторых случаях регулярного разбиения коммутационного поля (КП) на каналы и трассировки внутри каналов вертикальными и горизонтальными отрезками. Алгоритмы работают быстро, однако для них актуальна проблема качества получаемых решений. Канальным алгоритмам свойственен иерархический подход к трассировке, когда исходная задача декомпозируется на несколько подзадач. При этом на каждом иерархическом уровне, в зависимости от его специфики, целесообразно применение различных методов трассировки.
В алгоритмах гибкой трассировки на первом этапе строятся модели топологии для трасс цепей на дискретном топологическом рабочем поле (ДТРП) (без жесткой фиксации), а на втором этапе – модели геометрии, которые метрически точно определяют конфигурацию и месторасположение каждой трассы на КП.
В графотеоретических методах используют графовые модели элементов и компонентов схем, на основе которых синтезируется топологический эскиз проектируемого устройства. На следующем этапе решается задача метризации топологического эскиза.

Описание волнового алгоритма
Волновой алгоритм состоит из двух этапов.
На первом этапе моделируется процесс распространения волны от ячейки А по свободным ячейкам ДРП.
При распространении волны от ячейки А, алгоритм последовательно строит Ф1(А)-первый, Ф2(А)-второй, ... , ФК(А)-k-ый ее фронты. Если проведение пути возможно, то на k+1-ом шаге окажется, что ячейка ВєОk+1(А). Если в следующий фронт не удается включить ни одной свободной ячейки, т.е. Оk(А)= Оk+1(А), то при данных условиях путь провести невозможно.
Т.о. первый этап волнового алгоритма определяет возможность проведения пути между А и В.
На втором этапе, начиная с ячейки В, по определенным правилам, выполняется переход от ячейки k-ого фронта к ячейке k-1 фронта до ячейки А. Пройденные ячейки – искомый путь.
Условия, которые нужно выполнить для проведения пути и оценки его оптимальности должны быть заложены в правила, по которым движется фронт волны.
Распространение волны заключается в присваивании ячейкам, соседним с ячейкой предыдущего фронта, значения весовой функции. Вес ячейки k-ого фронта Pk является функцией веса ячейки k-1-ого фронта.
Метод кодирования ячеек по mod3 базируется на основном требовании к весам: Pk-1≠Pk≠Pk+1. Ячейкам, включенным в последующие фронты, можно присваивать не сами веса, а их значения по mod3 (1,2,3,1,2,3,...). Проведение пути заключается в отслеживании отметок (1,2,3). Если ячейка имеет несколько соседних ячеек с одинаковыми метками, то используется правило приоритетных направлений.
При движении от ячейки В к ячейке А используется следующее правило приоритетов: ←, ↑, →, ↓.


Опубликовал Kest December 01 2009 12:28:06 · 1 Комментариев · 15070 Прочтений · Для печати

• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •


Комментарии
ТГУ December 19 2013 05:51:53
спасибо за статью
Добавить комментарий
Имя:



smiley smiley smiley smiley smiley smiley smiley smiley smiley
Запретить смайлики в комментариях

Введите проверочный код:* =
Рейтинги
Рейтинг доступен только для пользователей.

Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.

Нет данных для оценки.
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Поделиться ссылкой
Фолловь меня в Твиттере! • Смотрите канал о путешествияхКак приготовить мидии в тайланде?
Загрузки
Новые загрузки
iChat v.7.0 Final...
iComm v.6.1 - выв...
Visual Studio 200...
CodeGear RAD Stud...
Шаблон для новост...

Случайные загрузки
IIIDTrans
Сложный калькулятор
Размещение элемен...
Text3D
Черный круг двига...
Создание оригинал...
Midi
Факториал [Исходн...
Report
HTMLredaktor
Delphi 2005 для .NET
Песочные часы
Изучаем Ассемблер
Rotolabel
Создание фракталов
Assistant
Пятнашки и крести...
Меню проводника в...
Редактор текста (...
Игра "Астероиды" ...

Топ загрузок
Приложение Клие... 100774
Delphi 7 Enterp... 97832
Converter AMR<-... 20268
GPSS World Stud... 17014
Borland C++Buil... 14191
Borland Delphi ... 10290
Turbo Pascal fo... 7373
Калькулятор [Ис... 5984
Visual Studio 2... 5207
Microsoft SQL S... 3661
Случайные статьи
Контроль значений ...
Абстрактная машина...
МНОГОКАНАЛЬНЫЕ УСТ...
Инструмент исследо...
Вы можете проверит...
Запрограммировать ...
Вы готовы выпустит...
Убираем защиту в W...
Модули RPR
10.4. Принцип рез...
Другие разделы полей
Язык С: операции н...
Точка USR 2450, De...
put(X)
9.5. Задачи
Когда вы успешно п...
Содержание
Тестирование
Планирование разве...
Класс TMetafile
МОДЕЛЬ С АКТИВНОЙ...
Модуль CRT. Тексто...
Рисуем график функции
Circular unit refe...
Эффект зеркального...
Статистика



Друзья сайта
Программы, игры


Полезно
В какую объединенную сеть входит классовая сеть? Суммирование маршрутов Занимают ли таблицы память маршрутизатора?