Научная статья на тему 'Покрытие схем вычислительных устройств блоками унифицированного набора'

Покрытие схем вычислительных устройств блоками унифицированного набора Текст научной статьи по специальности «Математика»

CC BY
43
8
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — В К. Погребной

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Покрытие схем вычислительных устройств блоками унифицированного набора»

Том 211

ИЗВЕСТИЯ

ТОМСКОГО ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА

1970

ПОКРЫТИЕ СХЕМ ВЫЧИСЛИТЕЛЬНЫХ УСТРОЙСТВ БЛОКАМИ УНИФИЦИРОВАННОГО НАБОРА

В. к. ПОГРЕБНОЙ

(Представлена научно-техническим семинаром НИИ АЭМ при ТПИ)

Одной из наиболее важных задач, возникающих при проектировании и практическом использовании унифицированного набора блоков (УНБ), является задача оптимального покрытия схем данными блоками [1].

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

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

Представим информацию о ТС, содержащихся в блоках набора в виде матрицы А ~ \\ац\\ размерностью где Ш — количество видов ТС,

содержащихся в УНБ, а Н — количество блоков в наборе. Элемент матрицы а-и характеризует количество ТС ¿~го вида в /-ом блоке.

Припишем к матрице А вектор-столбец В = {Ь1У Ьг,. . . состав-

ляющие которого Ь1 характеризуют количество ТС ¿-го вида в рассматриваемой схеме.

Определим переменную х^ как количество блоков /-го вида необходимых для покрытия рассматриваемой схемы.

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

н

Р: (1)

н

при условиях V аихя ^ Ь^ 1 = 1, 2, Н, (2)

/= 1

Хз^О, ]= 1, 2, . . ,Н, (3)

X] — целое число для всех /. (4)

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

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

Возникающие при этом нулевые столбцы также исключаются из матрицы.

Сокращенная таким образом матрица анализируется на возможность поглощения одних блоков (столбцов) другими. Введем следующие обозначения :

V?* — множество видов ТС, содержащихся в рассматриваемой схеме; А— множество видов ТС, содержащихся в /-ом блоке; А] = [}А]} — множество видов ТС /-го блока, соответствую-

щих ненулевым компонентам вектора В.

В принятых обозначениях сформулируем условие поглощения р-го блока /-ым.

Если среди блоков, соответствующих столбцам сокращенной матрицы, найдутся два блока с множествами ТС А\ и Ар, такими, что соблюдаются условия

А*р еА - , (5)

для всех (6)

то следовательно /-ый блок поглощает р-ый. Поглощенный р-ый блок исключается из сокращенной матрицы.

Укажем правило, которое позволяет ускорить процесс поглощения. Введем функцию — определенную на множестве блоков х^

Значение функции на каждом /£// определяется следующей формулой:

У*аи й{

= Щг-— ' (7)

¡еАз

где — количество логических элементов в ¿-ой ТС. Величина бограничена значениями Для блоков с — 1 справедливо А] ~ А^ Очевидно, что блоки с = 1 поглощаться не могут, так как УН Б не содержит блоков с одинаковыми комбинациями ТС.

Правило поглощения блоков в сокращенной матрице состоит в следующем. Выбирается блок с максимальным значением 6у и последовательно для всех блоков с проверяются условия (5), (6). Если данные условия выполняются для некоторого блока, то такой блок (столбец) исключается из матрицы.

Обозначим размерность полученной матрицы через т X п и последующие рассуждения будем вести относительно задачи максимизации линейной формы.

п

/V (8)

/ = 1 п

при X ац , 1 = 1,2, ш, (9)

/=1

х^О, /=1,2

:лое число для любого /,

(10) (11) (12)

Такая постановка задачи является более удобной в последующем рассмотрении и в то же врмя не ограничивает возможность использования полученных результатов к задаче Р.

Известно, что решение задач линейного программирования с наложением требования целочисленности связано со значительными трудностями. Поэтому представляется целесообразным, учитывая конкретные особенности рассматриваемой задачи, а именно, вид целевой функции (8) и дополнительное условие (12), построить более эффективный алгоритм ее решения.

Предположим, что дана задача линейного программирования, показанная на рис. 1.

Перед нами выпуклая область, удовлетворяющая условию задачи На рисунке также показаны изоцелевые линии. Оптимальное непрерывное решение такой задачи будет в точке (а). Если наложить условие целочисленности, то оптимальное решение будет в одной из точек Ь7 с, й. Причем безразлично, какая из этих точек взята в качестве решения, так как в каждой из них целевая функция принимает равные значения.

