Алгоритм покрытия схем разнотипными модулями

Рассмотрим решение этой задачи при условии, что каждый элемент схемы li реализуется элементом того же типа в модулях набора T. В качестве дополнительного критерия при компоновке примем число межмодульных соединений. Решение задачи разобьем на два этапа:

1) Определение необходимого числа модулей с минимальной суммарной стоимостью.

2) Минимизация числа связей между модулями.

а) Допустим, что каждый из модулей T содержит элементы одного типа k, тогда минимальное число модулей для покрытия схемы, определяющее и минимальную стоимость покрытия, равно

Алгоритм покрытия схем разнотипными модулями - student2.ru , (1.4)

где ак – число элементов в модуле Tk; bk – число элементов типа k в схеме; { } – символ ближайшего большого целого; xk – число использованных модулей типа k. Отметим, что для модулей с однотипными элементами получаем квадратную матрицу Алгоритм покрытия схем разнотипными модулями - student2.ru , причем ak = 0 при Алгоритм покрытия схем разнотипными модулями - student2.ru , и Алгоритм покрытия схем разнотипными модулями - student2.ru .

б) Практический интерес представляют наборы модулей с разнотипными элементами.

Пусть известны:

1) Библиотека типовых элементов, содержащая m типов интегральный микросхем (ИМС). Общее число типов элементов в ИМС библиотеки l. Тогда библиотеку зададим матрицей вида Алгоритм покрытия схем разнотипными модулями - student2.ru.

2) Электрическая схема узла, состоящая из соединения элементов одинаковых типов. Зададим схему вектором Алгоритм покрытия схем разнотипными модулями - student2.ru .

АЛГОРИТМ 1

1. Составить вектор Алгоритм покрытия схем разнотипными модулями - student2.ru количественного состава схемы по типам элементов: Алгоритм покрытия схем разнотипными модулями - student2.ru .

2. Упорядочить модули (микросхемы) Tk библиотеки по возрастанию их стоимостей:

Алгоритм покрытия схем разнотипными модулями - student2.ru Алгоритм покрытия схем разнотипными модулями - student2.ru .

3. Составить матрицу Алгоритм покрытия схем разнотипными модулями - student2.ru описания состава библиотеки в соответствии с их стоимостью; Алгоритм покрытия схем разнотипными модулями - student2.ru .

4. Выполнить поэлементное деление вектора Алгоритм покрытия схем разнотипными модулями - student2.ru на строку Алгоритм покрытия схем разнотипными модулями - student2.ru матрицы A:

Алгоритм покрытия схем разнотипными модулями - student2.ru для Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru .

5. Найти Алгоритм покрытия схем разнотипными модулями - student2.ru и на данном шаге использовать Алгоритм покрытия схем разнотипными модулями - student2.ru модулей типа k.

6. Найти вектор непокрытых элементов

Алгоритм покрытия схем разнотипными модулями - student2.ru , где Алгоритм покрытия схем разнотипными модулями - student2.ru ; Алгоритм покрытия схем разнотипными модулями - student2.ru .

7. Если элементы Алгоритм покрытия схем разнотипными модулями - student2.ru , перейти к Алгоритм покрытия схем разнотипными модулями - student2.ru , если Алгоритм покрытия схем разнотипными модулями - student2.ru , перейти к Алгоритм покрытия схем разнотипными модулями - student2.ru .

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

Алгоритм покрытия схем разнотипными модулями - student2.ru ( Алгоритм покрытия схем разнотипными модулями - student2.ru – определяет число итераций) и вычислить их суммарную стоимость: Алгоритм покрытия схем разнотипными модулями - student2.ru .

Конец.

ПРИМЕР 1.1

Пусть дана электрическая схема (рис.1.1), которая состоит из элементов типа t1, t2, t3, и t4 (рис.1.2). Существует библиотека ИМС Алгоритм покрытия схем разнотипными модулями - student2.ru (рис.1.3), причем их условные стоимости равны соответственно: Алгоритм покрытия схем разнотипными модулями - student2.ru ; Алгоритм покрытия схем разнотипными модулями - student2.ru ; Алгоритм покрытия схем разнотипными модулями - student2.ru ; Алгоритм покрытия схем разнотипными модулями - student2.ru ; Алгоритм покрытия схем разнотипными модулями - student2.ru условных единиц стоимости.

Требуется выполнить покрытие с минимальной стоимостью схемы на рис.1.1 набором микросхем из библиотеки рис.1.3.

Решение

Сосчитаем количество элементов каждого типа в схеме: Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru и составим вектор количественного состава: Алгоритм покрытия схем разнотипными модулями - student2.ru .

Для покрытия выберем микросхемы Алгоритм покрытия схем разнотипными модулями - student2.ru как наиболее дешевые. Алгоритм покрытия схем разнотипными модулями - student2.ru В необходимый набор не включаем, поскольку два Алгоритм покрытия схем разнотипными модулями - student2.ru из трех ее элементов реализуют функцию, которая отсутствует в схеме рис.1.1.

Упорядочим выбранные ИМС по возрастанию их стоимостей: T1, T2, T3 .

