Текст
                    К.К. Морозов, В.Е Одинокое, В.М. Курейчик
К.К.Морозов, В.Г Одинокое, В.М. Курейчик
АВТОМАТИЗИРОВАННОЕ
ПРОЕКТИРОВАНИЕ
КОНСТРУКЦИЙ
РАДИОЭЛЕКТРОННОЙ
АППАРАТУРЫ

К. К. МОРОЗОВ, В. Г, ОДИНОКОЕ, В. М. КУРЕИЧИК АВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ КОНСТРУКЦИЙ РАДИОЭЛЕКТРОННОЙ АППАРАТУРЫ Допущено Министреством высшего и среднего специального образования СССР в качестве учебного пособия для студентов вузов, обучающихся по специальности «Конструирование и производство радиоаппаратуры* Е МОСКВА «РАДИО И СВЯЗЬ» 1983 Scan AAW
ББК 32.844 М80 УДК 621.396.6 Морозов К. К., Одинокое В. Г., Курейчик В. М. М80 Автоматизированное проектирование конструкций радиоэлектронной аппаратуры: Учеб, пособие для ву- зов. — М.: Радио и связь, 1983. — 280 с., ил. В пер.: 1 р. В книге рассмотрены математические методы компоновки, размещения и трассировки радиоэлектронной аппаратуры реализованных на печатных платах и интегральных микросхемах повышенной степени интеграции. Даны особенности подготовки и выдачи конструкторской и технологической до- кументации с использованием ЭВМ. Описаны современные комплексные системы автоматизации конструкторского проектирования печатных плат и интегральных микросхем. Для студентов специальности «Конструирование и производство ра- диоаппаратуры» . 2402020000—057 М----------------43—83 046(01)—83 ББК 32.844 6Ф2.1 РЕЦЕНЗЕНТЫ: КАФЕДРА КОНСТРУИРОВАНИЯ И ТЕХНОЛОГИИ ПРОИЗВОДСТВА РЭА МОСКОВСКОГО АВИАЦИОННОГО ИНСТИТУТА, ДОКТОР ТЕХН. НАУК И. П. НОРЕНКОВ Редакция литературы по конструированию и технологии производства радиоэлектронной аппаратуры Константин Константинович Морозов, Валентин Григорьевич Одинокое, Виктор Михайлович Курейчик АВТОМАТИЗИРОВАННОЕ ПРОЕКТИРОВАНИЕ КОНСТРУКЦИИ РАДИОЭЛЕКТРОННОЙ АППАРАТУРЫ Редактор Н. Н. Кузнецова Художник Н. М. Ковалева Художественный редактор Г. Н. Ков а нов Технический редактор Г. И. Колосова Корректор Т. В. Покатова ИБ № 524 Сдано в набор 1.11.82 г. Подписано в печать 3.03.83 г. Т-05166 Формат 60X90/16 Бумага кн-журн. Гарнитура литературная Печать высокая Усл. печ. л. 17,5 Усл. кр.-отт. 17,5 Уч.-изд. л. 19,0 Тираж 14 000 экз. Изд. № 19500 Зак. № 144 Цена 1 р. Издательство «Радио и связь». 101000 Москва, Главпочтамт, а/я 693 Типография издательства «Радио и связь» Госкомиздата СССР 401000 Москва, ул. Кирова, д. 40 © Издательство «Радио и связь», 1983
ПРЕДИСЛОВИЕ Научно-технический прогресс в области создания новых средств радиоэлектроники и вычислительной техники стал во многом зави- сеть от успешного решения проблемы автоматизации проектирова- ния — важной народнохозяйственной задачи. Уровень сложности современной аппаратуры радиоэлектронной и вычислительной тех- ники приблизился к границе, за которой эффективность труда чело- века-проектировщика резко падает, а число ошибок возрастает. Это особенно наглядно на этапе создания рабочего проекта устрой- ства, когда конструктору приходится выполнять значительный объ- ем нетворческой работы. Автоматизация конструирования — это не только способ повышения производительности труда конструктора,, но и надежный способ снижения стоимости и повышения качества конструкторской документации. Проблемами автоматизации кон- струирования в нашей стране занимаются более 20 лет, однако и сегодня эта проблема актуальна. Значительный вклад в развитие теории и практики автоматиза- ции конструирования внесли советские ученые В. М. Глушков, Н. Я. Матюхин, Л. Б. Абрайтис, В. И. Анисимов, Р. П. Базилевич, Б. В. Баталов, Б. Ф. Высоцкий, Ю. X. Вермишев, Б. Н. Деньдобренко, А. В. Каляев, А. М. Карапетян, С. А. Майоров, А. Н. Мелихов, В. Н. Лошаков, И. П. Норенков, Г. В. Орловский, А. И. Петренко, М. И. Песков, Г. Г. Рябов, Л. П. Рябов, К. А. Сапожков, В. А. Селютин» М. А. Штейн, О. Н. Юрин. В предлагаемом учебном пособии авторы предприняли попытку восполнить пробел в учебной литературе по автоматизации конст* руирования. Содержание книги в наибольшей степени соответству* ет программе курса «Автоматизация конструирования» для высших учебных заведений по специальностям «Конструирование и произ- водство радиоаппаратуры», «Конструирование и производство электронно-вычислительной аппаратуры» и «Конструирование и производство технических средств САПР». В книге авторы обобщи- ли свой опыт по чтению лекций в течение ряда последних лет в Мо* сковском институте радиотехники, электроники и автоматики, Мо- сковском энергетическом институте, Таганрогском радиотехниче- ском институте. В книге кроме оригинальных и апробированных материалов ав- торов приводятся научные и учебно-методические материалы совре- менных исследований советских и зарубежных ученых. 3
Основное внимание в учебном пособии авторы уделили совре- менным методам и перспективам автоматизации конструирования аппаратуры на интегральных микросхемах 4-й и 5-й степеней ин- теграции и печатных платах со сверхплотной упаковкой с исполь- зованием математических методов теории графов и гиперграфов. Учебное пособие дополняет учебник Б. Н. Деньдобренко, А. С. Ма- лика «Автоматизация конструирования РЭА» (М.: Высшая шко- ла, 1980). Глава 1, § 3.2 и гл. 5 написаны К. К. Морозовым, § 3.1, 3.3 и 3.4, гл. 6 — В. Г. Одиноковым, гл. 2, 4, введение, заключение — В. М, Курейчиком. Авторы благодарны профессорам А. В. Каляеву, В. Б. Пестря- кову, А. Н. Мелихову, кандидатам техн, наук В. А. Калашникову, В. В. Лисяку, Б. К. Лебедеву, а также А. Л. Перельману за по- мощь и полезные советы при подготовке рукописи к изданию. Улучшению содержания книги способствовали обстоятельные за- мечания рецензентов профессора И. П. Норенкова и сотрудников кафедры конструирования МАИ. Авторы приносят им глубокую благодарность. Авторы
ВВЕДЕНИЕ Современные достижения атомной энергетики, точного прибо- ростроения, промышленных средств связи, медицинской техники и других наук невозможны в настоящее время без широкого ис- пользования электронно-вычислительной аппаратуры (ЭВА) и ра- диоэлектронной аппаратуры (РЭА). Далее будем использовать термин электронная аппаратура (ЭА). Электронная аппаратура—это сложные комплексы устройств, предназначенные для электронной обработки информации, т. е. для хранения, преобразования и отображения ее в форму, удоб- ную для восприятия человеком в соответствии с заданной прог- раммой. В настоящее время во всем мире наблюдаются резкое увели- чение производства ЭА и повышение ее возможностей. Особенно это связано с последними успехами в области микроэлектроники. Разработка и внедрение ЭА является одними из основных по- казателей современной нучно-технической революции. Прогресс в области создания ЭА определяется повышением надежности, эко- номичности, качества и эффективности устройств, совершенство- ванием схем, конструкций, технологии. Процесс создания ЭА условно разделяется на три основных этапа: схемотехническое проектирование, конструкторское проек- тирование, технологическое проектирование. На первом этапе раз- рабатывается архитектура будущей ЭА. Материализация же ос- новных идей ЭА осуществляется на стадии конструирования и технологии производства. Практика показала, что именно здесь обеспечиваются возможность воплощения электронных схем в ми- кроэлектронные конструкции, рождение жизнеспособных изделий, отвечающих современным требованиям науки, техники и произ- водства. В процессе создания ЭА тесно переплетаются вопросы разра- ботки математической логики, конструкции и технологии. Даже небольшие изменения в логике ЭА без учета конструкторско-тех- нологических факторов приводят к ухудшению ее основных ха- рактеристик. Расширение функциональных возможностей и усложнение ЭА поставили ученых и инженеров перед необходимостью поиска но- вых принципов конструирования и ^технологии, коренного измене- ния методики конструирования на основе использования совре- менных средств вычислительной техники. Электронная аппара- тура 'четвертого и пятого поколений содается сейчас на базе ин- тегральных микросхем (ИМС) 4-й и 5-й степеней интеграции. 5
Сегодня конструкторы и технологи ЭА участвуют в разработ- ках ИМС, на кристалле которых размером 3X4 мм и менее раз- мещаются сотни тысяч элементов, реализующих функции транзи- сторов, резисторов и др. На основе прогнозирования науки ожи- дается, что следующие поколения ЭА будут реализованы на ги- гантских ИМС с голографической и оптической памятью, будут иметь программируемую перестраиваемую архитектуру, электрон- ную коммутацию и будут способны принимать и выдавать реше- ния в расплывчатых условиях. Конструкторы ЭА четвертого и дятого поколений приступили к разработкам методологии построения поисковых алгоритмов, все более приближаясь к созданию искусственного интеллекта. Недалек тот день, когда каждая ЭВМ будет иметь специальные «интеллектуальные процессоры», способные играть в шахматы на уровне гроссмейстера, управлять сложным производством, разы- грывать модели военных сражений, следить за недоступными для человека технологическими операциями и вообще являться по- мощником, подчеркиваем помощником, человека при принятии решений в неопределенных условиях. Многие конструкторские бюро приступили к .разработке промышленных интеллектуальных роботов. Не является фантастической посылка таких роботов в космос для выполнения недоступных человеку работ. Конструкто- ры недалекого будущего приступят к разработке многопроцессор- ных систем искусственного интеллекта и вплотную подойдут к построению эффективных моделей человеческого мозга. Конструирование сейчас и в будущем—это непрерывный твор- ческий процесс, основанный на диалоге человека с вычислитель- ной машиной. Уже сейчас кульманы в конструкторских бюро, на заводах и в научно-исследовательских институтах меняют на ав- томатизированные рабочие места, оборудованные периферийными устройствами, в частности электронными дисплеями, позволяющи- ми нетворческие, рутинные операции выполнять на ЭВМ, а рабо- ту, требующую мышления, взлета фантазии, оставлять конструк- тору. Всего лишь 15—20 лет назад появился новый термин «автома- тизация проектирования и конструирования», обозначающий новое бурно развивающееся направление науки и техники. Методы авто- матизированного и автоматического конструирования и проекти- рования обладают огромными преимуществами по сравнению с методами неавтоматизированного проектирования. Сокращаются сроки проектирования ЭА, снижается стоимость, повышается на- дежность устройств. Конструктор-технолог ЭА, вооруженный современной аппарату- рой, знаниями в области микроэлектроники, электронной техники и автоматизации конструирования, в настоящее время — это вы- сококвалифицированный специалист, способный сочетать творче- скую фантазию с возможностями современных вычислительных машин. 6
1. ОБЩИЕ ВОПРОСЫ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ И КОНСТРУИРОВАНИЯ 1.1. ЭТАПЫ АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ И КОНСТРУИРОВАНИЯ В общем случае процесс автоматизации проектирования схем ЭА, как и любых дискретных устройств, состоит из трех основных этапов: системотехнического, схемотехнического и конструктор- ского. Первый этап включает в себя системное и структурное проек- тирование. Схемотехническое проектирование состоит из модели- рования, логического проектирования, а также контроля и пост- роения диагностических тестов. Конструкторский этап вклю- чает техническое и технологи- ческое проектирование. Одна из возможных укруп- ненных структурных схем про- цесса автоматизированного проектирования ЭА показана на рис. 1.1. При системном проектиро- вании используются идеи и ме- тоды системного анализа. На основе многочисленных факто- ров проводится всесторонний анализ технического задания на разработку ЭА и принима- ется решение относительно ме- тодики построения и путей реа- лизации вычислительного про- цесса. При структурном проекти- ровании разрабатываются об- щая структурная схема ЭА и Рис. 1.1. Структурная схема процесса алгоритмы выполнения отдель- автоматизированного проектирования ных операций. Для выбора ЭА структуры необходимо учиты- вать требования технологичности, надежности, возможности более широкого использования однородных и квазиоднородных унифи- цированных узлов. Системотехнический этап проектирования в основном пока яв- ляется неформализованным процессом. Здесь используются твор- 7 1. Системотехническое проектирование 1.1. Системное проектирование I.Z. Структурное проектирование Z. Схемотехническое проектирование Z1. Логическое проектирование Z.Z. Моделирование Z.3. Контроль и выработка диагнос- тических тестов 3. Конструкторское проектирование 3.1. Техническое проектирование 3.Z. Технологическое, проектирование
ческие возможности инженера. Электронная вычислительная ма- шина просматривает варианты решений, принимаемых разработ- чиком, и выбирает из них оптимальный. На этом этапе исполь- зуются специальные языки, формальные методы генерации вари- антов вычислительного процесса по исходному заданию методом автоматического получения структурных схем. На этапе схемотехнического проектирования широко исполь- зуются логические и вычислительные возможности ЭВМ. Целью логического проектирования ЭА является автоматический или ав- томатизированный формализованный абстрактный и структурный синтез узлов, выбранных в результате структурного проектирова- ния, при котором проверяется эквивалентность исходного задания конечному результату. В теоретическом плане здесь имеются су- щественные достижения: автоматически синтезируются управля- ющие и специального вида операционные устройства. На практи- ке при автоматизации логического проектирования схем требуется решение большого числа задач. К ним относятся: разработка эф- фективных языков описания исходных заданий и языков струк- турного проектирования, алгоритмов построения формальных мо- делей устройств и др. При логическом проектировании важней- шими критериями оптимизации являются: минимизация числа ти- пов логических узлов, достижение максимальной однотипности логических блоков, возможность эффективного моделирования и диагностирования схем, максимальный учет требований конструк- торского и технологического проектирования. Задачей моделиро- вания являются построение карты состояний для логических сиг- налов, проверка временных соотношений при прохождении вход- ных сигналов, анализ функциональных схем на соответствие за- данной системе булевых функций. Различают физическое и мате- матическое моделирование. Для схем ЭА более важным является математическое моделирование, так как использование сложных интегральных микросхем в основном исключает возможность фи- зического моделирования. Отметим, что согласно ГОСТ 17021—75 в книге под интеграль- ной микросхемой понимается микроэлектронное изделие, выполня- ющее определенную функцию преобразования и обработки сигна- ла и имеющее высокую плотность упаковки электрически соеди- ненных элементов и кристаллов, которое с точки зрения требова- ний к испытаниям, приемке, поставке и эксплуатации рассмат- ривается как единое целое. Интегральная микросхема 1-й степени интеграции (ИМС1) — это микросхема, содержащая до 10 элементов и компонентой включительно. Интегральная микросхема 2-й степени интеграции (ИМС2) — это микросхема, содержащая свыше 10 до 100 элементов и ком- понентов включительно. Интегральная микросхема 3-й степени интеграции (ИМСЗ) — это микросхема, содержащая свыше 100 до 1000 элементов и ком- понентов включительно. 8
Интегральная микросхема 4-й степени интеграции (ИМ.С4) это микросхема, содержащая свыше 1000 до 10 000 элементов и компонентов включительно. Интегральная микросхема 5-й степени интеграции (ИМ.С5) это микросхема, содержащая свыше 10 000 до 100 000 элементов и компонентов включительно. Интегральная микросхема 6-й степени интеграции (ИМС6) — это микросхема, содержащая свыше 100 000 до 1 000 000 элемен- тов и компонентов включительно. Большая интегральная микросхема — это интегральная микро- схема, содержащая 500 и более элементов, изготовленных по би- полярной технологии, 1000 и более элементов, изготовленных по МДП-технологии. Микропроцессор — это программно-управляемое устройство, осуществляющее процесс обработки цифровой информации и уп- равление им, построенное на основе одной или нескольких боль- ших интегральных микросхем. Элемент интегральной микросхемы — это часть ИМС, не выде- ляемая как самостоятельное изделие, выполняющее функцию ка- кого-либо электрорадиоэлемента (транзистора, диода и т. п.). Компонент интегральной схемы —это часть ИМС, реализую- щая функции какого-либо электрорадиоэлемента, которая может быть выделена как самостоятельное изделие. Развитием подэтапа моделирования являются контроль и ди- агностика. При этом определяется методика построения схем ап- паратного контроля, разрабатываются системы тестового обслу- живания, определяются необходимые степень и уровень резерви- рования для выбора минимальной ремонтируемой единицы. Это связано с увеличением надежности используемых элементов и ук- рупнением типовых элементов замены в устройствах. Функциональные схемы, полученные в результате логического синтеза и моделирования, служат входной информацией для кон- структорского (технического, монтажно-коммутационного, фи- зического) проектирования. При этом необходимо решать следу- ющие основные задачи: покрытие функциональной схемы ячейка- ми из заданного набора, т. е. переход к принципиальной электри- ческой схеме устройства; компоновка элементов схемы в типовые элементы замены (ТЭЗ)—ремонтопригодные конструктивные еди- ницы, панели, блоки, стойки и т. д.; размещение элементов в кон- структивных единицах по различным критериям; распределение цепей по слоям — многослойная или двухслойная трассировка и контроль правильности полученной топологии. Цель технологического проектирования состоит в автоматизи- рованной выдаче технологических документов, разработке алго- ритмов управления координатографами и другими периферийными устройствами и методов автоматического получения фотошабло- нов, служащих руководящими материалами в системе производ- ства. 9
Одной из важнейших задач проблемы автоматизации проекти- рования, конструирования и изготовления схем является автома- тизация конструкторского проектирования. В книге обсуждаются вопросы разработки и исследования ме- тодов, алгоритмов и систем автоматизации проектирования с ис- пользованием методов современной математики. Основу проекти- рования составляют математическое описание задач проектиро- вания на заданном формальном языке, разработка основных тео- рем и алгоритмов, структуры системы, запись программ на алго- ритмическом языке и решение их на универсальной или специа- лизированной ЭВМ с дальнейшим выходом на автоматизирован- ные рабочие места (АРМ) и другое оборудование. Для большинства задач проектирования формальное разбие- ние процесса поиска часто затруднительно. Если задачи проекти- рования сформулировать в теоретико-множественном плане, то обычно приходится встречаться с вопросами, которые могут быть решены, только если перебрать большое число вариантов. Поэтому актуальным является вопрос нахождения экономичных способов сокращения пе,ребора. При этом существенную роль играет воп- рос о формальном описании тех или иных неформально постав- ленных задач, методах их расчленения на отдельные шаги, а так- же об организации оптимальных в том или ином смысле процедур поиска вариантов проектирования. Использование аппарата теории графов в настоящее время для решения задач автоматизации проектирования и конструиро- вания самых различных объектов находит все более широкое применение. Объясняется это тем, что язык теории графов во мно- гих случаях адекватен в той или иной мере объектам проектирова- ния, описывает их естественным образом и в то же время позволя- ет абстрагироваться от конкретных объектов и иметь дело с аб- страктными моделями. Это в свою очередь дает возможность строить математически обоснованные алгоритмы проектирования, находить простые и высококачественные решения, рационально и эффективно использовать ЭВМ. Следует отметить, что точное ре- шение задач проектирования большой размерности связано с пе- ребором большого числа вариантов, который затруднителен даже для ЭВМ. Поэтому в работе наравне с точными методами проек- тирования, основанными на методах исследования операций, рас- сматриваются алгоритмы направленного поиска, которые не дают оптимальных решений, но позволяют получать достаточные для практических целей результаты. 1.2. ЗАДАЧИ ПОСТРОЕНИЯ СИСТЕМ АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ Главными проблемами при создании систем автоматизирован- ного проектирования (САПР) являются улучшение качества кон- струирования и создание средств, обеспечивающих решение прин- ципиально новых задач, выдвигаемых техническим прогрессом. -10
В общем случае системой автоматизированного проектирова- ния или конструкторского проектирования можно считать некото- рый комплекс алгоритмов с диспетчером, реализованный в виде множества программ, объединенных в пакеты, библиотеки или модули, и автоматизированных рабочих мест, включающих необ- ходимое для выпуска конструкторской документации оборудование. Идеальная система автоматизированного проектирования предпо- лагает такой порядок работ, когда техническое задание, сформу- лированное конструктором, полностью обрабатывается с помощью ЭВМ. Система программ определяет порядок их следования и тем самым последовательность выполнения отдельных этапов. На выходе ЭВМ индуцируется модель топологии устройства в виде документации для системы автоматизированного управления тех- нологическими процессами. Однако даже самые современные ЭВМ не могут заменить кон- структора, а лишь способны дополнить его, выполняя нетворче- ские, рутинные операции. Поэтому в настоящее время наиболь- шее распространение получили интерактивные системы «человек— машина», работающие в режиме диалога конструктора с ЭВМ. Они особенно эффективны при анализе и решении комбинаторно-ло- гических задач этапа конструкторского проектирования схем. Ин- терактивные системы должны иметь такую организацию, при ко- торой оптимальным образом сочетаются процессы автоматизиро- ванного проектирования с указаниями конструктора, творчески направляющего процесс разработки. Следующим, не менее важ- ным фактором, влияющим на структуру системы, является опре- деление области ее применения и выбор методологии конструиро- вания. Такая постановка задачи связана с неэффективностью уни- версализации используемых в системе алгоритмов и программ с целью их применения к различным конструкциям. Поэтому целе- сообразно включение в систему программ-диспетчеров, с помощью которых производится управление остальными программами. На- личие диспетчера позволяет также решить следующие важные вопросы организации системы: возможность свободного «входа» в систему на всех этапах конструирования с целью корректировки промежуточных результатов, возможность использования как па- кетов, так и единичных программ, организация наиболее рацио- нальной последовательности этапов разработки. Выполнение рассмотренных выше требований становится необ- ходимым при поэтапной организации процесса конструирования. При этом работоспособность системы будет во многом зависеть ют надежности и удобства стыковки отдельных этапов. Это дости- гается с помощью унификации входной и выходной информации, единства методов ее записи на носителях, распределения памяти ЭВМ. и т. д. Значительное место при организации САПР отводится выбору алгоритмического языка, достаточно простого для описа- ния входной, первичной информации и доступного конструктору. Отметим, что определяющим фактором создания САПР является обязательный количественный или качественный выигрыш от ав- 11
томатизации, существенно превосходящий те дополнительные за- траты труда, которые она вызывает. Система должна обладать высокой жизнеспособностью, т. е. легкой настраиваемостью, воз- можностью изменения критериев оптимизации, способностью к расширению и дополнению библиотеки программ, стыковки с дру- гими системами проектирования и процессами автоматизирован- ного производства. В настоящее время САПР развивается в двух направлениях: с одной стороны, широко используются мини- и микро-ЭВМ и микропроцессоры с непосредственным участием конструктора. С другой стороны, создаются системы автоматического проектиро- вания на основе многопроцессорных вычислительных структур без участия человека. Считается, что последнее направление наиболее перспективное. В обоих направлениях определяющими остаются вопросы оптимизации алгоритмов, формализации задач конструи- рования, представления информации в ЭВМ, организации библио- тек программ и др. Система автоматизированного проектирования должна иметь возможности: автоматического хранения информации о проекти- руемом устройстве; последовательного расширения и совершенст- вования системы, активной связи «конструктор — система»; опе- рировать оптимальными взаимозаменяемыми алгоритмами конст- руирования, специализации систем на конструирование ЭА на ИМС любой степени интеграции; увеличения мощности системы применением многопроцессорных вычислительных структур и пе- риферийных устройств; стыковки со специальными автоматами (координатографами, графопостроителями и т. д.); изготовления конструкторской и технологической документации. Качество САПР характеризуется не только возможностью ис- пользования системы для проектирования широкого класса ЭА без существенных изменений, но и оптимальностью алгоритмов и способом представления информации. Основным требованием к размещению информации в памяти ЭВМ является свободный доступ к данным, т. е. такая организа- ция их хранения, при которой разработчик получит возможность на всех этапах конструирования быстро просматривать все имею- щиеся параметры с целью выбора требуемых. Не менее важна правильность построения языка проектирова- ния (ЯП), т. е. языка, предназначенного для представления и пре- образования описаний объектов при проектировании. Согласно ГОСТ 22487—77 различают: входной язык проектирования, пред- назначенный для представления задания на проектирование; ба- зовый язык проектирования, предназначенный для представления дополнительных сведений к первичному описанию объекта проек- тирования, проектных решений, описаний проектных процедур и их последовательности; выходной язык проектирования, предназ- наченный для представления какого-либо проектного решения, включая результат проектирования в форме, удовлетворяющей требованиям его дальнейшего применения. 12
Правильность выбора алгоритмов является одним из факто- ров, определяющим экономическую эффективность использования САПР. Такая постановка вопроса требует проведения работ, на- правленных на дальнейшее совершенствование математического, информационного, технического, лингвистического, методического, организационного и программного обеспечений САПР. Математическое обеспечение (МО) автоматизированного про- ектировани (МОАП)—это совокупность математических методов, моделей и алгоритмов проектирования, необходимых для его вы- полнения. Техническое обеспечение (ТО) автоматизированного проекти- рования — это совокупность взаимосвязанных и взаимодействую- щих технических средств, предназначенных для его выполнения. Программное обеспечение (ПО) автоматизированного проек- тирования (ПОАП) — это совокупность машинных программ, пред- ставленных в заданной форме. Соответственно пакет прикладных программ (ППП)—это совокупность представленных в заданной форме машинных программ, необходимых для выполнения проект- ной процедуры. Часть ПО АП, предназначенная для управления проектированием, называется операционной системой (ОС) авто- матизированного проектирования. Информационное обеспечение (ИО) автоматизированного про- ектирования— это совокупность представленных в заданной форме сведений, необходимых для выполнения АП. Составной частью информационного обеспечения САПР явля- ются автоматизированные банки данных (АБД), которые состоят из базы данных (БД) и системы управления базами данных (СУБД). Автоматизированные банки данных создаются как об- служивающие подсистемы САПР и предназначены для автомати- зированного обеспечения необходимыми данными подсистемы САПР. Управление АБД осуществляется специалистами, обеспечива- ющими целостность, правильность, эффективность использования и функциональные возможности. К АБД предъявляются требования гибкости, надежности, на- глядности и экономичности. Лингвистическое обеспечение (ЛО) автоматизированного про- ектирования — это совокупность языков, представленных в задан- ной форме проектирования с терминами и определениями, правил формализации естественного языка и методы сжатия и разверты- вания текстов, необходимые для выполнения АП. Методическое обеспечение (МТО) автоматизированного проек- тирования — это совокупность документов, устанавливающих со- став и правила отбора и эксплуатации средств обеспечения про- ектирования. Организационное обеспечение (00) автоматизированного про- ектирования — это совокупность документов, устанавливающих со- став проектной организации и ее подразделений, связи между ними, их функции, а также форму представления результата про- 13
ектирования и порядок рассмотрения проектных документов, необ- ходимых для выполнения автоматизированного проектирования. Тогда под комплексом средств автоматизации проектирования понимается совокупность различных видов его обеспечения (рис. 1.2). Подразделения проектной- организации КСАЛ Рис. 1.2. Комплекс средств автоматизации проектирования Рис. 1.3. Система автоматизиро- ванного (автоматического) про- ектирования Теперь можно формально определить, что такое САПР (рис. 1.3). Система автоматизированного проектирования — это комплекс средств автоматизации проектирования, взаимосвязанных с необ- ходимыми подразделениями проектной организации или коллек- тивом специалистов (пользователем системы). Для достижения целей создания эффективных САПР ЭА необ- ходимо осуществлять: автоматизацию процесса поиска, обработки и выдачи информа- ции; совершенствование проектирования на основе применения ма- тематических методов и средств вычислительной техники; использование методов оптимизационного и многовариантного проектирования; создание единых банков данных, содержащих систематизиро- ванные сведения справочного характера; повышение качества оформления проектной документации и до- ли творческого труда конструкторов за счет автоматизации не- творческих работ; унификацию и стандартизацию методов проектирования; взаимодействие с САПР различного уровня и функционального назначения. Составными структурными частями САПР являются подсисте- мы, обладающие всеми свойствами систем и создаваемые как са- мостоятельные системы. По назначению подсистемы САПР, разделяются на два вида: проектирующие и обслуживающие. К проектирующим относятся подсистемы, выполняющие проектные процедуры и операции, а к обслуживающим относятся подсистемы, предназначенные для под- держания работоспособности проектирующих подсистем. 14
В зависимости от отношения к объекту проектирования разли- чают два вида проектирующих подсистем: объектные и инвари- антные. К объектным относятся подсистемы, выполняющие одну или несколько проектных процедур или операций, непосредственно зависимых от конкретного объекта проектирования. К инвариант- ным относятся подсистемы, выполняющие унифицированные про- ектные процедуры и операции. Рассмотрим существующие согласно ГОСТ 23501.8—80 клас- сификации САПР. По типам объектов проектирования различают САПР: изделий машиностроения и приборостроения; технологических процессов в машиностроении и приборострое- нии; объектов строительства; организационных систем. По сложности объектов проектирования различают САПР: простых объектов, проектирующих объекты до 102 составных частей; объектов средней сложности, проектирующих объекты свыше 102 до 103 составных частей; сложных объектов — свыше 103 до 104 составных частей; очень сложных объектов — свыше 104 до 106 составных частей; объектов очень высокой сложности — свыше 106 составных ча* стей. По уровню автоматизации проектирования различают САПР: низкоавтоматизированного проектирования, в которых количе- ство автоматизированных проектных процедур (АПП) составля- ет до 25% общего количества проектных процедур; среднеавтоматизированного проектирования, в которых количе- ство АПП составляет свыше 25 до 50% общего количества про- ектных процедур; высокоавтоматизированного проектирования, в которых коли- чество АПП составляет свыше 50% общего количества проектных процедур. По комплексности различают САПР: одноэтапные; многоэтапные; комплексные. По характеру выпускаемых проектных документов различают САПР: текстовых документов; текстовых и графических документов; документов на машинных носителях (перфокартах, перфолен-* тах, магнитных лентах, дисках, барабанах); документов на фотоносителях; документов на двух типах носителей данных; документов на всех типах носителей данных. По производительности различают САПР: <15
- малой производительности. Выпускает до 105 проектных доку- ментов (ПД) за год (в пересчете на 11-й формат); средней производительности. Выпускает свыше 105 до 106 ПД за год; высокой производительности. Выпускает свыше 106 ПД за год. По количеству уровней в структуре технического обеспечения различают САПР: одноуровневые, построенные на основе ЭВМ среднего или высо- кого класса с набором периферийных устройств; двухуровневые, построенные на основе ЭВМ среднего или высо- кого класса и одного или нескольких автоматизированных рабочих мест (АРМ) с мини-ЭВМ; трехуровневые, построенные на основе ЭВМ высокого класса, одного или нескольких АРМ и периферийного программно-управ- ляемого оборудования. Интегрированная САПР — это система, имеющая альтернатив- ное программное обеспечение и операционную систему автомати- зированного проектирования, позволяющую выбирать совокуп- ность машинных программ применительно к заданному объекту или классу объектов проектирования. Основными критериями при выборе алгоритмического языка (АЯ) можно считать: затраты машинного времени на реализацию программы, записанной в символах АЯ; удобство стыковки отдель- ных программ; наличие в языке средств описания информации специального вида; наличие современного математического обес- печения для выбранного языка; популярность языка; наличие трансляторов выбранного языка для широкого класса ЭВМ. Опыт создания САПР свидетельствует в пользу АЯ ФОРТРАН или подобных ему, как наиболее удовлетворяющих указанным МВС(Ы ЭВМ) Реализация пакетов приклад- ных программ компоновки, разме- щения, трассировки, контроля АРМ МФНУ Сверлильные автоматы с ЧПУ Конструкторско-технологи- ческая документация Технологическая линия произ- водства печатных плат, ин- тегральных микросхем Рис. 1.4. Техническое обеспечение САПР 16
критериям. Очевидно, требование наличия в языке средств описа- ния информации специального вида влечет к созданию специаль- ного входного и выходного языка, который должен связать от- дельные этапы конструирования, согласовать расположение ин- формации внутри массива. Техническое обеспечение САПР представлено на рис. 1.4. Ос- новой ТО является многопроцессорная вычислительная система (МВС) или, в частном случае, ЕС ЭВМ. Периферийное оборудо- вание ТО САПР можно условно разделить на четыре группы (рис. 1.5): Рис. 1.5. Периферийное оборудование САПР для получения и обработки эскизной документации и диалога с МВС или ЭВМ 1; для получения выходной документации 2; для внутренних передач при работе САПР или для работы по линиям связи 5; для изготовления фотошаблонов и технологическое 4. Программное обеспечение САПР включает в себя специальные вычислительные программы, используемые для получения необхо- димой инженеру конструкторской документации. Особенностью таких программ является наличие модульной структуры. Каждый программный модуль имеет заданное целевое назначение, прост для разработки, гибок и надежен. Управление и координация использования модулей обеспечиваются наличием программы дис- петчера. Информация, используемая при автоматизированном проекти- ровании, располагается на нескольких уровнях и организуется в некоторую иерархическую систему. Эта система называется ар- хивом или банком данных. Основная функция архива заключается в выдаче информации по запросу заказчика. Информация выда- ется в виде чертежей, графиков, таблиц и т. п. Успешное применение программных модулей возможно только при наличии в ПО специальных программ, предусматривающих «гибкие» средства управления вводом, редактированием, хране- нием, пересылкой и выводом необходимой информации, а также средствами обработки пакетов прикладных программ, предназна- ченных для реализации отдельных этапов конструирования. Упрощенная схема вычислительного процесса конструкторско- го проектирования показана на рис. 1.6. Одна из возможных схем распределения информации в САПР показана на рис. 1.7. 17
Взаимодействие конструктора с системой выполняется на языке директив. С помощью входного транслятора эти директивы преоб- разуются в форму внутреннего представления и записываются в банк данных. На первом этапе производится запись директив, опи- Рис. 1.6. Схема вычислительного 'процесса конструктор- ского проектирования Рис. 1.7. Распределение информации в САПР сывающих объекты конструирования, при этом в банке данных производится формирование библиотеки. Набор директив включа- ет в себя задание на вызов из библиотеки всех элементов, входя- щих в объект конструирования, и задания на компиляцию необ- ходимого разработчику набора программных модулей. Другими словами, задаются состав программных модулей и последователь- ность их реализации. Результаты всех промежуточных решений, а также окончательное решение хранятся в банке данных. С помо- щью специального программного модуля «Документирование» производится преобразование рабочих массивов и выходной ин- формации из формы внутреннего представления в форму конст- рукторской и технологической документации. Программные моду- ли каталогизируются в создаваемой библиотеке. Организация вы- 18
числительного процесса и связь конструктора с банком данных осуществляются с помощью управляющей программы. Директива- ми служат операторы управления заданиями управляющей прог- раммы, по которым модули вызываются из библиотеки на испол- нение. Информация о разрабатываемой ЭА, хранящаяся в банке дан- ных, делится на три области. Первая область предназначается для хранения конструкторской информации, вторая — для хране- ния промежуточной информации, передаваемой от модуля к моду- лю, третья — для обеспечения режима прерывания. Здесь хранит- ся вся информация, необходимая для продолжения конструирова- ния с этапа, на котором произошло прерывание. Это позволяет производить параллельное конструирование нескольких устройств одновременно. Формирование документации производится в соответствии с требованиями рисующих автоматов (координатографов, графопо- строителей, дисплеев и т. д.). При этом используются данные из хранящихся в памяти ЭВМ таблиц, форматов и т. п. Кроме того, данные о результатах конструирования заносятся в архив систе- мы. При реализации задач конструкторского проектирования мож- но условно выделить следующие крупные блоки (рис. 1.8): ввод и контроль информации, построение формальной модели схемы, т. е. переход от схемы к графу, компоновка, размещение, трасси- ровка, выдача конструкторской документации. Блок компоновки обычно включает в себя модули, обеспечивающие покрытие схемы заданным комплексом элементов, а также различные алгоритмы разбиения графа схемы на конструктивно законченные части. Блок размещения составляется из модулей точного, итерационного и последовательного размещения с минимизацией суммарной длины и внутрисхемных пересечений. Блок трассировки включает модули определения планарности, планарного разбиения схемы, построе- ния кратчайших связывающих деревьев, распределения фрагмен- тов цепей по магистралям, получения координат трасс. Основные требования, предъявляемые к программным моду- лям в САПР,— это универсальность, адаптируемость, возможность параллельного решения нескольких задач конструирования, совме- стимость автоматического, автоматизированного и интерактивного режимов, развитие базы данных. Каждый блок в САПР в соответствии с иерархическим прин- ципом обработки информации образует подсистему. Исходная ин- формация в САПР делится на три типа: описание схемы, описание конструкции и управляющая информация. С помощью управляю- щей информации задаются режимы работы программных моду- лей конструирования. Блок ввода и контроля осуществляет ввод информации, формирование информации, необходимой для рабо- ты последующих программных модулей, контроль и размещение сформированной информации в банке данных. 19
Важнейшим вопросом при автоматизации конструирования ЭА является выбор альтернативных вариантов. При автоматизации конструирования (АК) цель задана и ее записывают обычно в виде /(x)=^max (min), где f — некоторая скалярная функция, на- Рис. 1.8. Основные этапы автоматизированного конструк- торского проектирования пример надежность конструкции, диагностируемость ЭА и т. п.; х—вектор, определяющий управляемые (изменяемые) параметры, например число типовых элементов конструкции, причем Х={х^}, О^х^х. Задачи такого вида решаются путем нахождения экстремума функции f(x) на некотором множестве X, т. е. f (%) => max (min). При автоматизации конструирования перед конструктором стоит задача с помощью ЭВМ выбирать способ действия, т. е. век- 20
тор, дающий максимальное (минимальное) значение нескольким функционалам: /д(х), f2(x), ...» Мх). Для решения задач такого типа обычно используются методы линейной свертки, контрольных цифр, компромиссы Парето и др. При использовании методов линейной свертки вместо v различ- ных критериев учитывают один комплексный F(x)=2Wi(x), где Ki — положительные числа, нормированные заданным образом. Коэффициенты кг отражают представление конструктора о содер- жании компромисса, который он должен принять. Рассмотрим использование контрольных цифр. При автомати- зации конструирования ЭА на ИМС4 и ИМС5 часто задают систе- му нормативов, имеющих вид f*b f*2, f*v. Они означают, что па- раметры ЭА должны быть такими, что fi(x)=>max при fi (х) ^f*i. В этом случае целевую функцию представляют в виде F(x) = = minfi(x)/f*b а затем производят поиск вектора х, который дает i возможность определить наибольшее значение F(x). Условие F(x) =^max означает выбор такой системы значений %, которая максимизирует отношение f-ro значения критерия к его контроль- ному значению. Отметим, что значения f*i обычно определяются в результате экспертного опроса или задаются конструктором из опыта работы. Компромиссы Парето. При решении многокритериальных задач прибегают к сокращению подмножества заведомо «плохих» реше- ний. Пусть сделан выбор х' и имеется другой выбор х" — такой, что для всех критериев справедливо /Дх") ^А(х'). Тогда видно, что выбор х" предпочтительнее, чем выбор х'. Следовательно, век- торы х', удовлетворяющие неравенству, следует исключить из рас- смотрения. Предлагается исследовать только те векторы х, для которых не существует х" для всех критериев, удовлетворяющих приведенному неравенству. Множество таких векторов х называ- ется множеством Парето. Например, пусть цели автоматизации конструирования опреде- ляются двумя функциями: h(G)=>min и P(G)=>min, где A(G) — суммарная длина соединений в типовом элементе замены (ТЭЗ); P(G) — количество пересечений соединений в ТЭЗ. Тогда допустимому значению переменной x^G будет соответ- ствовать одна точка на плоскости (Л, Р). Равенства L = L(G) и P = P(G) определяют некоторую кривую УхУъУъУь (рис. 1.9). К мно- р^ жеству Парето относится участок / W3- Участки Z/1Z/2 и уъу± к множе- / ' ству Парето не относятся, так как на них происходит одновре- д---------------- менное увеличение Р и L. Отметим, что принцип Парето Рис 19 Прнмер определения мно- не дает единственного решения. жества Парето 21
Он уменьшает число исследуемых вариантов, но окончательный выбор всегда за лицом, принимающим решение. В нашем случае это конструктор, который совместно с ЭВМ определяет «цену» уве- личения одного из показателей, его влияние на остальные показа- тели, которые обязательно ухудшаются. Конструктор, построив множество Парето, облегчает процесс выбора решения. Задачи, решаемые на этапе конструирования, относятся к клас- су задач многокритериальной оптимизации. Практически осуще- ствить полную оптимизацию при конструировании затруднительно из-за большого числа частных критериев, переменных и ограниче- ний. В настоящее время наиболее приемлемым способом оптими- зации при автоматизации конструирования является использова- ние методов последовательной субоптимизации. Сначала образует- ся обобщающий критерий суммированием частных критериев, ум- ноженных на коэффициенты, задаваемые конструктором или опре- деляемые на основе экспертных оценок. Суть метода последова- тельной субоптимизации состоит в отыскании оптимума по важ- нейшему критерию, далее по менее важному в допустимой области и т. д. Поскольку этапы конструкторского проектирования в САПР выполняются последовательно, то на каждом этапе можно полу- чить оптимальные или квазиоптимальные результаты в соответст- вии со своими показателями качества. При конструкторском проектировании ЭА основными этапами являются компоновка, размещение, трассировка и контроль. Каж- дому этапу соответствует свой частный критерий оптимальности. Для совместного учета частных критериев можно рассмотреть, на- пример, обобщенный критерий оптимальности, который для задач конструкторского проектирования имеет вид F(G) = [К(О), R(G), T(G), C(G)], где G—объект оптимизации (формальная модель схемы); К(О), R(G), Ti(G), C(G) — обобщенные критерии этапов компоновки, размещения, трассировки и контроля соответственно. В свою очередь, каждый из обобщенных критериев любого эта- па состоит также из частных критериев оптимальности. Так как каждому критерию в зависимости от класса исследуемых схем, заданных ограничений и т. п. можно поставить в соответствие не- которое число, которое характеризует его важность по сравнению с другими критериями, то возможно выполнить объединение кри- териев, другими словами, получить аддитивную функцию F(G)=2^(G); i=i А/г о J == 1 • t=l Полученное выражение позволяет объединить частные критерии в одно выражение. Например, для задач конструкторского проектиро- вания, получим F(G) =%iA’(G) +2i2-R(G) +ZsT(G) +%4C(G). Весо- вые коэффициенты hi определяются в основном из опыта конструк- тора или на основе экспертных оценок. 22
Система (произво- дитель) Этапы автоматизированного конструирования Оборудование 1 2 3 Аврора (СССР) Компоновка, размеще- ние, трассировка, изго- товление фотошаблонов ЭВМ М-222 — аппара- тура для изготовления фотопозитивов IBM (США) Компоновка, размеще- ние, трассировка, изго- товление фотошаблонов, получение КТД IBM-370, модель 155, координатограф Calcomp ЕСАП (СССР) Размещение, трассиров- ка, изготовление фого- оригиналов, получение КТД ЭВМ «Система 4-50», установка изготовления фотооригиналов АСП-1 (СССР) То- же ЭВМ М-220 Автограф (СССР) » ЭВМ М-220, координа- тограф ЭМ-703, фототе- леграфный аппарат ФАК-П Каунас (СССР) » ЭВМ «Раздан-3», коор- динатограф М-2000
Таблица 1.1 Характеристика Конструктивно-техниче- ская база 4 5 Поле 220X170 мм2. Получе- ние 8—10 слоев за 8—10 ч, 100 % {разведенных соединений МПП с выступающими выводами или открытыми контактными площадками Время конструирования пе- чатной платы с 60 микросхема- ми 30 мин МПП Трассировка 500 соединений за 40 мин, 92 % разведенных со единений МПП со сквозной ме- таллизацией Поле 127X170 усл. ед., 3—9 % не,рвзведенных соединений ДПП, МПП Поле 127X180 усл. ед., кон- струирование платы 5 ч, 2—3 % нера зведенных соединений ДПП, МПП Поле 140X150, 50 % ручной доработки. Конструирование на ЭВМ 20—45 мин ДПП
Окончание табл. 1.1 2 3 1 5 Граф 2Д (СССР) » ЕС ЭВМ, координато- граф Минск-2004 Поле 700X700 уел. ед. до 100 элементов на плате. Кон- струирование одной платы 30—50 мин, 90—95 % разведен- ных соединений ДПП Граф 2М (СССР) То же То. же Поле 700X700 усл. ед., до 100 элементов на плате, число слоев — до 12. Конструирова- ние одной платы 30—50 мин, 90—95 % разведенных соедине- ний МПП SPRINT (США) Компоновка, размеще- ние, трассировка, полу- чение КТД IBM-370, Textronix 4013 Интерактивное размещение 15 мин, автоматическая трасси- ровка для плат с 49 элемента- ми 58 с. ДПП MALS (Япония) То же 11/40, Textronix 4014 100% разводки ДПП AIDS (США) Р азм ещен и е, тр ас сир ов - ка, ручная доработка, получение КТД ЭВМ, координатограф, Calcomp Цикл конструирования пла- ты 5—10 дней МПП со сквозной ме- таллизацией LST (США) Компоновка, размеще- ние, трассировка, выпуск КТД, изготовление фото- шаблонов IBM-7090, координато- граф Время конструирования пе- чатной платы на 100 выводов 30 мин ДПП с фиксированны- ми переходами САПР (СССР) Размещение, трассиров- ка, выпуск КТД ЕС ЭВМ, периферий- ное оборудование 100 % разведенных соедине- ний МПП с металлизацией сквозных отверстий САПР (СССР) | То же То же I 95—97 % разведенных соеди- нений ДПП Примечание. КТД — конструкторско-технологическая документация; МПП — многослойная печатная плата; ДПП — двусторонняя печатная плата.
В табл. 1.1 приводится характеристика некоторых существую- щих САПР. 1.3. КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ 1. Дайте характеристику основных этапов npoeKTHpOBaiHinn ЭА. 2. Опишите состав математического, программного, технического, информа- ционного, лингвистического, организационного, методического обеспечения авто- матизированного (автоматического) проектирования. 3. Что входит в комплекс средств автоматизации проектирования? 4. Дайте определение САПР. 5. Нарисуйте структурную схему основных этапов конструкторского проек- тирования. 6. Опишите методы линейной свертки, использования контрольных цифр, компромиссов Парето и поясните их использование для решения задач много- критериальной оптимизации применительно к конструкторскому проектирова- нию. 7. Каким вы представляете себе конструкторское бюро в 2000 году? Опи- шите процесс взаимодействия его подразделений. 8. Какой вы представляете себе САПР в 2000 году? 2. МАТЕМАТИЧЕСКИЕ МЕТОДЫ, ИСПОЛЬЗУЕМЫЕ В СИСТЕМАХ АВТОМАТИЗАЦИИ КОНСТРУИРОВАНИЯ 2.1. ОСНОВНЫЕ ПОНЯТИЯ ТЕОРИИ МНОЖЕСТВ Понятие множества является первичным неопределяемым по- нятием. Его можно описать, применяя такие выражения, как: «совокупность», «собрание», «класс», «вид» и т. д. Основатель тео- рии множества Г. Кантор описывал множество как собрание оп- ределенных ,и различимых между собой объектов нашей интуации, мыслимое как единое целое. В этом разделе будут приведены положения и определения тео- рии множеств, которые широко используются для построения ма- тематических моделей конструкций ЭА. Множества состоят из элементов и обычно обозначаются про- писными буквами латинского алфавита. Элементы множества обычно обозначаются строчными буквами латинского алфавита. Например, в выражении А={а, Ь, с, ..., р} А — множество; а, Ь, с, ..., р — его элементы; фигурные скобки показывают, что элементы а, Ь, с, р объединены в одно целое — множество А. В множестве по определению все элементы различны, а поря- док перечисления элементов множества произвольный, поэтому со- вокупность элементов А = {а, а, Ь, Ь} не является множеством. Принадлежность элемента х множеству А записывается х^А, со- ответственно не принадлежность элемента множеству записывает- ся х £А. Множества бывают конечные и бесконечные. Множество с ко- нечным числом элементов называется конечным. Так, множество элементов ЭА конечно. Множество А= {х, у, z, и, w} конечно, так как содержит 5 элементов. Множество называется бесконечным* 25
если оно содержит бесконечное число элементов. Например, мно- жества четных, нечетных, натуральных чисел соответственно: Ах = = {2, 4, 6, А2={1, 3, 5, ...}, N={1, 2, 3, ...} —являются беско- нечными множествами. Множество Л, состоящее из одного элемента, например d, обо- значается A={d} и называется одноэлементным. Множество, ко- торое не содержит элементов, называется пустым и обозначается знаком 0. Число элементов множества В называется его мощно- стью и обозначается | В |. Например, множество В = {ячейка, ТЭЗ, стойка, панель, шкаф} имеет мощность |В|=5. Существуют два основных способа задания множеств: перечис- ление и описание. Первый способ состоит в том, что задается и перечисляется полный список элементов, входящих в множество. Например, множество элементов схемы ЭА определяется их спис- ком. Очевидно, что данный способ удобно применять только к ог- раниченному числу конечных множеств. Второй способ применяет- ся, когда множество нельзя или затруднительно задать с помощью списка (это может относиться к конечным и бесконечным множе- ствам). В таком случае множества определяются свойствами их элементов. Множество А задано, если указано свойство а, кото- рым обладают все элементы, принадлежащие множеству А, и ко- торым элементы, не принадлежащие множеству А, не обладают. Если А — произвольное множество, а а — некоторое свойство, то запись А = {Ь^В/а(Ь)} означает множество тех и только тех эле- ментов Ь<=В, которые обладают свойством а. Пусть В — множе- ство ТЭЗ ЭА, а а — свойство быть ТЭЗ в блоке управления ЭА, тогда А = {Ь^В/а(Ь)}—множество всех ТЭЗ блока управления ЭА. Заметим, что при задании множеств вторым способом необхо- димо так задавать свойство, характеризующее элементы множе- ства, чтобы оно было общим непротиворечивым для всех его эле- ментов. Множества А и В называются равными, если они содержат одинаковое число одних и тех же элементов, что обозначается так: А = В. Для любых множеств А=А; если А = В, то В = А и если А = В, В = С, то А = С. Говорят, что множество В является подмножеством множества А (В=/=А), если любой элемент множества В принадлежит А. Обозначается это ВоА, формулируется так: множество В строго включается в А (Вс:А). Если возможно В = А, то говорят, что множество В нестрого включается в А и пишут В^А. Например, если множество А определяется свойством а, множество В — свой- ством р и АоВ, то любой элемент, обладающий свойством а, должен обладать также и свойством р. Пусть В={ИМС4, ИМС5, ИМСЗ}, тогда А = {ИМС5, ИМСЗ} включается в В, т. е. АоВ, а С={{ИМС4}, ИМС5} не включает- ся в В, так как множество {ИМС4}еС, являющееся элементом множества С, не является элементом множества В. 26
Очевидно, что любое множество А =^= 0 содержит, по крайней мере, два подмножества — пустое множество и само множество А,. т^ е. 0^А и А^А. Множества А и 0 называются несобственны- ми подмножествами множества. Остальные подмножества, если они существуют, называются собственными. Если А — произвольное множество, то семейством всех подмно- жеств А называется и через (А) обозначается множество, элемен- тами которого является все подмножества множества А. Напри- мер, если А = {РЭА, ЭВА}, то (А) = {{А}, {0}, {РЭА}, {ЭВА}}. Отметим, что | (А) | = 2 Л| . Обычно все множества, с которыми имеют дело в построе- ниях, являются подмножествами некоторого фиксированного мно- жества /, называемого универсальным. Например, при решении задач компоновки схем на различных уровнях иерархии имеют де- ло с множеством множеств, т. е. с множеством, каждый элемент которого является множеством. Такие множества называют систе- мой множеств. Введем термин «высказывание». Высказываниями называют предложения, которые считаются истинными или ложными. Сле- довательно, каждое высказывание может быть истиной (ему прис- ваивается значение «единица») или ложью (ему присваивается значение «нуль»). Например, высказывания «2X2 = 4», «ЭВМ третьего поколения имеют большее быстродействие, чем. ЭВМ первого поколения» являются истиной. Высказывания «3>5»,. «ИМС5-Й степени интеграции содержит меньше элементов на та- ком же кристалле, чем ИМС4-Й степени интеграции» являются ложью. В алгебре высказываний они рассматриваются с точки зрения их логических значений независимо от содержания. К основным логическим операциям над высказываниями отно- сятся: отрицание, конъюнкция, дизъюнкция, импликация, эквива- лентность. Отрицанием высказывания А называется новое высказывание, обозначаемое А, которое считается истинным, если А ложное, и ложным, если А истинно. Операция отрицания соответствует логи- ческой частице «не». Например, для истинного высказывания «ЕС ЭВМ состоят из ТЭЗ» отрицанием будет ложное высказывание «неверно», что ЕС ЭВМ состоят из ТЭЗ». Конъюнкцией высказываний А, В называется новое высказы- вание, обозначаемое АЛВ (читается А и В), которое считается ис- тинным, если А и В истинны, и ложным, если хотя бы одно из них ложно. Например, для двух высказываний: «2>0», «ИМС4 содер- жит больше элементов, чем ИМСЗ» — конъюнкция «2>0 и ИМС4 содержит больше элементов, чем ИМСЗ» будет истинным выска- зыванием. 4 Дизъюнкцией высказываний А, В называется новое высказыва- ние, обозначаемое AVB (читается А или В), которое считается истинным, если хотя бы одно из высказываний А, В истинно, и ложным, если они оба ложны. Например, для двух высказываний: 27
«ТЭЗ содержит меньше интегральных микросхем, чем панель из нескольких ТЭЗ» и «32 = 9» — дизъюнкция «ТЭЗ содержит меньше интегральных микросхем, чем панель из нескольких ТЭЗ или 32=9» будет истинным высказыванием. Импликацией высказываний А, В называется высказывание, обозначаемое А-+В (читается «А влечет В» или «если А, то В»), которое ложно, если А истинно и В ложно, и истинно для всех других логических значений А, В. Например, высказывание «если 5x5=/= 25, то ЭВА третьего поколения строятся на основе ТЭЗ» истинно. Эквивалентностью высказываний А, В называется высказыва- ние, обозначаемое А <+ В (читается «А равносильно В» или «для того чтобы А, необходимо и достаточно, чтобы В»), которое счи- тается истинным, когда оба высказывания А, В либо истинны, либо ложны, и ложным в остальных случаях. Например, выска- зывание «для того чтобы автоматически конструировать современ- ную ЭА, необходимо и достаточно иметь действующую систему автоматизированного проектирования» истинно. На рис. 2.1 показаны таблицы истинности для рассмотренных А в А—В И И л л И л U л U л U 11 Импликация А в А—В И 11 л л U л И л И л л И Эквивалентн ость Рис. 2.1. Таблицы истинности высказываний Дадим понятие квантора существования и квантора общности. Запись (VxeX)B(x) означает, что для любого элемента из мно- жества X истинно высказывание В(х) об элементе х. Знак V на- зывают квантором общности. Запись (qxEl)B(x) означает, что существует хотя бы один элемент х^Х, для которого истинно высказывание В(х) об этом элементе. Знак g называют квантором существования. Объединением множеств А и В называется множество С, состоя- щее из элементов как множества А, так и множества В. Обозна- чается C=AUB. Высказывание y&A'U В эквивалентно у<=А\/у(=В. Например, при А= {транзистор, резистор}, В = {конденсатор, ин- дуктивность}, то С=А U В = {транзистор, резистор, конденсатор, 28
индуктивность}. Если А — множество точек левого прямоугольни- ка (рис. 2.2), а В — множество точек правого прямоугольника, то заштрихованная область есть ЛОВ. Рис. 2.2. Объединение мно- жеств <С=А[)В Рис. 2.3. Пересечение мно- жеств С = А[}В п Объединение множеств Ai, А2, ..., Ап обозначается U Лг*. Оно i=l состоит из всех элементов, которые принадлежат хотя бы одному из множеств Ль А2, Лп. Пересечением множеств А и В называется множество С, состоя- щее из элементов, принадлежащих одновременно и множеству В, и множеству А. Обозначается С=А АВ. Следовательно, у^А АВ** ** у^А/\у^В. Например, если Л={ИМС4, ИМС5, электронная лампа, реле}, В={ИМС4, ИМСЗ}, то С=А А В== {ИМС4}. Если Л — множество точек левого прямоугольника (рис. 2.3), а В — множество точек правого прямоугольника, то заштрихованная об- ласть есть Л А В. Пересечение множеств Ль Л2, ..., Ап обозначает- п ся A Ai. Оно состоит из всех элементов, принадлежащих одновре- /=1 менно множествам Ль Л2, Лп. Из определения пересечения множеств, следует, что ЛАЛ=Л. Если множества Л и В не имеют общих элементов, то их пересе- чение представляет собой пустое множество. Разностью множеств Л и В называется множество С, состоя- щее из элементов, принадлежащих Л и не принадлежащих В. Обо- значается С=А\В. Тогда у^А \ В <+у(=А/\у $ В. Например, ес- ли Л = {ИМС4, ИМС5, ТЭЗ}, аВ={ИМС4, транзистор}, то Л\В = = {ИМС5, ТЭЗ}. Если Л — множество точек левого прямоугольни- ка, а В — множество точек правого прямоугольника (рис. 2.4), то заштрихованная область есть множество С=А \ В. Очевидно, что Л\В^Л, В \Л^В. Когда Л^В, то множество Л = В\А называется дополнением множества А до В. Для произвольного множества М^1 можно определить дополнение до универсального множества М = 1\М. Для любого множества можно определить дополнение до любого другого множества, включающего его. Если это не оговорено, то считается, что дополнение берется до универсального множества I. Пример показан на рис. 2.5. Здесь заштрихованная область представляет собой А = 1\А. 29
Рассмотрим основные свойства операций U, П, \ . Законы коммутативности ЛиВ = ВиЛ; ЛАВ = ВАЛ. Законы ассоциативности Ли(ВиС) = (ЛиВ)иС; ЛА (ВАС) = (ЛАВ) АС. Законы дистрибутивности. ЛА (BUC) = (ЛАВ)и (ЛАС); ли (ВАС) = (ЛАВ) А(ЛиС). Законы идемпотентности ЛиЛ=Л; ЛАЛ=Л. Законы де Моргана Л \ (ВАС) = (Л \В)А(Л\С); Л \(ВиС) = (Л \В)А(Л \С). Основным методом доказательств тождеств с множествами яв- ляется метод двух включений (или взаимного включения). Для доказательства E = F необходимо показать, что Е^ЕЛЕ^Е. Чтобы Рис. 2.4. Разность множеств С=Л\£ А Рис. 2.5. Дополнение Л = /\Л доказать, что E^F, требуется из истинности высказывания а^Е вывести истинность высказывания a^F. И, наоборот, для доказа- тельства F^E необходимо из истинности высказывания a^F вы- вести истинность высказывания а^Е. Например, докажем справедливость ЛА (BUC) = (ЛАВ)Ц (ЛАС); Е F Обозначим левую часть через Е, а правую — через Е. Теперь не- обходимо доказать, что E=F. Это равносильно доказательству Е<=ЕЛЕс=Е. Пусть истинно высказывание а^Е, тогда а^Е->аеЛА(ВиС)->а^ЛЛа^(ВиС) -> ае=ЛЛ (ае=ВУае=С)-^ае= еЛЛяЕЖЕЛЛаЕС -> яе (ЛАВ) Уае(ЛАС) -> (ЛПВ)и и(ЛАС)->ш=Е. 30
Пусть теперь истинно высказывание a^F, тогда a<=F-+a(= (АПВ) U (ЛИС) -> а^А/\а^В\/а^А/\а^С -> а^А/\ (а<= (=ВУа<=С)-+а<=АГ\ (JB\JC)-+a^E, что и требовалось доказать. Иногда требуется доказать не равенство двух множеств, а ра- венство множества пустому множеству, т. е. А=0. Обычно дока- зательство проводят методом от противного, т. е. предполагают что А=^0, следовательно, существует хотя бы один элемент а^А, и тогда пытаются доказать, что предположение А=^= 0 является ложным и приводит к противоречию, на основании чего заклю- чают, что А = 0 . Выше мы рассматривали неупорядоченные множества. Для за- дания упорядоченных множеств используется термин кортеж. По- нятие кортежа, как и понятие множества, является неопределяе- мым понятием. Кортеж состоит из компонент, для которых задает- ся местоположение. Обычно кортежи обозначаются греческими буквами, а их компоненты — латинскими. Например, а=*Са, Ь, с, с, с). Такая запись означает, что кортеж а состоит из пяти компо- нент: а — расположенной на 1-м месте, b — на 2-м месте, с — на 3-м месте, с — на 4-м месте и с — на 5-м месте. Компонентами кортежей могут быть любые объекты, в том числе множества и кортежи. Кортежи аир называются равными, если каждая компонен- та а совпадает с компонентой р с тем же номером. Например, а= =<9,5^>=р=<Д5) и а=<5,9)=/=р=<9,5). Следовательно, {а, ЬУ= —^с, d)-^(a = c)/\(b==d). Число компонент кортежа называют его длиной. Декартовым (прямым) произведением множеств А и В назы- вают множество С, состоящее из всех различных кортежей дли- ны 2, первая компонента которых принадлежит А, а вторая — В. Обозначается С=АхВ. Например, если А = {а, Ь}, В = {х, г}, то С=АхВ={(а, х), <р, z), Q)t х}> (Ь, г». Следовательно, для любого кортежа, являющегося элементом мно- жества С, истинно высказывание <д, х)^С=А ХВ ** (а^А)/\ (х^В). Кортежи длины 2 называются упорядоченными парами, кортежи длины 3 — тройками и т. д. Декартовым произведением п множеств Ai, А2, .., Ап называют множество С=А[ХА2Х ... ХАп, состоящее из всех кортежей дли- ны п, первая компонента которых принадлежит Аь вторая — А2,..., компонента п — Ап. Очевидно, что АхВ=0**А = 0 \/В = 0. Степенью s множества А называется декартово произведение одинаковых множеств А, т. е. As=AxAx ... ХА. sPa3 Считают Ai = A и А°={0}, где 0 — пустой кортеж. 31
Множество, каждый элемент которого является кортежем, на- зывается графиком. Для графиков определены две основные опе- рации: инверсия и композиция. Инверсия графика определяется через инверсию его кортежей. Кортеж <х, у) есть инверсия корте- жа <р, ^,если у = р и x = q. Обозначается а-1. Например, если а = =<х, у), сх—1 = <Д/, х). График R называется композицией графиков Р и Q, если <х, y)^R, тогда и только тогда, когда существует такое г, что <х, z)<=P и <г, y)^Q. Обозначается R = POQ. Знак О обозначает, что выполняется композиция графиков Р и Q. Пусть Р = {(х, у), (х, х}, {х, z), (z, z)} и Q={<^ у), {у, х), \у, */}. Тогда POQ={<^, у), {х, г), (х, х)}. Пусть произвольная пара <х, y)^R = POQ. В этом случае для нее справедливо высказывание (х, y)^POQ **(3 d)(x, d)^P/\ /\(d, y)^Q). Элемент d в POQ является компонирующим элемен- том. Очевидно, что ЛО0=0ОЛ==0. Операции композиции и пере- сечения множеств связаны следующим образом: АО (ВПС) <= (ЛОВ) А (ЛОС); (ВАС) ОЛ (ВОЛ) А (СОЛ). Многие задачи конструирования тесно связаны с различными вопросами разбиения множеств. Наибольший интерес представляет разбиение множества на непересекающиеся подмножества. Напри- мер, используя классификацию ИМС можно выделить три непере- секающихся подмножества: ИМС1, ИМСЗ и ИМС5. Очевидно, что одно и то же множество можно разбить на подмножества различными способами. Система множеств М на- зывается разбиением множества А, если (УЛ^МДЛ^Л и А^0]. (УЛЪ Л^М)(Л^Л^Л,АЛ5=0]. Лс=иЛг. Например, множество Л = {ИМСЗ, ИМС1, ИМС5} имеет пять раз- биений: М1={Л), М2={{ИМСЗ}, {ИМС1}, {ИМС5}}, М3={{ИМСЗ}, {ИМС1, ИМС5}}, М4={{ИМС1}? {ИМСЗ, ИМС5}}, М5 = = {{И|МС5}, {ИМСЗ, ИМС1}}. Из рассмотренного примера видно, что попарное пересечение под- множеств внутри разбиения пусто. Более общим понятием является покрытие множеств. Пусть А — произвольное непустое подмножество. Покрытием множества 32
А называется семейство Ж множеств, для которых справедливо следующее: (А^Ж} (Ai=A= 0),(U Ai=A. Дрз- Л,- € гУ£ гимн словами, покрытие Ж — это совокупность непустых подмно- жеств Аи объединение которых есть А. Элементы семейства называются классами покрытия множества А' Например, класса- ми покрытия множества ЭВА являются множество универсальной ЭВА, множество специализированной ЭВА, множество смешанной ЭВА. Другим примером является покрытие множества А={1, 2, 3, ..., 20} классами, состоящими из чисел. Эти классы, например, будут Д1 = {1,2, 3, 10, 12,20}, А2={2, 3,..., 10, 11, 12, ..., 20}. Многие задачи науки и техники могут иметь формальную интерпретацию на языке теории от- ношений. Все арифметические операции — это ал отношения между числовыми множествами. Мно- Z/S------ жество элементов схем ЭВМ, ЭВА или РЭА остается набором элементов, пока между ними \ не реализуются определенные отношения, прев- ращающие эти элементы в вычислительную ма- \3j шину или прибор. Разнообразные отношения возникают между родителями н детьми, руково- рис. 2.6. Отноше- дителями и подчиненными, в природе и т. д. ние ср Вообще говоря, отношение — это связь между любыми объектами в природе. В теоретико-множественном плане отношение — это кортеж длины 2, т. е. пара, первая компонента которой является подмно- жеством квадрата второй компоненты. Обозначается отношение Ф=<Ф, В), Ф^В2, где Ф —график отношения; В — область зада- ния отношения. Рассмотрим ряд примеров отношений. Если ср — отношение па- раллельности, то aepb показывает, что а параллельно Ь. Здесь а, b — элементы отношения. Если Ф={<1,2), <2,2^>, <Др}, В= {1,2,3}, то определим отношение ф=<{<1,2), <£,2^>, <3,1)}, {1,2,3}/. Графи- ческое изображение отношения ср показано на рис. 2.6. В кружках стоят цифры, соответствующие элементам отношения, а линии со стрелками показывают связь между элементами отношения. Отношение ср называется полным, если Ф = В2, т. е. если выска- зывание ( Vx, у^В) [херу] всегда истинно. Отношение ср называется пустым, если Ф = 0, т. е. если выска- зывание ( Vx, у^В} (херу) всегда ложно. Отношение ср называется отношением равенства, если высказы- вание ( V х, у^В) (херу-+х = у) истинно. Отношение ср называется отношением неравенства, если выска- зывание ( Vх, у^В) (херу-+х=£у) истинно. Заметим, что на отношение переносятся операции над множест- вами. Пусть ф1=,(Ф1, ВУ и ф2=<Ф2, ВУ есть произвольные отноше- ния, заданные на одном и том же множестве В. Тогда объединением отношений ф1 и ф2- называется отношение Фз, график которого Фз равен объединению графиков отношений 2—144 33
Ф1 И ф2*. фз=Ф1 U ф2=^Ф1 U Ф2, В). Очевидно, что х(ф1 U ф2)у ** (*Ф1У) У(*ф2#)- Аналогично определяются операции пересечения и разности отношений. Например, если Ф1=^{<а, by, (Ь, с), {a, d)}> {a, b, с, d})> Ф2=^{<а, Ь), (Ь, с», {a, b, с, d}), то Фз^=Ф1Пф2=<Ф1ПФ2, В) =<{<а, b), Q), с)} {a, b, с, d}). Для отношений, заданных на одном и том же множестве, справед- ливы тождества, аналогичные тождествам над множествами. Также справедливы операции инверсии и композиции, которые рассматривались для графиков. Инверсией отношения ф на множестве В является отношение, график которого есть инверсия графика отношения ф=^Ф, В), т. е. ф-^^ф-1, ву. Следовательно, хф-1у->#фХ. Композиция отношений ф1=\Ф1, В) и ф2=<\Ф2, ВУ определяется выражением ф3 = ф1Оф2=^Ф1ОФ2, В). Отношение удобно задать в виде прямоугольной таблицы (мат- рицы). Строки и столбцы матрицы отношений R<p соответствуют элементам х, у^В. На пересечении строки, соответствующей эле- менту Xi, и столбца, соответствующего элементу Xj, ставится еди- ница, если выполняется отношение x^cpxj, и нуль в противном слу- чае. Матрица отношения, показанного на рис. 2.6, имеет вид 1 2 3 10 10 Иф-2 0 10. 3 10 0 Размер матрицы Яф равен |В| X |В|, т. е. общее число кле- ток (ячеек) равно мощности В2. Для отношения ф=<Ф, В), где B={xb х2, х3, у2}, Ф= <х2, у2у, <х3, У1), <*з, У2), {Уъ Х1> <у2, *2> <#2, У2), <*2, Х2), <tj2t Х3> <*Ь У2>}, матрица отношения примет вид *1 Хц Х3 У1 Уз *1 Х3 Rq> = Х3 У1 Уз о о о 1 о о 1 о о 1 0 1 1 0 0 1 О 1 1 0 0 0 1 0 1 Полному отношению соответствует матрица, все клетки которой заполнены единицами, а пустому — нулевая матрица. 34
Рассмотрим основные свойства отношений. Отношение ф=<Ф, В) называется рефлексивным, если высказы- вание (Ух«=В)[хфх] является истинным высказыванием. Отноше- ние «находится в одной и той же схеме ЭА» для одного элемента х является рефлексивным отношением. Матрица рефлексивного от- ношения имеет все единичные элементы, расположенные по глав- ной диагонали. Отношение ф=<Ф, В) называется антирефлексивным, если выс- казывание (Ух^В)[хфх] истинно. Здесь ф обозначает инверсию отношения ф. В матрице антирефлексивного отношения по главной диагонали нет ни одного единичного элемента. Отношение ф=<Ф, В) называется симметричным, если ( Vx, у(=В) (хф^-^уфх). Отношение «находиться в одном ТЭЗ ЭВА» для двух ИМС х и у является симметричным отношением, так как если ИМСХ и ИМСУ находятся в одном ТЭЗ, то ИМСУ и ИМСХ находятся в одном ТЭЗ. Отношение ф называется антисимметричным, если (V х, у^В) (хуу/\хУ=у-+уц)х). Отношение «больше» является примером анти- симметричного отношения. Отношение ф называется транзитивным, если (V х, у, z^B) (xqy/\yqz-+xqz). Отношение «находиться в одном кристалле ИМС» для транзи- сторов х, у, z является транзитивным отношением. Другими словами, если элементы х и у находятся на некото- ром кристалле ИМС и элементы у и z находятся на том же крис- талле, следовательно, на этом же кристалле будут находиться х и z. Отношение равенства является транзитивным, так как если х=у и y=z, то и Х = 2. В практике автоматизации конструирования схем интерес пред- ставляют отношения, обладающие совокупностью свойств. Отношение ф называется отношением эквивалентности, если оно рефлексивно, симметрично и транзитивно. Например, отношение «параллельности» прямых является отно- шением эквивалентности, так как а\\а (рефлексивность), а||&->&||а (симметричность), а||ЬАЬ||с-->а||с (транзитивность). Отношение «перпендикулярности» прямых не является отноше- нием эквивалентности, так как а не перпендикулярно а (рефлек- сивность не выполняется), аА_Ь-^ЬА_а (симметричность), a±&A&_Lc не влечет a_Lc (транзитивность не выполняется). Отношение «находиться в одной и той же схеме ЭА» для ее элементов является отношением эквивалентности. Основное значение отношения эквивалентности состоит в том, что оно определяет признак, который допускает разбиение множе- ства М на непересекающиеся подмножества, называемые класса- ми эквивалентности. Все элементы, принадлежащие некоторому классу Mi разбиения множества М, связаны отношением эквива- лентности. 2* 85
Матрица Кф отношения эквивалентности ср состоит из клеток (подматриц), расположенных по главной диагонали, причем все элементы каждой подматрицы являются единицами. Матрица от- ношения эквивалентности может быть приведена к такому виду с помощью перестановок строк и столбцов. Например, если пере- ставить строки и столбцы матрицы, записанной ниже, ее конфигу- рация изменится, но матрица не перестанет быть матрицей отно- шения эквивалентности. Пусть, например, на множестве В = {ЭВМ, ЭВА, РЭА, ИМС4, ИМС5, ТЭ31, ТЭ32, ТЭЗЗ, ТЭ34} задано отно- шение эквивалентности «иметь одинаковую конструктивную реа- лизацию». Тогда множество В можно разбить на три класса, со- держащие эквивалентные по заданному отношению элементы: Bi = {ЭВМ, ЭВА, РЭА}, В2={ИМС4, ИМС5}, В3={ТЭ31, ТЭ32, ТЭЗЗ, ТЭ34}. Матрица этого отношения запишется ЭВМ ЭВА РЭА ИМС4 ИМС5 ТЭ31 ТЭ32 ТЭЗЗ ТЭ34 ЭВМ 1 1 1 0 0 0 0 0 0 ЭВА 1 1 1 0 0 0 0 0 0 РЭА 1 1 1 0 0 0 0 0 0 ИМС4 0 0 0 1 1 0 0 0 0 =ИМС5 0 0 0 1 1 0 0 0 0 ТЭ31 0 0 0 0 0 1 1 1 1 ТЭ32 0 0 0 0 0 1 1 1 1 ТЭ32 0 0 0 0 0 1 1 1 1 ТЭ34 0 0 0 0 0 1 1 1 1 Отношение эквивалентности позволяет разбивать множество, на котором задано отношение, на непересекающиеся классы, со- держащие эквивалентные между собой элементы. Дальнейшее пре- образование заданного множества позволяет вместо каждого клас- са исследовать один его произвольный элемент. Мы рассматривали отношения, в которых Ф могло состоять из кортежей длины 2. Такие отношения называются бинарными. Если Ф будет состоять из кортежей длины и, то в общем случае можно рассматривать п отношения. Отношение ср=</£>, В), заданное на множестве В, называется /г, если Ф^Вп. Отношение «образовать вычислительную систему из четырех микропроцессоров» на мно- жестве микропроцессоров одного типа является примером 4-го от- ношения. Моделью М называется совокупность множества В и конечного числа отношений, определенных на этом множестве: ср1=<,Ф1, В), ф2 = <Ф2, В>, ..., срг=<Фг, В>. \ В общем случае можно записать М=(В, Фь Ф2, Фг). Гово- рят, что соответствие — это кортеж длины 3, первая компонента которой является подмножеством декартового произведения вто-
рой и третьей компонент: Г={Ф, X, У), Ф^ХхУ, где Ф — график соответствия; X — область отправления; У — область прибытия. Образом множества А при соответствии Г называется множе- ство Г (А) тех элементов области прибытия У, каждый из которых соответствует в Г какому-нибудь элементу из А. Например, пусть Г=<Ф, X, У>, где Ф={<а, 2>, <&, 3\ 2У 1)}, Х={а, Ь, с}, У={1, 2, 3}. Соответствие Г показано на рис. 2.7. Если А = {а, Ь}, то Г(А)=Г({а, &}) = {!, 2, 3}. Из примера видно, что Г(Л)^У. Полным прообразом множест- ва В при соответствии. Г называ- ется множество Г-1 (В) тех эле- ментов области отправления X, каждому из которых соответст- вует какой-нибудь элемент В^У. Если в примере (см. рис. 2.7) В={1,3}, то Г-1(В) = {&}, причем Г-ДВ)^^. Соответствие Г можно задать с Рис. 2.7. Соответствие Г помощью матрицы Rr разме- ром |Х|Х|У|. Строки матрицы Rr соответствуют элементам х^Х, а столбцы — элементам y^Y. На пересечении z-й строки и j-го столбца ставится единица, если <^хг-, и нуль в против- ном случае. Для соответствия Г=(Ф, X, У), изображенного на рис. 2.7, матрица Rr примет вид 1 О 1 О 2 1 О 1 3 О 1 о а Rr = b с Над соответствиями можно выполнять те же операции, что и над множествами и отношениями. Соответствие 1=(Ф, X, У) называется функциональным, если график Ф не имеет кортежей с одинаковыми первыми и различ- ными вторыми компонентами, т. е. график не может иметь двух пар вида у\), у^, У1¥=У2- В противном случае соответствие называется нефункциональным. Функциональное соответствие на- зывают однозначным, а нефункциональное — многозначным. При- мер функционального графика Ф={(а, 1^Ь, !),</?, 1)^, 0} пока- зан на рис. 2.8. Соответствие Г={Ф, X, Y) называется инъективным, если в гра- фике Ф не может быть двух пар вида ^хь у^>, <л2, z/j); Xi=?^=x2. В противном случае соответствие называется неинъективным. Соответствие Г=*\Ф, X, У) называется всюду определенным, ес- ли для любого х^Х образ Г(х) 0 • Соответствие называется сюръективным, если для любого у^ У прообраз =7^= 0. Произвольное соответствие Г={Ф9 X, Y) 37
может обладать или не обладать любым из описанных свойств или их совокупностью. Соответствие Г={Ф, X, Y) называется биективным или взаим- но-однозначным, если оно функционально, инъективно, всюду оп- ределено и сюръективно, т. е. соотвествие Г взаимно-однозначно, если каждому элементу х соответствует один и только один эле- Рис. 2.9. Взаимно-одно- значное соответствие меж- ду множествами X и У Рис. 2.8. Пример функцио- нального графика Ф мент у и наоборот. На рис. 2.9 показан пример взаимно-однознач- ного соответствия между множествами X и У. Здесь а** 3, b ** 1, с **2. Функциональные соответствия являются частным видом соот- ветствий, наиболее часто используемых при разработке алгоритмов автоматизированного конструирования ЭА. Они называются функ- циями >и обычно обозначаются /=</£>, X, Y). Тот факт, что функция f имеет область отправления X и область прибытия У, выражают словами: функция f определена в X и принимает свои значения в У. Обозначается X У или /:Х->У. Значение функции / на эле- менте а обозначается f(a). Если кортеж {х, уУ&Ф, то образом элемента х при функции f будет элемент у. Это обычно обозначают f(x)=y и говорят, что функция f отображает элемент х^Х в эле- мент y^Y. Элемент х называется аргументом функции f, а у — значением функции f на агрументе х. Функция /=<Ф, X, Y) называется нигде не определенной, если Ф#= 0 . Функция /=<Ф, X, Y) называется всюду определенной, когда (Vxe=X)(af(x)]. Всюду определенную функцию называют отображением, а ото- бражение типа X_^Y называют отображением множества X в У. Функция /=<Ф, X, Y) называется сюрьективной, если (V y<=Y) (3 х<=Х) [f(x) =у\. Функция /=<Ф, X, Yy называется инъективной, если (( з y(=Y) [f (y) =х]. Функция /=<Ф, X, У) тогда и только тогда биективна, когда она всюду определена, сюрьективна и инъективна. Синонимом термину «биекция X на У» является взаимно-однозначное отображение множества X на У. Примеры сюрьективной, инъективной и биективной функции по- казаны на рис. 2.10, 2.11, 2.12 соответственно. Биективная функция или просто биекция типа t Х-+Х назы- вается подстановкой на множестве X. Подстановку записывают в 38
виде двух строк, заключенных в круглые скобки, причем под эле- ментом х^Х записывается элемент t(x). Например, пусть Х= = {xi, х2, *з, -М- Тогда некоторая произвольная подстановка t мо- жет иметь вид Такая запись означает, что элемент Xi отображается в х2; х2— в х4; х3 — в Xi и х4 — в х3. Существуют и обратные подстановки, которые можно применять для возвращения в исходное состояние. Для рассматриваемого примера z_1 = /*b *2, х4\ кх3, хь х4, Х2 / Отметим, что для соответствий и функций также справедливы все операции над множествами и отношениями. В практике конструирования часто приходится иметь дело с множествами, в которых нельзя указать резкую границу, отделяю- щую элементы, принадлежащие к данно- му множеству и не принадлежащие к не- му. Такие множества называют расплыв- чатыми или нечеткими. Следует отличать понятия случайности и расплывчатости. Случайность связана с неопределенно- стью, относящейся к принадлежности или непринадлежности элемента к множеству. Расплывчатость связана с множествами, в которых могут иметься различные сте- пени принадлежности элементов к дан- ному множеству. Пусть задано множество Х={х\, Х2, ... Рис. 2.12. Биективная функ- ..., хп}. Тогда говорят, что расплывчатое дня f=«(0, X, Y) множество А на множестве X есть сово- купность кортежей А = {(ца(^); х*)}, х^Х, где |Лл(^г)—степень принадлежности элемента xt к А; ца — функция, отображающая х$ 39
в пространство М, называемое пространством принадлежности. Предполагается, что М — это интервал [0,1], причем 1 и 0 пред- ставляют высшую и низшую степени принадлежности. Заметим, что степень принадлежности может являться расплывчатым мно- жеством. Основное положение теории расплывчатых множеств состоит в. том, что А, несмотря на «размытость» границ, задается точно пу- тем сопоставления .каждому элементу х^Х, числа, лежащего меж- ду 0 и i.' / Например, пусть Х={1, 3, 5, ...} — множество положительных нечетных чисел. Тогда расплывчатое множество А можно, напри- мер, определить как набор кортежей вида А ={<0,6; 1/, <0,2; 3/, <0,7; 5>...}. Носитель А есть множество элементов' х^Х, для которого PaW положительно. Точкой перехода А называется элемент х<=Х, для которого ца(^)=0,5. Одноточечным расплывчатым мно- жеством (иногда используют термин нечеткие или размытые мно- жества) называется множество, носитель которого состоит из един- ственной точки. Если А— одноточечное расплывчатое множество, то его обозначают А = ц/х, где ц— степень принадлежности х к А. Тогда одноточечное множество можно обозначить А= 1/х. Расплывчатое множество часто рассматривают в виде объеди- нения входящих в него одноточечных множеств и записывают в виде A=J jia (*)/*, X Здесь знак интегрирования означает объединение одноточечных расплывчатых множеств ца’(л:)/х. Если А состоит из конечного числа элементов, то п А = pi/XlUp2/-^2U ... Ujln/Xn = 4 = 1 Очевидно, что' тогда конечное множество Х={хг, х2, ..., хп} можно записать в виде X=l/x1Ul/x2U ... Ul/xn= U 1/Xi. 4=1 Пусть Х= {кристалл, плата, панель}; А — расплывчатое множе- ство, определяемое признаком «степень интеграции (СИ) элемен- тов». Тогда, „ например, можно записать: А = СИ болыпая/крис- талл U СИ средняя/плата U СИ малая/ панель. Расплывчатые сте- пени принадлежности большая, средняя, малая в данном примере можно определить как расплывчатые подмножества множества W= {0; 0,1; 0,2; ...; 1}. Эти подмножества можно определить, на- пример, так: малая = 0,5/0,2 U 0,7/0,3 U 1/0,4; средняя = 0,6/0,4 И U 0,8/0,5 U 1/0,6; большая = 0,7/0,7 U 0,8/0,8 U 1/1. Приведем еще ряд примеров расплывчатых множеств. 40
Пусть Х={1, 2, 20}, тогда расплывчатое множество' А на X, описываемое понятием «много», можно, например, записать в виде «много» = 0,5/10 U 0,6/11 U 0,7/12 U 0,8/13 U 0,9/14 U 0,9/15 U 0,9/16 U О 0,9/17 U 0,9/18 U 1/19 U 1/20. Пусть X — множество ЭВМ. первого’, второго, третьего и четвер- того поколений, запишем это так: Х={ЭВМ1, ЭВМ2, ЭВМЗ, ЭВМ4}. Пусть А — расплывчатое множество, определяемое термином «эф- фективный» в смысле времени решения задач на ЭВМ. Тогда ус- ловно можно, например, записать А = эффективные очень сла- бо/ЭВМ1 U эффективные слабо/ЭВМ2 U эффективные средне/ЭВМЗи U эффективные достаточно/ЭВААА. Здесь, как и в ранее рассмот- ренных примерах, термины «очень слабо», «слабо», «средне», «до- статочно» можно определить с помощью расплывчатых множеств: Г={1, 2, 3, 4}; «очень слабо» = 1 /1 U0,7/2U0,1/3U0/4; «слабо» = 0,7/1U1 /2U0,2/3U0/4; «достаточно» = 0/1U0,3/2 U0,7/3U 1 /4. В практических задачах конструирования функция принадлежно- сти ца определяется эвристически из конкретных условий. Рас- плывчатые множества А и В называются равными, если (V х^Х) (|Ла(х)=|Лв(х)). Расплывчатое множество А является подмножеством B(AczB), если ( VxeX) (ИА(х) ^|лв(х)). Расплывчатое множество А1 назы- вается дополнением к А, если ( VxeX) (цА (х) = 1—|ла(х)). Напри- мер, расплывчатые множества А= {«большие» микросхемы} и А* = = {«небольшие» микросхемы} являются дополнениями друг к дру- гу, если отрицание «не» определяется как операция, заменяющая р,А(х) на 1—V х<=Х. Говорят, что расплывчатое множество С называется пересече- нием множеств А и 5, если оно определяется как наибольшее рас- плывчатое множество, содержащееся как в А, так и в В: С = АГ15; Ра. п в (х) =min (цА (х), |1в(х)), Х(=х. Например, если А = {<0,7/ИМСЗ>, <0,3/ИМС5>, <0,9/ИМСП}, В = = {<0,3/ИМСЗ>, <0,2/ИМС5>, <1/ИМС1>}, тогда с = АПВ = = {<0,3/ИМСЗ\ <0,2/ИМС5>, <0,9/ИМС1>}. Если А = {<0,8/1>, <0,5/3>}, а В= {<0,2/1), <0,7/3>}, тогда С = =А П 5= {<0,2/1), <0,5/3)}. Объединением расплывчатых множеств А и В называется наи- меньшее расплывчатое множество С, содержащееся как в А, так и в В: C = AUB; р,А ив(х) =шах(цА (*)}, х<=Х. Пусть А — множество ИМСЗ, а В — множество ИМС1, тогда С=А U В= {ИМСЗ или ИМС1}. Расплывчатым отношением ср на декартовом произведении мно- жеств ХхУ={<*, У/, хеХ, уеУ} называется выражение, описы- ваемое функцией принадлежности цф, которая сопоставляет каж- дому кортежу <х, у/ его степень принадлежности цФ (<х, у)) к ф. Пусть Х={РЭА, ЭВА}, У={ИМСЗ, ИМС1}. Тогда бинарное расплывчатое отношение «компоновка» между элементами мно- 41
_РЭА ” ЭВА жеств X и Y можно, например, записать следующим образом: Компоновка = <0,7/(РЭА, ИМСЗ)> U <0,9/(РЭА, ИМС1)> U U <0,8/ (ЭВА, ИМС1)>U<0,1/(ЭВА, ИМСЗ)>. Расплывчатые отноше- ния удобно задавать с помощью матрицы отношений R<p= ||гг-, J ixixirp В нашем случае матрица отношений запишется в виде ИМСЗ ИМС1 0,7 0,911 0,1 0,8|Г где элемент r^j равен значению функции рф для f-ro элемента х и j-ro элемента у. Заметим, что для расплывчатых отношений спра- ведливы операции, определенные на расплывчатых множествах. Для расплывчатых отношений можно определить такие свойства, как рефлексивность, симметричность, транзитивность и т. д. Приведенные определения и понятия можно применять для на- хождения решения в условиях, когда неточность является следст- вием расплывчатости, что характерно для некоторых эвристичес- ких задач автоматизации конструирования ЭА. 2.2. ЭЛЕМЕНТЫ ТЕОРИИ АЛГОРИТМОВ Понятие алгоритма является одним из основополагающих по- нятий современной науки и техники. Неформально можно опреде- лить алгоритм как конечную совокупность точно заданных правил решения произвольного класса задач. Отметим основные требования к алгоритмам. Алгоритмы при- меняются к исходным данным и выдают конечные результаты, т. е. каждый алгоритм имеет входы и выходы. В результате работы алгоритма появляются промежуточные результаты. Следовательно, алгоритм имеет дело с данными, которые можно отнести к трем группам: входные, выходные, промежуточные. Для размещения данных, с которыми имеют дело алгоритмы, требуется память. Обычно считают, что память состоит из одинаковых ячеек, причем каждая из них может содержать один или несколько элементов данных, называемых символами. Алгоритм состоит из отдельных конечных действий, которые называются «шагами». Примерами шагов могут служить опера- ции сложения, умножения, сдвига информации в ЭВМ и т. п. В ис- пользуемых в настоящее время алгоритмах последовательность шагов обычно детерминирована, т. е. после каждого шага алго- ритма определяется номер следующего шага. Детерминированный алгоритм при одних и тех же входных данных выдает одинаковые результаты, а при разных входных данных может менять порядок выполнения шагов. От каждого алгоритма требуется остановка после конечного числа шагов. Для практики представляют интерес алгоритмы, которые завершаются после конечного числа шагов. Обычно различают описание алгоритмов, механизм реализации алгоритмов (в основном для этих целей используется ЭВМ) и про- 42
цесс реализации алгоритмов. Алгоритмы реализуются на ЭВМ в виде программ. Существуют три основных типа универсальных алгоритмичес- ких моделей. В первом понятие алгоритма связывается с вычис- лимыми и числовыми функциями. Во втором алгоритм представ- ляется как некоторое детерминированное устройство, способное выполнять в отдельные моменты времени простейшие операции. В третьем типе — преобразование слов в произвольных алфави- тах. Эти типы близки друг к другу и отличаются эвристическими описаниями определений алгоритма. Одним из эвристических определений алгоритма считают кон- структивно задаваемые соответствия между словами в абстракт- ных алфавитах. Под абстрактным алфавитом обычно понимается конечная со- вокупность объектов, называемых буквами или символами этого алфавита. В качестве символов абстрактных алфавитов могут ис- пользоваться буквы, цифры, знаки и даже слова, в частности сло- ва русского языка. Следовательно, абстрактный алфавит — это конечное множество различных символов, и его можно задать пу- тем перечисления элементов. Примерами алфавитов можно считать: А= {схема, ИМСЗ, 0, 1, 2, а, р, кристалл}, В={—, X}, С={ + , -,0, плата, РЭА} И т. д. Под словом в алфавите понимают любую конечную упорядо- ченную последовательность символов. Например, выражение « + , плата, РЭА» является словом в абстрактном алфавите С. Видно, что термин «слово» является синонимом термину «кортеж» в тео- рии множеств. Число символов в слове называется длиной этого слова. Пустое слово обозначается так же, как и пустое множе- ство 0. Алфавиты бывают входные, выходные и промежуточные. Алфавитным оператором называется функция, которая задает соответствие между словами входного и выходного алфавитов. На- пример, пусть заданы алфавиты X и У: Х={а, Ь, ИМСЗ, + , ИМС1}, Y={c, d, кристалл, ТЭЗ, е, f}. Пусть также заданы слова в алфавитах X и У: «а, &», «&, ИМСЗ, + », «ИМСЗ, ИМС1 , а», «cf d, ТЭЗ», «кристалл, е, f», «d, е, f» и «d, ТЭЗ». Соответствия между этими словами показаны на рис. 2.13. Если х—слово в алфавите X, а у — слово в алфавите У, то алфавитный оператор Хх = у перерабатывает входное слово х в выходное слово у. Алфавитные операторы бывают однозначными и многозначны- ми. В однозначном алфавитном операторе каждому входному сло- ву ставится в соответствие не более одного выходного слова. В многозначном алфавитном операторе каждому входному слову 43
может быть поставлено в соответствие некоторое множество вы- ходных слов. Алфавитный оператор, который не ставит в соответ- ствие входному слову никакого выходного слова (включая пус- тое), не определен на этом слове. Алфавитный оператор, изобра- женный на рис. 2.13, является многозначным, так как входному слову «а, Ь» поставлены в соответствие слова «с, d, ТЭЗ», «d, е, f». Множество слов, на которых алфавитный оператор определен, называется его областью определения. Если область определения Рис. 2.13. 'Пример алфавитного' оператора конечна, то алфавитный оператор может быть представлен табли- цей соответствия, в левой части которой выписываются слова, входящие в область определения, в правой части — слова, полу- чающиеся в результате применения алфавитного оператора к входным словам. Если область определения алфавитного опера- тора бесконечна, то он задается набором правил, которые за ко- нечное число шагов определяют выходное слово, соответствующее словам, на которых он определен. Говорят, что алфавитные опе- раторы (АО), задаваемые с помощью конечной системы правил, называются алгоритмами. Следует различать понятия алгоритма и алфавитного операто- ра. Основное в алфавитном операторе — это соответствие между входными и выходными словами. Основное в (алгоритме — это способ установления соответствия. Алгоритмы равны, если равны соответствующие им АО и сов- падают системы правил, задающих действия этих алгоритмов на входные слова. Алгоритмы эквивалентны, если совпадают их ал- фавитные операторы, но не обязательно совпадают способы зада- ния операторов. Алгоритмы называются детерминированными, ес- ли им соответствуют однозначные АО и любому входному слову соответствует одно выходное слово. Основными свойствами алгоритмов являются массовость, и ре- зультативность. Массовость алгоритма — это его свойство быть применимым для множества входных данных. Результативность алгоритма — это свойство, обеспечивающее получение результата через конечное число шагов. 44
Алгоритм называется случайным, если в системе правил пре- дусматривается возможность случайного выбора слов или правил. Алгоритм называют самоизменяющимся, если он не только пере- рабатывает входные слова, но и сам изменяется в процессе такой переработки. Из определений и описаний алгоритма следует, что он ставит в соответствие входным данным выходные. Следовательно, с каж- дым детерминированным алгоритмом можно однозначно сопоста- вить функцию, которую он вычисляет. Исследования теории алго- ритмов привели к построению и анализу функций, для которых алгоритмы существуют. процедуру, которая прямо или косвенно обращается к себе, называют рекурсивной. Рекурсией называют способ задания функ- ции, когда значение определяемой функции для произвольных зна- чений аргумента выражается известным образом через значения определяемой функции для других значений аргументов. Численные функции, значения которых можно установить на основе некоторого алгоритма, называются вычислимыми функция- ми. Совокупность численных функций, совпадающих с совокупно- стью всех вычислимых функций, называется совокупностью рекур- сивных функций. Существует гипотеза о том, что класс рекурсивных функций тождествен классу всюду определенных вычислимых функций: j Использование рекурсивных функций в теории алгоритмов ос- новано на идеях нумерации слов в произвольном алфавите после- довательными натуральными числами. После нумерации слов в произвольном АО он превращается в функцию y = f(x), где аргу- мент х и функция у принимают неотрицательные целочисленные значения. Такие функции называют арифметическими функциями. Выделим элементарные арифметические функции: тождествен- но равные нулю; тождественные функции, повторяющие значения своих аргументов; функции непосредственного следования типа f (х) =х+ 1. На основе перечисленных функций с помощью конструктивных приемов можно строить все более и более сложные арифметичес- кие функции. Для решения той или иной задачи ее часто разбивают на час- ти, определяют их решения, а затем из них получают решение всей задачи. Этот прием, если применять его рекурсивно, в основ- ном приводит к эффективному решению задачи, подзадачи кото- рой представляют собой менее сложные варианты. Концепции теории алгоритмов были впервые описаны в мате- матических терминах в 30-е годы, когда велись поиски условий,, с помощью которых доказательство математических теорем мо- жет генерироваться автоматически. Британский математик А. М. Тьюринг был одним из пионеров в развитии точной форму- лировки такого процесса. Он описал модель машины, названной его именем, которая позже была построена реально. Машина Тью- ринга состоит из бесконечной в обе стороны ленты с отмеченными 45
квадратами и рабочей (считывающей) головки. Лентц способна к автоматическому перемещению. Машина может выполнять толь- ко четыре действия: движение ленты на один шаг (квадрат); размещение метки в квадрате; стирание метки, представленной в квадрате; конец вычисления. Условная схематическая модель машины показана на рис. 2.14,а. Она состоит из информационной ленты, представляющей Рис. 2.14. Условная схема машины Тьюринга (а), пример ее работы (б) собой бесконечную память машины. В качестве информационной ленты можно использовать магнитную или бумажную ленту, раз- деленную на квадраты (ячейки). В каждой ячейке можно помес- тить один любой символ конечного алфавита А= {а0, alf а2,..., ап}. Считывающая головка способна просматривать содержимое ячеек. Вдоль нее лента перемещается в обе стороны так, чтобы в любой рассматриваемый момент времени головка находилась в одной ячейке ленты. Считывающая головка машины Тьюринга рассмат- ривается как устройство управления, которое в данный момент времени находится в одном из состояний Q={#i, q2, Цп}- Со- стояние устройства управления называют внутренним состоянием машины Тьюринга. Одно из состояний является заключительным и управляет окончанием работы. Машина Тьюринга работает в дискретные моменты времени / = 0, 1, 2, ... В каждый момент вре- мени в одной ячейке ленты может быть записана одна буква из алфавита А. В этот же момент времени считывающая головка в зависимости от содержимого ячейки и своего внутреннего состоя- ния q^Q может: заменить символ в ячейке на новый или оста- вить его прежним, перейти в новое состояние или остаться в преж- нем, сдвинуть ленту на один шаг вправо, влево или оставить ее неподвижной. Следовательно, машина Тьюринга состоит из внут- ренней памяти (конечное множество состояний) и внешней памяти (лента). Данные машины Тьюринга — это слова в алфавите лен- ты. На ленте записывают исходные данные и конечные результа- ты. Последовательность шагов в машине Тьюринга (детерминиро- ванность) определяют путем задания трех условий. Для любого qit dj должны быть однозначно заданы: новое состояние q'i\ новый символ a'j, который необходимо записать вместо в ту же клетку машины; 46
направление сдвига считывающей головки (влево — L, впра- во — R, Е — на месте). Последовательности шагов можно описать таблицей, в строках которой записаны состояния в столбцах—символы а на пересечении строки qi и столбца ставится q'ta'jSk, где Sk — сдвиг головки машины Тьюринга. Задание можно также описать диаграммой либо выражением qia^q'ia'jSk- Работа машины Тьюринга состоит в изменении конфигураций. Конфигурацией машины Тьюринга называется ее полное состоя- ние, по которому можно однозначно определить дальнейшее пове- дение машины. Оно обозначается тройкой а^аг, где си — слово слева от головки, аг — слово, состоящее из символа, просматри- ваемого головкой и расположенного справа. Стандартной началь- ной конфигурацией называется конфигурация вида q^a, где про- сматривается крайний слева символ, записанный на ленте. Стан- дартной заключительной конфигурацией называется выражение вида ^2а. Ко всякой произвольной конфигурации k в машине Тью- ринга применима только одна команда типа qia^q'ia'jSk, кото- рая переводит k в k'. Совокупность всех команд, которые может выполнять машина Тьюринга, называется программой. При решении задач со входны- ми данными сопоставляется начальная конфигурация kQ, а выход- ные данные определяются заключительной конфигурацией, в ко- торую машина Тьюринга переводит kQ. Например, рассмотрим машину Тьюринга, переводящую после- довательность «1, а2, ап в последовательность &2, Ьп, ра- ботающую в конфигурации, показанной на рис. 2.14,6 в соответ- ствии с программой qia^q'ibjSh. Считывающая головка, переме- щая ленту направо в соответствии с программой, будет стирать символы «1, а2, ..., ап и вместо них соответственно записывать вы- ходные символы &i, &2, ..., Ьп. Если потребовать, чтобы при про- смотре клетки ленты с пустым символом машина Тьюринга пере- ходила в заключительное состояние, то после остановки машины на ленте будет выходная последовательность &2, ..., Ьп- Было показано, что на машине Тьюринга можно имитировать все алгоритмические процессы, которые когда-либо описывались математически. Тьюринг показал, что если проблемы не могут быть решены на его машине, то они не могут быть решены ни на какой другой автоматической ЭВМ, т. е. это проблемы, для которых алгоритмы не могут быть составлены даже в принципе. Следовательно, не- возможность построения машины Тьюринга означает отсутствие алгоритма решения данной проблемы. Следует отметить, что речь идет об отсутствии алгоритма, решающего всю данную проблему, что не исключает возможности решения этой проблемы в частных случаях различными для каждого случая методами. Один из основных результатов Тьюринга — разделение всех представляемых в математике проблем на два класса: 47
проблемы, для которых алгоритмы никогда не могут быть на- писаны, т. е. в формальном смысле постоянно нерешаемые; проблемы, которые могут быть решены с помощью алгоритмов. Класс решаемых проблем может быть разделен на два под- класса: подкласс, содержащий только полиномиальные алгоритмы; подкласс, содержащий только экспоненциальные алгоритмы. Функции типа 2П, /гп, /г!., могут рассматриваться, как имеющие одинаковое свойство экспоненциального роста. Функции типа kn, Jm2, kn3, ..., где k — коэффициент, могут рассматриваться как по- линомиальные. Основное отличие полиномиальной функции от экс- поненциальной состоит в том, что п никогда не появляется в экс- поненте. Для достаточно больших п значения экспоненциальной функции догоняют и превышают значения любой полиномиальной функции. Иногда для достаточно малых п значения полиномиаль- ной функции могут превышать значения экспоненциальной функ- ции, но всегда существует величина /г, начиная с которой значе- ния экспоненциальной функции будут превышать значения поли- номиальной функции. Оценку максимального числа элементарных операций, выпол- няемых при работе алгоритма, называют его эффективностью. Ее записывают в виде О(/(^))- По определению O(f,(zz))—это мно- жество всех функций у(п), для которых существует положитель- ная постоянная с и такой номер nQ, что | ^(п) | | для всех п>п0. Тогда полиномиальные алгоритмы могут иметь оценки эффек- тивности О(м), О (/г2), О (n log/г) и т. п. Экспоненциальные алго- ритмы имеют оценки эффективности типа О(2П) или О (/г!). Оцен- ки эффективности (иногда их называют оценками сложности) за- висят от параметра /г, задающего длину исходных данных. Напри- мер, при конструировании электронной аппаратуры в качестве ис- ходных данных может рассматриваться число элементов схемы, .цепей схемы и т. п. Сложность алгоритма характеризуется в основном числом опе- раций N и общим объемом памяти V, необходимой для его реали- зации. С числом операций алгоритма связано время его выполне- ния на конкретной ЭВМ. Следовательно, время реализации алго- ритма есть функция T=\f(N). Отметим, что выполнение различных операций алгоритма требует различного времени. В этой связи для определения сложности алгоритма необходимо знать не толь- ко общее число операций, но и число используемых в алгоритме типов операций и число операций каждого типа в отдельности. На основании анализа алгоритма можно построить множество встречаемости операций в алгоритме y={Qi, Q2, ..., Qn}, где Qi — число операций f-ro типа; п — число типов операций в исследуе- мом классе задач. Умножая время выполнения каждой операции на число этих операций и суммируя результаты по всем операциям, получаем 48
п время реализации алгоритма Т= 2 Qiti, где ti — время реализации i=f i-й операции. Если принять за эталон произвольную простейшую операцию, то можно определить общее число приведенных к ней операций. Для этого надо знать относительные веса различных операций по отношению к эталонной: = где t3— время реализации эта- лонной операции. Тогда общее число условных элементарных операций составит Wэ = t=l а общее время их реализации T3 = N3t3. Объем памяти, которую необходимо зарезервировать в ЭВМ. для реализации алгоритма, определяется как суммарный объем, необходимый для размещения программы, а также входной, про- межуточной и выходной информации: V= Vn + Ки + Vnp + Кв, где Vn — объем памяти для размещения программы; Уи — объем па- мяти для размещения исходной информации Кпр— объем памяти для размещения промежуточной информации; VB — объем памяти для размещения выходной информации; V — общий объем памяти. Тогда обобщенный коэффициент сложности алгоритма Кел — = N3/V. Он характеризуется числом эталонных операций, выпол- няемых при использовании памяти V. По данной методике можно определять сложность алгоритма, если 'известно множество N. Отметим, что, так как время выполнения операций различно, требуется различная память для размещения программы входных, промежуточных и выходных данных. Иногда требуется много опе- ративной памяти (ОП) ЭВМ. Иногда ее без ущерба можно заме- нить другой памятью, например памятью прямого доступа (дис- ки). В некоторых случаях распределением памяти занимается опе- рационная система (ОС) ЭВМ и пользователь (конструктор) не знает, какую память он использует. В этой связи приведенная оценка памяти является приближенной. В настоящее время наиболее перспективными методами оцен- ки сложности алгоритмов при автоматизации конструирования ЭА являются методы, позволяющие оценить алгоритм до его пред- ставления на алгоритмическом языке. Показано, что в практичес- ких задачах (особенно это относится к проектированию и кон- струированию ЭА) алгоритмы, в которых время решения растет экспоненциально как функция размера входов, являются неэффек- тивными. Эффективными считаются полиномиальные алгоритмы. Конечно, даже среди эффективных алгоритмов некоторые реали- зуются быстрее, чем другие. Но эта классификация делает ско- рость решения алгоритма свойствами самого алгоритма независи- мо от ЭВМ, на которой он реализуется. Алгоритмы, которые (используются на практике, можно условно разбить на два класса: детерминированные и недетерминирован- ные. Как рассматривалось выше, детерминированные алгоритмы 49
состоят из операций, результат каждой из которых определен од- нозначно. Если алгоритм содержит операции, результат выполне- ния которых неоднозначен, он относится к классу недетерминиро- ванных алгоритмов. Задачей на допустимость считается задача определения хотя бы одного возможного решения. Задачей на оптимальность счи- тается задача определения допустимого решения, дающего экстре- мум целевой функции рассматриваемой системы. Множество всех задач на допустимость, которые могут быть решены на основе детерминированного алгоритма за полиномиальное время, отно- сится к подклассу полиномиальных алгоритмов и обозначается Р. Подклассом NP называется множество всех задач на допусти- мость, которые могут быть решены с помощью недетерминирован- ного алгоритма также за полиномиальное время. В подкласс NP входят проблемы, всегда решаемые в принципе, но для которых сейчас известны только детерминированные алгоритмы с экспо- ненциальным временем решения. Так как детерминированные ал- горитмы являются частным случаем недетерминированных алго- ритмов, то P^NP. При рассмотрении практических алгоритмов конструирования часто встречается следующее соотношение: если некоторая проб- лема может быть решена эффективно, то и другие проблемы, сво- димые к ней, могут быть ре- шены эффективно. Пусть имеются две задачи кон- струирования ЭА, например компоновка К и трассиров- ка Т. Говорят, что задача К сводится к задаче Г, если задачу К можно решить за полиномиальное время на основе полиномиального де- терминированного алгорит- ма, используемого для ре- шения задачи Т. В последние годы было показано, что некоторое под- Рис. 2.15. Классификация существующих множество проблем в клас- проблем се мр ИМеет замечатель- ное свойство: все проблемы в NP эффективно сводятся к этому подмножеству. Это подмноже- ство проблем в NP называется ААР-полным и обозначается NPC, причем NPC^NP. Тогда если некоторая из проблем в NPC будет иметь эффективный алгоритм, то и каждая проблема в NP может быть решена эффективно. Заметим, что определение такого алго- ритма будет доказательством того, что P = NP. На рис. 2.15 показана одна из возможных классификаций су- ществующих проблем. Примеры построения, разработки и описа- 50
ния алгоритмов Р, NP и NPC будут рассмотрены в дальнейших разделах книги. Рассмотрение практических алгоритмов показывает, что все операции, выполняемые в алгоритмах, распадаются на группу арифметических и группу логических операторов. Арифметические операторы выполняют непосредственное преобразование информа- ции, а логические операторы определяют последовательность вы- полнения арифметических. В этой связи необходимо использова- ние более универсальных логических операторов. Этим требова- ниям удовлетворяют рассматриваемые ниже способы записи алго- ритмов по Ван Хао и Ляпунову. Операторный алгоритм Ван Хао задается последовательностью приказов специального вида. Каждый приказ имеет определенный номер и указания, какую операцию необходимо выполнять над заданным объектом, и приказ, с каким номером следует далее выполнить действие над результатом данной операции. В общем виде приказ запишется так: i: со а Р , где i — номер приказа; со — элементарная операция над объектом; а, р — номера некоторых приказов. Выполнить приказ i над числом х в операторном алгоритме значит найти число со(х) и затем перейти к выполнению послед- него приказа с номером а. Если со(х) не определено, то перейти к выполнению над числом х приказа с номером р. Заключитель- ному состоянию в алгоритме Ван Хао соответствует приказ I: стоп Это означает, что вычисления необходимо остановить. Число, над которым необходимо выполнить этот приказ, есть результат вы- числения. Для описания алгоритмов в форме Ляпунова используют логи- ческие схемы алгоритмов (ЛСА). В ЛСА операторами называются действия алгоритма, перерабатывающие информацию. Их обозна- чают заглавными буквами, например А, В, С, ... Малыми буквами обозначаются проверяемые логические условия. Последовательное выполнение нескольких операторов обозначается в виде произве- дения, причем сомножитель, стоящий справа, действует после со- множителя, стоящего слева. Логическими схемами алгоритмов называются выражения, со- ставленные из операторов и логических условий, следующих один за другим. От каждого логического условия начинается стрелка, которая оканчивается у какого-либо из операторов. Например, Ap^fiB\2p\2C. Здесь знак f2 обозначает начало стрелки, а знак |2 — ее конец. Одинаковыми номерами отмечаются начало и ко- нец одной и той же стрелки. Работа алгоритма начинается с вы- полнения самого левого члена. После того как некоторый член 51
ЛСА выполнится, определяется следующий. Если это был опера- тор, то за ним выполняется тот член ЛСА, который стоит непо- средственно справа от него. Если последний выполнившийся член ЛСА был логическим условием, то возможны два случая. Если проверявшееся условие выполнено, то должен выполняться член, находящийся справа. Если оно нарушено, должен выполняться тот член, к которому ведет стрелка, начинающаяся после данного ус- ловия. Работа алгоритма оканчивается, когда последний из вы- полняющихся операторов содержит указание о прекращении рабо- ты либо на некотором этапе не оказывается члена, который дол- жен был бы выполняться. В ЛСА обычно -выделяют операторы Ао и Ак, символизирующие начало и конец работы алгоритма со- ответственно. Например, в ЛСА A0|2ApifiB\ip2\2CAK получим следующий порядок выполнения операторов: если р1 = 0 и р2 = 0, то АА...А..., т. е. бесконечно будет выпол- няться оператор А; если рх = 0, а р2 = 1, то АС; если pi=l, а р2 = 0, то АВАВ...АВ...-, если pi=\ и р2=1, то последовательно выполняются все три оператора, т. е. АВС и алгоритм заканчивает работу. В общем случае логические схемы алгоритмов Ляпунова удов- летворяют следующим условиям: 1) содержат один начальный и один конечный оператор, соот- ветственно Ао, Ак (перед Ао и после Ак стрелки не ставятся); 2) за каждым логическим условием всегда ставится стрелка,, направленная вверх; 3) не содержат одинаково помеченных стрелок, направленных вниз; 4) для каждой верхней (нижней) стрелки должна быть точно одна нижняя ’(верхняя) стрелка. Пусть алгоритм задан в виде ЛСА следующего вида: Aopif 1А1^1р2^2А2А3^2А4Ак. В данной ЛСА четыре оператора Ai—А4, два логических условия рь р2 и операторы начала Ао и конца Ак. Если в начальном состоянии на вход pi устройства придет сигнал, равный pi= 1, то произойдет переход устройства в новое состоя- ние, в котором выполняется оператор Аь Если pi = 0, то, пропус- кая фхА1ф 1, в ЛСА выходим на логическое условие р2 со стрелкой f2, т. е. если pi = 0 и р2= 1, то устройство Ао переходит в новое состояние с выдачей оператора А2, а если pi = 0 и р2 = 0, то вы- дается оператор А4. После выполнения А2 независимо от значения логических условий выполняется стоящий справа от него опера- тор Аз, затем А4. Для графической записи ЛСА можно использовать язык граф- схем алгоритмов. Граф-схемы алгоритмов (ГСА) удовлетворяют следующим ус- ловиям: имеют конечное число вершин; имеют одну начальную и одну конечную вершины; 52
входы и выходы вершин соединяются друг с другом с помощью стрелок, направленных от входа к выходу; выход соединяется только с одним входом, вход соединяется, по крайней мере, с одним выходом. На рис. 2.16,а показаны вершины граф-схемы алгоритмов: н условных вершинах записываются элементы из ческих условий, в операторной верши- не — оператор. Для рассмотренного выше примера записи устройства с по- мощью логической схемы алгоритмов на рис. 2.16,6 показана граф-схема. Заметим, что один и тот же алго- ритм может быть представлен как дву- мя описанными способами, так и мно- жеством других, а также на любом ал- горитмическом языке. Рассмотрим структурные схемы ал- горитмов. При такой записи алгорит- мов процесс решения задачи расчле- няется на отдельные этапы — блоки. Блоки изображаются графически в ви- де геометрических фигур. Блоку прис- ваивается номер, и внутри него ука- зывается информация, характеризую- щая выполняемые ими функции, кото- рые записываются в виде формул или словесно. Блоки соединяются стрелка- ми, показывающими связи между ни- ми. Если один блок передает управле- ние другим блокам в зависимости от выполнения условий, то на стрелках указывается условие, при ко- тором процесс разветвляется. Блоки бывают двух видов: операто- ры, т. е. блоки, из которых 'выходит одна стрелка, и логические условия, т. е. блоки, из которых выходит несколько стрелок. Кро- ме этого, имеются блок вывода, из которого не выходит ни одной стрелки, и блок ввода, в который не входит ни одна стрелка. При такой записи допускаются комментарии, соединители, распарал- леливание вычислительных процессов и другие операции. Блоки могут описывать элементарные шаги алгоритма и представлять собой части алгоритмов или отдельные алгоритмы. В практических задачах конструирования на интегральных мик- росхемах сложный алгоритм разбивается на блоки, которые раз- рабатывают разные конструкторы, причем разные блоки могут разрабатываться независимо друг от друга. Аналогично с помощью структурных схем можно несколько алгоритмов, рассматриваемых как блоки, объединять в один большой алгоритм. Операция раз- биения алгоритма на блоки называется декомпозицией, а опера- ция соединения алгоритмов — композицией. 53 множества логи- Начальная вершина Условная вершина а) Конечная вершина Операторная вершина Нет 5) Нет 2.16. Вершины граф-схе- алгоритма (а), пример Рис. мы граф-схемы алгоритма (б)
Структурные схемы позволяют различать описание алгоритмов и процесс их реализации. Описание алгоритма — это сама струк- турная схема, а процесс реализации алгоритма — это процесс вы- полнения последовательности операций, задаваемых структурной схемой. Рассмотрим пример 'составления структурной схемы алгоритма. Пусть надо вычислить 50 значений функции z/i = sin(axi)/%i (Xi = l, 2, 50). Структурная схема алгоритма показана на рис. 2.17,а. Поясним блоки 2, 5, 6. Блок 2 задает начальное значение аргумента. Блок 5 изменяет значение аргумента Xi на единицу после каждого выполнения цик- ла. Блок 6 управляет циклом, для чего проверяется условие повторения цикла Рис. 2.17. Структурная схема алго- ритма (а), структурная схема алго- ритма нахождения максимального числа в заданном множестве чи- сел (б) хг->50. При невыполнении этого условия цикл должен повторяться, а при вы- полнении осуществляется переход к следующему по порядку блоку. Построим структурную схему алгоритма нахождения максимального числа в заданном множестве числе. Пусть A={«i, а2, а3, ц4}, «1 = 1, а2=2, ц3=8, ц4 = = 4]А|=п = 4. Структурная -схема алгоритма показана на рис. 2.17,6. Блок 2 задает начальное значение переменной i. Блок 3 присваивает переменной х значение аг (на первом шаге аг = ах). Блок 4 -сравнивает значение переменной i с п. Это необходимо для определения момента окончания алгоритма. Блок 5 осуществляет увеличение переменной i на единицу. Блок 6 сравнивает предыду- щее число at с последующим «г+ь Блок 7 печатает значение найденного мак- симального элемента а3=8 и его номер, блок «Конец» оканчивает процесс. Основные достоинства описанного выше алгоритма следующие: обеспечивается обмен структурными схемами алгоритмов между 54
специалистами; облегчаются чтение и понимание алгоритмов; уменьшается число ошибок при программировании. Следует отметить, что наряду с преимуществами структурные схемы имеют ряд недостатков. Они не содержат информации о данных, о памяти, об используемом наборе элементарных шагов. Вообще говоря, структурная схема — это средство для описания алгоритмов. Следует упонянуть и о часто применяемом «словесном» спо- собе записи алгоритмов. При этом перечисляются блоки алгоритма и в них записываются логические условия. Запишем, например, словесный алгоритм, структурная схема которого показана на рис. 2.17,а. 1°. Ввод исходных данных. 2°. Присвоить х значение 1. 3°. Вычислить y = sina(x)/x. 4°. Напечатать х, у. 5°. Присвоить х значение х+1. 6°. Проверить х>50. Если условие выполняется, то перейти к 7°, если нет, то к 3°. 7°. Конец работы алгоритма. Отметим, что, хотя словесная запись алгоритма не формализо- вана, она используется в интерактивном режиме работы конструк- тора с ЭВМ. Для ускорения процесса перевода алгоритмов задач с языка алгоритмической системы в язык вычислительной машины разра- ботаны специальные алгоритмические языки. Строгая формализа- ция и однозначность описания алгоритмов в алгоритмическом язы- ке позволила автоматизировать процесс его перевода в язык ЭВМ. Для этого машина снабжается транслятором (программирующей программой), который, анализируя описание, сделанное на алго- ритмическом языке, перерабатывает его в программу, состоящую из команд машины. В настоящее время наибольшее распростра- нение получили алгоритмические языки АЛГОЛ, ФОРТРАН, ПЛ/1, КОБОЛ и др. Приведем теперь понятия о расплывчатых алгоритмах. Говорят, что расплывчатый алгоритм — это упорядоченное множество рас- плывчатых инструкций, которые при их реализации позволяют по- лучать приближенное решение проблем. Инструкции в расплывча- тых алгоритмах делят на три группы: 1) назначающие, например, «х—большой» или «х — неболь- шой» или «х— малая степень интеграции» и т. д.; 2) расплывчатые высказывания, например, «если х — не трас- сируется, тогда увеличить размер у», «если х — планарен, тогда стоп»; 3) безусловные активные предложения, например, «немного увеличить х», «перейти к другому блоку». Данные инструкции могут быть расплывчатыми или обычны- ми. Рассмотрим одну из возможных классификаций расплывчатых алгоритмов по областям их применения. Это алгоритмы опреде- 55
ления и идентификации, алгоритмы порождения, бихевиористиче- ские алгоритмы и алгоритмы принятия решений. Расплывчатые алгортмы определения — это конечное множе- ство инструкций, определяющих расплывчатое множество в тер- минах других расплывчатых множеств или дающих метод для оп- ределения степени принадлежности каждого элемента для опре- деляемого множества. Алгоритмы идентификации устанавливают степень принадлежности элементов множеству. Алгоритмы порождения используются для порождения новых, а не для определения данных расплывчатых множеств. Примера- ми таких алгоритмов могут служить алгоритмы сочинения стихов, конструирования ЭВА, разработки технических заданий на РЭА. Расплывчатые алгоритмы, используемые для описания поведе- ния произвольной степени, называются бихевиористическими. Например, пусть у — быстродейст- вие системы, состоящей из двух ЭВМ, а х — быстродействие одной ЭВМ в системе. Тогда можно записать такой алго- ритм: 1°. Если х мало и х незначительно увеличить, то у незначительно увели- чится. 2°. Если х мало и х значительно уве- личить, то у увеличится значительно. 3°. Если х велико и х увеличить зна- чительно, то у увеличится очень зна- чительно. Заметим, что значения расплывча- тых условных предложений в этом ал- горитме можно определить, если даны значения первичных терминов «боль- шой», «маленький» и расплывчатых терминов «незначительно», «значитель- но», «очень значительно». Говорят, что расплывчатый алго- ритм, который служит для получения приближенного описания стратегии и решающего правила, называется рас- плывчатым алгоритмом принятия ре- шений. К нему можно отнести алго- ритм пересечения перекрестка, компо- новку кристалла интегральной микро- схемы и др. Рис. 2.18. Структурная схема расплывчатого алгоритма «Трассировка» Рассмотрим ^пример трассировки кристалла интегральной микросхемы. Структурная схема одного из возможных алгоритмов такого типа показана на рис. 2.18. Ее можно перевести в следующие инструкции: Г. Сделать шаг трассировки. Если не трассируется большое число' цепей, то перейти к Г. 56
2°. Если не трассируется небольшое число цепей, то сделать малый шаг и перейти к 2°. 3°. Если не трассируется очень маленькое число цепей, то сделать очень маленький шаг и перейти к 3°. 4°. Конец работы алгоритма. Следует отметить, что конструктор хорошо оперирует расплывчатыми поня- тиями «большое», «маленькое», «очень маленькое» и с успехом реализует дан- ный алгоритм в интерактивном режиме связи с ЭВМ. При определении степени принадлежности можно формализовать алгоритм и реализовать его на ЭВМ. Очевидна, что операция «сделать шаг» может быть сложным алгоритмом пере- трассировки всего кристалла, или небольшой его области, или простого удале- ния нескольких трасс и т. п. Реальные варианты расплывчатых алгоритмов часто значительно сложнее. Важным в разработке и применении таких алгоритмов является то, что они могут служить эффективным средством распространения и изучения опыта конструктора. Особенно это актуально при конструировании ЭА на интеграль- ных микросхемах в интерактивном режиме. 2.3. ЭЛЕМЕНТЫ ТЕОРИИ ГРАФОВ И ГИПЕРГРАФОВ При изучении связи различных элементов (взаимоотношений людей в коллективе, связей в ЭА, в молекулах и т. п.) для на- глядности упрощения и формализации представления элементы обозначаются точками и соединяются линиями. Такое изображе- ние позволяет определять наиболее существенные связи, находить оптимальное решение задачи, определять ошибки в рассуждениях и т. д. В частности, такие объекты, состоящие из точек и соеди- няющих их линий, оказываются удобными моделями схем РЭА и ЭВА и в этой связи представляют интерес. Считается, что Кёниг первый назвал такие объекты графами и начал их систематическое изучение, хотя отдельные вопросы, относящиеся к теории графов, рассматривались математиками значительно раньше. Теория графов, развитая в трудах Р. Басакера, К. Бержа, А. А. Зыкова, Д. Кёнига, Н. Кристофидеса, А. Кофмана, О. Оре, Ф. Харари и многих других как абстрактная математическая нау- ка оперирует формальными моделями объектов, имеет дело со свойствами графов независимо ют того, какова природа объектов, описываемых графами. Использование аппарата теории графов оказало существенное влияние на разработку алгоритмов конст- рукторского проектирования схем. В книге будут рассмотрены лишь некоторые основные определения, правила, теоремы и по- ложения из общей'теории графов, которые будут представлять интерес в дальнейшем изложении. Понятие графа опирается на понятие множества. Графом обыч- но называется объект, состоящий из двух множеств: множества точек и множества линий, которые находятся между собой в неко- тором отношении. Следует отметить, что в многочисленной лите- ратуре по теории графов встречается большое число описаний и определений графов, которые в общем являются эквивалентными. Будем придерживаться терминологии, которая наиболее часто встречается в литературе по автоматизации конструирования. 57
Множество точек графа обозначается X={xi, х2, ...,xn}, |X|=n, и называется множеством вершин. Множество линий, соединяю- щих некоторые заданные пары вершин (х;, Xj)^X, называется множеством ребер или дуг и обозначается 17={ггь и2, ...,ит}, | U\ — =т. Тогда графом можно считать математический объект, кото- рый обозначается G=(X, U) и состоит из множества вершин и множества ребер или дуг, находящихся между собой в некотором отношении. В общем случае множество U можно представить в виде U = —> о = О U U U [7, где О — подмножество неориентированных ребер или просто подмножество ребер, в котором каждое реб- ро и^О определяется неупорядоченной парой соединяемых им — вершин хь, yi. Записывается ^г=(хь, у/).или щ=\уц х&); U — под- множество дуг или ориентированных ребер (орребер), причем —> каждая дуга u^U определяется упорядоченной парой (кортежем длины 2) соединяемых ею вершин х&, yi. Записывается иг=<Хь, yi> (заметим, что ^=<xfe, у^ и Uj=(yi, xk) — это различные дуги в графе G); U — подмножество петель. Каждая петля Ui<=U может определяться упорядоченной или неупорядоченной парой вершин, например парой вида щ= {хь, х&) или Иг=^, х^. В дальнейшем будем определять петли как неупорядоченные пары и оговаривать их применение в графах. Граф называется смешанным, если множество U включает реб- —> о о ра, дуги и, возможно, петли, т. е. 0=^0/\U=£00\/U=0). На рис. 2.19 показан смешанный граф. Здесь |Х|=5, |£71 =9, U= —> о —> ° = GU 17 U U, G={^3, щ, и7, ид}, U={ui, и2, и8}> t7={^s, и6}. Граф, у которого C7 = C7U С7, а 0 = 0, называется ориентирован- ным или орграфом. Заметим, что в орграфе U может быть пус- тым подмножеством. На рис. 2.20 показан пример орграфа с пет- лями. Очевидно, что подмножество U жество кортежей длины 2. представить как мно- Рис. 2.19. Смешанный граф Рис. 2.20. Орграф с пет- лями 58
Например, для графа на рис. 2.20 U={\X\, х2), *1/, (%2, *з), <х3, Xi), <х4, х2), <*з, х4), <х4, х4), <х2, х2)}. Здесь каждое ребро представляется парой соединяемых вершин, причем первой в кор- теже стоит вершина, из которой выходит дуга, а второй — верши- на, куда дуга входит. Граф, у которого U= О U U, называется неориентированным, или неорграфом. Пример неорграфа с петлями показан на рис. 2.21. Заметим, что в неорграфе U может быть пустым подмножеством. В дальнейшем неорграфы с петлями и без петель будем назы- вать просто графами. Рис. 2.22. Мультиграф Рис. 2.21. Неорграф с пет- лями Граф, у которого существует хотя бы одна пара вершин, соеди- няемых m ребрами u^U, называется мультиграфом (т>1), а максимальное пг — мультичислом графа (т<^М = {2, 3, ...}). Реб- ра, соединяющие одну и ту же пару вершин, называются крат- ными. На рис. 2.22 показан пример мультиграфа. Если ребро Uk^U графа соединяет вершины Xi, Xj^X, т. е. Uk=(X{, Xj), то говорят, что ребро Uk инцидентно вершинам Xi, Xj. Вершины Xi, Xj в этом случае называют инцидентными ребру и^. Любые две вершины Xi, Xj^X графа называются смежными, если существует соединяющее эти вершины ребро u^U, т. е. Uk = = (Xi, Xj). Если два ребра uk, ui<=U инцидентны одной и той же вершине, то они называются смежными. Следовательно, отноше- ния инцидентности и смежности могут иметь место как на множе- стве U, так и на множестве X. Смежность является отношением между элементами одного и того же множества вершин или ребер, а инцидентность — отношением между элементами разных мно- жеств, т. е. множеств ребер и вершин. Основными способами задания графа являются геометрический, аналитический и матричный. Основой геометрического способа задания графа является ри- сунок, дающий изображение графа. Изображение графа в виде рисунка наглядно раскрывает содержательный смысл представ- ляемого объекта. 59
Рассмотрим аналитический способ задания графа. Говорят, что задан граф, если даны множество вершин X, множество ребер U и инцидентор F, определяющий, какую пару вершин (х;, xj)eX соединяет ребро Uk = (%i, xj). Большинство задач автоматизации конструирования схем удоб- но решать при использовании матричного представления графов. Квадратная таблица R=IIg, jlk хп называется матрицей с меж* ности, если ее элементы образуются по правилу '1, если вершина Хг соединена с Xj ц =, ребром, т. е. Хг смежна х/, L0 в противном случае. Заметим, что для мультиграфа q, если вершина Xi соединена с xj q ребрами; О в противном случае. Очевидно, что для неорграфов можно использовать треугольную 2.23 матрица смежности = и Для задания графа матрицу R. Для графа на рис. Xi Хх х2 R = *3 х4 Х5 О 1 О О х2 х3 х4 х5 10 0 1 0 1.01 10 10 0 10 1 10 10 а треугольная матрица R для этого же графа запишется Хд х2 х3 х4 х5 Х1 х2 R — х3 х4 Х5 10 0 1 0 10 1 0 1 0 0 1 0 Строки и столбцы R соответствуют вершинам графа. На пере- сечении f-й строки и /-го столбца ставится элемент n, j, соответст- вующий числу ребер, соединяющих вершины хг и xj. Заметим, что строки и столбцы матрицы R также можно нумеровать числами натурального ряда, соответствующими индексам помеченных вер- шин графа. Петли в графе соответствуют элементам j, располо- женным по главной диагонали матрицы R. Преимущество исполь- зования матриц смежности — это простота выполнения преобра- зований и операций над графами как для конструктора, так и для ЭВМ. 60
Основной недостаток применения матрицы смежности заклю- чается в том, что для ее хранения в ЭВМ требуется память для |Х|2 чисел, даже если она содержит только нулевые элементы. Устранить этот недостаток для разряженных матриц можно пред- ставлением графа в виде списков. Так, списком смежности для вершины Xi является совокупность всех вершин, смежных с Хг. Рис. 2.23. Граф 1(a) и описки смежности для него (6) Тогда граф можно представить с помощью списков смежности его вершин. На рис. 2.23,6 показаны пять списков смежности — по од- ному для каждой вершины графа на рис. 2.23,а. Представление графа в виде списков смежности требует памяти ЭВМ порядка О (| X | н-1 U |). В основном таким представлением графа пользуют- ся, когда | U | | X |. Прямоугольная таблица вида 1= \\ik, zllnxm называется матри- цей инцидентности, если ее элементы образуются по правилу ( 1, если вершина хк инцидентна ребру tk, i= { I 0 в противном случае. Матрица инцидентности для графа, изображенного на рис. 2.23, примет вид и* Uq 0 0 0 0 1 = %2 Х3 х4 Х5 1 1 О О О 1 о о о 1 110 0 0 110 0 0 11 10 0 1 Строки матрицы 1 соответствуют вершинам графа, столбцы — ребрам, а элемент ik,i указывает на инцидентность вершины Xk и ребра tii. В каждом столбце матрицы I не более двух единиц, так как каждое ребро соединяет ровно две вершины. При наличии в графе петель соответствующие им столбцы в матрице 1 будут иметь по одной единице, так как петля инцидентна только одной вершине графа. 61
Матрицы R и I однозначно дают информацию о графе. Суще- ствуют простые способы перехода от одной матрицы к другой. При переходе от матрицы I к матрице R теряется нумерация ребер. Рассмотрим алгоритм перехода от I к R на примере графа, изоб- раженного на рис. 2.23. Просматривается первый столбец I. Он содержит единицы в строках х2. Следовательно, в матрице R ставится элемент ri,2-=l. Просматривая второй, третий, четвертый, пятый и шестой столбцы матрицы I, получаем единичные элементы матрицы R: ri,5= 1; r2,5= 1; г2,з = 1; г3,4= 1; 45=1. При переходе от матрицы R к I необходимо предварительно пронумеровать r^j соответствующими значениями ребер Uh^U. Определим смежностный (двойственный) граф GS='(G, V) для графа G=(X, U) и построим его матрицу смежности. Вершинами Gs являются ребра G, а ребрами — пары (щ, щ), причем ребро Vk= (Щ, щ) соединяет вершины щ графа Gs, если ребра ut, щ в графе G смежны. Для построения Gs по графу G на каждом реб- ре UiEBU графа G выбирают точку и считают ее вершиной Ui<=U графа Gs. Затем пару щ соединяют ребром v=(Ui, Uj), если ребра щ, щ имеют общую вершину в G. Для графа G на рис. 2.24,а двойственный ему граф Gs изображен на рис. 2.24,6. а) Рис. 2.24. Граф G (а) и двойственный ему граф Gs (б) Следует отметить, что существуют различного рода матрицы и списки, производные от R и I, которые используются при записи алгоритмов конструирования схем. Граф называется конечным, если конечны множества его вер- шин и ребер. Далее будем рассматривать только конечные графы, так как схемы ЭА, представляемые графами, состоят из конечного числа элементов. Граф, у которого Х^=0 и С7 = 0, называется нулъ-графом, а вершины его называются изолированными. Нуль-граф обозначает- ся через Go. Граф G=i(X, U), |Х| =/г, называется полным, если между лю- бой парой вершин xit Xj^X имеется ребро u^U. Полный граф обозначается через Ап. 62
Число ребер, инцидентных вершине х^Х графа, называется ло- кальной степенью вершины и обозначается р(х;). Тогда число ре- бер графа G = (Xr U) без петель с | X| = n, | U\ =ш равно Заметим, что если в графе имеются петли, то для определения локальных степеней вершин каждая из них должна считаться дважды. Так как для полного графа с п вершинами р (%i) = р(х2) = = р(хп)=п—1, то в Лп пг = п(п—1)/2. Заметим, что в графе каждое ребро соединяет две вершины, и, следовательно, число вершин нечетной степени четно. Графы, у которых все вершины имеют одинаковую локальную степень, называются регулярными. Регулярные графы степени 3 называются кубическими. Число ребер регулярного графа с ло- кальной степенью г равно m = nrl2. Подграфом графа G называется граф, у которого все вершины и инцидентные им ребра принадлежат G, т. е. G'= (Л7, U') есть подграф графа G=(X, G), если Х'<=Х, U'^U и ребра G' инци- дентны только вершинам из X'. Удаление из графа G вершины Хг со всеми инцидентными ей ребрами приводит к подграфу G'= = G—х^ Существует гипотеза, что набор подграфов G—Xi несет полную информацию о графе. На рис. 2.25 показаны граф G=(X, U) и два его подграфа G1==(*b 1Л) и G2=(X2, G2); \Х\ =6, I U\ =8, X={xb x, ..., xQ}> U={uif u2, ..., u8}; |Xx| =3, | 3, Xi={xb x2, x*}, Gi = {ub u7f u6}; |A^|=4, I U21 =4, X2 = {x2, x3, x$, x6}> U2={u2, u3, u±, u8}. Заметим, что подграф Gi можно получить, удалив из G вершины х3, х5, х6. Суграфом G'=(X', U') графа G=\X, U) называется граф, для которого Х'=Х, U'^U (рис. 2.25,г). Граф G называется дополнением графа G до полного, если мно- жество его ребер состоит из ребер полного графа Лп, не принад- лежащих G: G=(X, U), U=Uk\U, КП= (X, Gfe) (рис. 2.25,д). Маршрутом в графе называется некоторая конечная последова- тельность ребер вида s=i(x0, *i), (xi, х2), ..., (х/_ь xi), где х0, Xi— соответственно его начальная и конечная вершины. Число ребер в марштуре s называется его длиной. Существует простой способ определения маршрутов длины q по матрице R графа G путем 63
возведения ее в q-ю степень. Например, пусть задана матрица R графа, изображенного на рис. 2.26: 12 3 4 1 2 * = 3 4 О 1 1 О 1 О О 1 1 О О 1 О 1 1 О Возведем ее в квадрат: 12 3 4 1 R2 —2 R “3 4 2 О О 2 0 0 2 2 2 0 2 2 0 0 0 2 Каждый Gj-элемент R2 равен числу маршрутов длины 2, ведущих из вершины Xi в Xj. Например, r3j2 = 2, означает, что в графе два маршрута длины 2: $i=(x3, *1), (*ь *2) и s2=(x3, х4), (х4, х2). Рис. 2.25. Граф G=i(X, U) (а), его подграфы Gi = G— {х3, х5, х6} (б) и G2=G—{xi, х4} (в), суграф G' (г) и дополнение G до полного KQ (д) Возведение матрицы в степень производится умножением матри- цы на себя по правилу умножения матриц. Для определения эле- мента ri} j матрицы R2 производится поэлементное перемножение i-й строки на столбец матрицы / и полученные результаты скла- 64
дываются. Например, элемент г3,3 матрицы R2 определится Гз,з — = ^1,3'^3,1 +'^2,3^ 3,2 + Г 3,3^ 3,3 + Г 4,3^3,4==,2. Для определения маршрутов длины 3 определим матрицу R3 умножением матрицы R2 на R: 1 2 3 4 4 О О 4 О 4 4 О Например, показывает, элемент матрицы R3 /4,2 = 4 Рис. 2.26. Граф что существуют четыре маршрута длины 3, ведущие из вершины Х\ в х2 (см. рис. 2.26): si= (хь х2) (*2, *1) (*ь х2); s2= (хь х3) (*з, х±) (х4, *2); s3 = = 'U1, х2) (х2, х4) (*4, Xz) \ s4= (ХЬ Х3) (Х3, Х1) (Х1, х2). Маршрут, в котором нет повторяющихся ребер, называется цепью. Замкнутая цепь, в которой х0 = х/, называется циклом. Со- ответственно цепи и циклы называются простыми, если они не со- держат повторяющихся вершин, кроме, разумеется, первой и пос- ледней в случае цикла. На рис. 2.25,а в графе G Si=(xb х2), (х2, х3), (х3, х5), (*5, *2), (х2, Xi), (xb х4) — маршрут; s2= (хь х2), (х2, х3), (х3, х5), (х5> х6) — цепь; S3=(*5, х2), (х2, х4), (х4, xj, (хь х2), (х2, х3), (х3, х5) — цикл; s4= (хь х2), (х2, х3), (х3, х5), (х5, х6) — простая цепь; $5=(*ь х2), (х2, х3), (х3, х5), (х5, х6), (Х6л х4), (х4, Х1) — простой цикл. Две произвольные вершины xb Xj^X графа называются связ- ными, если существует маршрут s, в котором вершины Xi, Xj будут концевыми. Граф называется связным, если любые две его верши- ны связаны. В противном случае граф не связан, а каждый из со- ставляющих его связных подграфов Gb G2, ..., Gi называется ком- понентой связности. Из определения связности следует: в связном графе вершина Xi связана сама с собой; если Xi связана с xj, то Xj связана с х$, если хг- связана с Xj, a xj связана с х&, то и Xi свя- зана с Xk (xb xj, Xk^X). Тогда отношение связности является от- ношением эквивалентности. В этом случае множество вершин X графа G=(X, U), который моделирует схему, можно разбить на непересекающиеся классы Xi, причем ребра графа будут соеди- нять только вершины внутри этих классов. Таким образом полу- чим разбиение графа G на связные подграфы (компоненты связно- сти) G= U Gi. Например, графы, изображенные на рис. 2.24—2.26, г=1 связные, а граф на рис. 2.27 состоит из трех компонент связности Gi, G2, G3, т. е. не связан. Заметим, что связный граф состоит из единственной компоненты связности. Если граф имеет несколько 3—1144 65
компонент связности, то он не связан, так как вершины из разных компонент связности нельзя соединить маршрутом. При конструировании часто надо знать, какое наименьшее число связей необходимо удалить из схемы, чтобы она перестала быть связной. Одной из характеристик связных графов является число ребер в графе с п вершинами и заданным числом k компонент связно- сти. Оно удовлетворяет неравенству п—k^zrn^ (п—k) (п—& +1)/2. Из неравенства следует, что граф с п вершинами и более чем (п—1) (я—2)/2 ребрами связан. Пусть задан связный граф О=(Х, U). Подмножество U'^U называется разделяющим, если после его удаления граф становит- ся несвязным. Заметим, что разделяющее подмножество в графе всегда существует. Триви- альным разделяющим подмножеством G являет- ся U'=U. Если разделя- ющее множество состоит из одного ребра u^U, то щ называется перешейком ИЛИ мостом. При решении задач ав- томатизации конструиро- вания ЭА важное значе- ние имеют графы специ- ального вида — эйлеровы и гамильтоновы. Связный граф G=(X, U) называется эйлеровым, если сущест- вует замкнутая цепь (т. е. цикл), проходящая через каждое его ребро только 1 раз. Граф называется полуэйлеровым, если суще- ствует незамкнутая цепь, проходящая через каждое ребро графа только 1 раз. На рис. 2.28—2.30 показаны неэйлеров, полуэйлеров и эйлеров графы. Порядок обхода графов (см. рис. 2.29, 2.30) по- казан стрелками. Известно условие существования эйлерового цикла: конечный G является эйлеровым, если он связен и все его локальные степени четны. Например, граф G на рис. 2.24,а не яв- ляется эйлеровым, так как степени всех его вершин нечетны. Граф G на рис. 2.27 также не является эйлеровым, так как он не связен. Обозначается эйлеров цикл Зэ. Так, для графа на рис. 2.30 S3=l = (*7, Х2) (Х2, Х4) (*4, *б) (Х6, Х3) (*3, *б) (*5, Xi) (%4, %з) (*3, *1) (*1, Х$) (х5, Х2) \х2, Х1) (%1, Х7) . Заметим, что связный граф является полуэйлеровым, когда в нем не более двух вершин имеют нечетные локальные степе- ни, причем одна из этих вершин будет начальной, а другая — конечной вершиной цепи. Запишем идею алгоритма Флери построения эйлеровой цепи в эйлеровом графе. Пусть G — эй- 66
леров граф. Тогда необходимо выйти из произвольной вершины и проходить по ребрам G соблюдая правила: стирать ребра по мере их прохождения и стирать образую- щиеся изолированные вершины; по мосту можно проходить только тогда, когда нет других возможностей. Рис. 2.29. Полуэйлеров граф Рис. 2.30. Эйлеров граф? Цикл, проходящий по всем вершинам графа G 1 раз, назы- вается гамильтоновым, a G называется гамильтоновым графом. Например, граф на рис. 2.25,д не имеет гамильтонова цикла, а граф на рис. 2.30 имеет. В отличие от эйлерового цикла, для гамильтонова цикла не- известен общий критерий существования. Известны только тео- ремы, дающие достаточные условия существования или отсут- ствия гамильтонова цикла. Теорема 2.1. Если в графе с п (п^З) вершинами для любой пары несмежных вершин Хг, Xj р(%г) + p(xj) ^п, то граф имеет гамильтонов цикл. Теорема 2.2. В графе без гамильтонова цикла длина его наи- больших простых цепей удовлетворяет неравенству Z^p(xHi) + + р(*н2), где р(%н1) и р(хН2)—две наименьшие локальные сте- пени графа. Введем понятие жордановой кривой и приведем один из ва- риантов теоремы Жордана. Жордановой кривой на плоскости называется непрерывная кривая, не имеющая самопересечений. Соответственно замкнутой жордановой кривой называется жор- данова кривая, начало и конец которой совпадают. Теорема 2.3 (Жордана). Если Z — замкнутая жорданова кри- вая, a Xi, Xj две различные точки, расположенные на ней, то лю- бая жорданова кривая, соединяющая Хг и Xj, должна лежать це->- 3* 67
ликом внутри £>, или вне S? (за исключением точек хг-, х;), или пересекать 2? в некоторой точке, отличной от хг-, Xj. Если вершины графа G= (X, U) расположить на плоскости так, чтобы гамильтонов цикл представлял собой самонепересекающую- ся замкнутую кривую, то гамильтонов цикл разделит плоскость на две области — внутреннюю и внешнюю. Естественно, что внут- ренняя и внешняя области взаимно обратимы. 'Вообще говоря, сог- ласно теореме Жордана любой простой цикл, расположенный на плоскости, разбивает ее на внешнюю и внутреннюю области, при- чем если имеются две вершины: Xj, расположенная во внешней «области, и Xi, расположенная во внутренней области, — то соеди- нить их ребром без пересечения ребер цикла невозможно (рис. 2.31). При этом ребру (хг-, Xj) не разрешается проходить через любую вершину цикла. Здесь и далее под пересечением понимает- ся соединение двух ребер графа в точке, не соответствующей ни- какой вершине. Рис. 2.32. Гамильтонов псевдо- цикл Если множество вершин графа G=(X, U) расположить на са- монепересекающейся кривой, ребра, соединяющие близлежащие друг к другу вершины графа, образуют гамильтонов псевдоцикл, содержащий как ребра Ui<=U, так и фиктивные ребра щ<=и, ко- торые на самом деле отсутствуют. Например, гамильтонов псевдо- цикл показан на 2.32. Здесь $Гпц = Х1, Хг, Хз, х4, x$, х$, х7, х8, Xi, его ребра (xi, Хг), ^з= (хз, х4_), и$= (х$, х6), и7= (х7, х8), а фиктив- ными ребрами являются йг, й4, ^6, ^8. Очевидно, что полный граф всегда содержит гамильтонов цикл. Связный граф без циклов называется деревом и обозначается Т=(Х, /7), |Х|=п. Любое дерево Т имеет п— 1 ребро. Рассматри- вают корневые и некорневые деревья. Начальная вершина, т. е. вершина с наименьшим номером, называется корнем, из которого выходят ребра, называемые ветвями дерева. Очевидно, что в де- реве любые две вершины Xi, Xj связаны единственной цепью и в любом связном графе G можно выделить некоторое дерёво Т. Для задач конструирования наибольший интерес представляют де- ревья, у которых число вершин равно числу вершин графа, из ко- 68
торого выделено это дерево. Такие деревья называются покрыва- ющими. Для одного и того же связного графа можно выделить не- которое множество покрывающих деревьев. Теорема 2.4. Число t покрывающих деревьев в полном графе Кп составляет t=nn~2. Множество деревьев называется лесом. На рис. 2.33 показан лес, состоящий из трех деревьев: 7\, Т2 и Т3. Рис. 2.33. Лес, состоящий из трех деревьев: Ть Т2, Т3 Задачи выделения эйлеровых и гамильтоновых циклов и по- крывающих деревьев связаны с задачами о лабиринте, коммивоя- жере и с построением деревьев минимальной стоимости. Задача о лабиринте в терминах теории графов формулируется как задача отыскания в связном графе G= (X, U) маршрута с наи- меньшим числом ребер, который начинается в заданной вершине Хг^Х И Приводит В ИСКОМУЮ ВерШИНу Xj^x. Рассмотрим метод Тремо решения задачи о лабиринте. От вер- шины Xi необходимо перейти ко всем вершинам, находящимся на расстоянии один. Каждое ребро щ=(хь xi) помечается 1 раз, ког- да оно смежно вершинам Xi и xi. В вершине Xi это ребро поме- чается как «открытое». Если окажется, что нет больше ребер, ин- цидентных xz, кроме щ, то, вернувшись в хг-, ребро щ помечается как «закрытое». Если некоторое другое ребро г/г=(хг-, xi) также ведет из Xi в xz, то оно также помечается как закрытое. Очевидно, если вершина Xj расположена на расстоянии одного ребра, то она будет найдена таким просмотром. Для попадания в вершины, ле- жащие от Xi на расстоянии два, берется открытое ребро и= (Хг, Xz) и снова помечается. В xz открытые ребра проходятся и помеча- ются как закрытые, если они ведут к уже пройденным вершинам. После просмотра всех ребер происходит возврат в Xi из хг по ра- нее отмеченному входящему ребру. Если не осталось ребер, от- крытых в xz, то это открытое ребро закрывается в х^ После воз- вращения в Xi аналогичная операция повторяется для других от- крытых ребер и процесс продолжается, пока все ребра в Xi не будут помечены дважды. Если искомая вершина xj расположена на расстоянии п, то цри ее достижении все открытые ребра в X; будут помечены п раз, открытые ребра в любой вершине Xz будут 69
помечены п—1 раз и т. д. Такой процесс поиска последовательно покрывает все вершины графа и всегда находит выход из лаби- ринта. Пусть нам необходимо проложить сеть проводов, связывающих п блоков вычислительной аппаратуры, причем так, чтобы из одно- го блока можно было связаться с любым другим. Если из эконо- мических соображений требуется, чтобы количество затраченного провода было минимально, то граф, вершины которого соответст- вуют блокам, а ребра — соединяющим их проводам, должен быть деревом. Задача состоит в определении одного из пп~2 возможных деревьев с минимизацией суммарной длины ребер (проводов). На языке теории графов эту задачу можно сформулировать следую- щим образом. Пусть G=(X, U)—связный граф, каждому ребру которого Ui^U ставится в соответствие некоторое неотрицательное число v(w), называемое его мерой (весом). Необходимо найти ал- горитм построения покрывающего дерева Г, у которого сумма мер, взятая по всем ребрам, 2v(«i) =min. 1=1 Приведем алгоритм Краскала решения данной за- дачи. 1°. В связном графе G=(X, [/), |X|=/z, определяется ребро с наименьшей мерой v(z/i). 2°. Строится по индукции последовательность ребер и2, и3,..., ип_ь причем на каждом шаге выбирается ребро, не совпадающее с пре- дыдущим, обладающее наименьшей мерой и не образующее цик- лов с предыдущими ребрами 3°. Получается подграф Т графа G с ребрами ..., un-i, кото- рый и является искомым деревом с наименьшей суммой мер. Рассмотрим основные понятия метрики графов. Метрика графа основана на понятии расстояния. Назовем расстоя- нием d(Xi, (для простоты будем также использовать обозна- чение di, j) между вершинами Xi, Xj^X графа G=(X, U) длину кратчайшей цепи, соединяющей эти вершины. Под длиной цепи понимается число входящих в нее ребер. Функция d(Xi, Xj), опре- деленная на множестве ребер графа G, называется метрикой гра- фа. Определенная метрика удовлетворяет следующим аксиомам Фреше: V xif Xj^X\[d(Xi, Xj) ^0]; V xif Xj^X[d (Xi, Xj) = 0 ♦♦ Xi = Xj]; Vxi, x;eX[d(Xi, Xj)=d(Xj, Xi)]; V xb Xj, xk^X[d(Xi, Xj)+d(Xj, xk)^d(Xi, x&)]. Очевидно, что для нахождения метрики графа G достаточно знать его матрицу смежности. Функцию расстояний для графа G удобно задавать матрицей расстояний D = ||di, j||n или ее списком при большой разреженности 70
матрицы D. Элемент матрицы D определяется следующим обра- зом: _ [О, если Xi = Xj; 13 \di, j, если Xi^Xj. Если принять, что для графа на рис. 2.26 di,2=t/2,i = ^i,3 = ^3,i = = б/2,4=4/4,2=^з.4 = ^4,з= 1, то матрица расстояний имеет вид 1 2 3 4 1 О 1 1 2 2 3 4 1 1 2 О 2 1 2 0 1 1 1 О Список расстояний можно записать в виде множества, состоя- щего из кортежей длины 3: D= {<^1, 2, 1), <Д, 3, 1), <1, 4, 2), (2, 3, 2), <2, 4, р, <^3, 4, 1)}. Первый элемент в кортеже соответствует х,— вершине графа, второй элемент — Xj также вершине, а третий эле- мент кортежа соответствует расстоянию d,, j. Диаметр графа d(G) определяется как максимальное расстоя- ние между его вершинами: d(G) = maxdi, j х/, Xj^X. Для задач конструирования представляет интерес нахождение расстояний для графов Gr частного вида, называемых координат- ной сеткой. Введем декартову систе- (I му координат с осями s и t, в кото- JL рой расположим граф Gr. В графе 2Q7)-------Q0 \*з) Gr= (Xr, Uг) множество вершин Хг ] | | соответствует узлам сетки, а множе- 1 JL Jl ство ребер Ur — горизонтальным и /(ху-------w)-------(&) вертикальным отрезкам, соединяю- I I щим Узлы сетки- Пример коорди- [II натной сетки, т. е. графа Gr, пока- /у\______/TV_____э. зан на рис. 2.34. Очевидно, что граф s Gr удовлетворяет аксиомам Фреше. д. Расстояние между двумя смеж- ными вершинами в Gr, называе- Рис. 2.34. Граф Gr — координатная сетка 1(a), граф (б) и его отображение в сетке Gr (в\ 71
мое шагом сетки, обычно принимается равным единице. Расстоя- ние di,j между двумя произвольными вершинами в Gr можно определить по формуле dj,j=\Si—sj + pi—tj\, где Si, Sj и tj — координаты вершин Xj, Xj(=Gr в сетке Gr с координатными осями s и А Обычно задаются размеры сетки pXq, где р число узлов сет- ки по оси s, a q — по оси t. Например, для графа Gr на рис. 2.34, а расстояние dQi 9=|$6— -S9I + Ив—*91 = 10—21 + 11—01 =3. Расстояние di, j, определенное таким образом, называют ман- хеттоновым расстоянием. Иногда расстояние di} j определяют как длину кратчайшей прямой, соединяющей вершины х^ Xj, тогда di,j= ]/|5—sj|2+|^—/j|2. Для рассмотренного примера dQ} 9= р^5~2,24. Заметим, что в первом случае использовать dt, j проще, так как при этом оно принимает только целочисленные значения. Любой граф G может быть отображен в сетку Gr. Для 0 = = (X U) при этом |Х?Г |>|*g| и каждым двум вершинам G соответствуют разные вершины Gr. Для подсчета суммарной дли- ны L(G) ребер графа G=(X, U), отображенного в сетку Gr, вве- дем понятие матрицы геометрии Dv. Матрица геометрии D? графа G представляет собой часть матрицы расстояний D графа Gr, в которой исключены элементы d^ j, если вершины xif х^Х не смежны в графе О. Элемент d^i =4°’ еслИ ri>j= 1,3 ldi}j, если rifj=£0. Для построения матрицы геометрии Dv графа G необходимо каждый элемент матрицы D умножить на соответствующий эле- мент матрицы смежности R, т. е. Dv =\\ri, jdi, j\\n. Например, на рис. 2.34,6 показан граф, а на рис. 2.34, в его отображение в сетку Gr размером 3X2. Матрицы R графа G и D графа Gr (рис. 2.34) примут вид 1 2 R-3 R—4 5 6 1 О 1 1 О О 1 2 3 4 1 1 О О 1 1 1 О О 1 О О О 1 1 О 0 1 5 6 О 1 О О J О 1 1 О О О О 1 2 °= 4 5 6 1 О 1 1 2 2 3 2 1 О 2 1 3 2 3 4 1 2 2 1 О 1 1 О 1 2 2 1 5 6 2 3 3 2 1 2 2 1 О 1 1 О Тогда можно определить матрицу, геометрии Dv = R®D. Здесь ® — знак поэлементного умножения матриц; 72
1 2 0,^ 5 6 О 1 1 О О 3 2 1 О 2 1 О О 3 4 5 1 О О 2 1 О О 0 1 0 0 2 1 2 О О 1 О 3 О О 1 О О 5 4 4 4 3 4 6 S Сумма элементов матрицы Dv определяет удвоенную суммарную длину ребер графа в G при данном отображении его в сетку Gr. Для рассмотренного примера суммарная длина ребер графа 1(G) составляет 12 усл. ед. При другом отображении'графа в сетку суммарная длина ре- бер L(G) изменяется, хотя в частном случае может совпадать с предыдущей. Заметим, что изучение свойств графов и оптимизация в алго- ритмах конструирования упрощаются при использовании таких числовых инвариантных характеристик графа, как числа цикло- матическое, хроматическое, внутренней и внешней устойчивости удалять для и др. Наименьшее число ребер, которое необходимо удалить из гра- фа G, чтобы он стал ациклическим (деревом или лесом, если G состоит из нескольких компонент связности}, называется цикло- матическим числом графа. Для графа G= (X, U), |Х| =п, | U| = ш, цикломатическое число y(G)=m—/г+£, где k — число компонент связности графа. Очевидно, для графа, состоящего из одной ком- поненты связности, y(G)=m—/г+1. Например, для графа G на рис. 2.34,6, y(G)=8—6+1 = 3, т. е. после удаления трех опреде- ленных ребер он становится деревом. В примере это могут быть ребра (%1, х2), (*2, *4), (х4, х6). Тогда полу- чим дерево Т (рис. 2.35). Заметим, что формула определения дип- ломатического числа графа верна для ор- графов и мультиграфов. Из определения y(G) следует, что оно может быть только положительным или равным нулю. Граф (мультиграф) не имеет циклов тогда и только тогда, когда y(G)=O. Очевидно, что граф (мультиграф) имеет единственный цикл тогда и только тогда, когда y(G) = l. Чтобы узнать, какие конкретно ребра устранения циклов, необходимо каждый раз удалять ребро, ко- торое разрушает хотя бы один цикл. Раскраской вершин графа называется разбиение множества вершин графа на I непересекающихся классов (подмножеств) нужно Xi, Х2, ..., Хц Х= U Х$\ Xi П Xj = {1, 2, ..., 1}, j, i=l 73
таких, что внутри каждого подмножества Хг не должно содер- жаться смежных вершин. Если каждому подмножеству Xi поста- вить в соответствие определенный цвет, то вершины внутри этого подмножества к^ожно окрасить в один цвет, вершины другого под- множества Xj — в другой цвет и так далее до раскраски всех подмножеств, причем раскраска выполняется таким образом, что смежные вершины окрашиваются в разные цвета. В этом случае граф называется /-раскрашиваемым. Наименьшее число подмно- жеств, на которое разбивается граф при раскраске, называется хроматическим числом K(G). Очевидно, что полный граф Кп можно раскрасить только п цветами, следовательно, К(Лп)=л. Для связного графа G=(X, U) с (п——1)/2 верхняя оценка хроматического числа К (G) = 1/9 (т — n) J, Нижней оценкой K(G) является число вершин в наибольшем полном подграфе графа G. Хроматическое число обычно определяют аналитически с по- мощью методов линейного программирования (подробнее см. § 2.4). Пусть задан граф G = (X, U), |Х| = п, |G|=m, в виде мат- рицы инцидентности /= lloullnx т- Рассмотрим один из возмож- ных методов определения g = K(G). Будем считать, что ( 1, если вершина xj окрашена цветом р(р=1, 2, ..., q)\ ы,р- а ( 0 в противном случае. Тогда можно составить следующую систему линейных соотно- шений: 2gj,P=l, /=1, 2, ..., п; (2.1) p=i /=1, 2, ..., т; (2.2) /г=1 р=1, 2, ..., q, (2.3) Соотношение (2.1) говорит о том, что каждая вершина окра- шена только одним цветом из множества всех цветов, система неравенств (2.2), (2.3) — что любые две смежные вершины гра- фа не должны быть окрашены одним цветом. Проверим это. На- пример, если бы вершины ха и хъ, образующие ребро ис, были окрашены одним цветом, тогда Р=1, /а,с=1; %ь, P=l, ib,c= 1 и п сумма S ik, cl,kd=ia,c^a, p + ib, с^ъ, р=2, что противоречит неравен- 1 ству (2.2). Следовательно, первые и вторые уравнения показыва- ют, что каждому способу раскраски вершин графа q цветами при обязательном условии разноцветности смежных вершин соот- ветствует система целых чисел р, удовлетворяющих условиям (2.1) — (2.3), и, наоборот, каждому целочисленному решению си- 74
гстемы (2.1) — (2.3) соответствует один из способов раскраски. ^Наименьшее q, для которого система (2.1) — (2.3) имеет целочис- ленное решение, будет искомым хроматическим числом графа. Важное практическое применение имеют частный вид /-раскра- шиваемых графов, 2-раскрашиваемые или двудольные (дихрома- тические) графы. Обозначается двудольный граф 0п1,п2=(^ь Х2, U), причем XiUX2=X Х1ПХ2=0, а ребра U соединяют только под- множества Xi и Х2 между собой. На рис. 2.36 показан пример двудольного графа “Gni,n2= (Xb Х2, U), |Л\ |=fti = 3, |Х2| =п2 = 2, Х1 = {хь х2, х3}, Х2 = {•^4, -^б} • Граф Лп1,п2 называется полным двудольным графом, если лю- бая вершина Xi^Xi смежна каждой вершине Xj^X2 • На- пример, при добавлении к графу Gn\tn2 на рис. 2.36 ребра (х3, х4) . он становится полным двудольным графом. Рис. 2.36. Двудольный граф' Gni ri2 = (Xi, Х2, U) Очевидно, что в графе Gnl>n2 = (Xb Х2, U) подмножество Х{ можно раскрасить одним цветом, а подмножество Х2 — другим. Число ребер m полного двудольного графа определяется выраже- нием т = П]П2. При разработке алгоритмов компоновки, размещения и трасси- ровки схем часто возникает необходимость определения двудольно- сти некоторого графа или выделения в этом графе, если он недву- долен, максимальных непересекающихся двудольных частей. Теорема 2.5. Граф Gni, п2 является двудольным тогда и только тогда, когда он не имеет простых циклов нечетной длины. Рассмотрим теперь число внутренней устойчивости. Если в гра- фе G=(X G) две любые вершины подмножества Х'^Х не смеж- ны, то оно называется внутренне устойчивым. Подмножество ^Х графа G=(X, G) называется максимальным внутренне устой- чивым или независимым, если добавление »к нему любой вершины xt<=X делает его не внутренне устойчивым. Подмножество бу- дет независимым, если V Xi^y¥i(rxi(V¥i = 0). Независимые под- - 75
множества различаются по числу входящих в них элементов. В произвольном графе G можно выделить семейство всех независи- мых подмножеств вида Чг={ф1, ф2, фв}. Независимые подмно- жества, содержащие наибольшее число элементов, называются предельными. Тогда число внутренней устойчивости т)(О) опреде- ляется мощностью предельного независимого подмножества т) (G) = |ша1хфг|. ф.ечг Число внутренней устойчивости т](О) можно связать с хрома- тическим числом K(G) следующим образом: т](G)K(G) Рассмотрим вопросы построения семейства независимых под- множеств на основе матрицы смежности графа или ее списка. Идея алгоритма построения семейства Чг={фь фг, ф/} за- ключается в следующем. В матрице смежности R графа опреде- ляется строка, имеющая наибольшее число ненулевых элементов. Если таких строк несколько, то выбирается любая. Для опреде- ленной таким образом строки i записывается выражение = = (XiVxftAx&A ... Axg). Здесь Xi — вершина графа, соответствую- щая выделенной строке г, а х&, Хъ, ...» xq — вершины, смежные Xi- Далее в R исключается строка i, а также элементы с индексом i из всех оставшихся строк списка. Указанная операция соответству- ет выделению из графа G звездного подграфа с вершиной х^ В R снова определяется строка j с наибольшим числом элементов й записывается выражение (xjVxzAxrA ... Axv). Процесс повто- ряется до тех пор, пока оставшиеся строки R будут пустыми. За- тем составляется произведение П = СгС^ ... ch, в котором раскрыва- ются скобки, и в полученной сумме выполняется минимизация на основе операций булевой алгебры с учетом выражений Xin = %r, XiVXiV ... VXi = Xi; XiVl = l; х^Лх^Л ... Axi=xr, XfAl=Xi. Для выделения семейства Т необходимо в выражении, полученном после минимизации, для каждого элемента суммы найти не вклю- ченные в него вершины графа, которые образуют независимое подмножество. Работу алгоритма покажем на графе, изображенном на рис. 2.37. Запишем матрицу смежности R графа в несколько изменен- ном виде: В R выделим строки 2 и 4, которые содержат наибольшее число элементов. Выберем строку 2, удалим ее и элементы х2 из осталь- ных строк списка. Запишем элемент с2 = (x2Vx1Ax3Ax4). 76
Получим Х1 (*б) х3 (0) R'= х4 (х5, х6) Х5 (хь х4) Xq (х4) В R определим строки 4 и 5. Выберем строку 4 и запишем с4 = = (x4Vx5Ax6) . Получим Х1 W (0) R Л5 (х1) х6 (0) Определим строку 1 и запишем Ci=(xiVx5). Получим х3 R'// = х5 хб (0) (0) (0) На этом процесс преобразования матрицы смежности закончим. Сформируем произведение П=с<2С4С\ = (x2VxiAx3Ax4) Л (x4Vx5Ax6) Л (*iVx5). Раскрыв скобки и выполнив минимизацию на основе выше при- веденных выражений, получим П= (%iAx2Ax4) V (х2Лх4Лх5) V (%1Л Лх2Л5Л6) V (х2Лх25Лх6) V (x2iAx3Ax24) V \хх Л х3 Л х24 Л х5) V (х21Лх3Л Ax4Ax5Ax6) V (xiAx3Ax4Ax25Ax6) = (Х1Лх2Лх4) V (х2Лх4Лх5) V (х2Л Лх5Ах6) V (х1Лх3Лх4). Запишем 17 в виде Л = KiVK2VK3VK4. Записав вместо каждого слагаемого в полученной дизъюнкции недостающие вершины гра- фа G, получим 77= (x3Ax5Ax6) V(xiAx3Ax6) V (%iAx3Ax4) V (х2Лх5Л Лх6). Тогда семейство независимых подмножеств будет иметь вид ЧГ= {фь ф2, ф3, ф4}, ф1= {Х3, Х5, Xq}, ф2={Хь Х3, Xq} , -фз = {хь х3, х4}, ф4={х2л xs, х6}. Число внутренней устойчивости T](G)=3. При раскраске множества вершин графа G для каждой верши- ны х^Х определяются множества Ki из П, в (Которые не входит Xi. В нашем примере х^фКъУКз', х2$К4\ х^К^Кг^/Кз, х4£Л3; хъ £ XiV/C4; Xq £ /CiV/C2V7<4. Заметим, что здесь Ki считаются бу- левыми переменными. После этого составляется произведение 77'= (^2V/C3) ЛТ<4Л (7(iV VK2VK3) Л7<3Л (К\ VK4) Л (Ki VK2VT<4), в котором раскрываются скобки и выполняется минимизация. В результате П' = К$/\К4. Число элементов Ki в конъюнктивном члене П' определяет число различных цветов, а каждый Ki — подмножество вершин, которые можно окрасить одним цветом. Тогда граф можно рас- красить двумя цветами, например красным и белым. В нашем 77
устойчивым, если V Xi Рис. 2.38. Граф, содер- жащий три клики: Qi, Q2, Q3 примере Кз={*2, *5, *6} окрашивается красным цветом; .х3, *4} — белым. Заметим, что если ГТ будет состоять из нескольких дизъюнк- тивных членов, то (каждый из них будет определять один из воз- можных способов раскраски графа. По аналогии с числом внутренней устойчивости введем число внутренней полноты, характеризующее максимальное число вер- шин в подмножествах взаимно смежных вершин. Подмножество из максимального числа взаимно смежных вершин называется кликой. Мощность клики, содержащей наибольшее число вершин графа, определит число внутренней полноты Q(G) = ImaxQj, Qi^Q где Q(G) — семейство клик графа G. В графе на рис. 2.38 имеем семейство из трех клик: Qi={xb Х4, *5}; С?2={*ь х4} х2}; Фз={*2, *з, х4}, а число внутренней полно- ты Q (G) =3. Подмножество вершин цн^Х графа G называется внешне £ фг (ГХгПфг=# 0) • ВнвШНв устойчивое Под- множество называется минимальным, если удаление из него произвольной вершины делает его не внешне устойчивым. В каж- дом графе можно выделить семейство внешне устойчивых подмножеств ф = = {ф1, Ф2, Фп}. Неформально минималь- ное внешне устойчивое подмножество (его еще называют доминирующим) — это под- множество, состоящее из наименьшего чис- ла вершин графа, смежных всем другим вершинам. Мощность доминирующего под- множества, имеющего наименьшее число вершин, называется числом внешней устой- чивости ф(О) = |шшфг|. ф<еф В графе на рис. 2.38 имеем семейство ф, состоящее из пяти до- минирующих подмножеств ф={фь ..., фб}: Ф1={^4}; Ф2={^ь хз}*> <Рз={*2, *5}; ф4={*з, А75}; ф5={Х1, *2}; ф(О) = 1. В некоторых случаях подмножество А^Х может быть одно- временно внутренне и внешне устойчивым. Такие подмножества называются ядрами графа. Например, подмножество {хь х3} графа (см. рис. 2.38) является ядром. Существуют графы, содер- жащие ядра и не содержащие их. При конструировании ЭА многие задачи контроля схем могут быть сведены к различным тождественным преобразованиям гра- фов этих устройств. Тождественные преобразования графов путем переобозначения вершин и ребер, приводят к получению изоморф- ных графов. Два графа G=(X, U) и G'= (A', U') называются изоморф- ными, если можно установить взаимно-однозначное соответствие 78
X**X', U' такое, что если (х,, (x'i, x'j)eX', то реб- ро и= (Xi, Xj)^U «• и'= (x'i, x'j)^U'. Очевидно, что изоморфизм, есть отношение эквивалентности на графах. Графы G и G', изображенные на рис. 2.39, а, б, изо- морфны. Подстановка __ (•^1> -^2» %3> -^4> ^6 \ Ф Ф Ф Ф Ф Ф I x'i, x'z, x'z, х'ъ x'i, х'6 J устанавливает соответствие графов G и G'. Для перехода от гра- фа G' к графу G необходимо применить обратную подстанов>ку 1-1 к графу G': /x'i, х'2, х'3, х'4, х'5, х'6\ t~l= Ф Ф Ф Ф Ф ф |. Х4, Xj, Х5, Х3, Xe J Если изоморфные преобразования проводятся с графом, заданным! матрицей смежности, то они сводятся к перестановке местами со- ответствующих строк и столбцов. В общем случае для определе- ния изоморфизма графов необходимо сделать п! сравнений или перестановок строк и столбцов матрицы. Рис. 2.39. Граф G (полный двудольный граф Кз,з) (а), граф G1 (б) Например, матрицы смежности графов G и G' на соответственно имеют вид: рис. 2.39, а, б 1 2 ч 5 6 1 О О О 1 1 1 2 3 4 5 6 0 0 111 0 0 111 0 0 111 110 0 0 110 0 0 110 0 0 79
1' 2' 3' 4' 5' 6{ 1' 0 1 0 1 0 1 2' 1 0 1 0 1 0 _. 3' 0 1 0 1 0 1 rf JI os’ 1 0 1 0 1 0 5' 0 1 0 1 0 1 6' 1 0 1 0 1 0 Если к матрице R применить подстановку t~\ то получим матри- цу Rt.. тождественную R'- 1 4 К- = 5 3 6 1 О 1 О 1 О 1 4 2 5 1 0 1 О 1 О 1 0 1 О 1 О 1 О 1 О 1 О 3 6 О 1 1 О О 1 1 О О 1 1 О При покрытии функциональной схемы набором стандартных схем (модулей) или при решении любой задачи типизации необ- ходимо устанавливать изоморфизм между графом G и какой-ли- бо частью другого графа G'. Задачи такого рода называются за- дачами изоморфного вложения. Известно, что задача изоморфно- го вложения графов является Л/Т-полной. Рис. 2.40. Граф G Рис. 2.41. Плоский граф (а) и изоморф- ный ему планарный граф '(б) Пусть дан граф, показанный на рис. 2.40. Можно показать, что подграф Н= (X', U'), |Х'|=6, |G'|=9, Х'={х7, х2, Хз, xit Хе}, выделенный жирными линиями, изоморфен графу на рис. 2.39, а. Следовательно, последний изоморфно вложим в граф G на рис. 2.40. В общем случае для установления изоморфного вложения гра- фа Gi с /и вершинами в граф G2 с п2 вершинами требуется С„г1 nJ 80
сравнений. При конструировании ЭА к топологическому чертежу часто предъявляется требование расположения проводников схе- мы на плоскости без пересечений. В этой связи возникает задача определения планарности графа. Граф G=(X, U) называется плоским, если он расположен на плоскости таким образом, что ребра имеют общие точки лишь в вершинах. Граф, изоморфный плоскому, расположенный на пло- скости и имеющий пересечения ребер, называется планарным. На рис. 2.41, а показан плоский граф, а на рис. 2.41,6 — изоморф- ный ему планарный граф. Область плоскости, ограниченная ребрами плоского графа, внутри которой нет ни вершин, ни ребер, называется гранью. Реб- ра грани образуют простой цикл. Считают, что плоский граф имеет всегда одну бесконечную грань, не ограниченную ребрами. По сути дела это часть внешней плоскости, окружающая граф. Существует формула Эйлера, позволяющая установить связь между числами граней, вершин и ребер плоского графа п—т + +f=2, где f — число граней плоского графа. Для графа G на рис. 2.41, а получим 5—9 + 6 = 2. Здесь грань fQ является бесконеч- ной гранью. Используя формулу для определения дипломатиче- ского числа графа, получаем f=y(G) + l. Минимальное число ребер, которое необходимо удалить из гра- фа, чтобы он стал планарным, называется числом планарности и обозначается 0(G). Для полного графа Кп с п^4 0(КП) = = (п—3) (п—4)/2. Из формулы следует, что 0(КП)=О, когда п = 4; 0(К5) = 1, следовательно, чтобы полный граф Кь стал пла- нарным, из него надо удалить одно ребро. Очевидно, что верхней оценкой числа планарности является дипломатическое число y(G), так как граф, не имеющий ни од- ного цикла, всегда планарен. Для полных графов 0(КП) = = у(Кп) — 2/г + 5. Методы определения планарности связаны с на- хождением минимальных раскрасок графа. Известна теорема о том, что каждый планарный граф может быть раскрашен пятью красками, т. е. K(G)^5. Одной из основных гипотез теории гра- фов является гипотеза о четырех красках. Любой планар- ный граф может быть раскрашен четырьмя красками. Доказательство этой гипотезы, основанное на переборе на ЭВМ огромного числа случаев, предложили Аппель и Хайкен. Определение планарности графа можно производить на основе различных критериев. Рассмотрим два из них. Пусть задан граф G=(X, U). Подразбиением ребра Uk=(xt, Xj) называется замена его двумя ребрами ир=(Хг, хр) и uq = = (хр, Xj) с введением новой вершины хр. Два графа называются гомеоморфными, если они обладают изморфными подразбиениями. Теорема 2.6. (Понтрягина—Куратовского). Граф планарен тог- да и только тогда, когда он не содержит подграфов, гомеоморф- ных полному графу Кб (см. рис. 2.42, а) и полному двудольному графу Кз,з (рис. 2.39, а). 81
Рис. 2.42. Полный граф Лз,5 (а), граф, стягиваемый в граф К5 (б) Операция, обратная подразбиению ребра, называется стяги- ванием. В теории графов под элементарным стягиванием пони- мается замена двух смежных вершин Хг и Xj новой вершиной Хь, смежной вершинам графа, которые были смежны Xi и Xj. Граф Gi=(Xb G1) называют стягиваемым к графу G2 = (Х2, £72), если G2 можно получить из Gi на основе некоторой последовательности элементарных стягиваний. Например, граф на рис. 2.42,6 стяги- вается в граф К5 путем элементарного стягивания в новую вер- шину Xi пяти ребер (хь *б), (*2, *7), (*з, х8), (хь х9), (х5, х10). Теорема 2.7 (Харари — Татта). Граф планарен, если он не со- держит подграфов, стягиваемых к графу К5 или к графу К3,3. Известно, что любой граф может быть изображен без пересе- чений в трехмерном евклидовом пространстве. Пусть задан не- ориентированный граф с петлями. Тогда для каждой петли можно поставить в соответствие окружность, проходящую через ее вер- шину, а для каждого ребра, соединяющего две вершины, сопо- ставить в соответствующей плоскости полуокружность, приходя- щую через эти вершины. Никакие из этих кривых не могут пере- сечься, так как они находятся в разных плоскостях. Говорят, что граф G = = (X, U) укладывается в про- странстве или может быть уло- / / \ \ жен в нем, если он изоморфен г--------_________________ гРаФУ G'= (X', [/'), изобра- \ \ женному в этом пространстве \ X \ / X. \ с помощью вершин X X' и \ \ жордановых кривых, соответ- \ \ ствующих ребрам U ~ U', при- \ \ чем ребра не пересекаются \___________ \ друг с другом. ---------Теорема 2.8. Граф планарен тогда и только тогда, когда он Рис. 2.43. Пример стереографической укладывается на поверхность проекции из точки А ссЬепы 82
- • Предположим, что граф ,G уложен на поверхности сферы. По- местим^ сферу на плоскость таким образом, чтобы ее «верхняя точка» (точка, противоположная точке касания) не соответство- вала ни одной вершине графа и не лежала ни на каком его реб- ре. Тогда искомое плоское представление планарного графа мож- но получить стереографической проекцией из верхней точки, как, например, показано на рис. 2.43. При конструировании многослойного монтажа необходимо ре- шать задачи планарного размещения графа в нескольких плоско- стях с переходами по соответствующим вершинам графа. Граф G можно расположить в z плоскостях, если существует z z планарных суграфов Gb G2, ..., Gz таких, что U Gi=G. Наи- i=i меньшее число плоских суграфов, на которые можно разбить граф, называется толщиной графа и обозначается Q(G). Очевидно, что толщина планарного графа Q(G) = 1, а толщина графов Л5 и /Сз,з равна двум. Толщина произвольного графа удов- летворяет неравенствам Q(G)>(-^-}; Q(G)^ [on — о J ' m + 3n — 7 “I 3n — 6 где {d} — наименьшее целое число не меньше чем d, a [d] — наи- большее целое число, не превосходящее d. Толщина полных графов удовлетворяет неравенству Q(7<n)^> 6 Предполагается, что толщина Кп не превышает величины п/4. Иногда в графе требуется выделять не пересекающиеся по ребрам полные непланарные подграфы. Максимальное число та- ких подграфов в G называется шероховатостью или крупностью и обозначается v(G). Для Лп при п = 3р С2Р, если р^5; С2Р + С5Р, если р^Ю; Си — это число сочетаний из i по /; при n=3 р +1 v (Кп) = С2Р + +[р/3] и при м = Зр + 2 v (Хп) =С2р+[(14р+ 1)/5]. Число попарных пересечений ребер (иногда называется чис- лом скрещиваний) на плоскости обозначается p(G) и для пол- ного графа определяется выражением (п—1)2(м—3)2/64, если п нечетно; п(п—2)2(м—4)/64, если п четно, или Р (*п-1) Р(Кп)^ 1— 8/2п — 1+(— 1)" .83
Зная, что р(/Сб) = 1, можно определить минимальное число пересечений для полного графа с любым числом вершин. Заметим, что если граф G связный и плоский, то и двойствен- ный ему граф Gs также будет плоским и связным, причем число вершин, ребер и граней этих графов будет связано следующими соотношениями: ns = f; rs = r, fs = n, где ns, rs, fs — число вершин, ребер и граней двойственного графа Gs. Часто при описании соединений в схемах необходимо учиты- вать направление прохождения сигнала. Ориентированный граф будем обозначать £)=(Х U) и на- зывать графом. Маршрутом графа D считается чередующаяся последовательность вершин и дуг (х0, щ, хь ип, хп), в кото- рой каждая дуга щ есть кортеж Ui==(xt-\, Хг). Маршрут, в ко- тором все вершины различны, называется путем. Замкнутый маршрут, у которого все вершины различны, за исключением первой и последней, называется контуром. Если существует путь иё Хг в Xj, то говорят, что Xj достижима ИЗ Хгг Граф D называется сильно связным, если любые две его вер- шины взаимно достижимы. Граф G, полученный из графа D заменой каждой дуги Ui = =^хь, Xi) на соответствующее ребро (х&, X/), т. е. устранением стрелок, называется основанием D. Два орграфа называются изоморфными, если можно устано- вить изоморфизм между их основаниями при сохранении поряд- ка стрелок на каждой дуге. Матрицей смежности графа D называется матрица R(D) =||ГгЛ пхп, причем1 (1, если <х^, Xj) — дуга О; 1,3 10 в противном случае. Для графа D, показанного вид на рис. 2.44, матрица R(D) имеет 4 2 3 4 5 Pp0) 1 0 10 0 1 2 2 0 0 110 2 R(D)= 3 0 0 0 0 0 0 4 1110 0 3 5 0 0 0 1 0 1 . р’М |1 I 2 I 2 I 2 I 1 I Так как r^j^rj, it то матрица не симметрична относительно глав- ной диагонали. Дуга Ui=(x{, Xj), считается положительно инцидентной ее ко- нечной вершине х7*. Число дуг, положительно инцидентных верши- не Xj, называется полустепенью захода и обозначается p+(xj). Число дуг, отрицательно инцидентных Xj, т. е. выходящих из xj, называется полустепенью исхода и обозначается через p~(xj). 84
Очевидно, что р(х3) =р+(х3)+р_(х7). Так как любая дуга по- ложительно инцидентна некоторой вершине х3- и также отрица- тельно инцидентна той же самой вершине xj, то 2 P+Uj)= 2 р-(х3) = |С/|. х j<=X Из матрицы R(D) видно, что суммы элементов по строкам равны полустепеням захода вершин D, а сумма элементов по столбцам— полустепеням исхода. Йеорграф G называется ориентируемым, если каждое его реб- ро можно ориентировать так, что полученный граф D будет силь- но связным. Такой процесс обычно называют заданием ориента- ции графа G. Очевидно, что произвольный эйлеров граф может быть ориентируем, так как достаточно пройти по любой эйлеро- вой цепи, ориентируя ребра графа в направлении движения. Граф D называется эйлеровым, если в нем существует замк- нутая цепь, содержащая каждую' его дугу. Необходимым условием существования эйлерова орграфа яв- ляется его сильная связность. Связный граф D= (X, U) является эйлеровым, когда V £ЕХ(р+(Хг) =р-(^)). Орграф называется гамильтоновым, если в нем существует контур, содержащий каждую вершину орграфа. Теорема 2.9. Пусть D — сильно связный граф. Если V ^X(p+(xi)^n/2 и \p-(Xi)^n/2)=> D, то D — гамильтонов граф. Элементы матрицы инцидентности 1(D) графа D принимают зна- чения 0, +1, —1. Элемент равен 0, если вершина не инцидентна дуге, +d, если дуга ориентирована от вершины, и —1, если дуга ориентирована к вершине. Для графа D на рис. 2.44 матрица инцидентности имеет вид «1 и2 м3 «4 «5 «6 и7 «8 Х1 + 1 0 0 0 + 1 — 1 0 0 Х2 — 1 + 1 0 0 0 0 +1 — 1 !(/))= х3 1 — 1 — 1 0 0 0 0 0 х4 0 0 + 1 — 1 0 +1 — 1 + 1 Х5 0 0 0 + 1 — 1 0 0 0 Рассмотрим метод Мальгранжа разбиения графа D на макси- мально связные подграфы. Предварительно определим прямое и обратное транзитивные замыкания. Прямым транзитивным замыканием Г+xi называют подмножество вершин Х'^Х, в которые можно попасть из верши- ны Хг по некоторому пути. Обозначают его так: r+xi= {xJUr+xiU UD+2XiUГ+з^и ... Здесь r+2x< = r+{ZxJ, а Г+^=Г+{Г+^} = =Г+{Г+{Г+Хг}},... Обратным транзитивным замыканием называ- ют подмножество вершин, из которых можно попасть в Xi по не- которому пути, обозначается Г~Хг. 85
Например, для графа D=(X, U) на рис. 2.45 определим пря- мое и обратное транзитивные замыкания для вершины х7: Г+х7= {х7}\)Г+х7\)Г+2х7УГ+3х7, Г+х7={х7, х^ х6}, Г+2х7=Г+{Г+х7} = = Г+{х7, х^ х6} = {х7, хь х6, х2, х5}, Г+3х7=Г+{Г+2х7} =Г+{х7, х4, х6, х2, х5} = {х7, х6, Xi, х5, Х1, х2, хз}; Г~х7= {х7}1)Г-1х7иГ-2х7; Г~х7={х7, х2}, Г-2х7=Г-{Г~х7} = {х7, х2, х4}, тогда Г~х7={х2, хъ х7}, а Гх7={хь х2, Х3, Xi, х5, Хв, х7}=Х. Рис. 2.45. Разложение гра- фа на максимально связ- ные подграфы Основная идея алгоритма заключается в 'Следующем. Выбира- ется произвольная (вершина х^Х в графе D и для нее определя- ется r+xit Г~Хг и C(Xi) =r+xi(}r~Xi. Далее выбирается вершина Xj £c(Xi), и процесс продолжается аналогично, пока возможно. Рассмотрим работу алгоритма на примере графа D=(X, U), заданного матрицей смежности Х1 Х2 Хз Х4 Х5 Хб х7 Г+Х1 Xi х2 Хз R= х5 Хб Х7 Г~Х1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 0 <1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 0 0 Q 10 11 |о I 1 I 1 I 2 I 2 I 3 I 3 I 0 1 Столбец Г+xi строится следующим образом. В клетке столбца против стрелки Xi ставится 0. В клетку столбца против строки хз ставится 1, так как строка Xi содержит I на месте х3. Строка хз содержит I только на уже отмеченном месте Xi. Тогда в остав- шиеся клетки столбца Г+xi проставляются знаки «—». Числа в клетках Г+xi — это количество путей из вершины Xi в другие вер- шины графа D. Тогда r+xi = {xb хз}. 86
Аналогично заполняются клетки строки Г~х\. Против столбца xj в клетке Г~Х\ ставится 0. В клетках строки Г~х\ против хг и х3 ставится 1, так как столбец имеет I против Х2 и х3. В столбце х3 имеется 1 против строки Х4, следовательно, в клетку Г~х\ против Х4 записывается 2. В столбце х3 имеем единицы против строк Xi и х3. Строка Xi уже рассмотрена, а в клетке Г~х\, расположенной против х5, ставится 2. Далее аналогично заполняются оставшиеся клетки Г~х\. Тогда Г~х\ = {х\, Хг, х3, х3, х3, х7}, C(xi) =Г+Х1ПГ~Х1 = = {xi, Хз}. Теперь удалим из графа D вершины Xi и х3. Получим матрицу R' оставшегося графа D': х2 х4 х5 хе х7 Г+х2 ^2 0 0 0 0 1 1 1 0 0 0 R= Ч 0 0 0 1 0 Xq 0 0 1 0 0 х1 0 1 0 1 1 Г~х2 | 0 | 1 | — | — | 2 | £ £ £ £ 1 Аналогично, заполняя клетки Г+х2 и Г~х2, определяем Г+х2={%2, х4, %5, Хб, х7}, Г~Х2={х2, х4, х7}. Тогда С(х2) =Г+х2ПГ~х2 = {х2, х4, х7}. Снова удалим из D' вершины х2, х4, х7, получим граф D". Запишем его матрицу смежности %5 Г+Х5 R"= £ 1 1 о 0 1 Г-х5 |0 | 1 | Получим Г+х5={х5, %б}, Г-хь={хь, xq}, С(хь) = {хь, %б}. Следова- тельно, в результате работы алгоритма получили разложение гра- фа на три части, показанные на рис. 2.45 штриховыми линиями. Заметим, что любой неорграф G можно перевести в орграф пу- тем замены каждого ребра двумя противоположно направленны- ми дугами. В этой связи многие результаты для неорграфов .мо- гут быть интерпретированы на орграфы. В описанных выше графах использовались бинарные отно- шения на множестве вершин. Заметим, что в общем случае на множестве вершин X графа О=(Х, U) можно задать К-ные отношения. Такое обобщение понятия графа позволяет строить объекты, в которых каждое ребро может соединять не только две вершины, но и любое подмножество множества, вершин. Пусть Х = {xi, х2, ..., хп} — конечное множество и Е = {Zb /2, ... • •Im} — семейство подмножеств X. Говорят, что семейство Е — гиперграф на множестве X, если Е^=0 и U Ц = Х, /={1, 2, ... Объект Н=(Х, Е) будем считать гиперграфом, если он состоит из множества вершин X и множества ребер Е, причем каждое ребро 1^Е представляет собой некоторое подмножество 87
множества вершин, т. е. 1^Х. Если V Z^E( | ZJ =2), то гипер- граф Н является графом G без изолированных вершин. На рис. 2.46,а показан пример гиперграфа Н= (X, £), |Х| = 7, \Е\ =5. За- метим, что ребро Z5 с |Z5| — 1 есть петля. Ребрами гиперграфа яв- Рис. 2.46. Гиперграф Н= (X, Е) (а), двойственный ему ги- перграф Н* 1(6) и граф Кёнига К(Н) \(в) ляются: Z]i={xi, х2, х3, х4}; /2= {*2, х3, х6, х7}; Z3{x5, х4); 14={х5, х7}; k={xi). В гиперграфе Н= (X, Е) две вершины считаются смеж- ными, если существует ребро U, содержащее эти вершины, два ребра считаются смежными, если их пересечение непустое под- множество. Матрицей инцидентности гиперграфа Н называется матрица 1(Я) = ||йм11тпхп, причем {1, если Xj^li\ О, если Xj £ U. Для гиперпрафа Н на рис. 2.46,а матрица инцидентности при- мет вид h 1(Я) = /з Z4 1 5 xi 1 О о о 1 Xg Xg Х^ Xg Xq 1110 0 0 110 0 1 1 0 0 110 0 0 0 0 1 0 1 0 0 0 0 0 0 88
Любому гиперграфу Я=1(А’, Е) соответствует гиперграф Я* = X), вершинами которого являются ребра Е={1}) 12) 1т}9 а ребрами — вершины Xi, х2, ...,хп. Гиперграф Н* называется двойственным Н. Матрица инцидентности гиперграфа Н* есть транспонированная матрица гиперграфа Н. Если два ребра Zi, Ij^E в Н смежны, то соответствующие вершины Z*, 1^Е в Я* также смежны, то же выполняется и для вершин х^, Xj<=X в Я, когда они становятся ребрами Я*. Гиперграф Я*, двойственный Я, показан на рис. 2.46,б,а, его матрица инцидентности запишет- ся в виде В гиперграфе Н= (X, Е) цепь длины q определяется как по- следовательность вида 5(Я)=Х1, /ь х2, Z2, Iq, xq+i. Если q>l и Xq+i = Xi, то цепь с такими параметрами называется циклом дли- ны q. Если Я-гиперграф с п вершинами, т ребрами и k связными компонентами, то он является деревом, когда т Д (|Zi| — 1)=Ш—k. При решении задач автоматизации конструирования возника- ет необходимость сопоставлять гиперграфу граф. Гиперграф Я= (X, Е) можно представить в виде двудольного графа Кёнига К(Я) = (Х11Е, V), где X—первое подмножество вершин двудольного графа, соответствующее множеству вершин гиперграфа Я; Е — второе подмножество вершин двудольного графа, соответствующее множеству ребер гиперграфа. Я; V — множество ребер двудольного графа, устанавливающее смеж- ность между двумя множествами вершин X и Е в графе К (Я) в соответствии с инцидентностью вершин и ребер гиперграфа. Я. Заметим, что в двудольном графе К (Я) вершины внутри под- множеств X и Е не смежны, причем вершины х^Х и Ij^E в К (Я) смежны тогда и только тогда, когда в гиперграфе Я вер- шина Xi принадлежит ребру Zj. На рис. 2.46,в приведен граф Кё- нига для гиперграфа Я. Отметим, что не только любой конечный гиперграф представ- ляется в виде К(Я), но и каждый двудольный граф является представлением некоторого гиперграфа. Под раскраской вершин гиперграфа Я= (X, Е) понимается некоторое разбиение множества его вершин на. классы, не содер- 89
жащие пустого подмножества, когда инцидентные вершины долж- ны быть окрашены в разные цвета, причем каждому классу %i(XiUX2U ... Xq=X\ XiA¥2A ... AXQ=0) отвечает определенный цвет, в который окращены вершины, a q соответствует количеству различных цветов, которые можно использовать для раскраски. В некоторых случаях для построения моделей схем использу- ются расплывчатые графы и гиперграфы. Граф G=(X, U) называется расплывчатым, если для каждой вершины Xi^X множество U является расплывчатым множеством. Множество U характеризуется функцией принадлежности при- нимающей значения из отрезка [0,1]. Значение ц(и) показывает степень принадлежности ребра и к множеству U. -Очевидно, что если Ци(-к) для любых х, у^Х принимает значение 0 или 1, то расплывчатый граф G становится обыкновенным. Для расплыв- чатого гиперграфа функция принадлежности определяется так же, как и для расплывчатого графа. Любая логическая или принципиальная схема ЭВА и РЭА со- стоит из набора элементов, заданным образом соединенных меж- ду собой. Поэтому схему можно рассматривать как некоторое множество элементов X={xi, х2,. . . ,хп}, соединенных между со- бой цепями из множества Е={1\, /2, •••, М- Такое представление схемы обычно называют схемой соединений. На рис. 2.47 показан условный фрагмент схемы. Каждый элемент схемы имеет некото- рое множество соединительных выводов, которые будем называть множеством контактов и обозначать C={ci, с%, - . . , cs}. Кроме контактов элементов в схеме имеются внешние контакты Со, кото- рые осуществляют связь рассматриваемой схемы с другими схе- мами. ^01 о- coz О- Рис. 2.47. Условный фрагмент схемы Два контакта считаются связанными, если они объединяются одной электрической цепью. Под электрической цепью будем по- нимать некоторое множество контактов, принадлежащих одному экви-потенциалу. Рассмотрим несколько способов задания схем графами, гипер- графами и их матричными и списковыми представлениями. Зададим схему в виде графа G=(XUEUC, G), где X — верши- ны графа, соответствующие элементам схемы; Е— вершины, со- ответствующие цепям схемы; С — вершины, соответствующие кон- тактам элементов. Множество ребер U = F\JW состоит из ребер эле- 90
ментных F и сигнальных W. Ребра подмножества F определяют принадлежность контактов из С элементам X и задаются парами (хй Cs). Ребра подмножества W задают вхождение контактов из С в цепи Е и описываются парами (Cs, /;). На рис. 2.48 показан граф схемы рис. 2.47. Рис. 2.48. Граф G=(*U£UC, U) Обычно граф G = (XUEUCU) задается в виде двух матриц Ai и А2: Ai= \\a'i, jll|£|X|C| . (1, если контакт 10 в противном случае; А2= ||п2г, j|| |Х| X|С| „ fl, если Cj^Xi\ и a2i,j = 10 в противном случае. Для графа G на рис. 2.48 матрицы Ai и А2 запишутся h h А‘= *4 h Сол Со,2 Сол Сод Ci,i Ci,2 С1,з Сгл Сг,г Сг,з Сзд Сз,г Сз,з C4,i С4,г 100010000000000 000001 001 000000 0000001 10001000 010000000010000 0010000001001 10 0001 00000000001 Из матрицы А] видно, что каждый столбец имеет только одну единицу, так как каждый контакт входит только в одну цепь. хо Х1 А, хз Х4 Сол Со,2 Со,3 Со,4 С1Д 11110 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 С1,2 С1,з С2Л С2,2 Сг,3 Сз,1 Сз,2 Сз,з С4,1 С4,2 00000 Oj 0000 1 100000000 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 000000001 1 91
На рис. 2.48 х0 соответствует условной вершине, объединяющей все 'контакты. Каждый столбец Аг также имеет только одну едини- цу, так как любой контакт относится лишь к одному элементу. Так как матрицы Ai и Аг содержат большое число нулевых эле- ментов, то хранить их в памяти ЭВМ при реализации алгоритмов конструирования более эффективно в виде списков. Граф G также задают в виде матрицы цепей Т= ||/гЛпхс, стро- ки которой соответствуют элементам схемы, а столбцы — контак- там. Если элементы имеют различное число контактов, то1 в качест- ве с принимается шах с*, f = 0, 1,. . . , лг. Элемент tij .представляет номер цепи, связанный с контактом Cj элемента хг-, заметим, что если в матрице Т элементы ti,j = tp,q = ... =/а,р, то это означает, что контакты /, q,. . . , (3, расположенные на элементах с индексом г, р,. . . , а, принадлежат одной электричёской цепи (одному узлу) и, следовательно, могут в дальнейшем быть соединены между со- бой электрически произвольным образом. Для фрагмента схемы на рис. 2.47 матрица Т запишется в виде х2 /3 Т = х3 /4 х4 Z5 %о Л /2 /з о I2 Is О 1з h О /б о О Z4 I5 Iq Например, элемент Z3,3 матрицы Т означает, что цепь /5 соединена с контактом 3 элемента схемы Х3. Данный способ удобен с точки зрения экономии памяти ЭВМ, но требует предварительной нуме- рации цепей. . При решении задач компоновки и размещения конструктор должен устанавливать различия между входами и выходами логи- ческих элементов схем. Различие между входами и выходами можно отразить, приписав ребрам направление прохождения сиг- нала, т. е. превратив граф схемы в орграф. Входной сигнал логи- ческого элемента исходит из соответствующей вершины, а выход- ной сигнал имеет направление к вершине. Каждому ребру припи- шем вес, равный номеру контакта, что позволяет полностью иден- тифицировать схему коммутации. Тогда фрагмент схемы на рис. 2.47 можно представить в виде двудольного графа D (рис. 2.49,а), которому можно поставить в соответствие гиперграф (рис. 2.49,6). Основное преимущество такого1 задания — изменяющаяся инфор- мация о цепях, которые могут быть- конструктивно представлены любым из пп~2 покрывающих деревьев. Иногда удобно задать схему в виде графа G=(XUV, 17), где V — узловые точки схемы. Тогда для фрагмента,'изображенного на рис. 2.47, такой граф примет вид рис. 2.49,в. Основное преимущество всех описанных моделей — адекватное задание в смысле планарности. Доказано, что если граф схемы, представленный одним из описанных методов, планарен, то пла- нарна и представляемая им схема. Схема считается планарной, 92
если ее проводники -могут быть расположены на плоскости без пересечений. Существует много модификаций описанных методов. Одним из них является -построение мультиграфа схемы. Для этого- подсчи- тывается для каждой пары элементов число соединяющих их це- пей. Затем строится мультиграф G=(X, G), в котором вершины Рис. 2.49. Двудольный орграф Z)=(X|J£, U) (а), гиперграф (6), граф G= = (XUK U) (в) и мультиграф (г) фрагмента схемы на рис. 2.47 полученный граф 7 Рис. 2.50. Учет эквивалентных контак- тов соответствуют элементам, а ребра — числу цепей между ними. Для фрагмента -схемы на рис. 2.47 мультиграф показан на рис. 2.49,г. Иногда используется способ перехода от схемы к графу, когда контакты элементов представляются вершинами графа G= (X, U), а соединения между ними — ребрами. При этом представляет собой объедине- ние полных подграфов, соот- ветствующих узлам схемы. Ес- ли в каждом полном подграфе выделить деревья, покрываю- щие все вершины данного под- графа, т. е. выполнить «развяз- ку узлов», то граф G предста- вится множеством несвязанных деревьев, т. е. лесом. В настоящее время для воз- можного проведения цепей под 93
электрорадиоэлементамй и между контактами рассматриваются графовые модели для -самих элементов. При этом каждый эле- мент представляется в виде цикла, как, например, показано на рис. 2.50. Для задания пропускной способности каждого ребра, т. е. количества трасс, которые можно провести между контакта- ми, между вершинами вводятся дополнительные (зачерненные) вершины. Такое представление элементов резко увеличивает число вершин и ребер графа схемы, но позволяет учитывать эквива,- лентные контакты. При разработке алгоритмов конструирования в настоящее вре- мя все описанные методы используются для формализации описа- ния схемы. Основными критериями выбора той или иной модели являются необходимый объем памяти ЭВМ, сложность реализа- ции вычислительных процедур, время решения задачи, оптималь- ность получаемых результатов конструирования. 2.4. МЕТОДЫ МАТЕМАТИЧЕСКОГО ПРОГРАММИРОВАНИЯ ПРИ АВТОМАТИЗАЦИИ КОНСТРУИРОВАНИЯ Многие задачи конструкторского проектирования получают более эффективное решение при использовании иерархических ме- тодов, когда исходная задача Qo разбивается на некоторое число подзадач Qi, Q2,..., Qk и делаются попытки решить каждую из них. Данный вопрос особенно актуален при конструировании ИМС, содержащих сотни тысяч элементов, так как в настоящее время без разбиения их на подсхемы выполнить конструирование невозможно. Под решением задачи понимаются: нахождение оптимального решения; доказательство, что подзадача неразрешима; доказательство, что значение полученного решения хуже, чем пре- дыдущее. Такое разбиение обычно описывают деревом, изображенным на рис. 2.51. Смысл разбиения состоит в том, что после разбиения подзадачи легче решать, или они имеют /Т\ значительно меньший размер, или имеют новую структуру. Заметим, что каждую подзадачу можно снова разбивать на / х. подзадачи. Очевидно, что если разбиение окончено, то множество подзадач, на ко- k&J U) w торые разбита задача, должно представ- лять всю задачу. Из рис. 2.51 видно, что Рис. 2.51. Разбиение за- П0СЛе 0К0НЧаНИЯ ка™ подзадача пред- дачи Qo на подзадачи ставляется вершиной дерева, которая на- зывается висячей. Важной проблемой является нахождение оптимального решения на основе перебора путей на дереве решений. Задачи такого типа называют поиско- выми. А сам поиск связан с исследованием графовых структур. 94
Существуют три основных типа поиска в зависимости от того1, как выбираются вершины дерева для прохождения ветвления. Это поиск с возвращением, поиск в глубину и поиск в ширину. Поиске возвращением. Он заключается в попытках рас- ширить частное решение. На каждом шаге поиска, если расшире- ние текущего частичного решения невозможно, происходит воз- врат к предыдущему частичному решению и предпринимается по- пытка снова его продолжить. Другими словами, поиск с возвра- щением— это продолжение расширения исследуемого решения до тех пор, пока это возможно. Когда решение нельзя расширить, производятся возврат назад и попытка сделать другой выбор на ближайшем шаге, где имеется такая возможность. Поиск с воз- вращением относится к классу экспоненциальных алгоритмов. Поиск в глубину. Неформально поиск в глубину на дереве решений как бы соответствует «нырянию» в глубь дерева. Идея метода состоит в том., чтобы в каждой исследуемой вершине дерева выбирать один из воз- можных путей и исследовать его до конца, причем другие, существующие пути решений при этом не рассматриваются, пока сохраняется возможность получить конечный результат, исследуя выбранное направле- ние. Дерево поиска в глубину показано на рис. 2.52. Как сле- дует из рисунка, при поиске в глубину выбирается опреде- ленный путь по дереву и про- изводится его продолжение до получения решения или до тех пор, пока дальнейшее продви- жение окажется невозможным. Рис. 2.52. Дерево поиска в глубину Тогда процесс поиска возоб- новляется от ближайшей вершины дерева, имеющей смежные не- исследованные вершины. Рассмотрим алгоритм просмотра вершин графа G=(X, U) на основе поиска в глубину. Выбираем произвольную начальную вер- шину Xi. Затем выбираем ребро (xj, х^, инцидентное xif и про- сматриваем вершину Xj. Пусть хр— последняя просмотренная вершина. Для продолжения процесса определяем произвольное нерассмотренное ребро (хр, xs), инцидентное хр. Если вершина х8 ранее просматривалась, ищем новое ребро, инцидентное хр. Если xs ранее не просматривалась, то идем в xs и снова начинаем по- иск от xs. Пройдя все пути, начинающиеся в х8, возвращаемся в хр. Затем продолжаем выбор нерассмотренных ребер, инцидент- ных вершине хр, пока не будет исчерпан их список. Видно, что' в 95
рассмотренной процедуре поиск идет вперед (вглубь), пока это возможно. Поиск в глубину можно осуществлять и на орграфе D. В этом случае, пройдя в вершину хр, выбираем ребра {хр, xs), выходящие из хр. После исследования всех ребер, выходящих из xs, возвра- щаемся в хр, даже если имеются нерассмотренные ребра, входя- щие в xs. Для поиска в глубину на несвязном графе G, состоящем из не- скольких компонент, необходимо исследовать каждую компоненту в отдельности. Рассмотрим построение покрывающего дерева в графе G (рис. 2.53) на основе поиска в глубину. В качестве начальной возьмем вершину xi. Для просмотра вершин на каждом уровне будем вы- бирать вершины с меньшим номером. Тогда в соответствии с опи- санным методом получим покрывающее дерево Т, состоящее из вершин Х1, Х2, Х4, Х7у Х5, *3, Xq, Xq И ребер U1, Uq, U7, Uq Uq, Uq, Uq. По- рядок поиска в глубину показан на рис. 2.54. Рис. 2 53. Граф для по- строения покрывающе- го дерева Рис 2 54. Пример построения покрывающего дерева на ос- . нове поиска в глубину Из описанного следует, что при поиске в глубину перебор сна- чала выполняется вдоль одного пути, пока не будет достигнута максимально возможная глубина. Далее рассматриваются другие пути такой же или меньшей глубины, которые отличаются от пер- вого последним шагом, затем исследуются пути, отличающиеся последними двумя шагами и т. д. Процесс повторяется до получе- ния требуемого результата. Основное достоинство методов поиска в глубину то, что боль- шинство из них относится к классу полиномиальных алгоритмов и может быть в основном реализовано за время О (/г). Основной недостаток поиска в глубину заключается в том, что при исследовании дерева решений с большой вероятностью мож- 96
но .пройти мимо той ветви, на которой раньше всего появляется окончательное решение. Поиск в ширину при использовании этого метода ветвления происходит от уровня к уровню, причем если на уровне 1 началь- ная задача Qo разбивается на подзадачи Qi, Q2, •. •, Qk, то каж- дая из них исследуется раньше, чем задачи уровня 2. Задачи в уровне, которые трудны для разрешения, разбиваются на подза- дачи уровня 2 и процесс продолжается аналогично. Примерный вид дерева решений при поиске в ширину показан на рис. 2.55. Для графа (см. рис. 2.53) порядок построения покрывающего де- рева методом поиска в ширину показан на рис. 2.56. Рис. 2.55. Дерево поиска в ширину Поиск в ширину эффективно используется при установлении изоморфизма и изоморфного вложения графов при разбиении й размещении схем. Алгоритмы поиска в ширину ib основном реали- зуются за время О (п2)—О(п4). Существует много процедур повы- Рис. 2.56. Пример построения покрывающего дерева на основе поиска в ширину 4—144 97
тения эффективности поисковых методов. Основные из них — это упорядочивание ветвей, отходящих от каждой вершины, так что в первую очередь рассматриваются наиболее перспективные ветви, и движение вперед из вершины, которая является наилучшей из всех найденных независимо от того, где она расположена, в дере- ве. Заметим, что нами описаны только общие .схемы организации поиска. Непосредственное их применение может привести к алго- ритмам, время реализации которых велико. Поэтому необходимо приспосабливать эти методы к конкретным задачам конструиро- вания. Многие задачи конструирования схем сводятся к значительно- му перебору вариантов, приближающемуся к полному. В некото- рых случаях полный перебор удается заменить перебором с отсе- чениями. Наиболее употребительным при конструировании вычис- лительным .методом сокращения перебора является метод вет- вей и границ. Метод основан на переборе определенных вариантов решений задачи при условии, что число этих вариантов конечно. При этом в общем случае полный перебор заменяется частичным, так как используются априорные оценки вариантов, позволяющие отбра- сывать «неперспективные» решения. Метод ветвей и границ состоит из операций ветвления и отсе- чения. Операция ветвления. Выбираем произвольный способ разбиения множества Q на подмножества Qi такие, что UQ; = Q, QiOQj = 0i V г¥=/- Затем разбиваем по такому же правилу под- множества и т. д. На каждом шаге вариант, оптимальный для множества Q, будет принадлежать одному из Qi. Следовательно, решение задачи для множества Q сводится к решению задач для составляющих его множеств Qi и определению оптимального1 ре- шения среди найденных. Операцию ветвления можно осуществ- лять на основе методов поиска как в глубину, так и в ширину. Операция отсечения. Отсечение вариантов решения за- дачи выполняется с помощью оценочной функции, которая зада- ется на вершинах дерева перебора и дает верхнюю' или нижнюю границу значений функции для вариантов решений, входящих в множество Q. Оценочная функция, дающая нижнюю границу в процессе разбиения множества, не убывает, а оценочная функция с верхней границей не возрастает. Заметим, что точность оценки зависит от способа разбиения множества Q, поэтому необходимо выбирать такой способ разбие- ния, при котором оценки получаемых подмножеств были бы бли- же к оптимальной. Существуют три основных способа отсечения ветвей: по результатам сравнения текущего значения с уже найден- ным; по результатам сравнения двух оценок; 98
превращение ветвления в вершине, не содержащей оптималь- ного решения. Порядок продолжения ветвления выбирается на основе после- довательного построения ветвей, или по минимальной нижней (верхней) границе, или на основе их комбинаций. Рассмотрим теперь общую схему метода ветвей и границ для нахождения решения с наименьшим значением целевой функции. Пусть необходимо решить одну из задач конструирования схемы, заданной в виде графа или гиперграфа. Пусть также известно, что Q — это конечное множество решений данной задачи. Каждое решение q^Q может быть оценено с помощью оценочной (целе- вой) функции f(q). Требуется найти такое решение /eQ, для ко- торого f(t) —наименьшее среди всех f(q), q^Q- Использование специфики конкретной задачи конструирования позволяет в ряде случаев найти нижнюю границу значения целевой функции f, или ее оценку на множестве решений Q, или на каком-либо его под- множестве Нижней границей 0(g) целевой функции f бу- дем называть значение, которое меньше или равно значению це- левой функции f(q) для любого решения q<=Q или q'^Q'. Метод ветвей и границ наиболее эффективен, если при разбиении множе- ства решений на подмножества Qi удается улучшать оценки, т. е. получать строго неравенство 0(gi)>0(g). Разбиение множества решений на подмножества представляет- ся, как было показано выше, с помощью дерева решений, которое можно задавать в графическом или матричном виде. В качестве исходной вершины дерева решений принимается множество Q. За- тем вычисляется нижняя 1Граница 0(g) множества Q. Заметим, что вычисление нижней границы при решении задач проектиро- вания в огромной етепени зависит от искусства конструктора, при- чем чем ближе оценка к точной, тем быстрее будет найдено опти- мальное решение. Если будет найдено такое решние t, что f(t) = = 0(g), то t—искомое оптимальное решение. Если найти сразу такое решение не удалось, то множество Q разбиваем на ряд под- множеств, образующих на первом шаге вершины дерева, которые обозначаются Q4, Q4,. • •, Верхний индекс при Q соответст- вует номеру шага разбиения, нижний — определяет номер под- множества множества решений на данном шаге. Определяются нижние границы 0(QS*), / = 1, 2,..., Если найдено такое реше- ние t(=Q}p, что f(t) =0(Q1^), причем ©(Q1?)^0(QS), j=£p, /=1, 2,..., s, то t — искомое оптимальное решение. Если его найти не удалось, то выбираем из подмножеств Qh, ..., подмно- жество Q\ по правилу ©(Q1;) =min0(Q1j), j=l, 2, s и разби- ваем его на определенное число подмножеств Q1i = Q1i1UQ1Z1 U ... U UQ1*/. Все подмножества Qh, Q4, Q^-i, Q4+i, ...» Q1^ Q\lt Q\2 > • • • > Q1? z, ранее не подвергавшиеся разбиению, переобознача- ются Q2i, Q22,..., Q2V. Производится переход ко второму шагу и определяются ниж- ние границы 0(.Q2j), / = 1, 2, ..., v. Если найдено такое решение 4* 99
t(=Q2p, что f(t)=@(Q2p), причем &(Q2P) ^@(Q2j), j=£p, /=1, 2,..., v, to t—искомое решение. Если найти его не удалось, то снова выбирается из подмножеств Q2i, Q22,..., Q2V подмножество Q2i по правилу @(Q2i ) =min@(Q2j), / = 1, 2,..., v, и производит- ся разбиение Q2i на определенное число подмножеств Q2i = Q2nU UQ2i2U ... UQ2iW. Все подмножества Q2i, Q22,..., Q2i_b QVh, ..., • • •, Q2vf Q2ii, •.., Q2iwf ранее не подвергавшиеся разбиению, пере- обозначаются Q3i, Q32,Q32 и производится переход к третьему шагу и т. д.'Процедура продолжается до v-го шага. Если среди ре- шений v-ro шага удается найти решение t^Q?p такое, что f(t) = = 0 (QVP) ^0 (Qvj), j^=p, /=1, 2, ..., v, то t — искомое оптимальное решение. В противном случае процесс продолжается. Так как мно- жество решений Q конечно, то в результате последовательных ветвлений получаются подмножества., состоящие из одного' реше- ния. Среди них будет найдено' оптимальное решение. Метод ветвей и границ позволяет также находить квазиопти- мальные решения с заданной точностью А. Если на произвольном шаге pi ветвления дерева найдено решение t' такое, что f(if) — —0(QM^A, где —подмножество с наименьшей нижней границей среди всех подмножеств данного шага, то t'— искомое квазиоптимальное решение. Рассмотрим пример ветвления дерева решений задачи определения соответ- ствия принципиальной схемы и ее реализации на кристалле интегральной мик- росхемы. Пусть известно, что множество' решений Q. Разобьем \Q на три под- множества: Q4, Ql2, Q4- Среди них оптимальное решение t не найдено. Из оце- нок границ определено, что должна ветвиться вершина Ql2- Подмножество ре- шений Ql2 разбивается на три подмножества: Q12»i, ФЧг, Q12,3- Нулевой и пер- вый шаги показаны на рис. 2.57. Вершины Qh, которые не ветвились, а также Q12,i, Ql2,2> Q\,3 переобозначаем соответственно Q2i, Q22, Q23, Q24, Q2s- Согласно специфике задачи определения соответствия схемы и ее реализации находятся нижние границы для этих подмножеств. Если не найдено оптималь- ное решение t, то ветвится, например, вершина Q2i следующим образом: Q2i = = Q2i,iUQ2i,2. Дерево решений для второго шага алгоритма показано на рис. 2.57,6. Да- лее переобозначаются вершины и находятся границы для полученных подмно- жеств решений третьего шага. Если оптимальное решение /, т. е. подстановка между схемой и ее реализацией на кристалле, не найдено, ветвится, например, вершина Q36 (рис. 2.57,в). Процедура повторяется до получения оптимального или квазиоптимального решения. Следовательно, для эффективного применения метода ветвей и границ необходимо, учитывая специфику рассматриваемой за- дачи, вычислять границы целевой функции как можно ближе к оптимальному значению. Это определит число ветвящихся вершин •и соответственно степень сокращения перебора при решении за- дачи. При описании конкретных алгоритмов конструирования схем будут показаны примеры использования метода ветвей и границ. Часто при решении задач автоматизации конструирования схем требуется найти такие значения действительных переменных <7ь <?2, • • • , <7п, при которых целевая функция F нескольких пере- менных обращается в максимум или минимум. Причем Qi={qiii <7^2, •••, —это решения из множества Q={Qi, Q2, •••, Qn}- 100
Задачи определения значений параметров, обеспечивающих экстремум (максимум или минимум) функции при заданных огра- ничениях на аргументы, называются задачами математического п р о гр а м мир о в а н и я. Основными представителями класса задач математического программирования являются задачи линейного, динамического и н елип ейн о го пр о гр а мм ир о в а н ия. Задачи линейного программирования являются наиболее про- стыми. Они характеризуются тем, что показатель эффективно- сти (целевая функция) F линейно зависит от параметров реше- ния ^1, 92, ...,9п, и ограничения, налагаемые на параметры ре- шения, имеют вид линейных равенств или неравенств относитель- но элементов множества Q. Рассмотрим пример задачи линейного программирования. Цех завода вы- пускает многослойные печатные платы (МПП) и двухслойные печатные платы (ДПП). В соответствии с планом он должен выпустить МПП в количестве не меньше ai и не больше Pi, ДПП — не меньше а2 и 'не (больше р2. Для изго- товления плат необходимы три вида комбинированного сырья у2, у3, запасы которого ограничены числами Аь Д2 и Аз- Допустим, что на изготовление одной платы требуется сырья вида у i (/=1,2,3; /=11,2). Индекс / означает вид^изделия, индекс i — вид сырья. Величины aiyj можно представить в виде матрицы следующего вида: 101
Сырье МПП ДПП 71 «1Т71 а1,2 72 а2,2 ”~7з • а3,1 а3,2 При использовании в аппаратуре МПП приносят прибыль 6Ь а ДПП — Ь2. Необходимо так спланировать производство, чтобы план был выполнен и перевыполнен без затоваривания, а суммарная прибыль от реализации была максимальна. (Заметим, что данный пример описывает упрощенную и идеали- зированную ситуацию в производстве печатных плат, но тем не менее позволяет оценивать реальные ситуации.) Будем считать, что' элементами решения будут количества произведенных МПП и ДПП, соответственно' qi и q2. Требование выполнения плана можно за- писать в виде ограничений: <7n^ai; ^2^СС2. (2.4) Недопустимость лишней продукции можно выразить следующими неравен- ствами: 72^ ₽2- (2.5) Тогда трем комбинированным видам сырья будут соответствовать три ог- раничительных неравенства: ai,i<7i + ai,2<72^Tr> cb2,\q\ + a2,2q2^y2, ^3,1^71 +^3,2^2^Тз, а прибыль, получаемая от реализации продукции, 77 = 61*71+ 62*72. (2.6) (2.7) Таким образом, составлена задача линейнего программирования, которую можно сформулировать следующим образом: определить такие неотрицательные значения q\ и q2f чтобы они удовлетворяли всем неравенствам-ограничениям, а также обращали в максимум линейную функцию этих переменных 77: 77=6i*/i +62*72=^шах. (2.8) Неравенства системы (2.6) представляют собой полуплоскости с граничной прямой aii^i + aii^2=Yi. Условия неотрицательности определяют полуплоскости с граничными прямыми *7i = cci, pi; *72=а2, Рг- (Система совместна, поэтому полу- плоскости, пересекаясь, образуют общую часть, которая представляет собой па- ры точек, являющихся решением данной системы. Объединение этих точек на- зывают многоугольником решений. Геометрическая задача линейного програм- мирования сводится к определению такой точки многоугольника решений, коор- динаты которой дают линейной функции экстремальное значение. Отметим, что все точки многоугольника решений являются допустимыми. Предположим, что система (2.6) при условиях (2.4) и >(2.5) совместна и ее многоугольник решений ограничен. Тогда существует такая угловая точка, в которой линейная функция задачи программирования достигает оптимума. Линейная функция (2.7) при фиксированных значениях является уравнением прямой линии 61*71 + 62*72=const. Построим теперь многоугольник решений системы (2.4)—>(2.6) и график ли- нейной функции при 77=0 и найдем точку многоугольника решений, в которой прямая 61*71+ 62*72=const является опорной и функция 77 достигает максимума. 102
Построим многоугольник решений (рис. 2.58). Для этого в системе коорди- нат q\ 0 q2 на плоскости построим граничные прямые: ai,iQi4_Oi,2Q2=Yb C^i) ^2,1#1 + ^2,2^2 = Y2, (^2) ^3,1 <71 +#3,2*72 = Y3, ’(^з)~ Qi=-(ai, Pi), (Д4) q%= (ct2, P2), Иэ). Puc. 2.58. Многоугольник решений Полуплоскости, определяемые неравенствами, показаны стрелками. Много- угольником решений данной задачи является шестиугольник OBCDEF. Для построения прямой bxq\ + b2q2=0 строится радиус-вектор У= (6Ь Ь2) и через точку О проводится прямая, перпендикулярная ему. Прямая перемеща- ется параллельно самой себе в направлении вектора N. Из рис. 2.58 следует, что в точке D функция П принимает максимальное значение. Точка D лежит на пересечении прямых Л3 и А2. Тогда для определения координат точки D не- обходимо решить систему уравнений #21*71 +#22*72 = Y2’> 1 1 (2-9) #31 *71+#32*72=Уз ) и определить переменные qi и q2. Подставляя значения q\ и q2 в линейную функцию n = b\q\-\-b2q2, получаем Птах- Следовательно, для получения макси- мальной прибыли Птах необходимо запланировать выпуск найденных значений qi МПП и q2 ДПП. Заметим, что любая задача линейного программирования сво- дится к стандартной форме, называемой основной задачей линей- ного программирования. Она формулируется так. Определить неотрицательные значения переменных t/i, <72,, ... ,qn, которые удовлетворяют уравнениям 103
^1, 191 + ^1, 292 + ••• +^1,п9п = ?Ь ^2,191+^2,292+ ••• + #2, n9n = Y2> (2.Ю) Ят, 191 + ^m, 292+ ••• +^m, n9n —Ym и обращают -в -максимум линейную функцию этих переменных ^7=^191 + ^292+ ... +bn9n=>niax. (2.11) Оптимальные решения основной задачи линейного программиро- вания достигаются при таком наборе 91, 92,..., 9п, когда, по крайней мере, I из них обращаются в нуль, а п—I неотрицатель- ны. Задачи линейного программирования, в которых значения пе- ременных должны быть обязательно целыми числами, называют- ся задачами целочисленного программирования. Заметим, что ре- шать задачи целочисленного программирования в общем случае труднее, чем обычные задачи линейного программирования. Многие задачи размещения при автоматизации конструирова- ния схем сводятся к так называемым задачам нелинейного про- граммирования. В них необходимо определить неотрицательные значения переменных 91, ^2, • • •, 9™> удовлетворяющих заданным ограничениям произвольного вида и обращающих >в максимум не- линейную функцию этих переменных F = F(q\, q2,..., qn) =>тах. Задачи, в которых оптимальное решение ищется в условиях неполной определенности, а параметры, входящие в целевую функцию, и ограничения представляют собой случайные величи- ны, называются задачами стохастического программирования. Многие задачи автоматизации конструирования, такие, как Трассировка, компоновка, размещение, часто разбивают на этапы или шаги. Метод многоэтапной оптимизации называется методом дин а м ич ес кого пр огр а м м ир ов ания. Рассмотрим задачу трассировки (подробнее ом. разд. 3), рас- падающуюся на т этапов. Пусть эффективность каждого этапа характеризуется «выигрышем» fi. Предположим, что выигрыш F по всей задаче состоит из выигрыша на отдельных этапах т F= 2 А. i=l Задачу трассировки можно представить как управляемый про- цесс выбора параметров, влияющих на ход решения, причем на каждом этапе выбирается такое решение, от которого зависит вы- игрыш на этапе. Этот процесс называется этапным управлением. Множество всех этапных управлений называется управлением за- дачи в целом. Требуется найти такое управление q из множества всех управ- лений, при котором выигрыш F обращается в максимум: т F= 2 A=>max. 1=1 104
Управление q*^Q, при котором достигается этот максимум, назы- вается оптимальным. Максимальный выигрыш, который достига- ется при этом, обозначается F*=max{F (</)}. В основе методов динамического программирования лежит построение оптимального управления на каждом этапе. Рассмотрим пример прокладки трассы между двумя контактами Л, В ин- тегральной микросхемы на координатной плоскости (рис. 2.59), причем трасса может проходить только в горизонтальном или вертикальном направлении. Необходимо проложить трассу, для которой сумма весов вошедших в нее ре- бер из графа сетки Gr будет минимальной. Рис. 2.59. Пример прокладки трассы между контактами А и В Для использования метода динамического программирования разделим про- цесс перехода из А в В на отдельные шаги (один шаг >— подключение к трас- се 'одного ребра графа сетки Gr) и оптимизируем управление по шагам. Процедуру оптимизации выполним от конца к началу, т. е. от В к А. Сначала произведем оптимизацию последнего TV-го шага. Рассмотрим, куда должна быть доведена трасса на (2V—1)-м шаге, чтобы на TV-м шаге мы могли закончить ее построение. Очевидно, что только, в вершины, из которых можно за один шаг попасть в В* т. е. в Xi, Х2 или х6. Если мы находимся «в хь то при попадании в В сумма весов возрастет на десять единиц, если в хг, то на пять единиц, а если в х6, то на 20 единиц. Следовательно, условная оптимизация сделана и выиг- рыш для 'вершин %i и %2 соответственно1 равен 10 и 5 усл. ед. Теперь перейдем к оптимизации предпоследнего (N—1)-го шага. После (N—2)-го шага трасса могла оказаться в одной из четырех вершин: хз, х^, Xs, Хю- После анализа по- лучим следующие фрагменты трасс: хю—Xi—В — сумма весов 20; xs—Xi—В — 20; х3—х2—В — 10; х4—Хг—В — 15. Как видно, наибольший выигрыш будет в вершине х3. Продолжая аналогично', определяем выигрыш на всех вершинах графа сетки и находим путь, ведущий из контакта А в контакт В (на рис. 2.59 показан жирной линией). При выполнении условной оптимизации 'возможен неоднознач- ный выбор оптимального управления. Это говорит О' том, что во многих задачах математического программирования решение в общем 'случае не единственное. 105
Приведем теперь принцип оптимальности, на основе которого решаются все задачи динамического программирования: при лю- бом состоянии системы перед очередным этапом необходимо вы- бирать управление на этапе таким образом, чтобы выигрыш иа нем в еумме с оптимальным выигрышем на всех следующих эта- пах был максимальным. 2.5. КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ >1. Опишите 'способы задания множеств. 2. В чем отличие между понятиями принадлежности множеству и включе- ния в множество? 3. Справедливо ли, что {1, 2, 3}s{{1, 2, 3}, {11}, {2}, {3}, 1,2}? 4. Верно ли, что1 {1, 2, 3}cz{{1,2, 3}; 1,2,3, {1}}? '5. Привести пример таких множеств А, В, С, D, что. AczBABczCAC(± 6. Доказать, что (A\B)|JB=A, 1(АПВ)Г1С=АП'(ВГ|С). 7. Что понимается под термином «высказывание»? 8. Доказать или опровергнуть методом от противного следующие выраже- ния: (ИПВ)-иИПВ))\А=0, ЛП(В\А)= 0; (А\В) \ (Af|B) = 0 . 9. Приведите пример разбиения трехэлементного множества А = {ЭВМ, ЭВА, РЭА}. 10. Приведите множества А, В, для которых справедливо АхВ = ВхА. 1'1. Определить, .чему равно А\ (А \ В). 12. Доказать или опровергнуть следующие выражения: (АрВ)хС= =,(АХС)П(ВПС).(А\В)ХС=(АХС)П(ВХС). 13. Доказать, что для графиков Р и Q справедливо (POQ)_1 = Q-1OP_1. 14. Какими общими свойствами обладают (бинарные отношения, заданные в некотором коллективе людей X и выражающие соотношениями (Xi, xj^JJQ: Xi уважает xj; Xi ненавидит xj; Xi подчинен Xj; Xi родственник xj? 15. Приведите примеры рефлексивных, симметричных, транзитивных отно- шений эквивалентности и постройте их матрицы. 16. Докажите, что если отношения А и В есть отношения эквивалентности, то отношением эквивалентности будет и АрВ. 17. На множестве B={li, 2, 3, 4} заданы отношения: дьЧЮ'Л <1,4)}, {1, '2, 3, 4}>; Ф2=<{<1,4>, <2,4), <3,4>}, {1, 2, 3, 4}); Фз=<{<1,2), <2,1), <1,3>, <3,1>, <4,4)}, {1, 2, 3, 4}); ф4=<{<1,4), <1,3), <2,2>, <2,4), <2,3>}, {1, '2, 13, 4}); Ф5=<{<1,3), <4,1>, <4,2), <4,3)}, {1, 2, 3, 4}>. Определите, какие из них являются соответствием и функцией? 118. Определите, какие из приведенных отношений являются отношениями эквивалентности и почему: взаимозаменямость ИМС в схеме 'РЭА; равенство размеров ИМС в схеме РЭА; равенство весов элементов в схеме РЭА; принадлежность к одной группе плат в множестве плат РЭА; кратность размеров ИМС в схеме РЭА. 19. Чем отличается понятие отношения от понятия соответствия? 20. Приведите примеры функционального, инъективного, сюрьективного, всюду определенного' и биективного соответствий. 21. Найдите достаточные условия, которым должны удовлетворять соответ- ствия Г и А, что|бы ГОА было всюду определенным, сюрьективным, инъектив- ным, биективным (взаимно-однозначным). 106
22. Определите Г (А) и Г"1 (В), если Г=<Ф, X, У); Ф = {<1,а>, <2, Ь>, <3, <4,0); Х={1, 2, В, 4}, Y={a, b, с, d}-> A = {1, 3}; B[-{a, с, d}. 23. Дайте основные определения расплывчатого' множества. 24. Пусть X— (1,2,3,4), постройте пример расплывчатого множества А на X. 25. Определите основные операции над расплывчатыми множествами и приведите примеры их использования. 26. Определите расплывчатое отношение на множествах Л = {ТЭЗ, ИМС}; В — {плата, стойка}. 27. Определите расплывчатое соответствие и постройте примеры. 28. Пусть Х={Х1, х2, Хз}, Y—{yi, у2, у3, у4]. Задайте расплывчатое отноше- ние ф матрицей, элементами которой будут степени принадлежности |1(хг-, r/j). 29. Опишите три основных типа универсальных алгоритмических моделей. 30. Дайте определение алгоритма как алфавитного оператора. 31. Постройте схему машины Тьюринга и опишите принцип ее работы. 32. В* чем состоит один из основных результатов Тьюринга? 33. Приведите классификацию решаемых и нерешаемых проблем. 34. Определите алгоритмы подклассов Р, NP, NPC. 35. Составьте операторный алгоритм ’Ван Хао, реализующий операцию объединения двух произвольных множеств. 36. Составьте алгоритм поиска минимального элемента из множества М, заданного в виде Л4={4,8, 9, 12,7,3} на основе ЛСА. 37. Составьте алгоритм поиска максимального элемента из множества М = = {1,8,5,7,12} на основе ГСА. 38. Составьте логическую схему алгоритма упорядочивания массива из п чисел в порядке убывания элементов. 39. Составьте логическую схему алгоритма вычисления по формуле п U=2 At—bk (k=l, 2, т). i=l 40. Составьте структурную схему алгоритма вычисления по формуле п П Ci. i=l 41. Составьте структурную схему алгоритма вычисления значений функции yitj — XiZjj ..., Х5, Zj — Z[, Z2, ..., 2ц). 42. Составьте ГСА алгоритма вычисления по формуле п п П П си. 7=1 1=1 43. Составьте словесный алгоритм определения 5 4 У — bj. i=l j=l 44. Определите расплывчатые алгоритмы и приведите их классификацию. 45. Постройте структурную схему расплывчатого алгоритма «р1азмещение разногабаритных элементов» на кристалле интегральной микросхемы ПО' крите- рию минимизации площади кристалла. 46. Постройте смешанный граф, орграф и неорграф G=i(X, U), |Х|=10, |£7|=il4. 47. Постройте структурные схемы алгоритмов выделения из графа сугра- фов и .подграфов с заданным числом ребер. 48. В полном графе Кп, п=7, выделите одно из пп~2 покрывающих де- ревьев. 107
49. Для полного графа с четырьмя вершинами постройте все покрывающие неизоморфные деревья. 50. Постройте произвольный мультиграф G=(X, U), i|X|=n, 11 = m с п = =8, /п=14, определите его мультичисло. 51. Постройте граф G=(X, U) с п=7, т—13. Задайте его с помощью матриц смежности и инцидентности. Постройте граф-схему алгоритма перехода от одной матрицы к другой. 52. Подсчитайте число суграфов, включая изоморфные, в графе G= (X, U) |Х| =п. 53. Разработайте структурную схему алгоритма определения связности гра- фа фрагмента схемы (см. рис. 2.47). 54. Предложите 'методы построения графов с эйлеровыми и гамильтоновы- ми циклами на заданных наборах вершин и ребер. 55. Постройте алгоритм построения двудольных графов с заданным числом вершин. 56. Постройте произвольный граф G=(X, U), |X|=n=ilO, |(7|=m=18, оп- ределите его цикломатическое число. Укажите, какие ребра должны быть уда- лены из графа, чтобы он стал ациклическим. 57. Определите хроматическое число- неполного связного графа G=(X, U) с п = 8, т=18. 58. Постройте алгоритм раскраски графа схемы i(cm. рис. 2.47). 59. Определите множество полных графов, содержащих одновременно эйлеровы и гамильтоновы циклы. 60. Постройте ЛСА выделения компонент связности на примере фрагмента схемы (см. рис. 2.47). 61. Постройте граф Gr размером 3X4 и определите d3,i2- 62. Для графа на рис. 2.41,6 определите семейство внутренне устойчивых подмножеств. 63. Для графа на рис. 2.24 определите семейство клик. 64. Для графи на рис. -2.24 определите семейство внешне устойчивых под- множеств и ядра графа, если они имеются. 65. Определите число планарности полного графа с 26 вершинами. 66. Определите толщину, шероховатость и число скрещиваний полного гра- фа с 37 вершинами. 67. Задайте граф D=(X, U), |А"| =7, |(7|=45, постройте его матрицы смежности и инцидентности. Определите для каждой вершины р+(хД и 68. Постройте алгоритм раскраски гиперграфа Н=(Х, Е), изображенного на рис. 2.46,6. 69. Задайте фрагмент схемы и для него постройте граф G=.(A’U^'U^, ^)> матрицы Ai, А2, Т, граф G= (X{JE, U), гиперграф Н, двудольный орграф, муль- тиграф, граф G=\(X, U). 70. Задайте гиперграф Н=(Х, Е), |Х,| =7, |£|=6, постройте его матрицу инцидентности А(Н) и соответствующий ему граф Кёнига. 71. Задайте фрагмент схемы и для него- постройте граф, в котором бы учитывалась возможность прохождения трасс под элементами и между кон- тактами. 72. Опишите 'методы поиска в глубину и ширину. 73. На основе поиска в глубину и ширину определите в произвольном гра- фе G= (X, U) кратчайшую цепь. 74. Нарисуйте схему метода ветвей и границ. 75. В произвольном графе G на основе метода ветвей и границ определите семейство внутренне устойчивых подмножеств. 76. Постройте алгоритхМ раскраски графа с использованием поиска в ши- рину. Рассмотрите его на примере фрагмента схемы ,(см. рис. 2.47). 77. Постройте алгоритм выделения в графе покрывающего дерева с ис- пользованием метода ветвей и границ. 78. В графе G=(X, U), заданном следующей матрицей смежности: 108
1 2 3 1 I О 2 1 3 1 4 О 5 О 6 1 7 1 1 1 О О О О 1 1 1 1 О О 1 1 R = 4 5 6 7 О О К 1 110 1 110 1 0 110 1 О И ’1 <110 0 0 10 0 определите эйлеров цикл на основе поиска в глубину и ширину. 79. Постройте схему метода ветвей и границ для определения существова- ния гамильтонова цикла в графе, заданном в (предыдущем примере. 80. Сформулируйте задачу раскраски графа как задачу линейного про- граммирования. 81. Опишите метод линейного программирования. 82. Приведите примеры решения задач линейного программирования гео- метрическим методом. 83. Сформулируйте основную задачу линейного программирования. 84. Дайте определения нелинейного и стохастического программирования. 85. Дайте определение оптимального1 управления. 86. Опишите метод динамического программирования. Постройте пример-. 87. Сформулируйте задачу определения кратчайшего пути в графе как за- дачу линейного программирования, задачу динамического программирования. Постройте примеры для фрагмента -схемы на рис. 2.47. 3. АЛГОРИТМИЧЕСКОЕ КОНСТРУИРОВАНИЕ СХЕМ 3.1. КОМПОНОВКА На этапе конструирования (решаются вопросы, связанные с компоновкой элементов логической схемы в модули, модулей в ячейки, ячеек в панели и т. д. Эти задачи в общем случае тесно связаны между собой, и их решение позволяет значительно со- кратить временные затраты и трудоемкость указанного- -этапа в САПР. Обычно задачи компоновки рассматриваются как процесс принятия решений в определенных или неопределенных условиях, в результате выполнения которого части логической схемы распо- лагаются 'в (конструктивных элементах г-го уровня, а эти элементы размещаются в конструктивных элементах (г’4-1)-го уровня и т. д., причем расположение выполняется с оптимизацией по выбранно- му критерию. Компоновкой электрической схемы ЭА на конструктивно- за- конченные части называется процесс распределения элементов низшего конструктивного уровня в высший в соответствии с вы- бранным критерием. Основным для компоновки является крите- рий электромагнитотепловой совместимости элементов низшего уровня. Данный критерий определяет область допустимых разбие- ний схемы, на которой формулируются другие критерии. Такими •критериями могут быть: минимум типов конструктивно- закончен- ных частей, плотность компоновки, минимум соединений между устройствами, простота диагностирования схем и др. Очевидно, что внешние -соединения -между частями схем являются одним из 109
важнейших факторов, определяющих надежность ЭА. Поэтому наиболее распространенным критерием является критерий мини- мума числа внешних связей. Выполнение этого критерия обеспе- чивает минимизацию взаимных наводок, упрощение конструкции, повышение надежности и т. д. В связи с этим рассмотрение мето- дов компоновки электрических схем будет проводиться в основ- ном на примере критерия минимума числа внешних связей. Исходной для решения задачи компоновки ЭА является элек- трическая схема соединений. Для алгоритмизации и формального решения задачи производится переход от электрической схемы соединений ЭА к графу, к мультиграфу, к гиперграфу одним из методов, описанных выше. Сформулируем теперь задачу компоновки схемы ЭА как зада- чу разбиения графа G=(X, U) на части Gi=(Xif Ui), Xi^X; Ui<=JU, te/={l, 2,. . . ,/}, где I — число1 частей, на которое разби- вается граф. Совокупность частей B(G) называется разбиением (разреза- нием) графа G =(X,)G) если VG^5(G)(G^0), fe/; V Gif Gj^B(G)[Gi^Gj^Xif}Xj = = 0Л(и^и^ = иг^\/и^и^= 0)], U Gi = G. (3.1) fe/ Другими словами, совокупность B(G) = {Gi, G2,...» G;,..., Gj} является разбиением графа G, если любая часть из этой совокуп- ности не пустая, если для любых двух частей из B(G) пересече- ние множества вершин пусто, а пересечение множества ребер мо- жет быть не пустым, а также если объединение всех частей в точ- ности равно графу G. В выражении (3.1) Ui}j определяет подмножество ребер Ui^ ^U, попадающих в разрез (сечение) между частями Gi и Gj гра- фа G. Например, пусть задан граф G, содержащий в вершин и 17 ребер. Одно из возможных разбиений графа G на три части пока- зано на рис. 3.1. Обозначим и назовем его числом реберного соеди- нения частей Gi и Gj графа G. Число реберного соединения всех частей графа /(=1/2 2 S ki,j,i=£j. (3.2) 1=1 j=i В рассмотренном примере число реберного соединения всех трех частей графа К= 12. Задачей разбиения графа G=(X, G) является нахождение та- кой совокупности частей, при которой число1 реберного' соедине- ния графа G удовлетворяло заданному критерию оптимальности. Пусть граф G разбит на части Gb G2,..., Gi. В соответствии с этим разбиением множество ребер U графа G можно представить в виде G=[71UG2U ... UUi= U Ui. (3.3) 1=1 1,10
Тогда каждое подмножество Ui запишем следующим образом: J71 = J7i, ill U2U ... Ut/1} г ... U% = U2, lUt/2, 2U ... Ut/2, i Ui = Ui,1{iUi,2^ ... UGM ... (3-4) Ul=Ul, lU[/z,2U ... U[/z,i ... Ut/jj, ; где Ui — подмножество всех ребер, инцидентных вершинам Xi части Gi\ Ui>i — подмножество ребер, соединяющих подмножество вершин Xi внутри Gi между собой; Ui^U^i) —подмножество ре- бер, соединяющих части Gi и G; между собой. Назовем отношение суммарного числа внутренних ребер (ре- бер подмножеств Ui,i) к суммарному числу соединяющих ребер (ребер подмножеств Uitj) коэффициентом разбиения A(G) гра- фа G: A(G) = 2it/Mi /4-2 2 it/iji = 3 it/i.ii /к. (3.5) i=l I 2 i=lj=l i=l I Коэффициент разбиения A(G) служит для оценки разбиения гра- фа G на части, его можно также использовать для сравнения раз- биения графов. Так, для графа на рис. 3.1 A(G) =5/12 — 0,4. Под оптимальным разбиением графа G=(X, U) будем пони- мать такое разбиение B(G), при котором выполняется условие K = min, т. е. критерием оптимальности является минимальное число ребер, соединяющих части графа между собой. Задача разбиения графа G на части относится к задачам ком- бинаторно-логического типа, получение оптимального решения которых связано с полным перебором различных вариантов раз- биения. Разбиение может быть выполнено двумя путями: упорядочен- ным и неупорядоченным. При упорядоченном разбиении графа G=(X, U) для полученных частей устанавливается определенный порядок. Число упорядоченных разбиений Ву графа G=(X, U)9 111
|Х| = п на I частей Gi=(Xi, £А), G2=(X2, U2), Gi=(X.i, Ut) c числом вершин в каждой части соответственно |Xi| =tii, l^l = = п2,..., |Хг| =щ и i П1 + И2+ ... +т= 3 ni = n i=l определится ло формуле By=n!/ П (ZJ). (3.6) 1=1 Например, число упорядоченных разбиений графа на рис. 3.1 на три части по 3,3 и 2 вершины в каждом равно Ву= —-------= 560. 3! 3! 2! Число неупорядоченных разбиений графа G=(X, СУ), |Х| = п на I частей Gi, G2,..., Gz(ni-j-n2+ • • • +^z = ^) Вн = Ву/ПРД (3.7) j=i где Pj определяет число частей, имеющих по / элементов. Вели- п чина 1/.П (Pj!) введена в выражение (3.7) для учета эквивалент- 7=1 ных разбиений, связанных с упорядочением частей графа. На- пример, комбинации подмножеств вершин Xi, Х2 и Х2, Хл при раз- биении графа G=(X, U) на Gi = (X’i, СУ1) и G2=(X2, УУ2) являют- с эквивалентными неупорядоченными разбиениями, и считать их различными при разбиении моделей схем нецелесообразно. На- пример, для графа на рис. 3.1,а число неупорядоченных разбие- ний составит ВН = ВУ/П (PJ) =560/2!!! = 280. 1=1 При разбиении графа схемы на конструктивно законченные части необходимость учета эквивалентных разбиений очевидна, так как упорядочение в разбиении не приводит к изменению чис- ла внешних ребер. Поэтому в дальнейшем будут рассматривать- ся только неупорядоченные разбиения. Поскольку число возможных разбиений, как видно из (3.6), (3.7), достаточно велико, возникает задача отыскания такого раз- биения, при котором либо A(G) принимает наибольшее значение, либо К — наименьшее. Для получения оптимального результата при разбиении гра- фа G на части можно предложить тривиальный метод, заключаю- щийся в получении всех возможных разбиений и выборе из него наилучшего. Такой путь для конструктора неприемлем, так как он чрезвычайно затруднителен даже для современных быстродейст- 112
вующих ЭВ|М. Наибольшее применение нашли эвристические ал- горитмы разбиения. Они позволяют за конечное число шагов по- лучать локальный минимум, который в общем случае достаточен для практических целей. Введем некоторые классы разбиений. Поэлементным назовем такое разбиение графа G=(X, 1/), при котором >в каждую часть Gi = (Xiy Ui) попадает по одной вершине. В этом случае число, ре- берного соединения всех частей равно общему числу ребер гра- фа, т. е. К=т. Разбиение назовем целым, если B(Gi) = {G}. Число1 реберного соединения всех частей при целом разбиении равно нулю. Для графа G, изображенного на рис. 3.1,ау поэлементное и целое разбиения показаны на рис. 3.2. Очевидно, поэлементное и целое разбиения тривиальны, но играют важную роль при разработке эвристических алгоритмов. В частности, на практике, если это возможно, нужно стремиться к целому разбиению схемы. Други- ми словами размещать всю схему в одном корпусе ИМС. Рис. 3.2. (Поэлементное ’(а) и целое (б) разбиения графа на рис. З.|1,а Существует большое число алгоритмов разбиения графа, кото- рые можно условно подразделить следующим образом: последо- вательные; итерационные, основанные на идеях математического п р о гр а м м и ров ани я; с м еш ан н ы е. Суть последовательных алгоритмов разбиения графа заключа- ется в выборе по определенному правилу вершины или группы вершин, к которым затем присоединяются другие вершины графа с целью образования первой части. Далее процесс повторяется для второй части и т. д. При использовании итерационных алгоритмов сначала граф разбивается на определенное число частей произвольным обра- зом. Затем по некоторым правилам производится перестановка вершин из одной части в другую с целью минимизации числа внешних ребер. 113
В алгоритмах разбиения, опирающихся на идеи математиче- ского программирования, в основном используются методы ветвей и границ и решение задачи о назначении. Алгоритмы разбиения, использующие методы ветвей и границ, состоят из следующих этапов. Сначала определяется нижняя оценка разбиения графа на заданное число частей. Затем произ- водится построение дерева решений и осуществляется поиск оп- тимального результата. Задачу разбиения графа схемы на части можно свести к задаче о назначении так. Ищется назначение кандидатов (вершин графа) на все части, дающее минимальные суммарные затраты, причем каждая вершина графа может быть назначена только в одну часть и в каждой части должны содер- жаться различные вершины графа. К классу смешанных алгоритмов можно отнести алгоритмы разбиения, не вошедшие в рассмотренные. Важной задачей в общей проблеме конструирования является покрытие, т. е. преобразование функциональных схем в принци- пиальные. |Под покрытием схемы понимается представление функ- циональной схемы конструктивными элементами, на которых она будет реализована, и связями между ними. Как правило, форма и результат конструктивной реализации схемы в значительной степени предопределяет надежность рабо- ты устройства. Решение задачи покрытия дает возможность пред- ставить функциональную схему проектируемого устройства в ви- де принципиальной схемы соединения электрических элементов. Однако элементы могут быть различными (резисторы, конденса- торы, транзисторы, интегральные схемы и т. д.). Поэтому при ре- шении задачи покрытия можно рассматривать вопросы выбора класса элементов и минимизации числа их типов. Конечной целью покрытия является выбор оптимальной элементно-технической ба- зы проектируемого устройства. Обычно функциональная схема представляется графом D== = (X, [/), множество вершин X которого интерпретирует логиче- ские элементы, а множество ребер U — связи. Пусть функцио- нальные схемы ЭА необходимо покрыть заданным комплексом интегральных микросхем. Тогда каждую компоненту интеграль- ной микросхемы можно представить в виде подграфа D\. В ре- зультате получим некоторое множество подграфов, соответствую- щих интегральным микросхемам заданного комплекса. Задача покрытия сформулируется теперь как покрытие графа D подграфами из множества \M={D\, D'2,...}. Можно предло- жить следующий путь решения этой задачи. Каждой вершине графа D присваивается вес Shq, где h определяет номер вершины Графа и q — тип элемента логической схемы, соответствующего выбранной вершине графа. Каждому ребру графа ставится в со- ответствие значение функции веса _ (1, если ребро ui}j инцидентно однотипным вершинам; j— { 10 в противном случае. 114
Внутри интегральных микросхем обычно объединяются одно- типные компоненты. Поэтому из нескольких вариантов покрытия схемы выбирается тот, для которого1 <7=1/2 2 2 <7i,j 1=1 j=l минимальна или близка к минимуму. С целью улучшения результата покрытия, полученного на пре- дыдущем этапе, можно производить парные перестановки элемен- тов. Для этого необходимо менять местами однотипные элементы разных интегральных микросхем так, чтобы это приводило к уве- личению их внутренних связей. После перебора перестановок по- лучается окончательный вариант покрытия, который представля- ется в форме, пригодной для использования на дальнейших эта- пах конструкторского проектирования. Во многих случаях современная технология выдвигает требо- вания, связанные с унификацией и стандартизацией методики по- „ крытия. Для интегральных микросхем важнейшим становится этап представления функциональных, а чаще принципиальных схем электронной аппаратуры в виде набора типовых ячеек. Это позволяет сократить время проектирования. Как правило, типовой элемент стремятся спроектировать в ви- де одной специальной интегральной микросхемы. Однако слож- ность и объем принципиальной схемы, а также недостаточно раз- витая база приводят к необходимости изготовления типового эле- мента в виде нескольких микросхем, расположенных на одной подложке. В связи с тем, что число таких микросхем невелико, задача разбиения может быть решена методами линейного про- граммирования. В тех случаях, когда граф схемы содержит небольшое число вершин п<100 и ограничение во времени решения не является критическим, можно ставить задачу получения точного результа- та при разбиении. Для этой цели эффективно1 используются мето- ды математического программирования. Указанное разбиение наи- более целесообразно осуществлять на высшем иерархическом уров- не для разбиения схем ИМС4, ИМС5. Пусть дан граф микросхемы G=(X, U), где х^Х — элемент множества вершин, te/={l, 2, ...,n}; n=|X|, up^U — элемент множества ребер, р<=Р={1, 2, ...,m}, m=|G|. Граф G обычно задается матрицей смежности R=|kijll или списком ребер. Необходимо разбить его на I частей: Gi= (Xb Gbl); G2=(X2, G2,2); ...; Gt= (Xb U^i)- X^X2{) ... UXi = X’ G1UG2U ... UGz=G; Ui = Ui, iUUi, m, где Ui.i — множество ребер, принадлежащих Gr, Ui>m— множест- во ребер, соединяющих Gi с остальными частями графа G, i, т = = 1, 2,..., I. Граф G надо разбить на части так, чтобы мощность множества 115
I и Ui,ni\=K, i^rn, (3.8) m—\ f=l была минимальна. Разобъем множество ребер U графа G на подмножества Ui, причем в подмножество LF включим ребра, инцидентные вершине Xi. U4JU2t).. .U77’U.. .{JUn = U, и{={и\, ...}. Эти подмножества могут быть определены по f-й строке матрицы смежности R гра- фа G. Построим специального вида граф I/, который определяется множеством вершин F={U\ U2,.. ., Un} и условием: LF и № смежны тогда и только тогда, когда iy=j и (7г'Г)(7^=/=0. Далее бу- дем оперировать графом V. i Задачу разбиения графа G можно свести к задаче о назначе- ниях множества вершин F графа V в I групп при выполнении сле- дующих условий: каждая вершина может быть назначена только в одну группу, в каждую группу должно быть назначено задан- ное число1 вершин tii. Введем булеву переменную fl, если вершина и* назначена в 7-ю группу; Уь q — 10 в противном случае. Согласно описанным условиям должны выполняться следую- щие ограничения: I п 2 2 yi,q = nq; r/i,ge{0,l}, (3.9) q=l i=l i= 1, 2, ..., n; q= 1, 2, ..., I. Так как каждое ребро графа может быть инцидентно только двум вершинам Xi, Xj, то оно входит в состав двух и только двух под- множеств 17\ (Д /=/=/. Если подмножества (7* и CF, которые явля- ются вершинами графа V, будут назначены в одну группу, то реб- ро ир будет внутренним. Если подмножества Ui и 1Л поместить в разные группы, то ребро ир будет соединительным, связываю- щим эти группы. Заметим, чтобы ребро ир было внутренним, не- обходимо, чтобы в составе подмножеств, помещенных в одну груп- пу, оно встречалось 2 раза, а для того, чтобы оно было соедини- тельным, — 1 раз. Если просуммировать элементы подмножеств U\ помещенных в одну группу, по модулю 2, то получим число kq соединитель- ных ребер рассматриваемой группы, которое запишется так: п &?= 5 (2«’р)«/<, «'(mod2), г = 1 р utp^lF. (а.10) Если Хг и Xj — смежные вершины, то и{р = и^р = ир. Так как не- обходимо минимизировать общее число К, то целевая функция примет вид: минимизировать 116
K= S Щи1р)Уг, i (mod 2)+ ... +2 g(mod 2) (3.11) 1=1 p i=l p при выполнении ограничений (3.9). Если общие элементы, входя- щие в подмножества СЛ, вынести за скобки, то выражение (3.11) примет вид: минимизировать К= s Up(yi, i+yj, 1) (mod 2)+ ... + 2 ир(уг, q+yj, g) (mod 2). Р=1 Р=1 Так как г/г-,д — булева переменная, то можно утверждать, что (Уг,д+//:),д)'(то(12) = |yi,q—yj,q\. В этом случае целевая функция запишется следующим образом: минимизировать К= S ир]Уг, 1— Уз, 11 + ... + 2 (3.12) Р=1 Р=1 Для однозначного решения уравнения (3.12) введем дополнитель- ные переменные zp>q, приняв \yi,q—yjtq\^P,q> ?Р, q~ (У^ д~У 3, <?) >0 И Zp, q + (Уг, q~ У], q) > 0. (3.13) Тогда задача минимизации числа соединительных ребер' графа при его разбиении окажется эквивалентной следующей задаче це- лочисленного программирования: минимизировать т т К= 2 upzP) 1 + ... +2 upZp, i p=i p=i при ограничениях (3.9) и (3.13). Если расположение некоторых вершин в определенных груп- пах задается заранее, т. е. Уг,д=1, то число ограничений умень- шается и решение задачи упрощается. Современные ЭВМ могут решать задачи математического программирования, содержащие несколько сотен ограничений, а в некоторых случаях —и 1000. .Пример. Пусть задан граф (рис. 3.3,а), который необходимо разбить на три части с «1 = 3, «2=3, «з=|2 числом вершин в каждом. Тогда целевая функ- ция запишется следующим образом: Л=«1|#2,1—#8,г|+^г|#2,1—#4,11+«з|#8,1— —У4,11 + м41 Ут, 1—Узл1 + ^51 Уб, i—Узл1 + «б|#7,1 — Уба | +м?| Узл—Утл I + ^s|#6,i ~У4ЛI + + Иэ|#6,1---У1Л | + W1| #2,2—#8,2, + «2|#2,2— #4,2, + «з|#8,2— #4,г| + «4|#7,2— #3,2 | + + «s|#5,2 УЗ,2 | +«6 | У1,2 //5,2| + Щ | УЗ,2 Ут&\ + «8| Уб,2 #4,2 | + «9 | #6,2 #1,2 | + + «1|#2,3 #8,3 | Т ^2|#2,3 #4,3 | + ^3 | #8,3 #4,3 | + «4|#7,3 #3,3'| + «5 | #5,3 #3,3 | + + иб | #7,3-#5,3 | + «7 | #8,3-#7,3 | + ^8 | #6,3-#4,3 | + ^91 #6,3-#1,3 | #1,1 + #1,2 + #1,3 = 1J #2,1 +#2,2 + #2,3=1; #3,1+#3,2 + #3,3= 1; #4,1+#4,2+ #4,3=1; #5,1+#5,2 + #5,3= 1J #6,1 + #6,2+#6,3 = |1; #7,1+#7,2 +#7,3= 1; #8,1 + #8,2 + #8,3 = Т ; #1,1+#2,1+ #3,1+ #4,1+#5,1+#6,1+#7,1+ #8,1 = 3; #1,2 +#2,2+ #3,2 +#4,2 + + #5,2 + #6,2 + #7,2 + #8,2' = 3. Полагаем иР = 1. Решая данную задачу, находим значения переменных, ми- нимизирующих целевую функцию #8,i=l; #2,1 =1; #4,1 = 1; #7,2=1; #з,2=1; 117
*/5,2=1; «/1,3=1; */б,з=1. Остальные значения yi,q — нулевые. В соответствии со значениями (Переменных yi,q разбиваем граф. Вершины х2, х4, х8 помешаются в первую группу; Хз, Х5, х7 — во вторую; Xi, х6 — в третью. На рис. 3.3,6 пред- ставлен граф разбиения. Отметим, что приведенная модель решения задачи разбиения графа при- годна и для разбиения мультиграфа. Для этого, в уравнения 3.12 вместо иР нужно подставить соответствующие значения кратности ребер. Рис. 3.3. Граф до (а) и после (б) разбиения на три части Выше был сформулирован критерий разбиения графа на части с минимизацией числа соединяющих ребер. Если так формиро- вать части Gi— (Xi, Ui) графа G, чтобы каждая содержала воз- можно большее число ребер в множестве Uiti, то нетрудно видеть, что при этом будем получать локальный минимум К. Формирование частей графа схемы в соответствии с записан- ным положением составляет суть последовательных алгоритмов разбиения. Опишем несколько алгоритмов последо- вательного' тип а. Пусть задан граф схемы G=(X, U), который необходимо раз- бить на I частей Gi, G2,..., Gi с числом вершин в каждой соот- ветственно nlf п2,..., П/(П1+п2+ ... +ni = n). Работа начинается с формирования первой части G\. В графе G определяется вершина х^Х с наименьшей локальной степенью p(x2-)=min. Если таких вершин несколько, то предпочтение отда- ется той вершине, которая имеет большее число кратных ребер. С этой вершины начинается построение. G этой целью в Gi пер- воначально включаются Xi и все вершины, смежные ей. Обозна- чим это множество Fxi. Если полученное число вершин равно п,\, то Gi образована. Если это число больше то удаляем «лиш- ние» вершины, связанные с остающимися вершинами G меньшим числом ребер. В случае, когда мощность множества меньше П1, то из Fxi выбирается вершина, удовлетворяющая условию io(Xj) =p(Xj,)—aj= max o(xj), Xi 118
где aj — число ребер, -соединяющих вершину Xj -со всеми невы- браиными вершинами. Строим множество вершин смежных Xj, и процесс выборки вершин G\ повторяется. Образованный под- граф Gi исключаем из исходного'. Получаем граф G*=i(X*, G*), где Х*=Х\ХЬ U*=U\ Ui. Далее в графе G* выбирается верши- на с наименьшей локальной степенью. Производится ее помещение в G2, и процесс повторяется до тех пор, пока граф G не будет раз- резан на I частей. Нетрудно видеть, что описанный алгоритм, прост, позволяет быстро получать результаты разбиения, однако в общем случае может привести к неоптимальным результатам. Наибольшая эф- фективность данного метода последовательного разбиения графа имеет место, когда число вершин графа G значительно больше числа вершин в любой части разбиения п^>п\, Рассмотрим -пример работы алгоритма. Пусть граф G (рис. 3.4) задан мат- рицей смежности Х1 х2 х3 х4 Хб х7 *1 0 2 3 О' 0 0 0 p(xi)=5, х2 2 0 1 11 0 0 0 р(х2)=4, х3 3 1 0 0 0 1 0 р(хз) = 5, R= ч 0 1 0 0 1 4 0 р(х4)=6, Хъ 0 0 0 1 0 1 5 р(х5)=7, xQ 0 0 1 4 1 0 1 р(х6) =7, Х1 0 0 0 0 5 1 0 р(х7)=6. Необходимо разрезать граф G на три части: G2, G3, содержащих соответ- ственно 3, 2 и 2 вершины. Определим локальную степень вершин путем сум- мирования элементов строк матрицы R. Выбираем вершину х2, обладающую наименьшей локальной степенью, и строим множество Гх2={х2, xit х3, х4}. Так как мощность множества |Гх2| >«ь то- необходимо удалить лишнюю вершину. Для этого произведем условное удаление каждой вершины из Гх2 и подсчи- таем число ребер, связывающих эту вершину с оставшимися -вершинами Гх2. При удалении вершины Xi число ребер, соединяющих ее с Гх2\Х1, равно zX1=5, аналогично’ для х3 ^х3—4, для х4 Zx4 =(1. Следовательно, из множества Гх2 удаляется вершина х4. Получаем Gi=«(Xi, GJ, Xr={xi, х2, х3}. Рис. 3.4. Пример графа G для последовательного разбиения Рис. 3.5. Граф G* = = G\G. 119
Из графа G удаляем Gi, получаем граф G*, изображенный на рис. 3.5, матрица смежности R* которого примет вид Х4 Х5 Х6 Х7 0 1 4 0 р(х4) =5, R* = 1 0 1 5 р(х5) =7, 4 1 0 1 р (х6) =6, 0 5 1 0 р(х7)=6. Определяем локальные степени вершин. ’Выбираем вершину Х5 и образуем Гх5 = = {х4, х5, хб, х7}. Получаем, что |Гх5| >п2, поэтому производим условное уда- ление вершин из Гх5 и определяем Zx4=6, zX6=6, Zx7=6. Удалим вершину х± Но и для оставшегося подмножества Гх$\х4 мощность больше п2. Поэтому снова производим условное удаление вершин из {%5, *6, х7} и определяем zx 8 =2, £«*=6. Следовательно,, 62 состоит из вершин Х5 и х7, а 6з соответст- венно будет содержать вершины х4 и х6- Искомое разбиение графа G показано' на рис. 3.6. Число реберного соеди- нения графа Л=5, а коэффициент разбиения A(G)=3. Рис. 3.6. Разбиение графа на рис. 3.4 Рис. 3.7. Разбиение графа на рис. 3.4 с минимизацией С Можно предложить и другой критерий для задачи разбиения графа на части. Это минимум числа внешних контактов С, через которые производится соединение частей между собой. Сходство и отличие К и С покажем на примере. На рис. 3.6 и 3.7 -приведены два одинаковых варианта разбиения графа G (см. рис. 3.4) на три части по критерию К и различные по критерию С. При разбиении графа рис. 3.6 С= 10, а для варианта разбие- ния рис. 3.7 С = 6. Видно, что минимизация К ведет к уменьше- нию С. Заметим, что объединение ребер возможно лишь в том случае, если они принадлежат к одной и той же цепи. Часто при разбиении ставится требование получения равных по числу вершин частей графа. Кроме того, как правило, неко- торые вершины графа жестко закрепляются за определенными частями. Такие вершины называются запрещенными. Опишем последовательный алгоритм разбиения графа, приво- дящий к получению локального минимума числа реберного соеди- нения за 'конечное число шагов при наличии ограничений. 120
Пусть заданы граф схемы G=(X, U) и подмножество запре- щенных элементов Q^X, |Q| =q. Требуется найти такое разбие- ние B(G) графа О на I одинаковых частей Gb G2,..., Ог, чтобы суммарное число соединяющих ребер было минимальным. Основная идея метода заключается в следующем. Перед нача- лом работы в каждой части нет ни одной вершины графа. Сна- чала распределяются запрещенные вершины. Формирование пер- вой части начинается с вершины xe^Q, которую априорно' счита- ем входящей в (множество вершин Xi из Gi=(Xb 1Л). Составле- ние частей разбиения будем вести по уровням. Вершина Хе в Gi образует первый уровень. На первом уровне множество1 Xi = = {хе}. Для определения вершины следующего уровня, т. е. вто- рой вершины, которую необходимо поместить в Gb строится мно- жество вершин, смежных Хе, ее£,= {1, 2, ...,<?}. Обозначим это множество Гхе. Введем понятие относительно веса для любой вер- шины графа б(Хг)=р(Хг) 2 k> (3.14) k=l ni где 2 ai,k — число ребер, соединяющих вершину Xh с вершинами /г=1 подмножества Хь |Xi| =nb Из определения критерия компоновки следует, что для полу- чения требуемого разбиения из (множества Гхе необходимо вы- брать вершину с минимальной величиной 6(xi), т. е. такую вер- шину, ДЛЯ которой б(Хг)= mill б(Хг), где te/={l, 2,...,/}, t = х^Гхе = |Гхе]. Вершина хг- является вершиной второго уровня. На вто- ром уровне Xi = {xe, Xi}. Далее рассматривается множество Гх8иГхг, и для каждой вер- шины Хй^(Гх8иГхг) определяется относительный вес по формуле (3.14). Выбирая вершину Xh с минимальным весом, получаем Xi = = {хе, Xi, Хь}- Указанный процесс продолжается до тех пор1, пока множество Xi не будет содержать 1ц элементов. Полученная часть Gi удаляется из графа G. Формирование последующих частей ве- дется аналогично. Если при формировании части Gi графа G несколько1 просмат- риваемых вершин имеет наименьший относительный вес, то в эту часть необходимо помещать вершину, имеющую большую' локаль- ную степень. Покажем это. Пусть для вершин хь х^Х графа G= (X, U) локальные степени p(xi)>p(xj), а по определению t t Р (^) S ^i, it p (^j) 2 fy, T. e. б', (Xi) = 6 (xj) • (3.15) #=i &=i Из равенства (3.15) следует, что t t 2 S fy, h- k=l fe=l Общее число соединяющих ребер Gi до внесения в него вершины 121
Xi обозначим через fi. Тогда три помещении в бг- вершины хг- но- вый относительный вес бн(*г) =б(Хг) +fi—*2 (3.16) а при помещении вершины Xj в Gi ее новый относительный вес бн (Xj) = б (х^ + fj 2 cijy k. (3.17) Сравнивая (3.16) и (3.17) с учетом того, что 6(xJ =6(xJ, полу- чаем 6n(Xj) >бн(xi). Следовательно, в Gt необходимо поместить вершину х^ имеющую большую локальную степень, чем Xj. Итак, задача разбиения графа G свелась к построению' на каждом шаге множества fxi, его упорядочиванию и помещению в Gi вершины из fxi с минимальным значением б(%г). Проанализи- руем работу алгоритма на примере. 'Пусть дан граф G=(X, U), изображенный на рис. 3.8, матрица смежно- сти которого имеет вид Л'1 х2 Хз х4 х5 х6 х7 Х8 Xq Хю Хц Х12 хх 0 1 4 0 0 0 0 0 1 1 0 0 P(*i)=7, х2 1 0 0 1 2 1 0 0 1 1 0 1 Р(х2)=8, х3 4 0 0 0 0 1 0 0 1 2 б 0 р(хз)=8, х4 0 1 0 0 2 0 .1 0 0 0 3 1 р(х«)=8, Хь 0 2 0 2 0 0 11 3 0 0 0 0 р(х5)=8, хб 0 1 1 0 0 0 0 0 0 0 0 3 р(х6)=5, х7 0 0 0 1 1 0 0 1 0 6 1 1 р(х7) = 11 *8 0 0 0 0 3 0 1 0 0 0 0 0 р(х3)=4, Xq 1 1 1 0 0 0 0 0 0 0 0 0 р(х9)=3, хю 1 1 2 0 0 0 6 0 0 0 0 1 р(Хю)=11 Хц 0 0 0 3 0 0 1 0 0 0 0 1 р(Хц) =5, Х12 0 1 0 1 0 3 1 0 0 1 1 0 P(xi2)=8. Необходимо разбить этот граф на три части но четыре вершины в каж- дой. Задано, множество запрещенных вершин Q={xb х5, х10}. Построим Gb Выбираем вершину Xi и записываем Л\ = {х1}. Далее рассматриваем множество ГХ1 = {Х1, xs,, х3, х9}. Вершина Хю в Гх1 не включается, так как она является запрещенной. По. формуле (3.14) определяем относительные веса вершин из Гxif кроме вершины хь уже вошедшей в Хь б(х2) =р(х2) — 2 a2,h = 8~4=7; б(х3)=8—4 = 4; 6(х9) = р(х9) —У а9 fe = 3—1=2 k=l Вершину Xq включаем в Gi=i(Xb Ui). Получаем Хг = {хь х9}. Построим теперь множество Гх1[)Гх9= {хь х9, х3, х2} и определим относи- тельные веса для вершин х3, х2: б(х3)=р(х3)— 2 Оз,ь=8—5=3; б(х2) =8—2=6. fe=l Вершину х3 с наименьшим весом помещаем в Gb тогда Xi = {xb х9, х3}. Со- ставляем множество Гх1иГх9иГх3= {xi, х9, х3, х2, х6} и записываем б(х6) = 122
= 5->1=4, б(х2)=8—2=6. Вершину х8 включаем в Gb получаем Xi = {xb х9, х3, х6}, на этом образование в Gb заканчиваем. После удаления его из графа G получаем граф G'=G\Gb Аналогичным образом проведем разбиение графа G' и выделим из него части G2 и <?3. Из множества Q ’берем запрещенную вер- шину х5, следовательно, Гх8={х8, х2, х7, х8, х4}, ^2={xs}. Относительные веса вершин из Гх8 определяются 6(х2)=5—2=3; 6(х7)=11—4=110; б(х8)=4—3=11; 6(х4)=6. В Х2 помещается вершина х8, так как у нее относительный вес мень- ший. Тогда запишем X2 = {x5, х8}. Строим множество Гх5и^х8={х5, х2, х7, х8, х4} и определяем новые относительные веса 6i(x7) = 14—2 = 9; б(х2) = 5—2=3; 6(х4)=8—2 = 6. В подмножество Х2 помещаем вершину х2, Х2={хь, х2, х8}. За- писываем Гх9иГх2иГх8={х5, х2, х7, х8, Xi2, х4} и определяем б(х7) = 1|1—2 = 9, 6(Xi2)=5—4=4, б(х4)=8—3=5. Следовательно, Х2={х5, х2, х8, х12}. Тогда под- множество вершин третьей части Х3={хю, х7, хп, х4}. Граф после разбиения показан на рис. 3.7,6. Число реберного- соединения Л=49, а коэффициент раз- биения A(G) =24/19. Алгоритм наиболее эффективен, если матрица, представ- ляющая граф, содержит мало нулевых элементов. Рассмотрим алгоритм разбиения схем на подсхемы с исполь- зованием матрицы цепей. Критерием разбиения является мини- мум числа внешних соединений между подсхемами. Исходной ин- формаций для выполнения алгоритма являются матрица Т и спи- сок запрещенных элементов. Оптимальному разбиению графа схе- мы соответствует разбиение матрицы Т на подматрицы Ti,..., Т/ такие, что Т = 1Л\; S | Т^ПТ^| =K->min. j Для подсчета числа связей ki}j между частями графа схемы и числа контактов электрического соединителя каждой части вве- дем вспомогательную матрицу S = Hsijllpxi, где I — число частей разбиения; р — число электрических цепей в схеме; _ р, если в Gi^G имеется вершина, инцидентная / цепи; 10 в противном случае. Матрицу S удобно строить непосредственно по матрице Т, так как построение по ее графу схемы требует значительных затрат ручного труда. Например, пусть задана матрица 1 2 3 4 5 6 7 8 9 10 11 12 13 14 *1 1 0 0 0 0 0 2 4 0 0 0 0 0 3 Х2 5 0 0 0 0 0 6 8 О 0 0 0 0 7 х3 0 0 0 О 0 0 9 10 0 0 0 0 0 45 х4 14 4 13 2 41 3 15 12 1 45 45 0 •15 0 19 6 18 8 17 7 16 16 '5 15 15 0 15 0 хе 20 10 24 9 0 0 0 0 0 0 15 0 15 0 х7 0 0 12 0 22 0 11 0 0 24 0 0 23 0 х8 0 0 13 24 22 23 14 0 0 26 0 0 25 0 Т= х9 0 0 16 26 22 25 47 0 0 28 0 0 27 0 *ю 0 0 18 28 22 27 19 0 0 30 0 0 29 0 *11 0 31 21 30 22 29 20 0 0 0 0 0 0 0 *12 0 0 0 31 0 0 0 0 0 0 0 0 О' 0 *13 0 0 0 0 0 0 0 123 0 0 0 0 0- 0 22
некоторого фрагмента схемы (рис. 3.9), которую (необходимо разбить на три части. Произвольно разобьем схему G на три части: ^i); G2=(X2, U2)\ G3=((X3, t/3), Xi = {xl} x2, x3, x4}; A2={%5, %6, ^7, *8}’> X3 — {%9, %1O, Xll, X12, X13}. Используя алгоритм, по- матрице Т определяем матрицу S: 1 1 2 1 3 1 4 1 5 1 6 1 7 il 8 1 9 1 10 1 Ш 1 12 il 13 1 114 1 15 il 16 0 17 0 s= 0 0 0 0 1 1 1 1 1 Г 1 1 1 1 1 1 1 -> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 18 19 20 21 22 23 24 25 26 27 28 29 30 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 —> 1 1 1 1 1 1 1 1 1 0 0 О' 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 1 Подсчитаем теперь число связей между частями, полученными при таком раз- биении. Определение число- связей К основано на том, что цепь, инцидентную g частям, всегда можно провести так, чтобы она образовала не более чем (£—1) внешнюю связь (соединяющее ребро). Рис. 3.8. Граф G до (а) и после (б) разбиения с использованием запрещенных вершин Рассматривая матрицу S, можно заметить, что число единиц в любом из столбцов матрицы равно числу частей Gi, инцидентных цепи, номер которой совпадает с номером столбца. Поэтому для нахождения К необходимо найти сумму элементов каждого столбца, уменьшенную на единицу, и полученные результаты просуммировать. По матрице S легко определить число контактов соединителя каждой части разбиения. Для этого достаточно подсчитать число единиц в строке, соответствующей рассматриваемой части, и сумму, уменьшить на величину, равную числу столбцов, в которых имеется единственная едини- ца, находящаяся в этой строке. После разбиения схемы (см. рис. 3.9) произ- вольным образом на три части по матрице S найдем, что 7<=20, а число -кон- тактов соединителя каждой части соответственно равно = &2 —20; &з = 9. Рассмотрим -идею алгоритма разбиения ио матрицам Т и S путем последовательного формирования частей разбиения с мини- мизацией К. 124
Сначала (число элементов в каждой подсхеме пусто) распре- деляются запрещенные элементы. Если таких нет, то разбиение начинается с предварительного распределения остальных элемен- тов. После этого осуществляются последовательная выборка строк и определение той Gt, при помещении в которую элемент xq^X дает наименьшее приращение внешних связей. Процесс по- вторяется, пока все элементы матрицы Т не будут распределены. Рассмотрим более подробно процесс определения приращения числа связей A/CS- ’Пусть в каждой части имеется некоторое число элементов. Любая -цепь q схемы образует связь между Gj и ос- тальными частями, если она инцидентна элементам из Gj и хотя бы одному элементу из любой другой части. В матрице S этому случаю соответствуют наличие единицы в строке sj на пересече- нии ее со столбцом q и присутствие единицы среди остальных элементов этого столбца. Каждой строке x'i матрицы Т можно сопоставить строку £*о = = l|si,dllixp> где — St,6—принимает значение 1, если элемент Хг подключен к цепи б, и 0 в противном случае. Покажем на примере схемы, изображенной на рис. 3.9, типичный шаг рабо- ты алгоритма компоновки. Исходной ,информацией являются граф схемы G = = (X, U), |X|=il3, X={xi, х2, •••, *1з} и его матрица п-епей Т, которая для рас- Рис. 3.9. Фрагмент схемы сматриваемой схемы приведена выше. Граф схемы необходимо разбить на три части: Gi=i(Xi, £Л); G2=(X2, t/2); G3=(X3, t/3), U Gi = G с минимизацией i= 1 числа соединительных ребер. Число вершин в частях должно' быть соответствен- но равно' |%i| =4; |Х2| =4; |Х3|=5. 125
Пусть после нескольких шагов работы алгоритма найдено, что элементы %4, Xi, X7^Xi; хг, Х5^Х2‘, Хз, х8^Хз. Вспомогательная матрица в этом случае примет следующий вид: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 11111000000 .1 111100 S = 2 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 1 1 3000000001 10000100 18 19 20 21 22 23 24 25 26 27 28 29 30 31 000011 1 0000000 1 100000 0000000 0011000 0000000 Согласно алгоритму разбиения из матрицы Т выбираем строку /8, соответст- вующую нерассмотренному элементу х8, и строим для нее вектор-строку s80=6000000000001100000001111100000. Далее находим приращение внешних связей при расположении элемента х8 в Gi, G2 и 63, т. е. определяем АК8Ь ДК82 и АЛ83. Для этого сначала определяем поразрядную дизъюнкцию вектор-строк s2 и s3, Si и s3, $i- и s2: s2= 000011110000001111100000000000 s3 = 0000000011000010000110000000000 s2Vs3= 000011 111 11100001111 1 11 10000000000; Si = 1111000000111110000001110000000 S3 = 0000000011000010000110000000000 Si V$3 = 111100001Ш111110000111110000000; S1= 1111000000111110000001110000000 s2 = 0000111100000011111000000000000 Si Vs2= ,1111Г11100111111111001110000000. Затем определяем инверсии строк sb s2, s3 матрицы S: Si = 0000111111000001 111 1100011 111 11; s2=iH 110000111 llllll OOOOOilill 111 illll 11 il; s3=il 111111110011110111100,1111111111. Для вычисления A A S’ находим поразрядную конъюнкцию строк (s2Vs3), S8oSb (S1VS3), S80$2; (S1V$2), S80, <S3; (s2 Vs3) S8OS1 = 0000000000000000000000000000000 ; (siVs3)s8os2=0000000000001100000001110000000 ; (si Vs2)s8os3=OOOOOOOOOOOO1 100000001110000000 * Суммируя число единиц в каждом из полученных выражений, имеем AK8i = 0; А7(82=5; АК83='5. Так как AK8i = 0, то элемент х8 помещается в Gr. При этом число внешних связей не изменится. Далее строка Si матрицы S мо- дифицируется поразрядным объединением со строкой s80. Заметим, что при вне- сении х8 в Gi число элементов оказалось равным заданному. На этом форми- рование Gi закончилось. Осталось .распределить элементы х9, Хю, Хц, Xi2, Xi3 между G2 и G3. Из матрицы Т выбирается строка х9, соответствующая элементу х9, и вы- полняются те же операции, что и для строки х8. Аналогично поступаем с оставшимися строками Хю—xi3, пока не будут сформированы G2 и 63. 126
В рассматриваемом примере в результате работы алгоритма были сформи- рованы следующие части: Gi=i(Xi, t/i); Xi = {xi, х4, х7, х8}; G2= (Х2, U2)\ Х2= = {х2, х5, х9, хю}; Сз= (Л'з, Е3); Л'3={х3, х6, хи, х12, х^}. Число внешних связей уменьшилось с Д=20 (для произвольного разбиения) до Д=8. Окончательный вариант компоновки графа схемы рис. 3.9 показан на рис. 3.10. Алгоритм наи- более эффективен, когда схема содержит значительное число, разветвленных це- пей и элементов. Если свести задачу разбиения к последовательному формиро- ванию выделяемых конструктивных единиц, то на языке гипергра- фов эта задача формулируется следующим образом. Необходимо разбить множество вершин X гиперграфа Н= (X, Е) на два под- множества Xi и Х\ Хг так, чтобы минимизировать значение целе- вой функции т f=Zpi,qr, (3.18) 7=1 _[ 1, если ( 1, если Ifl(X \ Xi) =# 0; lO, если ZJ(1A’1 = 0; \0, если(Х\А\) =0. Таким образом, произведение pj, равно единице, если вершины ребра lj принадлежат как Х\, так и XXA'i, т. е. электрическая цепь, представляемая /?-, разрывается. Иначе говоря, f — это чис- ло ребер гиперграфа Н, которые содержат хотя бы одну верши- ну из Xi и хотя бы одну (вершину из X \ Xi одновременно. Рис. 3.10. Окончательный вариант компоновки (Е=8) Для построения последовательного алгоритма разбиения мно- жества вершин X гиперграфа на Х\ и X \ Хх необходимо ввести оценку каждой вершины гиперграфа относительно уже сформиро- 127
ванной части множества Х\. Для получения оценок удобно ис- пользовать матрицу инцидентности гипер графа Н = (X, Е) I — IIГг, j Пихт 9 г____[1, если г'д 10, если Xi lj. Пусть гиперграф задан следующей матрицей х3 х4 1=%6 хб х7^ %8 Х9 Х10 h 1 О 1 О О О О 1 О О О о о о 1 о о 1 о о /з Z4 Z5 О 1 о 1 о о О 1 о О О 1 ООО О 1 о 1 о о ООО 1 о о О 0 1 Ze Z7 Z8 ООО 1 О 1 О 1 о 1 о о ООО О 1 о О О 1 1 о о О 1 о О О 1 4 4о Zu 1 о о ООО ООО О 1 о 1 0 1 ООО О 1 о ООО ООО О 1 1 Пусть некоторые вершины ха<^Х уже вошли в множество’ Xi. Тогда для произвольной вершины xt^X \ предлагается оценка a(xt) следующего вида: a(xt)= £ rt, pj), 7=1 где rt,j— элемент матрицы I; , _ (1, если да\ (X10{xt})]= 0-, Q j — 4 10 в противном случае. (3.19) Из этого видно, что величина q'j равна единице только в том слу- чае, если ребро lj кроме вершины xt соединяет хотя бы одну вер- шину из X \Xi, т. е. электрическая цепь, представляемая ребром lj, при переносе элемента xt в выделяемую' область разрывается. Величина pj равна единице, если хотя бы один элемент из lj уже включен в множество Х\. Таким образом, оценка а(%/) отражает изменение числа разрезаемых цепей при переносе элемента t схе- мы из одной области в другую и может принимать значения поло- жительные, отрицательные и равные нулю. Исходя из содержа- тельного смысла оценки a(xi) каждой вершины пред- лагается включать в множество Xi на данном шаге ту вершину Xt, для которой a(xt)= min (a(Xi)). (3.20) Запишем алгоритм в виде логической схемы алгоритмов Л0Л11 МгЛз/?! | МКл 128
где Ло, Лк — операторы начала и конца алгоритма соответственно} At —'включение в Xt вершины Ла — определение а(х<) для всех x,eX\Xi; Аз— определение xt на основе (3.20) и включе- ние ее в Xf, pt — логическое условие; если pi=.l («да»), то после оператора Лз выполняется Лк, если pi=0 («нет»), то после Аз вы- полняется Аг. Логическое условие проверяет, равно ли |Xi|=ni. Рассмотрим работу алгоритма на примере разбиения гиперграфа, матрица инцидентности I которого записана выше. Пусть необходимо- выделить множе- ство Xb |Xi|=5. Включим произвольно вершину Xi в множество Хь Опреде- лим по (3.20): а(х2)=3; а(х3) = 1; а(х4)=3; а(х5) = 1; а(х6) = 1; а(х7)=3; а(х8)=2; а(хэ)=2; а(хю)=4. Следовательно, можно выбрать вершины х3, Хд, хб. Для определенности выберем вершину с меньшим индексом и включим ее в Хь На втором шаге Xi={xb х3). Определим а(х2)=3; а(х4)=3; а(х5) = 1; а(х6)—1; а(х7)=3; а(х8) = 1; а(х9) = 1; а(хю)=4. По (3.20) определяем, что в множество Хх необходимо включить вершину хд. На третьем шаге получим Xi = {xb х3, х6}. Находим а(х2)=3; а(х4)=3; a(x5)=il; а(х7)=3; а(х8) = 1; а(х9)=0; а(хю)1=4. В множество Xi включим х9, тогда Xi = {xi, х3, х6, х9}. По- лучим а(х2)='2; а(х4)=3; а(х5)=11; а(х7)=2; а(х8) = 1; а(хю)=4. В множест- во XL ВКЛЮЧИМ Хд. Получим Х1={Х1, Х3, Хд, Х8, X9}j Х\Х1={х2, Х4, Х7, Х8, Хю}* Разбиение закончено. Нетрудно видеть, что результат использования последовательного алгорит- ма существенно зависит от выбора первой вершины и последующих вершин a равными оценками. Выше были рассмотрены методы разбиения, при которых час- ти разбиения формируются путем последовательного' присоедине- ния вершин по определенным критериям. Представляет интерес рассмотрение такого последовательного метода, при котором об- разуются всевозможные разбиения данного' графа G с минимиза- цией числа реберного соединения. Предварительно введем понятие массива вершин в графе G = = (X, £/). Любой массив вершин Н представляет собой подмноже- ство множества вершин X, т. е. H<=JX. Естественно, что вершины х<=Н соединены внутренними ребрами между собой и внешними ребрами с остальными вершинами Х\Н графа G. Число ребер, соединяющих вершины массива Н с вершинами X \ Н, будем обозначать малой буквой h. Массив Н называется минимальным, если для любого1 другого массива В, ВаН, выполняется условие h<b, т. е. удаление ка- ких-либо вершин из Н приводит к увеличению числа внешних ре- бер. По определению минимальный массив не может быть пус- тым. Кроме того, принимается, что каждая вершина графа G об- разует минимальный массив. Например, на рис. 3.11 показан ми- нимальный массив Я, для которого А=3. Нетрудно видеть, что выделение всех минимальных массивов возможно с помощью рас- смотрения всех подмножеств множества X. Если мощность мно- жества |Х| =и, то известно, что число подмножеств множества X составляет 2W. Следовательно, возникает необходимость иссле- довать свойства минимальных массивов с целью существенного сокращения числа рассматриваемых подмножеств. Введем некоторые обозначения. Пусть HczzX— некоторый мас- сив, состоящий из непересекающихся массивов Нь 5—144 129
I причем .(J Hi=H. В общем случае Hi может представлять собой отдельную вершину. Обозначим через Кщ число ребе|р, соединя- ющих Hi с вершинами X \ Н, т. е. число внешних ребер относи- тельно всего массива Н. Обозначим через Кн^н • число ребер, со- i единяющих массивы Hi и Hj между собой. Тогда число h= 2 Khi i=l На рис. 3.12 показан массив Я, состоящий из Яь Я2, Я3, Я4. Сформулируем основные свойства минимальных массивов. Рис. 3.11. Минимальный массив Н (/1=3) Рис. 3.12. Массив Hi Теорема 3.1. Если массивы Hi и Hj минимальны и не включа- ют друг друга, т. е. Я^Я; и H^Hi, то ЯгПЯ;=0, т. е. они не пе- ресекаются. Покажем это. Предположим, что Hi f] Hj=M=^0. Тогда нетрудно видеть, что Hi=E\jM и Hj=F{iM, где Е и F — два непустых массива, дополняющих массив М со- ответственно до Hi и Hj. Описанная ситуация изображена на рис. 3.13. Ис- пользуя введенные обозначения, подсчитаем число' внешних ребер массивов Hi, Hj, Е и F: И^ = Ке + Км + Кер + Кмр', Ь^=Ке+Км + Кее+Кме’, /=Ке4- + Кем] } = Ке + Кее + КеМ' Рис. 3.13. Пример массивов Hi, Hj Рис. 3.14. Массивы Afi, М2, Fb F2 130
Так как массивы Н$ и Hi минимальны (по определению), то hi<l, hj<f* Тогда запишем КеА-Км A-KefA-Kmf^KeA-KefA-Kem *, KfA~Km+Kef-F, А~ Км e<.Kf А~ Kf е А~ Kf м • Проведя сокращения, получим J КмА-Км f<ZKem ; I Км А-Км e<Kfm , так как Kmf = Kfh', Кем = Кме по определению, то {Км A- Kmf<Kme', Км + Км Е<Км F- Полученные неравенства являются противоречивыми, т. е. предположение, что М=£ 0, ложно, тогда 0 . Рассмотрим соотношения, возникающие между массивами и минимальными массивами в графе. Следствие I. Пусть £, F и М — непустые непересекающиеся массивы, причем Hi=FUM— минимальный массив, a- Hj = F\)M — неминимальный массив. В этом случае hj^f. Следствие II. Теперь рассмотрим случай (рис. 3.14), когда Нг и Н2— минимальные массивы, a Aficz/Zj и \M2cziH2— непустые массивы и lW=7M1U7M2 — массив. В этом случае m>\h\ и m>h2. Рассмотрим теорему, определяющую отношения между мини- мальными массивами. Теорема 3.2. Пусть Hi и Н2 — два минимальных массива. Если P = Hi\}H2 и p<hi, p<Zh2, то1 массив Р также является минималь- ным. Докажем эту теорему от противного. Предположим, что массив Р— = Hi\}H2 не является минимальным, т. е. содержит в себе такой массив QczP, что p^q. При этом массив Q может быть образован следующим образом: a) (Q^H2). Так как Н^(Н2) — минимальный массив, то q^hi (q^. ^h2). Но p^-q, т. е. p^-hi (p^h2). Пришли к противоречию с условием тео- ремы. б) Q=AfiUAf2, где Aficz/Zi, а М2аН2. Из следствия II получаем q>hi, q>h2, т. е. p>hi, p>h2. Пришли к противоречию с условием теоремы. в) Qzd/7i i(Qzd/72). Из следствия I получаем, что q>hXi q>h2, т. е. p>h^ p>h2. Пришли к противоречию. Таким образом, во всех рассмотренных случаях получаем противоречие, т. е. предположение, что Р—-неминимальный массив неверно. Используя метод математической индукции, нетрудно1 распро- странить утверждение теоремы 3.2 на случай нескольких мини-» мальных массивов. Теорема 3.3. Пусть Яь Н2, ..., Hi — такие минимальные мае-* сивы (/>2), что объединение S любых из них не является мини- мальным массивом, где 2^s^(Z—1). Если P = /7iU/72U ... U Hi и p<th, p<h2, ..., p<hs, то массив Р является минимальным. Теоремы 3.1—3.3 позволяют построить алгоритм выделения ми* нимальных массивов. Из теоремы 3.1 следует, что процедура вы- деления массивов сходится и решение единственно, так как вер- шины графа, вошедшие в какой-либо массив, можно в дальней-* шем рассматривать как одну вершину. Теоремы 3.2 и 3.3 определяют способ образования массивов как объединение уже существующих массивов и сравнение обще* го числа внешних ребер. 5* 131
. Для построения алгоритма выделения всех минимальных .мас- сивов лрафа G в соответствии с теоремами удобно использовать его матрицу смежности R. Заметим, что первоначально каждая вершина х^Х графа G считается как минимальный массив с чис- лом внешних ребер, соответствующим локальной степени р(х) вер- шины х. Полученные минимальные массивы будем заносить в спи- сок. Суть алгоритма заключается в следующем. 1°. Попарно анализируются все .вершины графа. G. Если нахо- дится такая пара Н= (х^, xj), что K=p(Xi) +p(xj)—2ri}jr причем Л<р(%г), ^С<1р(х5), где Tij —элемент матрицы R, определяющий число ребер, соединяющих Xi с х^ то Н в соответствии с теоремой 3.2 образует минимальный массив. Массив Н заносится в список 4, а элементы xt, Xj из рассмотрения исключаются. Переход к 2°. Если новых минимальных массивов не образуется, то переход к 2°. Граф G факторизуется относительно полученных массивов, т. е. вершины Xi, х3-, входящие в один массив, заменяются одной вершиной Xij, причем ребра, соединяющие х/, xj между собой, ис- ключаются, а ребра, идущие из xi, Xj к другим вершинам, припи- сываются Xij. На матрице R факторизация заключается в поэле- ментном сложении соответствующих строк и столбцов между со- бой и записи нулей в диагональные элементы. Переход к 1°. 3°. Анализируются все вершины графа G', полученного в ре- зультате последней факторизации, по а = 3 (по1 тройкам). Если на- ходится такая тройка L=(xi, Xj? xk), что /=p(xi)+p(xj)+ip(xfe) — —2rit^2ritk—2rjtk, причем /<р(Хг), /<ip(xj), l<j^(xk)9 то L в co- отвётётвии с теоремами 3.2 и 3.3 образует минимальный массив. Массив L заносится в список А. Переход к 3°. Если массивов по а нет, то переход к 4°. 4°. Параметр а увеличивается на единицу. Переход к 3°. Если число а больше или равно числу вершин графа, полученного в ре- зультате последней факториза- алго- работу ции, то переход к 5 . 5°. Конец работы ритма. Проиллюстрируем алгоритма на примере. Пусть дан граф схемы, ной на рис. 3.15. Выделим все минимальные массивы. Построим матрицу смея этого графа: показан- из него (ности R Рис. 3.15. Пример разбиения графа 132
123456789 1 2 3 4 R= 5 6 7 8 9 о з 2 о о о о o;o 3 0 1 1 0 0 0 0 0 2 1 0 1 1 0 0 0 0 011001100 001005000 000150410 000104001 000001002 000000120 Определим локальную степень каждой вершины как сумму элементов со- ответствующей строки или столбца: р(%1)=5; р(%2)=5; р(хз)=5; р(х4)=4; р(х5)=6; р(х6) = 11; р(х7)=6; р(х8)=3; р(х9)=3. В результате выполнения Г алгоритма определяем минимальные массивы Я1 = {%1, Xs}; #2= {*8, *э}. Заносим их в описок Л = {ЯЬ Я2}. Относительно по- лученных минимальных массивов факторизуем граф G. Запишем матрицу Ri факторизованного графа Gi: (1,2) 3 4 5 6 7 (8,9) (1,2) 0 3 1 0 0 0 0 3 3 0 1 1 0 0 0 Ri= 110 0 110 0 1 0 0 5 0 0 0 0 1 5 0 4 1 0 0 1 0 4 0 1 (8,9) 0 0 0 0 1 1 0 Выполняя 1° алгоритма, по матрице Ri определяем минимальный массив Я3= {*1,2, *з} = {*ь *2, *з} = {#1, *з}. Заносим его в список Д = {ЯЬ Я2, Я3}. Факторизуем граф Gi относительно полученного массива Я3. Получаем граф G2 с матрицей смежности (1,2,3)4 15 6 7 (8,9) (1.2,3) 0 2 1 0 0 0 4 2 0 0 1 1 0 5 1 0 0 5 0 0 r2= 6 0 1 5 0 4 1 7 0 1 0 4 0 1 (8,9) 0 0 0 1 1 0 Поскольку применение 4° не приводит к образованию новых массивов, то выполняем 3° при а=3. Определяем массив Я4={х5, хб, *?}• Заносим его в спи- сок Л = {Я1, Я2, Я3, Я4}, факторизуем граф G2 относительно массива Я4. Полу- чаем граф G3 с матрицей смежности R3= (4,2,3) 4 (5,6,7) (8,9) (1,2,3) 4(5,6,7) О 2 2 О 1 2 О О (8,9) О О 2 ’ О 1 2 О 2 133
Поскольку для графа б3 не удается найти минимальные массивы по 2 и 3 вершины, toi увеличиваем параметр а=3 на 1. Получаем а=4, что равняется порядку матрицы R3. Таким образом определяем конец работы алгоритма. В результате работы получаем список Л = {Я1, Я2, Я3, Я4}, в котором минималь- ные массивы расположены по возрастанию числа входящих в них вершин ис- ходного графа. Вершина х4 исходного графа G образует самостоятельный ми- нимальный массив. На рис. 3.15 полученные минимальные массивы обведены штриховой линией. Следует заметить, что выделение минималь* ных массивов связано с большим перебором. Для его сокращения при разбиении графа на части необходимо выделять квазимини- малыше массивы с последующим объединением их в массивы с максимальным числом внутренних ребер. Число вершин в каждой части разбиения (3.21) оде N—верхняя оценка разбиения, соответствующая полусумме общего числа вершин; М — нижняя оценка соответствующая наи* меньшему допустимому числу вершин графа, которые возможно поместить в рассматриваемую часть разбиения. Методика выделения квазиминимальных массивов заключает- ся в следующем. Выделяются массивы по 2, 3, 4 вершины до тех пор, пока выполняется условие (3.21). Квазиминимальные масси- вы определяются по матрице смежности R графа G. Сначала в Рис. 3.16. Пример графа для выделения квазиминимальных массивов (л) и три варианта разбиения графа (б) 134
каждой строке матрицы отыскивается элемент ritj с максималь- ным весом, если их несколько, то фиксируется их число. Кроме того, производится определение суммы элементов в каждой стро- ке. Среди максимальных элементов каждой строки находится на- ибольший. В том случае, когда в строке имеется несколько оди- наковых максимальных чисел, то предпочтение отдается строке, в которой таких чисел меньше. Если число максимальных элемен- тов в строках матрицы смежности совпадает, то выбирается стро- ка с наибольшей суммой элементов. После этого выбранные вер- шины группируются в квазиминимальный массив. Далее процесс повторяется, пока граф не разобьется на квазиминимальные мас- сивы, содержащие по две вершины. При этом могут получаться единичные вершины. Аналогичным образом строятся массивы по 3, 4, 5,... вершин. Работу алгоритма -покажем на примере графа G, изображенного на рис. 3.16,а, матрица смежности которого имеет вид 1 2 3 4 5 6 7 8 9 10 11 12 2 3 4 5 6 R= 7 8 9 10 11 12 0 1 2 1 0 3 2 3 0 1 0 1 0 1 1 2 0 0 0 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 2 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 002100002 0 2 0 1 1 0 1 0 0 1110 10 0 10 10 110 110 1 0 0 0 0 1 0 1 0 0 0 0 10 110 10 0 0 0 1 0 0 1 0 1 0 2 0 0 1 0 0 1 0 Ai А2 Аз 2 2 8 1 3 7 1 3 8 4 1 4 2 2 7 2 2 7 7 1 7 8 1 8 3 1 3 4 1 4 3 1 3 1 2 4 Пусть число вершин в частях разбиения лежит в пределах Мат- рицу R дополним столбцами Аь А2 и А3. В -столбце А2 записаны максимальные числа строк, в столбце А3 — сумма элементов строк матрицы, а в столбце Ai — количество максимальных чисел в строке. По столбцу А2 определяем максимальные числа. Они находятся во второй и третьей строках матрицы R. Находим первый массив, состоящий из вершин х2, х3. Аналогично получаем следующие квазиминимальные массивы, состоящие из двух вершин: (xs, Xi2); (xi, х6); (х9, хю); '(хп, х7); (х8, х4). Строим матрицу 135
Исследуя R', строим столбцы A't, А2, А'3. |По А'3 выделяем строку (х3, х3) и в ней максимальный элемент с весом 3, лежащий в первом столбце. Склады- ваем первый столбец со списком внутренних связей каждого массива. Для массива (х2, *з) полученная сумма максимальна. Следовательно, образуем но- вый массив (х2, х3, Xi). Продолжая аналогично, выделяем следующие массивы по три вершины: (хз, хц, х6); (х3, Хю, х8); (хц, Xj, х4). Далее процесс повторяется, и в результате получаем три варианта разбиения множества вершин графа '(рис. 3.16,6, в, г): Xi = {xs, х8, Хь х4}, Х2={х9, хю, х8, хц}, Х3={х5, Xi2, х8, х?}; Х1={х2,х8, х4, х4, х»}, Х2=.(х9, Хю}, Хз={хз, х12, х6, Хц, х8}; Xi = {x2, х3, xlt х4, х7, х9}, Х2={х5, х42, х8, Хц, х8, Хю}. Рассмотрим вопрос разбиения графа схемы на части методом выделения некоторой системы Ф = {фг}, ie/={il, 2,попар- но непересекающихся максимально полных подмножеств множест- ва вершин X графа G= (X, U). Для этого применим алгоритм по- строения клик по матрице смежности R графа, а для нахождения разбиения с минимизацией числа внешних ребер графа использу- ем операцию раскраски его вершин. Пусть задан граф G=(X, U). Подграф Gi=(X<, Ui), Xi^X, Ui^U, в котором V Xi, х^Х и существует ребро иь=(х{, Xj), называется полным. Подграф GidG, не являющийся частью никакого другого боль- шего полного подграфа, называется максимально полным или кликой. Список вершин графа и семейство Ф={ф<} определяют одно- значно исходный граф. Для определения семейства Ф будем ис- пользовать матрицу смежности R=||rijln, где п=|Х|. Сформули- руем алгоритм построения семейства клик по матрице смежности. Заметим, что алгоритм выделения семейства клик аналогичен ал- горитму выделения семейства внутренне устойчивых подмножеств множества вершин графа. Г. В матрице смежности R графа G из i-й строки (te/={l, 2.....п}) выбирается первый встречающийся по порядку элемент г«,3 = 1 К/)> который определяет /-ю строку. Переход к 2°. Если в строке все элементы Гг,3-=0, то вершина х< определяет максимально полные подмножества. Обращаемся к строке г’4-1» считая i=i+l, и переход к 1°. 2°. Осуществляем поэлементную конъюнкцию i-й и /-й строк. Определяем Ми=х^Х]. Переход к 3°. 3°. Из строки выбираем элемент г^= 1, k^I. Переходим к 4°. Если все Гй = 0, то переход к 5°. 4°. Осуществляем поэлементную конъюнкцию строк и Хд. Определяем Mi<jtk=M.i,j/\Xk. Заменяем индексы (i, /) на i, а £ на /. Переход к 6°. 5°. Получено <pj=i{xy, х3-, Xk}. Переход к 6°. 6°. Из строки Xi выбираем элемент г«,г= 1, l^I, Xi&pv. Переход к 7°. Если все г4,г = 0, то переход к 8°. 7°. Заменяем в выражении Л4<3-=х<Лх3- индекс / на I. Переход к 2°. 136
•8°. Заменяем индекс i на i+'l- Переход к 2°. Если i=n, то пе- реход к -9°. 9°. Выделено семейство Ф={ф<}, iel. Можно показать, что семейство Ф ={<₽«}, ieZ, полученное по алгоритму, является семейством максимально полных подграфов. Наибольший практический интерес представляет задача на- хождения наименьшего числа попарно непересекающихся полных подграфов, объединение которых составляет данный граф. Эту за- дачу можно решить методом нахождения минимальной раскрас- ки множества вершин графа. Известно, что раскрасить множест- во вершин графа G=(X, U) значит поставить в соответствие каждой вершине графа G целое неотрицательное число g\(x) с со- блюдением условия: вершины, отмеченные одинаковыми числами, должны быть несмежными. В нашем случае необходимо опреде- лить модифицированную раскраску, для которой необходимо со- блюдение противоположного условия: вершины, отмеченные оди- наковыми цветами, должны быть смежными. 1Модифицираванная раскраска вершин равносильна выделению в графе G системы попарно непересекающихся полных подграфов. Нахождение ми- нимальной раскраски является сложной комбинаторной задачей, поэтому в практике обычно не ставят щелью получение минималь- ной раскраски, а, как правило, ведут поиск простой формальной процедуры, легко реализуемой на ЭВМ. Рассмотрим алгоритм локальной модифицированной раскраски вершин графа, отвечающий поставленным требованиям, который основан на анализе системы максимально полных подграфов гра- фа. Введем критерий выбора подмножеств X для полной раскрас- ки вершин а?Л= |Ф v I + |Фв I-|Ф?ПФд|, у, te=I, /={1, 2, ...» s}. (3.22) В соответствии с этим критерием множества вершин (Ф?\ Фд) и и (Фд\ Фу), для которых av,e =maxav,a, принимают значение функции раскраски ^(Фу\Фд) и £(Фв\ Ф? ) соответственно. Для удобства реализации алгоритма составим матрицу A=l|av.e|Im, (3.23) где /и=|Ф|, а каждый элемент av,e, матрицы А говорит о мак- симальном числе вершин в (Ф?ПФд). После выбора первых двух подмножеств строится новое семейство Ф' путем удаления из каждого <ргеФ, i^I, вершин, вошедших в подмножества «pv и <рв, выбранные на предыдущих шагах. Сформулируем теперь алго- ритм раскраски. Г. По графу G определяется семейство максимально полных подграфов Ф={фг}, feZ Переход к 2°. 2°. Используя выражение (3.22), строим матрицу А. Переход к 3°. 3°. Из матрицы А выбирается максимальное значение av,e. За- тем получаются подмножества <pv и <рв. Переход к 4°. 137
4°. В каждом ф,еФ удаляются вершины, входящие в <pjU<pe, находится Ф' и переход к 5°, если Ф' = 0, то переход к 6°. 5°. 'Строится новая матрица А и переход к 3°. 6°. Получена раскраска вершин графа G. Пример. Пусть задан граф G, изображенный на ности R этого графа имеет вид 1 2 3 4 5 6 7 8 1 2 3 4 R= 5 6 7 8 9 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 0 0 10 10 10 0 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 1 рис. 3.17,а. Матрица смеж- 9 1 0 0 о 1 о о 1 о Выделим семейство максимально полных подграфов Ф. Для этого обра- тимся к Хг строке матрицы R. Выберем в ней первый ненулевой элемент гЬ4 и выполним поэлементную конъюнкцию первой и четвертой строк: Mi,4= =0О 0 1 0 0410 1Д1 0 1 0 00 1 0 0=0 0 00 0 04 0 0. Так как в объединенной стро- ке М1>4 есть ненулевой элемент, расположенный в 7-й позиции, то выполняем конъюнкцию ЛГ1,4 и 7-й строки. В результате получим ТИ1,4>7=О О О О О 0 1 О О Д Д1 0 0 1 0 0 0 0 0=0 0 0 0 0 0 0 0 0. Образован первый элемент (pi = {xi, х4, х7}, соответствующий полному подграфу графа G из семейства Ф. Рис. 3.17. Пример графа для разбиения на основе модифированной раскраски (а), разбиение графа (б) Далее снова обращаемся к строке 1 и проверяем, есть ли в ней ненулевые элементы, не вошедшие ® фь Такой элемент есть — это ri,9. Обращаемся к 9-й строке матрицы R и определяем Mi,9=0 0 0 1 00 1 О 1Д1 0 0 04 00 1 0= = 00 00 0 000 0. Получаем ф2={хь х9}. Переходим ко 2-й строке матрицы смежности и выделяем элемент Г2,з- Осу- ществляем конъюнкцию строк и получаем М2,з = 0 01 0 0 1 О О ОДО 10 101 0 0 0= =00 000 1 000; М21з,б=0 0 0 0 04 О О ОДО 1 4 000000=000 000 000. Тогда фз={х2, Хз, Хб} 138
Продолжая аналогично, выделяем подмножества ф4={хз, и ф5={Хб> х8, xj. На этом выделение семейства максимально полных подмножеств закан- чивается Ф={ф1, Фг, фз, ф4, фб}- Для раскраски графа G построим матрицу А = <Р1 Ф2 Фз Ф4 Фб Ф1 3 4 6 4 6 ф2 4 2 5 4 4 фЗ ф4 фб 6 4 6 5 4 4 3 4 6 4 2 5 6 5 3 Элементы матрицы А определяются из выражения (3.22). В матрице выби- раем шах а ?,б = (п.з. Получаем два полных непересекающихся подграфа ф1 и фз. Теперь, удаляя в каждом фг элементы, вошедшие в фгОфз, построим новое се- мейство Ф'= {ф'} = {х5, х8, Хд}. Так как все вершины графа распределены по полным подграфам, то получено^ разбиение графа на три части: Gi=(Xi, СЛ); С?2= (Xz> Uz)} Сз=(Х3, U3), где Х1=ф1 = {Х1, Х4, Х7}*, Х2=фз={х2, Хз, х8}; Хз= = ф/ = {^5, Х8, Х9}. Полученное разбиение графа на три части с минимизацией внешних связей показано на рис. 3.17,6; К=2; A(G) =9/2=4,5. Рассмотрим итерационные методы разбиения графов схем. Идея итерационных методов разбиения заключается в выборе не- которого разбиения графа с дальнейшими перестановками вер- шин или групп вершин из одной части в другую с целью миними- зации числа соединительных ребер. Сформулируем постановку задачи разбиения графа на части применительно к итерационным алгоритмам. Пусть задан граф G=(X, U), |X|=n, |G|=/n. Требуется найти разбиение его на части с максимизацией функции i \UIJ\ S ah, (3.24) /=1 f=i где /по — общее число ребер внутри всех частей графа G; I — чис- ло частей, на которые разбивается граф; . [1, если — I (О в противном случае; Ujj — множество внутренних ребер Gj. Зададим стандартную матрицу F=HA-Jln, i, /е/={1, 2, ..., n}, в которой по главной диагонали расположено столько единичных подматриц, на сколько частей разбивается граф G. Порядок /?-й единичной подматрицы определяется числом вершин, которое должно быть помещено в Gq. В соответствии с разбиением матрицы F матрицу смежности R графа G разобьем на подматрицы, что отвечает некоторому определенному разбиению графа G на части. Например, пусть задан граф G=(X, U), изображенный на рис. 3.18,а, ко- торый необходимо разбить на три части по 3,3 и 2 вершины в каждой. Матри- ца для этого графа 139
1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 1 ООО ООО 1 1 ООО ООО 0 0 1 1 1 ООО 0 0 1 1 1 ООО 0 0 1 1 1 ООО 0 0 ООО 1 1 1 0 0 ООО 1 1 1 0 0 ООО 1 1 1 Для простоты будем разбивать матрицу F на клетки, начиная с тех, кото- рые имеют наименьшее число элементов. Запишем теперь матрицу смежности R графа G и разобьем ее на подматрицы в соответствии с разбиением матри- цы F: 1 2 3 4 5 6 7 8 1 0 0 0 0 1 ООО 2 0 0 0 1 0 1 0 0 3 0 0 0 1 0 0 1 1 4 0 1 1 0 0 1 0 0 R= 5 1 0 ООО 0 0 1 6 0 1 0 1 0 ООО 7 0 0 1 0 0 0 0 1 8 0 0 1 0 1 0 1 0 Указанное разбиение графа показано на рис. 3.18,5. При этом з U^r, G1=(X1’ С71); G2=(%2’ t/з); Х1={*ь х2={х3, Хь хб}; ^3={*6, Х7, Х3}', = ^1,111^1,211^1,3= {(*1, Xs), (Х2, Х4), (Х2, %б)}; ^2 = = ^2,2U^2,1U^2.3={(*3, Xi), (%1, Хь), (Х2, Xi), (Х3, Х3), (Х3, Х7), (Х5, Х3), (Х4, Хб)}? U3=U3t3\JU3MU3l2= {(хб, х2), (х3, х7), (х3, Хз), (Х3, Хь), (х7, х8), (хб, х4)}. Общее число внутренних ребер /По=2, а количество внешних связей К—7. Рассмотрим теперь методику перестановки строк и столбцов матрицы R для увеличения т0. Для реадизации итерационного метода разбиения графа G введем некоторые вспомогательные матрицы и определим действия над ними. Определим матрицу М = ||/Пг,7-||п, /е/={1, 2, ...,п} как результат умножения мат- риц F и R: M = F®R, (3.25) тогда элементы матрицы М можно вычислить по следующим формулам: п п 1Th, j= 2 fi, j, q\ j, i = 2 fj, q?i, q- (3.26) 9=1 9=1 Заметим, что матрица M не обязательно симметричная, т. е. в общем случае 7-=#т^, если £#=/. 140
Для графа G рис. 3.18,а, используя матрицы R и F, построим матрицу 1 2 3 4 5 6 7 8 1 2 3 4 м= 5 6 7 8 0 0 0 1 1 1 0 0 0 0 0 1 1 1 0 0 11110 112 11110 112 11110 112 0 12 110 11 0 12 110 11 0 12 110 11 Рис. 3.18. Пример графа для итерационного метода (а) и его' разбиения: пер- воначальное (б), после перестановки вершин х2, х5 (в), окончательное (г) Используя выражения (3.26), определяем значения mt,j и mjj: п т\,\~ 3 f\,qr\,q=fl,lr Ll + fl,2rl,2 + fl,3^ 1,з + А,4Гм + f 1,5Гl,5~bfЬб^1,б + Л,7Гl,7 + fl,8r 1,8 = 4=1 = 1 -0+4 -O + O-O+O-O + O-1 + 0-0+0-0+0-0=0; ' n ^1,2 = S fl>4r2,q=fl,lr2,l+fl,2z'2,2 + fl,3r2,3 + fl,4r2,4 + /l,5r2)5 + fl,6r2,6 + fl,7''2)7 + fl,8''2)8 = q=l = 1-0+4 •0 + 0-0+0-1 + 0-0+0<1+0-04-0-0=0. - 141
Продолжая аналогично, определяем, например, элемент п т7,3= 3 ^7,«Г3,д = f7,lr3,l+^7,2Г3,2 + ^7,3г3,з + ^7,4г3,4 + ^7,5Г 3,5 + /7,6Г 3,б + ^7,7Г 3,7 + ^7,8^ 3,8 = Q=1 =0-i0+0-0+0-0+0-tl+0-0+'l-0+14 + 14=2. Процесс выполняется до тех пор, пока не 'будут найдены все элементы мат- рицы М. Введем матрицу V = ||uij||n, i, /е/={1, 2, ..., п}. Матрица V строится пу- тем поэлементного перемножения матриц F и R: V = FXR, (3.27) где F — инверсия матрицы F. Для рассматриваемого примера 1 2 3 4 5 6 7 8 1 0 0 1 1 1 1 1 1 2 0 0 1 1 1 1 1 1 3 1 1 0 0 0 1 1 1 _ 4 1 1 0 0 0 1 1 1 II сп 1 1 0 0 0 1 1 1 6 1 1 1 1 1 0 0 0 7 1 1 1 1 1 0 0 0 8 1 1 1 1 1 0 0 0 Элемент Vi,j _матрицы V определяется по формуле где fi,j — элемент матрицы F. Отметим, что матрица V является симметричной относительно главной диагонали, т. е. Vi,3 = Vjii.__ Используя матрицы F и R графа G на рис. 3.48,а, по формуле (3.27) по- строим матрицу 1 2 3 4 5 6 7 8 1 0 0 0 0 1 0 0 0 2 0 0 0 1 0 1 0 0 3 0 0 0 0 0 0 1 1 4 0 1 0 0 0 1 0 0 < II СП 1 0 0 0 0 0 0 1 6 0 1 0 1 0 0 0 0 7 0 0 1 0 0 0 0 0 8 0 0 1 0 1 0 0 0 Элементы первой строки матрицы V равны: 01,1 = И, iji, 1 = 0; 01, 2 = rl, 2fl, 2 = 0; 01, 3 = rl, 3fl,_3=0; 01, 4 = ^1, 4fl, 4 = 0; 01, 5 = ^1, 5fl, 5= 0i, 6 = ^*1, efi, 6 = 0; 0i, т=Г\, jfi, 7 = 0; 0i, 8 = ^i, sfi, 8 = 0. Все остальные матрицы V определяются аналогично. С помощью введенных матриц М и V построим матрицу Р = = IIPi,jlln, i, 2, ..., П}. 142
Матрица Р определяется с помощью матриц Ми V следующим образом: Р=М—V. (3.28) В 'выражении (3.28) используется поэлементное вычитание. Ес- ли вместо М и V подставить выражения (3.25) и (3.27), то полу- чим P=(F®R)—(FX.R). (3.29) Из способа построения следует, что .матрица. Р несимметрич- ная, поэтому определим ее элементы, расположенные по разные стороны главной диагонали: pi, j Vi, j= ( 2 fi> qri, g) fi, jri, ji 9=1 n Pj, i — tTlj, г Vi, j= ( S fj, qri, q) fi, j^i, j- Q=1 (3.30) По формулам (3.30) построим 3.18, б\. матрицу P для графа G (рис. Покажем, например, как вычисляются элементы четвертой стро- ки : р4, 1 = /И4, 1-и4, ! = 1 —0 = 1; р4, 2 = ^4, 2—^4, 2=1 —1=0, р4, 3 = = ^4,3—^4, 3=1; Р4, 4=т4, 4—у4, 4=Ь Р±, 5 = ^4, 5—у4, 5 = 0', /?4, 6 = = т4> 6—^4, 6 = 0; р4, 7 = ^4, 7—^4, 7=1; р4, 8 = ^4, 8~^4, 8 = 2. Остальные элементы матрицы Р определяются аналогично. Для максимизации функции (3.24) после разбиения необхо- димо выбрать в праф-е пару вершин, принадлежащих разным час- тям в разбиении (пару строк и .столбцов в матрице R, принадле- жащих разным подматрицам), и переставить их, если значение mQ увеличится. Для пер ер замещения вершин Xi и Xj между частя- ми разбиения (перестановки строк и столбцов матрицы R) вве- дем понятие перестановочного коэффициента. Лi, 3 = Pi, j + Pl, г Pi, i Pj, j- (3.31) Заметим, что вершина Хг лежит в Gi= (Xif Ui), а вершина х? лежит в Gj= (XjUj). С помощью выражений (3.29) и (3.30) опре- делим коэффициент г];;: 143
п - п п j = l( S fi,qrj,q) fi, jri, j] + [( S fj,qri,q)—fi, jri, j]—l(S fi,qri,q)— q=l q=l e=l fi, ifi, j] [ ( s fj,qrj, q) fj, jrj, j]- «=1 Заметим, что рассматриваются графы без петель, поэтому эле- менты матрицы R, расположенные по главной диагонали, равны нулю, т. е. rit,- = r3>3-=iO. Так как т],,; имеет смысл находить только для вершин, лежащих в разных частях, то в этом случае fi,j=l, Тогда перестановочный коэффициент примет вид Л*. J = S fi, qrj, 2 fj, qri, q S fi, qf i, q 2j fj, qr j, q i, j, (3.32) «=1 g=l g=l g=l Максимальное значение ц^ОО является условием для пере- становки вершин из одной части в другую с целью максимизации функции (3.24). Коэффициент определяет, как изменится чис- ло внешних ребер между Gi и G, после перестановки вершины Xi в Gj, а вершины Xj в G,. Разность A/Wf, j = (mi, j + mj, i) — (mi> i + mj, j) (3.33) указывает на изменение числа связей между соответствующими подграфами при перестановке вершин х< и х,- из одного в другой. Заметим, что если вершины х,, х3- смежны, то в выражение (3.33) необходимо ввести поправку на величину равную числу ребер между Х{ и Xj. Так как после перестановки вершин указанные ребра останутся в общем числе внешних связей, то их число1 вы- читается из Дтц. Тогда получим T)t,j=AwTit j 2gi, j. (3.34) Нетрудно заметить, что числа представляют собой элемен- ты Vi,j, которые заключены в матрице V. Получив матрицу Р= = М—V и вычислив по формуле (3.34) коэффициент т],,;, опреде- лим действительное изменение числа связей в разбиении после перестановки вершин х^Х{ и Xj^Xj. Следовательно1, если т]г13<0, то число ребер между 0<=(Хг-, Ui) и Gj=(Xj, U,) после переста- новки вершин x^Xi и Xj^Xj увеличивается, если i)<j=0— ие изменяется, ijijX) уменьшается. Так как критерием данного ите- рационного алгоритма разбиения является максимальное число ребер внутри, частей, то перестановку вершин между частями не- обходимо ВЫПОЛНЯТЬ При IJjjX). Заметим, что для нахождения перестановочного коэффициен- та Tji.j можно использовать как выражение (3.31), так и (3.32). Для рассмотренного графа G, изображенного на рис. 3.18, а, используя выражение (3.31), определяем перестановочные коэф- фициенты т]1,з=Р1,з+Рз, 1— Pi, 1—Рз, з=0+1—0—1=0; гц,4=1; П1.5 = = 0; 111.6=1; тц,7=—1; т]ь8=—1; Ц2,з=0; 112,4=—1; 112,5=2; Иг, 6=0; 1)2,7=0;^i]2,8=0. 144
Выберем максимальный положительный коэффициент т|2,5=2. После перестановки вершин хг и Хб из одной части, в другую, что показано на рис. 3.18,в, получим число внешних ребер Л=5. Об- щее число внутренних ребер г=4. После перестановки второй и пятой строк и столбцов матрица R графа на рис. 3.18,а примет вид (отметим, что матрица F оста- ется неизменной на всех шагах алгоритма) 1 О 1 О О О О О О 1 5 3 5 3 4 2 6 7 8 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 10 0 10 1 0 0 10 0 1 1 1 0 0 1 0 0 6 7 8 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 Снова определим перестановочные коэффициенты для вершин Xi и Хб из первой части разбиения графа G по формуле (3.32): / 8| \ / 8 \ / 8 \ •41.3= Ц:АлгзлН- З/злПл — Ал Пл — \Q=1 / \Q=1 / \4=1 / / 3 \ — ( r3,Q I —2гцз = (/1,1 Гзд +/1,2 Л ,2 + /l,3 Л ,3 + /1,4 Л,4 + \Q=1 / + /1,5 Л,5 + /1,6 Л,б + /1,7 Л,7 + /1,8 Л,в) + (/з,1 Л,1 + /з,2 Л,2 + + /з,3 Л ,з + /з,4 Л,4 + /з,5 Л ,б + /з,6 Л ,б + /з,7 Л ,7 + /з,8 Л ,в)— — (/1,1 Г 1,1 + /1,2 Л ,2 + /1,3 Л ,з + fl,4 Л,4 + fl ,5 Л, б + fl ,6 Л ,б + + Л,7 Л ,7+ /1,8 Л ,в) — (/з,1 Л,1 +/з,2 Л,г + /з,з Л,з + /з,4 Л,4 + + /з,5 Л,б + /з,6 Л,б + /з,7 Гз,7 + /з,8 Л,в)—2 Г\ ,3= —2; П1.4= —3; Т)1,2=—2; П1,б= — 1; 41,7= — 2; 41,8=—1; 45,3 =—2; Т]5>4= —3; 45,6=0; 45,7 =—1; 45,8= —1; 45,2=—2. Так как все коэффициенты отрицательны, то переставлять верши- ны из Gi не имеет смысла. Определим перестановочные коэффи- циенты для возможного перерзамещения вершин между G2 и G3 исследуемого графа: 8 8 8 8 ДЗ,6 = 2 /3,Qr6,g+ 2 /б, qr3, q—Hf3,q^3,q—2 /б, 4Л, q—2Гз, 6=3; 43, 7 = 4=1 4=1 4=1 4=1 =—1; 43,8=—1; 44,6=—1; 44,7=—1; 44,8=—1; 42,6=0; 42,7=0; 42,8 = 0. Выбираем максимальный положительный коэффициент 43,6 = 3 и меняем местами вершины х$ и xq. Получим, что число ребер в сече- 145
нии графа 7<=2. Общее число внутренних ребер т0=7. Разбиение графа после применения указанной операции изображено на рис. 3.18,г. Матрица смежности Rz после перестановки третьей и шес- той строк и, столбцов примет вид Снова определим перестановочные коэффициенты по формуле (3.34) для вершин второй и третьей частей: т]б,з =—3; т]6,7=— 4; 116,8=—4; т]4,з = —4; у]4,7 = — 3; т]4,8= — 3; т]2,з = —3; т]2,7 = — 4; т]2,8 = = — 4. Так как все коэффициенты отрицательны, то дальнейшая перестановка вершин нецелесообразна. На этом итерационный алгоритм разбиения графа с минимизацией числа соединительных ребер заканчивается. Таким образом, изображение на рис. 3.18,г представляет собой окончательное разбиение графа G (см. рис. 3.18,а). Заметим, что методика разбиения рассмотрена для графов с однократными ребрами. Предложенный алгоритм в равной степе- ни применим и для мультиграфов. В этом случае в формуле (3.32) за значение ritj принимается сумма ребер, соединяющих вершины Xi и Xj мультиграфа. Рассмотрим теперь методику дихотомического разбиения гра- фа схемы, заданного матрицей смежности, на части с использова- нием чисел связности. Для каждой вершины графа введем число- вую характеристику, использующую' локальную степень этой вер- шины. Эта характеристика должна количественно оценивать связь1 рассматриваемой вершины с другими, лежащими внутри части разбиения, по отношению к вершинам, находящимся вне этой части. Назовем >а(х/Д числом связности вершины причем a(xft)\= rh(Gj), если xk(=Xj’, [rk(Gj)—rk(Gj), если xk^Xif где rk(Gi) —число ребер, соединяющих вершину хк с вершинами Gj= (Xi, Ui)\ rh(Gj)—число ребер, соединяющих вершину хк с вершинами Gj=(Xj, Ui). Поясним понятие числа связности на примере графа G, разбитого на две части Gi и G2 (рис. 3.19). Тогда числа связности для вершин Gi определятся следующим об- 146
разом: a(* *i) =ri(G2)—ri(Gi) = 1—2==—1; a(x2)=0; a(x3)= + l. Для вершин G2 числа 1связности определятся: a(*4) = f4(Gi)— —f4(G2) = l—3 = —2; a(xs)—0; а(%б)=—2; «(x?)—2. Очевидно, что число связности может быть отрицательным, положительным и равным нулю (а(хь) >0). Физический смысл числа связности следующий. На- пример, a(%i)= — 1 означает, что при перестановке вершины Xi, ле- жащей в Gi, в G2 число ребер в сечении увеличится на единицу. Значение а(х2)=0 говорит о том, что перестановка вершины х2 из Gi в G2 оставит без изменения число соединительных ребер Рис. 3.19. Граф G после разбиения на две части: Gi и б2 Теорема 3.4. Перестановка двух произвольных вершин и x^Xj (Xif\Xj = 0) приводит к уменьшению числа соедини- тельных ребер в сечении если: а) вершина Xk не смежна вершине xi и выполняется неравенст- во a& + az>0; (3.35) б) вершина Xk смежна вершине xi и справедливо неравенство ' az+ab>2. (3.36) Доказательство. Очевидно, что перестановка вершин из одной части в дру- гую целесообразна лишь в том случае, если = (3.37) где k'ij — число реберного соединения Gi и Gj после перестановки вершин хи и хг, Akij — приращение в результате перестановки вершин Xk и xi. Рассмотрим теперь возможные случаи смежности вершин, указанные в теореме: а) вершины Xh и xi не смежны. Тогда до перестановки ki,j=rk(Gi) + 4-n(Gj), а после перестановки k'i,j = rh(Gj)+ri(Gi). Подставляя значения ki,j и k'itj в выражение (3.38), получаем = =rk(Gi) +n(Gj)—rh(Gj)—ri(Gi) =a&-j-az>0. б) вершины Xh и xi смежны. В этом случае необходимо учитывать появле- ние нового ребра, соединяющего Gi и Gj, инцидентного вершинам Xh, xi. Тог- да ki,j = rk(Gi) 4-n(Gj)—II. Единица вычитается, так как при подсчете числа соединяющих ребер Gi, Gj ребро Uh,i учитывалось дважды. После перестановки вершин х^ xi получим k'itj=rh(Gj) +п(бг) + 1. Единица прибавляется, по- скольку ребро Uh.i остается соединяющим после перестановки хъ. и xi. Теперь &kij=rh(Gi)+rt(Gj)—1— rh(Gi)— гг((7г)—1>0 или аь + аг—2>0*\ что и тре- бовалось доказать. 1 Будем использовать также обозначение а& вместо а(х&). *) В общем случае для мультиграфов неравенство' принимает вид а/ + Н-аь>2гг,ь. 147
Приведем матрицу смежности графа, показанного на рис. 3.19: 1 2 3 4 5 6 7 10 11 2 10 1 3 110 10 0 0 0 2 0 0 0 0 0 3 R=4 1 0 0 5 0 2 0 6 0 0 0 7 0 0 3 0 2 10- 2 0 0 0 10 0 1 0 0 10 Рассмотрим первую строку этой матрицы ||0111000Ц. Первые три элемента матрицы ri,i = 0, ri,2=l и Г1,з=1 соответствуют внутрен- ним ребрам (xi, Xi), (xi, хг), (xi, Хз) части Gb Элементы ri,4, и,5, Г1,б и Г],7 соответствуют соединяющим ребрам вершины хь Тогда a(xi) по матрице смежности можно определить следующим обра- зом: a(xi) = (г i,4-|-r 1,5+г 1,б+г\,т)— (г 1,1-Ь г 1,2+г 1,3) = l-f-O+O+O'—0— — 1—1=— 1. В общем виде для разбиения матрицы R=||rii3||n на две под- матрицы Ri и R2, где i, j<^7={l, 2........п}, число связности a(xft) = S rk,j— S rk,r> j^F l&I Zrk.i— ^ri.b j&F (3.38) где 1^1= {1, 2,..., p}, j^F= {p+1, p+2,..., n}, причем строка Xj принадлежит подматрице R2, а строка xi— подматрице Rb fee e«7={l, 2, ...,n}, p — старший индекс подматрицы Rb Используя формулу (3.38), подсчитаем значения чисел связно- сти для каждой строки матрицы и, введя дополнительный столбец к матрице R, запишем их: 1 2 3 4 5 6 7 1 0 1 1 10 0 0 — 1 2 1 0 1 0 2 0 0 0 3 1 1 0 0 0 0 3 1 R = 4 1 0 0 0 2 10 — 2 5 0 2 0 2 0 0 0 0 6 0 0 0 10 0 1 —2 7 0 0 3 0 0 10 2 Рассмотрим основную идею итерационного алгоритма разбие- ния графа G, заданного матрицей смежности, на части с мини- мизацией числа соединительных ребер. Разбиение графа G=(X, U) на I частей Gi= (Xb GJ, G2= (Х2, G2),..., Gi= (Xi, Ui) сведем к последовательному разбиению на две части. С этой целью в матрице R будем выделять по главной диагонали две подматрицы: Ri и R2. При этом порядок подмат- .148
рицы Ri приравняем к числу вершин, которые должны находиться в первой части, а порядок подматрицы R2 — к числу всех осталь- ных вершин графа. Необходимо так переставить строки, и столб- цы матрицы R, чтобы число ребер между Gi и G2 было мини- мальным. После этого подматрицу Ri из матрицы- R исключим путем вычеркивания из R строк и столбцов соответствующих эле- ментов. Далее подматрицу R2 разобьем снова на две подматрицы R*2 и R22 так, чтобы порядок R*2 соответствовал числу вершин второй выделяемой части, а порядок R22 — числу оставшихся вер- шин графа. Произведем перестановку строк и столбцов R2 для минимизации числа соединительных ребер, после чего подматри- цу R4 исключим из R2 и процесс повторим аналогично до тех пор, пока не будет выполнено разбиение графа G на I частей. Итерационная часть алгоритма заключается в выборе по за- данному правилу определенных строк и столбцов матрицы. R и пе- рестановке их с целью минимизации числа соединительных ребер, что соответствует сосредоточению в диагональных подматрицах матрицы R максимального числа элементов. С этой целью по- строим прямоугольную матрицу В = Il&i,jllnix(n-n/), в которой стро, ки определяются вершинами из множества /, а столбцы — из мно- жества F, ie/={l, 2,... ,1—1}. На пересечении А-й строки (k^I) и q-ro столбца (q^F) находим Ък, q = dk~i~Q’q ^k,q> (3.39) где rh,q — элемент матрицы смежности R. Элемент bk,q матрицы В характеризует изменение числа соеди- нительных ребер между частями Gi и Gj при перестановке вер- шин xq<=Xj и Xk^Xj. Используя матрицу В, можно найти подста- новку, которая увеличит число элементов в подматрицах Ri я R2. Дальнейшие процедуры выполняются аналогично до тех пор, пока в подматрице Ri не будет сосредоточено максимальное чис- ло единиц, т. е. не будет получен локальный минимум. Заметим, что при работе алгоритма число итератий, время ре, шения и оптимальность результата в значительной степени за- висят от того, насколько удачно выбрано начальное разбиение матрицы смежности графа схемы. Для устранения этого недостат- ка можно применять алгоритм несколько раз для различных на- чальных условий. Сформулируем итерационный алгоритм разбиения графа G иа части, выполняемый по матрице смежности, в котором использу- ется принцип попарных перестановок вершин из одной части и другую. 1°. По графу G строим матрицу смежности Ro порядка п. Пе- реход к 2°. 2°. В матрице Ro графа G выделяем подматрицу порядка равного числу элементов п\ в Gi. Матрица Ro .при этом разбива- ется на две подматрицы: Ro,i и Ro,2. Переход к 3°. 3°. По матрице Ro находим числа связности ак и ад и строиц матрицу Во. Переход к 4°. 149
4°. Используя вспомогательную матрицу Во, определяем мак- симальный положительный элемент bk,q. Если таких элементов не- сколько, то выбираем такой, соответствующие которому верши- ны xk 'И xq имеют меньшую локальную степень. Осуществляем пе- рестановку строк и столбцов k и q в матрице Ro. Получаем мат- рицу IVo, изоморфную матрице Ro. Переход к 5°. Если в матрице Во нет положительных элементов, то переход к 6°. 5°. Выполняем последовательно пункты 3°, 4° алгоритма для матрицы R0,i. Аналогичные преобразования выполняем с матрица- ми R20,..., Ro^’”1 i(/ — номер цикла повторения пунктов 3°, 4°, где Roj-1 — матрица смежности, для которой в Bj не содержится ни один положительный элемент. 6°. Исключаем из графа G часть Gb соответствующую подмат- рице Rb полученной в результате выполнения пунктов 1°—5° ал- горитма. Переход к 7°. 7°. Повторяем работу пунктов 1°—6° алгоритма для графов с матрицами смежности Ri, R2,..., Rz-i. Переход к 8°. 8°. Получаем разбиение графа G на I частей Gb G2, ...,Gj с числом вершин в каждой части соответственно п2,..., Ко- нец работы алгоритма. Рассмотрим работу алгоритма на примере разбиения графа G, изображен- ного на рис. 3.20, на три части, содержащие соответственно 4,3 и 3 вершины. Запишем матрицу смежности Ro графа G: Разобьем ее на две подматрицы: R0,i и R0,2 — и определим числа связности по формуле (3.38). Используя выражение (3.39), построим матрицу 1 5 0 6 0 7 — 6 8 — 1 9 0 10 — 2 2 — 4 — 4 — 4 — 7 — 2 — 6 3 0 0 + 4 + 1 —2 0 4 — 3 — 1 + 1 — 2 + 1 — 3 Например, элементы bi,5, 62,8, 63,7 матрицы Во определяются следующим об- разом: 61,5=—& 1,5=0+0——2 • 0=0; ^2,8~ сь2+ cts—2г2,8 ~—4+ ( 1): 2*1 = «—7; Ьз,7=(Хз+(Х7—2гз,7= + 2+2—2-0 = +4. 150
Из матрицы В получаем, что для минимизации числа соединительных ре- бер между частями G0,i и Go,2 графа G в матрице Ro необходимо переставить третьи и седьмые строки и столбцы, что соответствует переразмещению вер- шин х3 <и х7. После вынолнения указанной процедуры матрица R'o принимает вид 127456389 10 ah,q 1 0 5 4 0 0 0 0 0 1 0 — 8 2 5 0 10 0 0 110 0 — 4 7 4 10 0 0 0 0 1 1 1 — 2 4 0 0 0 0 1 0 2 0 0 0 + 3 5 0 0 0 1 0 110 0 1 — 2 R'o= б 0 0 0 0 10 10 0 0 — 2 3 0 10 2 1 1 0 0 3 0 — 2 8 0 110 0 0 0 0 1 0 + 1 9 10 10 0 0 3 1 0 0 — 2 10 0 0 10 1 0 0 0 0 0 0 Рис. 3.21. Граф (см. рис. 3.20) пос- ле перестановки вершин х3 и х7 Рис. 3.20. Пример графа для раз- биения на основе чисел связности Граф G после перестановки вершин х8 и х7 изображен на рис. 3.21. По- строим матрицу 5 6 3 8 9 10 1 — 10 — 10 — 10 — 7 — 12 — 8 2 — 6 — 6 — 8 — 5 — 6 — 4 В'о= у — 4 — 4 — 4 — 3 — 6 — 4 4 — 1 + 1 — 3 + 4 + 1 + 3 Для максимальной минимизации числа соединительных ребер между частя- ми графа на данном шаге необходимо выбрать элемент b4t8= +4 и переставить четвертые и восьмые строки и столбцы матрицы R'o, что соответствует переста- новке вершин %4, х8 в графе G (см. рис. 3.21). Граф G, полученный в резуль- тате перестановки вершин х4 и х8, показан на рис. 3.22. Если определить коэф- 151
фициенты связности по Ro", то получим ал, ад^0, следовательно, строить мат- рицу Во" не будем, так как в ней не найдется ни один элемент bk,q>Q и в графе G на данном шаге нет пары вершин, перестановка которых уменьшит К. Удаляя из матрицы 7?"о подматрицу 7?o,i, получаем матрицу Вл. Разобьем ее на две подматрицы: I?1! и 7?2i. Порядок определяется числом вершин в Сг. Граф G' после разбиения имеет вид (рис. 3.23) Рис. 3.22. Перестановка вершин Xi И *8 5 6 3 4 9 10 dk,qCLq 5 0 1 1 1 0 1 0 6 1 0 1 0 0 0 — 2 3 1 1 0 2 3 0 + 3 Ri = 4 1 0 2 0 0 0 + 3 9 0 0 3 0 0 0 + 3 10 1 0 0 0 0 0 + 1 Построим матрицу 4 9 10 Выберем элемент 6з,1о=аз+аю-н2''з,1о= +3+1—20= 4-4. Переставляя третьи и десятые строки и столбцы матрицы Ri, получаем 5 6 10 R'i = 4 9 3 5 6 10 4 9 3 0 11 10 1 1 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 2 0 0 0 0 0 3 1 il 0 2 3 0 ^k,qt CLq о о — 1 — 1 — 3 — 3 Рис. 3.23. Граф G'=G/G0 Рис. 3.24. Граф G' после пе- рестановки вершин Хз и хю 152
Граф после перестановки вершин тогда запишется в виде х3 и хю приведен на рис. 3.24. Матрица B't 5 B'i= 6 10 —3 —1 —2 —3 —3 —4 —5 —5 4 9 3 В матрице B'i нет положительных элементов, следовательно, на этом за- три части Gi=i(Xi, t/i), Xi={xi, Хг, Х7, Хе}; <J2= (Хг, [7г); Хг = {х5, Хе, хю}; Gs— = (Лз, [73); Хз={х3, Х4, х9} по 4, 3 и В вершины в каждой изображен на рис. 3.25. Общее число соединитель- ных ребер К=8, а Д(б) «2,4. канчивается работа алгоритма. Граф G после разбиения на Рис. 3.25. Окончательное разбиение графа ((см. рис. 3.20) Рис. 3.26. Фрагмент схемы Можно за счет усложнения процедуры, заключающейся в пере- становке групп вершин, получать лучшие решения получаемого разбиения. Рассмотрим алгоритм итерационного разбиения схемы, когда в качестве модели используется гиперграф, заданный матрицей инцидентности. Для фрагмента схемы (рис. 3.26) матрица, задан- ная списком, примет вид (здесь первый столбец соответствует номерам элементов, а второй — номерам цепей фрагмента схемы) “И [1] “ [*2] [2] I= И [2] И [1] ’ И И,2] Д*6] [2] __ Разбиение схемы S на I частей Sb S2, ..., Si сводится к много- кратному разбиению матрицы I на две части h и 12 так, чтобы число строк в h соответствовало числу элементов, которое необ- ходимо поместить в 5ь а число строк в 12 — остальным элемен- там S. Затем производится перестановка строк из h в 12 по задан- ному критерию с целью минимизации внешних связей. Далее S> 153
исключается из S, Ii исключается из I, матрица снова разбивает- ся на две части и процесс повторяется, пока схема не будет раз- бита на I частей. При работе итерационных алгоритмов важным является под- счет числа внешних связей. Для этой цели можно перейти от «пла- вающей» информации о цепях к построению покрывающих де- ревьев. Однако в этом случае могут быть минимизированы фраг- менты цепей, которые исключаются построением другого покры- вающего дерева. Поэтому перестройку цепей ведут после каждого шага алгоритма таким образом, чтобы минимизировать число внешних связей. Подсчет К основан на том утверждении, что цепь, инцидентная только элементам одной из частей схемы, внешних связей не образует. Если цепь инцидентна элементам обеих ча- стей разбиения, то ее можно перестроить так, что в ней будет не более одной внешней связи. Перестановку строк I между 1Ь 12 необходимо вести таким образом, чтобы возможно большее число цепей находилось пол- ностью или в Ii, или в 12. Общее число внешних связей К по I можно определить следую- щим образом. Выбирается первая строка из I и выделяется номер первой цепи, инцидентной Хь Просматриваются строки из 12. Если хотя бы в одной строке 12 встретится такой же номер, следователь- но, эта цепь образует одну внешнюю связь. В остальных строках Ii исключается номер рассматриваемой цепи. Производится пере- ход к следующей цепи, и операции продолжаются аналогично. Затем суммируется число цепей, образующих внешние связи, и в результате получаем число внешних связей, инцидентных хь Такая же процедура проводится для всех строк I. Общее число ni внешних связей К='21Къ где Кг — число внешних связей, инци- i=l дентных Xi элементу; щ = | Xi |. Перестановочный коэффициент определяется следующим об- разом. По матрице I для каждой строки подсчитываются числа связности ар Числа связности для x^eli вычисляются как раз- ность между числом фрагментов цепей, ведущих в 12 и лежащих в 1р Для элементов х^12 числа связности определяются как раз- ность между числом фрагментов цепей, ведущих в h и находящих- ся в 12. На основе чисел связности определяется коэффициент j, по- казывающий, какие строки fell и /е12 необходимо поменять ме- стами в I для минимизации К: bi, j = CLi + CLj—j—с, (3.40) где ар aj — числа связности; ai, j — число фрагментов цепей, со- единяющих элементы хь xj; с — коэффициент, позволяющий учи- тывать изменение числа внешних связей К при «плавающей» ин- формации о цепях при перестановке элементов Хр Xj. Рассмотрим работу итерационного алгоритма на примере фрагмента схемы, изображенного на рис. 3.26. Схему необходимо 154
разбить на две части по три элемента в каждой с минимизацией числа внешних связей. Матрицу I разделим на две части: “kJ [И "I кг] [2] * I= ksl [2]. kj [ij kJ [1,2] i2 _k6] [2] J Для элементов строк h и I2 определим числа связности: си = 2; «2=1; «з=1; «4=0; «5=1; «6=1. Вычислим значения перестано- вочных коэффициентов: b\, 4 = cti + a4—2ab 4—с = 2 + 0—2—0 = 0; ^1,5 = 0; &i,6=l; Ь2,4=0; Ь2,5 = 0; &2,б = 0; &з,4 = 0; &з,5 — 0; &з, 6 = 0. Так как ЬЬ6=1, то переставляем первую и шестую строки, что со- ответствует переразмещению элементов %i и х6. Матрица I при- мет вид "к6] [2] "] tx2] [2] 1х к3] [2] kJ [1] kJ [1,2] J2 _kj [1] _) Определяя новые числа связности и перестановочные коэффициен- ты, получаем, что дальнейшая перестановка нецелесообразна. Окончательное разбиение показано на рис. 3.27. Число внешних связей после минимизации К= 1. При решении практических за- дач разбиения электрических схем на части вполне приемлемыми счи- таются приближенные результаты, при этом конструктору интересно знать, с какой погрешностью полу- чено решение. В этом плане заслу- живает внимания метод случайных две части назначений, отличительной особен- Рис 327 Разбиение схемы на ностью которого является то, что он связывает затраты машинного вре- мени с точностью и надежностью полученных решений. Суть ме- тода состоит в следующем. Предположим, что граф G=(X, U) необходимо разбить на I частей Gi, G2, ..., Gi с числом вершин nb и2, ..., ni (пх + п2 + ... 4- + nz) =n. Рассмотрим случай, когда n\=n2= ... =tii=nll. Предположим» что X={xi, х2, ..., хп}. Пусть yj — вакантное место, причем У1)= 155
= {у\, У2, •••> Уп/i} — первая часть разбиения; У2'= {ymi+\, Уп/1+2, - -, У2пц} — вторая часть разбиения.............. {«/(Z_i)n/Z+1, «/(Z_1)n/Z+2, ... —, Уп} — 1-я часть разбиения. Тогда определим случайное назначе- ние j_ [ -^2, •••» %п \ (/<., Yi..... Yit ) как результат случайной подстановки / 1, 2, 3..п \ vi, 1'2, 1з, ..., ii/ Выберем произвольно какую-нибудь вершину графа G=(X, U) и отнесем ее к Gz. Затем из числа оставшихся (и—1) вершин вы- берем таким же образом вершину для G2 и т. д. Первое случайное назначение заканчивается после того, как будут размещены все п вершин по I частям. Такая процедура обеспечивает равновероят- ное распределение вершин и практически реализуется с помощью датчика случайных чисел. После каждого назначения вычисляется число реберных соединений К. Если Ki^Kj, то Ki запоминается. В противном случае запоминается Kj- Величина К является слу- чайной. Для реализации условия V G^B(Gi)[K=Kmin] необходи- мо осуществить такое число случайных назначений Q, чтобы с вероятностью не менее р в проделанной серии встретилось хотя бы одно значение К, которое не превосходило бы минимально воз- можное ZCmin больше, чем на допустимую ошибку е, т. е. Р{К—Kmln<Ze} Показано, что Q> 1М1-Р)! п Ф(К1) 1 Kt—в' 1 где Ф(Кг—8'!) = — f e-‘/2rf/ и Ф(^) = —(e-^dt V2n ~ Д/2л -i (3.41) (3.42) — нормальные функции распределения. В свою очередь уу" _gZ _ М (К) Krnjn 8 _ jr _ М (К) Kmin . g' _ 8 1 a(K) ’ 1- а(К) ’ ~ о(К)' где Л1(К), а(/<) = У D (/<) — математическое ожидание и среднее квадратическое отклонение случайной величины К соответственно; /(min — нижняя граница усечения распределения случайной ве- личины К. Математическое ожидание М(К) и среднее квадратическое отклонение а (К) можно определить следующим образом. Для за- данной ошибки е и вероятности [3 выполняется некоторая серия случайных назначений Q. По полученной совокупности случайной величины К и известным формулам из теории вероятностей опре- 156
деляется оценка М'(К) и D'(K). Полученные данные позволяют по формуле (3.42) уточнить необходимый объем случайных назна- чений Q". Проделав еще Q"—Q' назначений и определив М"(К), D"(K), снова уточняем объем назначений Q,,/. Если Q"'<ZQ", то процесс заканчивается. Среди Q,,z назначений встретится, по крайней мере, одно, для которого выполняется условие (3.41). В противном случае вычисления продолжаются. Для сравнения различных методов перебора при разбиении графов схем можно использовать две оценки: целенаправленность и эффективность ветвления. Целенаправленность Z перебора поз- воляет узнать, в какой мере перебор идет в направлении цели: Z=DfC. Здесь D — длина найденного пути до цели; С — общее число вершин, построенных в течение перебора, включая целевую вершину, но исключая начальную. Целенаправленность показыва- ет, насколько дерево, построенное на переборе, вытянуто (не ку- стисто) . Фактор эффективного ветвления У меньше зависит от длины пути до цели. Его определение основано на представлении о де- реве, имеющем глубину, равную длине этого пути и числу вершин, построенных в процессе перебора. Величина У связана с С сле- дующим’ образом: С=У(У2—1)/(У—1). Величина У->1 соответ- ствует перебору, направленному к цели и очень мало ответвляе- мому на другие направления. Оценка перебора для выполнения одной итерации алгоритмов разбиения определяется выражением 0(пЦ, где у — величина, принимающая для реализуемых на ЭВМ алгоритмов значения из диапазона 1—4. Обычно для последовательных алгоритмов у=1, 2, для итерационных у = 2, 3, 4. В целях универсализации вида выходной информации на всех этапах конструирования и возможности контроля результаты работы выдаются в виде списков, таблиц на перфолентах, перфо- картах и магнитной ленте. Выходная информация этапа компо- новки характеризуется следующими параметрами: число частей разбиения; число элементов в каждой части и их номера, число (внешних и внутренних соединений; число использованных элемен- тов; число использованных выводов; использованная площадь. В настоящее время перспективными исследованиями при компоновке ЭА на ИМС4 и ИМС5 является учет требований контроля и диа- гностики. Задача компоновки в этом случае состоит в нахождении некоторого варианта распределения элементов по блокам, опти- мизирующего выбранный функционал при соблюдении схемотех- нических ограничений. Идея разбиения ЭА на блоки — сбаланси- ровать общую сумму цен элементарных проверок для каждого блока, т. е. найти такое разбиение, при котором затраты на диа- гностику любого блока ЭА были бы примерно одинаковыми. Тог- ,да задачу разбиения ЭА на блоки можно свести к нахождению минимального разрезающего множества в графе, моделирующем схему. 157
Обоснованный выбор на этапе разбиения дополнительных конт- рольных точек улучшает диагностические свойства компонуемых блоков. Для этих целей используются оставшиеся неподключенны- ми внешние контакты кристалла ИМС. В схеме производится по- иск цепи с наибольшей нагрузкой. Найденная цепь выводится на внешний контакт, который в этом случае становится дополнитель- ной контрольной точкой. Разбиение ЭА на блоки с учетом диагно- стических характеристик может быть связано с алгоритмами, минимизирующими суммарную площадь, число внешних соеди- нений и контактов. Отметим, что при разбиении имеется возможность применять дублирование элементов, если некоторые элементы схем могут принадлежать нескольким модулям. Использование дублирования позволяет уменьшить число внешних соединений за счет увеличе- ния числа логических элементов. При конструировании ЭА на печатных платах общая длитель- ность задержки, связанная с внутрисхемными соединениями, меньше, чем длительность задержки, определяемая внешними со- единениями. Поэтому для оптимизации разбиения схемы также используются критерии минимизации максимальной длительности задержки. Из рассмотрения методов компоновки ЭА следует, что одним из основных является метод разбиения с минимизацией внешних соединений. Системы автоматизированного проектирования сле- дующих поколений ЭА будут иметь в своем составе многокрите- риальные алгоритмы компоновки. 3.2. РАЗМЕЩЕНИЕ ЭЛЕМЕНТОВ ГРАФА СХЕМЫ НА ПЛОСКОСТИ Высокая плотность размещения элементов интегральных ми- кросхем и печатных плат создает большие трудности при реали- зации соединений между элементами. В этой связи размещение элементов на печатной плате становится определяющим быстроту и качество трассировки. Главное внимание уделяется минимизации внутрисхемных пересечений, суммарной длины соединений и реа- лизации алгоритмов за приемлемое время. Исследования пока- зывают, что критерии минимума пересечений и суммарной длины соединений являются наиболее общими для схем ЭА. Выполнение этих условий обеспечивает повышение надежности, уменьшение размеров конструктивных единиц, минимизацию взаимных наво- док, задержек сигналов, уменьшение общей длины соединений и т. п. Формально задача размещения заключается в определении оптимального варианта расположения элементов на плоскости в соответствии с введенным критерием, например с минимальной взвешенной длиной соединений. Сформулируем задачу размещения. Пусть задано множество элементов с множест- вом цепей, определенных на подмножествах этих элементов, и пусть задано множество позиций. Необходимо назначать элементы 158
в позиции таким образом, чтобы суммарная длина связывающих деревьев для всех цепей схемы была минимальна. Исходными данными при решении задачи размещения явля- ются монтажная плоскость (плата, кристалл, панель и т. д.), как правило, прямоугольной формы, число элементов, которое полу- чено в результате компоновки, т. е. разбиения графа схемы на ча- сти, и граф схемы соединений элементов G=(X, U). На монтаж- ную плоскость наносят координатную сетку и оси координат s и t и, таким образом, представляют ее в виде графа Gr. Задача размещения сводится теперь к отображению заданного графа схемы G=(X, U) в координатную сетку Gr таким образом, чтобы вершины множества X размещались в ее узлах и суммарная длина связей L(G) = l/2S^,Zi,j (3.43) пли суммарное число пересечений P(G) = 1/2 Е Р(*ЧП (3.44) Uj^U были наименьшими для возможных способов отождествления вер- шин графа и узлов сетки. В выражениях (3.43) и (3.44) г;, j — число кратных ребер между вершинами х/, р(^г, j) — число пересечений ребра /, di, j — расстояние между узлами i и / гра- фа Gr. При размещении схем ЭА критерии минимума суммарной дли- ны внутрисхемных пересечений и ограничение по тепловому и электрическому режимам некоторым образом противоречивы и оптимизация по одному из них может привести к ухудшению дру- гого критерия. Для совместного учета рассматриваемых критериев рассмотрим обобщающий критерий размещения схем на инте- гральных микросхемах Q(G)=[L(G), P(G), 5(G)]. (3.45) Здесь 5(G) — электромагнитная и тепловая совместимость эле- ментов; L(G), P(G), 9(G) — управляемые переменные, завися- щие от числа ячеек, связей, расположения ячеек относительно друг друга на плоскости. Это выражение приводит к задаче оптимизации, решение ко- торой, не являясь оптимальным для L(G), P(G) или 3(G), ока- зывается приемлемым для Q(G) в целом. Оптимальность Q(G) говорит о том, что дальнейшее уменьшение L(G) невозможно без увеличения P(G) или 3(G) и наоборот. Так как построение алго- ритмов по обобщенной оценке затруднительно, объединим задан- ные критерии в один, т. е. построим аддитивную функцию Q(G) =ML(G) +X2P(G) +%33(G). (3.46) Здесь величина Хь te/={l, 2, ..., I}, — весовой коэффициент, ха- рактеризующий важность одного критерия по сравнению с дру- гими. 159
Существует большое число алгоритмов размещения графа схе- мы с минимизацией суммарной длины соединений и внутрисхем- ных пересечений. Все алгоритмы можно условно разделить на две группы: непрерывно-дискретные и дискретные. К первой группе относятся алгоритмы, основанные на построении механических аналогов, градиентные методы и др. Ко второй группе относятся итерационные, последовательные, смешанные, а также основанные на идеях метода ветвей и границ. Последовательные алгоритмы (часто встречается название «конструктивные с начальным размещением») заключаются в вы- боре первоначально размещаемого элемента или группы элементов с последующим подсоединением неразмещенных элементов. После размещения элементов они уже не перемещаются. Последователь- ные алгоритмы размещения требуют небольших затрат времени ЭВМ, как правило, они относятся к классу полиномиальных алго- ритмов и их сложность 0(п). Они широко используются в прак- тике проектирования ИМС4 и ИМС5. Правила выбора и расста- новки элементов зависят от конкретных методов. Итерационные алгоритмы размещения с улучшением качества работают в итеративном режиме. Для изменения позиций элемен- тов выбираются одиночные элементы или группы элементов. За- тем по выбранным правилам производится переразмещение эле- ментов для уменьшения общей длины соединений. Каждый этап алгоритма должен приводить к новому размещению с меньшей общей суммарной длиной. Итерационные алгоритмы позволяют получать более качественные результаты, чем последовательные, но за счет больших затрат машинного времени. Они также отно- сятся к классу полиномиальных алгоритмов, но их сложность по- рядка 0(п2)—0(п4). К итерационным алгоритмам относятся: ме- тод назначений Штейнберга, метод парного обмена, метод сосед- него обмена, метод силонаправленной релаксации. К группе ите- рационных относятся стохастические методы размещения. Основ- ная идея этих методов следующая. Случайным образом распре- деляются элементы по посадочным местам плоскости с учетом плотности распределения вероятности, которую обычно считают равномерной. Далее определяется, например, суммарная длина соединений в полученном размещении и сравнивается с предыду- щим. Лучшее размещение оставляется. Процесс продолжается до тех пор, пока не окончится отведенное время или не будет про- смотрено заданное число размещений. Алгоритмы, основанные на идеях метода ветвей и границ, относятся к точным. При этом множество всех допустимых реше- ний разбивается на меньшие по мощности подмножества, в кото- рых производится поиск оптимального размещения. Метод сопро- вождается вычислением низших границ, и поиск оптимального размещения прекращается, когда граничное значение начинает превышать значение при найденном допустимом размещении. Процесс продолжается до тех пор, пока не будет закончен поиск 160
в каждом подмножестве разбиения или не будет найдено опти- мальное размещение. ч При реализации алгоритмов в общем случае могут получать- ся локальные минимумы целевой функции. Поэтому представляют интерес получение оценок суммарной длины соединений и числа пересечений для графа схемы с данными числами вершин и ре- бер. Приведем оценку минимальной суммарной длины ребер графа. Пусть дан произвольный граф G=(X, U), причем |X|=n, \U\=m, и задана сетка Gr с шагом, равным 1, число узлов ко- торой больше или равно т. Тогда ребра G будут иметь вес 1, 2, Aff/V — вес наиболее длинного ребра графа). Вес любого ребра однозначно определяется матрицей геомет- рии DT. Если Gr имеет размеры тх/, то N = m-\-l—2. Введем понятие стандартного графа Сд = (ХД, (7Д ) для графа G=(X, U), отображенного в сетку. Граф Сд имеет |Х| = |Хд| и |{7|=' = | U д |. Основная идея нахождения нижней оценки суммарной длины ребер произвольного графа заключается в следующем. Сначала подсчитывается число вершин и ребер графа G. Далее в координатной сетке строится стандартный граф G^ = (X^, ), имеющий такое же число вершин и ребер, как и граф G. Построе- ние ведется путем последовательного помещения в сетку сначала всех ребер бд? вес которых равен 1. Если число единичных ребер графа Сд равно или больше числа ребер графа G, то процесс построения заканчивается. В противном случае последовательно добавляются ребра с весом 2,3 и далее до тех пор, пока общее число ребер графа Сд не станет равным числу ребер графа G. Подсчитав суммарную длину ребер G, равную L д) =fi + 2/2+ ... (3.47) где fi — число ребер с весом i, получим нижнюю оценку минималь- ной суммарной длины для графа G и для любых графов с таким же числом вершин и ребер, таким же образом отображенных в за- данную сетку. Граф Сд в общем случае не изоморфен графу G. Из приведенных рассуждений следует следующая теорема. Теорема 3.5. Минимальная суммарная длина всех произволь- ных графов с п вершинами и т ребрами не может быть меньше суммарной длины ребер соответствующего стандартного графа Од. Доказательство теоремы следует из построения стандартного графа. Рассмотрим последовательно-итерационный алгоритм разме- щения вершин графа на плоскости с минимизацией суммарной длины соединений. Последовательная часть, которая применяется для упорядочивания множества вершин и получения начального размещения, использует понятие коэффициента связности для каждой вершины. Пусть задан граф схемы G=(X, U) и задана плоскость, на которой размещен граф сетки Gr. Необходимо раз- местить вершины х^Х в узлы сетки с минимизацией суммарной 6—144 161
длины ребер Uj^U. Число узлов Gr больше или равно числу вершин графа G. Для общности рассуждений можно предполо- жить, что часть узлов сетки уже отождествлена с некоторыми вер- шинами графа схемы. Пусть вершина х^Х графа помещена в (/+1)-ю позицию, где j — число занятых позиций. Тогда коэф- фициентом связности Д(хг) называется выражение А (%г)=^г, h—ai)Z, где aifh — число ребер, соединяющих вершину Xi с подмноже- ством ранее размещенных вершин графа; ai>z = p(Xi)—aith — чис- ло ребер, соединяющих вершину Xi с неразмещенными вершинами графа, тогда А (%г) = 2«г, h—р (Xi) • (3.48) Идея алгоритма заключается в определении коэффициента связности для всех неразмещенных вершин и помещении в пер- вую свободную позицию (узел сетки) вершины с максимальным значением A(jq). Заметим, что, как правило, размещение вершин в узлы Gr начинают с крайнего левого узла Gr. Процесс последо- вательно продолжается до тех пор, пока не будут размещены все вершины графа. Перейдем теперь к описанию итерационной ча- сти алгоритма размещения, основанной на понятии центра тяже- сти вершины. Для оценки степени «удобства» у-й позиции для вершины гра- фа Xj введем понятие средней длины ребра для каждой его вер- шины Lj = 2 di, j?г, jl 2 (3.49) i=l i=l где Lj — средняя длина ребер, инцидентных вершине графа Xj, помещенной в позицию сетки Vj. Из (3.49) следует, что (Vi/i, j^U j)[(di, j — \ Lj = 1], (3.50) где Uj — множество ребер, инцидентных вершине графа Xj\ Lj — средняя длина ребер, инцидентных Xj. Выражение (3.50) показы- вает, что необходимо стремиться к такому размещению вершин графа, когда средняя длина ребер стремится к минимальному зна- чению. Основная идея алгоритма заключается в следующем. Из множества вершин графа, расположенного в сетке, вы- бирается вершина Xj с максимальным Lj и производится ее пере- становка с другой вершиной с целью минимизации (3.43). Про- цесс продолжается до тех пор, пока возможно уменьшение сум- марной длины ребер графа. Рассмотрим процедуру выбора вто- рой вершины для переразмещения вершин графа. Представим, что данный граф моделирует некоторую систему материальных точек. Пусть все точки Xj^X закреплены, а у^Х движется по не- которому закону. Тогда известно, что минимум суммарной длины расстояний от у до точек Xj (рис. 3.28) имеет место, когда точка у -помещена в точку с координатами центра тяжести (sc, tc) рас- сматриваемой системы. 162
Итак, можно сделать выводы: ищется такое положение для вершины у^Х, .которое обеспечит равновесие в сетке при усло- виях, когда все остальные вершины закреплены и между у и точ- ками х^Х (/=1, 2, ..., п—1) действует сила притяжения, пропор- циональная di, )Гг, j. Координаты центра тяжести системы матери- альных точек, расположенных в сетке Gr, определяются: п п п п sc= 2 mjSjl2 tc= 2 (3.51) /=i /=i /=i /=i где m,j — масса материальной точки (вершины графа) Xj\ Sj, tj — координаты материальной точки Xj. Принимая во внимание, что между двумя точками (вершинами) может находиться несколько связей п, ;=/=! и считая mj=l, получаем п п Sc= 2 Stfг, lift (-^г) J tc— 2 г, ?7р (^г) • (3.52) 7=1 7=1 В общем случае полученная точка (sc, tc) не принимает цело- численного значения координат прямоугольной сетки. Поэтому необходимо! выделить некоторые подмножества вершин, являю- щихся ближайшими соседями для вершины с координатами (sc, /с). Получим некоторое подмножество вершин сетки, которое об- разует область возможных перестановок с первой выбранной вер- шиной. Рассмотрим теперь способ выделения из указанного под- множества такой верши- ны графа, перестановка которой с уже выбран- ной дает максимальное уменьшение суммарной длины ребер графа. Пусть для х^Х определены (sc, tc) и область сосед- них вершин X'czX. Опре- делим вершину Xi^X', которую необходимо пе- реставить с Xj. Пусть вер- Рис. 3.28. Пример размещения точки у в точке с координатами (sc, tc) шина Xj находится в q-n позиции, и для нее опре- делена Lj. Определим для вершины Xj значение L^j, где среТ — множество ближайших по- зиций. Для выбора необходимой позиции найдем значения откло- нений (У₽5 — Lj L^j. (3.53) п Здесь S di, jri, j/p(Xj). Позиция сетки, для которой выраже- 1=1 ние (3.53) максимально, будет наиболее выгодной для помещения в нее вершины Xj, так как обеспечивает наибольшее уменьшение 6* 163
суммарной длины ребер, инцидентных вершине Xj. Аналогично для каждой вершины х^Х' определяется отклонение a*i = L<Pg—Ц, (3.54) где q — номера узлов графа сетки Gr. Для перестановки вер- шины определим алгебраическую сумму 6г, j = (3.55) Для переразмещения выбирается та пара вершин, для которой выражение (3.55) имеет максимальное положительное значение. Если среди X' нет вершины, для которой (3.55) является поло- жительной величиной, то необходимо выбрать подмножество Х"^.Х (X'czX"). Если и в этом случае не окажется вершины, для которой 6г, ;>0, то производится переход к выбору вершины с другим значением Lj. Процесс минимизации L(G) следует считать законченным, если все коэффициенты Lj будут меньше двух. Так как на каждом шаге для перестановки выбирается пара xif Xj, для которой бг, j>0, то итерационный процесс размещения всегда сходится. Рассмотрим работу итерационной части алгоритма для графа схемы G, отображенного в сетку и показанного на рис. 3.29. Матрица смежности име- ет вид 123456789 1 2 3 4 R= 5 6 7 8 9 0 0 0 3 0 0 0 2 1 0 0 2 0 0 2 3 10 0 0 0 0 2 0 0 0 0 0 5 2 2 0 0 0 0 3 0 0 0 0 0 0 0 0 4 0 2 3 0 0 0 0 0 0 0 0 0 5 0 0 0 2 0 0 4 0 5 6 0 5 0 3 2 6 3 0 0 0 2 0 0 Определим Lj для всех вершин графа. Для этого, используя матрицу гео- метрии, определяем значение di,j. Далее по формуле (3.49) получим Lj. Рас- смотрим вершину %1. Для нее di,4=J*i—+ |У\—У±\ = |0—0| + 10—1|=1; di.7=2, 6/1,8=13; L1= (Г1,4^1,4+п,7^1,7+/‘1,8^1,8)/ (и,4+И,7+И ,в) =2. Остальные ко- эффициенты определяются аналогично: £2« 1,3; £з=1,5; Li& 1,7; £5 «1,7; £6«2,2; £7 «2,2; £8=2; £9=2. С помощью выражения (3.52) найдем координаты центра тяжести для вер- шины графа х6: s6c= (5s4+2s5+5s7 + 6s8)/(гв,4+/’в,5+гв,7+Гб,8) « 1,4; /6С = (5/4 + 2/5 + 5/74-6/3) /(г6,4+г6,5+г6,7+гв,в) «1,4. Видим, что в подмножество X' (круг радиуса 1 с центром 1,4, 1,4) попали вершины *4, *s, х7, х8. Теперь произведем условную перестановку вершины х8 с вершинами под- М1ножеств1а X', т. е. %4, хь, x7t х&. Для этого, используя выражения (3.49), опре- деляем значения Lj и £ 164
Lq4>*= ^4,6 r6,4 + <*4,5 Г6Й5 +^4,7 r6,7 + ^4,8 r6,8 r6,4 + f6,5 + f6,7 + r6,8 2*5 + 1*2 + Ь5 + 2*6 ~ 29 ~ 5 + 2 + 5 + 6 18 ^5,6 r6,5 +^5,4 r6,4 +^5,7 r6,7 +**5,8 r6,8 23 r6,5 + r6,4 + r6,7 + r6,8 **7,6 r6,7 + **7,4 f6,4 + ^7,5 r6,5 + **7,8 r6,8 30 r6,7 + r6,4 + r6,5 + r6,8 18 d6,4 r4,6 4- <*6,1 f4,l +d6,2 r4,2 2>5+ 3.3+ 2>1 Г4,б + Г4,1 + z4,2 5 + 3+1 L65«l; L67«2,4; L68«2,5. Здесь, например, £6ф4 — это значение средней длины ребер вершины х$ при условном расположении в сетке Gr на месте вершины х4. Величины £%, £65, 167, £68 — это значения средней длины ребер вершин х4, х8, х7, х8 при услов- ном их расположении на месте вершины xQ. Рис. 3.29. Пример графа для иллюстрации итерационной части алгоритма (а) и его окончательное размещение (б) Используя выражения (3.54) и (3.55), получаем отклонения и Максимальное 65,6 соответствует паре вершин x6i *5, поэтому, произведя первую итерацию, переставим вершины х8 и х5. Выполнив аналогичные дейст- вия, получим расположение графа на плоскости (в сетке) и показанное на рис. 3.29,6. Как видим, суммарная длина уменьшилась с L(G)=76 до L(G)«» 165
Рассмотрим еще один итерационный алгоритм размещения. Предположим, что задано первоначальное произвольное располо- жение графа на плоскости. Из множества его вершин выбирается подмножество, для которых разность между числом «длинных» и «коротких» ребер положительна. Из них выбирается такая вер- шина среди смежных, для которой имеется множество вершин, свя- занных с данной вершиной «длинными» ребрами, причем расстоя- ние между ними не превышает длины «коротких» ребер. После этого из указанного множества необходимо найти такую верши- ну в графе, перестановка которой с ранее выбранной на данном шаге приводит к наибольшему уменьшению суммарной длины ре- бер. Для этого множество вершин графа разбивается на два под- множества, <в первое из которых включаются вершины, отстоящие от выбранной на величину, не превышающую длину «коротких» ребер, а во второе подмножество — вершины, отстоящие от нее на расстоянии, равном величине «длинных» ребер. Из второго под- множества выбирается вершина, у которой среди множества ин- цидентных ей ребер наибольшее число инцидентно вершинам, при- надлежащим первому подмножеству. Аналогично находится и пе- реставляется другая пара вершин графа. Этот процесс продол- жается до тех пор, пока возможно уменьшение суммарной длины ребер графа. В том случае, когда выполнять одиночные переста- новки нецелесообразно, предлагается вариант групповой пере- становки. Пусть задан граф соединения элементов схемы, обозначаемый через G=(X U). Пусть, кроме того, задана сетка, число узлов которой не меньше общего числа вершин графа. На сетке выде- ляется область требуемой конфигурации. Произвольно занумеруем узлы внутри выбранной области числами натурального ряда 1, 2, 3, ... Затем произведем размещение вершин графа в узлы сетки так, чтобы совпали их соответствующие номера. Очевидно, что в общем случае такое размещение графа G не является оптимальным. Для минимизации суммарной длины ре- бер графа предлагается выбрать и переставить некоторые вер- шины Xi^X И Xj(=X. Оптимизацию размещения вершин графа G будем проводить следующим образом. Для каждой вершины х^Х графа G зада- дим разбиение множества Ui инцидентных ей ребер на два непе- ресекающихся подмножества U\ и U"i. Подмножеству (7^ отне- сем ребра, весовая функция которых не превышает некоторого предельного значения а, а подмножеству LYZ — все остальные ребра, принадлежащие Ui. Назовем первое подмножество а-ребер, а второе подмножеством |3-ребер. Подсчитаем число ребер каж- дого подмножества и U"it Запишем таблицу, в которой для каждой вершины х^Х проставим соответствующие значения U'if U"i и определим разность | U\ | — | U"i\ = Дг-. Очевидно, что Д;> 0. Ясно, что вершины, приводящие к уменьшению суммарной длины ребер, необходимо выбирать среди вершин, у которых соответ- 166
ствующие элементы столбца Аг положительны. Для каждой вер- шины графа из подмножества с положительными А$ рассечем плоскость сетки на две части горизонтальной секущей линией относительно этой вершины. Подсчитаем число «длинных» ре- бер, инцидентных этой вершине, входящих в обе части. Зафикси- руем ту область, которая содержит наибольшее число вершин, связанных с выбранной «длинными» ребрами. После этого рассе- чем граф вертикальной секущей линией, проходящей через ту же вершину, и снова подсчитаем число таких вершин в обеих частях. Сравним число вершин после первого и второго сечений графа. Из вершин графа с положительными Аг выберем вершину, имею- щую наибольшее число инцидентных ей p-ребер в горизонтальной или вертикальной областях. Эту вершину обозначим х^Х. При выборе второй вершины предпочтение отдадим той области, где имеется наибольшее вхождение р-ребер. Суммарную длину ребер графа можно уменьшить за счет уменьшения длины p-ребер или, если это возможно, полного их устранения, а также за счет увеличения числа а-ребер. Учитывая сказанное, будем искать вторую вершину, которую целесообразно переставить с уже выбранной х^ Для поиска такой вершины пред- лагается следующий формальный метод. Выделим из множества •вершин графа непересекающиеся подмножества Х\ и X"i, Х\ U в подмножество Х\ включаются кроме вершины Xi вер- шины, которые отстоят от Xi на расстоянии не больше а. В под- множество X"i включаются все остальные вершины. Вторую вер- шину выберем из области, в которой лежат вершины, инцидентные p-ребрам вершины х^ Множество вершин этой области обозначим через Xj. Для «каждой вершины Xj<=Xj подсчитаем число ребер, инцидентных вершинам из подмножества Х\ и Х'\. Построим вто- рую таблицу, в первом столбце которой для каждой вершины Xj^Xj укажем число ребер инцидентных вершинам подмно- жества X'jf а во втором — число ребер 1инцидентных верши- нам подмножества Х'\. После этого найдем разность |[7z,j|— — В качестве вершины Xj^Xj, которую необходимо пе- реставить с вершиной Xi, выберем вершину, имеющую наибольшее значение oj. Легко показать, что перестановка вершин Xi и Xj приводит к уменьшению суммарной длины ребер графа, если Ai+<yj>0. (3.56) Действительно, пусть переставлены вершины, для которых выполняется условие (3.56), и произошло увеличение суммарной длины ребер графа. Однако увеличение может произойти лишь в том случае, если у переставляемых вершин увеличится число (3-ре- бер и уменьшится число а-ребер, что невозможно, так как это противоречит выбору А; и Gj для соответствующих вершин графа. Так как эффективность перестановки вершин Xi и Xj графа в значительной мере зависит от того, насколько удачно произведе- но разбиение ребер графа на а- и (3-ребра, то приведем прибли- женную оценку этого разбиения. Иначе говоря, определим, какие 167
ребра графа следует включать в подмножество 0-ребер U", а ка- кие — в подмножество а-ребер U'. До перестановки вершин графа G суммарная длина ребер L(G) определяется следующим образом: Л(С)=Ла + Лр. Представим La и Лр в виде h ^cc=*Si+2S2+ ... + (k—1) Sk-l+kSk= 5 a=i N La = (.4+ + (^ + 2)5^4.2+ ... + (N—1) Sn-i~[-Nsn = 2 Л5n> n=fc+i где — число ребер длины g(r]); ) — суммарная длина ребер длины |(л); N — наибольшая из длин ребер графа [если граф расположен в сетке с размерами pXq, то N^(p + q—2)]. После перестановки двух выбранных вершин суммарная длина ребер изменится и станет равной Z/(G)=Z/a + Z/p. Предположим, что все a-ребра увеличились, а все [3-ребра уменьшились на не- которую величину. Тогда можно записать h L'a = (si + #i) +2 (<$2 + ^2) + ••• + &+ = 2 £ (5 g g); a=i Z/p= (&+1) (sk+i — bk+i) + (£ + 2) (sk+2 — bk+2) + ... (sn — bN) = jW = 2 л (5t] —b tj ), n=*+i где и т|&т] — соответственно прирост и уменьшение суммар- ной длины а- и [3-ребер. Очевидно, что перестановка целесообраз- на, если выполняется условие Z/(G)<L(G). Отсюда следует, что d\ + 2^2 + ••• (^+1)&fe+i + (^4-2)&к+г+ ... -^МЬдг (3.57) или k N 2 ati< 2 bjj. i=i i=k+i Рассмотрим неравенство a(l+2+ ... +й) (&+1+&+2 + ... +JV), (3.58) где a=max(ai, «2, .... <%); 6=тт(&ь+ь bk+2, Ьк). Очевидно, что если k определить из неравенства (3.57), то (3.58) будет заведомо выполняться. Если а>Ь, то (1+2+ ... + + &)<(&+1+& + 2+ ... +1V), откуда ^(^+1)<0,5^(^+1). (3.59) Если выбрать b = l, a a—N, то £'(£'+1)<0,5(АГ+1). (3.60) Таким образом, k и k' определяют границу изменения а. 168
Заметим, что если невозможно выбрать перестановку вершин, уменьшающую суммарную длину ребер, то можно произвести пе- рестановку групп вершин. Для нахождения групповых перестано- вок вершин графа предлагается эвристический прием, использую- щий операцию факторизации графа G. Разобьем множество вер- шин X графа G на п классов Х\, Х2, ..., Хп и отнесем к ним вер- шины, лежащие в строках сетки внутри области размещения. В каждом классе выделим внутренние и соединительные ребра. Те- перь построим новый граф, в котором верши- 'нами являются классы Получим линейно- расположенный мультилраф Gn, содержащий только соединительные ребра. Аналогично проведем операцию разбиения на т классов, вершины каждого из которых принадлежат столбцам области размещения. Получим мультиграф Gm. Для мультиграфов Gn и Gm нетрудно- определить перестановку вершин на основе последовательного алгоритма. После получения оптимального размещения мульти- графа производится переход к црафу G. Заме- тим, что указанный прием факторизации лег- ко распространить на случай размещения графа в области произвольной конфигурации. Сформулируем теперь алгоритм размеще- ния графа на плоскости и запишем его в виде граф-схемы алгоритма (рис. 3.30). Ao, Ак — операторы начала и конца соот- ветственно; Ai — оператор, выполняющий произволь- ное размещение графа G в узлах заданной решетки; А2— построение таблицы, определение Xi с наибольшим положительным Д$; . Рис. 3.30. Граф-схе- ма алгоритма разме- щения графа’, на пло- скостй А3 — разбиение множества X на два подмножества Х\ и X"i относительно хр, А4 — построение таблицы, выбор Xj, для которой — наи- большее положительное число; А5 — перестановка вершин xt и А6 — факторизация графа G по строкам и столбцам, минимиза- ция суммарной длины связей мультиграфов, переход к графу G; Рь р2 — логические условия; если pi=l, то за оператором А4 выполняются А5 и логическое условие р2; если Pi = 0, то за А4 выполняется А6; если р2=1, то за оператором А5 выполняется А2, А3; ...; если р2 = 0, то за А5 выполняется А6. Логическое условие pi проверяет выполнение условия (3.56), р2 проверяет наличие р-ребер. Работу алгоритма покажем на примере размещения графа в сетке, пока- занного на рис. 3.31. 169
По графу G построим матрицу расстояний, элементы которой образуются путем поэлементного умножения матрицы графа Gr на матрицу смежности графа G: 1 2 3 4 5 6 7 8 D= 9 10 11 12 13 14 15 16 1 2 3 ООО 0 0 1 О 1 О 0 2 0 0 2 0 О 1 О ООО 0 3 2 0 3 0 0 2 0 4 0 2 5 4 0 0 0 5 4 0 4 5 0 0 0 5 4 4 5 6 7 8 9 10 11 12 13 14 15 16 0000000450450 2210332040005 0000200205404 0032154300000 0012000002005 3100001000004 2200032000020 1000000000400 5003000200000 4012000020000 3000020010010 0000002100300 0200000000120 0000400031000 0002000102000 0540000000000 Суммарная длина ребер графа G равна L(G) = 114. Из условия (3.59) найдем k = 3. Построим табл. 3.1, из которой выберем вершину Для вер- шины %i определим область перестановок и построим табл. 3.2. Из табл. 3.2 выберем вершину %1б. Произведем перестановку вершин и %1б. Одиночные пе- рестановки повторим до тех пор, пока выполняется условие (3.56). В результа- те получим размещение, показанное на рис. 3.32. Таблица 3.1 № | |V"il 1 Itf'il Ai № | l^il 1 1 Ai 1 0 4 4 9 3 1 —2 2 7 2 —5 10 4 1 —3 3 3 3 0 11 5 1 —4 4 5 2 —3 12 3 2 — 1 5 4 1 —3 13 3 1 —2 6 4 1 —3 14 2 3 1 7 5 0 —5 15 3 1 —2 8 3 1 —2 16 0 4 4 Произведем факторизацию графа G по строкам и столбцам, которая пока- зана соответственно- на рис. 3.33,а и б. В итоге получим размещение графа О, представленное на рис. 3.34, суммарная длина ребер которого L(G)=65. Рассмотрим кратко перспективные исследования при разра- ботке итерационных алгоритмов, к которым относят: квадратичное размещение; размещение при делении плоскости пополам; размещение на основе частичного деления плоскости пополам. 170
При квадратичном размещении исходным является размеще- ние, полученное последовательным алгоритмом. Далее плоскость размещения делится пополам вертикальной разрезающей линией на две полуплоскости: рх и р2. Затем р\ и р2 делятся пополам го- Рис. 3.31. Пример графа для раз- мещения Рис. 3.32. Размещение после вы- полнения единичных переставок ризонтальной разрезающей линией. Этот процесс по возможности продолжается, а затем начинается процесс восходящего пере- размещения с перестановкой элементов между разрезающими ли- ниями для минимизации суммарной длины. Таблица 3.2 № \ / l^'jl I Oj 11 4 2 2 12 3 2 1 14 3 2 1 15 3 1 2 16 4 0 4 В алгоритмах второго типа выбирается стратегия деления плоскости в столбце (строке), а затем в строке (столбце). Сна- чала выполняется вертикальное (горизонтальное) деление пло- скости пополам. Затем каждая полуплоскость снова делится до тех пор, пока каждый элемент схемы не будет назначен в столбец (строку). Этот метод аналогичен методам, в которых сначала на- значаются элементы в столбцы, а затем производится перестанов- ка элементов в столбцах, чтобы оптимизировать размещение. Алгоритмы третьего типа аналогичны разбиению схемы на две части. Здесь плоскость разбивается на две полуплоскости с I эле- ментами и п—I элементами, затем снова выполняется разбиение и т. д., пока все элементы не будут назначены в строку. Назна- 171
чение элементов в столбец производится через вертикальное деле- ние плоскости. Заметим, что эти подходы наиболее целесообразно применять для совместного разбиения, размещения и трассировки печатных плат. Рис. 3.33. Факторизация: а — по столбцам; б — по строкам Рассмотрим алгоритм линейного размещения графа схемы ме- тодом ветвей и границ с минимизацией суммарной длины соеди- нений. При проектировании внутренней топологии элемента инте- гральной микросхемы наиболее целесообразно применять точные методы, легко реализуемые на ЭВМ. Пусть задан граф коорди- Рис. 3.34. Окончательное раз- мещение графа ’(см. рис. 3.31) Рис. 3.35. Фрагмент схемы 172
латной сетки Gr, в котором число столбцов равно числу вершин размещаемого трафа схемы G=(X, U), а число строк равно еди- нице. Задача состоит в отображении вершин графа в ячейки гра- фа сетки Gr по критерию минимума суммарной длины ребер, т. е. в нахождении подстановки 1, 2, ..., п Xj, ^2, ..., Хп где 1, 2, п — номера позиций сетки; f=l, 2, п — вершины размещаемого графа. Известно, что число таких подстановок равно п\ Для эффективного решения задачи линейного размещения ме- тодом ветвей и границ необходимо: а) выбрать метод нахождения нижней границы суммарной длины ребер графа и б) определить метод ветвления дерева решений, позволяющий отсекать ветви, со- держащие заведомо непригодные решения. Рассмотрим три способа вычисления нижней оценки. В первом из каждой строки треугольной матрицы геометрии Dr выбирают- ся элементы с наименьшим весом и определяется их сумма. Затем из Dr выбираются нерассмотренные элементы di, j, и для них опре- деляются наименьшие возможные значения расстояний при их раз- мещении в линейке. Общая сумма L(G) = 2 min di, j + б, где б — j суммарная длина элементов di, j, выбранных на втором шаге. Во втором способе в Dr выбираются последовательно все элементы, соответствующие ребрам G, и размещаются в линейке (каждое оптимальным образом). Общая сумма расстояний всех ребер дает нижнюю оценку минимальной суммарной длины (стандартный граф). В третьем способе последовательно выбираются все вершины графа с инцидентными им ребрами и располагаются по очереди в линейке таким образом, чтобы суммарная длина связей была минимальна. Очевидно, что для каждой вершины можно найти такое размещение. Сумма длин связей звездных подграфов опре- делит нижнюю оценку минимальной суммарной длины. Рассмотрим пример нахождения нижней оценки суммарной длины фрагмен- 3.35: Ml, м5, м2 Mi, М3, М5, Мб Ml, м4, м2 м5, м3, м4, м6 Мз, м4 М2, М4, Мб та схемы, изображенного на рис. %2 Xq При замене цепей Mi—Мб по)крыв1ающим1и деревьями схема может принять вид графа на рис. 3.36, а список связности вершин и ребер запишется в виде (%lMi%2), (Х1М5Х2), (Х1М2Х3), (Х2М1Х3), (х2м6х4), (х2м3х4), 173
(X2U5X4), (X3U4X4), \(Х411зХ5), (х4и4х6), (х4и6х6), (х5и4х6), (Хзи2х6). Последовательно разместим вершины графа схемы в узлах линейки (рис. 3.37), построим матрицу геометрии и каждым из описанных методов опреде- лим нижнюю оценку минимальной суммарной длины ребер. Матрица геометрии 1 2 3 4 5 6 1 2 3 4 5 6 0 2 2 0 0 0 2 0 1 6 0 0 2 10 10 3 0 6 10 14 0 0 0 1 0 1 0 0 3 4 1 0 В первом случае выберем в каждой строке Dr элементы ditj с минималь- ным весом .и определим их остались элементы di,3, d2}4, юуMiMу 2 min г-,;=2 +1 +1 +1 +1 = 6. Неучтенными ь J ds,6 и dijQ. Расположив соответствующие ребра с минимальной суммарной длиной, получим di>3 = = 1, ^2,4=3, ^4,6=2, с/з,б=|1, 6=7 и L(G)=13. Во втором случае используем построение стандартного графа, тогда получим £(6Д) = = 3 + 2 + 2+1 + 1+2+2 + 2+2 = 17. Рис. 3.36. Граф фрагмента Рис. 3.37. Размещение графа в линейке схемы В третьем случае, выбрав наилучшее размещение для каждой вершины с инцидентными ребрами, определим суммарную длину всех звездных подграфов: 2 <Л,г=3; 2 йл=2+3+2=7; 2 = 1 +1 +2+2=6; i=2 1=1 t=l i=/=l i+2 2 d4,i=3+2+,2+2=9; 2 d5,. = 2; 2 <*б,«=2+'1 +2=5. i=l i=l i=l Тогда L(G) = 2 ^-,5 = 16. 2 i=l J=1 Заметим, что проще всего определять первую оценку, хотя она и является завышенной. Вторая и третья оценки точнее, но процесс их вычисления сложнее. Для определения нижней границы суммарной длины L(O) ре- бер графа О воспользуемся понятием стандартного графа Од (вторая оценка). 174
Для разбиения множества решений Q на подмножества, т. е. ветвления дерева решений, будем фиксировать некоторые верши- ны в определенных позициях сетки. Если, например, зафиксиро- вать вершину Xi на любом месте сетки, то получим подмножество QiC=Q, содержащее (п— 1)! решений. При фиксации двух, трех и т. д. вершин получим соответственно (п—2)!, (п—3)! и т. д. ре- шений. Нетрудно видеть что, используя такой метод ветвления, получаем подмножество, содержащее одно решение. Пусть вершины хь х2, ..., xq фиксированы соответственно в по- зициях 1, 2, ..., q графа сетки. Нефиксированные вершины графа G могут располагаться в свободных узлах графа сетки произвольным образом. При этом суммарная длина L(G) состоит из трех ча- стей: Li(G), L2(G), L3(G), где Li(G) — суммарная длина ребер, смежных только фиксированным вершинам — определяется из способа построения матрицы геометрии Dzr — точное значение; L2(G) — суммарная длина ребер, связывающих фиксированные и нефиксированные вершины являет- ся нижней оценкой, поскольку учи- тывает длину связей при располо- жении нефиксированных вершин по стандартному графу; L3(G)—сум- марная длина ребер, смежных толь- ко нефиксированным вершинам оп- ределяется как суммарная длина ребер стандартного графа, постро- енного на п—q вершинах, и остав- шихся неучтенных ребер графа. Заметим, что фиксация вершин при размещении графа может лишь увеличить или оставить без измене- ния суммарную длину по сравне- нию с нижней оценкой, полученной по стандартному графу. Кроме того, увеличение числа фиксирован- ных вершин также не уменьшает суммарной длины, поскольку чис- ло вершин, входящих в стандартный граф уменьшается. Рассмотрим пример размещения графа G, показанного на рис. 3.38, в ли- нейку Gr (рис. 3.39,а). Определим нижнюю границу суммарной длины по стандартному графу 0д, показанному на рис. i3.i39,6. Получим 0(Q)=L(GA) = = 11. Разобьем множество' решений Q на п подмножеств, фиксируя поочередно вершины графа Gi на первой позиции графа Gr. Для каждого подмножества решений Q1!; Q4; QV, Q!6 определим суммарную длину, предположив, что Q1! получено фиксированием Xi в первой позиции, Q!2 — фиксированием х2 также в первой позиции и т. д. Получим ©(Q1!) =Lj (G)+L2(G)+L3(G) = = 0+10+4=44; 0(0^) = 12; 0(Qi3)=lil; 0(Q14) = 12; ©(QM^ll; 0(Q16)=H2. Для дальнейшего ветвления выберем подмножество Ql3, как имеющее наимень- шую оценку ©(ОЧ) среди всех 0(Q4), i=l, 2, ..., п, и произведем его разбие- ние на пять подмножеств Q^.i, ОЧ.г, ФЧз, (*рис. 3.40). Вершины Q1!, Q22, Q*4, Q26, Q13,i, Q42, ФЧ.з, 54,4 ОЧ.б, не подвергавшиеся ветвлению, переобозначим соответственно Q2i, Q22, Q23, Q24, Q2s, Q26, Q27, Q2s, Q2g, Q2ic- Вер- шины Q26, Q27, Q28, Q29, Q2io получены фиксацией оставшихся вершин графа (кроме Хз) на второй позиции сетки. Определим ранее не находившиеся грани- 175 Рис. 3.38. Пример графа G для размещения в линейке
цы второго шага 0(Q2e) —15; 0(Q27) = 11; 0(Q2e) = 13; 0(Q2g) = 12; 0(Q2io) = 13. Определим, что ветвлению подлежит вершина Q2?, и произведем ее разбиение на четыре подмножества (рис. 3.41). Продолжив аналогично, получим дерево решений, показанное на рис. 3.42. Получили размещение, соответствующее под- становке /12 3 4 t= ( \ Х3 Х2 *4 %1 5 •Хб 6 х5 Граф, размещенный в Gr с минимальной суммарной длиной L(G) = 11, показан на рис. 3.43. О) Рис. 3.39. Линейка Gr (а), стандартный граф G&(6) Заметим, что, используя понятие стандартного графа и опе- рацию факторизации множества вершин графа G по критерию принадлежности к строкам или столбцам графа Gr, можно нахо- дить методом ветвей и границ ми- нимум суммарной длины ребер графа G и при двумерном размеще- нии на плоскости. Рис. 3.41. Пример ветвления вер- шины Q27 Рис. 3.40. Пример ветвления вер- шины Q!3 Рассмотрим теперь размещение в линейке не элементов, а фрагментов це- пей на основе метода ветвей и границ для фрагмента схемы и ее графа (см. рис. 3.36, 3.37). Будем считать, что Л(СД)=17. Разобьем множество решений 176
Q на s подмножеств, причем s=2-c2n. Далее будем поочередно фиксировать ребра графа схемы в первых двух по- зициях решетки. В нашем случае в пер- вые две позиции сетки будем последо- вательно помещать вершины хь х2; хь х3; ..., пока не рассмотрим все 30 вариантов. Для каждого подмножества Рис. 3.42. Дерево решений Рис. 3.44. Окончательное размещение графа на рис. 3.37 в линейке решений Q1!, Q!2, ..., Q^o определим суммарную длину как нижнюю оценку, предполагая, что Q1! получено фиксированием вершин (хь х2) в первой и вто- рой позициях; Ql2 — фиксированием (xi, х3); ...; Q^o — фиксированием (xs,. хе). Для большей ясности вместо Q4, ..., Qi30 будем писать Q30^ х9 После фиксации вершин (хь х2) в первой и второй позициях линейки по- ЛУЧ™ 0 (Q\ = Lr (G) + L2 (G) + L3 (G) = 2 + 8 + 8 = 18 ; W?Xi Xs) = 1 + 10 + 8 = 19 ; 0 (Q\x ,4) = 0 + 22 + 3 = 25 ; Xi) = 0+14 + 9 = 23; 0 (,Q\ = 0 + 19 + 6 = 25; ®(Q4^) = 2+n+8 = 21: +8 + 4 = 23; e(QW = 23; e«2\!X,) = 27; ©(Q^x.) = = 28; 0(Q\>Xi) = 18, 0(Qi^) = 21; 0(Q^ = 24 ; 0 (Q\, Xe) - 22. 0 (Q\4 Xi) = 28 ; 0 (Q\4 xJ = 23 ; x>) = 27 ; ®(Q\x,) = 25; в(С\х.) = 22; 0 (Q\ = 24 ; ®«24x3) = 24; 0(Qix,x,) = 22; 0 (Q\ Xi) = 20 ; e«?W = 17;| ®W4x1) = 28; e(Q\.Xl) = 27; ®(Q\.x3) = 22; 0(QiJC,J=25; 0(Q\. X() = 19. Выберем оценку ©(Q1^ x ) = 17 и вершины x5x6 поместим в первой и второй позициях линейки. Далее фиксируем оставшиеся вершины в третью позицию линейки и получим 0(Q26,i) = 25; 0(Q26,2) ='25; 0(Ф2б,з)=2О; 10(ф2бл) = 191* 177
Поэтому вершину х4 .поместим в третью позицию линейки. На третьем шаге ®(Q34,i)=25; 0(Q34,2) = 19 I; значит, вершину х2 поместим в четвертую позицию линейки. На последнем шаге 0(Q42,i)=2O; 0(О42,з)=|19 и вершину х$ поместим в пятую позицию линейки. Последняя вершина хь естественно, попадает в ше- стую позицию линейки (рис. 3.44). Получим размещение графа в линейке L(G) = 19. После перехода от графа к схеме получим окончательное размеще- ние, показанное на ,рис. 3.45. Рис. 3.45. Окончатель- ное размещение фраг- мента схемы на рис. 3.35 Отметим, что при размещении фрагментов цепей, т. е. ребер графа схемы, в отличие от вершин, появляется возможность про- гнозировать размещение на шаг вперед, что повышает точность размещения. Результат окончательного размещения в значитель- ной степени зависит от выбора метода ветвления и способа оцен- ки минимальной суммарной длины соединений. Рассмотрим минимизацию пересечений ребер графа схемы. При конструировании ЭА на интегральных микросхемах и печат- ных платах важно отыскать такое расположение схемы, в кото- Рис. 3.46. Пересечение ребер внутри гамильтонова цикла пересекаются между собой, а ресекает ребер гамильтонова цикла. ром сведено' до минимума число пе- ресечений 'проводников. Для про- стоты изложения предварительно рассмотрим графы с гамильтоно- вым циклом, а затем результат рас- пространим на случай .произволь- ных графов. Пусть дан произвольный граф G=(X, U) без петель и кратных ребер. Будем считать, что граф G имеет гамильтонов цикл, а его вер- шины соединяются кратчайшими ребрами. Два любых ребра Uit^U и Uk,i^U могут пересекаться друг с другом не более 1 раза; ребра гра- фа, инцидентные одной вершине, не также ни одно ребро графа не пе- Перейдем теперь к подсчету числа пересечений ребер графа G. Для этого будем располагать ребра графа G, не принадлежа- щие гамильтонову циклу внутри области, ограниченной этим цик- лом. Обозначим множество ребер, инцидентных вершине х^ че- рез Uj> а число пересечений, образованное ребрами этого множе- ства, — через pi. Очевидно, что при проведении ребер, инцидент- ных вершине х^Х, пересечения не образуются. В этом случае pi = 0. Проведем теперь ребра, инцидентные вершине х2^Х, и 178
определим число пересечений этих ребер с ребрами множества U\. Ребро и2, п пересекается со всеми ребрами, инцидентными вершине %1 (рис. 3.46). В дальнейшем ребру us,t сопоставляется элемент матрицы смежности rS} t, где s, t^I= {1, 2, ..., п}\ п — число вер- шин графа. Нетрудно видеть, что число пересечений, образованное ребра- ми U2t п, определяется по формуле п—1 Р2,п = Г2,п5 Г1,г. t=3 Ребро и2, (п-i) образует п—2 Р2, (п-1) = г2, (п-1) 2 г1, г 1=3 пересечений. Аналогично легко определить число пересечений других ребер множества t/2 с ребрами множества [7Ь которое бу- дет иметь вид /—1 р2, j = r2, jS Г1,г. t=3 Общее число пересечений ребер, инцидентных вершине х2) Pi= 2р2,г- /=4 По индукции определим число пересечений ребер, инцидентных вершине xk графа G, Ph= 2 Ph, ]• (3.61) /=£-Ь2 Общее число пересечений всех ребер графа G определяется выражением п—2 п—2 п j— 1 k—1 Р=2 4 т. е. S 2 ^гигтЛ. (3.62) fe=2 4=2 /=&-{-2 i=M~l Непосредственный подсчет числа пересечений ребер графа по формуле (3.62) затруднителен, поэтому для облегчения этого процесса предлагается использовать матрицу смежности R графа G. Поскольку G — неориентированный граф, будем использовать треугольную матрицу, учитывая, что ребра гамильтонова цикла не образуют пересечений, единицы, соответствующие этим ребрам, заменены крестиками. Для нахождения числа пересечений ребер графа G в соответ- ствии с формулой (3.62) при задании графа матрицей смежности R поступим следующим образом. Сначала определим число р2, п, для чего в матрице смежности R выделим подматрицу R2, п> кото- рая имеет вид 179
1 О 1 2 и—1 п 2 3 4 ... п—1 п X" | Rz.n ~| X О X | Г2,п О х О х О X О X О X о Сумма единичных элементов подматрицы R2, п соответствует числу р2, п- Далее определим число Рг,(п-1) путем выделения под- матрицы R2, (n-i) и подсчета суммарного числа единиц в ней и т. д. Число пересечений ребер, инцидентных вершине х2, с ребрами, инцидентными вершине xlt определяется суммой единиц во всех R2, i. Процесс выделения и подсчета единиц в подматрицах продол- жается аналогично до тех пор, пока не будет определено общее число пересечений графа G как сумма единиц всех подматриц от R2, п ДО R(n—2), п* В том случае, когда необходимо не только подсчитывать число пересечений ребер графа G, но и знать число пересечений какого- нибудь ребра uit j, со всеми остальными ребрами графа будем вы- делять в матрице R две подматрицы Ri, j и R',, j 1 2 1 2 R = п Покажем, что ребро j графа G пересекается СО'всеми реб- рами, которым соответствуют единицы в выделенных подматрицах Ri, j и R'i, j. Рассмотрим ребро щ, j графа G. Относительно него можно выделить два множества вершин графа Хг и Х2: Х1 = {хз+Ь -Т/+2, Xi— 1} , Х2 = Xi-$-2, ..., Xj—1}. Согласно теореме Жордана с ребром щ, j могут пересекаться только ребра, одновременно инцидентные вершинам, находящимся в Xi и Х2, т. е. Xk^Xi, xi^X2 или Xi^Xb хь^Х2. Единицы в мат- рице смежности, соответствующие ребрам, как легко видеть, рас- полагаются в подматрицах R,, ,• и R'i, j- Таким образом, суммарное 180
число единиц подматриц Ri} j и RV j определяет число пересечений ребра j со всеми остальными ребрами графа G, На примере графа, показанного на рис. 3.47, определим число пересечений ребра w3,6. Для этого1 запишем матрицу смежности по которой определим, что число единиц в выделенных подматрицах равно трем. Это значит, что ребро ^з,б имеет три пересече- ния. Если для каждого ребра подсчитать число пересечений и записать это число в Рис. 3.47. Пример графа для оп- ределения пересечений соответствующие клетки матрицы смежно- сти, то получим так называемую матрицу пересечений RP графа G. Заметим, что каждое пересечение образуется наложением двух ребер, поэтому для под- счета общего числа пересечений ребер графа G необходимо просуммировать все элементы матрицы Rp и сумму разделить на 2. Данный метод подсчета числа пересечений можно распростра- нить и на графы без гамильтонова цикла. Это следует из того, что ребра последнего не образуют пересечений и матрица пересе- чений Rp при отсутствии части или всех ребер выделенного га- мильтонова цикла не меняет своего вида. Вершины располага- ются так же, как и в случае графа, имеющего гамильтонов цикл. Выше рассматривались графы, у которых ребра находились внутри области, ограниченной гамильтоновым циклом. Естественно предложить расположение ребер графа не только во внутренней, но и во внешней области. Для определения числа пересечений ребер во внутренней и внешней областях графа G целесообразно составить соответствующие матрицы смежности Ri и R2 такие, что R = R1®R2, т. е. для всех элементов матрицы смежности R выпол- няется условие ri} j = j® r2,i, j, где ф — сумма по модулю 2. При расположении ребер графа G в двух областях формула (3.62) имеет вид п—2 п j— 1 fe—1 S S 3 П,й,/Г1,тл + /г=2 /=/г4-2 1=/г+1 т—1 п—2 п /—1 k—1 + S X 3 S r2.k.ir-imi. k=2 j=k4-2 i=k-}-l m—\ Отметим, что данный метод подсчета числа пересечений можно применять и к графам, имеющим петли и кратные ребра. Тогда в матрице смежности вместо единиц будут стоять кратности ре- 181
бер. Введение петель в граф не меняет числа пересечений, так как любую петлю можно провести без пересечений. Рассмотрим теперь возрос подсчета числа пересечений ребер при размещении вершин графа схемы в узлах прямоугольной сет- ки Gr. Пусть задан некоторый мультиграф G=(X U), отображен- ный в сетку Gr, и необходимо найти значение функции p(G). Для однозначности решения поставленной задачи условимся в единообразии проведения ребер графа G. Будем считать, что вер- шины Xi и Xj соединяются ребром, которое проводится от верши- ны Xi по соответствующей строке до столбца, в котором находится вершина Xj. Такое проведение ребра справедливо при /</. Если i>j, то ребро щ, j ведется по столбцу, соответствующему вершине Xj до строки, в которой находится вершина xi} далее по строке к Xj. Все ребра, оба конца которых принадлежат одному столбцу, проводятся слева от соответствующего столбца, а ребра, оба конца которых принадлежат одной строке, проводятся над соответствую- щей строкой. Идея нахождения числа пересечений p(G) ре- бер графа G, отображенного в Gr, заключается в выделении от- носительно каждого ребра некоторых подмножеств вершин Xh, XiczX. Рассмотрим произвольное ребро up,q и выделим относительно него подмножества вершин Xk и Хь которые назовем «подмноже- ствами пересечений». Функция пересечений двух ребер щ, j и ир, q может принимать два значения: , \ _ [ 1» если Ребра щ, j и ир> q пересекаются; Р (Ui, j> UP} q) — I _ 10 в противном случае. Тогда если (V щ, j^Uh,i) (Р (Ui, jf up,q) = 1, то подмножества вершин Xh и Xi будут подмножествами пересечений. Здесь Uk,i — множество ребер, инцидентных как Xk, так и Xi. Очевидно, что XhOXl=0f а ХМХ^Н, где НсиХ. Разобьем все множество ребер графа G на три подмножества С/ь U2f U, (С/1и{/2иС7з= U) и выделим относительно каждого из них подмножества пересечений. Рассмотрим произвольное ребро Hi, j. Пусть вершина хг находится в узле сетки с координатами $ = t=q, a Xj — вершины в узле с координатами s = k, t = l. Бу- дем считать, что ребро iii, j^Ui, если q = l, tii,j^U2l если Ui,j^U3, если ?C>k. Подсчет функции пересечений начнем с ре- бер, инцидентных вершине х\. После определения числа пересечений ребер, инцидентных вер- шине xi, вершина Xi отбрасывается и рассматривается вершина х2 и т. д. Заметим, что на каждом шаге определения функции пере- сечения вершины Xi в подмножества пересечений будут входить вершины Xj, для которых = {i+1, i + 2, ..., п}. Тогда относи- тельно ребер подмножества U\ получим подмножества пересече- ний Xi и Х2, для которых выполняются условия 182
(VxreXi) (tt<S<£, = (VxmeJ2) (s>k, t = q = l), (3.63) где s, t — текущие координаты вершин. Число ребер КХ1,Х 2 между подмножествами Хг и Х2 будет рав- но числу пересечения рассматриваемого ребра ui}j, т. е. p(Wf,j) = =kX1, х2. Подмножества пересечений Х^ и Х2 для ребра (xif Xj) изображены на рис. 3.48. Относительно ребер, f к л л л л а А принадлежащих к U2 и __z?—? ~ U3, подмножества Пересе- X Хг. iT"* чений можно выделить z L„Z„J ' lT„„£} по-разному, однако число пересечений от этого не изменится. Поэтому пред- лагается для ребер ^U2 выделять следую- щие подмножества пере- сечений: Рис. 3.48. Подмножество пересечений Xi, Х2 $ (Vxr^Xi) (s^'k; l<t^q) (Xfxm^X2) (s<k; t<qy (VxrE^3) ($<&; q>t>l) (Vxm^X4) (s>&; Z^Z); (VxrEl5)(n^s<^; /=/) (VxmeX6) ($>&; t=V)\ (Vxr(=X7) t=q) ( Vxm<=X%) (s = k; t<l); (Vxr^X9);(s='fe; l<t<q) (Xfxm<=XiQ) (s = k; Z<Z). (3.64) На рис. 3.49 изображены подмножества пересечений для ребер подмножества U2. Аналогичная процедура выполняется для uif f=U3'. (VxreXi) (s>'&; <?>Z>Z) (Vxm(=X2) (s^6; t<q); (Vxr^X3) (s^L'k; l<t<q) (Vxm<=X4) (s>k; t^l)\ (3.65) (Vxr(=A5) (s<&; / = /) (Vxm(=X6)i (s>&; Z = Z). Тогда функция пересечения для щ,у=и2 р(ьц^)= kX1, X2 + kX3, Х4, 4~ + kx5, x, + kx7, xt + kx9, х10, а ДЛЯ Ui,j^U3 p(ui}j)= kxlf x2 + kx3, x4 + + kx5, %e. На рис. 3.50 показаны подмножества пересечений для ребер Ui,j^U3. Информация о графе задается матрицей смежности R или ее списком. Для графа, изображенного на рис. 3.51, покажем определение функции пе- ресечений р(Ь)'- К1(*3, Х5, Х6, Х9, Хю) Х7(Х1б) Х1з(Х14) ^2(^4> Хб) Х8(хц, Х12, Х1б) Х14(Х15) Хз(Х14, %4, Х1б) ^9(Х12, Х1з) Х15(Х16) Х4(%7, х8, Х12) Хю(Х1з, %14) х16(0) %5 (%7, Хб, Х9) *11(Х15, Х1б) Х6(Х13, Хэ) *12(0) 183
Выделим лервое ребро Ui,3. Найдем координаты вершин (л=1, q=l), Хз (k=3, Z=il). Ребро tti,3e£/b поэтому подмножества пересечений необходимо выделить по условию (3.-63): Xi={x2}> Х2= {*4}, Р(^1,з)= = Выделим следующее ребро Ui.io и определим координаты вершин (n=il, q=l), Хю (&=2, 1=3). Ребро Wi,io^2) поэтому для выделения подмножества пересе- Рис. 3.50. Подмножества пересечений для ребер U3 184
чений используем условие (3.64): Xi = {x2, х3, Х4, х5, х7, х8}; Xs={x9}; Х9= = {Хб}; {^5, Хд., Х1з}; Аб={Хц, Xj2}', -^10 = {-£14}; Хз = {Хз}; Х7 = {х2}; Л\ = = {*11, *12, *15, Х1б}; Х8={Х]4}; Р= («1,10) =k Xi'х2 + kX3t х4+^хв, хв + ^7, xs 4” ^х9,х10 = Аналогичным образом, выделяя подмножества пересечений для остальных ребер. Получаем, что значение функции пересечений ребер графа G равно p(G) = 19. Рис. 3.51. Пример графа для опре- деления функций пересечений Рассмотрим два метода минимизации числа пересечений ребер произвольных графов. В первом методе в графе сначала опреде- ляется такое ребро щ, j, которое имеет наибольшее число пересе- чений. Через это ребро прово- дится линия (секущая ось), которая делит (плоскость на две части (полуплоскости Afi и N2). Относительно секущей оси исходный граф разбивает- ся на две части: Gi и G2. Часть ребер графа G будет принадлежать как Gb так и G2. Тогда если Gi= (Xb СЛ); G2=(X2, G2), to вершины из Xi лежат в полуплоскости Afb а вершины из Х2—в N2. За- метим, что Х1ЛХ2=0, a GiU UU2=Ui,j. Множество ребер Ui^ является соединяющим для полуплоскостей AG и N2. Часть ребе)р множества Ui,j пересекает выбранное ребро и^. Для устранения пересечений этого ребра часть Gi переносим из полу- плоскости AG в полуплоскость N2, а именно в ту ее область, ко- торая «прилегает» к секущей оси. При этом необходимо выбирать такие ребра tik,i> для которых разница между числом пересечений щ, j и числом пересечений ре- бер множества Ui, j, образующихся после переноса Gi в полупло- скость N2, имеет положительную величину. Далее в G=(X, U) выбирается следующее ребро, имеющее наибольшее число пере- сечений, проводится новая секущая ось и вышеописанный процесс повторяется. При достаточно большом числе проведения таких операций можно добиться существенной минимизации числа пере- сечений ребер графа. Однако практически можно ограничиться сравнительно небольшим числом шагов после значительного умень- шения числа пересечений ребер по сравнению с исходным. Пусть дан граф G=(X, U), имеющий 10 вершин и 16 пересечений, пока- занный на рис. 3.52,а. Выберем ребро цз.б, так как оно имеет максимальное чис- ло пересечений. Тогда после рассечения графа определим Gi и G2: Gi = (XiGi), где Xi={xi, х2}, и G2='(X2, U2), где Х2={*4, х$, х7, х8, х9, Хю}; £ЛП^2=£Л,2= = {«1,8, «2,8, «1,5, «2,7, «2,4 • После переноса Gi в полуплоскость N2 получаем граф, показанный на рис. 3.52,6. Затем секущая ось проводится через ребро м3.9, и вновь полученная часть G1] переносится в полуплоскость №2. Окончательный результат работы 185
алгоритма показан на рис. 3.52,в. Число пересечений ребер графа уменьшилось с 16 до 1. На рис. 3.52,6, в ребро «2,7 не показало. Опишем теперь алгоритм минимизации числа пересечений ре- бер графа схемы, основанный на расположении ребер графа во внутренней и внешней областях гамильтонова цикла. Очевидно, что исследование графа с гамильтоновым циклом не уменьшает общности предлагаемого метода, так как отсутствие ребер цикла после применения алгоритма минимизации числа пересечений ре- бер позволит только уменьшить число пересечений за счет прове- дения некоторых ребер графа в том месте, где отсутствуют ребра гамильтонова цикла. При представлении каждого элемента схемы вершиной графа не учитываются пересечения проводников, соединенных с одним и тем же элементом. Однако число таких пересечений трудно под- дается минимизации с помощью ЭВМ, кроме того, оно обычно незначительно по сравнению с общим числом пересечений ребер графа G. Основная идея алгоритма минимизации числа пересечений внутрисхемных ребер заклю- чается в следующем. По исходной схеме строится мультиграф G= (X t/), а затем он располагается на плоскости с выделенным 186
гамильтоновым циклом и по нему записывается видоизмененная матрица смежности Rb По матрице находятся «отклонения» для каждого ребра графа G, а затем строится матрица отклонений ребер Ra . После этого из матрицы RA выбирается ребро, для которого отклонение на данном шаге имеет максимальное поло- жительное значение. Далее это ребро выносится во внешнюю об- ласть цикла. Указанный процесс продолжается аналогично до тех пор, пока все элементы матрицы RA не станут отрицательными или равными нулю. В конце рабо- ты алгоритма производится об- ратный переход от графа <к схеме. Рассмотрим более подробно процесс построения матрицы Кд и этапы алгоритма минимизации общего числа пересечений ребер графа. Под отклонением реб- ра графа G будем понимать разность между числом его пе- ресечений со всеми остальными ребрами графа, когда оно распо- ложено во внутренней области, и числом пересечений этого же реб- ра, проведенного во внешней об- ласти цикла. Рис. 3.53. Граф Gi 'Пусть, например, дан граф изображенный на рис. 3.53. Для ребра ц3)8, мультичисло которого равно двум, найдем значение отклонения А3>8. Построим О __ сначала видоизмененные матрицы смежности Ri и Ri соответственно для внут- О ---------------------------------------------------- ренней и внешней областей графа Gi (в матрицах Ri и Ri крестиками отмече- ны ребра гамильтонова псевдоцикла, а черточками — отсутствие ребер): 1 2 3 4 5 6 7 8 1 2 3 о 4 R1= 5 6 7 8 Ri = Далее по алгоритму, описанному выше, легко определить число пересечений ребра и8, 8, когда оно находится внутри гамильтонова псевдоцикла, подсчитав сумму элементов -в выделенной подмат- о рице пересечений в Ri и умножив ее на мультичисло ребра и8}8. Аналогично число пересечений ребра и8,8 при помещении его во внешнюю область определяется из подматрицы пересечений, вы- 187
деленной в Ri. Итак, запишем число пересечений для ребра и3,8 во внутренней области p3,8 = ^3»8 2 гм=2(1 + 1)=4; (3.66) во внешней области Рз,8=г3,8 rftj=2(l + 2)=6. (3.67) Здесь 2 rk,i — сумма элементов в подматрицах пересечений, выделен- rk,l ных в матрице смежности. Отклонение ребра и3,8 определится теперь как Дз,8=Рз,8—Рз,8=—2. Это означает, что при переносе ребра из,в из внутренней области во внешнюю об- щее число пересечений графа увеличится на 2. Матрица отклонений ребер Ид получается путем замены эле- ментов матрицы смежности R на соответствующие значения откло- нений ребер. Заметим, что на первом шаге выполнения алгорит- ______________________________ о ма все элементы матрицы R; равны нулю, а матрица R2 совпадает с матрицей смежности Ri графа Gif так как все ребра по условию проводятся во внутренней области. Следовательно, на первом шаге Д<, j=pi,j и матрица /?д строится путем замены элементов мат- рицы R на соответствующие им значения пересечений ребер. Рассмотрим на примере минимизацию числа пересечений в графе, изобра- женном на рис. 3.54,а. 1При таком расположении графа число пересечений p(G)=69. Определив для каждого ребра ррафа по матрице смежности Ri зна- чение отклонения, как показано выше, строим матрицу отклонений ребер Рис. 3.54. Пример графа для минимизации числа пересечений (а), окончатель- ное размещение графа (б) 188
1 2 1 О X 2 О 3 *Д = 4 5 6 3 4 5 6 10 24 16 X X 12 16 |~24| О X 10 11 О X 15 О X О По матрице Ид определим элемент с максимальным положительным откло- нением. Если таких элементов несколько, то выбираем любой из них и ребро (несколько ребер) графа G, соответствующее определенному отклонению, вы- несем во внешнюю область гамильтонова цикла. В нашем случае таким ребром является ц2)6. После этого матрицы смежности для внутренней и внешней об- ластей графа примут вид 1 2 3 4 5 6 1 2 3 4 5 6 Ri= 1 2 3 4 5 6 0 X 1 3 2 X 0X42 0 0X1 1 0X3 0 X 0 1 2 3 Ri= 4 5 6 0 X 0 0 0 X 0X004 0X00 0X0 О X о а матрица отклонений ребер после первого шага запишется в виде 1 2 3 4 5 6 1 2 3 *Д=4 О X 2 О О X О X 12 | Тб| - О X 10 11 О X 15 О X О Прочерк в матрице соответствует вынесенному ребру и2,б- Заметим, что в матрице RJA по сравнению с Ид изменились значения тех элементов, со- ответствующие которым ребра пересекаются с ребром м2,в. На втором шаге ана- логичная процедура выполняется для ребра и2,5, имеющего максимальное от- клонение. После этого алгоритм выполняется для ребер и2,4 и и на этом процесс минимизации числа пересечений ребер графа заканчивается. Для окон- чательного варианта расположения графа ребра ui,3, «1,4, 1^,5, м3,5 и и3,б нахо- дятся во внутренней, а ребра м2,4, м2)5, м2,в и щ,б — во внешней областях га- мильтонова цикла. Матрица отклонений примет вид 1 2 3 R\ = 4 5 6 1 2 О X О 3 4 5 6 — 10 — 12 — 12 X X — — 6 — 0 X — 4 — 1 0 X -6 0 X 0 189
Число пересечений ребер графа уменьшилось с 69 до 14. Изображение гра- фа G на плоскости после выполнения алгоритма показано на рис. 3.54,6. Отметим, что при минимизации числа пересечений ребер графа нет необходимости строить на каждом шаге матрицы и и подсчитывать отклонение ребер, как показано выше для нагляд- ности метода. Для этого достаточно использовать только матрицу смежности Ri и матрицу отклонений ребер, полученную на первом шаге алгоритма. Начиная со второго шага, новые значения мат- рицы определяются выражением А р, q=Ap, q 2fр, qfi, j, (3.68) где Ap,q — значение отклонения ребра ир, q графа G на предыду- щем шаге, гр, q — элемент матрицы Ri, соответствующий ребру ир, q\ ri}j — элемент матрицы R^ соответствующий вынесенному ребру Ui, j на данном шаге выполнения алгоритма. Алгоритм имеет временную сложность 0(я3). Заметим, что перед переходом от графа к схеме можно выде- лить ребра, вносящие пересечения, оставшуюся плоскую часть гра- фа расположить с помощью, например, метода стереографической проекции в заданных точках плоскости с последующим внесением выделенных ребер. Рассмотрим минимизацию числа внутрисхемных пересечений методом ветвей и границ. Пусть предварительно по критерию ми- нимальной длины соединений произведено размещение фрагментов цепей схемы на плоскости. Пусть плоскость разбита на горизон- тальные и вертикальные линейки, называемые каналами, в кото- рых размещаются фрагменты цепей. Исходной информацией служит расширенная матрица цепей Т=||^г, jll, где i(=I, /={1, 2, ..., f} — номер элемента; /^<71, <71 = = {1, 2, ..., d} — номер контактов верхней части элемента; /^<72, «72={d + r+l, ..., 2d + r} — номер контактов нижней части элемен- та; г — число магистралей вертикального канала. Под маги- стралью понимается часть канала для размещения фрагментов це- пей схемы. Элемент j для /е<71 или /^<72 является номером цепи, инцидентной /-му контакту f-го элемента схемы. Значение ti,j для /е<73 или /^<74, где <73={d+l, ..., d+r}\ <74={2d + r+l, 2d-\-2r}, означает номер цепи, фрагменты которой, размещенные в горизонтальном канале, примыкающем к f-му элементу, соединены непосредственно друг с другом, причем для одного из фрагментов это соединение является началом или концом распространения. Если /е<73, то рассматривается горизон- тальный канал, расположенный над линейкой, если /е<74, — под линейкой. Границы распространения фрагментов цепей в каналах помечаются индексами. Если в матрице Т рядом с номером цепи стоит индекс а, то цепь, начиная с соответствующего контакта или фрагмента цепи, расположенного в вертикальном канале, распро- страняется в горизонтальном канале вправо, если же стоит индекс Ь, — то влево, если стоит индекс с, то фрагмент цепи распростра- 190
няется с этого места в вертикальном канале вниз, если стоит ин- декс d, — вверх. Полученная матрица содержит все сведения о размещении фрагментов цепей по каналам. Необходимо теперь разместить эти фрагменты по магистралям в пределах .канала с минимизацией числа пересечений между ними. Для работы алгоритма строится вспомогательная матрица пе- ресечений Р=||рт, Л, где рт, п равно числу 1пересечений между фрагментами цепей tm и tn, расположенными в одном канале, при- чем фрагмент цепи tm расположен под фрагментом цепи tn(m, п = = 1,2, ..., у, m + n), где у — число фрагментов в канале. Строка т матрицы Р ставится в соответствие с номером цепи tm, строка п — с номером tn. Если фрагмент цепи tm не может быть расположен ниже tn, то элементу рт,п присваивается значе- ние оо. Значения рт, п определяются по матрице цепей Т. Для решения задачи о размещении фрагментов цепей по маги- стралям в пределах одного канала по критерию минимального числа пересечений воспользуемся методом ветвей и границ. Метод в применении к данной задаче заключается в том, что множество всех допустимых решений, т. е. возможных размещений фрагмен- тов цепей по магистралям, разбивается на подмножества с после- довательно уменьшающимся числом элементов. Этот процесс со- провождается вычислением нижних границ числа пересечений между фрагментами цепей. На некотором этапе получается под- множество, состоящее из одного решения, для которого число пере- сечений не больше, чем для любого иного решения. Обозначим через Q множество всех решений. Множество Q разбивается на подмножества Qlt, t^T1, <где Т1 — множество фраг- ментов цепей, расположенных в Z-м канале. Для всех решений под- множества Q1/ фрагмент цепи t размещен ниже всех остальных фрагментов цепей. Множество Qlt разбиваем на подмножества Q2t. Для всех решений подмножества Q2t фрагмент цепи t2 расположен над фрагментом цепи ti, но ниже всех остальных фрагментов. Про- цесс ветвления сопровождается вычислением нижних границ числа пересечений для каждого подмножества решений. Получение ниж- ней границы подмножества решений основывается на следую- щем утверждении. Относительно любого фрагмента цепи остальные в пределах канала можно расположить так, чтобы он давал с ними наименьшее число пересечений st, т, tm^Tl. Сумма всех чисел st дает нижнюю границу на множестве ре- шений для целевой функции UQ) = l/2Sstm, (3.69) 1т т. е. для любого решения q^Q имеет место соотношение f(q)^ >£(Q). Определим отклонение 6tm от наименьшего числа пересечений Stm для каждого фрагмента цепи, если его поместить ниже осталь- ных фрагментов: 191
(3.70) (3.71) 8fm =^pmn, tm, tn^T1; m (pm,n—Pn,m> еСЛИ pm, n pn.nOO p n — { 10, если Pm, n—Pn,m^0. Положительное значение pm, n—pn,m указывает на то, что цепь tm, помещенная ниже цепи tn, дает увеличение пересечений на значение этой разницы. Отрицательное значение рт, п—рп,т указывает на то, что цепь tm, помещенная ниже цепи tn, дает с ней меньшее число пересечений, и это число вошло в состав ве- личины Stm. Для каждого подмножества решений Q1tm значение нижней границы определяется следующим образом: Ш\т)=Ш)+Ьт. (3.72) Дальнейшему разбиению подвергается то подмножество Q'tm , для которого ) имеет наименьшее значение. Из матрицы вычеркивается т-й столбец и m-я строка, соответствующие цепи tm. Над полученной матрицей Pi производятся аналогичные дей- ствия. Подсчитываются значения б1^ и дальнейшему разбиению подвергается то подмножество Q2tm, для которого ?(Q2iw) = £(Q1^)+64w имеет наименьшее значение. В матрице вновь вы- черкиваются соответствующие строка и столбец и получается матрица Р2. Аналогичные действия производятся до тех пор, пока не будет получено подмножество, состоящее из одного решения. Это реше- ние представляет собой упорядоченное множество номеров фраг- ментов цепей. Фрагменты цепей должны размещаться по маги- стралям в соответствии с этим порядком. На некотором шаге п может оказаться, что для нескольких фрагментов цепей tm^Tj значения dntm = 0. Тогда из матрицы Рп вычеркиваются строки и столбцы, соответствующие указанным цепям. В упорядоченное множество номеров фрагментов цепей, являющееся решением, эти номера можно записать в любом порядке относительно друг дру- га. Вершины Qtmn+i, объединяются в одну вершину QT . n+1, и ветвление продолжается от вершины QT j n+1. Если для нескольких цепей tm^Tj величина б/ т имеет одина- ковое, но отличное от нуля значение, то строится матрица Р1^ со- держащая столбцы и строки, соответствующие цепям множества Tj. По матрице Р1^ подсчитывается значение dtm . Если наимень- шее и отличное от нуля значение dtm имеет несколько цепей, то по матрице Р1™ строится Р2П и т. д. до тех пор, пока не будет най- ден один фрагмент цепи, для которого dtm имеет наименьшее зна- чение, либо группа, для которой 6^ = 0. Ветвление будем продол- жать соответственно либо от вершины Qtmn+1, либо от QT ^n+1. После того как будет достигнута конечная вершина Qytm, необхо- димо отыскать не подвергавшиеся ветвлению вершины, у которых 192
нижняя граница меньше, чем у вершины Qytm, и продолжить их ветвление. Процесс продолжается до тех пор, пока не будет най- дена вершина, для которой число пересечений будет не больше, чем у остальных. На практике алгоритм с целью экономии машин- ного времени можно ограничить одной ветвью. Например, для части схемы, изображенной на рис. 3.55, разместим фрагмен- ты цепей с минимизацией числа пересечений между ними. Матрица цепей Т для данного фрагмента имеет вид 1 2 3 Л. 5 6 7 1 2 3 4 5 Ха 2а За 4а — — 2 ЗЬ 5а — 5Ь 6а 7а 1 1с 1b 4 2 8а 2с 7 8 4Ь 9а 9d 6Ь 8 7 10а — 8Ь 9Ь 7Ь 10& — По матрице Т строим матрицу Р: 123456789 10 1 0 2 2 1 2 1 1 0 0 0 2 3022211100 3 0101000000 4 331.0212200 5 0000000000 6 3202002210 7 3202010421 8 0 1 0 1 0 1 2 0 1 1 9 0000022301 10 0000001110 | 4 |4|0|6|0|6|5|0|3| 0 | 61 $2 63 64 65 6б 67 6g 69 дю Разбиение множества решений Q имеет вид рис. 3.56. По формулам (3.71) подсчитаем значения: pi,2—p2,i=—il; Р12=0; pi,s—рзд=2; р1з=2; р1>4—р4>1=—2; 7—144 193
.Л=0; pi,5—р5,i=2; р15='2; pb6—p6,i = —2; p!6=0; рЬ7—Ртл=— 2, Р!7=0; pi,8— —Pa,i = O; р18=0; pi,9—Рэд = О, р1э=О; рыо—рю, 1 = 0, р1ю=О. Отсюда 61 = р12 + р1з + р14 + р15 + р1б + р17 + р18 + р19 + р1ю = 4. Аналогич- но подсчитаем и другие значения dtm. В результате получим, что 63, 65, ds и дю равны нулю. Объединим вершины Q4, и Q^o в одну Q^b где Т={3, 5, 8, 10} (см. рис. 3.56), и процесс ветвления продолжим от нее. В матрице Р вычеркнем 3, 5, 8, 10-й столбцы и строки. Получим матрицу 1 2 4 6 7 9 Р1 = 1. И 1 0 2 110 0 12 0 2 0 2 1 2 10 2 0 2 2 0 I Q I 1 I 3 | 5 | 3 | 1 | 64 д!4 dJ6 д!7 64 Подсчитаем величины д^^для матрицы Pi. Наименьшее значение имеет 64 = 0. Процесс ветвления продолжим от вершины Q2b IB матрице Pi вычеркнем первые строку и столбец и перейдем к матрице Р2. Для матрицы Р2 наименьшее значение имеет 622=0. Процесс ветвления продолжим от вершины Q32. (В матрице Р2 вычеркнем строку и столбец, соот- ветствующие второй цепи, и перейдем к матрице Р3. Наименьшее значение имеют 634 и 637, равные нулю. Объединим вершины <24з и Q47 в одну Q4t2, где Т2={4,7}. рис. 3.56. Разбиение множества Q Вычеркнем в матрице Рз строку и столбцы, соответствующие цепям 4 и 7. Получаем матрицу 6 9 I о I 1 I б46 б49 Наименьшее значение имеет 64б=0. Вер- шина Q56 будет концевой. Упорядочен- ное множество цепей Т1 запишем сле- дующим образом: 1, 2, Г2, 6, 9}, где Ti={3, 5, 8, 10}; Г21={4, 7}. Размещение фрагментов цепей мно- жества Т1 произведем в соответствии со следующим правилом. Пусть уже запол- нено п магистралей и необходимо раз- местить очередной фрагмент цепи tm упорядоченного множества Т1. Опреде- ляется, пересекается ли фрагмент цепи tm с фрагментами цепей, размещенных в п магистрали. Если нет, то в п—1 и т. д., пока не найдется такая п—k ма- гистраль, в которой расположены фраг- 194
•менты цепей, с которыми пересекается фрагмент цепи tm. Фрагмент цепи tm по- мещается в (п—&+1)-ю магистраль. В соответствии с правилом для примера в первую магистраль будут помещены фрагменты цепей 3, 5, 8, во вторую — 1, 10, в третью — 2, в четвертую — 4, в пятую — 7, в шестую — 6, в седьмую — 9. При случайном размещении фрагментов цепей по магистралям они давали 41 пересечений (см. рис. 3.55), а при размещении в результате работы алгоритма — 26 (рис. 3.57). Рис. 3.57. Размещение фрагментов цепей в результате работы алгоритма Рассмотрим методику решения задачи размещения разногаба- ритных элементов на плоскости с предварительной оценкой необ- ходимой площади. Это могут быть размещение фрагментов топо- логии на кристалле, размещение интегральных микросхем разного размера на печатных платах и т. п. Пусть задано X={Xi}, 2, ..., п — множество типовых элементов схем ЭА. Каждый эле- мент ха еееХ характеризуется шириной 1а , высотой ha. Задача размещения заключается в нахождении такого вариан- та расположения элементов множества X на плоскости, при ко- тором требуемая площадь минимальна. Решение задачи размещения разногабаритных элементов обыч- но проводят в два этапа. На первом этапе используется дискрет- ная графотеоретическая модель схемы с представлением элемен- тов материальными точками. На втором этапе используются гра- фовые модели компонентов, причем задаются размеры элементов ха ^Х. На первом этапе размещения производится предваритель- ное размещение материальных точек, соответствующих вершинам ха ^Х графа схемы. Здесь можно использовать последовательный, итерационный или точные алгоритмы, описанные выше. Затем про- изводится уточнение размещения элементов ха ^Х в линейках плоскости с учетом размеров плоскости и элементов схемы. Перед вторым этапом производятся оценка необходимой пло- щади плоскости (кристалла или платы) и вычисление размеров рабочего поля. На втором этапе обычно выполняют размещение прямоугольников. Для этой цели используются последовательные и итерационные алгоритмы. Последовательные алгоритмы обычно состоят из двух процедур: а) выбора наилучшего (по заданному критерию) элемента для размещения; -б) выбора наилучшей (по заданному критерию) для данного элемента позиции. 7* 195
После выполнения первой процедуры выбирается элемент схе- мы ха, имеющий наиболее неблагоприятные условия для разме- щения (большие габариты, большое число связей, наиболее длин- ные связи и т. д.). Вторая процедура обеспечивает непосредствен- ное размещение разногабаритных элементов. Позиция на плоско- сти и ориентация элемента ха ^Х выбираются по критерию, учи- тывающему суммарную длину соединений и плотность упаковки элементов. Длина соединений оценивается длиной полупериметра зоны реализации цепи. При необходимости указывают области на плоскости, запрещенные для размещения. Итерационные алгоритмы размещения разно- габаритных элементов имеют ряд особенно- стей: размещаемые элементы стандартизованы по высоте и имеют в общем случае различную ширину, что создает ограничения по- движности элементов при перестановках; ориентация и распределение выводов элементов не конкрети- зируются; позиции размещения отдельных элементов не фиксируются. В качестве целевой функции размещения, подлежащей мини- т мизации, выбрана F= 2 |А|, где |Z/| — оценка длины i-й цепи; 1=1 т — число цепей в схеме. Вводятся следующие условия. Пробная перестанов- ка f-ro и /-го элементов между собой на плоскости фиксируется, если AF(f, /)^0, где AF(f, /) — изменение функции при (i, /^-пе- рестановке; F(i, /) — значение F после (i, /)-перестановки. При AF(i, /)=0 и выполнении ограничений (f, j)-перестановка фиксируется, если она уменьшает значение разности ширины не- заполненных частей плоскости размещения элементов xt и х^ т. е. As(i, j) = |Asi(Xi)— Asj(Xj) | — |ASi(xj)— As3(Xi) | >0, где Xs(i, j) — величина изменения разности ширины незаполненной части пло- скости при (i, /)-перестановке элементов хг и х/, Asi(xj) — шири- на незаполненной части плоскости после установки элемента х5- на место Хг. Пусть Е — множество цепей схемы; j — подмножество це- пей, связанных с элементами х^ или xj. Образуем) кортеж элементов начального размещения |3=^хь х2, ...» xq, ..., Xn), где q — номер позиции элемента. Назовем цик- лом q последовательность перестановок элемента xq с остальными элементами, основным — элемент -xq, а дополняющим элементом парной перестановки — произвольный элемент xj. В цикле q в роли дополняющих испытывают элементы Xj, для которых j>q. Для исключения повторяемости перестановок вводится матрица Rn=||ri, j||, элементы п, j и ; которой отмечаются признаком за- прета z при фиксации (i, /)-перестановки. При фиксации переста- новки элементы меняются своими позиционными номерами. Алгоритм размещения элементов итерацион- ным методом: 196
Г. Образование кортежа размещенных элементов р. Вычисле- ние начальных значений \1\\, \lj\f ..., \1т\- 2°. Выбор основного элемента, организация цикла q, i: =f+l, /: = i. 3°. Выбор дополняющего элемента /:=/+!. Если xi)j = Xj)i = = z, переход к 9°. 4°. Пробная (i, /)-перестановка. Вычисление новых значений 111 для цепей из Ei, j. 5°. Вычисление j). Если AF(i, /)<0, переход к 9°. 6°. Если AF(Z, /)>0, переход к 8°. 7°. Вычисление As(f, /). Если As(f, /)^0, переход к 9°. 8°. Фиксация (i, /)-перестановки. Присвоение Xi,j> Xjti = z. За- пись новых значений i|Z| для цепей из Ei,j. 9°. Проверка конца цикла q. Если j<N, возврат к 3°. 10°. Проверка последнего цикла. Если i<N—1, возврат к 2°. 11°. Конец работы алгоритма. Описанный алгоритм имеет временную сложность 0(п2)—0(п4). Из-за ограничения подвижности элементов при перестановках тре- буемый результат не всегда удается получать однократным при- менением алгоритма. В этом случае требуется повторить процесс решения. 3.3. ТРАССИРОВКА СОЕДИНЕНИЙ Основные трудности, возникающие при трассировке соедине- ний, определяются особенностями монтажа (они заключаются в возможности получения проводников весьма сложных конфигура- ций, зависящих от вида ранее проведенных соединений), а также сложностью составления программ алгоритмов трассировки и большими затратами машинного времени. Одновременная оптимизация всех соединений при трассировке за счет полного перебора вариантов в настоящее время невозмож- на. Поэтому разрабатываются в основном локально оптимальные методы трассировки, когда трасса оптимальна лишь на данном шаге при наличии ранее проведенных соединений. Основная задача трассировки формулируется следующим обра- зом: по заданной схеме соединений (или полученной из нее ин- формации в виде размещения) проложить необходимые пути прохождения проводников на плоскости (плате, ТЭЗ, кристалле и т. п.), чтобы реализовать заданные электрические соединения с учетом заранее заданных ограничений. Основными являются ограничения на ширину проводников и минимальные расстояния между ними. Эту задачу можно условно представить в виде четы- рех последовательно выполняемых этапов: 1) определение перечня соединений; 2) размещение по слоям; 3) определение порядка соединений; 4) трассировка проводников. 197
На первом этапе формируется точный список, указывающий, какие соединения (цепи или фрагменты цепей схемы) проведены. На втором этапе предпринимается попытка точно решить, где каждое соединение может располагаться. На третьем этапе определяется порядок соединений для каж- дого слоя, т. е. указывается, когда каждый проводник, помещен- ный в этот слой, будет проведен. На четвертом этапе дается ответ, каким образом должно быть проведено каждое соединение. Рассмотрим указанные этапы более подробно. Исходная ин- формация для первого этапа — это перечень соединений контак- тов каждого элемента с контактами других элементов. Одиночные поконтактные соединения записываются непосредственно в пере- чень соединений (матрицу цепей или список). Трудность при реа- лизации возникает, когда один контакт необходимо соединить с несколькими контактами. Для решения этого вопроса используют алгоритмы построения минимальных связывающих деревьев При- ма или Штейнера. Опишем алгоритм Прима, основанный-на соеди- нении пар точек. Правило 1. Две вершины (два контакта) соединяются кратчай- шим путем, если они ближе всего расположены друг к другу. Правило 2. Вершина присоединяется к ранее связанным вер- шинам кратчайшим путем. Правило 3. Если следующая пара наиболее близко расположен- ных вершин представляет собой два контакта, для которых трас- са соединений уже существует, то эта пара пропускается. На этом этапе ЭВМ не производит соединений, она только решает, какие проводники должны быть растрассированы. Один из возможных подходов к решению задачи соединения множества вершин заклю- чается во введении промежуточных вершин с целью формирования еще более короткого дерева соединений. Данная задача называ- ется задачей Штейнера. В общем случае для /г>4 не известно точного ее решения. При определении перечня соединений необходимо также ре- шать вопросы распределения выводов элементов по контактам электрического соединителя разъема. Наиболее применимым на практике критерием является отсутствие пересечений между эле- ментами и соответствующими контактами электрического соеди- нителя. После определения перечня трассируемых соединений решает- ся задача размещения проводников по слоям. Она сводится к оты- сканию такого расположения проводников в слоях, чтобы в каж- дом из них число взаимных пересечений было минимальным. Окончательный вариант размещения по слоям можно улучшить, если проанализировать каждый проводник. На третьем этапе производится исследование слоев с целью точного определения возможности трассировки в них проводникцв. Для двух проводников существует правило выбора: если контакт В появляется в прямоугольнике А, т. е. в прямоугольнике, имею- 198
щем в противоположных углах контакты проводника А, то провод- ник В надо трассировать первым (рис. 3.58). К сожалению, не всегда это правило применимо. Сформулируем общее эвристиче- ское правило Айкерса о порядке трассировки проводников: про- водники трассируются в порядке приоритетных номеров. Прио- ритетный номер проводника v равен числу контактов в прямо- угольнике. Пусть необходимо определить порядок трассировки проводников vAA, vBb, Vcc, Vdd (рис. 3.59). Согласно правилу Ай- керса определим приоритетные номера NAA=lf Nbb = 3, Ncc = 2, Ndd = 0. Тогда получим следующий порядок трассировки: I —vDd> II — VAA, III — VcCj IV — Vbb» Рис. 3.58. Пример пра- вила выбора для двух проводников Рис. 3.59. Пример для четы- рех проводников На практике обычно короткие горизонтальные и вертикальные отрезки проводников трассируются первыми, далее трассируются окружающие их почти вертикальные и горизонтальные проводни- ки. В заключение трассируются длинные соединения, которые ча- ще располагаются по отношению к другим с внешней стороны. Обычно проблему размещения соединений по слоям рассматри- вают как задачу раскраски специального графа, после чего иссле- дуют каждый слой с целью определения внутри него порядка обработки соединений. После того как все соединения распреде- лены по слоям и определен порядок их обработки, решается за- дача трассировки фрагментов всех, цепей, что и выполняется на четвертом этапе. Четвертый этап трассировки является основным, наиболее тру- доемким, определяющим эффективность и качество задачи трас- сировки в целом. На этом этапе используются четыре фундамен- тальных алгоритма: волновой трассировки, лучевой трассировки,, канальной трассировки, гибкой (топологической) трассировки. Опишем основные принципы волнового алгоритма Ли. 1°. Плоскость трассировки (плата, кристалл) разбивается на прямоугольные площадки — дискреты заданного размера. Размер 199
дискретной площадки определяется допустимыми размерами про- водников и расстояниями между ними. Задача проведения трасс сводится к получению последовательности дискретов, соединяю- щих элементы а, Ь, соответствующие выводам (контактам) эле- ментов схемы. 2°. Вводится весовая функция F = F(fb ..., fr) как критерий качества пути. Здесь fi характеризует путь с конкретной точки зре- ния — длины, числа пересечений, числа переходных отверстий, числа изгибов и т. п. 3°. Начиная с элемента а, дискретам, соседним с ранее про- смотренными, присваивается определенное значение весовой функ- ции F = m(f, /). Этот этап проводится итерационно и продолжается до тех пор, пока элементу b не будет присвоено некоторое значе- ние веса т(1ъ, /ь). 4°. Начиная от элемента Ь, производится перемещение к эле- менту а по пройденным дискретам таким образом, чтобы значение весовой функции дискретов убывало монотонно. В результате по- лучается трасса, соединяющая элементы а и Ь. Рассмотрим подробнее процесс проведения трассы из элемента а в элемент Ь. На плоскости, где необходимо провести трассу, моделируется распространение волны из «источника» а, до тех пор, пока фронт волны не достигнет «приемника» b или пока на шаге k фронт волны не сможет включить ни одного незанятого дискрета. Отметим, что волна распространяется только по свободным ди- скретам. Эта часть алгоритма называется распространением вол- ны. Если после ее окончания достигнут элемент Ь, то выполняется вторая часть алгоритма — проведение трассы. При распростране- нии волны алгоритм последовательно шаг за шагом строит 1-й фронт, 2-й фронт, ..., k-й фронт источника а. Процесс построения нового фронта начинается с присваивания дискретам, соседним с дискретами предыдущего фронта, весов /). Вес m(ik, Д), присвоенный дискретам &-го фронта, являет- ся суммой весов дискретов фронта k—1. Кроме веса Д). каждому дискрету фронта k припи- Рис. 3.60. Пример соединения элементов а и & в волновом ал- горитме сывается путевая координата, оп- ределяющая дискрет, из которого в данный поступила волна. Таким об- разом трассы следуют по путевым координатам, выполняя 4°. На рис. 3.60 показан пример со- единения элементов а и b волно- вым алгоритмом. Здесь заштрихо- ваны запрещенные площадки. За- метим, что существует несколько вариантов проведения пути, из ко- торых конструктор (ЭВ!М) выбира- ет один, наиболее удовлетворяю- щий заданным критериям. Для по- вышения быстродействия волно- 200
вых алгоритмов предлагают: а) одновременное распростране- ние волны от двух соединяемых точек, б) начало трассировки с вершины (контакта), максимально удаленной от центра области трассировки; в) сокращение области трассировки за счет исполь- зования пары соединяемых контактов, охватывающих искусствен- ную границу в виде прямоугольника. Для уменьшения объема требуемой оперативной памяти ЭВМ предлагается соблюдать условие: метки-предшественники должны отличаться от меток-преемников. Это дает возможность использо- вать последовательность (Кодирования 1—1—2—2—1 — 1—2—2—1. Следовательно, для описания состояния любой ячейки достаточно иметь два бита памяти ЭВ1М. Известная модификация волнового алгоритма учитывает сте- пень 'близости к препятствиям. Она использует представление плоскости в виде трехмерной топографической модели. При работе волнового алгоритма используется информация о «высотах», при- своенных ячейкам плоскости, для того чтобы вызвать различную скорость распространения числовой волны на различных участках поля, т. е. вызвать замедление волны на участках, примыкающих к преградам. Алгоритм состоит из трех этапов: распространение вюлны, проведение пути и коррекция топографической модели. Идея всех алгоритмов коррекции по топографической модели кон- фигурации полученной трассы заключается в следующем. Для каждого из отрезков цепи подсчитывается сумма «высот» площа- док, такие же суммы подсчитываются при смещении этих отрез- ков параллельно самим себе в одну или другую сторону. Далее берется разность сумм, и трасса пойдет по тем площадкам, для которых сумма «высот» будет минимальной. В некоторых алгоритмах используются идеи построения макси- мальных потоков на сети для трассировки проводников на слоях печатной платы. При этом множество площадок платы заменяется сетью, т. е. клеткам (площадкам) графа Gr ставятся в соответ- ствие узлы сети, границам площадок ненулевой длины — ребра, соединяющие эти узлы. На предварительном этапе в узлы и ребра сети ставятся определенные признаки запрета и свободы. Введение запретов и задержек прохождения по ребрам сети соответствует введению запретов и ограничений на проведение трасс. Это позво- ляет бороться с возникновением паразитных емкостей проводников в процессе трассировки. Рассмотренные модификации волнового алгоритма обеспечи- вают построение минимальной длины между точками на плоскости, если между ними существуют препятствия для проведения соеди- нений. Следует заметить, что волновой алгоритм связан со значитель- ными временными затратами на решение задач трассировки, при- чем для распространения волны производится около 90% всех вычислений, а для этапа проведения пути — 10%. В связи с тем, что в некоторых практических схемах ЭА 'большинство соединений имеет несложную форму и для проведения пути нет необходимо- 201
ста просматривать все .клетки сетки, в которой располагается схе- ма соединений, целесообразно применять лучевой алгоритм. Ос- новная идея алгоритма заключается в исследовании сетки для определения пути между вершинами а, b по некоторым заранее заданным направлениям, подобным лучам. Перед выполнением алгоритма задается число лучей, распространяемых из площадки а и площадки &, а также порядок присвоения путевых координат. Обычно число лучей для каждой из площадок (источников) при- нимается равным двум. Распространение лучей происходит одно- временно из обоих источников до встречи двух разноименных лу- чей в некоторой площадке с. Рассмотрим пример проложения трассы для соединения пло- щадок а и b с помощью двухлучевого алгоритма (рис. 3.61). Для источников а и b взято по два луча с противоположными направ- лениями: аб) — вниз, вправо; — вверх, влево; а(2) — вправо, вниз; — влево, вверх. Если площадка b будет расположена не слева от а, а справа, то путевые координаты влево и вправо надо поменять местами. После первого шага алгоритма занимаются площадки с 'координатами (Z2; s5), (Zi9> s2i), (Л& $22), (^> s4). Ha пятом шаге луч &(2) заблокирован. На 18-м шаге встретились лучи й<2) и аб). Так как с помощью лучевых алгоритмов не всегда воз- можно получать решения, то его целесообразно применять совме- стно с волновым алгоритмом. Обычно с помощью лучевого алго- ритма удается проведение 60% трасс, остальные трассы проводят- ся с помощью волнового алгоритма или конструктором. Лучевые алгоритмы наиболее целесообразно применять для трассировки плат с небольшой степенью заполнения ячеек. В этом случае он позволит значительно экономить время по сравнению с волновым алгоритмом. 202
В настоящее время распространение получают канальные ал- горитмы трассировки, основанные на проложении трасс по укруп- ненным дискретам рабочего поля, в качестве которого служит система горизонтальных и вертикальных каналов. Ширина каждо- го канала зависит от числа прокладываемых в них соединений. Канал разбивается на линейки, называемые магистралями. Лю- бое соединение при канальной трассировке будет представлять совокупность объединенных в одну цепь участков магистралей. Реализация канального алгоритма предполагает выполнение двух процедур: распределение соединений по каналам с учетом их оп- тимальной загрузки и оптимизация расположения соединений на магистралях каналов. Для’ заданной конструктивно-технологиче- ской 'базы изготовления печатных плат каждому каналу монтаж- ной плоскости можно поставить в соответствие число, называемое пропускной способностью канала и обозначающее максимально допустимое число проводников, проходящее через сечение канала с выполнением технологических ограничений. При этом процедура оптимального распределения соединений по каналам в простом случае сводится к равномерной их загрузке, а в более сложных случаях дополнительно осуществляется учет фактора электромаг- нитной и тепловой совместимости соседних проводников. Целью выполнения второй процедуры — оптимизация расположения со- единений на магистралях каналов — является минимизация числа переходных отверстий с одного слоя монтажной плоскости на другой. Класс канальных алгоритмов трассировки выгодно отличается от волновых повышенным быстродействием, меньшим расходом памяти ЭВМ, однако он менее универсален, что налагает опреде- ленные ограничения на класс конструктивно-технологических ре- шений. В волновые, лучевые и в меньшей мере канальные алгорит- мы заложен последовательный принцип трассировки, что предпо- лагает оптимальное построение каждой отдельной трассы без про- гноза на прокладку последующих соединений на монтажной пло- скости. Недостаток этого принципа наиболее ярко проявляется по мере приближения к концу решения задачи, когда, как правило, становится очевидным тот факт, что отдельные ранее проведенные трассы можно было бы построить неоптимально, но при этом воз- никли бы дополнительные возможности к прокладке ряда после- дующих трасс. Метод гибкой трассировки состоит из двух этапов: а) тополо- гического (макротрассировка); б) геометрического (микротрасси- ровка). На первом этапе строятся модели топологии для трасс цепей, для их плоского вложения в дискретное топологическое рабочее поле. На втором этапе строятся модели геометрии, которые опре- деляют геометрические характеристики трасс цепей. Другими сло- вами, на первом этапе гибкой трассировки трассы назначаются в зоны (области, дискреты), внутри которых их расположение не 203
фиксируется. Трассы как бы «плавают» внутри выбранной зоны. На втором этапе трассы фиксируются жестко. Для описания топологии трасс строится дискретная топологи- ческая модель рабочего поля. Ее можно представить в виде графа Gr= (Xrj Ur), где Хг соответствует контактам элементов, внешним контактам, характерным точкам края платы и запрещенным зо- нам; Ur — линиям, соединяющим элементы х^Хг. Одна из воз- можных моделей дискретного рабочего поля показана на рис. 3.62. Рис. 3.62. Пример соединения контактов а, b на основе метода гибкой трассировки Здесь дискретами являются треугольные грани. Заметим, что ди- скретами могут быть прямоугольные грани и вообще грани лю- бой конфигурации. Ненасыщенные трассами грани могут ежи* маться, а те, через которые проходит большое количество трасс, растягиваются. В алгоритмах гибкой трассировки ранее проложен- ные трассы закрепляются не жестко на монтажной плоскости, а имеют свойство деформироваться при построении последующих трасс. Построение соединений осуществляется путем организации волнового процесса на множестве граней, причем грань считается запрещенной для прохождения волны, если исчерпаны ресурсы пропускных способностей ее ребер. Соседними к некоторому ребру являются те ребра граней, которые достижимы из него без пере- сечений. Прокладка проводников в алгоритмах гибкой трассиров- ки осуществляется последовательно, однако ранее проложенные трассы не закрепляются «жестко», что создает благоприятные условия для прокладки последующих соединений. Кроме того, представление монтажной плоскости в виде системы граней ока- зывается удобным для конструкций, использующих разногабарит- ные элементы. Рассмотрим теперь вопросы, связанные с разбиением графа схемы на плоские суграфы. В гл. 2 было введено понятие числа планарности &(Кп) для полных графов как наименьшего числа ребер, которое необходимо удалить из графа Кп, чтобы он стал планарным. Приведем метод, позволяющий для любого графа най- 204
ти оценку числа планарности и указать, какие ребра следует уда- лить, чтобы граф G стал плоским. Пусть задан произвольный граф G=(X, U), имеющий гамиль- тонов цикл, хотя в дальнейшем полученные результаты распро- страняются и на графы без циклов. Пусть ребра, инцидентные одной вершине, не пересекаются между собой, два любых ребра щ, j и uPf q пересекаются между собой не более чем в одной точке, ребра гамильтонова цикла не образуют пересечений. Каждому ребру графа Ui,j^U поставим в соответствие двоичный символ ai} j, причем а _ f если РебР° лежит во внутренней области; 1,5 1о, если ребро щ, j лежит во внешней области. Будем обозначать инверсию аг, j как di, j. Граф G можно рассматривать как прямую сумму двух непере- секающихся по ребрам суграфов Go (все ребра которого расположе- ны во внутренней области) и Go (ребра находятся во внешней об- ласти), причем ребра гамильтонова цикла не принадлежат ни Go, ни Go, хотя их можно отнести к любому из суграфов. По графу G, как показано выше, можно построить видоизмененную матрицу смежности R, а для суграфов Go и Go — соответственно матрицы Ro и Ro. Общее число пересечений ребер графа G равно P(G)=P(G0) + + P(G0), где P(G0), (P(G0)) —число пересечений ребер в суграфе Go (Go). Используя формулу (3.62), получаем и—2 п /—1 k—1 Р (G) = 2 5 2 5 (^Л, з&т, i + CLk, j&m, г) • (3.73) k=2 j=k+2 i=k+\ m=\ _Граф G будет плоским, если произведено его разбиение на Go и Go, так что Р=Ро + Ро=О, т. е. п—2 п j— 1 k—1 2 5 5 5 (^fe, г + Clk, jClm, г) = 0. (3.74) k=2 j=n-\-2 i=k-\A m=l Таким образом, для определения планарности графа необхо- димо решить уравнение (3.74), т. е. найти значения переменных аь, j и ат,г. Заметим, что левая часть (3.74) состоит из суммы одно- родных по виду элементов аь, jam, i + dk, jdm, i, число которых равно числу пересечений ребер графа G. Так как любой член as, t неот- рицателен (as, t^O), то левая часть (3.74) будет равна нулю в том случае, если будут равны нулю все составляющие ее суммы одно- родных элементов. Поэтому необходимо, чтобы G'k, г jCLm, г — 0. (3.75) Левая часть (3.75) является двоичной логической функцией эквивалентности, которая равна нулю, когда переменные аь, j и ат, г не равны друг другу. Такая запись означает, что ребра Uk,j и ит, i не образуют пересечений, если их провести в разных областях. 205
Решая (3.75), будем получать выражения вида ak, j=am, i, число которых равно числу однородных элементов из (3.74). В резуль- тате получим систему равенств следующего вида: Яр, q — dm, п\ dk, j = dm, i (3.76) da,$ — ds, t- В системе /(3.76) можно выделить некоторое множество подси- стем, каждая из которых содержит равные элементы, причем ин- дексы правой или левой части двух или более равенств могут сов- падать, что дает возможность свести выражение (3.76) к виду dp, q — djit j — ^a,|3 ~ ••• —dm,n — dm,i= • =ds,t- (3.77) Если в (3.77) найдется хотя бы один такой элемент as, t, для ко- торого в этом же выражении существует aSft, то 01.(G)=7^O. Число пар вида aSjt = ds,t является верхней оценкой числа планарности графа. Рассмотрим на примере нахождение оценки числа планарности графа ©(G). Пусть задан граф, показанный на рис. 3.63. По методу, описанному выше, составим уравнения и определим Pq(G) и Po(G): P0(G) = «2,5 («1,3+ «1,4) + а3,6 («1,4 + «1,5 + ^2,б) + «3,5^1,4 + «4,6 («1,5 + а2,5 + «3,б) i Pq(G) = «2,5 («ЬзН-«1,4) И-«3,6 («1,4 Н-«1,5 Н-«2,б) + «3,5«1,4 "Г «4,6 («1,5+ «2,5 + «3,б) • Определим Р как сумму: P = P0(G) +P0(G) = («2,5«1,з + «2,б«1,з) + («2,5«1,4 + + «2,5«1,4) + («3,6«1,4 + «3,6«1,4) + («3,6«1,5 + «3,6«1,б) + («3,6«2,5 + «3,6«2,5) + («3,5«1,4 + + «3,5«1,4) + («4,6«1,5 + «4,6«1,б) + '(«4,6«3,б + «4,6«3,б) + («4,6«2,б +«4,6«2,б) • Приравнивая элементы, заключенные в скобки, получаем систему {«2,5 = = «1,3, «2,5 = «1,4”, «3,6 = «1,4, «3,6 = «1,5, «3,6 = «2,5, «3,5 = «1,4, «4,6 = «1,5, «4,6 = «2,5> «4,6 = «3,5}- Сведем полученную систему к выражению типа ।(3.77): «2,5 = «1,з = «1,4=«з,б = «1,5 = «2,5 = «3,5 = «4,6 = «з,5- (3.78) 206
Так как в полученной подсистеме две пары вида ^i,j = ai,j(a2,5=a2,5, аз,5 = а3,5), то 0'((7)=2. (3.79) Заметим, что в данном случае 0'(С)У=0(С), т. е. 0'(G) не является ми- нимальным числом ребер, удаление которых делает граф планарным. После получения выражения (3.78) любому элементу приписываем значе- ние 0 или 1 и автоматически получаем значения остальных элементов. Так, в (3.78), принимая, что 0з,б = О, получаем 01,5 = 01,4 = 01,3=1, а 03,6=04,6 = 0. Следовательно, чтобы граф G стал плоским, проведем ребра Ui,5, Иц и Ui,3 во внутренней области, ребра из,6 и и4,б во внешней области гамильтонова цикла, а ребра и2,$ и из,5 удалим. Получим граф, показанный на рис. 3.64. Разобьем все множество связных неорграфов A1(G) на три не- пересекающихся подмножества: М2 и 7И3. В подмножество включаются все связные графы, для числа вершин и ребер кото- рых выполняется неравенство т^(/г + 2). (3.80) Подмножество графов Мх объединяет все заведомо планарные гра- фы. Для связных графов, входящих в подмножество M2f число вер- шин и ребер должно быть связано следующим соотношением: т>3(/г—2). (3.81) Все графы, включенные в подмножество М2, заведомо непла- нарны. Это следует из того, что число ребер максимально планар- ного графа равно 3 (п—2). Подмножество Л13 включает те связные графы, у которых чис- ло ребер лежит в пределах (/2 + 2)<m^3(n—2). (3.82) В подмножество М3 входят как планарные, так и непланарные графы. Рассмотрим методику определения планарности графов, входящих в подмножество М3. Сущность алгоритма заключается в следующем. По графу строится гамильтонов цикл и записывает- ся матрица смежности, в результате исследования которой опре- деляются пересечения ребер графа. Затем строится граф пересече- / ний и записывается матрица смежности этого графа. Далее по матрице смежности графа пересечений определяется его двудоль- ность. Пусть, например, дан граф G=(X, (7), имеющий известный гамильтонов цикл. После расположения графа схемы производится перенумерация вершин так, чтобы для смежных вершин Xi и Xj гамильтонова цик- ла выполнялось условие i—/=1. По графу G записывает- ся видоизмененная треугольная матрица смежности R. Согласно методике, описанной выше, можно определить как общее число пересечений ребер графа, так и число пересечений любого ребра. После определения для каждого ребра щ, j ребер, с которыми оно имеет пересечения, строится граф пересечений. Граф G' = (U', V') называется графом пересечений графа G, если множество вершин графа U' определяется как U'czU — подмножество пересекающих- ся ребер графа G, множество ребер j= (щ, щ), если ребро щ пересекается с щ (щ, Для графа G на рис. 3.65,а граф 207
пересечений показан на рис. 3.65,6. Для определения планарности графа G необходимо определить двудольность графа G', откуда следует по теореме Кёнига планарность G. Если граф G' двудоль- ный, то G планарен. Это следует из того, что в двудольном графе можно выделить два подмножества несмежных вершин У' и Y" таких, что У'U У" =£7' и У'ПУ" = 0, а поэтому пересекающиеся Рис. 3.65. Пример графа G(a); граф пересечений G1 (б), плоское изображение графа '(в) ребра графа G, соответствующие вершинам подмножеств У' и У", можно расположить по разные стороны гамильтонова или псевдо- гамильтонова цикла без пересечений. Если граф пересечений G' является деревом, то исходный граф G планарен. Если граф G' не является деревом, то можно определять максимальную двудоль- ную часть. Она определяет разбиение множества вершин G' на два таких максимальных непересекающихся подмножества У' и У", что вершины внутри каждого из них не смежны между собой. В оставшейся части графа снова определяется максимальная часть, и процесс продолжается до тех пор, пока не получим т-планар- ное разбиение графа. Для графа G' (рис. 3.65,5) подмножества У7 и У77 имеют вид: У'={Ц1, ц2, У,,=={Цб, ^7, ^8, w3, Ц9}. Граф, изображенный на рис. 3.65,а, планарен. Плоское его изображение имеется на рис. 3.65,в. В настоящее время находит широкое применение использование поисковых методов для определения планарности. Опишем идею одного из таких алгоритмов. По графу схемы на основе поиска в глубину строится покрывающее дерево и производится упорядо- чение входящих в него ребер. Далее последовательно производит- ся образование циклов путем добавления оставшихся ребер, при- чем, как только добавляемое ребро образует пересечения, произ- водится поиск области, где размещение этого ребра пересечений не образует. Если такой области нет, то граф непланарен. Весь алгоритм состоит из ряда поисков в глубину, поэтому требуется 0(п) операций и объем необходимой памяти также 0(п). Отметим, 208
что алгоритмы такого типа не размещают графа на плоскости, а только исследуют его на планарность. Для размещения планар- ного графа на плоскости требуется 0(п2) операций. После минимизации суммарной длины ребер графа получим определенное размещение графа в сетке. Переразмещение вершин может привести к увеличению суммарной длины, что является не- желательным. Поэтому необходимо решать задачу определения планарности и m-планарного разбиения графа при фиксированном расположении вершин в узлах сетки. Так как граф G=(X, U) яв- ляется плоским, когда P(G) = 2 P(uifj)=0, (3.83) иц^и то число ребер, которые будут удалены из графа при выполнении условия (3.83), является оценкой числа планарности. Идея алгоритма нахождения оценки числа планарности зак- лючается в выделении на каждом шаге ребра с максимальным числом пересечений и удаления его на второй слой. Ребра удаля- ются из первого1 слоя на второй до тех пор, пока не выполняется условие (3.83). Если поставить задачу m-планарного разбиения, то аналогичные операции удаления ребер необходимо провести с ребрами второго и т. д. слоев, пока последний не окажется пла- нарным. В результате работы описанного алгоритма подсчета числа пе- ресечений ребер графа, отображенного в сетку, получим матрицу пересечений ребер Р& = Wpi, j||. Заметим, что при построении мат- рицы Р/г кратность ребер можно не учитывать, так как это не влияет на планарность графа. Для нахождения ребра, которое необходимо удалить на первом шаге работы алгоритма, построим вектор-столбец B = ||&JI, элементами которого являются числа пе- ресечений ребер. Из В выберем max&i. Ребро, соответствующее выбранному элементу, переносится на второй слой. Элементы Ьр, ..., Ьг столбца уменьшим на единицу, если вынесенное ребро пересекалось с ребрами k, р, г. Получим В^П&ЧН. Аналогич- ным образом поступим с В1, В2, ..., Вт до тех пор, пока все эле- менты столбца Ьт не будут равны 0. Таким образом, получим планарный слой. Рассмотрим работу алгоритма на -примере графа схемы, изображенного на рис. 3.66. Список пересечений имеет вид «1,3 («2,4) «1,6 («5,7) «1,10 («5,7, «6,9, «6,13, «9,12) «2,4 ( Щ ,з) ^2,6 («5,7) «3,14 («5,7, «9,12) «3,15 (^5,7, «9,12) Щ,12(«8,11, «8,1б) «5,7 («1 ,10, «2,6, «3,14, «3,15, «1,б) I ^6,9 (^1,ю) «6,1з(«1,10, «9,12) ^7,1б(^8,1Ь «9,12) «8,11(^4,12, «7,16, «9,12) W8,16(W4,12, «9,12) ^9,12(wl,l0, «3,14, «3,15, «8,16, «8,11, ч «7,16, «6,1з) 209
По матрице Р& построим вектор-столбец Вь из него элемент, если их несколько, то берется любой: выберем максимальный «1,6 1 1 0 0 0 0 0 «1,3 1 1 1 1 1 1 и «1,10 4 3 2 2 Го] 0 0 «2,4 1 1 1 1 1 1 0 «2,6 1 1 0 0 0 0 0 «3,14 2 1 0 0 0 0 0 «3,15 2 1 0 0 0 0 0 В1 = «4,12 2 вч= 2 B2J = 2 В’,= пи BS= 0 В5,= 0 В61 = 0 • «5,7 5 5 Ж 0 0 0 0 «6,13 2 1 1 1 0 0 0 «7,16 2 1 1 1 1 Го] 0 «8,11 3 2 2 1 1 0 0 «8,16 2 1 1 0 0 0 0 «9,12 7 ПП 0 0 0 0 0 «6,9 1 1 1 1 0 0 0 Итак, выберем элемент «9,12 и на его место запишем ноль, что соответст- вует переносу ребра w9,i2 на второй слой. По матрице Р* определим ребра, ко- торые пересекались с ребром в столбце Вь Значения элементов, соответствую- щих этим ребрам, уменьшаются на единицу. Получим столбец B!i после пер- вого шага алгоритма. Из столбца B!i выберем элемент и5)7 и процедуру повто- рим пока не получим столбец В64, все элементы которого равны нулю. --------1 слой -----------5 СЛОЙ --------2 слой Рис. 3.67. Граф-схема ал- горитма разбиения гра- фа на плоские суцрафы Рис. 3.66. Пример графа схемы 210
На шестом шаге вынесем ребро tn,3 и получим разбиение ребер графа на два слоя — планарный и слой, который надо проверить на планарность. На второй слой попало шесть ребер, следовательно, число планарности 0(G) =6. Из матрицы Rh вьнберем ребра второго слоя и построим для них матри- цу пересечений и вектор-столбец В2. Перенесем ребро ищо на третий слой и запишем В!2. После выноса ребра w7)i6 второй слой будет планарный. Получим .разбиение графа на, три плоских суграфа, .изображенное на рис. 3.66. Рассмотрим алгоритм разбиения графа на плоские суграфы, основанный на использовании условия Бадера и нахождения се- мейства максимальных внутренне устойчивых подмножеств мно- жества вершин графа пересечений. Известно, что граф G планар- ный, если его граф пересечений G' является дихроматическим (двудольным). Указанный критерий справедлив, когда G имеет гамильтонов цикл. Будем теперь предполагать, что в графе он выделен. Такое предположение приводит к тому, что значительно сокращается процедура разбиения графа на плоские суграфы, од- нако в общем случае получается большее число слоев. По матри- це смежности R графа G можно построить матрицу смежности графа пересечений G'. Заметим, что ребра графа G, которые не имеют пересечений, не учитываются при построении матрицы гра- фа Gz, так как их можно расположить в любом из полученных плоских суграфов. В дальнейшем эти ребра не рассматриваются. Для определения двудольности графа G' используется семей- ство независимых подмножеств Чг={ф?}. Рассмотрим выделение в графе пересечений Gz максимальных двудольных подграфов. Сначала с помощью семейства 4е выделим из графа Gz макси- мальный двудольный подграф Я7.. Если двудольным оказывается только подграф Н' графа Gz, то соответственно плоским является суграф Я графа G. Далее аналогично исследуется оставшаяся часть графа Gz. В результате получаем разложение графа G на плоские суграфы. Для выделения максимального двудольного подграфа Н' гра- фа Gz введем критерий av,6 = 1I + 1I—Т, В со- ответствии с этим критерием граф G плоский, если avs= К vl + 1'Фб1 = I U' L I M’vrN’в I = 0. Естественно, чем ближе av,6 к |t/z|, тем большее число вершин содержит выделяемый двудольный подграф Нг. Чтобы выбрать максимальный подграф, необходимо определить все aa,6 при у, 6^Г={1, 2, ..., s}, s= |ф|. Тогда и соответствующие мак- симальному av,6, определяют максимальный двудольный подграф Я7. Выделение максимального av,6 удобно выполнять по матри- це а= ||аГб ||. Для получения последующих плоских суграфов ис- следуется подграф H=G—Н. По Я можно^ построить граф пересе- чений Я', для FT определить семейство Ч^,, по семейству Ч^, об- разовать матрицу R^7 и выделить из Н' максимальный двудоль- ный подграф. 211
Сформулируем граф-схему алгоритма разбиения графа на плос- кие суграфы (рис. 3.67). Здесь Ло, Аъ— операторы начала и кон- ца алгоритма соответственно; Л — построение графа пересечений G' по графу G; Л2— определение семейства независимых подмно- жеств фс', графа G'; Л3 — построение матрицы а для семейства фа', определение в ней максимального av,6 , образование двудольного подграфа Н'\ Л4 — получение Н', построение Л5 — замена G' на Я'; р\—логическое условие, проверяющее ^/ = 0, если pi = 0, то переход к Л5, если pi = l, то переход к Ak. Пример. Пусть задан граф G, показанный на рис. 3.68,а, граф его пересе- чений показан на рис. 3.68 Д и матрица RG, имеет вид 1 2 3 4 Rg,=5 6 7 8 9 123456789 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 10 0 10 110 0 10 10 0 10 1 0 1 0 0 0 0 1 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 1 0 0 1 0 Рис. 3.68. Пример графа для определения пересечений (а); граф пересечений G1 (б); первый плоский суграф (в); второй плоский суг-раф (г) 212
Определим семейство = {ф1, 'фз, ...» фэ} • Ф1={Ы1, и2, м8}; ф2={^1, щ, Ыб}; фз={Ы1, и5, и6}\ ф4= {и2, и7, м8}; фб= {^2, Uq, и7}; фб={ы3, и5, W6}; ф7={ы3, иъ м8}; ф8={ы3, Ы9, м4, Ы6}; фэ={ы5, Ы8, W1}. По семейству фе/ построим матрицу 12 3 4 'Ф! *Ф2 'Рз 'Ф* а = ф5 'Фе 'Ф? 'Фе *Фэ 5 5 4 3 4 6 3 6 3 5 5 6 6 4 3 6 7 8 9 6 5 7 4 5 6 5 5 4 6 6 4 6 4 7 5 6 5 6 6 3 5 5 5 3 6 5 4 7 3 3 Определяем, что максимальное Выбираем, например, ai,8=7. Ему соответствуют подмножества ф1 и ф8, определяющие первый суграф Н, пока- занный на рис. 3.68,в. Находим семейство ={фь фг}, Ф1={^5}, ф2={ц7}- Матрица а3, име- н н ет вид а/Г 1 2 2 1 Выбираем cti)2=2, соответствующее подмножествам ф1 и ф2, которые определя- ют второй плоский суграф графа G (рис. 3.68,г). В итоге получено разбиение исходного графа на два плоских суграфа. Рассмотрим методы двухслойной трассировки. Появление дос- таточно экономичной технологической базы для производства ин- тегральных микросхем и печатных плат со сверхплотной упаков- кой и их широкое распространение повлекли пересмотр оценок конкретных алгоритмов трассировки. Так, количество непроведен- ных соединений не может служить характеристикой алгоритма без тщательного анализа конкретной конструкции, технологии и тех- нических параметров схемы. Известные в настоящее время алго- ритмы ориентированы на применение ручной дотрассировки непро- веденных соединений. Однако возрастающая плотность монтажа, более эффективное использование ресурсов платы делают ручную дотрассировку трасс весьма трудоемкой. Поэтому задача совер- шенствования алгоритмов трассировки весьма актуальна. Рассмотрим алгоритм, основанный на выборе связанных кон- тактов из условия минимума суммы длин соединений в электри- ческой цепи и построении трасс с помощью модифицированного волнового алгоритма. Интегральная микросхема состоит из сово- купности ячеек. Ячейки располагаются на кристалле в линейках регулярно. К исходным данным также относятся геометрические параметры кристалла микросхемы и список цепей схемы. Соеди- 213
нения проводятся в двух ортогональных направлениях. Про-веде- ние соединений разрешено лишь в межъячеечном пространстве. Контактные переходы располагаются в произвольных местах пло- щади кристалла. Пусть задана система горизонтальных и верти- кальных равноудаленных линий, образующих двумерную евкли- дову решетку. Имеется множество K={ki, k2, ..., kn} контактов цепи s, расположенных в узлах сетки. Если d(ki, kj) —расстояние между элементами ki, kj^K в метрике сетки, то необходимо найти такое соединение элементов множества К, при котором п 2 d(kif kj) =min. i, /=1 Точного решения задачи построения кратчайшего связывающе- го дерева для п>3 нет. Ниже приводится алгоритм, позволяющий получать приближенное решение указанной задачи. Будем назы- вать отрезки (di, di+i) в Gr фрагментами. Путь длины d в сетке есть последовательность фрагментов 771: (di, d2) (d2, d3)...(dz-i, di). Полежим di~&i, di~ki (/=1, ..., n). Следовательно, путь будет объединять два элемента ki, ki^K, расположенных в сетке Gr. В общем случае путь может включать как конечные kL, так и промежуточные контакты kj^K. Методика построения связываю- щего (покрывающего) дерева основана на определении квазимини- мального пути П между элементами k{, ki^K, для которых d(k\, &z)=min, и присоединений к этому пути остальных элемен- тов множества К. Процесс построения представим в виде трех про- цедур. Процедура 1. Помечается начальный элемент k\^K, который выбирается произвольно или задается априорно, и для него опре- деляется элемент k2 такой, чтобы d(k\, fe2)=niin из всех d(k\, fej), /=2, ..., п. На следующем шаге присоединенный элемент k2 будет начальным и он также помечается. Элементы kx и k2 составляют «фронт» ГЦ пути на данном шаге. Далее находится элемент &3 из условия &3(=77, d (&г-, &3) =min. 1=1 ,2 Условия включения элемента k^K в путь П будет иметь вид (Vkj^nj-x)[d(kif &j)=min, к^ГЦ_2]. (3.84) Для избежания возникновения замкнутых циклов кроме (3.84) вводится условие: хотя бы один из контактов присоединяемого от- резка пути имеет отметки начального или конечного. Описанный процесс повторяется до тех пор, пока элемент ki не будет помечен как конечный. Процедура 2. Начиная с элемента ki, по меткам возвращаемся в исходную точку, определив таким образом весь путь. Процедура 3. Элементы, вошедшие в П, образуют подмноже- ство К'(^К. Для элементов подмножества К" = К\ К1 определяется min d(k', 'ki), ki^K". Соответствующий элемент (контакт) присое- диняется к пути. Эта процедура повторяется до получения К" = 0. 214
Пример. Пусть необходимо построить покрывающее дерево для элементов цепи, показанной на рис. 3.69. .На нем изображены все возможные связи и ус- ловные расстояния между контактами. На первом шаге выберем связь k{k2. Контакт пометим как конечный на шаге >1 и как начальный на шаге 2. Значе- ние расстояния между ki и k2 уменьшается на величину ^(^1^2) =2. На шаге 2 имеем три варианта продолжения пути: к контактам k3, и к контакту k4. Эти контакты пометим и перейдем к шагу 3. Далее продолжим построение пу- ти до достижения k7. Затем выполним процедуру 2, с помощью которой легко определить путь 77: (&ь k2, k3, k4). Остальные элементы пути подсоединим по процедуре /3. Окончательный вид связывающего дерева приведен на рис. 3.70. Аналогичным образом строятся связывающие деревья для всех цепей схемы. Основными критериями для трассировки являются максималь- ная разводимость соединений в пределах возможностей алгоритма и соблюдение заданных -ограничений. В рассматриваемом алгорит- ме распространение волны ограничено областью минимального прямоугольника, в которой расположены все контакты данного связывающего дерева. При этом оба слоя моделируются одновре- менно и трасса может переходить из слоя в слой, принимая вид «стежка». Это позволяет в максимальной степени сохранить кон- фигурацию связывающего дерева, построенного на предыдущем этапе конструирования. Каждому элементу сетки Gr по мере его включения во фронт распространяющейся волны присваивается путевая координата. Определим множество 1\., /=1, 2, элементов Xi^Gr, смежных уз- лу сетки Xjf в одном из двух слоев. Через Df,(xj) обозначим мно- жество элементов Xi^Gr, которым присвоены путевые координаты волны, распространяющейся от узла источника. Очевидно, что ес- ли на данном шаге узел Xi^f^Xj), то на следующем шаге про- движения волны он будет принадлежать множеству Введем правила: 1. Если для элемента выполняются условия Xi^D^Xj) и Xi^D2(xj), то для включения Xi в множество D2(xi) необходимо присвоить ему путевую координату m2r = m1r+l, где т\— значе- ние путевой координаты Хг в ДЦх^). 2. Если для элемента Xi выполняются условия Xi^D2(Xj) и Xi^Df (xj), то Xi включается в множество со значением путевой координаты mir=\m2r. 215
Правила дают возможность волнам, распространяющимся в обоих слоях, одновременно достигать цели, что приводит к сокра- щению цикла проведения трассы. После определения пути про- хождения трассы в каждом слое проводится разнесение отрезков трассы по слоям. При выходе из конечной точки определяется на- правление трассы и выбирается тот слой (основной), в котором это направление разрешено. Переход в другой слой производится лишь в случае невозможности дальнейшего построения трассы или при изменении ее направления. В общем случае может быть про- изведено несколько межслойных переходов, прежде чем трасса будет полностью построена. Рассмотрим пример построения трасс цепи, связывающее дере- во которой показано на рис. 3.70. В обоих случаях имеются ранее проведенные соединения. Первыми строятся трассы, выходящие из контакта. Как видно на рис. 3.71, 3.72, трасса &3 распола- гается в слое горизонталей, a k\k2 — в слое вертикалей. Далее Рис. 3.71. Слой вертикалей (а); слой горизонта- лей (б) 7 г 3 ц 5 6 7 в 9 JO 11 12 13 14 1_5_ *24 *ц *з *г{ *5 *$ ЬЛ [25 *3 *7 волна распространяется из 'k2 до контактов k4 и k$. Трасса k2k4 будет состоять из двух отрезков, поскольку при определении по- следовательности элементов, занятых этой трассой, в узле ^2,4 происходит изменение горизонтального направления на вертикаль- ное. Следовательно, k2>4 помечается как переход в другой слой. На рис. 3.71,а, б показаны также распространенные волны из k2 в &5 и вид трассы без коррекции. Рис. 3.72. Фрагмент схемы 216
Рассмотрим описание параллельно-последовательной трасси- ровки двусторонних печатных плат с планарными выводами. Кон- тактные площадки располагаются с четырех сторон платы. В ал- горитмах используются критерии минимальной суммарной длины соединений, максимальной реализуемости и минимального числа пересечений. Поле платы разбивается на вертикальные и горизон- тальные каналы. Пропускная способность каналов определяется числом магистралей, в которых размещаются трассы. Предвари- тельно все цепи независимо друг от друга распределяются по ка- налам в одном слое по критерию минимума суммарной длины и максимальной реализуемости, т. е. по аналогии с «гибкой» трас- сировкой определяется конфигурация цепей без закрепления их в магистралях. Распределение по каналам осуществляется в два этапа. На первом этапе для каждой цепи строится кратчайшее связывающее дерево и определяются пары связных вершин. На втором этапе осуществляется равномерное распределение фраг- ментов цепей по каналам с тем, чтобы свести к минимуму число непроведенных соединений. На следующем этапе с учетом свой- ства инвариантности некоторых групп контактов осуществляется закрепление цепей за контактами микросхем по критерию макси- мально плотной упаковки. Это позволяет уменьшить число пересе- чений между цепями, подходящими к контактам элемента. Затем выполняется минимизация числа внутрисхемных пересечений. Пос- ле этого осуществляются упаковка и размещение фрагментов це- пей по магистралям. Одновременно производятся определение и печать списка непроведенных соединений. На последнем этапе осу- ществляется внесение изменений в трассировку по результатам ручной доработки, а также размещение и минимизация числа пе- реходных отверстий. Исходной информацией являются матрица цепей Т и множе- ство цепей, выводимых на разъемы Шг= ||Шг, j||. Размещение эле- ментов отражено в матрице Т. В библиотеке конструктивных дан- ных хранятся геометрические параметры платы. Сначала по матрице Т осуществляется расчет координат вер- шин, к которым подходит заданная цепь. Далее строятся полный граф расстояний и его матрица, по которой одним из известных методов осуществляется построение кратчайшего связывающего дерева. Следующий этап может выполняться в двух вариантах. В первом строятся кратчайшие связывающие цепи. Во втором производится распределение фрагментов цепей по каналам с ми- нимизацией числа непроведенных соединений. Каждый канал раз- бивается на дискреты. В горизонтальном канале дискретом будет промежуток между двумя соседними контактами, а в вертикаль- ном — промежуток между двумя горизонтальными каналами. Для каждого фрагмента вводится множество позиций, в которые он может назначаться. В зависимости от того, в какую позицию наз- начается фрагмент, определяются дискреты, через которые он про- ходит. Для каждого фрагмента определяется множество вариан- тов размещения, из которых выбирается один с наименьшим чис- 217
лом изгибов. На следующем этапе осуществляется закрепление цепей за конкретными контактами. У каждого элемента есть ин- вариантные контакты. Этим можно воспользоваться для повыше- ния плотности размещения. Далее выполняется минимизация внутрисхемных пересечений. На следующем этапе производятся упаковка и размещение фрагментов цепей внутри каждого канала по магистралям. После упаковки и печати списка непроведенных соединений предусмотрен этап ручной доработки. После доработ- ки все изменения вносятся в модель платы. На следующем этапе производятся разнесение фрагментов цепей по слоям, определение и минимизация переходных отверстий. На последнем этапе произ- водятся расчет координат фрагментов цепей и вывод информации на координатограф или дисплей с дальнейшим автоматизирован- ным получением фотошаблонов. Рассмотрим подробнее метод определения минимально необхо- димого числа каналов для расположения в них горизонтальных участков цепей при заданном размещении. Исходная информация о схеме записывается в виде матрицы цепей Т= ||/i, jllfexn, где ti, j — номер цепи, проходящей через ьй контакт /-го элемента; n=|AJ—число элементов; k — число кон- тактов элементов. После разбиения схемы на I подсхем, каждая из которых представляет некоторое множество ячеек, расположен- ных в одной линейке, по матрице Т получаем 21 матриц цепей Т1/ и Т2/; T^(T2/) составлена по левой (правой) половине матрицы Т для верхней (нижней) половины линейки. По матрице Т построим матрицу цепей Т' = \\1\ где г — число цепей в схеме; ц — чис- ло линеек; 1, если цепь j при i четном инцидентна контактам нижней части линейки, номер которой г/2; при i нечетном — контактам верхней части линей- ки, номер которой (г+1)/2, О в противном случае. Контакты ячеек, расположенные в одной линейке, пометим индек- сами а, если контакт инцидентен цепи, проведенной по горизон- тали, только вправо от него; b — если контакт инцидентен цепи, проведенной только влево. Разметку можно выполнить по матри- це Т/, воспользовавшись вектором-строкой Н = Ц7//Ц, где Ht = 1, если произвольный контакт, инцидентный цепи, помечен индексом; О в противном случае. Индексы контактов занесем в матрицы Т/, проставив их рядом с номерами цепей, инцидентных помеченным контактам. Например, для фрагмента схемы, изображенного на рис. 3.72, матрица 7\ имеет вид 218
1 2 3 1 2 3 4 5 6 7 8 1 9 6 10 1 2 2 1 10 11 3 1 2 9 8 4 3 8 5 4 7 11 5 1 6 7 После индексации матрица 1а 9а 6а 10а 1 2а 2 16 106 116 За 26 96 8а 4а 36 86 5а 46 7а 116 56 1 66 76 Рассмотрим верхнюю часть некоторого элемента с помеченны- ми контактами (рис. 3.73). Заметим, что если контакт, помеченный индексом а, расположен справа от контакта, помеченного индек- сом Ь, то горизонтальные участки этих цепей, будучи расположен- ными в одном канале, не пересекаются. Чем большее число таких пар контактов можно составить, тем меньше потребуется каналов. Кроме того, если образовать пару между контактом ячейки, помеченным индексом Ь, и ближайшим, расположенным справа от него и це вошедшим в состав другой пары контактом, помеченным индексом а, то число пар таких контактов будет максимальным. Запишем алгоритм разбиения множества горизонтальных уча- стков цепей /Z1 на минимальное число подмножеств таких, что и^=^. «И ММ- I Г. Присваиваем индексу i, определяющему номер формируе- мого подмножества, значение, равное единице. 219
2°. Просматриваем слева направо, начиная с первого контакта первой ячейки, контакты верхней части линейки до тех пор, пока не встретится контакт, помеченный индексом а и не вошедший в состав никакой пары. Определяем по индексированной матрице Т1*/ номер цепи, инцидентной этому контакту. Если такого контак- та нет, то переходим к 7°. Переход к 3°. 3°. По матрице Тх*г отыскиваем контакт, ин- цидентный той же цепи, но помеченный идексом Ь. 4°. Включаем участок цепи в состав подмноже- ства flit. 5°. По матрице Т1*! отыскиваем ближайший, расположенный справа от Рис. 3.73. Верхняя часть элемента контакта, найденного в 3°, контакт, помеченный индексом а, опре- деляем номер цепи, инцидентной этому контакту. Если такого кон- такта нет, то переходим к 6°. Иначе переход к 3°. 6°. Увеличиваем порядковый номер множества flii на единицу, т. е. i: = 1 +i. Переход к 2°. 7°. Конец работы алгоритма. Например, с помощью данного алгоритма сформируем подмно- жества горизонтальных участков цепей для фрагмента схемы, приведенного на рис. 3.72. Воспользуемся приведенной выше для этой схемы матрицей Т1*;. В соответствии с алгоритмом образует- ся пять подмножеств: fZii = {l, 11}; fz,2={9, 8, 5}; fZ13={6}; fli4= = {10, 3, 7}; f\= {2, 4}. Следовательно, для размещения горизон- тальных участках цепей потребуется 'пять каналов. На рис. 3.74 представлена схема с минимизированным числом каналов. Здесь flis размещено в первом канале, flii — во втором, — в третьем, fll2 — в четвертом, — в пятом. ции Если цепь t инцидентна контактам верхней и нижней частей линейки, необходимо проведение вертикальной трассы, связываю- щей участки fl*t и flzt, инцидентные контактам верхней и нижней частей линейки. Проведение вертикальных участков производится до размещения по каналам горизонтальных участков. 220
В процессе распределения цепей и их фрагментов по магистра- лям может оказаться, что пропускная способность канала не поз- воляет поместить все фрагменты. Таким образом, появляются це- пи, для которых необходима ручная доработка. Фрагменты цепей, назначенные в канал, можно разбить на два класса: к первому относятся фрагменты цепей, которые можно перенести в соседний канал без изменения «качества» трассы (например, увеличения длины трассы, числа изгибов и т. п.); ко второму — фрагменты цепей, которые в пределах заданных ограничений на конфигура- цию цепи могут быть проведены только в одном канале. Поэтому целесообразно проводить в первую очередь фрагменты, относя- щиеся ко второму классу, а для остальных предусмотреть хране- ние запасных вариантов конфигурации цепи. Пусть задано множество F цепей схемы. Цепь е представляет собой подмножество фрагментов e={fi, f2, ..., fp}. Задача распре- деления фрагментов цепей по каналам сводится к разбиению F на подмножества по критерию минимума числа непроведенных соединений. Разбиение производится на этапе построения крат- чайших связывающих деревьев и представляет собой на каждом шаге приведение фрагмента цепи fi^e в соответствие рассматри- ваемому каналу. Представим е как расплывчатое множество ё= U где / — но- мер варианта конфигурации цепи е\ v — число рассматриваемых вариантов; — расплывчатое подмножество фрагментов /-го ва- рианта: e;={'<jxe(pi), /Л/, ...» <№(Рр), fjP)}. Если при построении дерева выбирается только один вариант с номером q, а остальные отбрасываются, то 1, если j = q', О — в противном случае и ё превращается в обычное конечное множество. Чем больше су- ществует вариантов, тем меньше должна быть степень принадлеж- ности отдельного фрагмента. Для определения степени принадлеж- ности фрагмента цепи используется выражение = \e\/v. Идея алгоритма заключается в параллельном рассмотрении нес- кольких вариантов конфигурации для каждой цепи и установле- нии очередности распределения фрагментов цепей в канале. Для каждого фрагмента цепи определяется р,ерр. В дальнейшем при распределении фрагментов в канале очередность проведения опре- деляется степенью принадлежности. В первую очередь произво- дится реализация фрагментов, общих для всех вариантов цепи. Затем реализуются фрагменты с меньшей степенью принадлеж- ности. В результате для некоторых цепей оказывается возможной одновременная реализация двух или нескольких вариантов кон- фигурации. Трудоемкость алгоритма 0 (| е |2). Рассмотрим трассировку многослойных печат- ных плат (МПП). При этом необходимо сведение к минимуму >221 Не(Рр) — |
длины проводников, идущих параллельно в разных слоях. Нали- чие таких проводников приводит к паразитным наводкам и пре- пятствует повышению быстродействия схемы. Исходными данными на предварительном этапе трассировки являются результаты размещения элементов на плате, список свя- зей схемы, геометрические размеры интегральных микросхем и платы, на которую наложена координатная сетка. На основе экспериментальных данных считается, что целесо- образно начинать проведение трасс с кратчайших соединений, пе- реходя затем к трассировке следующих по длине связей. Это даст повышение плотности монтажа. Поэтому после определения коор- динат соединительных выводов элементов производится упорядо- чение связей по длине. Далее все связи из матрицы цепей или списка связей схемы распределяются в четыре самостоятельных списка. Условно каждое соединение разбивается на две состав- ляющие — ортогональную и диагональную (идущую под углом 45° к первой). Такое разложение связи продиктовано условием проведения соединений в слоях лишь в ортогональных и диаго- нальных направлениях. После упорядочения и разнесения связей по спискам начинает- ся проведение трасс. Трассировка печатных соединений произво- дится методом распространения числовой волны на дискретном поле модели платы. Алгоритм представляет собой систему из вспомогательного алгоритма разнесения и упорядочения связей и алгоритма проведения трасс. Упорядочение связей по длине сво- дится к определению их длин с дальнейшим расположением связей в списках в порядке возрастания величины di,j. Затем произво- дится разнесение связей по слоям. Распределение цепей без пере- сечений с минимизацией числа слоев эквивалентно минимизиро- ванной раскраске графа пересечений схемы G', который строится по цепям схемы, расположенным в одном слое: G'='(U, V), где U — множество вершин графа, соответствующее множеству цепей схемы. Ребро v^V существует и соединяет две вершины щ, u2^U, если соответствующие цепи пересекаются. После раскраски цепи, соответствующие одноцветным вершинам, помещаются в один слой. Алгоритм основан на последовательном сокращении подмно- жества вершин для размещения на данном шаге. Из итогового подмножества выбирается вершина и помещается в один из одно- цветных классов. Затем строится новое подмножество вершин и так далее до размещения всех вершин. Пусть имеется множество В распределенных по одноцветным классам вершин и множество А не распределенных к данному ша- гу вершин, причем AUB=G. Пусть на В задано разбиение В вершин на одноцветные классы. 1°. Строится подмножество Ai, состоящее из тех вершин и^А,~ которые могут быть помещены в наименьшее число одноцветных классов из В. 222
2°. Строится подмножество А2, состоящее из тех вершин и^А, которые максимально связаны с вершинами из А. 3°. Образуется подмножество А3 из тех вершин и^А2, которые минимально связаны с А2. Если вершины Д1 были смежны всем о классам из В, то любая вершина из А3 выбирается как новая ком- о понента в В с очередным цветом и исключается из А. Далее идет переход к формированию В противном случае продолжаются следующие построения. 4°. Определяется разбиение на множестве Вь состоящее из о всех тех компонент разбиения В, которым не 'смежна хотя бы одна вершина из А3. 5°. Определяется разбиение В2, состоящее из тех компонент, число вершин в которых минимально. 6°. Определяется подмножество Д4 таких вершин из А3, кото- рые могут быть помещены в наименьшее ненулевое число классов о из В2. 7°. Определяется подмножество вершин Д5 из А4 с минималь- ной смежностью с вершинами из Д4. Из подмножества Д5 выби- рается произвольная вершина и относится к любому ей не смеж- ному классу из В2. Вершина исключается из А. Далее идет пере- ход к формированию Ai (1°), если А не пусто, иначе конец работы. Реализация этой схемы алгоритма обеспечивает степенную опенку трудоемкости. Для графов с ограниченной средней ло- кальной степенью трудоемкость близка к 0(п). Рис. 3.75. Фрагмент схемы Пример. На роде. 3.75 при- веден фрагмент схемы. На рис. 3.76 показан граф пересе- чений цепей этого фрагмента. Классов В в начале работы ал- горитма нет, поэтому выбираем подмножество вершин с макси- мальной локальной степенью. Согласно 2° это будет А2= ={ui, из, щ}. При выполнении 3° выясняем, что для вершины из число ребер, соединяющих ее с вершинами из подмножества А2, равно 2, а для ui и иэ рав- но 1. Поэтому вершину из вы- 223
черкиваем. Классов, не смежных вершинам из А2, нет, поэтому организуется класс Bi с вершиной Ui, т. е. В4={и4}, B={Bi}. Далее среди вершин А = и\{щ} определяем смежные максимальному чис- лу классов из В, т. е. смежнь/е вершине и\\ А\ = {и2, из, и4, и8, и8}. Среди этих вершин согласно 3° определяем те, которые имеют максимальное число ребер с вершинами из А. Тогда Л2={из} и вершина из образует новый класс: В2= = {u3}; B = {Bi, В2}. Аналогично для вершин А = и\{и^из} получаем Ai = = {u2, щ}; А2={щ} и вершина и4 образует класс В3={щ} B={Bit В2, В3}. Для о вершин А = U\{UiU^U^} имеем Aj = {u2, U5}, затем A2={u5}, после чего В{ = = {Bi}. В итоге имеем В\ = {и\, и5}. Аналогично получаем изменение классов по шагам: В3={щ, и8}', В2={и8, и8}; Bi={ui, и8, и7}; Вз={и2, и4, и8}; В2={и3, и8, uio}- Затем распределяем последнюю вершину и9. Она попадает в класс В3: Bi={ui, U5, Uj}', в2= {и8, Uq, U10}; B3={u2, U4, U8, Ug}. Конечная раскраска имеет вид, изображенный на рис. 3.77 в виде трех- дольного графа. Цепи трех слоев изображены на рис. 3.78. Bz Рис. 3.77. Трехдольная раскраска В результате работы алгоритма получим три таблицы соеди- нений, элементы которых соответствуют связям одного слоя. Да- лее выполняется алгоритм трассировки, который повторяется до тех пор, пока не будут проведены все трассы данного слоя. После этого производится переход к трассировке следующего слоя. Традиционный подход _____7________________________ к трассировке соединений i.—£-------------1 ।--Z1 в минимальном числе сло- ооОо о о о о о А о о о о о А о о ев заключается в последо- 5 вательном заполнении 3 6 к слоев цепями и примене- 0А00000 Aooooo6j 00ААооА нии к каждой цепи алго- ритма построения крат- Z 8 ц 9 чайшего связывающего АоооА о А ? о о А ГооТ А АоооА о дерева. Число слоев опре- 1-----—I——---------------f деляется очередностью Рис. 3.78. Цепи трех слоев размещаемых и трассиру- емых цепей. 224
Рассмотрим канальный алгоритм трассировки МПП. Предварительно все цепи размещаются по каналам в од- ном слое по критерию минимума суммарной длины соединений. Затем фрагменты цепей в пределах канала упорядочиваются отно- сительно друг друга по критерию минимума числа пересечений. Далее производится раскраска вершин графа пересечений в мини- мальное число цветов, причем одним цветом помечаются не свя- занные между собой вершины, что соответствует разнесению цепей схемы в наименьшее число слоев. На следующих этапах произ- водятся упаковка и размещение фрагментов цепей по магистра- лям, расчет координат фрагментов цепей и вывод информации на периферийные устройства. Поле платы разбивается на вертикальные и горизонтальные каналы, в которых размещаются элементы и проводятся трассы. Межслойные переходы осуществляются только по контактам эле- ментов, поэтому каждая цепь полностью трассируется в одном из слоев. На основании электрической схемы составляется следующая исходная информация: матрица T=||^,jll, вектор Ш = ||Шг|| — мно- жество цепей, выводимых на контрольные гнезда. Множество кон- тактов Ci= {С7|/еУ1, У1 = {1, 2, ..., п}, ячейки, расположенной в Рис. 3.79. Структурная схема комплекса алго- ритмов трассировки 8—144 225
горизонтальном канале, образует ряд, ограничивающий горизон- тальный канал снизу, а множество контактов С2= {С;|/еУ2, У$= = {h, h+1, ..., 2h}, — сверху. В матрице Т строки, соответствую- щие номерам ячеек, располагаются в том же порядке, в каком элементы размещены на плате. Для некоторого фрагмента схемы матрица Т имеет вид 1 2 3 4 5 6 5 2 5 1 1 2 2 1 6 5 2 5 2 8 3 9 4 8 5 3 4 9 5 5 3 6 9 6 3 6 7 9 10 9 3 6 7 1 7 9 10 7 1 10 14 И 10 7 14 11 4 3 1 3 13 8 12 11 4 13 14 4 11 4 2 2 14 13 13 12 12 2 13 12 Ячейки Х[—Х4 образуют 1-ю линейку; Х5—х8 — 2-ю и Х9—x!2— 3-ю; ki—k3 —контакты нижнего ряда; &4—k6 — верхнего. Слева от хг—Xj расположен вертикальный канал сц. В библиотеке конструктивных данных (БКД) хранятся геомет- рические параметры платы: размеры; координаты контактных мест, к которым подводятся цепи и по которым осуществляются межслойные переходы; координаты контрольных гнезд; координа- ты гнезд электрического1 соединителя; места размещения элемен- тов; число элементов в линейке; число линеек; число магистралей в каналах и их координаты. Все размеры даются в системе коор- динат платы. На рис. 3.79 приведена структурная схема комплекса алгоритмов трассировки МПП. С помощью алгоритмов блока 1 осуществляется ввод обязательной входной информации — матри- цы Т и векторов Ш. Задача размещения цепей по каналам реша- ется в два этапа. Сначала алгоритмами блока 2 строятся крат- чайшие связывающие деревья (КСД). Построение кратчайших связывающих деревьев и размещение фрагментов цепей по кана- 226
лам производятся на упрощенной модели платы — матрице Mt = = ||m^r||, где т*1,г= 1, если фрагмент цепи t расположен на пересечении вер- тикального канала аг и горизонтального Ьг9 О в противном случае. Горизонтальный участок qh, расположенный в канале bi и пе- ресекающий канал аГ1—аг 2, в матрице моделируется рядом еди- ниц, расположенных на пересечении /-й строки и Г\—г2 столбцов. Если фрагмент цепи t инцидентен ячейке хг, расположенной в ка- нале Ь^ то двум элементам mir и mZ(r+i) присваиваются единичные значения. Матрица Мь построенная для первой цепи по матрице Т, имеет вид Пример для цепи -показан на рис. 3.80. Дерево строится по ал- горитму Прима. Для отыскания кратчайшего расстояния исполь- зуются волновые методы. В качестве шага распространения волны берется расстояние 'между двумя соседними каналами. Для записи информации о кратчайшем связывающем дереве используется мат- рица Df = ||d4 jll, где & — /1’ если Участки и цепи t связаны; l0 в противном случае. Матрица Dj для цепи имеет вид q\ q\ q\ 41! 0 1 0 01 = 2 1 0 1 Л 0 1 0 Размещение фрагментов цепей по каналам производится алго- ритмами блока 3. Участки можно соединять несколькими крат- чайшими трассами. Из этого множества выбираются две, дающие наименьшее число изгибов. Для каждой из этих трасс в -матрице М/ значения элементов т\г, моделирующих трассу, увеличивают- ся на единицу. После проведения всех возможных трасс выбира- ется та, для которой сумма значений элементов моделирую- щих ее в матрице М/, максимальна. Для записи результатов раз- 8* 227
мещения фрагментов цепей -по каналам матрица Т расширяется увеличением числа столбцов. Границы распространения фрагмен- тов цепей в каналах помечаются индексами. Расширенная и про- индексированная матрица Т* является моделью платы и содержит всю информацию о размещении фрагментов цепей по каналам. Индексация матрицы цепей Т* осуществляется алгоритмом бло- а1 С3 az а3 ач а5 ^Го О Э О D О О~^3 О (Г bp Х1 xz хз хч tt Ю О • ООО 000 000 бу бу гО О О 6} С2 сз Cj 6*2 6j ООО 000 000 */> лу б/ t] о о • о • о ооо бу С5 СБ бу с5 с6 4 Сг ю О Х9 ООО хп ООО 000 000 fy ООО X1Z ООО ф ~нонтинть/,ноторые необходимо соединить для получения цепи tfy Рис. 3.80. Пример распределения каналов для по- строения цепи ка 4. Из матрицы Т* выделяется подматрица Т*/, составленная из строк, соответствующих элементам, расположенным в /-й линейке. В подматрице Т*/ последовательно, начиная с первой, просматри- ваются пары элементов, соответствующие парам мест контактов и элементов. На следующем этапе в блоке 5 производится упорядочение фрагментов цепей в пределах одного канала по критерию мини- мизации числа пересечений.'Далее алгоритмом блока 6 произво- дится разнесение цепей по слоям с помощью алгоритма раскраски 228
вершин графа пересечений. После разнесения цепей по слоям в каждом слое алгоритмом блока 7 производятся уплотнение и раз- мещение фрагментов цепей по каналам. На последнем этапе по матрице Т* и по1 векторам Ш производятся 'расчет координат фраг- ментов цепей и вывод (информации на координатограф или другое периферийное устройство. 3.4. КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ 1. Что называется компоновкой схемы ЭА? 2. Сформулируйте постановку задачи компоновки как разбиения графа на части. 3. 'Приведите основные критерии компоновки. 4. Дайте определение упорядоченного и неупорядоченного разбиений. 5. Приведите классификацию алгоритмов разбиения. 6. Опишите алгоритм покрытия схем ЭА. 7. Приведите последовательные алгоритмы разбиения графа схемы на части. 8. Дайте определение минимального и квазиминимального массивов в гра- фе и постройте расплывчатый алгоритм разбиения графа схемы на произволь- ное число частей. 9. Приведите алгоритм определения клик графа и покажите его использова- ние для разбиения графа. '10 . В чем сущность итерационных методов разбиения графа? 41. Приведите формулы для определения перестановочных коэффициентов при разбиении. 12. Опишите дихотомический алгоритм разбиения графа схемы на части. 43. Дайте определение чисел связности. 14. Как используется метод случайных назначений при разбиении графов схем? Г5. Постройте схему метода ветвей и границ для разбиения графа схемы на части. 1'6. Постройте структурные схемы алгоритмов для разбиения графа схемы на части на основе поиска в глубину и ширину. 17. Приведите постановку задачи размещения элементов схем ЭА. 18, Приведите классификацию алгоритмов размещения. >19. Постройте структурную схему алгоритма для определения оценки ми- нимальной суммарной длины ребер графа. 20. Приведите формулы для определения средней длины ребра и координат центра тяжести вершин графа. 2, 1. Опишите последовательно-итерационный алгоритм размещения. Приведи- те пример. 22. Постройте логическую схему алгоритма для факторизации графа по строкам и столбцам. 23. Опишите схему метода ветвей и границ для линейного размещения графа схемы с минимизацией суммарной длины соединений. 24. Приведите алгоритм подсчета числа пересечений по матрице смежно- сти графа. 25. Опишите метод подсчета числа пересечений при размещении вершин графа в узлах прямоугольной сетки. 26. Постройте граф-схему алгоритма для минимизации пересечений ребер графа схемы. 27. Опишите схему метода ветвей и границ для минимизации внутрисхем- ных пересечений. 28. Постройте структурную схему алгоритма минимизации суммарной дли- ны соединений на основе поиска в ширину. 29. Постройте структурную схему алгоритма минимизации внутрисхемных пересечений на основе поиска в глубину. 30. Опишите идею алгоритма для совместной минимизации суммарной дли- ны и пересечений ребер графа. 9°—144 229
31. Постройте алгоритм Ван Хао для размещения элементов схемы на осно- ве алгоритмов разбиения графа схемы на части. 32. Сформулируйте постановку задачи трассировки. 33. Опишите основные этапы трассировки. 34. Приведите алгоритм Прима. Постройте пример. 35. Опишите задачу Штейнера. 36. Каким образом определяется порядок трассировки соединений? 37. Опишите волновые алгоритмы трассировки. 38. Постройте структурную схему алгоритма лучевой трассировки. 39. Постройте логическую схему алгоритма канальной трассировки. 40. Постройте граф-схему алгоритма гибкой трассировки. 41. Опишите алгоритм разбиения графа схемы на плоские суграфы. 42. Дайте определение числа планарности графа схемы. 43. Приведите пример m-планарного разбиения графа схемы. 44. Опишите методы трассировки двухслойных печатных плат. 45. Опишите методы трассировки многослойных печатных плат. 46. Опишите идею построения алгоритмов совместного размещения элемен- тов и трассировки соединений. 4. ПРОЕКТИРОВАНИЕ ТОПОЛОГИИ И ФОТОШАБЛОНОВ ИНТЕГРАЛЬНЫХ МИКРОСХЕМ 4.1. О ПРОЕКТИРОВАНИИ ТОПОЛОГИИ ИНТЕГРАЛЬНЫХ МИКРОСХЕМ В настоящее время при разработке устройств на ИМС исполь- зование ЭВМ становится необходимым. При машинной разработ- ке ИМС, содержащих десятки и сотни тысяч транзисторов на од- ном или нескольких кристаллах, должна быть гарантирована воз- можность вмешательства разработчика для контроля получаемых на различных стадиях решений. Исходными данными для проектирования топологии ИМС яв- ляются: принципиальная схема ИМС; типовой технологический процесс, на базе которого должна быть изготовлена ИМС. Результатом этапа топологического проектирования является информация, управляющая работой тех или иных технологических автоматов вычерчивания фотошаблонов ИМС. Необходимыми условиями при разработке варианта топологи- ческого решения являются: отсутствие ошибок проектирования; получение заданных электрических характеристик; минимизация площади кристалла. На современном этапе проектирование топологии ИМС осуще- ствляется в основном тремя методами: проектированием на при- борном уровне, т. е. из элементарных компонентов; проектирова- нием из типовых элементов; проектированием на основе базового кристалла. При разработке ИМС первым методом на кристалле разме- щают транзисторы, резисторы, конденсаторы, структура которых проектируется отдельно, а затем выполняются соединения элемен- тов. Для МДП ИМС проектирование топологии отдельных эле- ментов и всего кристалла происходит одновременно. Такой под- ход обеспечивает наиболее качественное проектирование тополо- 230
гии как с точки зрения электрических характеристик схемы, так и с точки зрения занимаемой площади кристалла. Метод требует больших временных затрат, процесс проектирования трудно1 фор- мализуем, что затрудняет применение автоматических методов проектирования. Поэтому данная методика применяется при проек- тировании ИМС, выпускаемых большими партиями. Проектирование топологии ИМС из типовых элементов (логи- ческих схем, типовых динамических ячеек и т. д.) чаще всего при- меняется при разработке ИМС, выполняемых по заказам и не- большими партиями: на кристалле размещаются типовые элемен- ты и соединительные проводники. При этом значительно снижа- ются время и стоимость проектирования. Такой процесс проекти- рования может быть формализован и, следовательно, осуществлен с помощью методов машинного) решения задач размещения и трас- сировки. Однако использование данного метода проектирования ведет к увеличению площади кристалла в 1,5—2 раза. Третий метод проектирования топологии также применяется при разработке ИМС, выпускаемых небольшими партиями. Базо- вый кристалл — это полуфабрикат с набором типовых изолиро- ванных элементов, причем слой металлизации отсутствует. В свя- зи с требуемой логикой работы схемы осуществляется проектиро- вание слоя металлизации. Такой способ крайне выгоден с точки зрения временных затрат, однако неэкономичен с точки зрения использования площади кристалла. После разработки топологии выполняются проектирование фо- тошаблонов и их изготовление на микрофотонаборном оборудова- нии, для которого управляющей информацией являются большие числовые массивы координат послойной геометрии кристалла. По- лучить вручную эти числовые массивы уже для ИМСЗ весьма за- труднительно. Поэтому на этапе изготовления фотошаблонов ИМС необходимо применение автоматизированных методов. Опыт разработки и внедрения систем автоматизированного проектирования фотошаблонов (САПФ) печатных плат позволил надеяться на создание аналогичных САПФ ИМС. Несмотря на то, что высокая плотность компонентов на кристалле ИМС внесла серьезные затруднения в процесс автоматизации труда разработ- чика, ЭВМ нашли широкое применение при проектировании их топологии и фотошаблонов, хотя, как правило, ИМС, разработан- ные с помощью САПФ, имеют несколько большую площадь крис- талла. Применение ЭВМ в проектировании и изготовлении ИМС пош- ло по пути создания интерактивных систем, в которых решающая роль отводится конструктору-специалисту. Создание таких систем при изготовлении и разработке фотошаблонов ИМС позволило: сократить сроки проектирования; снизить стоимость проекта; по- высить качество проектирования. В настоящее время САПФ ИМС решают следующие задачи (рис. 4.1): 9°* 231
описание топологического чертежа на языке разработчика; выявление и исправление ошибок, допущенных в описании то- пологического чертежа; трансляция, т. е. перевод описания топологического чертежа на язык конкретной технологической установки, изготовляющей фо- тошаблоны; полный контроль топологического чертежа; связь конструктора с ЭВМ на протяжении всего процесса про- ектирования фотошаблонов. Рис. 4.1. Система автоматизированного проекти- рования фотошаблонов ИМС 4.2. ЭТАПЫ ПОЛУЧЕНИЯ ФОТОШАБЛОНОВ ИНТЕГРАЛЬНЫХ МИКРОСХЕМ При изготовлении фотошаблонов ИМС используются коорди- натографы или микрофотонаборные установки, управляющая ин- формация для которых содержит около 10*+1 чисел, где i — сте- пень интеграции ИМС. Поэтому подготовка этой информации про- 232
исходит с 'помощью ЭВМ. Исходными данными для ЭВМ служит подробное описание топологии ИМС, которое может осуществлять- ся двумя способами: на основе задания координат всех угловых точек областей топологии и с помощью специально разрабаты- ваемых языков. Описание топологии ИМС координатами всех угловых точек обладает избыточностью, обусловленной следующими причинами: топология ИМС состоит из наложенных друг на друга много- угольников, все стороны которых параллельны осям координат, в этом случае любые две соседние угловые точки имеют одинако- вые координаты; топология ИМС имеет определенную периодичность, т. е. неко- торые ее структуры являются отражением или повторением ана- логичных элементов; для различных ИМС используются одни и те же ранее разра- ботанные компоненты, которые могут быть закодированы опреде- ленными символами 1 раз. Исключая перечисленные избыточные данные, можно, не ука- зывая координат всех угловых точек, однозначно определить то- пологию ИМС. С уменьшением количества цифровой информации снижаются трудоемкость кодирования и вероятность появления ошибок. В настоящее время разработаны языки для описания тополо- гии ИМС по имеющемуся чертежу. Разработанный вручную сов- мещенный чертеж топологии ИМС описывается на специальном языке и с помощью перфокарт (перфолент) вводится в ЭВМ. Здесь информация о топологии схемы проходит синтаксический контроль, и при отсутствии ошибок вырабатывается информация, необходимая для вычерчивания фотошаблона. Кроме фотошабло- на вычерчиваются послойная геометрия схемы и необходимая до- кументация. Рассмотрим структуру языков для описания топологии ИМС на примере языка CADEP, разработанного группой английских фирм. При разработке CADEP, с одной стороны, обращалось вни- мание на то, чтобы язык легко усваивался, а с другой — на то, что язык должен содержать возможности гибкого и краткого опи- сания всех образцов топологии сложных масок ИМС. Поэтому CADEP был разработан как добавление к алгоритмическому язы- ку ФОРТРАН (что позволило включить в него все возможности ФОРТРАНА) и ориентирован на ЭВМ, имеющие устройства вво- да-вывода графической информации. В состав языка включена библиотека образцов фотошаблонов, которая может расширяться. Имеется возможность формировать новые фотошаблоны из биб- лиотечных. Язык CADEP содержит три группы переменных: стандартные переменные ФОРТРАНа (логические, целые, дей- ствительные, комплексные); геометрические переменные; графические переменные. 233
Все геометрические переменные, определенные в программе, должны быть описаны оператором — GEOMETRIC А, В, ..., пред- ставляющим собой геометрический объект, лежащий в одной плос- кости. Геометрические операторы, используемые в CADEP, пока- Та блица Функция Гчометри чески й образ Примечание LNCfZ/, Y1,XZ,YZ,W) (XI.Yl) ^^F(XZ,Y2) LNP/X7, YI, RHO, THETA. W) (XI, Yl}^—^ Конечные точки дуги располагают- ся против часо- вой стрелки по окружности, к которой принад- лежит дуга ARC (X1,YI,X2,Y2,R,W) (X1, У’> (XZ.YZr* CRCL (XI, YI, R) Я \^y(XI, yi) SECT (XI, YI, R, ALFA 1, ALFA2) (XI, YI) RECT (XI, Y1,X2,Y2) , Л (у? Y7) lAljYl)* RECS , , <57 , * *" (SI и SZ) "IM (XI, YI) R 0 V( (XI, Yl.XZ, Y2,...tXN, YN) (XN, YN) (XI, (X2.Y2) Вертины должны быть переписаны против часовой стрелки, начинар от произвольной Вертины FPLANE Вся геометрическая плоскость MPLANEfXA YA,A(FA) Yi ^\^XA,rA) EMPTY Дополнительный FPLANE 234
заны в табл. 4.1. Над геометрическими переменными можно вы- полнять следующие операции: пересечение (символ /), объедине- ние (символ +), разность (символ —). Последовательность вы- полнения этих операций такая же, как и в ФОРТРАНе, и ее мож- но менять с помощью скобок. Для геометрических переменных 'существует оператор присвое- ния. Он дает возможность представить сложный образ топологии с помощью геометрических переменных. Например, образец Р (рис. 4.2) может быть описан следующими присвоениями: 1. GEOMETRIC А, В, С, D, Е, Р 2. A = RECS (1, 1, 1, 1) 3. B = LNP (1.7, 1.7, 1.85, 52, 04) 4. C=RECT (2.5, 3, 3.5, 4)/iMPLANE (3, 3, 218) 5. B = LNC (3.5, 3.85, 4.2, 3.85, 0.3) + ARC (4.65, 3.4, 4.2, 3.85, 0, 45, 03) +LNP(4.65, 3.4, 1.25, 270, 0.3). 6. E = RECS (4.3, 2.15, 0.7, —0.4) 7. P=A + B + C + D + E Оператор 1 декларативный. Оператор 2 присваивает имя гео- метрическому образцу, определенному функцией RECS с аргумен- тами 1,1,1,1 (см. табл. 4.1). Геометрическая переменная В, опре- деленная оператором присвоения 3, представляет собой прямо- угольник длиной 1,85, шириной 0,4, наклонный к оси X под углом 52°, одна из вершин которого имеет координаты (1,7; 1,7). Обра- зец С — это пересечение прямоугольника, определенного функцией RECT, с полуплоскостью, определен- ной ориентированной прямой, проходя- щей через точку (3,3) и образующей с осью X угол, равный 218° (полуплос- кость выбирают так, чтобы она была справа от ориентированной линии). Оператор 5 присваивает имя D образ- цу, получившемуся в результате объ- единения двух прямоугольников, один из которых дан в декартовых коорди- натах (функция LNC), другой — в по- лярных координатах (LNP) и дугой, радиус кривизны которой 0,45 и шири- Рис 42 образец Р на которой 0,3 — такая же, как у прямоугольников. Оператор 6 подобен оператору 2. Оператор 7 определяет образец Р как объединение геометрических образцов А, В, С, В, Е. Для увеличения гибкости CADEP при описании изображения вводятся следующие функции: COPY(G, S), TRANS (G, XI, Yl, 3), ROT(G, XI, Yl, ALFA, 3), где G—это геометрическая перемен- ная; 3 — масштабный коэффициент, при котором операция, опре- деленная функцией, должна быть произведена. 235
Функция COPY дублирует структуру данных, представляющую переменную или выражение G; функция TRANS кроме операций, производимых COPY, переносит новые геометрические объекты, образованные из G, с помощью приращения их координат на и У1 в горизонтальном и вертикальном направлениях соответствен- но и изменяет масштаб объектов; функция ROT кроме операций, выполняемых COPY, поворачивает геометрический объект, образо- ванный из G, на угол ALFA относительно точки (Хь У1), которая может быть как внутри, так и вне G. Положительные углы соот- ветствуют повороту против часовой стрелки. Кроме геометрических CADEP содержит графические перемен- ные. Они бывают двух видов: одноуровневые, представляющие со- бой физические двуразмерные объекты, расположенные на опре- деленной графической плоскости, и многоуровневые переменные, состоящие из нескольких одноуровневых, лежащих в разных плос- костях и принадлежащих одному и тому же физическому объекту. Графические плоскости ограничены краями прямоугольника, про- тивоположные вершины которого (0,0) И (ХШах и Утах), ГДе Хтах и Утах должны быть присвоены пользователем. Графические переменные должны появляться в соответствую- щем декларативном операторе. Вид этого оператора для одноуров- невых графических переменных LEVEL(i)A, В, С, ..., где i=l, 2, ... — идентификатор графической плоскости, на которой опреде- лены одноуровневые переменные. Многоуровневые переменные описываются оператором GRAPHIC В, F, G, ..., где Е, F, G — мно- гоуровневые переменные. Одноуровневые переменные могут быть объединены в виде од- ноуровневого выражения с помощью оператора объединения ( + ). Одноуровневая переменная определяется оператором присваива- ния, левая часть которого — одноуровневые или многоуровневые переменные, а правая часть определяется геометрическим или од- ноуровневым выражением, причем в последнем случае уровень пе- ременной в правой части оператора присваивания может отли- чаться от уровня в левой части. Этим пользуются при изменении уровня графического объекта. Многоуровневые переменные можно определить посредством многоуровневого присваивания. Это выполняется оператором, у которого левая часть есть имя определяемой многоуровневой пе- ременной, а правая — выражение, содержащее только одноуров- невые переменные разных уровней. Например, LEVEL (2) А LEVEL (3) В LEVEL (5) С GRAPHIC М М=А*В*С> 236
где * — операция умножения на ФОРТРАНе. Как над многоуров- невыми, так и над одноуровневыми переменными могут выполнять- ся функции COPY, TRANS и ROT. Язык CADEP ’обладает некоторыми подпрограммами или мак- рокомандами для определения существования определенных усло- вий среди графических переменных. Общий вид этих макрокоманд следующий: SYM (аргумент/оператор), где SYM — это базовый символ CADEP; аргумент — это перемен- ные CADEP, а оператор — любой исполняемый оператор CADEP'. Список макрокоманд этого класса приведен в табл. 4.2. Таблица 4.2 SYM Аргументы Значение BLG (XI, XI, 4) Принадлежит ли точка (X/, Y1) одноуровнево- му 'образцу А INT (A/В, C/(D+E) ,...) Будут ли пересечения между образцами А и В, или С и (В+В), или ... непустыми А и В (могут быть одноуровневыми выражениями, имеющими один и тот же уровень, или многоуровневыми вы- ражениями) INC (A/В, С/ (£>+£),...) Включен ли образец А в В или С в (В+£) или ... ? (А и В — одноуровневые выражения, имеющие разные уровни, А включен в В, если его проекция на плоскости В находится внутри В) DIS (A/В, DIST) Будет ли минимальное расстояние между А и В меньше или равно DIST (А и В — одноуров- невые выражения, имеющие одинаковый уровень, расстояния измеряются по направлениям двух ко- ординат) В качестве примера использования графических переменных рассмотрим задачу определения трехуровневого объекта L/, состав- ленного из образца, идентичного Р (ем. рис. 4.2) на плоскости первого уровня; образца, подобного А (см. рис. 4.2), имеющего центр (1.5, 1.5) и уменьшенного коэффициентом 0.7; компоненты на плоскости третьего уровня. Если Р уже был описан как гео- метрическая переменная, мы можем записать LEVEL (1) РР LEVEL (2) ААР LEVEL (3) СР GRAPHIC U 237
рр=р AAP=TRANS (А, 1.5, 1.5, 0.7) CP = FPLANE—Р INC (AAR/PP) GO TO 50 STOP [7= PP* AAR* CP. В CADEP введены некоторые командные операторы, которые приведены в табл. 4.3. Таблица 4.3 Команда Значение DRAW List Строит завершенный образ графических пере- менных, определенных в списке a) STORE name, List b) STORE name, (k) c) STORE name Хранит в массиве «имя» вспомогательного за- поминающего устройства образ: а) одноуровневых и многоуровневых перемен- ных, определенных в описке Ь) все графические переменные £-го уровня или с) все графические переменные a) SHOW List b) SHOW (k) c) SHOW Извлекает массив дисплея из образов: а) графических переменных в списке, Ь) всех графических переменных &-го уровня или с) всех одноуровневых графических перемен- ных и показывает соответствующее изобра- жение на экране дисплея RECALL name Переносит массив «имя» в главное запоминаю- щее устройство ERASE List Стирает все данные геометрических или графи- ческих переменных, определенных в списке DELETE List Стирает последние данные геометрических или графических переменных, 'определенных в списке Основными достоинствами языка являются следующие: связь CADEP с ФОРТРАНОМ, что позволяет использовать его возможности; он обладает всеми возможностями для гибкого и краткого описания сложных конфигураций, встречающихся в топологии ИМС; введение многоуровневых переменных позволяет пользователю связывать элементы, лежащие в разных плоскостях, но представ- ляющие один и тот же объект. 238
К недостаткам языка можно отнести необходимость иметь вы- полненный вручную совмещенный чертеж топологии, что является сложной, требующей больших временных затрат, работой. Описание топологии ИМС вводится в ЭВМ, где получается ин- формация для микрофотонаборного оборудования, вычерчивающе- го фотошаблоны ИМС. При описании чертежа топологии на спе- циализированном языке необходимо создание сложных программ- трансляторов с этих языков во входные языки микрофотонаборных автоматов, различных устройств, вычерчивающих графическую ин- формацию (типа координатографов). Следует отметить, что, несмотря на необходимость разработки программ контроля и программ-трансляторов, ввод информации о топологии ИМС на специализированном языке представляется удобным, так как позволяет уменьшить объем вводимой информа- ции, облегчает создание программ полного контроля топологии. 4.3. КОНТРОЛЬ ТОПОЛОГИИ При автоматизированном проектировании фотошаблонов ИМС важным вопросом, определяющим работоспособность схемы, яв- ляются контроль входной информации и оперативное внесение из- менений. Ошибки, наиболее часто встречающиеся при описании топологии, можно разбить на ряд групп: графические, приводящие к искажению чертежа топологии; ошибки, нарушающие конструкторско-технологические ограни- чения на топологию, такие, как невыполнение допустимого разме- ра контуров в слое, нарушение допустимых расстояний между кон- турами в слое, нарушение допустимых расстояний между контура- ми в двух слоях, нарушение допустимых размеров на контактные окна; ошибки, возникающие из-за неправильного восстановления принципиальной схемы по полученной топологии. Для выявления графических ошибок наиболее перспективен оперативный контроль с помощью графического дисплея. При опе- ративном контроле локализуются ошибки, которые обнаружива- ются при анализе отдельных контуров и линий. Указывать выяв- ленные ошибки наиболее целесообразно путем печати в тексте описания топологии номеров ошибочных операторов и типов оши- бок. Контроль топологии на соответствие конструкторско-технологи- ческим ограничениям сводится к проверке геометрических раз- меров. Использование переборных методов для решения указанных вопросов практически невозможно из-за необходимости анализа огромных массивов информации, большого времени работы ЭВМ. Поэтому алгоритмы для решения такого рода задач строят на ос- нове операций «упорядочения», «сортировки» и «факторизации», поиска в глубину и других, которые носят последовательный ха- рактер и заключаются в последовательной проверке заданных кри- 239
териев с отбрасыванием рассматриваемых участков и дальнейшей работой с уменьшающимися по размерам элементами топологичес- кого чертежа. Для контроля топологии в интерактивном режиме используют- ся графические дисплеи. Первое время применение дисплеев для синтеза топологии сдерживали малые размеры экранов. В настоя- щее время наметились тенденции применения мощного процессора для управления несколькими графическими дисплеями в режиме разделения времени и создания системы для одного конструктора на базе мини-ЭВМ. В первом случае мощный процессор используется для реализа- ции сложных программ, а графический дисплей применяется для вывода и коррекции результатов. Во втором случае минисистемы совместно с графическими дисплеями применяются для оператив- ного контроля и внесения изменений в топологию. Оперативное внесение изменений позволяет сократить в 2—3 раза цикл разра- ботки топологии. Основные недостатки — высокая стоимость ми- ни-системы и необходимость трудоемкой отладки и стыковки ком- плекса программного обеспечения этой системы. Контроль разработанного варианта топологии включается прак- тически во все известные системы проектирования ИМС. Полный контроль топологии ИМС включает: контроль технологических ограничений; проверку разработанного варианта топологии на соответствие принципиальной схеме; анализ электрических характеристик ИМС по разработанной топологии. Рассмотрим контроль выполнения технологических ограниче- ний. При этом необходимо выполнять проверки на минимальную ширину элементов ИМС, на правильность установки в исходное -по- ложение, на правильность вложения одной фигуры в другую и другие геометрические соотношения. Существующие программы контролируют минимальную шири- ну элементов топологии, рассчитывают расстояние ют каждой вер- шины фигуры до всех ее сторон и сравнивают подсчитанное рас- стояние с заданным минимумом, обнаруживают все ситуации недо- пустимой ширины, если стороны фигуры представляют собой пря- мые линии, выполняют ряд различных проверок с двумя фигурами одновременно. Сюда относятся следующие тесты: проверка установки фигур топологии ИМС в исходное положе- ние. Программы считают расстояние от каждой вершины одной фигуры до всех сторон другой и затем изменяют взаимное распо- ложение фигур; проверка расстояний между двумя соседними фигурами и срав- нение их с некоторым предписанным расстоянием; проверка того, что каждая фигура на данном уровне содержит или должна содержать некоторую фигуру из другого уровня; проверка нарушений установки фигуры в исходное положение. 240
Для сообщения конструктору об обнаруженных ошибках про- граммы имеют две формы выходных документов. Первая форма представляет собой файд, состоящий из сведений обо всех фигу- рах, включаемых в нарушение правил проектирования. В этом же файле выдаются проверочный чертеж этих фигур и координаты места, где ’произошло нарушение. Вторая форма выходной 'инфор- мации — это распечатка на ЭВМ. Она включает: перечень всех вопросов пользователя и ответы на них; содержимое входного файла; тип нарушения, координаты места, в котором произошло нару- шение; некоторые статистические данные, которые позволяют ускорить процесс работы над схемой топологии ИМС. Следующим этапом контроля топологии ИМС является уста- новление соответствия топологии принципиальной электрической схеме. Обычно при проектировании топологии ИМС стремятся со- хранить информацию о нумерации элементов, что упрощает про- цесс контроля. Сохранение нумерации элементов на всех этапах оказывается затруднительным при взаимодействии конструктора и ЭВМ через дисплей и для проектирования топологии ИМС по час- тям. Сравнение принципиальной и топологической схем без учета нумерации элементов выполняется с помощью алгоритма отыска- ния подстановки изоморфизма графов (исходной принципиальной электрической схемы и ее топологического чертежа. Пусть заданы два неориентированных графа схем: G= (X, U), G'=(X', U'), |Х|=|Х'|, |L7| = |С7'|. Необходимо определить подстановку t, для которой справедли- во t(X) = Х', t(U) = U', тогда графы G, G' будут изоморфными. Рассматриваемый алгоритм основан на последовательном раз- биении вершин на П-изоморфные (предполагаемо изоморфные) группы. Разбиение прекращается при получении повершинного со- ответствия, которое проверяется в качестве подстановки изомор- физма. Алгоритм организован следующим образом. Из X и X' выби- раются два П-изоморфных подмножества: W и W'. Для каждой вершины х^Х и х'^Х' определяется число связей с W и W'. Две вершины П-изоморфных подмножеств могут быть изоморфными, когда они имеют одинаковое число связей с W и W'. В каждом подмножестве вершины группируются по числу связей с W и W'. Следовательно, получаются подразбиения подмножеств; П-изо- морфными будут те подмножества подразбиений, вершины которых имеют равное число связей с W и W' и принадлежат П-изоморф- ным подразбиениям. Мощности П-изоморфных подмножеств долж- ны быть равны. Если это не выполняется, то графы неизоморфны. Операция получения подразбиений и установления П-изоморфиз- ма между подмножествами называется разложением. Обычно разложение приводит к подразбиениям некоторых подмножеств. Однако это выполняется не всегда. Для изоморфных графов алго- ритм приводит к разбиениям X, X', в которых каждое подмноже- 241
ство содержит то одной вершине, а разложение неприменимо. Тог- да П-изоморфизм между разбиениями определяет подстановку изо- морфизма графов. Для учета рассмотрения разбиений вводятся метки запрета. Для разложения используются подмножества без меток. Для ускорения алгоритма при разложении рассматривают подмножества минимальной мощности и в отмеченном подразбие- нии метка переносится на подмножество максимальной мощности. Приведем логическую схему алгоритма определения подста- новки изоморфизма графов схем: 1 5 3234 215 14 л0|Л1р1|Л2р2| Мз|рз f A4P4^°f МбрбТМь; Ао, Ah — операторы начала и конца алгоритма соответственно; At — разбиение на подмножества вершин X, X' графов G, G', оп- ределяющие 77-изоморфизм подмножеств; А2 — выбор из X под- множества W без метки и выбор из X' подмножества 77-изо- морфного W; Аз —отметка W, выполнение разложения X, X' по W, W', перенос метки на подмножества максимальной мощности; А4 — среди подмножеств из X определяются подмножество W с минимальной мощностью и 77-изоморфные ему W'. Выбираются x<=W, x'(=W'. Далее W: = W\x, W': = W'\ х\ Вершина х отмечается »и выполняется разложение X, X' по х, х'; А5 — выбор новых x<=W, x'(=W', W: = W\x, W'=W'\x'. Перебор внутри подмножеств, содержащих больше одного элемента; со, рь р2, рз, р4, р5 — логические условия; pi проверяет равенство мощно- стей 77-изоморфных подмножеств и смежности элементов внутри них; р2 — проверка, отмечены ли все подмножества из X или нет; рз — проверка, имеет ли хоть одно подмножество из X больше чем одну вершину. Если да, то выполняется оператор А4, если нет, то графы изоморфны и переход к Afe; р4 — проверка возникновения подразбиений; р5 — проверка, разное ли количество связей имеют W, W' с х, х', при р5= 1 графы неизоморфны и переход к Aft, при р5 = 0 переход к Аг, со —условие, тождественно равное нулю, т. е. после А4 невозможно перейти к А5, при р4= 1 после А4 выполняет- ся Ai, при р4=0 после А4 выполняется Ai, при р4=0 после А4 вы- полняется А3. Оценка сложности алгоритма лежит в пределах 0(и2)—0(и!). Работу алгоритма рассмотрим на двух примерах. Пусть заданы два графа G, G' (рис. 4j3): X={xi, х2, х3, х4, xs, х6, х7}, X'={x'i, х'2, х'3, х'4, х'5, х'б, х'7). Предположим, что вершины xi и x'i П-изоморфны и выполним операцию разложения (xi)*(x2, х3, х4, xs, хб, x7)i (0), (x'i) (х'2, х'3, х'4, х'б, х'6, х'7)г(0)о. Множества вершин X и X' распались на три подмножества: Х\ = {xj; Х2= = {х2, ..., х7}; Х3=0; X'i = {x'i}; Х'2={х'2, ..., х'7}; Х'3=0. Подмножества Х2, Х'2 включают вершины, связанные с Xi, x'i одной связью, а подмножества Х3, Х'3 содержат вершины, не связанные с xi, x'i. Далее согласно алгоритму для П-изоморфизма выбираются вершины из Х2 и Х'2. Пусть это будут вершины х2 и х'2. Выполняя операцию разложения, получаем (xi)*(x2)i(i(x13, x7)i(x4, х5, хб)и)1*, (xi)'(x'2) ((х,03, x'7}i(x!4, х'5, x'6)o)i. В результате разложения получили подмножества одинаковой мощности, но вершины х3 и х7 смежны, а х'3 и х'7 не смежны, следовательно, вершина х2 не может быть П-изоморфна х'2. 242
Проводя аналогичный поиск, получаем, что вершина Х2 не может быть изо- морфна х'3: '(xi)/(x2) ((^з, х7)ц(х4, х5, х6)о)1, (x'i) (х'з) ((х°2, x4)i(x5, х6, х7)0)ь Продолжая аналогично, получаем, что, граф G неизоморфен графу G'. Приведенный пример показывает, что больше времени затра- чивается при исследовании неизоморфных графов, так как в этом случае требуется полный перебор внутри классов разбиения. Рис. 4.3. Графы G и G1 Пусть заданы два графа G, G' (рис. 4.4): Xi = {xi, ..., Хю}; X'={x'i, ... ..., х'ю}. Предположим, что вершины х± и х\ Пниз аморфны и выполним раз- ложение по Х1, х'ь (Х1)*[(х2, Хз, х9)1(х4, Х5, Хб, Х7, х8, Хю) 0*], (x'i)।[1 (х'з, х'9, х'8) 1 (х2, х4, х5, Хб, х7, Хю) о]. Метка перенесена на подмножество большой мощности. Мощности П-изоморф- ных подмножеств равны. Выбираем для разложения следующие подмножества: Рис. 4.4. (Графы G и G1 (Х1)[(х2, Хз)*, (Х9)][(Х4)2(Х18, Хю)1'(Х15, Хб, Х7)0*], (Х1)[(х'з, х'э)(х'8)] [(х'ю)2'(х'°2, х'7)1(х'4, х'5, х'б)о]. Вершины х8 и Хю смежны, а соответствующие им х'2 и х'7 не смежны. Следо вательно, вершины Xi и x'i не могут быть 77-изоморфными. Выбираем из X' вершину х'2 и считаем ее 77-изоморфной Хь (xi)*[(x2, Хз, x9)i>(x4, х5, Хб, х7, х8, Хю)о*], (х2) [ (X з, X 4, X 5) 1 (X 1, X б, х 7, X 8, х 9, X ю) о] • 243
Процесс продолжаем аналогично до получения разбиений Хз)*(*9)*(Х4)*(Х5)*(Хб, х7)*'(х8, хю)\х'2)\х'ъ, х\) (х'3) (х'6) (х'7) X Х(х'ю, х'8)(х\> я'э). Производя перебор для подмножеств, содержащих больше одного элемента, получим подстановку изоморфизма графов G и G' (Х1, Х2, Хз, Хэ, Х4, х5, Х6, Х7, Х8, Хю \ X'2t х'5, х' 4, х'з, х'б, х'т, х'ю, х'8, x'l, x'J Отметим, что полученная подстановка не единственная. Существует некоторое множество подстановок, переводящих граф G в G'. Интерпретируя номера вершин графов с учетом их соответствия элемента- ми схем, получаем соответствие между элементами изоморфных схем. В настоящее время широкое распространение получили интер- активные системы проектирования фотошаблонов ИМС, в которых взаимодействие разработчика и ЭВМ осуществляется с помощью устройств отображения графической и алфавитно-цифровой ин- формации. Как правило1, в подобных системах предусматриваются команды вызова из библиотеки и размещения на экране типового элемента, формирования четырехугольников и других фигур, пе- редвижения, поворота и удаления области или группы областей, изменения масштаба изображения, занесения фрагмента топологии в библиотеку или вывода его на графопостроитель. Для ввода команд в ЭВМ применяют световое перо, функциональную кнопоч- ную модель, а также клавиатуру, с помощью которой передается алфавитно-цифровая информация. С увеличением плотности компонентов на кристалле ИМС рез- ко возросло количество графической информации, выводимой на экран дисплея. Поэтому наиболее перспективными являются систе- мы обработки графической информации в интерактивном режиме на базе мини-ЭВМ. Эти системы входят в состав САПФ ИМС. Краткая характеристика интерактивных мини-систем приведена в табл. 4.4. Такие системы включают: центральный процессор; мини- ЭВМ, дисковый накопитель, кассетный лентопротяжный механизм, большую взаимодействующую поверхность, графический дисплей, преобразователь, построитель трафаретов. В системах большое внимание уделяется человеческим факто- рам. Например, конструктор не должен осуществлять преобразо- вание чертежей в программные операторы, он просто вычерчивает или преобразует в цифровую форму соответствующее изображение, наблюдая на экране дисплея результаты. В системах предлагаются взаимно соотносящиеся средства для диалогового взаимодействия с ЭВМ. Одним из них является по- верхность чертежей доски, именуемая «большая взаимодействую- щая поверхность» (ВВП), которая предназначена для выполнения и преобразования в цифровой вид грубых эскизных набросков, на которые ЭВМ реагирует, вычерчивая в ответ результаты на чер- тежной бумаге в увеличенном масштабе. Кроме того, на ВВП гра- фические изображения переводятся в цифровую форму. Графопо- 244
строитель БВП позволяет вычерчивать достаточно мелкие детали. Вторым средством является графический дисплей, на котором кон- структор может увидеть >и отредактировать любую часть проекти- руемой конструкции. Таблица 4.4 Страна ЭВМ Внешняя память Параметры терминального устройства Съемщик координат | | Координатограф Япония Мини-ЭВМ НМЛ Поле 1,2 X 1,5 м2 Скорость 24 m/'mihh Точность 0,075 м-м США PDP-11/.10 НМЛ НМД Поле 1,2 X 1,5 м2 Поле 0,9X1,0 м2 Англия Мини-ЭВМ НМЛ НМД Поле 0,9 X 1,2 м2 Скорость 15—25 м/мин Точность 0,127 мм Франция Мини-ЭВМ НМЛ Поле 1,5 X 2,0 м2 Точность 0,1 мм Поле 0,8X1,5 м2 Точность 0,05 мм2 Примечание. НМЛ — накопитель на магнитной ленте; НМД — накопитель на маг- нитных дисках. Вся работа по любому из перечисленных видов проектирования ИМС может выполняться по частям на дисплее. Затем результа- ты проектирования могут быть вычерчены на БВП для оконча- тельного контроля качества. Помимо этого, вся работа может вы- полняться на БВП так, что дисплей может быть использован дру- гим конструктором. Необходимые изменения вносятся с помощью преобразователя и дисплея либо с помощью доски БВП. Сердцем системы является управляющая мини-ЭВМ, исполь- зуемая для хранения графических данных и их преобразования. Завершенные чертежи записываются для хранения на магнитную ленту и переписываются с ленты на диск, если они должны под- вергнуться редактированию. Оператор может отредактировать лю- бую часть топологии микросхемы на экране дисплея. Преобразо- ватель данных в цифровой вид является устройством, которое представляет эффективные быстродействующие и естественные средства управления электронным лучом в трубке дисплея, позво- ляя в то же время конструктору вести письменную регистрацию этапов конструирования или следовать эскизному наброску. Из часто встречающихся фрагментов топологии или чертежей составляется библиотека системы. Эти фрагменты идентифициру- ются и записываются на магнитную ленту. Конструктору упроще- на задача вычерчивания элементарных графических объектов. 245
С помощью преобразователя луч на экра-не дисплея переводится в необходимую начальную точку. Затем, используя заданные коор- динаты точек поворота, автоматически получают любую фигуру, представляющую собой набор прямоугольников. Прямые линии строятся под любым углом. После того как луч на экране дисплея переведен в начальную точку, можно, задав один радиус, прори- совать окружность. Текст и заголовки подготавливаются посред- ством указания начала места, отведенного для текста, с помощью курсора, после чего нужный текст печатается на клавиатуре элек- трической пишущей машинки или вводится с заранее заготовлен- ной перфоленты. В результате работы систем изготовляют чертежи в увеличен- ном масштабе для окончательного контроля качества перфоленты или магнитные ленты для сборочного или сверлильного станка, получают набор необходимой документации и точный фотошаблон на стеклянной фотопластине или фотопленке. 4.4. КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ 1. Что является исходными данными для проектирования топологии ИМС? 2. Опишите три основных метода проектирования топологии ИМС. 3. Опишите способ проектирования ИМС на приборном уровне. 4. Опишите способ проектирования ИМС из типовых элементов. 5. Опишите способ проектирования ИМС на основе базовых кристаллов. 6. Какие задачи решает САПФ ИМС? 7. Приведите структурную схему САПФ ИМС. 8. Для каких целей используют языки описания топологии ИМС? 9. Опишите структуру языка описания топологии ИМС. ГО. Постройте пример описания фрагмента топологии на известном вам языке. 11. Каким образом описываются одноуровневые переменные? 12. Приведите пример использования графических переменных. 13. Опишите оператора языка. 14. Приведите достоинства и недостатки языков описания топологии ИМС. 15. Каким вы представляете себе язык описания топологии ИМС5 и по- следующих степеней интеграции? 16. В чем заключается контроль топологии ИМС? 117. Приведите основные ошибки, встречающиеся при описании топологии ИМС. 18. В чем заключается контроль топологии ИМС на соответствие конструк- торско-технологическим ограничениям? 19. Какие этапы включает полный контроль топологии ИМС? 20. Опишите процесс контроля выполнения технологических правил проек- тирования топологии ИМС. 21. Каким образом устанавливается соответствие между топологией ИМС и ее принципиальной электрической схемой? 22. Постройте алгоритм восстановления принципиальной схемы по извест- ной топологии. 23. Постройте структурную схему алгоритма определения изоморфизма ориентированных графов. 24. Постройте логическую схему алгоритма и граф-схему алгоритма для определения изоморфизма графов и гиперграфов. 25. Определите подстановку изоморфизма для графов, заданных матрица- ми смежности: 246
1 2 3 4 5 Ri= 6 7 8 9 10 1 0 1 0 1 0 0 0 1 0 0 2 3 4 1 0 1 0 1 0 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 о 0 5 6 7 8 0 0 0 1 0 0 0 0 10 0 0 10 0 0 0 10 0 10 10 0 10 1 0 0 10 0 0 11 0 10 0 9 10 о 0 0 1 о 0 о 0 о 0 о i ; 1 0 1 0 0 1 1 0 1' 2' 3' 4' 5' R2= 6z 7' 8' 9' 10' 1'2' 3' 4' 5' 6' 7' 8' 9' 10' 0 1 0 0 0 1 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 5. ВОПРОСЫ ВЫПУСКА КОНСТРУКТОРСКОЙ И ТЕХНОЛОГИЧЕСКОЙ ДОКУМЕНТАЦИИ 5.1. ОСНОВНЫЕ ТРЕБОВАНИЯ ПРИ ВЫПУСКЕ КОНСТРУКТОРСКОЙ И ТЕХНОЛОГИЧЕСКОЙ ДОКУМЕНТАЦИИ Максимальный эффект от автоматизации достигается только при комплексном подходе к решению задачи конструирования. В частности, логическим и обязательным завершением работ по про- ектированию ЭА является этап получения комплекта конструктор- ской и технологической документации (КТД), обеспечивающий ав- томатизацию этапов изготовления и контроля. Решение этой зада- чи связано с преодолением целого ряда трудностей теоретического и 'прикладного характера. Остановимся на некоторых из них. Действующий в настоящее время комплекс ГОСТ ЕСКД явля- ется обобщением опыта ручных методов проектирования, что не позволяет использовать его полностью в САПР. Поэтому необхо- димо совершенствовать ЕСКД с учетом специфики САПР. 247
Ограниченные возможности существующих средств отображе- ния графической и текстовой информации не позволяют получать в готовом виде всю необходимую КТД. Кроме того, разработка про- граммных средств для хранения и воспроизводства графической информации связана с рядом трудностей. Затруднения связаны с тем, что САПР никогда не внедряется сразу целиком, а по частям. Это приводит к тому, что в обращении находятся документы, вы- полненные как ЭВМ, так и конструктором. Внедрение САПР и выпуск на ЭВМ КТД сопряжены с измене- нием функций и взаимоотношений отдельных подразделений. Учи- тывая вышесказанное, можно сформулировать основные требова- ния к САПР КТД: 1. При выборе форм и форматов выходных документов необхо- димо максимально учитывать стандарты, принятые в ЕСКД. 2. Система должна по возможности выдавать весь набор КТД, который получается при неавтоматизированном проектировании, плюс КТД для этапов контроля полученного изделия. 3. Машинные формы КТД должны обеспечивать не только ав- томатизированные, но и неавтоматизированные методы обращения документации и изготовления ЭА. 4. Основные графические документы целесообразно выполнять базовым способом. На основании этого можно привести примерный перечень про- грамм, входящих в САПР КТД. Эти программы обеспечивают по- лучение: ведомости покупных изделий; спецификации; перфолен- ты результатов размещения и трассировки для автоматического получения сборочного чертежа на графическом устройстве; перфо- ленты для автоматического изготовления фотошаблона на генера- торе изображений; перфоленты для автоматической сверловки и контроля печатных плат. 5.2. СРЕДСТВА МАШИННОЙ ГРАФИКИ В настоящее время существует целый ряд устройств машинной графики: графопостроители, координатографы, микрофотонаборные установки, различные кодировщики и т. д. Координатографы. В СССР выпущена целая серия по- добных устройств от «Минск-2000» до «Минск-2006». Первые ва- рианты этих устройств использовались только в режиме получения фотошаблонов печатных плат. Последующие модификации имеют возможность работать в трех режимах: кодировщик графической информации. Этот режим позволяет кодировать чертеж и получать перфоленту для его прорисовки; прорисовка закодированных чертежей. Использование коорди- натографа в этом режиме позволяет по единожды полученной пер- фоленте воспроизводить закодированный чертеж необходимое ко- личество раз; изготовление фотошаблонов печатных плат. 248
Все модификации координатографов типа «Минск» управля* ются перфолентой, максимальный размер стола 500X500 мм. Мо- дификации «Минск-2005», «Минск-2006» снабжены буферной па- мятью. Основным недостатком координатографов этого типа яв- ляется низкое быстродействие. Например, один слой двухслойной печатной платы, содержащей до 40 модулей, в среднем вычерчи- вается на фотопластине около 3 ч. Координатографы типов ЭМ-703'„ «Картимат-ЗЕ» и КПА-1200 подобны описанному. Но предназна- чены только для изготовления фотошаблонов и могут работать в двух режимах: изготовление фотошаблонов методом гравирования (с приме- нением гравировальной головки) на пластине, покрытой специаль- ным слоем; изготовление фотошаблонов лучом на фотопластине. Почти все координатографы имеют возможность выводить ал- фавитно-цифровую информацию. Рассмотрим принцип действия координатографов этого типа на примере координатографа «Минск-2000». Координатограф «Минск- 2000» (рис. 5.1) предназначен для изготовления фотошаблонов пе* Рис. 5.1. Структурная схема коорданатофафа «Минск-2000» чатных плат экспонированием по программе, подготовленной на ЭВМ. Он формирует изображение путем нанесения прямолинейных отрезков печатных проводников шириной 0,2 ...4,0 мм в восьми ортогонально-диагональных направлениях и контактных площадок различной формы. Максимальный размер контактной площадки ограничен кругом диаметром б мм. Ширина проводников и форм контактных площадок определяются размерами и формой смен* 10—144 249
ных диафрагм, которые располагаются в 16 гнездах диафрагмен- ного диска. Рабочее поле координатографа имеет размеры 500X500 мм, точность выполнения фотошаблонов 0,05 мм, ско- рость— не более 10 мм/с. Управление работой координатографа осуществляется с перфоленты, которая вводится с помощью уст- ройства FS-1501. Наиболее совершенным координатографом этой серии являет- ся координатограф «Минск-2005». Это устройство может выполнять все перечисленные операции и, кроме того, реперфорацию, срав- нение перфолент, реперфорацию перфолент с одновременной про- рисовкой. В «Минск-2005» есть режим, позволяющий выполнить поворот любого символа или всего изображения на угол, кратный 90°. При тех же размерах поля координатограф «Минск-2005» име- ет максимальную скорость (50 мм/с) вычерчивания фотошабло- нов. Важным достоинством координатографа «Минск-2005» явля- ется то, что изготовление фотошаблона производится в незатем- ненных помещениях. Основные сведения о кодировщиках. Кодировщи- ки (ЭМ-709, КС-2) служат для кодирования графической инфор- мации, т. е. для перевода графической информации в цифровую. Носителем выходной информации является перфолента. Размер стола подобных кодировщиков 1,2X1,2 м. Принцип работы их сле- дующий. Кодируемый 'чертеж крепится на столе кодировщика, ко- торый снабжен движущимся по направлению координатных осей перекрестием и цифровым табло. Оператор совмещает перекрестье с кодируемой точкой, координаты которой высвечиваются на циф- ровом табло. Нажатием кнопки оператор включает перфоратор, и значения координат выводятся на перфоленту вместе со служеб- ными символами. Принцип работы кодировщиков рассмотрим на примере коорди- натомера-кодировщика ЭМ-709. Это устройство оптико-механиче- ского типа с фотоэлектрическими датчиками отсчета перемещения рабочего органа. Устройство предназначено для полуавтоматиче- ского кодирования графической информации с выдачей результа- тов кодирования на перфоленту и (или) непосредственно в ЭВМ. Рабочее поле имеет размер 900 X 200 мм, точность снятия коорди- нат 0,2 мм, шаг работы устройства может иметь значения 0,1; 1; 2; 2,5 и 5 мм. Устройство обеспечивает поворот и замену коор- динатных осей, вывод на перфоленту алфавитно-цифровых кодов, специальных знаков. Структурная схема устройства приведена на рис. 5.2. Кодирование символов осуществляется путем нажатия на наборном поле площадки с необходимым символом. При этом в кадре информации после значений координат X, У будет сформи- рован номер выбранного символа. Рассмотрим микрофотонаборные установки (МФНУ) ЭМ-519Б и 549. Они служат только для изготовления фотошаблонов ИМС, увеличенных в 10 раз. Поэтому фотошаблоны, полученные на МФНУ, называют промежуточными. Точность работы МФНУ "1 мкм. Максимальный размер кристалла 6X6 мм. Управляется 250
МФНУ перфолентой, засветка необходимых мест йа фотопластине происходит путем соответствующего перемещения стола установки и управления размерами прямоугольной диафрагменной щели, про- пускающей свет. Мощным средством в руках разработчиков КТД в САПР ста- ли автоматизированные рабочие места (АРМ). В настоящее вре-' мя отечественная промышленность выпускает АРМ-М и АРМ-Р специально для целей автоматизации проектирования. Рис. 5.2. Структурная схема ЭМ-709 Автоматизированное рабочее место является диалоговым гр а* фическим комплексом проектирования, предназначенным для ав- томатизации операций по подготовке, преобразованию и редакти- рованию текстовой и графической информации, решения конструк- торских задач, а также операций по взаимодействию конструкто- ра ЭА с САПР. Для проектирования машиностроительных объек- тов в основном используется АРМ-М. Он содержит графический дисплей с расширенными возможностями чертежного автомата и полуавтомата кодирования. Специализация АРМ-М определяется прикладными программами, введенными в операционную систему, и содержанием информационной базы. В автономном режиме АРМ-М позволяет решать задачи, связанные с вводом и выводом 10* 251
графической информации, выполнением расчетных работ, кодиро- ванием чертежей, выпуском технической документации, подготов- кой программ для станков с числовым программным управлением ((ЧПУ). В режиме взаимодействия с САПР АРМ-М позволяет ре- шать задачи проектирования современных сложных объектов. Структурная схема АРМ-М показана на рис. 5.3. Автоматизиро- Рис. 5.3. Структурная схема АРМ-М ванное рабочее место может использоваться для проектирования чертежей печатных плат в интерактивном режиме. Исходный вари- ант проектируемого чертежа кодируется на кодировщике ЭМ-709, и полученная перфолента (ПЛ) вводится в ЭВМ. В ЭВМ введен- ная информация обрабатывается программами, введенными раз- работчиком с дисплея или с перфоленты. Результат проектирова- ния либо выводится на экран дисплея и дорабатывается в интер- активном режиме, а затем прорисовывается на графопостроителе, либо непосредственно выводится для прорисовки на графопостро- итель. Автоматизированное рабочее место используется для: решения задач проектирования ЭА, связанных с приемом, хра- нением и переработкой информации; вывода информации на перфоленту, печать, графопостроитель, графический или текстовой дисплей; ввода информации в память АРМ с центрального процессора, перфокарт, перфолент, магнитных лент, устройств кодирования графической информации; ведения диалогового режима проектирования. Автоматизированное рабочее место имеет два режима рабо- ты— автономный и режим взаимодействия с САПР, построенной на базе ЕС ЭВМ. В автономном режиме решаются задачи: ввода-вывода графической информации; размещения элементов произвольной конфигурации на поле пе- чатной платы; разводки и редактирования топологии печатных плат; выполнения электрических принципиальных схем; механизированного изготовления управляющих перфолент для получения фотооригиналов слоев печатных плат; 252
составления спецификаций; выполнения аналитических и графических инженерных расче- тов; выпуска документации; корректировки и редактирования графических, текстовых и смешанных документов; выполнения сборочных чертежей печатных плат, сборок, шка- фов; ввода стандартных конструктивных элементов в библиотеку АРМ. В режиме взаимодействия с САПР АРМ-Р позволяет: решать задачи моделирования схем ЭА; синтезировать схемы ЭА; выполнять сквозной синтез схемы ЭА с выходом на конструк- торско-технологическую документацию; обращаться в архив САПР; передавать на хранение в архив информацию. Комплекс АРМ-Р состоит в основном из следующих техниче- ских средств: управляющего вычислительного комплекса (УВК); устройства расширения памяти (УРП); устройства расширения комплекса (УРК); устройства внешней памяти на магнитных дис- ках (УВП НМД); экранного графического пульта (ЭГП); экран- ного алфавитно-цифрового пульта (ЭАЦП); мозаичного устройст- ва печати (МУП); устройства ввода информации с перфокарт (УВИП); накопителя на магнитной ленте (НМЛ); графического построителя (ПГ); устройства ввода графической информации (УВГИ). Все устройства АРМ-Р объединяются в систему с помощью единого комплекта связи, называемого общей шиной. Основным устройством АРМ-Р является процессор на базе УВК. Процессор служит для выполнения арифметических, логи- ческих и операций обмена. Для приема, хранения и выдачи двоич- ной информации и для расширения оперативной памяти предназ- начено УРП. Для увеличения функциональных возможностей УВК путем подсоединения дополнительных внешних технических средств предназначено УРК, для работы в качестве внешнего запомина- ющего устройства УВП НМД. В составе АРМ для ввода, отобра- жения и редактирования на экране графической и буквенно-циф- ровой информации используется ЭПГ. Для ввода с клавиатуры и отображения на экране алфавитно-цифровой информации пред- назначен ЭАЦП. Для вывода алфавитно-цифровой информации на печать из УВК применяется МУП. Для восприятия информации, нанесенной на перфорированные карты, преобразования ее в элек- трические сигналы используется УВИП. Для записи, воспроизведе- ния и длительного хранения информации предназначен НМЛ. Для вычерчивания на обычных бумажных носителях в прямоугольной системе координат схем и других документов по данным в виде кодов или координат точек графика и приказов о положении пи- шущих устройств применяется ПГ. Для получения кодового опи- 253
сания чертежа обходом опорных точек с последующим выводом графической информации на перфоленту предназначено УВГИ. Математическое обеспечение (МО) АРМ-Р призвано обеспечить работу устройств основного комплекса связи с оператором и поль- зователем, осуществления режима одновременного выполнения прикладных задач и проверки работоспособности АРМ-Р. Оно со- стоит из (базового программного обеспечения (БПО) и пакета при- кладных программ (ППП). В свою очередь БПО состоит из сле- дующих программных модулей: дисковой операционной системы (ДОС) АРМ; тест-мониторной системы АРМ; базовой оперативной графической системы; вспомогательных программ обмена и пере- кодировки; системы МО на перфоленте. Основным элементом БПО АРМ является ДОС, которая управ- ляет всеми программными модулями. В качестве ППП используется система графического редакти- рования и формирования базы данных, которая позволяет исполь- зовать АРМ-Р как интеллектуальный диалоговый терминал для реализации различных этапов проектно-конструкторских работ. Графопостроители или чертежные автоматы (ЧА) позволяют автоматизировать наиболее трудоемкую операцию процесса про- ектирования— изготовление технической документации. Эти уст- ройства дают возможность получать информацию в привычной форме — в виде графиков, спецификаций, чертежей, таблиц. Гра- фопостроители отличают высокое качество и сравнительно высо- кая (до 1000 мм/с) скорость вычерчивания графической информа- ции. Чертежные автоматы делятся на три класса по способу про- граммного управления: непосредственно от ЭВМ; от машинных носителей информации; от первых двух вместе. Графопостроителям с программным управлением присущи сле- дующие недостатки: низкое по сравнению с ЭВМ быстродействие, недостаточная надежность работы, программно-командная несов- местимость различных ЧА. По способу обработки входных сигналов различают аналого- вые, цифроаналоговые и цифровые ЧА. Графопостроители анало- гового типа построены по принципу компенсационных следящих систем с обратной связью. Высокая точность и полная свобода в направлении перемещения узла записи — вот основные достоинст- ва этих ЧА. Однако из-за сложности согласования их редко ис- пользуют с цифровыми ЭВМ. Для преобразования электрического сигнала в механическое перемещение ЧА с цифровым управлени- ем используют шаговый двигатель (ШД). Особенностью работы таких ЧА является то, что количество направлений, в которых мо- жет перемещаться узел связи, ограничено. Основными недостат- ками как аналоговых, так и цифровых ЧА являются громоздкость оборудования и динамическая неустойчивость. В зависимости от формы стола, на котором крепится бумага для вычерчивания, чертежные автоматы делятся на рулонного и планшетного типов. 254
Работу чертежного автомата рассмотрим на примере ЧА «Век- тор 1301». Он относится к классу ЧА с электромеханической си- стемой развертки с управлением от ЭВМ и предназначен для из- готовления различной графической информации. Чертеж вычерчи- вается на обычной бумаге головкой, снабженной двумя перьями. Переключение перьев производится специальной командой, а бу- мага крепится на планшете с помощью электростатического поля. «Вектор-1301» может управляться или от ЭВМ, или с пульта. В ЧА предусмотрены устройства для удобного подключения к ЭВМ. Основные технические характеристики «Вектор-1301» следующие: размеры рабочего поля 600X850 мм, элементарный шаг переме- щения 0,05 мм; скорость вычерчивания линий 25 ...75 мм/с; точ- ность 0,2 мм; скорость вычерчивания символов 5 симв/с; число символов 77. Схема управления ЧА «Вектор-1301» — цифрового типа и построена по принципу отработки шаговых приращений. Структурная схема показана на рис. 5.4. Управление графопостро- ителем происходит поступающими от ЭВМ 36-разрядным кодом. Он содержит координаты X, У перемещения головки записи и ко- манду подъема или опускания пера. Рис. 5.4. Структурная схема чертежного автомата «Век- тор-1301» Для ЧА «Вектор-1301» построено базовое математическое обеспечение (МО), т. е. набор программ, реализованных на одной из версий алгоритмического языка ФОРТРАН и не ориентирован- ный на конкретную ЭВМ. Комплекс программ разбит на три уров- ня. Первый уровень — это программы, управляющие построителем независимо от особенностей модели. Программы второго уровня 255
осуществляют переход от заданной системы координат к любой другой, а программы третьего уровня обеспечивают работу ЧА в декартовых координатах, задаваемых оператором. 5.3. ПРОЕКТИРОВАНИЕ И ВЫПУСК ТЕКСТОВОЙ И ГРАФИЧЕСКОЙ КОНСТРУКТОРСКО-ТЕХНОЛОГИЧЕСКОЙ ДОКУМЕНТАЦИИ В САПР текстовая документация должна выпускаться соглас- но ГОСТ «Ведомость покупных изделий» и «Спецификация». При этом выполняются следующие необходимые требования и приня- тые допущения: печатаются наименования разделов; в обозначениях символов «+» печатается «Ч—»; все обозначения печатаются прописными буквами, а «мм2», «см2» как «кв. мм», «кв. см» и т. д.; в спецификации указываются позиционные обозначения эле- ментов согласно электрической принципиальной схеме. Все текстовые документы, кроме титульного листа, должны выпускаться автоматизированным способом в виде распечаток на АЦПУ, причем размеры всех граф, колонок в документах должны соответствовать ГОСТ. Титульный лист имеет некоторую перемен- ную часть (фамилии, подписи, год и т. д.). Поэтому автоматизи- рованным способом выполняется только его постоянная часть, а переменная часть заполняется вручную. При этом часто исполь- зуют метод базового чертежа, т. е. 1 раз (обычно вручную) выпу- скают базовый чертеж на однотипную группу конструкторских блоков, который содержит всю постоянную часть. Затем автомата* зированными методами добавляют все то, что относится к конкрет* ному устройству. При изготовлении сборочного чертежа руководствуются ГОСТ и следующими допущениями: все модули изображают условно. Размеры условных изобра- жений должны соответствовать реальным с учетом масштаба чер- тежа; на изображениях элементов указываются их позиционные обо- значения в соответствии со схемой; цифры и буквы выполняются высотой 3 мм. Результатом работы программ, как правило, является перфо- лента, управляющая графопостроителем или координатографом, на котором выполняется необходимый чертеж. Программное обеспечение для выпуска графической докумен- тации включает обычно два комплекса программ: программы подготовки управляющих перфолент для чертежных автоматов; 1 программы обеспечения графического взаимодействия конст- руктора с ЭВМ. Первый комплекс программ выполняет: преобразование топологической модели печатной платы в гра- фические модели чертежа печатной платы и сборочного чертежа; 256
формирование условных изображений контактных площадок, переходных отверстий, радиоэлементов; заполнение таблицы отверстий платы; формирование постоянной части чертежа; трансляцию графических процедур; представление строк символов в виде отрезков линий; минимизацию холостых пробегов чертежного автомата; преобразование информации о чертеже в язык чертежного ав- томата и получение управляющей перфоленты. Второй комплекс программ обеспечивает графическое взаимо- действие конструктора и ЭВМ, формируя команды языка графи- ческого диалога в виде дисплейных слов, объединенных в дисплей- ный файл. Язык графического диалога включает обычно дисплей- ные слова построения и стирания линий, выделения фрагмента изображения, сдвиг изображения, т. е.- в основном используются точечный и векторный режимы работы дисплея. Обычно конкретная реализация подобного программного обес- печения САПР КТД позволяет выпускать документацию и при ручном изготовлении чертежей. При этом предусматривается воз- можность ввода информации о чертеже с помощью кодировщика (например ЭМ-709). Автоматизация этапов изготовления и контроля обеспечивает- ся комплексом технических средств и программ, предназначенных для преобразования информации, сформированной в рабочем ар- хиве системы автоматизированного проектирования и выдачи на носители программ управления отдельными составляющими тех- нологического комплекса. Графическая информация о плате (или ИМС) получается либо в результате автоматизированного проектирования, либо после корректировки с применением диалоговой подсистемы, либо при трансляции результатов кодирования на кодировщике. Получен- ная, таким образом, информация о печатной плате или интеграль- ной микросхеме проходит доработку на дисплее (т.е. производятся проверка выполнения технологических ограничений, устранение узких мест, проверка на обрыв, короткое замыкание и т. д.). По- лученная информация является исходной для работы технологи- ческого автомата, который изготавливает фотошаблоны. Кроме изготовления фотошаблонов методы автоматизирован- ного проектирования широко используются на этапе сверловки плат. Это вызвано тем, что требования к точности расположения переходных отверстий на печатной плате высоки. В настоящее время, разрабатывая подобные программы, их ориентируют на сверлильные автоматы ОФ-72Б или «Шмоль». При этом обычно решают задачи формирования массивов выходной информации по диаметрам отверстий и получения машинных носителей в кодах управления сверлильным станком. К другим автоматизированным процессам относится процесс контроля печатных плат, который включает ряд этапов. Первым из них является этап проверки соединений на плате до и после 257
монтажа, так как во время монтажа возможно появление лишних перемычек из-за припоя. Процесс контроля монтажа заключается в том, что питающее напряжение подается путем коммутаций после- довательно через электрические цепи проверяемых соединений. При этом каждая точка монтажа коммутируется с каждой из ос- тальных. Число коммутаций, которое необходимо провести для N точек монтажа, равно (ЛГ—1) N/2, причем если между проводника- ми имеется короткое замыкание, то могут возникнуть обводные цепи, что не позволит определить обрывы цепей. Поэтому провер- ки повторяют после устранения коротких замыканий. Программы, используемые при проверке монтажа, выполняют: выбор в цепях точки для контроля с учетом минимального рас- стояния между проводниками; выдачу координат этих точек; выдачу программ для работы автомата контроля. Следующим этапом является контроль всего проектируемого блока на правильность функционирования. Получение подобных программ связано с синтезом тестов, моделирующих работу уст- ройства и с разработкой устройств, на которых осуществляются подобные проверки. Обычно испытания проводят на постоянном (статические) и переменном (динамические) токе. Испытания на постоянном токе включают в себя проверку ста- тических параметров в рабочем режиме и проверку выполнения заданных логических функций без изменения уровня сигнала. Динамические испытания включают проверку параметров при подаче на вход импульсного сигнала и испытание блока на вы- полнение заданной функции на рабочей частоте. Устройства для статических й динамических испытаний от- личаются друг от друга как в электронном, так и в программном отношениях, причем устройства для динамических испытаний сложнее и дороже. Существующие пакеты прикладных программ (ППП), реализо- ванные на ЕС ЭВМ выпуска технической документации, предназ- начены для формирования, организации, хранения и выпуска тек- стовых конструкторских документов, а также получения управля- ющей информации для технологических автоматов. К основным решаемым задачам ППП относятся: 1. Выпуск комплекта конструкторской документации, который включает спецификации плат и ячеек, ведомости машинных носи- телей плат и ячеек, таблицу проводного монтажа, сборочный чер- теж ячейки, перечень элементов и схему их расположения на пла- те, таблицы монтажа, частные технические условия, диаметры и координаты отверстий. 2. Выпуск управляющих перфолент для сверления печатных плат на станках, для формирования фотошаблонов слоев печат- ных плат на координатографах, для вычерчивания слоев и шабло- нов печатных плат, для раскладки и пайки микросхем, для конт- роля печатного монтажа и ячеек. 258
Выходными результатами ППП являются комплекты КТД и комплект управляющих перфолент. Для дальнейшего развития автоматизированного выпуска КТД необходимо: 1. Внести коррективы в ЕСКД и ЕСТД с учетом современной специфики получения КТД в САПР. 2. Обучать персоналы организаций работе с КТД, полученной автоматизированными методами. 3. Организовать хранение, обращение, корректировку инфор- мации на машинных носителях. 4. Все внешнее оборудование САПР (имеется в виду все гра- фическое оборудование) должно быть соединено в единый комп- лекс не только информационно, а и аппаратурно, что позволит устранить промежуточные носители информации, непосредствен- ное получение которых требует затрат времени, разработки про- грамм. 5. Разрабатывать графические системы проектирования, поз- воляющие разработчику оперативно и по желанию вмешиваться в процесс проектирования, влиять на него. Подобные системы бу- дут снабжены широкой сетью внешнего оборудования, задейство- ванного на общий процессор или многопроцессорную вычислитель- ную систему. 6. Уделять внимание разработке аппаратуры контроля монта- жа, установочных элементов до и после сборки блока и апара- туре, диагностирующей работоспособность каждого узла и всего устройства в целом. 5.4. КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ 1. Сформулируйте основные требования к САПР КТД. 2. Какие случаются трудности при автоматизации выпуска КТД? 8. Постройте структурную схему САПР КТД. 4. Какой набор технических средств по вашему мнению должна содержать современная САПР КТД? 5. Какие алгоритмы и программы должны входить в САПР КТД? 6. Каким образом должно происходить распределение информации в САПР КТД? 7. Какие средства машинной графики вы знаете? 8. Приведите краткую характеристику средств машинной графики, их дос- тоинства и недостатки. 9. Опишите основные принципы работы координатографов. 10. Опишите работу ЧА «Вектор-1301». Приведите его структурную схему. 11. Приведите основные виды и принципы работы кодировщиков. 12. Для каких целей используются микрофотонаборные установки? Дайте их краткую характеристику. ГЗ. Опишите АРМ-М и постройте его структурную схему. 14. Дайте краткую характеристику и опишите структуру АРМ-Р. 15. Приведите технические средства АРМ-Р и опишите их назначение. 16. Опишите два режима работы АРМ-Р. 17. Для каких целей используется МО АРМ-Р? 18. Каким образом производится автоматизированный выпуск КТД? 19. Опишите программное обеспечение для выпуска графической докумен- тации. 259
20. Каким образом осуществляется выпуск КТД для этапов изготовления в контроля ЭА? 21. В чем заключаются статические и динамические испытания? 22. Дайте характеристику ГТПП для выпуска технической документации. 23. Какие комплексы программ используются для выпуска графической до- кументации? 24. С чем, по вашему мнению, связано развитие автоматизированного вы- пуска КТД для ЭА на печатных платах и интегральных микросхемах? 25. Какой вы представляете САПР КТД в будущем? 6. АППАРАТНЫЕ СРЕДСТВА СВЯЗИ КОНСТРУКТОРА И ЭВМ 6.1. ОБЩИЕ ПОЛОЖЕНИЯ Автоматизированное проектирование означает тесное взаимо- действие человека с ЭВМ. Это взаимодействие достигается исполь- зованием дисплеев, телетайпов и других средств диалога человека с ЭВМ. Очевидно, что любой процесс проектирования носит ите- рационный характер, т. е. первый, пробный, результат проектиро- вания изменяется, улучшается и т. д. Процесс проектирования и конструирования длится до тех пор, пока результат не будет удов- летворять наперед заданным требованиям. Такой процесс можно условно изобразить с помощью структурной схемы, показанной на рис. 6.1. Рис. 6.1. Структурная схема процессора проекти- рования Очевидно, что в системах, где ЭВМ используется для выдачи результатов в виде распечаток на АЦПУ или информации, управ- ляющей работой внешнего устройства (например, графопострои- теля или координатографа), процесс получения результатов, а следовательно, их оценка и корректировка затягиваются, что уве- личивает время проектирования. Более эффективным является процесс проектирования, при ко- тором результаты выдаются на экран какого-либо устройства, поз- воляющего сразу же оценить их и внести необходимые изменения 260
в процесс проектирования. Такими устройствами являются алфа-* витно-цифровые и графические дисплеи, а системы проектирова- ния, использующие графические дисплеи, называют графическими системами проектирования (ГСП). Они включают человека-опе- ратора, аппаратуру и программное обеспечение. Аппаратура со- стоит из ЭВМ, графического дисплея (ГД), управляемого ЭВМ, а также устройства ввода, которые позволяют человеку вводить необходимые данные и команды. Программное обеспечение кроме обычного комплекса программ, входящего в состав любой системы проектирования, включает программы взаимодействия ЭВМ с дисплеем. В настоящее время разработан ряд структур ГСП. Они отлича- ются друг от друга режимом работы используемых графических дисплеев, средств машинной графики (т. е. устройств ввода-выво- да графической информации и программным обеспечением). 6.2. ДИСПЛЕИ Из рис. 6.1 видно, что основным этапом ГСП является связь человека-оператора с ЭВМ в течение всего процесса проектирова- ния. Эта связь осуществляется с помощью специального внешнего- устройства, управляемого ЭВМ, которое называется дисплеем. Дисплеи являются диалоговыми устройствами для интерактив- ного взаимодействия конструктора и ЭВМ. Одна из возможных упрощенных схем дисп- лея изображена на рис. 6.2. Оператор вводит ис- ходные данные на основе клавиатуры. С клавиату- ры сигналы проходят че- рез блок управления в ЭВМ или на экран. От- ветные сигналы идут че- рез блок управления, где хранятся программы, обе- спечивающие различные режимы функционирова- Рис. 6.2. Структурная схема дисплея ния терминала. Перемещение изображения на экране осуществля- ется с помощью координатора. Современные дисплеи могут обрабатывать вводимые данные с помощью пакетов программ как без использования мощной цент- ральной ЭВМ, так и при взаимодействии с ней. Наличие у дисплея памяти позволяет осуществлять диалог и графические операции. Такой терминал позволяет вводить данные с одновременным их контролем, редактировать тексты, изменять графические формы. Полный пакет программ вводится в память центральной ЭВМ, а в памяти терминала хранятся подпрограммы, позволяющие строить основные виды изображений и изменять их. Кроме того, такие терминалы позволяют выделять конструктору на экране от- 26F
дельные элементы топологии, вводить стандартные элементы, до- кументировать отображаемую информацию. При обработке в ЭВМ в процессе проектирования графической информации для связи с ЭВМ используются графические дисплеи, которые представляют собой специализированное устройство с эк- раном, выполненным на электронно-лучевой трубке. Структура подобной ГСП показана на рис. 6.3. Дисплейный пульт в изобра- женной системе считается автономным, т. е. сохраняет изображе- ние на экране даже после отключения от него центральной ЭВМ. Рис. 6.3. Пример структурной схемы графической си- стемы проектирования: МУУ — местное устройство управления Одним из факторов, ограничивающим в настоящее время раз- витие графических систем, является предельная сложность изоб- ражения, которое можно вывести на экран без переполнения памя- ти, выделенной для изображения. Вообще же ограничения в зна- чительной степени связаны с техникой, используемой для генера- ции изображения, с самим дисплеем и режимом его работы. Рцс. 6.4г Схема точечного режима
Рассмотрим ряд основных режимов работы дисплея. Дисплей в точечном режиме действует как устройство отобра- жения точек, т. е. каждое слово дисплейного списка указывает точку на экране (рис. 6.4). Здесь УУ — устройство управления; ЦАП — цифроаналоговый преобразователь; ЭЛТ — электронно-лу- чевая трубка. Дисплейное слово в этом режиме имеет вид, пока- занный на рис. 6.5. Разряды O-Z1 (вкл-Выкл) Рис. 6.5. Дисплейное слово при точечном режиме Простота схемы и отсутствие ошибок накопления (так как ко-* ординаты каждой точки задаются в абсолютной форме)—основ- ные достоинства точечного дисплея. Однако он имеет много недо- статков: для воспроизведения изображения необходимо много дисплей- ных слов, что требует большого объема памяти; для обработки большого числа слов требуется много машин- ного времени. Если как-то ограничить последнее требование, то автоматически уменьшается сложность изображений, выводимых на экран. Действительно, если время воспроизведения одной точки составляет 40 мкс, а минимальная частота регенерации точек (с учетом отсутствия мерцания) составляет 40 Гц, то изображение не может содержать более 1000 точек. Следовательно, точечный дисплей применим для изображения отдельных точек или прямых отрезков и неэффективен при изображении кривых линий. При работе в векторном режиме каждое дисплейное слово по- казывает величину смещения по горизонтали и вертикали от i-й точки изображения к (i+ 1)-й. Вид дисплейного слова показан на рис. 6.6. Схема такого дисплея изображена на рис. 6.7. Очевидно, что данный режим экономичнее в смысле ис- пользования памяти, так как для изображения одного вектора не требуется сотен дисплейных слов, описывающих точки. Кроме то- Раз ряды Рис. 6.6. Дисплейное слово при векторном режиме 2^-'
го, этот режим позволяет перемещать изображение на экране, ме- няя опорную точку. Однако он менее точен, так как в процессе генерации изображения происходит накапливание ошибки величин перемещений (АХ и ДУ). Рис. 6.7. Структурная схема дисплея Рассмотрим другие режимы работы дисплея. Режим прямоли- нейных отрезков состоит в том, что линия задается на экране дис- плея ее начальной и конечной точками координат X и У. Вид дис- плейного слова показан на рис. 6.8. Разряды 0 7 10 11 20 Z1 30 31 00 01 \^7 Y, xz Yz Т Яркость Признак (вкл-быкл) сброса Рис. 6.8. Дисплейное слово при режиме прямоли- нейных отрезков Режим коротких векторов используется тогда, когда в изобра- жении преобладают кривые линии, и отличается от векторного режима только тем, что координаты векторов ДХ и ДУ задаются более короткими (менее 7) разрядными числами. Это в несколько раз уменьшает время воспроизведения вектора на экране по срав- нению с точечным режимом. Шаговый режим позволяет больше, нежели предыдущий, эко- номить память при описании коротких векторов. Так, в одном 12- разрядном дисплейном слове можно поместить описание двух ко- ротких векторов (длина этих векторов колеблется от нуля до трех шагов). На рис. 6.9 приведен пример подобного дисплейного слова. Из приведенного описания видно, что определение режима ра- боты дисплея сводится к компромиссу между допустимой длиной 264
вектора, который может быть занесен в дисплейное слово, и объе- мом памяти буфера дисплея для хранения последовательности слов. Очевидно, что самым «расточительным» по памяти и самым медленным, но самым точным будет точечный режим. На экране с растром 1024X1024 в векторном режиме можно воспроизводить Разряды 0 7 2 3 7 1 5 В 7 8 1 1 10 1 Яркость, Число Направление Число Направле- Признак тагов тагов 1-го тагов ние шагов сброса 1-го вектора Вектора 2-го век- 2-го векто- тора ра Рис. 6.9. Дисплейное слово при шаговом режиме отрезки длиной 1/8 всего экрана, но это требует 18-разрядных дисплейных слов. В режиме коротких векторов длина отрезка мо- жет составлять 16 элементов растра (1/64 всего экрана), но это требует 12-разрядных слов. Наконец, в шаговом режиме длина отрезка не превышает трех элементов растра, но зато в 12-разряд- ном слове помещается описание двух векторов. Очевидно, что два последних режима подходят тогда, когда в изображении преобла- дают кривые линии. Важными характеристиками работы дисплея являются пара- метры, определяющие удобство работы с ним. К этим характери- стикам относятся: частота мерцания изображения; разрешающая способность; адресуемость точки на экране; форма экрана и полез- ная площадь. Изображение на экране должно достаточно быстро восстанав- ливаться с частотой, позволяющей наблюдателю видеть качествен- ное изображение без мерцания. Устранение мерцания достигается ценой дополнительных схемных затрат, снижения допустимой сложности изображения и других ухудшений параметров. Так как частота мерцания оказывает воздействие на зрение человека, то устранение мерцания представляет значительный интерес при раз- работке дисплея. Частота мерцания замеряется числом раз в се- кунду, за которое изображение целиком регенерируется или зано- во воссоздается на экране ЭЛТ. В результате исследований было установлено, что в нормально освещенном помещении требуется частота регенерации 30 Гц, а частота в 40 Гц практически полно- стью устраняет мерцание. Необходимо заметить, что при работе в затемненных помещениях или при использовании люминофора с большим послесвечением можно снизить допустимую частоту мерцания. Под разрешающей способностью понимают возможность вос- производить на экране дисплея самые мелкие детали чертежа. Ме- рой разрешающей способности является число различимых линий, 265
отнесенное к диаметру экрана. Графический дисплей обладает хо- рошей разрешающей способностью, если по ширине изображения можно провести порядка 1000 линий при малой яркости свечения линий. При этом необходимо помнить, что увеличение яркости ухудшает разрешающую способность. Разрешающая способность экрана графического дисплея, т. е. электронно-лучевой трубки, всегда выше в области центра, нежели по краям. Это объясняется тем, что при максимальных углах от- клонений электронного пучка ЭЛТ ухудшается его разрешающая способность. Например, в дисплеях с большими ЭЛТ по краям экрана понижались разрешающая способность и появлялось мер- цание. Адресуемость точки на экране измеряется числом координат- ных позиций, в которые может быть помещен центр пятна сфоку- сированного пучка. Она определяется числом разрядов дисплей- ного слова. Не нужно путать адресуемость точки на экране с раз- решающей способностью. Например, с помощью 12-разрядного дисплейного слова можно разместить пятно в одной из 4096 ди- скретных позиций экрана ЭЛТ. При этом разрешающая способ- ность дисплея может составлять 1000 линий. Обычно в графиче- ском дисплее адресуемость точки делают примерно равной разре- шающей способности. В применяемых графических дисплеях используются как квад- ратные, так и прямоугольные экраны, стороны которых относятся как 4 :3. В ряде случаев используются очень большие экраны, поз- воляющие изображать чертеж в масштабе 1:1. Полезная площадь экрана ЭЛТ выбирается такой, чтобы дискретные позиции адресу- емости точки вписывались в круглый или прямоугольный формат экрана. Люминофор, выбранный для ЭЛТ, играет важную роль в про- цессе работы с дисплеем. Люминофор определяет послесвечение, цвет, яркость и, что особенно важно, разрешающую способность графического дисплея. Если учесть, что послесвечение влияет на надежность ответного сигнала и в свою очередь зависит от мер- цания, то становится ясным, что выбор наиболее удачного люми- нофора является компромиссом между выбранными характеристи- ками дисплея. Дисплей с запоминающей ЭЛТ представляет пользователю воз- можность доступа к ЭВМ с дистанционных терминалов. В отличие от обычных, дисплеи с запоминающей ЭЛТ не требуют дисплейной буферной памяти, в этих дисплеях не стоит проблема мерцания, так как изображение сохраняется на экране ЭЛТ любое необхо- димое время. Объем информации, который необходимо вывести на экран, практически не ограничен, так как не ограничено время формирования изображения. В дисплеях с запоминающей ЭЛТ увеличена скорость передачи информации за счет включения в со- став дисплея генераторов символов. Например, если для одиноч- ного символа необходим 6-разрядный код, то на строке может быть воспроизведено 200 симв./с при скорости передачи 1200 бит/с 266
(алфавит состоит из 64 символов). На экране размером 12,5x20см ’ можно изобразить примерно 4000 символов. Рассмотрим дисплей с использованием рпр-проекции, которая используется в дисплеях тогда, когда на экран ЭЛТ наряду с ме- няющейся графической информацией необходимо вывести прак- тически не меняющиеся данные. Проекция рпр— это наложение на сформированное на экране ЭЛТ электронным лучом изображе- ние со слайдов, пленок и т. д. Метод применяется при выводе на экран географических карт, изображение которых мало меняется, постоянных текстов-комментариев или редко меняющихся частей проектируемого устройства. Особенно удобно применение проек- ции рпр при программируемом обучении конструктора. Последнее время широкое распространение получили дисплеи с цветными ЭЛТ. С помощью цвета можно выделить слои проекти- руемой микросхемы или печатной платы, выделить интересующие конструктора блоки проектируемого устройства или схемы и т. д. Несколько замедленное использование дисплеев с цветными ЭЛТ связано с их сложностью, которая приводит к снижению надежно- сти и повышению стоимости. Стереодисплеи используются в системах проектирования слож- ных устройств, например ЭВА на ИМС5, так как применение сте- реоскопии дает эффект глубины и позволяет изображать трехмер- ные объекты. При этом на экран выводится одно и то же изобра- жение дважды под разными углами зрения, тем самым образуется стереопара. Это и является основным недостатком стерео дисплеев, так как при необходимости выводить изображение на экран дваж- ды не снижаются требования к величине частоты мерцания. Кро- ме того, ровно в 2 раза уменьшается разрешающая способность экрана стереодисплея, так как изображение одной компоненты стереопары занимает только половину экрана. На экран любого графического дисплея можно вывести алфа- витно-цифровую информацию (АЦИ). Однако изображение каж- дого знака будет представлять собой чертеж. Поэтому гораздо удобнее при работе только с АЦИ использовать специализирован- ные дисплеи. Основным достоинством этих дисплеев являются не- значительный объем входных данных и возможность подключения их к ЭВМ с помощью узкополосной линии связи. Как правило, АЦИ на экране дисплея пишется по строкам, менять размеры, наклон и конфигурацию символов нельзя. 6.3. СТРУКТУРЫ ДАННЫХ В графических системах проектирования часто возникает не- обходимость идентифицировать, повторно вызывать, изменять эле- менты изображения на экране и манипулировать с ними. Решение этих задач привело к необходимости разрабатывать информацион- ные модели, т. е. разрабатывать удобные описания графических объектов, выводимых на экран дисплея. Обособленный участок 267
памяти фиксированной длины, в котором описан конкретный гра- фический элемент или объект, называется блоком данных этого графического элемента или объекта. Рассмотрим блок данных, описывающий различные типы треугольников, которые изобража- ются на экране в векторном режиме (табл. 6.1). Здесь О-строка-идентификатор объекта, описанного в блоке дан- ных. В нашем случае — это «треугольник»; 1-я строка — коорди- наты начальной (опорной) точки изображаемого объекта; 2, 3, 4-я строки — векторное представление 1, 2, 3-й сторон треугольника, заданное в виде приращения по осям X и У, и параметр луча «включено-выключено»; 5-я строка — дополнительная информация о объекте. Это может быть любая необходимая информация, в том числе и АЦИ. Каждый блок данных имеет свой адрес, по которому он отыс- кивается в ЭВМ. Адрес блока данных —это адрес его первого слова в оперативной памяти в Таблица 6.1 ЭВМ. Записав в памяти ЭВМ все Вид блока данных Идентификатор блока — тре- угольник 1 2 3 4 5 Хо, Уо 71, АХЪ АУ1 /2, ах2, ау2 73, АХ3, А У3 Яркость и т. п блоки данных, описывающие гра- фические объекты, зная размер каждого из них и адрес первого блока, отыскивается необходимый блок данных. Однако такой поиск требует больших временных за- трат. Зачастую необходимо один и тот же блок вызывать несколь- ко раз в разные моменты работы ГСП. Во многих случаях оператор, начиная работу, не знает всех зависимостей и связей между элементами модели, неизвестны ему и размеры самой модели. Эти данные появляются в процессе ре- шения. Поэтому, формируя блоки данных, оператор отводит для них завышенный объем памяти. Стремление более гибко формиро- вать и анализировать модель графического объекта привело к со- зданию сложных структур данных. Сложной структурой данных (ССД) называют совокупность объектов, каждый из которых сопровождается своим блоком дан- ных, а соотношения между объектами заданы в явной форме. В ССД сами объекты задаются блоками данных и представляют со- бой основной предмет моделирования, а основные соотношения между объектами задаются с помощью указателей. Указатель — это слово, находящееся в специальном месте блока данных и со- держащее адрес блока данных, связанного с этим блоком. Наибольшее распространение в ГСП нашли ассоциативные и иерархические формы организации ССД. Ассоциативную форму ССД удобно использовать для указания объектов с похожими свойствами, описанных блоками данных, разбросанными по раз- личным участкам памяти ЭВМ. Тогда ассоциативная форма ССД позволяет быстро отыскивать все объекты с одинаковыми свой- ствами. 268
Иерархическая форма ССД используется тогда, когда между объектами существуют отношения иерархического типа, например ячейка ТЭЗ, стойка. Каждый блок данных иерархической ССД содержит три указателя: первый указатель содержит адрес блока данных, связанный с данным и расположенный на более высоком уровне; второй — на более низком; а третий — адрес блока дан- ных, расположенный на том же уровне. 6.4. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ГРАФИЧЕСКОЙ СИСТЕМЫ ПРОЕКТИРОВАНИЯ Выше были рассмотрены аппаратные средства и структуры данных ГСП. Рассмотрим программное обеспечение (ПО) этих си- стем. Важной задачей ПО ГСП является передача данных между прикладными программами и аппаратурой дисплея. Прикладные программы могут формировать выходную информацию или не- посредственно в форме команд для дисплея, или созданием неко- торых наборов данных. Та часть ПО ГСП, которая предназначена для работы с аппаратурой дисплея, должна приводить описание изображения к виду, удобному для обработки схемой управления дисплеем. Программное обеспечение ГСП должно обладать спо- собностью определять вид и характер отображаемой информации. При разработке ПО ГСП решаются две основные задачи: раз- работка и использование процедур отображения и выбор языка программирования. Смысл процедур (программ) отображения раз- берем на примерах. Предположим, что программа анализирует схемы, которые со- держат резисторы. Она будет содержать процедуру RESISTOR^ которая рисует на экране дисплея резистор. Процедура описывает резистор концами линий. Описание зависит от выбранного языка программирования и подобно следующему примеру: DEFINE RESISTOR LINE FROM (0,0) TO (20,0) TO (30, 10) TO (50, 10),.TO (70, 10) TO (10, 10) TO (100, 0) TO (120,0) END RESISTOR После выполнения подобной процедуры на экране дисплея будет получен рисунок резистора. Описание более сложного изображения, например фильтра,, содержащего в своем составе резисторы и конденсаторы, состав- ляет процедура FILTRA, которая по мере надобности вызывает процедуры RESISTOR и CAPACITOR. (Процедура CAPACITOR аналогична процедуре RESISTOR и служит для вывода на экран дисплея изображения конденсатора.) |Пример .процедуры FILTRA: DEFINE FILTRA CAPACITOR AT (0,120) 269
CAPACITOR AT (120, 120) RESISTOR—ROTATED (Pi/2) AT (120, 0) LINE FROM (0, 0) TO (240, 0) CIRCLE SCALE (0, 1) AT (0, 120) CIRCLE SCALE (0, 1) AT (0, 0) CIRCLE SCALE (0, 1) AT (240, 120) CIRCLE SCALE (0, 1) AT (240, 0) END FILTRA Язык программирования, на котором пишется прикладная про- грамма, состоящая из процедур, должен быть пригодным как для программирования прикладных задач, так и для управления гра- фическими устройствами. Это означает, что в языке должны быть развитые средства общего назначения, что обеспечивается языка- ми программирования высокого уровня общего назначения, кото- рые расширяют средствами для работы с графическими устройст- вами. Вид расширений и способы их реализации и использования зависят от вида графических устройств и способа использования их в ГСП. В простейших случаях ограничиваются введением паке- та процедур работы с графическими устройствами, написанных по правилам синтаксиса выбранного языка программирования. Вызов процедур осуществляется так, как это принято в выбранном язы- ке программирования. Работа ПО ГСП основана на проведении диалога между прог- раммами и оператором посредством дисплея. Поэтому при состав- лении ПО ГСП необходимо описать форму диалога, а именно со- ставить входной язык и обеспечить в программе обработку его инструкций. Эту задачу можно решить как с помощью любых язы- ков высокого уровня общего назначения, так и с помощью специ- альных диалоговых языков. Процесс проектирования ГСП состоит из четырех этапов: спецификация объектов проектирования; системное проектирование (выбор компонентов системы); детальная разработка компонентов и связей; оценка возможностей системы. Обычно эти этапы выполняются последовательно, но резуль- тат, полученный на любом этапе, может потребовать изменения предыдущих решений. Процесс проектирования ГСП состоит из иерархических уровней. На верхних уровнях иерархии рассматри- вают требования пользователя, определяют внешние параметры системы. На следующем этапе выбирают компоненты системы, которые смогут обеспечить заданные внешние параметры. При этом составляют более детальную схему ГСП. После этого проек- тируются все специальные устройства системы. В результате вы- полнения этого этапа формируется структура системы, определя- ется перечень используемых аппаратных и программных средств, включая выбранную ЭВМ, устройства ввода-вывода графической 270
информации, структуры данных и описание дисплея. После того как установлена конфигурация системы, выполняется проектирование компонентов и связей, т. е. выполняется детальный проект систе- мы. На последнем этапе процесса проектирования выполняется оценка всей системы. На этом этапе конструктор оценивает общие параметры системы, увязывает оставшиеся нерешенные проблемы согласования различных частей системы. На этом этапе конструк- тор решает следующие три основные задачи: определяет способ- ность аппаратных средств и программного обеспечения выполнять поставленную задачу; оценивает время, занимаемое аппаратными и программными средствами ГСП на выполнение поставленных задач в интерактивном режиме; оценивает стоимость системы. Рассмотрим, например, работу типичной ГСП. Оператор вводит световым пером в ЭВМ данные об элементах и подложке проекти- руемого устройства, принципиальная схема которого находится перед ним. Подложка изображается на экране, и на ней размеща- ются чертежи стандартных элементов, которые вызываются ив библиотеки. Затем, используя программные средства системы, опе- ратор выполняет соединение элементов. При этом оператор может стирать и переносить элементы, уменьшать и увеличивать изобра- жение, записывать новые фрагменты схемы в библиотеку. Резуль- таты проектирования записываются на магнитную ленту (МЛ). Информация на МЛ обрабатывается на ЭВМ, и формируется пер- фолента для чертежной установки, на которой можно получать и трафареты, и необходимые чертежи. В ГСП используется дисплей с круглым экраном. Его цент- ральная часть — это квадрат. Область слева используется для изо- бражения знаков совмещения и установки. Область экрана справа используется для ввода кодов операций двух основных классов: вспомогательных и основных. (К этим операциям относятся: под- счет общего числа отрезков прямых, перемещение контура, стира- ние на экране фрагмента и ввод в ЭВМ идентификаторов элемен- тов схемы, ввод в ЭВМ размеров .и параметров подложки, опера- ции точной доводки резистора и т. д. соответственно.) В нижней части экрана при необходимости воспроизводится необходимая алфавитно-цифровая информация, а в верхней части экрана изоб- ражаются таблицы, списки элементов схем и т. д. Работа с дис- плеем осуществляется с помощью светового пера и клавиатуры. Все программное обеспечение системы, в том числе и программы,, реализующие «графическую» часть, т. е. работу с дисплеем, хра- нятся на магнитных дисках и при необходимости вызываются в оперативную память. На магнитных дисках хранится и библиоте- ка стандартных решений. В системе проектирования трафаретов обычно используются сложные структуры данных списочного типа, как, например, пока- зано на рис. 6.10. Каждый блок на рисунке соответствует метке или линии. Стрелки, идущие слева направо,— прямые указатели— показывают связь меток и линий между собой. Стрелки, идущие в обратном направлении,— обратные указатели—служат для объе- 271
динения линий в один элемент. Линии L1—L4 образуют резистор, a L5—L6 — связи резистора, R5 — идентификатор резистора. Каж- дый блок данных имеет свой код. По этому коду в ЭВМ отыски- вается блок данных. Рис. 6.10. Пример ССД списочного типа Описанная ГСП предназначается для изготовления гибридных микросхем. В результате работы системы получается полный набор трафаретов для изготовления микросхем, изготовляемых с помо- щью графического дисплея. Система позволяет как проводить лроцесс проектирования, так и вводить с помощью пульта ввода- вывода графическую информацию о принципиальной схеме в ЭВМ. Можно отметить, что ГСП — это комплекс средств ввода-вы- вода графической информации, а устройство отображения графи- ческой информации — это графический дисплей. Комплекс техни- ческих средств объединен устройствами связи и управляется ЭВМ в соответствии с ПО ГСП. Широкие возможности при проектиро- вании ГСП предоставляет комплекс технических средств АРМ. Наличие в АРМ ГД, УВВГИ, управляемых мини-ЭВМ, возмож- ность стыковки АРМ и ЕС ЭВМ, позволяют конструктору уделить максимум внимания на разработку программного обеспечения ГСП. 272
В настоящее время известно большое количество УВВГИ, ГД и ЭВМ, которые можно применять в ГСП. При выборе конкретно- го устройства необходимо руководствоваться не только техниче- скими возможностями аппаратуры, но и ее стоимостью. При про- ектировании ГСП необходимо помнить, что, какой бы «хорошей»- не оказалась система, она будет лишь периферийным устройством, используемым ЭВМ и предназначенным для ввода-вывода графи- ческой информации. Так будет до тех пор, пока ГСП не станут главным фактором при проектировании структур самих ЭВМ. На- иболее сложным при проектировании ГСП является выбор той части решаемой задачи, которую наиболее эффективно решать в интерактивной системе. 6.5. КОНТРОЛЬНЫЕ ВОПРОСЫ И ЗАДАНИЯ 1. Приведите структурную схему итерационного процесса проектирования. 2. Какие устройства используются для внесения изменений в процесс про- ектирования? 3. Какие системы проектирования называются графическими? 4. Перечислите аппаратуру, входящую в состав Г|СП. 5. По каким путям может пойти развитие ГСП в будущем? 6. Приведите структурную схему дисплея. 7. Приведите структурную схему ГСП, использующую графические дис- плеи. 8. Опишите точечный режим работы дисплея и приведите схему такого ре- жима. 9. Какой вид имеет дисплейное слово при точечном режиме работы дис- плея? 10. Приведите структурную схему, вид дисплейного слова при векторном режиме работы дисплея. 11. Какие другие режимы работы дисплея вы знаете? Какой вид имеют дисплейные слова в соответствующих режимах? 12. Приведите основные характеристики работы дисплеев. 13. Какие специальные виды дисплеев вы знаете? 14. Что называется блоком данных графического элемента? 15. Приведите пример блока данных. 16. Опишите структуры данных в ГОП. 117. Что представляет собой сложная структура данных? 18. Опишите применение ассоциативной и иер архи ческой формы организа- ции ССД. 19. Что представляет собой ПО ГСП? 20. Приведите примеры, иллюстрирующие работу ПО ГСП. 21. Опишите этапы проектирования ГОП. 22. Приведите примеры работы типичной ГОП. 23. Дайте описание ССД списочного типа. Приведите примеры. 24. Приведите структурную схему ГСП, работающую в интерактивном ре- жиме, которую можно будет применять для создания ЭА пятого и последую- щих поколений. ЗАКЛЮЧЕНИЕ В связи с совершенствованием электронной аппаратуры проис- ходит непрерывное совершенствование теории и практики автома- тизации конструирования. В этой связи рассмотрим некоторые тенденции развития автоматизации конструирования электронной аппаратуры. 273
Предполагается, что в будущем еще более возрастут темпы автоматизации разработки новых средств РЭА и ЭВА на основе комплексных САПР. Причем основное внимание будет уделено разработке модульных САПР, способных настраиваться на реше- ние любых задач, принимать решения в расплывчатых условиях, анализировать техническое задание, производить выбор из не- скольких альтернативных вариантов, производить оптимизацию конструкции ЭА по комплексным критериям, учитывать требова- ния на механическую прочность, тепловые режимы, электромаг- нитную совместимость, оптимально анализировать электронные схемы и синтезировать конструкции, производить совместное про- ектирование, учитывая требования логического, конструкторского и технологического проектирования. Основными теоретическими вопросами при разработке матема- тического обеспечения САПР ЭА, по мнению авторов, явятся: ис- следование оптимальных графо-теоретических моделей конструк- ций ЭА; назначение элементов, контактов схем; совместная ком- поновка с размещением на основе комплексных критериев; опре- деление планарности и эффективная плоская укладка соединений; оптимальное расслоение соединений; параллельная трассировка соединений. В настоящее время наблюдается стремление к универсализа- ции алгоритмов конструирования, разработке совместных контро- лепригодных алгоритмов компоновки, размещения и трассировки, построению точных алгоритмов конструирования на основе поис- ковых методов, одновременному учету физических и топологиче- ских особенностей схем, построению алгоритмов конструирования на основе комплекса базовых подалгоритмов, разработке специа- лизированных приставок для быстрой реализации наиболее трудо- емких алгоритмов конструирования, разработке новых формаль- ных и адекватных математических моделей схем ЭА. Конструктор ЭА будущих поколений должен обладать знания- ми в области вычислительной техники, программирования, теории алгоритмов, графов, множеств, быть способным разрабатывать и эксплуатировать системы автоматизированного проектирования. Перечисленные в учебном пособии проблемы конструирования ЭА, конечно, не охватывают весь комплекс задач, стоящий перед современным конструктором, использующим вычислительную тех- нику, но они показывают, что возможности повышения эффектив- ности и качества ЭА на основе автоматизации неисчерпаемы. Конструирование и производство ЭА будущих поколений на основе автоматизации является универсальной специальностью будущего.
СПИСОК ЛИТЕРАТУРЫ Основная литература 1. Деньдобренко Б. Н., Малика А. С. Автоматизация конструирования РЭА.— М.: Высшая школа, 1980. — 384 с. 2. Кузнецов О. П., Адельсон-Вельский К. М. Дискретная математика для ин* женера. — М.: Энергия;, 1980. — 344 с. 3. Мелихов А. Н., Берштейн Л. С., Курейчик В. М. Применение графов для проектирования дискретных устройств. — М.: Наука, 4974. — ЗСЙ с. 4. Морозов К. К. и др. Методы разбиения схем РЭА на конструктивно закон* ченные части. — IM.: Сов. радио, 11978. — 1136 с. 5. Норенков И. П. Введение в автоматизированное проектирование технических: устройств и систем. — М.: Высшая школа, 1980. — 308 с. 6. Основы проектирования микроэлектронной аппаратуры/Под ред. Б. Ф. Вы* соцкого. — М.: Советское радио, 1977. — 3511 с. 7. Петренко А. И., Тетельбаум А. Я. Формальное конструирование электронно* вычислительной аппаратуры. — IM.: Сов. радио, 11979. — 256 с. 8. Селютин В. А. Машинное конструирование электронных устройств. •— М.: Сов. радио, 1977. — 384 с. 9. Сигорский В. П. Математический аппарат инженера. — Киев: Техшка, 1977. — 766 с. 10. Справочник конструктора РЭД, общие принципы конструирования/Под ред. Р. Г. Варламова. — М.: Сов. радио, 1980. — 478 с. II. Теория и методы автоматизации проектирования вычислительных систем/Под ред. М. Брейера. — М.: Мир, 4977. — 285 с. 12. Томашевский Д. И., Масютин Г. Г., Явич А. А., Преснухин В. В. Графиче* ские средства автоматизации проектирования РЭА.—М.: Сов. радио, 1980.— 244 с. Дополнительная литература 13. Абрайтис Л. Б., Шейнаускас Р. И., Жилевичус В. А. Автоматизация проекти- рования ЭВМ. — М.: Сов. радио, -1978. — 272 с. 14. Автоматизация поискового конструирования/Под ред. А. И. Половинкина. — М.: Радио и связь, 1981. — 344 с. 15. Алферова 3. В. Теория алгоритмов. — М.: Статистика, 1973. — 164 с. 16. Ахо А., Хопкрофт Дж., Ульман Дж. Построение и анализ вычислительных алгоритмов. — М.: Мир, 1979. — 536 с. 17. Базилевич Р. П. Декомпозиционные и топологические методы автоматизиро* ванного конструирования электронных устройств. — Львов: Вища школа,, изд-во при Львовском университете, 1981. — 168 с. 18. Баранов С. И., Майоров С. А., Сахаров Ю. П., Селютин В. А. Автоматиза- ция проектирования цифровых устройств. — Л.: Судостроение, 1979. — 264 с. 19. Батищев Д. И. Поисковые методы оптимального проектирования. — М.: Сов. радио, 1975. — 216 с. 20. Бахтин Б. И. Автоматизация в проектировании и производстве печатных плат радиоэлектронной аппаратуры. — Л.: Энергия, 1979. — 120 с. 21. Вентцель Е. С. Исследование операций. М.: Наука, 1980. — 2'08 с. 22. Автоматизация проектирования печатных блоков с модулями произвольной формы/Е. П. Герасименко и др. — М.: Машиностроение, 1979. — 167 с. 23. Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. — М.: Мир, .1981. — 366 с. 24. Жимерин Д. Г., Мясников Д. А. Автоматизированные и автоматические си- стемы управления. — М.: Энергия, 1979. — 592 с. 25. Карапетян А. М. Автоматизация оптимального конструирования ЭВМ. — М.: Сов. радио; 1973. — 452 с. 26. Комплекс общеотраслевых руководящих методических материалов по созда- нию АСУ и САПР. Государственный комитет СССР по науке и технике. — М.: Статистика, 1980. — 119 с. 275
%7. Конструирование и расчет БГИС, микросборок и аппаратуры на их осно- ве/Под ред. Б. Ф. Высоцкого. — М.: Радио и связь, 1981. — Шб с. 28. Кристофидес Н. Теория графов. — М.: Мир, 1978. — 432 с. 29. Кузин Л. Т. Основы кибернетики. Т. 2. — М.: Энергия, 1979. — 584 с. 30. Курейчик В. М. Автоматизация технического проектирования вычислитель- ных структур. — Электронная промышленность, 1979, вып. 4. 31. Майоров С. А., Смирнов А. А. ЭВМ — справочник по конструированию. — —> М.: Сов. радио, 1975. — 504 с. 32. Морозов К. К., Одинокое В. Г. Использование ЭЦВМ при конструировании некоторых узлов РЭА. — М.: Сов. радио, 1972. — 104 с. 33. Проектирование монтажных плат на ЭВМ/К. К. Морозов, А. Н. Мелихов, В. Г. Одиноков и др. <— М.: Сов. радио, 1979. — 224 с. 34. Нилсон Н. Искусственный интеллект. — М.: Мир, 1973. — 270 с. 35. Петренко А. И., Курейчик В. М. и др. Автоматизация проектирования боль- ших и сверхбольших интегральных схем. — Зарубежная радиоэлектроника, 1981, № 6. 36. Петренко А. И., Тетельбаум А. Я., Шрамченко Б. Л. Автоматизация конструи- рования электронной аппаратуры. — Киев: Вища школа, 1980. — 176 с. 37. Перснухин Л. Н., Шахнов В. А., Кустов В. А. Основы конструирования мик- роэлектронных вычислительных машин. — М.: Высшая школа, 1976. — 408 с. 38. Принс М. Д. Машинная графика и автоматизация проектирования. — М.: Сов. (радио, 1975. — 232 с. 39. Рейнгольд Э., Нивергельт Ю., Део Н. Комбинаторные алгоритмы. Теория и практика. —- М.: Мир, 1980ц — 478 с. 40. Рубцов В. П., Захаров В. П., Жижко В. А. Автоматизация проектирования больших интегральных схем. — Киев: Техшка, 1980. 1— 232 с. 41. Уокер Б. С., Гурд Дж. Р., Дроник Е. А. Интерактивная машинная графика.— М.: Машиностроение, 1980. — 168 с. 42. Шиханович Ю. А. Введение в современную математику. — М.: Наука, 1965. — 376 с.
ПРИЛОЖЕНИЕ СПИСОК ГОСТ, РЕКОМЕНДУЕМЫХ ДЛЯ ИСПОЛЬЗОВАНИЯ ПРИ ИЗУЧЕНИИ КУРСА «АВТОМАТИЗАЦИЯ КОНСТРУИРОВАНИЯ» 1. ГОСТ 18682—73. Микросхемы интегральные. Классификация и система ус- ловных обозначений. 2. ГОСТ 17021—75. Микросхемы интегральные. Термины и определения. 3. ГОСТ 2.113—75. Групповые и базовые конструкторские документы. 4. ГОСТ 20406—75. Платы печатные. Термины и определения. 5. ГОСТ 2.105—68. Общие требования к текстовым документам. 6. ГОСТ 2.108—68. Спецификация. 7. ГОСТ 2.117—71. Согласование применения покупных изделий. 8. ГОСТ 21033—75. Система «Человек—машина». 9. ГОСТ 22487—77. Проектирование автоматизированное. Термины и опреде- ления. 10. ГОСТ 23501.0—79. Системы автоматизированного проектирования. Основные положения. 11. ГОСТ 23501.7—80. САПР. Предпроектные (исслвдования. 12. ГОСТ 23501.2—79. Системы автоматизированного проектирования. Разра- ботка, согласование и утверждение технического задания. 13. ГОСТ 23501.5—80. Системы автоматизированного проектирования. Эскизный проект. 1'4. ГОСТ 23501.6—80. Системы автоматизированного проектирования. Техниче- ский проект. 15. ГОСТ 23501.4—79. Системы автоматизированного проектирования. Общие требования к программному обеспечению. 16. ГОСТ 23501.9—80. Системы автоматизированного проектирования. Общие требования к банкам данных. 17. ГОСТ 23501.8—80. Системы автоматизированного проектирования. Клас- сификация и о б о з и а ч е н и я. 48. ГОСТ 2.413—72. Единая система конструкторской документации. Правила выполнения конструкторской документации изделий, изготовляемых с при- менением электрического монтажа. 19. ГОСТ 2.708—72. ЕСКД. Правила выполнения электрических схем цифровой вычислительной техники. 20. ГОСТ 2.031.—77. ЕСКД. Документы на перфокартах и перфолентах. Основ- ные надписи. 21. ГОСТ 19001—77. Единая система программной документации. Назначение, состав, классификация. 22. ГОСТ 19002—80. Схемы алгоритмов и программ. Правила выполнения. 23. ГОСТ 19003—80. Схемы алгоритмов и программ. Обозначения условные, графические. 24. ГОСТ 23501.15—81. Системы автоматизированного проектирования. Ввод в действие. 25. ГОСТ 23501.16—81. Системы автоматизированного проектирования. Диалого- вые средства. Общие требования. 26. ГОСТ 19105—78. ЕСПД. Общие требования к программным документам. 21. ГОСТ 19106—78. ЕСПД. Требования к программным документам, выполнен- ным печатным способом. 28. ГОСТ 23501.3—79. Системы автоматизированного проектирования. Разработ- ка, согласование, утверждение технического предложения. 29. ГОСТ ^501.1—79. Системы автоматизированного проектирования. Стадии создания.
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Автоматизированное рабочее место (АРМ) 2611; Алгоритм 42 — бихевиористический 56 — волновой J1I99 — гибкой трассировки 210’3 — граф-схем а 5'2 — детерминированный 49 — идентификации 56 — канальной трассировки 225 — Краскала 7-0 —> линейного размещения графа 172 — логическая схема 51, 128 — локальной модифицированной рас- краски 137 — лучевой 210S2 — недетерминированный 49 — порождения 56 — построения максимально полных подграфов 136, 188 — принятия решений 56 — разбиения последовательный 1113, 4И8, Г2Ю, 1219 ---использующий метод ветвей и границ ГГ4 ---итерационный 113, 139,148,153 — размещения, основанный на мето- де ветвей и границ 168, 190 ---последовательный 160 ---последовательно-итерационный 161' ---итерационный 160, 166, 196 — - расплывчатый 55, 56 — структурная схема 58 — Флери 66 Вершина 58 — запрещенная 11211 — фиксированная 175 — । локальная степень 63, 1418 — раскраска 73, 75 — смежная 59, 116, 144 Вложение изоморфное 80 В ыСк аз ыв ание 27 Гиперграф 87, 89, 90, 1127, 153 Граф 57, 90 — двудольный 75, 89, 211 — дополнение 63 — изоморфный 78, 82 — конечный 62 — неориентированный 59 — неэйлеров -66 — нуль 621 — ориентированный 58 — планарный 81, 9’2. 205 — плоский 811 — полный 62 — двудольный 75 — полуэйлеров 66 — расплывчатый 90 — регулярный 63 — связный 65, 84, 207 — смешанный 58 — толщина 83 График '312 Декартово произведение 31 Дерево 68, 73, 89, 94 — покрывающее 69, 214 — решений 99 Дизъюнкция 27, 126 Дисплей 260 Документация конструкторская и технологическая 247 Закон: ассоциативности 30 дистрибутивности 30 идемпотентности 30 коммутативности 30 Моргана 30 Импликация 28 Инверсия отношения 34 Класс эквивалентности 35 Клика 78 Кодировщик 250 Компонента связности 65, 73 Компоновка 109 Конъюнкция 27, 106, Г38 Координатограф 248 Коэффициент: весовой 15|9 перестановочный 143, 154 Лес 69 Маршрут 63, 84 Массив квазиминимальный 134 — минимальный 129, 134 Матрица: геометрии 72, 16 инцидентности 61, 85, 86 отклонений 188 пересечений 191 расстояний 70 смежности 60, 466, 148, 180 цепей 92, 1'23, 217 Машина Тьюринга 45 Метод ветвей и границ 98 — случайных назначений 155 Микросхема интегральная 8, 9, 230, 233 Множество: бесконечное 25 конечное 25 одноэлементное 26 пустое 26 278
•разбиение 812 разделяющее 66 расплывчатое 89 Моют 66 Мультиграф 59, 73, 93, 146, 169 Неорграф 59, 85, 2107 Обеспечение информационное 13 Объединение множеств 2'8 Оператор 2134, 242, 244 — алфавитный 43 Операция: ветвления 98 отсечения 98 Орграф 58, 84, 92, 96 Отношение 33 — антирефлексное 35 — антисимметричное 35 — нерна1венютва 33 — полное 33 — пустое 33 — равенства 3'3 — рефлексное 35 — симметричное 35 — транзитивное 315 — эквивалентности 35 Отрицание 27 Переменные 233, 236 Пересечение множеств 29 Плоскость монтажная 1159 Подграф максимально связный 85 Подмножество 26, — внутренне устойчивое 136 — независимое 76 Позиция 158 Поиск 95, 97 Покрытие 32, 1114 Прогр аммирование: .динамическое 104 линейное 103 математическое 1Ш, 109 нелинейное 104 целочисленно1е 1117 Проектирование 15, 7 Путь 84 Разбиение 94, 99, Г1Ю, 1115 — коэффициент *1|1(1 — неупорядоченное 1’1.1 — поэлементное 4113 — 1 упорядоченное 1111 — целое Ц13 Размещение 158, Г70 Разность множеств 29 Ребра 58 — инцидентные 59, 116, 178, 1’8'2 — кратные 59 Сетка 158, 1(63, 182 — координатная 71' Система автоматизированного проек- тирования (САПР) 111, 14 — графического проектирования (ГСП) 261 — интерактивная 231, 244 — классическая 1(5. Соответствие 36—38 Суграф 63, 2015 — плоский 2111 Схема соединений 90 Трассировка 197 — двухслойная 213 — многослойных печатных плат 221 Функция 38 — биективная 38 — инъективная 88 — оценочная 98 — сюръективная 38 — целевая 1127, 1611, 196 Цепь 65, 70 Цикл 65, 187, 196, 208, 214 — гамильтонов 67, 69, Г78, 186, 205 — простой 65 — эйлеров 66, 69 Число внутренней полноты 78 — устойчивости 75, 76 — пересечений 182, 185, 209 — планарности 81, 209 — реберного соединения 1 НО — хроматическое 74 — цикломатическое 73 Эквивалентность 28
ОГЛАВЛЕНИЕ Стр, Предисловие..................................... . . . . 3 Введение........................................................... 5 1. Общие вопросы автоматизации проектирования и конструирования 7 1J1I. Этапы автоматизации проектирования и конструирования ... 7 1.2. Задачи построения систем автоматизированного проектирования . . 10 1.3. Контрольные вопросы и задания....................................2,5 2. Математические методы, используемые в системах автоматизации кон- струирования .........................................................25 2.1. Основные понятия теории множеств..................................25 2.2. Элементы теории алгоритмов........................................42 2.3. Элементы теории графов и гиперграфов........................ . 57 2.4. Методы математического программирования при автоматизации кон- струирования ................................................. 94 2.5. Контрольные вопросы и задания.................................106 3. Алгоритмическое конструирование схем...........................109 3?1/. Компоновка......................................................109 3.2. Размещение элементов графа схемы на плоскости..................158 3.3. Трассировка соединений........................................... 197 3.4. Контрольные вопросы и задания..................................2129 4. Проектирование топологии и фотошаблонов интегральных микросхем 230 4.1. О проектировании топологии интегральных микросхем .... 230 . 4.2. Этапы, получения фотошаблонов интегральных микросхем . . . 23'2 4.3. Контроль топологии............................................239 4.4. Контрольные вопросы и задания.................................246 5. Вопросы выпуска конструкторской и технологической документации 247 5.1. Основные требования при выпуске конструкторской и технологической документации.......................................................247 5.2. Средства машинной графики.....................................248 5.3. 'Проектирование и выпуск текстовой и графической конструкторско- технологической документации.........................................256 5.4. Контрольные вопросы и задания....................................259 6. Аппаратные средства связи конструктора и ЭВМ ...... 260 6.1. Общие положения..................................................260 6.2. Дисплеи......................................................... 261 6.3. Структуры данных . . 267 6.4. Программное обеспечение графической системы проектирования . . 269 6.5. Контрольные вопросы и задания.............................. . 273 Заключение •..........................................................273 Список литературы.....................................................275 Основная литература .................................................. 275 Дополнительная литература.............................................275 Приложение. Список ГОСТ, рекомендуемых для использования при изучении курса «Автоматизация конструирования»....................277 Предметный указатель...................................... 278