Определение 1. Совокупность целочисленных точек области допустимых решений в которых функция X принимает одинаковые значения, называется уровнем.

Из рис. 1 видно, что все целочисленные точки области ^ относительно фукнции 1 разбиваются на уровни. Если пронумеровать уровни, как это показано на рис. 1, то значение функции 2 совпадает с номером уровня, на одной из точек которого определена данная функция.

Определение 2. Максимальным уровнем йтах области Я называется уровень, содержащий хотя бы одну целую точку, которая удовлетворяет ограничениям задачи Рх и максимизирует функцию 1.

Решим задачу Р1 без наложения условия целочисленности, и пусть оптимальным решением является X — {х1} х2, . . ,хп}. Особый интерес -представляет окрестность данной точки, а именно, /г-мерный единичный куб, в котором она расположена. Важно выяснить, содержит ли данный куб целую точку, принадлежащую уровню птах. Рассмотрим данный вопрос в следующей последовательности. Предварительно определим единичный п-мерный куб, в котором содержится непрерывная точка. Далее в этом кубе найдем целочисленную точку, оптимизирующую функцию 1.

К\

Рис. 1.

Пусть решением задачи Р1 является точка X х2,. . . , хп}>

в которой хотя бы одна переменная является дробной. Предположим, что такой переменной является х}-к -г- 0<СР;К<1. где х!к целая часть

значения переменной х7-к в точке X.

__> .5 О

Покажем, что точка Хг^= {х\ , х2 , . . ,хп} лежит также в области Предположим, что точка Х'° лежит вне области В этом случае нарушается по крайней мере одно из ограничений (9). Пусть таким ограничением является ¿-ое. Тогда

п

I! аи х! -г аиу: хы >/;,-, N {1, 2, . . ,//},

п

кроме того имеем а^ х^^ф-^ , откуда следует, что должно выполняться

п п

У V

¡кеы

Выделим в правой части полученного неравенства /к-ую составляющую а^ Х}^ , тогда имеем

тг п

аи Хп. + аик х. > Ц аи х3 + х^ .

/=1 ь /=1 ¡к£Ы /ке^

Левые составляющие обеих частей неравенства равны между собой, так как изменению подвергалась только переменная х^ . Отсюда следует, что

аи X; >-а14 х4 , ,ук /к |ук 'к

подставляя в левую часть х! ~ — р^ , получим а^ — ) :> а0-г л:^. или р7- < а это противоречит тому, что р^. > Таким образом доказано, что точка Х° лежит в области 7?.

Пусть точка X = {х\ -+- б1? б2» • • >хп + ^п} является оптимальным решением задачи Рг без наложения требования целочисленности. Здесь Тогда в соответствии с приведенным выше доказательством точка

{х\

г} является целой и лежит в области Перенесем начало координат в данную точку и введем ограничения вида / = 1, 2, . . Имеем задачу максимизации линейной формы

п

Р2: I ^ = г , (13)

/'= 1

У

Лтт

х, - 0,1, / = 1, 2, . . (15)

при Ъаих^Ь:, 1 = 1,2,т, (14)

/= 1

п

где Ъ\ - Ъ{ — 5 аи х.

1

Полагаем, что задача Р2 решена одним из известных алгоритмов решения задач программирования с переменными, принимающими значения О или 1 [2). Полученное при этом целое решение X ^ {х°г . . ,х°} принад-

лежит к одному из уровней области например, к йтах, и соответствует целевой функции 1°. Необходимо определить, является ли уровень Н°тах максимальным уровнем области

Будем исследовать область У? на наличие целого решения X*, для которого . Предварительно заметим, что если выполняется условие — 2°с1, то решение Р2 является решением задачи Рх. Здесь 1° — соответствует решению задачи Рх без ограничения (11). Справедливость этого утверждения вытекает из целочисленности коэффициентов при переме.ных функции Ъ.

Сформулируем ограничения вида

Решим задачу линейного программирования Р', полученную из Рг заменой ограничений (9) на (16).

Очевидно, что оптимальное решение задачи Р' является Х°= {хх , х , . . и поэтому область определенная ограничениями (16),

может быть исключена из рассмотрения при исследовании области Заменим ограничения (16) задачи Р' на ограничения вида

*з<х] + и 1=-' и 2, . . (17)

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

получим задачу Р" с открытой областью допустимых решений Р!г.

Покажем, что множества допустимых целых решений Р' и Р'г совпадают.

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