Составим матрицу описания состава ИМС библиотеки с учетом их стоимостей:

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Выполним поэлементное деление вектора Алгоритм покрытия схем разнотипными модулями - student2.ru на строку Алгоритм покрытия схем разнотипными модулями - student2.ru матрицы A. В делении участвуют только значащие числа, а в результатах делений учитываются только целые части

Алгоритм покрытия схем разнотипными модулями - student2.ru .

В результате для ИМС Алгоритм покрытия схем разнотипными модулями - student2.ru имеем Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru .

Берем min из значащих чисел {2, 4}: Алгоритм покрытия схем разнотипными модулями - student2.ru . Следовательно, для покрытия схемы назначаем 2 шт. ИМС Алгоритм покрытия схем разнотипными модулями - student2.ru . Формируем строку Алгоритм покрытия схем разнотипными модулями - student2.ru .

Находим вектор непокрытых элементов Алгоритм покрытия схем разнотипными модулями - student2.ru . Для этого из вектора Алгоритм покрытия схем разнотипными модулями - student2.ru поэлементно вычитаем удвоенную строку – Алгоритм покрытия схем разнотипными модулями - student2.ru

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Далее выполним аналогичные действия для ИМС Алгоритм покрытия схем разнотипными модулями - student2.ru , стоимость которой Алгоритм покрытия схем разнотипными модулями - student2.ru .

Алгоритм покрытия схем разнотипными модулями - student2.ru

Рис. 1.1

Алгоритм покрытия схем разнотипными модулями - student2.ru

Рис. 1.2

Алгоритм покрытия схем разнотипными модулями - student2.ru

Рис. 1.3

Вектор Алгоритм покрытия схем разнотипными модулями - student2.ru поделим поэлементно на строку Алгоритм покрытия схем разнотипными модулями - student2.ru :

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Значащими в результате деления будут Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru . Минимум из них Алгоритм покрытия схем разнотипными модулями - student2.ru , поэтому для покрытия схемы назначаем 1 шт. Алгоритм покрытия схем разнотипными модулями - student2.ru .

Определяем вектор непокрытых элементов Алгоритм покрытия схем разнотипными модулями - student2.ru :

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Произведем покрытия оставшихся элементов ИМС Алгоритм покрытия схем разнотипными модулями - student2.ru , так как Алгоритм покрытия схем разнотипными модулями - student2.ru . Поделим вектор Алгоритм покрытия схем разнотипными модулями - student2.ru поэлементно на строку Алгоритм покрытия схем разнотипными модулями - student2.ru :

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Поскольку Алгоритм покрытия схем разнотипными модулями - student2.ru , Алгоритм покрытия схем разнотипными модулями - student2.ru , получим Алгоритм покрытия схем разнотипными модулями - student2.ru , и для покрытия схемы назначаем 1шт. Алгоритм покрытия схем разнотипными модулями - student2.ru .

Вектор непокрытых элементов Алгоритм покрытия схем разнотипными модулями - student2.ru будет:

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Поскольку Алгоритм покрытия схем разнотипными модулями - student2.ru , вновь выполним покрытие самой дешевой ИМС Алгоритм покрытия схем разнотипными модулями - student2.ru . Поделим Алгоритм покрытия схем разнотипными модулями - student2.ru на строку Алгоритм покрытия схем разнотипными модулями - student2.ru :

Алгоритм покрытия схем разнотипными модулями - student2.ru .

Алгоритм покрытия схем разнотипными модулями - student2.ru . Назначаем еще 1 шт. Алгоритм покрытия схем разнотипными модулями - student2.ru . Вектор непокрытых элементов Алгоритм покрытия схем разнотипными модулями - student2.ru :

Алгоритм покрытия схем разнотипными модулями - student2.ru

Наличие отрицательного элемента (-2) в Алгоритм покрытия схем разнотипными модулями - student2.ru указывает на избыточность двух элементов Алгоритм покрытия схем разнотипными модулями - student2.ru в покрывающих ИМС. Итак, процесс покрытия закончен. В итоге получили 3 шт. Алгоритм покрытия схем разнотипными модулями - student2.ru , 1 шт. Алгоритм покрытия схем разнотипными модулями - student2.ru и 1 шт. Алгоритм покрытия схем разнотипными модулями - student2.ru . Коэффициент покрытия схемы G = 11/5 = 2,2.

Результаты расчетов сведены в табл.1.1. В скобках указано число элементов (по типам) в исходной схеме рис.1.1.

Таблица 1.1

Тип микросхемы Число микросхем Число элементов Всего
Алгоритм покрытия схем разнотипными модулями - student2.ru Алгоритм покрытия схем разнотипными модулями - student2.ru Алгоритм покрытия схем разнотипными модулями - student2.ru Алгоритм покрытия схем разнотипными модулями - student2.ru
Алгоритм покрытия схем разнотипными модулями - student2.ru
Алгоритм покрытия схем разнотипными модулями - student2.ru
Алгоритм покрытия схем разнотипными модулями - student2.ru
Всего 7(5) 4(4) 1(1) 1(1) 13(11)

Наши рекомендации