Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO
§ 3. Задачи логического проектированияВ самые последние годы для моделей дискретного программирования наметилось одно совершенно новое поле приложений. Речь идет о довольно разнообразном круге задач оптимизации, связанных, с одной стороны, с вопросами проектирования логических и вычислительных устройств, а с другой — примыкающих к некоторым современным проблемам теоретической кибернетики (прежде всего — дискретного анализа). В этом параграфе описаны некоторые характерные постановки задач такого рода. 3.1. Рассмотрим задачу о расположении производственных единиц. Пусть имеется Отметим, что, не умаляя общности, можно положить Нашей целью является назначение (закрепление) центров по местам, минимизирующее суммарные затраты. Каждое такое назначение представляет собой перестановку в место
Иногда в подобных задачах накладывается следующее дополнительное требование: каждый центр
В случае независимости производственных центров Модель (3.1) -(3.2) имеет весьма широкие практические приложения, отражая существенные черты многих современных задач проектирования. Так, она может быть использована в вопросах планирования расстановки оборудования в цехах машиностроительных или химических предприятий. С другой стороны, она же может найти применения для задач о проектировании расположения деталей в ячейках вычислительных и управляющих устройств (например, при нахождении схем монтажа платы, минимизирующих суммарную длину соединений). Здесь эта модель описана в нарочито общих терминах в надежде, что различные более конкретные интерпретации читатель найдет сам. Уже обращалось внимание на родство модели (3.1) — (3.2) с задачей о назначениях; действительно, целевая функция (3.1) отличается от целевой функции задачи о назначениях наличием дополнительного слагаемого, зависящего уже не от всевозможных назначений, а от всевозможных пар назначений. Сформулируем одну дискретную модель, известную под названием квадратичной задачи о назначениях, и продемонстрируем сведение к ней модели (3.1) -(3.2). Квадратичная задача о назначениях заключается в следующем. Даны числа
при условиях
Для сведения модели (3.1) — (3.2) к квадратичной задаче о назначениях введем, как и в обычной задаче о назначениях, переменные
Положим теперь
Очевидно, что каждое слагаемое же
Таким образом, целевая функция квадратичной задачи о назначениях преобразована к виду (3.1). Условия (3.4) — (3.5) этой задачи очевидны и интерпретируются точно так же, как и в обычной задаче о назначениях. Наконец, если необходимо учесть еще ограничения типа (3.2), то проще всего это сделать, положив Решение квадратичной задачи о назначениях является с вычислительной точки зрения нелегким делом. В настоящее время для нее создано несколько точных и приближенных методов; правда, точные методы реализуемы лишь для задач сравнительно небольших размеров. Описание и сравнение (по результатам - численных экспериментов; нескольких приближенных методов дано в статье Хиллиера и Коннорса [96]; там же приведена библиография по данному вопросу. 3.2. Рассмотрим под несколько иным углом зрения описанные выше модели задач о покрытии (см. § 3 гл. 2). Напомним, что задача о покрытии заключается в минимизации
при условиях
причем все коэффициенты Наряду с задачей о покрытии часто рассматривается взвешенная задача о покрытии, заключающаяся в минимизации
при условиях (3.8). Здесь Комбинаторная интерпретация этих моделей, оправдывающая их название, также была дана в § 3 гл. 2. Однако сейчас нас будет интересовать совершенно иной круг их приложений, примыкающий к вопросам дискретного анализа, математической логики и синтеза схем. Сначала дадим общее описание вопроса в терминах синтеза схем. Задачу синтеза схем можно представить следующим образом. Под схемой понимается некоторое устройство с Задачей синтеза является: 1) построение схемы, реализующей данную булеву функцию, 2) нахождение среди всех таких схем наиболее экономной в определенном смысле. Этим двум проблемам соответствует поиск допустимого и оптимального плана в задачах математического программирования. Способы решения первой из этих проблем известны достаточно давно; один из конструктивных подходов ко второй может быть указан в терминах целочисленного линейного программирования. Схема синтезируется из элементов, которые могут представлять собой реле, электронные лампы, полупроводниковые приборы и т. п. Однако техническая реализация этих элементов (и схем в целом) для нас сейчас совершенно безразлична. Важно лишь, что каждый элемент может находиться в одном из двух состояний (например, реле замкнуто — реле разомкнуто). Состоянию элемента «выключено» мы будем сопоставлять 0, состоянию «включено» — 1. Элементы можно соединять в блоки (цепи) двух типов: а) блоки, дающие на выходе 1 только в том случае, если все входы равны 1, б) блоки, дающие на выходе 1, если хотя бы один из входов равен 1. Блоки типа а) представляют собой последовательное соединение элементов, а блоки типа б) — параллельное соединение. Можно ограничиться рассмотрением схем, состоящих из нескольких блоков типа а) (входы которых являются входами схемы), соединенных в один блок типа б); выход последнего и является выходом схемы. Этим понятиям можно дать и чисто алгебраическую трактовку. Действительно, придавая символам (см. скан) а соединению их в блоки типа б) — операцию «сложения» с правилами
Определенные этими таблицами операции умножения и сложения называются булевыми операциями; полученная нами система с этими операциями представляет собой простейший случай так называемых булевых алгебр. Мы видим, что «булева арифметика» отличается от обычной лишь тождеством Далее, булевы операции предполагаются ассоциативными:
и дистрибутивными;
Кроме того, для любого элемента а единственным образом определено его дополнение а обладающее свойством
Здесь под a, b, с понимаются любые элементы булевой алгебры (в нашем случае — нули и единицы). Дополнением нуля является единица, дополнением единицы — нуль. Дополнение а часто обозначают через 1 — а. Отметим, что в логике булеву умножению отвечает конъюнкция, булеву сложению — дизъюнкция, дополнению — отрицание. Из сказанного вытекает, что задача синтеза схемы с данными свойствами эквивалентна задаче аналитического представления булевой функции (заданной посредством таблицы) в виде суперпозиции булевых операций над ее переменными. Поскольку мы ограничиваемся схемами описанного выше вида, это аналитическое выражение должно представлять собой булеву сумму членов, каждый из которых является произведением булевых переменных (и их дополнений) Итак, пусть нам задана таблица значений булевой функции следующем. Отметим в таблице булевой функции
где
Произведения вида (3.13) называются фундаментальными произведениями. Составим теперь фундаментальное произведение
Формула (3.14) и дает нам аналитическое выражение требуемого вида. Теперь можно перейти ко второй проблеме синтеза — нахождению «простейшего», или «наиболее экономного» в определенном смысле аналитического выражения; сами эти понятия будут уточнены далее. Введем еще одно важное понятие. Импликантом функции
где
(т. е. любой собственный подмножитель (3.15)) этим свойством уже не обладает. Иначе говоря, импликант есть произведение переменных и их дополнений, составленное из минимального числа сомножителей и равное 1 только в случае Таким образом, нам нужно знать способ построения всех импликантов функции Правило Правило II. Если представление содержит выражение вида 70 прибавить к сумме выражение Формирование импликантов происходит следующим образом. К (3.14) последовательно применяют правило Только теперь мы, наконец, подготовлены к формулировке задачи оптимального синтеза схемы в виде задачи о покрытии. Пусть
Иначе говоря,
Требуется найти набор с минимальным количеством импликантов. Это значит, что следует минимизировать функцию (3.7) (мы переходим теперь от булевого сложения к обычному!) при условии, что все единичные значения функции Можно считать также, что каждому импликанту Обилие и новизна введенных в этом пункте понятий делают желательным иллюстративный пример. Пусть функция булевых переменных (см. скан) Здесь
Теперь приступим к поиску импликантов. Рассмотрим первые два слагаемых (3.14) и применим к ним правило II. Тогда к этим слагаемым добавится произведение
Применяя теперь правило II к первому и третьему слагаемым полученного выражения, добавим к нему произведение
Еще раз применяем правило II ко второму и третьему слагаемым (
к которому правила I и II уже неприменимы. Таким образом,
Теперь можно составить
и наша задача о покрытии приобретает вид: минимизировать
при условиях
Но оптимальное решение этой задачи выписывается сразу, так как из ограничений следует, что
Из приведенного примера видно, что решение задач о покрытии часто облегчается учетом специфической структуры матрицы ограничений. Действительно, имеется ряд простых приемов сокращения матриц задач о покрытии; они основаны на идеях, близких к идеям доминирования стратегий в матричных играх. По этому поводу см., например, обзорную статью Балинского [50]. Отметим, что в логике и дискретном анализе описанной проблеме отвечает проблема минимизации дизъюнктивных нормальных форм. В заключение обратим внимание на возможность еще одной, чисто комбинаторной интерпретации задачи о покрытии. Именно, пусть дана матрица, состоящая из нулей и единиц. Требуется выделить в ней такой минимальный набор столбцов, что стоящие в этих столбцах единицы фигурируют в каждой строке матрицы хотя бы по одному разу. В этом смысле можно сказать, что выделяемые столбцы образуют «покрытие» строк матрицы.
|
1 |
Оглавление
|