откуда Т = Х}^ — х°. >>0.

х°. является целым, х^ — целое по предположению, поэтому Т — целое. Кроме того, справедливо + 1,

следовательно, Т = х* — х. <1,

к / _

но это противоречит тому, что Т — целое.

Таким образом, доказано, что множества допустимых целых решений Рг и Р" совпадают. Из этого следует, что решение задачи Р' является оптимальным решением и для задачи Р'\ поэтому при исследовании области Я область также может быть исключена из рассмотрения. Будем исследовать оставшуюся часть области Сформируем ограничение

х^х: +1 (18)

и припишем его к ограничениям (9) задачи Р1ш Исключив из нее условие целочисленности, получим задачу Р^

Значение целевой функции полученное при решении задачи Р^ проверим по условию

г^г3 г е, 0<е< 1. (19)

Теорема 1. Если условие (19) выполняется для всех то для задачи Рх значение целевой функции 1° является оптимальным.

Доказательство. Предварительно покажем, что решая задачу Р} для всех / — 1, 2, . . ,пу анализу подвергаются все решения в области за исключением

Предположим, что есть решение {х\, х*, . . , х*}, которое не явля-

ется допустимым ни для одной из задач Ру- и Р" и допустимо для задачи Рх.

Пусть решение X* не является допустимым для Рп, т. е. не удовлетворяется по крайней мере одно из ограничений (17), тогда

1, (20)

но это ограничение является замкнутой границей области Я] задачи Если к тому же оно удовлетворяет и (9) задачи Рто решение X* является допустимым решением задачи РОднако это противоречит исходному предположению. Остается принять, что решение X* не удовлетворяет ограничениям (9) и, следовательно, не является допустимым решением Рг. Таким образом, показано, что при решении задач Р^ / =1,2,.. ,/г исследуется вся область Я, за исключением

Решим одну из задач например Р^ , и пусть решением задачи является Хк = {х*, х*. . . х*}. Полученное значение целевой функции 1} представим суммой

где — целая часть 2,- .

/к •'к

Как было показано ранее, максимальный уровень, содержащий целое решение, не может превысить целую часть функции 2^ . Поэтому можно утверждать, что в области ^ нет целого решения Хк с соответствующим значением целевой функции большим 2^ , т. е. справедливо . Тогда также справедливо

2,- <2. + е . (21)

•Чч /К Х

Подставляя (21) в (19), имеем

к / к

откуда 2^ ^2%

т. е. область Я. не содержит целого решения, для которого значение це-

3 К

левой функции превышает достигнутое ранее 2°.

Распространив данные рассуждения на все RjJ / — 1, 2, . . получим, что значение целевой функции 2 является оптимальным для задачи что и требовалось доказать.

Рассмотрим случай, когда условие (19) нарушается, т. е. имеем 2;> 2° -- е. При этом может оказаться, что 2^2°, следовательно, возникает задача определения в п-мерном единичном кубе, в котором содержится оптимальное решение задачи Р].

Окрестность данного гиперкуба анализируется таким же образом, как и для исходного гиперкуба. При этом не исследуются области, которые удовлетворяли условию (19) в исходном гиперкубе, а также те, для которых непрерывное решение оказывается в исследованном ранее единичном гиперкубе.

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

Предположим, что в процессе анализа областей Rf для некоторого подмножества 5 условие (19) не удовлетворилось. Тогда для каждого /65 строится гиперкуб, содержащий непрерывное оптимальное решение задачи, и для него формируется и решается задача Р2. При этом формируется новое множество В это множество не заносятся решения, приводящие в анализированные ранее гиперкубы. На каждом последующем шаге условие (19) проверяется относительно максимального, достигнутого на предыдущем шаге, уровня.

Процесс продолжается до тех пор пока на некотором шаге окажется, что = 0. Целое решение, соответствующее максимальному уровню,

фиксируется и в соответствии с теоремой 1 является оптимальным решением задачи Р1.

Преимущество предлагаемого метода состоит в том, что задача дело-численного линейного программирования Рг сводится к задаче линейного программирования и задаче целочисленного программирования с нулевыми переменными.

ЛИТЕРАТУРА

1. Автоматизация некоторых этапов проектирования вычислительных устройств. Отчет по научно-исследовательской работе. Томск, ТПИ, 1969.

2. А. А. Корбут, Ю.Ю. Финкельштейн. Дискретное программирование. «Наука», М., 1969.

i Надоели баннеры? Вы всегда можете отключить рекламу.