Книга
Книга
ЧАСТЬ I
Основные компоненты машины
Так как законченное устройство будет универсальной вычислительной машиной, оно должно содержать несколько основных органов, таких, как органы арифметики, памяти, управления и связи с оператором. Мы хотим, чтобы машина была полностью автоматической, т. е. чтобы после начала вычислений работа машины не зависела от оператора. Более полно это замечание будет рассмотрено в разд. 3.
В и г k s A. W., Goldstein Н. Н., von Neumann J., Preliminary discussion of the logical design of an electronic computing instrument, von Neumann J., Collected works, v. V, Pergamon Press, Oxford — Lnd.— N. Y. —Paris, 1963, pp. 34—79.
N_ 9 ^K)^|Щенны® вариант статьи опубликован в журнале Datamation, 8,
Очевидно, что машина должна быть способна запоминать некоторым образом не только цифровую информацию, необходимую для данного вычисления, такую, как граничные значения, таблицы функций (например, уравнение состояния жидкости) и промежуточные результаты вычисления (которые могут оказаться необходимыми в течение различных отрезков времени), но также и команды, управляющие программой, которая должна производить вычисления над этими числовыми данными. В специализированной вычислительной машине эти команды являются неотъемлемой частью устройства и составляют часть его конструкции. В универсальной машине должна быть возможность отдать приказ устройству произвести вообще любое вычисление, которое может быть выражено в числовом виде. Следовательно, в машине должен быть некоторый орган, способный хранить эти приказы программы. Кроме того, должно быть устройство, которое может понимать эти команды и управлять их выполнением.
Выше мы в принципе указали на два различных вида памяти — память чисел и память приказов. Если, однако, приказы машине свести к числовому коду и если машина сможет некоторым образом отличать число от приказа, то орган памяти можно использовать для хранения как чисел, так и приказов. Кодирование приказов в числовой форме рассматривается в п. 6. 3.
Если память для приказов является просто органом памяти, то должен существовать еще орган, который может автоматически исполнять приказы, хранящиеся в памяти. Мы будем называть этот орган управлением.
Поскольку наше устройство должно быть вычислительной машиной, в нем должен иметься арифметический орган, который может выполнять некоторые элементарные арифметические операции. Это будет, следовательно, устройство, способное складывать, вычитать, умножать и делить. Мы увидим также, что оно может выполнять и другие операции, которые встречаются довольно часто.
Ясно, что операции, которые машина будет рассматривать в качестве элементарных, — это те операции, которые встроены в машину. Операцию умножения можно было бы, например, устранить из машины как элементарный процесс, если бы мы были готовы рассматривать ее как надлежащим образом организованную последовательность сложений. Подобные замечания применимы и к делению. Вообще говоря, внутренняя структура арифметического устройства определяется компромиссом между тре-
бованием быстродействия — выполнение неэлементарной операции в общем случае занимает больше времени, так как она состоит из ряда приказов, полученных от управления, — и требованием простоты или дешевизны машины.
Наконец, должен существовать орган ввода и вывода, с помощью которого осуществляется связь между оператором и машиной. Этот орган, как мы увидим, представляет собой вторичную форму автоматической памяти.
Первые замечания о памяти
Ясно, что объем памяти является решающим фактором при разработке удовлетворительной универсальной вычислительной машины. Мы приступаем к рассмотрению вопроса о том, какие величины должны храниться в памяти при различных вычислениях.
При решении дифференциальных уравнений в частных производных требования к памяти будут довольно обширными. В общем случае нужно запоминать не только начальные и граничные условия и некоторые произвольные функции, которые входят в задачу, но также и большое число промежуточных результатов.
Для уравнений параболического или гиперболического типа с двумя независимыми переменными процесс интегрирования является по существу двойной индукцией. Чтобы найти значения зависимых переменных в момент t-VM, производится интегрирование по х от одной границы до другой, причем данные для момента / используются как коэффициенты при определении постоянных интегрирования.
Память должна не только иметь достаточную емкость для запоминания этих промежуточных данных, но и позволять позднее, т. е. в конце цикла (/ + △/), удалять их и заменять соответствующими данными для цикла (Z+2AZ). Процесс удаления данных из памяти и замены их новой информацией должен, конечно, осуществляться полностью автоматически с помощью управления.
Очевидно, что для уравнений в полных дифференциалах требования к памяти подобны требованиям, изложенным в п. (а), хотя и менее жестки. .
Можно предполагать, что задачи, решаемые итерационными методами, например решение системы линейных уравнений или эллиптических уравнений в частных производных, в кото-
рых используются методы исключений, потребуют очень большой емкости памяти. Требования к памяти для таких задач очевидно значительно больше, чем для задач, упомянутых в п. (а), в которых нужно хранить только информацию, соответствующую мгновенному значению одной переменной [/ в п. (а)], в то время как в последнем случае в памяти должны храниться все решения (охватывающие все значения для всех переменных). Однако это очевидное различие может быть до некоторой степени устранено применением методов, допускающих использование для этих случаев более грубых сеток интегрирования, чем в случае (а).
В настоящее время целесообразно построить машину, на которой можно было бы решать задачи, которые на несколько порядков сложнее задач, решаемых теперь с помощью существующих электронных и электромеханических машин. Поэтому мы рассчитываем на полностью автоматическую электронную память на 4000 чисел, по 40 двоичных разрядов каждое. Это соответствует точности 2"40^0,9Х 10", т. е. около 12 десятичных знаков. Мы полагаем, что такая емкость превышает примерно в 10 раз требования большинства задач, с которыми сейчас приходится иметь дело. Указанная точность также существенно выше, чем это требуется для большинства задач, решаемых в настоящее время. Кроме того, мы предполагаем иметь дополнительную память на каком-нибудь носителе типа магнитной проволоки или ленты, которая будет обладать значительно большей емкостью и будет также автоматической.
В машине, конечно, должны быть команды для выполнения основных арифметических операций. Полные характеристики этих команд будут даны после более детального описания арифметического устройства.
Нужно иметь возможность передавать данные из памяти в арифметический орган и обратно. При передаче информации из арифметического органа в память следует различать два типа передач: передачи чисел как таковых и передачи чисел, которые являются частями приказов. Первый случай вполне очевиден и не требует дальнейшего объяснения. Второй случай является более тонким и служит примером общности и простоты системы. Рассмотрим в качестве иллюстрации решение нашей системой интерполяционной задачи. Предположим, что мы сформулировали команды, необходимые для выполнения интерполяции порядка п в некоторой последовательности данных. Точное расположение в памяти п + 1 величин, которые определяют требуемое функциональное значение, является функцией аргумента. Этот аргумент может определяться как результат вычисления на машине. Поэтому нам нужна команда, которая может подставить число в данный приказ, — в случае интерполяции это положение аргумента или группы аргументов, являющихся ближайшими к требуемому значению. С помощью такого приказа 'результаты вычисления могут быть введены в команды, управляющие этим или другим вычислением. Это позволяет использовать одну и ту же последовательность команд для разных наборов чисел, расположенных в различных частях памяти.
Резюмируя можно сказать, что отсылки в память будут двух видов: полные замены, при которых величина, записанная ранее, стирается и заменяется новым числом; частичные замены, при которых та часть приказа, которая содержит число-позицию памяти1), — мы предполагаем, что различные позиции в памяти последовательно перенумерованы числами-позициями, — заменяется новым числом-позицией памяти.
Ясно, что нужно иметь возможность в любое время получать числа из любой части памяти. Однако в случае приказов обращения к памяти могут быть более упорядоченными, так как по крайней мере частично управляющие команды можно расположить в линейной последовательности. Следовательно, управление будет построено таким образом, что за своей следующей командой оно обычно будет переходить от ячейки п к ячейке и + 1.
*) Адрес в современной терминологии. — Прим, перез.
Преимущество автоматического вычислителя заключается в возможности многократного использования данной последовательности команд, причем число циклов либо задается заранее, либо зависит от результата самого вычисления. После завершения цикла за ним должна последовать другая последовательность приказов, так что в большинстве случаев нужно дать две параллельные цепочки приказов, которым предшествует команда, указывающая, к какой программе следует перейти. Этот переход может быть сделан зависимым от знака числа (причем нуль может рассматриваться в машине как знак плюс). Таким образом мы вводим приказ (приказ условного перехода), который в зависимости от знака данного числа будет вызывать исполнение одной из двух программ.
Часто две параллельные цепочки приказов оканчиваются общей программой. Поэтому нужно в любом случае заставить управление перейти в начальную точку этой общей программы. Такой безусловный переход можно получить либо искусственным использованием условного перехода, либо введением явного приказа для такого перехода.
Наконец, нам необходимы приказы, которые будут связывать машину с устройствами ввода — вывода.
Мы переходим теперь к более подробному рассмотрению самой машины. Мы начнем с рассмотрения органа памяти, так как наш опыт показывает, что выбор данного элемента в качестве элементарной ячейки памяти более или менее определяет также и значительную часть организации машины. При попытке описать такой сложный инструмент, как вычислительная машина, мы не видим возможности рассмотреть исчерпывающим образом каждый орган до завершения ее описания. Только окончательные блок-схемы могут дать сколько-нибудь полное представление об устройстве.
Орган памяти
В идеальном случае желательно было бы иметь память с бесконечно большой емкостью и такую, чтобы доступ к любой данной совокупности 40 двоичных разрядов, или слову (см. п.2. 3), осуществлялся бы немедленно, т. е. за время, которое в несколько раз (или значительно) меньше, чем время работы быстродействующего электронного умножителя. Можно предположить, что практически время работы умножителя равно приблизительно 100 мксек. Следовательно, время доступа к одному слову па-
мяти должно составлять от 5 до 50 мксек. Желательно также, чтобы замена одного слова другим происходила приблизительно с такой же скоростью. Физически не представляется возможным получить бесконечную емкость. Поэтому мы вынуждены использовать возможность построения иерархии запоминающих устройств, каждое из которых имеет емкость, большую предыдущей, но доступ которого осуществляется медленнее.
Самые обычные элементы памяти в электрических схемах — это триггеры, электронные лампы и электромеханические реле. Чтобы получить память на п слов, понадобилось бы около 40 п таких элементов, не считая переключательных. Мы видели ранее (см. п. 2. 2.), что быстродействующая память на несколько тысяч слов совсем не представляется неразумной для универсального устройства. Следовательно, нам потребовалось бы около 105 триггеров или других аналогичных элементов! Это было бы, конечно, в высшей степени нецелесообразно.
Поэтому мы должны отыскать какой-то новый способ хранения электрической информации. Один из критериев для такого способа заключается в том, чтобы отдельные запоминающие элементы, каждый из которых предназначается для размещения только одного двоичного знака, представляли бы собой не макроскопические компоненты, а были бы микроскопическими элементами некоторого подходящего органа. Их можно было бы тогда выбирать и подключать не с помощью обычных 'макроскопических проволочных соединений, а с помощью некоторого функционального метода манипуляции этим органом.
Примером устройства, которое в известной степени обладает таким свойством, является иконоскоп. В своем обычном виде он имеет линейную разрешающую способность, равную 500. Это могло бы соответствовать емкости двухкоординатной памяти, равной 500 X 500 = 2,5* 105 двоичных знаков. Мы подошли, таким образом, к рассмотрению возможности хранения электрических зарядов на диэлектрической пластине внутри электронно-лучевой трубки. На самом деле такая трубка представляет собой множество электрических конденсаторов, которые могут подключаться к схеме с помощью электронного луча.
В действительности упомянутая высокая разрешающая способность и соответствующая ей емкость памяти реальны только в условиях запоминания телевизионного изображения, которое гораздо менее требовательно в отношении надежности отдельных элементов изображения, чем это допустимо в накопителе для вычислительных машин. В последнем случае разрешающая способность составляет от 20 до 100, т. е. с точки зрения оборудования казалось бы более разумным делать память емкостью от 400 до 10 000 на основе хорошо известных принципов.
В настоящее время Принстонские лаборатории Американской радиокорпорации (АРК) занимаются разработкой накопительной трубки селектрон упомянутого выше типа. Предполагается, что эта трубка должна иметь не чувствительную к изменению амплитуды переключающую систему, с помощью которой электронный луч может быть направлен в заданную точку в течение долей микросекунды. Поскольку эта накопительная трубка является главной составной частью машины, описанной в этом отчете), мы чрезвычайно удовлетворены тем, что в этой работе, так же как и в ряде других разработок, участвует группа АРК.
Другим видом быстрой памяти является линия задержки с обратной связью, описанная в отчетах по ЭДВАКу (ЭДВАК — электронная вычислительная машина, которая разрабатывается для Артиллерийского управления армии США Муровской электротехнической школой Пенсильванского университета). Поскольку это устройство было описано в упомянутых отчетах, мы не будем останавливаться на нем более подробно. Можно было бы рассмотреть и другие физические и химические свойства вещества в присутствии электронов и фотонов, но поскольку все они находятся на ранних стадиях изучения, мы не будем дальше упоминать о них.
На протяжении остальной части этого отчета мы будем, таким образом, предполагать, что для запоминания слов с электронной скоростью используется селектрон. Как сейчас предполагается, эта трубка будет иметь емкость 212 = 4096, т. е. приблизительно 4000 двоичных знаков). Для получения общей емкости электронной памяти приблизительно 4000 слов мы предполагаем использовать 40 селектронов, т. е. мы будем иметь память на 212 слов по 40 двоичных разрядов каждое (см. п. 2. 3).
Существует два возможных способа запоминания отдельного слова в памяти на селектронах (это относится и к памяти на линиях задержки и к памяти на накопительных трубках с амплитудно-чувствительным отклонением). Один способ заключается в том, чтобы запоминать целое слово в одной трубке и
затем извлекать его, выбирая последовательно отдельные разряды. Другой способ состоит в том, чтобы запоминать в соответствующих местах каждой из всех 40 трубок по одному разряду слова. Чтобы извлекать слово из памяти, построенной по такой схеме, требуется один переключающий механизм, к которому параллельно подключены все 40 трубок. Такая переключающая схема, как нам кажется, проще, чем схемы, необходимые для последовательной системы; кроме того, она работает в 40 раз быстрее. Поэтому мы используем параллельный метод работы. Это приводит нас к рассмотрению так называемой параллельной машины» в противоположность последовательностным принципам, которые рассматривались для машины ЭДВАК. (В ЭДВАКе специфические характеристики акустических линий задержки, а также некоторые другие соображения, по-видимому, оправдывают последовательностный принцип. Более подробно см. в отчетах, упомянутых в п. 4.1.) Существенное отличие между этими двумя системами заключается в методе выполнения сложения: в параллельной машине все соответствующие пары разрядов складываются одновременно, в то время как в последовательностной машине они складываются последовательно во времени.
Таким образом, мы предполагаем, что быстродействующая электронная память состоит из 40 селектронов, которые переключаются с помощью общего переключающего устройства. Входами этого переключателя управляет управление.
Поскольку большое число чрезвычайно важных классов задач требует значительно большего общего объема памяти, чем 212 слов, мы рассмотрим сейчас следующую ступень нашей иерархии памяти. Хотя решение уравнений в частных производных включает обработку многих тысяч слов, эти данные обычно требуются блоками, которые хорошо укладываются в электронную память емкостью 212. Поэтому вторым типом памяти должен быть носитель, который снабжает электронную память такими блоками слов. Он должен управляться управлением машины и является, таким образом, неотъемлемой частью системы, не требующей вмешательства человека.
Очевидно, что выше были подняты две разные проблемы. Одна из них состоит в выборе носителя для запоминания информации: телетайпной ленты, магнитной проволоки или ленты, кинопленки или другого подобного носителя. Остается еще про- блема^ автоматического объединения этого вида запоминающего устройства с машиной. Это объединение достигается логически — введением в код соответствующих приказов, которые могут заставить машину либо осуществлять чтение или запись на носи-
тель, либо продвигать носитель на заданную величину или до заданного места. Мы обсудим этот вопрос несколько подробнее в п. 6. 8.
Вернемся теперь к вопросу о свойствах, которыми должен обладать носитель вторичной памяти. Ясно, что он должен запоминать информацию на достаточно продолжительный отрезок времени, чтобы перезапись «угасающей» информации занимала лишь несколько процентов общего времени вычисления. Желательно, хотя и не обязательно, чтобы информацию можно было стирать и заменять новыми данными. Носитель должен быть таким, чтобы им можно было управлять, т. е. автоматически перемещать его вперед и назад. Это соображение делает непригодным такие носители, как перфокарты. Хотя карты могут быть набиты и прочитаны с помощью соответствующих приказов, они мало подходят для задач, в которых выходные данные вводятся непосредственно обратно в машину не в той последовательности, как они расположены на перфокарте. Носитель должен запоминать очень большое число данных при гораздо меньшей стоимости, чем электронные устройства. Он должен быть достаточно быстродействующим, чтобы даже при частом его использовании в задаче засылка и выборка данных, а также достижение требуемой позиции не требовали большой доли времени решения. Если это условие не выполнено, то преимущество высокой электронной скорости машины будет в значительной степени потеряно.
Свето- и электронночувствительная пленка, а также магнитная проволока или лента, движением которых управляют сервомеханизмы, связанные с управлением, могли бы, по-видимому, достаточно хорошо удовлетворить наши потребности. В порядке опыта мы решили использовать магнитную проволоку,так как получили для нее надежный результат на частоте порядка 25 000 импульсов в секунду и выше.
Наконец, наша иерархия памяти требует большого объема заблокированной (dead) памяти, т. е. памяти, не связанной с машиной. Это требование можно удовлетворить библиотекой проволок, которые можно при необходимости вводить в машину и которые в этом случае становятся автоматически управляемыми. Таким образом, заблокированная память на самом деле представляет собой не что иное, как расширение носителя вторичной памяти. От последней она отличается только своей доступностью машине.
На вторичную память мы накладываем одно дополнительное требование. Необходимо, чтобы человек мог записывать
информацию на проволоку или другой используемый носитель и считывать с него информацию, записанную машиной. Таким образом человек сможет управлять работой машины. Теперь ясно, что такой носитель вторичной памяти является на самом деле не чем иным, как частью нашей системы ввода — вывода.
Существует другая чрезвычайно важная часть ввода — вывода, о которой мы сейчас только упомянем, а именно некоторый механизм для графического наблюдения результатов данного вычисления. Его можно получить с помощью подобной селектрону трубки, экран которой светится, когда посредством электронного луча в нее вводятся данные.
Для определенности в последующем мы предполагаем, что с выходом каждого селектрона связан триггер. Эту группу из 40 триггеров мы называем селектронным регистром.
Арифметический орган
В этом разделе мы рассмотрим те особенности арифметической части нашей машины, которые мы считаем сейчас желательными. Мы дадим предварительные заключения относительно того, какие арифметические операции должны быть встроены в машину и какие запрограммированы. Наконец, здесь будет описана структура арифметического устройства.
При рассмотрении арифметических органов вычислительной машины естественно поставить вопрос о том, какую систему счисления следует принять. Несмотря на установившуюся традицию строить цифровые машины в десятичной системе, мы решительно отдаем предпочтение двоичной системе. Элементарная ячейка нашей памяти естественно подходит для двоичной системы, так как мы не собираемся измерять уровни зарядов в отдельной точке селектрона, а довольствуемся различением двух состояний. Триггер тоже является чисто двоичным устройством. На магнитной проволоке или ленте и в акустических линиях задержки мы также ограничиваемся распознаванием наличия или отсутствия импульса или (при использовании несущей частоты) пачки импульсов или знака импульса. (Мы не будем рассматривать здесь систему, обладающую тройной возможностью — положительный импульс, отрицательный импульс или отсутствие импульса — и ее отношение к вопросам надежности и контроля, а также не будем обсуждать очень интересные возможности модуляции несущей частоты.) При использовании десятичной системы с иконоскопом или с памятью на линиях задержки при- 3 Заказ № 102
ходится прибегать к двоичному кодированию десятичной системы; каждая десятичная цифра при этом представляется по крайней мере четырьмя двоичными разрядами. Таким образом, точность в десять десятичных знаков требует по крайней мере 40 двоичных разрядов. В чисто двоичном же представлении для получения точности 1010 достаточно 33 разрядов. Поэтому с точки зрения оборудования использование двоичной системы несколько экономичнее, чем использование десятичной системы.
Однако главным достоинством двоичной системы по сравнению с десятичной являются большая простота и скорость выполнения элементарных операций. В качестве иллюстрации рассмотрим выполнение умножения методом повторного сложения. Произведение данного разряда множителя на множимое в двоичной системе есть либо само множимое, либо нуль, в зависимости от того, какое значение имеет разряд множителя: 1 или 0. В десятичной же системе это произведение имеет десять возможных значений. Конечно, двоичное число имеет в log210^3,3 раза больше разрядов, чем десятичное число той же точности, но при этом умножение в десятичной системе выполняется значительно дольше, чем в двоичной. Можно ускорить десятичное умножение усложнением схем, но это уже другой вопрос, так как за счет дополнительного оборудования можно ускорить и двоичное умножение. Аналогичные замечания можно сделать и о других операциях.
Еще один момент, заслуживающий внимания, заключается в следующем: одна из важных частей машины по своему характеру является не арифметической, а логической. Логика, будучи системой да — нет, является по существу двоичной. Поэтому двоичное построение арифметических органов в значительной мере способствует созданию более однородной машины, что позволяет получить большее единство и большую эффективность.
Единственный недостаток двоичной системы с точки зрения человека заключается в проблеме преобразования. Однако, поскольку методы преобразования чисел из одной системы в другую хорошо известны и поскольку преобразование может быть целиком сделано с помощью обычных арифметических процессов, нет препятствий к тому, чтобы вычислительная машина сама могла выполнять такое преобразование. Можно было бы возразить, что на это будет тратиться время. Однако это не так (см. п. 9.6 и 9.7, ч II1). Действительно, универсальная вычис-
Здесь и далее имеется в виду вторая часть настоящего отчета, упомянутая в предисловии: G о 1 d s t е i n H. H., von Neumann J., Planning and coding problems for an electronic computing instrument, von Neumann J., Collected works, v. V, Pergamon Press, Oxford — Lnd.— N. Y.— Paris, 1963, pp. 80—235. — Прим, nepee.
лительная машина, используемая как инструмент научного исследования, предназначена для выполнения очень большого числа умножений при сравнительно небольшом объеме выходных данных, поэтому время, затраченное на преобразование чисел из десятичной системы счисления в двоичную составляет лишь небольшой процент общего времени вычисления. Аналогичное замечание применимо и к выходным данным.
Выше мы мысленно предполагали, что желательно иметь ввод и вывод данных в десятичной системе. Однако мы чувствуем, что в вычислительных устройствах нельзя использовать только основание 10; поэтому мы попытаемся подготовить себя к использованию чисел с основанием 2, 8 или 16. Довод в пользу оснований 8 и 16 заключается в следующем: так как 8 и 16 являются степенями 2, то преобразование в двоичную систему тривиально, а поскольку оба основания того же порядка величины, что и 10, то они более привычны, чем основание 2 (см. ч. II, п. 9.4).
Некоторые строящиеся или проектируемые в США и Англии вычислительные машины будут иметь так называемую «плавающую десятичную запятую». Это механизм для выражения каждого слова в виде порядка и мантиссы. Например, 123,45 можно было бы записать в машине как (0,12345; 03), где 3 есть показатель степени 10, связанный с этим числом.’Система «плавающей» десятичной запятой, по-видимому, преследует две основные цели, связанные с тем, что число разрядов в слове постоянно и определяется конструктивными соображениями для каждой конкретной машины. Первая цель заключается в том, чтобы сохранить возможно больше значащих разрядов, вторая цель — освободить оператора от необходимости определять и вводить в задачу «масштабные коэффициенты», которые служат для того, чтобы сохранить числа в пределах диапазона данной машины.
Конечно, мы не отрицаем, что на подготовку подходящих масштабных коэффициентов люди затрачивают время. Мы только утверждаем, что затраченное на это время составляет очень небольшой процент общего времени, которое тратится на подготовку для машины задачи, представляющей интерес. Первое преимущество плавающей запятой, как мы чувствуем, несколько обманчиво. Чтобы иметь плавающую запятую, мы должны расширить емкость памяти, которую иначе можно было бы использовать для увеличения числа разрядов в слове. Поэтому для нас совсем не ясно, компенсируют ли скромные преимущества Плавающей двоичной запятой потери в емкости памяти и возросшую сложность арифметических и управляющих цепей.
з*
Существуют, конечно, некоторые задачи, подходящие для нашей машины, которые требуют точности большей, чем 2". Для решения таких задач мы собираемся использовать слова, длина которых является некоторым фиксированным целым кратным 40; при этом программа для машины составляется таким образом, чтобы соответствующим объединениям 40-разрядных слов было дано надлежащее толкование. Мы должны в этом случае рассматривать сложение или умножение как сложные операции, запрограммированные из ряда простых сложений или умножений (см. ч. II, разд. 9). По-видимому, в машине с плавающей запятой реализация такого метода встретила бы дополнительные трудности1).
Читатель может заметить, что при рассмотрении различных возможных особенностей нашего механизма радикализм чередуется у нас с консерватизмом. Однако мы надеемся, что при более близком рассмотрении он согласится с тем, что при оценке достоинств любой идеи мы руководствуемся последовательным и обоснованным принципом. Мы хотели бы включить в машину в виде схем только такие логические концепции, которые либо необходимы для того, чтобы иметь полностью законченную систему, либо чрезвычайно удобны из-за того, что они часто встречаются, или из-за того, что оказывают влияние в соответствующих математических ситуациях.
Основываясь на этом критерии, мы намерены встроить в машину схемы, которые позволят ей образовывать двоичную сумму двух 40-разрядных чисел. Мы принимаем такое решение не потому, что сложение является логически основным понятием, а скорее потому, что машина, так же как и вычислитель, была бы сильно замедлена, если бы каждое сложение программировалось из более простых операций «и», «или» и «нет». То же самое справедливо и для вычитания. Аналогичным образом мы отвергаем возможность образовывать произведение, программируя его из сложений. Обоснование этого совершенно такое же, как и для сложения и вычитания. Случаи деления и извлечения квадратного корня представляются значительно менее ясными.
Хорошо известно, что обратная величина числа может быть получена с любой точностью с помощью итеративных схем. Одна из таких схем состоит в улучшении приближения X путем образования X' — 2Х— аХ\ так что новая ошибка 1 — аХ' есть
(1 — яХ)2, что представляет собой квадрат ошибки предыдущего приближения. Заметим, что при образовании X' выполняют/ ся два настоящих умножения, — мы не считаем умножение на 2 настоящим умножением, так как у нас будет устройство сдвига влево или вправо за время одного или двух тактовых импульсов. Если бы мы смогли каким-нибудь образом получить 1/а с точностью до 2"5, то для получения окончательного результата с точностью до 2~40 было бы достаточно шести умножений, т. е. трех итераций. Для получения первого приближения \[а можно было бы использовать небольшую таблицу из 24 позиций. Таким образом обратную величину \)а можно было бы получить с помощью шести умножений, а следовательно, частное Ь)а— с помощью семи умножений. В соответствии с этим мы видим, что вопрос о построении устройства деления на самом деле зависит от того, насколько быстро оно может работать по сравнению с описанным выше итеративным методом: для оправдания такого устройства машина должна производить (с его помощью) деление гораздо скорее, чем семь умножений. Мы задумали устройство деления, которое использует значительно меньше времени, чем семь умножений. Это оправдывает его построение; кроме того, количество необходимого для него оборудования ненамного больше, чем для устройства умножения.
Конечно, квадратный корень можно также извлекать с помощью итеративных методов. Действительно, если X — приближение аХ\ то X' = (X + я/Х)/2 — более хорошее приближение. Отсюда видно, что такая итеративная схема включает одно деление на каждую итерацию. Как будет видно дальше из более подробного рассмотрения арифметического органа, мы не включаем в наш проект устройства для извлечения квадратного корня, так как в этом случае объем оборудования был бы больше, чем мы хотим иметь в первом образце машины. (По поводу итеративного метода извлечения корня см. ч. II, п. 8.10.)
Остановимся кратко на первой части нашего арифметического органа. Нам нужен параллельный накапливающий орган, который может принимать число и складывать его с числом, уже находящимся в нем. Он должен также очищаться и выдавать содержащуюся в нем информацию. Мы будем называть этот орган накапливающим сумматором. В принципе он представляет собой обычное устройство, которое имеется как в старых, так и в современных счетных машинах (таких, как умножающая настольная машина, стандартные счетчики ИБМ, более современные релейные машины, ЭНИАК). Существует много способов построения такого двоичного накапливающего сумматора. Мы различаем два широких класса таких устройств: статичес-
кие и динамические, или импульсные, накапливающие сумматоры (см. п. 5.11). Прежде всего необходимо сделать несколько замечаний, касающихся арифметики двоичного сложения. В параллельном накапливающем сумматоре первый шаг сложения состоит в прибавлении каждого разряда первого слагаемого к соответствующим разрядам второго слагаемого. Второй шаг заключается в осуществлении переносов, — он должен делаться последовательно, так как перенос может вызвать новый перенос. В худшем случае могут произойти 39 переносов. Ясно, что невыгодно предусматривать на второй шаг (осуществление переносов) в 39 раз больше времени, чем на первый (сложение разрядов). Поэтому нужно либо ускорить переносы, либо основываться на среднем числе переносов, либо делать и то и другое.
Мы покажем сейчас, что для суммы двоичных слов длиной п разрядов каждая длина максимальной цепочки переносов1) в среднем не превышает log2n. Обозначим через рД^ вероятность того, что в сумме двух двоичных слов длиной п длина цепочки переносов больше или равна и. Тогда ясно, что рД^— рД^А- 1) есть вероятность того, что максимальная длина цепочки переносов равна точно и, и взвешенное среднее
п
^и1Рп^-Рп^+ 1)1
у=0
есть средняя длина такого переноса. Заметим, что п
S [ рп (и) — Рп (и + 1)] = 1 ,г/=0
так как pzl(u) = 0, если и > п; отсюда легко получить, что
п
ап = TiPn^Y
W=1
Покажем теперь, что рп (у) <С min [ 1, (п — и + l)/2®+1].
Заметим сначала, что
Рп (у) = Рп-1 (у) + ^^г^ . ес™ у < и.
’) Под максимальной цепочкой переносов подразумевается перенос, который охватывает наибольшее количество разрядов среди переносов, возникающих при сложении двух чисел.—Прим. ред.
Действительно, pnV^ есть вероятность того, что сумма двух ^-разрядных чисел содержит цепочку переносов, длина которой не меньше и. Эта вероятность получается сложением вероятностей двух взаимно исключающих событий: 1) либо п— 1 первых разрядов обоих чисел содержат собственную цепочку переносов, длина которой не меньше и; вероятность этого равна рп_ЛиУ 2) либо п—1 первых разрядов обоих чисел не содержат собственной цепочки переносов, длина которой не меньше и.
Во втором случае любая цепочка переносов, длина которой не меньше и в полных числах (длиной и) должна заканчиваться в последних разрядах общей цепочки. Следовательно, они должны образовывать комбинацию 1, 1. Оставшиеся и—1 разрядов должны распространять перенос, следовательно, все они должны образовывать комбинации 1, 0 или 0, 1. (Комбинации 1, 1 и 0, 0 перенос не распространяют.) Вероятность появления комбинации 1, 1 равна 1/4, а вероятность появления комбинации 1, 0 или 0, 1 равна V2. Поэтому общая вероятность появления такой цепочки равна ХД САГ”1 = САГ+1- Оставшиеся п— и разрядов не должны содержать цепочки переносов, длина которой не меньше и; вероятность этого равна 1—Рп-^^У Таким образом, вероятность второго случая равна [1 — pn_v (u)]/2y+1. Объединяя оба случая, получаем нужное нам соотношение:
Рп (у) = Рп-1 (у) + 1"
Соотношение рп (и) = 0, если и > п, тривиально.
С помощью доказанной выше формулы мы видим, что всегда рД^—рп_х (^)<С 1/2^+1, а следовательно, сумма
п
S \Pi (у) — р^ (и)] = рп (у)
не превышает (и — и+ 1)/2у+1, так как в нее входят п— и + 1 членов; кроме того, рДиУ являясь вероятностью, не может быть больше единицы. Поэтому мы имеем
Г п — и +1p„(y)<min р,п
Вернемся теперь к вопросу о верхней оценке ап = Tipnkv\
У=1
Выберем К так, чтобы 2К ^.п гС^4-1. Тогда
К-1пК-1 п
^=1v—Kу=1г1—К
Последнее выражение линейно относительно п в интервале 2^ < п < 2*+l, равно К для п = 2^ и Л + 1 для п = 2*+l , т. е. оно равно log2n на обоих концах этого интервала. Так как функция log2 п везде вогнута вверх, то наше выражение не превышает log2n на всем указанном интервале. Таким образом, ап <. log2 п. Это и есть то неравенство, которое мы хотели доказать.
Для нашего случая я ~ 40 мы имеем ап^ log240^5,3, т. е. средняя длина максимальной цепочки переноса равна приблизительно 5. (Действительное значение а40 равно 4,62.)
Рассмотрев сложение, мы можем перейти к вычитанию. Здесь удобно рассмотреть представление отрицательных чисел, сделав предварительно некоторые замечания о представлении чисел вообще.
Наши числа являются объединениями из 40 двоичных разрядов, причем самый левый разряд — это разряд знака, а остальные разряды представляют собой двоичные разряды с позиционными значениями 2"1, 2~2, 2"3,. . . , 2~39 (считая слева направо). Накапливающий сумматор будет обрабатывать знаковый разряд как двоичный разряд с позиционным значением 2° — по крайней мере когда он работает как сумматор. Ясно, что для чисел, лежащих между 0 и 1, здесь все хорошо: в этом случае самый левый разряд будет 0, и если 0 принят для представления знака плюс, то число со знаком и 39 двоичными разрядами выражается правильно.
Рассмотрим теперь одно или больше произвольных 40-разряд- ных двоичных чисел. Накапливающий сумматор сложит их, причем механизм поразрядного сложения и переноса будет работать обычным образом и независимо во всех 40 разрядах. Однако, если перенос возникает в самой левой разрядной позиции, то ему некуда будет идти (слева больше нет разрядов) и он «потеряется». Это означает, что первое и второе слагаемые, лежащие оба между 0 и 2, образуют сумму, превышающую 2, а накапливающий сумматор, поскольку он не в состоянии представить необходимый в этом случае разряд с позиционным значением 21, отбрасывает 2. Таким образом, сумма образуется правильно, за исключением возможной ошибки на 2. Если последовательно осуществляется несколько таких сложений, то результирующая ошибка может быть любым целым кратным 2. Это означает, что накапливающий сумматор представляет собой сумматор, допускающий ошибки, которые являются целыми кратными 2, т. е. мы имеем сумматор по модулю 2.
Следует отметить, что наше соглашение о расположении двоичной запятой непосредственно справа от самого левого разряда
никак не связано со структурой сумматора. Чтобы сделать этот момент более ясным, рассмотрим несколько подробнее возможности расположения двоичной запятой.
Начнем с того, что перенумеруем все 40 разрядов наших чисел (слов) слева направо. Используем для этого индекс А (А = 1,. .., 40). Мы могли бы поместить двоичную запятую между цифрами / и / + 1; / = 0, 1,. .., 40. Заметим, что / = 0 соответствует положению запятой слева от первого разряда (разряда h = j = O нет); / = 40 соответствует положению запятой справа от сорокового разряда (разряда к = / + 1 = 41 нет); j = 1 соответствует приведенному выше случаю. Каким бы ни был выбор /, он нс влияет на правильность сложения накапливающим сумматором. [Это справедливо и для вычитания (см. ниже), но не для умножения и деления (см. п. 5.8).] Действительно, при таком переносе запятой мы только умножаем все числа на 2у’-1 (по сравнению с нашим первоначальным соглашением), а такое «изменение масштаба» никак нс влияет на результаты сложения (и вычитания). Однако теперь накапливающий сумматор является сумматором, который допускает ошибки, представляющие собой целые кратные 2< т. е. это сумматор по модулю 2Л Мы упомянули об этом потому, что иногда удобно рассуждать исходя из того, что двоичная запятая помещается на правом, конце такого объединения двоичных разрядов. В этом случае j = 40 и наши числа являются целыми, а накапливающий сумматор есть сумматор по модулю 240. Однако мы должны подчеркнуть, что все, что мы говорили о j — чистое соглашение, т. е. это лишь интерпретация математиком работы машины, а не физическое свойство машины. Это соглашение потребует принятия специальных мер, использующих существующие физические свойства машины, т. е. это соглашение станет физической и технической реальностью только тогда, когда мы перейдем к органам умножения.
Мы примем / = 1, т. с. наши числа будут лежать между 0 и 2, а наш накапливающий сумматор будет складывать по модулю 2.
Если это так, то эти числа, лежащие между 0 и 2, можно использовать для представления всех чисел по модулю 2. Любое действительное число х сравнимо по модулю 2 с одним и только одним числом х, лежащим между 0 и 2, или более точно: 0<;х<2. Так как у нас сложение осуществляется по модулю 2, то накапливающий сумматор можно использовать для представления и сложения чисел по модулю 2.
Это определяет представление отрицательных чисел: если •^ < 0, то мы должны найти единственное целое кратное 2, 2s(s = ], 2,. .. ], такое, что 0<Сх<2 для х = х -j- 2s [т. с.
< х < 2 (1 — s)], и представить х, выражая в цифровой форме х.
2 Заказ № Ю2
Однако в этом случае самый левый разряд потеряет значение знакового разряда: он может быть 0 или 1 как для х^О, так и для х < О, следовательно, 0 в самой левой позиции нельзя больше связывать со знаком + числа х. Это может показаться большим недостатком системы, но он легко исправляется — по крайней мерс в достаточной для наших целей степени. Это делается следующим образом.
Мы будем работать обычно с числами х между —,1 и 1, или точнее: —1 ^ а: < 1. В этом случае число х, 0^х<2, отличающееся от х на целое кратное 2, оказывается следующим: если х^>0, то 0<^х< 1; следовательно, х = х и 0<:х< 1; таким образом, самый левый разряд х есть 0. Если х < 0, то —1 <; х < 0; следовательно, х = х + 2 и 1 <; х < 2; таким образом самый левый разряд х есть 1. Итак, самый левый разряд х есть теперь точный эквивалент знака: 0 соответствует плюсу, 1 соответствует минусу.
Резюмируем: накапливающий сумматор можно использовать для представления всех действительных чисел по модулю 2 и для сложения их затем по модулю 2. Если х лежит между —1 и 1 (точнее: —1 <;%< 1) — как это будет почти во всех случаях использования нами машины, — то самый левый разряд представляет знак: 0 —это плюс, 1—это минус.
Рассмотрим теперь отрицательное число х: —1 <^х<0. Положим х =—у, 0<у<Д. Выразим теперь х в цифровой форме, представляя его как х + 2 = 2 — у = 1 + (1 — у\ Это означает, что самый левый (знаковый) разряд х = —у есть, как это и должно быть, 1, а остальные 39 разрядов являются разрядами дополнения у = —х = | х [, т. е. разрядами 1 — у. Таким образом, мы пришли к известному представлению отрицательных чисел дополнением.
Теперь легко сформулировать связь между разрядами х и разрядами —х. Действительно, —х эквивалентно
2 — (21 — 2~39) — я + 2"39 - ( 2 2"l — x ) +2"39.
(Разрядный индекс i = 0, ... , 39 связан с нашим предыдущим разрядным индексом /г = 1, . . . , 40 соотношением i = h — 1. Мы считаем, что I имеет дополнительное значение i = 0, которое соответствует Л=1, т. е. знаковому разряду. Во всяком случае, I выражает позиционное значение того разряда, к которому он относится, проще, чем это делает индекс Ьл это позиционное значение есть 2~^2~(/1-1). Заметим, что если бы мы расположили двоичную запятую в более общем случае между / и /+1, как это рассматривалось выше, то позиционное значение было бы ^^""^ . Сейчас у нас, как указывалось выше, /=1.) Следовательно, его разряды получаются вычитанием каждого разряда х из 1, или
дополнением каждого разряда, т. е. заменой 0 на 1 и 1 на 0, и прибавлением затем 1 в крайнюю правую позицию (с осуществлением переносов, которые могут при этом возникнуть). (Заметьте, как в результате этой процедуры изменяется крайний левый разряд, рассматриваемый в качестве знакового разряда.)
Поэтому вычисление х— у осуществляется накапливающим сумматором следующим образом: образуется х+у\ где у' имеет цифры 0 или 1 в тех разрядах, где у имеет 1 или 0 соответственно; затем прибавляется 1 в крайнюю правую позицию. Эта последняя операция может осуществляться введением переноса в крайний правый разряд накапливающего сумматора, так как этот разряд никогда не получает^ переноса из других^ источников (справа больше разрядов нет).
В свете п. 5.7 умножение требует^принятия специальных мер, так как в этом случае ломается вся процедура с модулем 2. Действительно, предположим, что мы хотим вычислить произведение ху и что мы должны изменить один из сомножителей, скажем х, на целое кратное 2, скажем на 2. Тогда произведение (%+2)z/ отличается от ху на ^у. Однако 2у в общем случае не будет целым кратным 2, так как у в общем случае нецелое.
Мы начнем поэтому рассмотрение умножения с устранения всех этих трудностей и предположим, что оба сомножителя х, у лежат между 0 и 1, или точнее: 0 <i х < 1, 0 <: у < 1.
Чтобы произвести умножение, мы сначала посылаем множитель х в арифметический регистр (АР), состоящий из 40 триггеров, свойства которых будут рассмотрены ниже. Множимое у помещается в селектронный регистр (СР) (см. п. 4.9). Накапливающий сумматор (НС) используется для образования и хранения частичных произведений. Мы будем умножать все множимое последовательно на все цифры множителя. Это можно делать двумя способами: мы можем либо начать с самого младшего разряда — разряда 2~39,— либо с самого старшего разряда — разряда 2-1 — и последовательно подвигаться соответственно влево или вправо. С нашей точки зрения первый способ имеет некоторые преимущества. Поэтому мы опишем именно его.
Умножение выполняется за 39 шагов, которые соответствуют 39 (всем, кроме знака) разрядам множителя х=0, ^ $2, .. . , £39 = =(0,^^. . . £39), перенумерованным в обратном порядке £39, . . . , ^Л^ Предположим, что уже выполнены к—1 первых шагов (^=1, . .., 39), включающих умножение множимого на (^—1) последних цифр множителя: Ё39, . . . , В41_Л, и что в данный момент выполняется к-и шаг, состоящий в умножении на цифру ^о-д* Предположим далее, что НС содержит в данный момент величину Pk.v являющуюся результатом к—1 предыдущих шагов. [Это
(k—1)-е частичное произведение. Ясно, что ро = О Для ^ = 1J В данный момент образуется
2рк = Рк-т + ^о-кУ. т. с.
9п - п + оJ О ДЛЯ <40-6 = 0,
2рк" РкА-V Ук.У к- у у для(1)
Таким образом, мы либо ничего нс делаем, либо прибавляем у, в соответствии с тем, чему равно ^4о-^: 0 или 1- Затем можно получить рк1 уменьшив в два раза 2рк.
Заметим, что сложение в (1) не вызывает переноса за позицию 2°, т. с. за знаковый разряд: соотношение б^рк< 1 справедливо для /z=0, и если оно справедливо для h^k—1, то (1) распространяет его также на h^k, так как 0<^ук< 1. Следовательно, сумма в (1) не превышает двух, и перенос за позицию 2° не возникает.
Отсюда следует, что рк получается из 2рк простым сдвигом вправо, сочетающимся с заполнением нулем знакового разряда (который освобождается этим сдвигом). Сдвиг вправо осуществляется электронным сдвигателем, который является частью НС.
Далее,
%9 = 2 1 {2 1 [2 1 { ...(2 1 ^39// 4- $38^/) • • • } + ^2//] + ^1У} ~
39
= £ 2"г у = ху.
Таким образом, этот процесс даст, как и требовалось, произведение ху. Заметим, что ху является точным произведением.
Так как х и у являются 39-разрядными двоичными числами, то их точное произведение ху есть 78-разрядное двоичное число (мы везде здесь пренебрегаем знаком). Однако НС вмещает только 39 разрядов. Ясно, что это будут 39 левых разрядов произведения ху. 39 правых разрядов будут по одному отбрасываться из НС в течение всех 39 шагов, или точнее — всех 39 сдвигов вправо. Мы увидим ниже, что эти 39 правых, разрядов должны быть и будут сохранены (см. конец этого пункта, а также конец п. 5.12 и п. 6.6.3). Оставшиеся в НС разряды должны быть округлены, но мы не будем здесь рассматривать этого вопроса (см. указанные пункты, а также ч. II, п. 9.9).
Чтобы завершить общую картину нашего метода умножения, мы должны рассмотреть вопрос о том, как воспринимаются соответствующие разряды множителя. Для этой цели можно предложить две схемы. В одной из них с каждым триггером АР связан ламповый вентиль, который открыт, если данный разряд содержит единицу, и закрыт, если он содержит нуль. В этом случае нам
понадобился бы 39-позиционный счетчик в качестве переключателя, который последовательно открывал бы эти вентильные лампы, Вторая схема более эффективна и предусматривает наличие в АР сдвигающей схемы, которая позволяет сдвигать АР на один разряд вправо каждый раз, когда сдвигается НС. Значение разряда, содержащегося в крайнем правом триггере АР, используется для управления множимым. Сам сдвигатель требует одну лампу на разряд. Кроме того, нам нужен счетчик, чтобы отсчитывать 39 шагов умножения; для этого можно использовать 6-разрядный двоичный счетчик. Таким образом, последняя схема более экономична, чем схема с лампами и имеет с нашей точки зрения одно дополнительное преимущество, которое мы рассмотрим в следующем пункте.
Выбор 40-разрядного (включая знак) слова, вероятно, удовлетворяет требованиям большинства вычислительных задач. Могут, конечно, возникнуть положения, когда потребуется более высокая точность, т. е. слова большей длины. Простым примером этого могло бы служить вычисление к с большей точностью, чем это сделано сейчас (около 700 десятичных, т. с. около 2300 двоичных знаков). Более важным примером является решение N линейных уравнений с N переменными при больших N. Дополнительная точность становится, вероятно, необходимой, когда N превышает предел, лежащий где-нибудь между 20 и 40. Подтверждение этой оценки должно основываться на подробной теории обращения числовой матрицы, которая будет дана в одном из последующих отчетов. Поэтому желательно иметь возможность обрабатывать числа с 39# разрядами и знаком программным путем. Для представления одного 39^-разрядного числа со знаком используются к слов. (В этом случае используются 39 разрядов каждого 40-разрядного слова, а все знаковые разряды, за исключением первого, отбрасываются. См. обсуждение двойной точности в ч. II, разд. 9.) При этом нужно заставить машину выполнять элементарные арифметические операции таким образом, чтобы это соответствовало интерпретации объединения из к слов как одного числа (ср. ч. II, п. 9.8—9.10). Для того чтобы числа можно было рассматривать таким образом, нужно сохранять в произведении не 39 разрядов, а 78; подробнее см. ниже, п. 6.6.3. Для этого мы связываем через сдвигающую схему крайний правый разряд НС с крайним незнаковым левым разрядом АР. Таким образом, когда в процессе умножения производится единичный сдвиг, последний разряд НС передается в АР, где при сдвиге множителя освобождается место.
Заканчивая рассмотрение умножения положительных чисел, заметим следующее.
Как говорилось выше, устройство умножения образует 78-раз- рядное произведение ху 39-разрядного множителя х и 39-разряд-
ного множимого у. Мы предполагали, что х ^ 0, у ^ 0, и поэтому имели ху^^. Мы отступим от этих предположений только в п. 5. 10. Однако, кроме этого, мы предполагали также, что х < 1, у < 1, т. е. что двоичные запятые х м у расположены непосредственно справа от знакового разряда, что означает то же самое и для ху. Можно было бы усомниться в необходимости этих дополнительных предположений.
На первый взгляд они могут показаться всего лишь соглашениями, влияющими только на интерпретацию математиком работы машины, а не физическим свойством машины. (Ср. с соответствующим замечанием для сложения и вычитания в п. 5. 7.) Действительно, если х имеет двоичную запятую между /-м и (/+1)-м разрядами, считая слева (ср. с рассмотрением вопроса о / в п. 5.7; то же и для к, см. ниже), а у — между ^-м и (&+1)-м, то описанный метод умножения все еще дает правильный результат ху, при условии что соответствующим образом выбирается положение двоичной запятой произведения ху. В частности, пусть двоичная запятая ху находится между разрядами / и /+1. Число х имеет двоичную запятую между /-м и (/+1)-м разрядами, а его знаковый разряд равен 0; следовательно, оно лежит в диапазоне 0 <С х < 27’"1. Аналогично у имеет диапазон 0 < у < 26"1, а ху — диапазон 0 <С ху < 2Z-1. Указанные диапазоны х м у означают, что диапазон ху должен иметь вид 0 <; ху < 2у1 2д"1=2у+д^2. Следовательно, / = j + к—1. Таким образом, может показаться, что фактическое расположение двоичной запятой справа от знакового разряда, т. е. j=k^l, — все же только соглашение.
Поэтому важно понять, что это не так: выбор / и к в действительности соответствует вполне реальным техническим решениям. Основанием для этого служит следующее: работу машины нужно основывать на единой последовательной математической интерпретации. Поэтому нужно, чтобы все арифметические операции выполнялись бы с одинаково задуманным положением двоичной запятой в НС. Применение этого принципа к х и у дает j=k. Следовательно, положение двоичной запятой для ху определяется выражением j+k—1=2/—1. Если оно должно быть тем же, что и для х и у, то 2/—1=/, т. е. в результате /=1, что дает указанное выше положение двоичной запятой непосредственно справа от знакового разряда.
Существует один возможный выход: помещать в НС не 39 левых разрядов ху (не считая знакового разряда 0), а разряды от / до /+38, считая слева. Действительно, в этом случае положение двоичной запятой для ху будет (2/—I) — (/—1)=/, т. е. тем же самым, что и для х и у.
Это означает, что мы опускаем /—I левых и 40 — / правых разрядов ху и оставляем в НС 39 средних разрядов. Заметим,
что положение двоичной запятой означает, что х < 2У'1, у < 2у-1 и ху может использоваться только в том случае, если ху < 2у-1. Эти предположения обеспечивают только ху < 22у"2. Следовательно, ху должно быть в 2у-1 раза меньше, чем оно могло бы быть. Это как раз можно было бы обеспечить устранением / — 1 левых разрядов, которые мы должны исключить из НС, как показано выше.
Если бы мы захотели использовать такой метод с действительным исключением j—1 левых разрядов, т. е. с /тМ, то нам нужно было бы предусмотреть оборудование для их хранения где-то в другом месте. Усложнилось бы также общее математическое планирование для машины, так как НС теперь фактически содержит 39 весьма произвольно выбранных средних разрядов из 78 разрядов произведения ху. Мы могли бы не предусматривать специального оборудования, но это заставило бы нас убеждаться при математическом планировании каждой задачи в том, что все произведения будут в 2У"1 раза меньше их априорных максимумов. Такое положение вообще возможно, так как подобные проверки неизбежны для других операций. Например, для коэффициента 2 при сложении (положительных чисел) или вычитании (величин с противоположными знаками). (См. также замечания относительно сохранения «внутри диапазона», ч. I, п. 5. 12.) Однако это влечет за собой потерю значащих разрядов, а выбор /=1 позволяет избежать этого при умножении.
Поэтому мы выбираем /=1, т. е. положение двоичной запятой непосредственно справа от знакового разряда, с учетом всего, что из этого вытекает.
Мы переходим теперь к случаю, когда множитель х и множимое у могут иметь любой знак, + или —, т. е. к случаю любой комбинации знаков сомножителей.
Не так-то просто распространить метод, описанный в п. 5. 8, на знаковые разряды х и у. Действительно, мы предполагаем, что — 1 <; х < 1, — 1 <С у < 1, а рассмотренный метод основывался на предположении, что х А> 0 и у А> 0. Следовательно, если х < 0, то естественно использовать х+2, а если у < 0, то естественно использовать УЛ-4!. Отсюда для х < 0, уУ>0 получаем
0N-2) у=ху+2у\
для х > 0, у < 0
х^уА-^ = хуА-^х;
для х < 0, у < 0
U+2) ^уА-^^хуЛ-^хЛ 2у~УА
или, складывая по модулю 2, хуА-^хА-^у. Следовательно, для
х < 0, у < О потребовались бы корректирующие члены — 2у и — 2х соответственно.
Такую поправку можно было бы осуществить, но существует одна трудность: по мере образования ху постепенно теряются все 39 разрядов множителя х — они заменяются 39 правыми разрядами ху (ср. с концом п. 5. 8). Если мы не хотим делать дополнительного 40-разрядного регистра для хранения х, то к концу умножения у нас не будет х. Следовательно, мы не сможем использовать его для поправки на 2х произведения ху, которая оказывается необходимой при у < 0.
Таким образом, описанным выше способом можно воспользоваться только для случая х < 0, но не для случая у < 0.
Тем не менее можно разработать подходящий метод выполнения умножения. К этому мы сейчас и перейдем и сделаем это в несколько этапов. Мы будем предполагать, что —1<^х<1, — 1 <У< 1.
Предположим, что коррекции, связанные с возможностью у < 0, сделаны. Поэтому пусть у = 0. Рассмотрим коррекции, необходимые В СВЯЗИ С ВОЗМОЖНОСТЬЮ X < 0.
Пренебрежем знаковым разрядом х, который равен 1, т. е. заменим его на 0. Тогда х превратится в х'=х—1, а так как — 1 <;х < 0, то х' на самом деле будет вести себя как (х — 1)+2 = --=х+1. Следовательно, наш метод умножения даст x'z/=(x+1) #^ -^ху+у; поэтому в конце умножения потребуется поправка —у. (Заметим, что мы не используем обычным образом знакового разряда х. Если бы мы это делали, то нам, как мы видели выше, потребовалась бы поправка —2#.)
Рассмотрим х = 0. Выполним сначала все необходимые шаги для образования х'у^у^О^, не обращая внимания пока на знаковый разряд х (т. е. считая, что х^0). Как только наступит время, когда должен действовать разряд £0 множителя х, т. е. немедленно после того, как начнет действовать ^, после 39 сдвигов (ср. с концом п. 5.8) — в это время НС содержит, скажем, р (что соответствует р39 в п. 5. 8) — образуем
— (р, если с0=0,
(Р~ У, если ^0=1-
Это р есть ху. (Заметьте разницу между этим шагом, образующим р, и 39 предыдущими шагами в п. 5. 8, образующими Ри Ри • • • » Рзо*)
Рассмотрев случай х < 0, мы можем теперь предположить,
что х "> 0. В этом предположении мы должны рассмотреть все удО. Так как уД>0 возвращает нас к знакомому случаю п. 5.8, нам нужно рассмотреть только случай у < 0.
Пусть у’ будет числом, полученным в результате пренебрежения знаковым разрядом у, который равен 1, т. е. в результате замены его на 0. Как и выше, у' ведет себя не как у—1, а как (z/— 1)+2^//+1. Следовательно, описанный в п. 5. 8 метод умножения дает ху' — х (у г^^ху тх, поэтому потребуется поправка х. (Заметьте, что подобно тому, что мы видели в первом случае, устранение знакового разряда у заменяет поправку —2х поправкой — х.) Как мы отмечали раньше, поправку —х нельзя добавлять к ху' в конце умножения, так как в это время х уже нет. Поэтому мы должны осуществлять эту коррекцию поразрядно, вычитая каждый разряд в то время, когда он в последний раз находится в АР, и так, чтобы это делалось с соответствующим позиционным значением.
Рассмотрим теперь х^О.^Д^ ..., ?з9=(?1Д2, • • •, ^зэ)- Все 39 разрядов ^, . .. , ^39 множителя х теряются, начиная с правого разряда, в процессе 39 сдвигов умножения, описанного в п. 5. 8. В (&+1)-й операции (^=0, 1,..., 38; ср. п. 5.8) цифра Е39_^ находится в самом крайнем правом разряде АР; она используется и затем теряется в результате сдвига вправо (НС и АР). За этим шагом следует 39 — (&+1)=38— k шагов; поэтому до последнего сдвига должно произойти еще 39 — k сдвигов. Следовательно, в данный момент позиционные значения в 239-д раза больше, чем они будут в конце умножения. Цифра Е39_£ корректирующего члена —х должна появиться в конце со знаком минус и с позиционным значением 2-(39-^). Поэтому мы можем ввести ее во время (&+1)-го шага (перед сдвигом в этом шаге) со знаком минус и с позиционным значением 1, т. е. ввести — ^39_^ в знаковый разряд.
Однако это недопустимо. Действительно, цифра Е39_£ могла бы вызвать перенос (если с39_^ = 1), который должен был бы уйти за знаковый разряд (слева больше нет разрядов). Эта ошибка по своему происхождению является целым кратным 2, но 39 — к последующих сдвигов уменьшат ее позиционное значение в 239"^ раз. Следовательно, она может изменить конечный результат на целое кратное 2-(38-А;) , — а это уже настоящая ошибка.
Прибавим поэтому в знаковый разряд 1 —^39_^, т- е- 0 или 1, если ё39_^ = 1 или 0 соответственно. Мы покажем ниже, что в этом случае никаких недопустимых переносов не возникает. Принимая это пока без доказательства, посмотрим, каков будет конечный 39 результат. Мы делаем коррекцию не на —х, а на %2~*— х =
= 1—2“39— х. Поэтому в конце нам потребуется коррекция на — 1 + 2~39. Коррекцию в конце (после всех сдвигов) можно делать по модулю 2. Это означает, что мы должны прибавить 1 + 2~39, т. е. по 1 в обе крайние позиции. Прибавление 1 к крайней правой позиции имеет тот же результат, что и в конце п. 5.7 (при вычитании). Оно эквивалентно введению переноса в самый правый разряд НС. Прибавление 1 к крайней левой позиции, т. е. в знаковый разряд, дает 1, так как этот разряд обязательно равен 0. (Действительно, последняя операция кончилась сдвигом, освободив знаковый разряд; ср. ниже.)
Рассмотрим теперь вопрос о переносе, который может возникнуть в 39 шагах описанного выше процесса. Для этого рассмотрим ^-й шаг ^к=\, ..., 39), который представляет собой вариант к-го шага умножения положительных сомножителей, описанного в п. 5. 8. Сделаем это так же, как в п. 5. 8, иначе говоря, посмотрим, что делается с формулой (1) п. 5.8. Ясно, что 2рк = ~Pk-X + 0^0-/?) + ^40-/? У’> Т‘ е*
,,(1 для ?40_£ = 0,
2Р* = Рк-i + Ук',у к- =,5 j (2)
I У ДЛЯ с40_£ — 1.
Это значит, что мы прибавляем 1 (знаковый разряд у) или yf (у без знакового разряда) в соответствии с тем, чему равен разряд 5<о-^: 0 или 1- Затем рк получается уменьшением в два раза 2рк.
Теперь сложение (2) не вызывает переносов за позицию 2°, как мы и утверждали выше, по тем же причинам, что и сложение (1) в п. 5.8. Это можно доказать таким же образом, как и там: соотношение 0 <С рк < 1 справедливо для h = 0 и, если оно справедливо для h = k—1, то (1) распространяет его также на h = k, так как О^Ук< 1. Следовательно, сумма (2) не меньше нуля и не больше двух и никаких переносов за позицию 2° не возникает.
В трех последних пунктах мы предполагали, что у < 0.
Вернемся теперь к общему случаю у^О. Мы можем описать выражение (1), данное в п. 5.8 (справедливое для у^О), и приведенное выше выражение (2) (справедливое для у < 0) единой формулой: о _■"" _ f знаку у для ^о.^ = 0,
2Рк — Рк-х "г Ук, Ук — уу без знакового разряда для £40_£ = 1. (3) Таким образом, словесная формулировка (2) превращается в следующую: прибавляем знаковый разряд у или у без знакового разряда в соответствии с тем, чему равна цифра £40-^ 0 или 1. Так как 0<^рА,< 1, сложение (3) никогда нс дает переноса за позицию 2°; рк получается из 2рк сдвигом вправо, в результате чего знаковый разряд становится 0. (Ср. с другой, явной формой сдвига вправо, заданной в виде приказа в табл. 2, ч. II.)
Для y^Q ху есть р^, для у < 0 ху получается из р^ введением переноса в самый правый разряд НС и занесения 1 в знаковый разряд НС.
Этот метод применяется для х ^ 0. Он должен быть также применим и для х < 0, так как в нем используются только незнаковые разряды х; при этом в конце из результата нужно вычесть у.
Описанный метод двоичного умножения будет проиллюстрирован в п. 5. 15 несколькими примерами.
Чтобы закончить рассмотрение органов умножения нашей машины, мы должны вернуться к рассмотрению упомянутых в п. 5. 5 типов накапливающих сумматоров. При работе статического накапливающего сумматора к двум его входам (по одному для каждого из складываемых чисел) одновременно прикладываются статические напряжения. После достижения равновесного состояния схемы получается полная сумма со всеми переносами. Следует только отмстить, что для завершения переносов такая схема требует максимум 39 нарастаний. На самом деле возможно, что'суммарная длительность этих последовательных нарастаний меньше, чем в 39 раз превышает время первого нарастания.
Каждый разряд динамического накапливающего сумматора состоит из одного двоичного счетчика для хранения цифры и одного триггера для временного запоминания переноса. Счетчик получает импульс, если в данный разряд должна быть прибавлена единица. Если при этом счетчик переходит из 1 в 0, то происходит перенос, устанавливающий триггер переноса. Этот триггер затем используется для осуществления переноса. Каждый триггер связан со своим вентилем, выход которого подан на следующий слева двоичный счетчик. Перенос начинается с опроса всех вентилей переноса. Перенос может вызвать новый перенос; поэтому нужно, чтобы процесс повторялся до тех пор, пока весь триггерный регистр переносов нс станет 0. Нулевое состояние регистра переносов можно обнаружить с помощью схемы с лампой, связанной с каждым триггером переноса. В п. 5. 6 было показано, что для полного переноса требуется в среднем пять перебросов триггера. Другая схема состоит из вентильных ламп, связанных с каждым двоичным счетчиком. Каждая такая лампа будет определять, вызовет ли приходящий импульс переноса новый перенос. Если да, то она будет пропускать приходящий импульс переноса непосредственно в следующий разряд. Такая схема потребовала бы самое большее 39 времен нарастания для завершения переноса (в действительности меньше, см. выше).
В настоящее время разработка статического накапливающего сумматора заканчивается. На основе предварительных испытаний можно предполагать, что он будет складывать два числа прибли-
зительно за 5 мксек и сдвигать вправо или влево приблизительно за 1 мксек
Вернемся теперь к операции умножения. В статическом накапливающем сумматоре для каждого из 39 шагов умножения мы делаем одновременно прибавление множимого без знака или знака множимого (ср. п. 5. 10) и полный перенос и затем осуществляем сдвиг. В динамическом накапливающем сумматоре второго типа мы для каждого из 39 шагов делаем последовательно прибавление множимого без знака или знака множимого, полный перенос и сдвиг. В динамическом накапливающем сумматоре первого типа можно избежать потери времени, необходимого для завершения переноса на каждом из 39 шагов (в данном случае в среднем 5 тактовых импульсов). В ,этом случае сначала осуществляется прибавление множимого без знака или знака множимого, затем делается один опрос вентилей переноса и наконец сдвигается содержимое разрядных счетчиков и триггеров переноса. Этот процесс повторяется 39 раз. Простой арифметический анализ, который мы возможно выполним в другом отчете, показывает, что каждому из этих промежуточных шагов соответствует единственный перенос и что полный ряд переносов потребуется только в конце. После описанного выше процесса осуществляются дополнительные коррекции, которые все еще нс вызывают окончательного переноса. Окончательный перенос осуществляется после всех коррекций и после округления, рассматриваемого ниже.
12. Рассмотрим теперь правила округления до п цифр. Чтобы правильно оценить имеющиеся для этого возможности, и в частности роль «несмещенности», необходимо отчетливо представить себе тс условия, в которых округление необходимо.
Каждое число х, которое появляется в вычислительной машине, является приближением другого числа х\ которое появилось бы, если бы вычисление выполнялось абсолютно точно. Погрешности, которые мы здесь имеем в виду, не являются результатом неточности метода, применяемого для решения задачи, как например погрешности, появляющиеся при замене (неперывного) дифференциального уравнения (дискретным) разностным уравнением. В последнем случае результат приближения должен оцениваться математически человеком, планирующим задачу, и не должен касаться непосредственно машины. Действительно, с таким приближением должен иметь дело математик, а нс машина, поскольку характер и сложность приближения, а также связанные с ним трудности могут быть самыми различными в зависимости от решаемой задачи. Мы рассматриваем здесь приближения следующего вида. Даже элементарные арифметические операции, к которым должна быть сведена истинная задача после се математически приближенной
постановки для машины, выполняются машиной не строго. Машина имеет дело с ^-разрядными числами, где п, как бы велико оно ни было, должно быть фиксированной величиной. (Мы предположили, что в нашей машине будет 40 разрядов, включая знак, т. е. м = 39.) Сумма и разность двух /г-разрядных чисел будут также ^-разрядными числами, но этого нельзя сказать (в общем случае) об их произведении и частном (которые в общем случае имеют 2м или бесконечное число разрядов соответственно). Следовательно, умножение и деление неизбежно должны быть заменены в машине двумя другими операциями, которые при всех условиях должны давать п разрядов и должны лежать при этом как можно ближе к результатам истинного умножения и деления. Эти операции можно было бы назвать псевдоумножением и псевдоделением, однако по принятой терминологии их называют умножением и делением с округлением. (Создастся впечатление, что сложение и вычитание полностью свободно от этих недостатков. Это справедливо только постольку, поскольку в результате этих операций нс могут возникнуть новые разряды справа, как при умножении и делении. Однако в результате этих операций могут возникнуть новые разряды слева, т. е. они могут привести к тому, что числа «выйдут из диапазона». Это осложнение хорошо известно. Обычно оно преодолевается человеком, планирующим задачу, который делает соответствующие математические оценки и заботится о том, чтобы сохранить числа «внутри диапазона». Так как мы предполагаем, что наша машина будет оперировать с числами, лежащими между — 1 и 1, то умножение никогда не может привести к тому, что числа «выйдут из диапазона». Деление могло бы вызвать такое осложнение. Поэтому человек, планирующий задачу, должен следить за тем, чтобы при каждом делении абсолютная величина делителя была больше абсолютной величины делимого.)
Таким образом, округление предназначается для получения удовлетворительных ^-разрядных приближений для произведения ху и частного х!у двух ^-разрядных чисел. Желательно, чтобы такое приближение обладало следующими свойствами: 1) оно должно мало отличаться от «истинных» ху и xiy, т. с. должно иметь как можно меньшую дисперсию; 2) оно должно быть «несмещенным», т. с. его среднее должно быть равно «истинному» ху или х!у.
Эти пожелания, однако, нужно рассматривать совместно с некоторыми пояснениями, а именно: а) х и у, вероятно, сами являются результатами аналогичных округлений, прямо или косвенно присущих им, т. с. х и у сами должны рассматриваться как несмещенные ^-разрядные приближения «истинных» значений х' и у'\ б) говоря о «дисперсии» и «среднем» мы вводим статистические
понятия. Приближения, которые мы здесь рассматриваем, на самом деле нс обладают статистической природой, они являются следствием своеобразия (с нашей точки зрения, недостатка) арифметического и цифрового представления и поэтому в действительности строго и однозначно определены. Однако, как нам кажется, при современном состоянии математики бесполезно пытаться рассматривать такие вопросы строго. Кроме того, некоторый статистический подход, хотя и точно нс обоснованный, всегда давал правильные результаты. При таком подходе цифры, которые мы нс хотим в последующих вычислениях использовать порознь, можно рассматривать как случайные величины с равновероятными цифровыми значениями и считать, что две такие цифры статистически независимы (если мы заведомо не знаем, что это не так).
Усвоив это, мы можем перейти к рассмотрению методов округления, которые будем применять к умножению и делению.
Пусть х = (0, ^. . Д„) и у = (0, ^ ... -q^ — несмещенные приближения х7 и у7. Тогда «истинное» ху = (О, , ^2/?) и «истинное» х/у = (0, о)ь ..., о)л(ол+1...) являются приближениями для х7 у7 и х7[у7. Прежде чем рассмотреть вопрос о том, как их округлять, мы должны знать, являются ли сами «истинные» ху и х!у несмещенными приближениями х7у7й х7!у7. Произведение ху есть действительно несмещенное приближение х7у7, т. с. среднее значение ху есть среднее значение х (равное х7\ умноженное на среднее значение у (равное у7\ вследствие предположения о независимости, которое мы сделали выше. Однако, если х и у связаны друг с другом, то появляется смещение (например, при х = у, т. с. при возведении в квадрат). Оно имеет порядок величины среднего значения квадрата х— х7, т. е. дисперсии х. Так как х имеет п разрядов, то дисперсия равна приблизительно 1/22л. (Если цифры х7, следующие за п разрядами, совсем неизвестны, то наше исходное предположение даст дисперсию 1/12-22л.) Частное xly можно записать как ху-1, а так как мы уже рассмотрели смещение произведения, то нам теперь остается рассмотреть обратную величину у-1. Если у — несмещенная оценка у7, то у-1 нс является несмещенной оценкой у7-1, т. е. среднее значение обратной величины не равно обратной величине среднего значения у. Их разница равна дисперсии у, умноженной на ~ у~\ т. с. по существу равна тому же порядку величины, что и смещение, найденное в случае возведения в квадрат.
Из всего сказанного следует, что бесполезно пытаться избежать смещения порядка величины 1/22п или меньше. (Может показаться, что приведенный выше коэффициент V12 должен изменить рассматриваемый порядок величины. Однако ошибка смещения выражается квадратным корнем из дисперсии, а ]/(1/12) ~0,3— очень небольшой коэффициент.) Так как мы предполагаем использовать
п = 39, то I/278 (~ 3-I0"24)— это критический случай. Заметим, что этот возможный уровень смещения в 239 (~ 2-1012) раз меньше величины последнего значащего разряда. Следовательно, мы будем искать правила округления до п разрядов «истинных» ху = (О, Сх, • • •, Сл Сл+1> • • • > ^2«) и х!у (0, сог, ..., и)л <ол+1 о)л+2...). Сформулированное раньше пожелание (1) о том, чтобы дисперсия была мала, все еще имеет силу. Однако пожелание (2) о том, чтобы смещение было нулевым, нужно в соответствии со сказанным выше изменить на величину порядка 1/22л.
Методы округления, которые мы в связи с этим можем использовать, распадаются на два класса. Первый* класс характеризуется тем, что пренебрегают всеми разрядами, следующими за п-м, и даже самим n-м разрядом, который заменяется 1. Второй класс характеризуется тем, что прибавляют единицу в (и + 1)-й разряд, осуществляют перенос, который может при этом возникнуть, и затем оставляют п первых разрядов.
Легко оценить результат каждого из этих методов в применении к числу вида (0, vr.. . vn vrt+1 .. .). В первом случае можно сказать, что мы имеем дело с (0, vx.. . ул-1) плюс случайное число вида (О, 0 ... О ул vn+1 уп+2 • • •), т. е. случайное в интервале (0, I^”"1). Сравнивая с округленным значением (0, vr v2 • • • vn-i I), получаем случайную разность, лежащую в интервале (— 1 /2”э 1/2”). Следовательно, ее среднее значение равно 0 и дисперсия равна 1/3-22л. Во втором случае мы имеем дело с (0, vr. . .ул) плюс случайное число вида (0, 0 ... 0 0уп+1 уп+2 • • •), т- е- случайное в интервале (О, 1/2”). «Округленное» значение будет (0, vr.. .ул), увеличенное на 0 или 1/2”, в зависимости от того, лежит ли рассматриваемое случайное число в интервале (0, 1/2л+1) или в интервале (1/2”+1, 1/2”). Следовательно, сравнивая с «округленным» значением, получаем случайную разность в интервалах (0, 1/2”+1) и (0, —1/2”+1), т. с. в интервале (— 1 /2”+1, 1/2лН). Отсюда следует, что ее среднее значение равно 0 и дисперсия равна 1/12-22л.
Если число, которое нужно округлить, имеет вид (О, vr.. ?*п уп+1 ул+2 ... ул+р) ^р конечно), то эти результаты несколько меняются. Порядок величины дисперсии остается тем же; действительно, для больших р даже относительным изменением можно пренебречь. Средняя разность отклоняется от 0 на величину, которая, как легко подсчитать, имеет порядок Q(^n (V^ = 1/2л+Л
При делении перед нами возникает первый случай, х!у = (0, ^ . .. (о„ (ол+1 о)л+2...), т. с. р бесконечно. При умножении — второй, ху = (0, ^ . £2п), т. с. р = п. Следовательно, для деления оба метода применимы без изменения. При умножении может быть введено смещение порядка 1/22”. Мы видели, что бессмысленно настаивать на устранении смещения такого по-
рядка. Поэтому в этом случае мы будем пользоваться этими методами также без изменения.
Следует отмстить, что в случае умножения смещение можно устранить разными путями. Однако по причинам, изложенным выше, мы нс будем усложнять машину введением таких коррекций.
Таким образом, у нас есть два стандартных метода «округления» с дисперсией 1/3-22л и 1/12-22", т. е. с рассеянием, составляющим (1/УЗ ) (1/2/0,58 и (1 /2]/3 ) (1/2") = 0,29 значения последнего разряда. Оба они являются несмещающими в достаточной для нас степени. Первый из них не требует возможности переноса, второй — требует.
Поскольку мы предполагаем образовывать произведение х'у' в накапливающем сумматоре, обладающем возможностями осуществления переноса, у нас нет причин отказываться от описанной выше схемы округления с меньшим рассеянием, т. с. схемы, которая может вызвать перенос. Однако в случае деления мы хотим избежать схем округления, приводящих к переносам, так как мы рассчитываем образовывать частное в арифметическом регистре, нс позволяющем осуществлять переносы. В соответствии с этим мы отдаем предпочтение схеме, в которой со^ заменяется на 1. Этот метод имеет то решающее преимущество, что он позволяет нам записывать приближенное значение частного как только становятся известными его первые п— 1 разрядов. Мы увидим ниже в п. 5. 14 и 6. 6. 4, что наш метод образования частного двух чисел всегда будет приводить к результату, который правильно округлен в соответствии с только что принятым решением. Мы нс обращаем серьезного внимания на тот факт, что наша схема округления в случае деления дает рассеяние в два раза большее, чем при умножении, так как деление является значительно более редкой операцией.
Еще одно замечание следует сделать в связи с редко встречающейся необходимостью иметь больше чем п = 39 разрядов. Мы имеем достаточно гибкое логическое управление, которое позволяет рассматривать ^(/? = 2, 3, .. .) слов как одно число, что дает п = 39/?. В этом случае округление должно осуществляться иначе (ср. ч. II, разд. 9). При умножении чисел, имеющих по 39 разрядов, устройство умножения дает все 78 разрядов — по 39 разрядов в НС ив АР. Затем они соответствующим образом обрабатываются. (Подробнее см. ч. II, п. 6.6.3 и 9.9 — 9. 10.) Устройство деления работает только с 39 разрядами. Даже если х й у имеют по 39/? разрядов, при образовании х!у нужно использовать только 39 разрядов; результат будет иметь 39 разрядов. Наиболее удобно, как нам кажется, использовать этот результат в качестве первого шага в серии последовательных приближений.
Последующие улучшения этого результата могут быть получены различными способами. Один путь заключается в использовании хорошо известной итеративной формулы (см. п. 5. 4). Для & = 2 потребуется один шаг, для к = 3, 4 — два шага, для &=5, 6, 7, 8 — три шага и т. д. Другой способ состоит в следующем. Вычислить остаток, используя приближенное, 39-разрядное, частное и полные, 39/?-разрядные, делимое и делитель. Разделить его снова на приближенный, 39-разрядный, делитель, получив таким образом следующие 39 разрядов частного. Повторять этот процесс до тех пор, пока нс будут получены все нужные 39/? разрядов частного.
13. Мы могли бы здесь упомянуть об осложнении, которое возникает, когда в машину вводится двоичная плавающая запятая. В машине с двоичной плавающей запятой операция сложения, которая обычно занимает самое большее 1/10 времени умножения, становится значительно длительнее, так как кроме сложения необходимо производить сдвиги и округления. В этом случае, по-види- мому, целесообразно положить время сложения равным от Ч3 до г/2 времени умножения. Ясно, что при такой скорости число сложений в задаче становится настолько же важным фактором, как и число умножений. (Более подробно о двоичной плавающей запятой см. п. 6. 6. 7.)
14. Мы заканчиваем рассмотрение арифметического устройства описанием метода выполнения операции деления. При осуществлении деления мы будем хранить делитель в СР, частичный остаток в НС и частичное частное в АР. Прежде чем продолжать, рассмотрим методы деления с восстановлением остатка и без восстановления остатка. Чтобы иметь возможность провести некоторые сравнения, мы сделаем это для общего случая основания гп = 2, 3, . . . .
Предположим пока, что делимое и делитель положительны. Обычный процесс деления состоит в вычитании из частичного остатка (в самом начале процесса это делимое) делителя, причем это повторяется до тех пор, пока частичный остаток не станет меньше делителя. Для каждого позиционного значения в частном при правильно проведенном делении вычитание нужно повторить самое большее т— 1 раз. Если после точно к = 0, 1, . .., т— 1 повторений этого шага частичный остаток действительно стал меньше делителя, то в частное (в рассматриваемый разряд) ставится Цифра к, частичный остаток сдвигается на один разряд влево, и весь процесс повторяется для следующего разряда и т. д. Заметим, что упомянутое выше сравнение величин необходимо только для к 0, 1, . .., т— 2, т. е. перед шагом 1 и после ша-
гов 1, ..., tn — 2. После достижения значения k = m—1, т. е. после (т—1)-го шага, при правильно выполняемом делении частичный остаток становится меньше делителя и операцию над рассматриваемым разрядом можно закончить. (В двоичной системе m = 2 и мы имеем, таким образом, только один шаг и только одно сравнение величин перед этим шагом.)
Таким образом, этот метод, известный как метод с восстановлением остатка, требует максимум т— 1 сравнений и использует цифры 0, 1, ...,т—1 в каждом разряде частного. Трудность реализации этого метода на машине заключается в том, что обычно единственный экономичный способ сравнения двух чисел по величине состоит в вычитании одного числа из другого. Если бы частичный остаток гп стал меньше делителя d, то после сравнения следовало бы прибавить d к гп — d для того, чтобы восстановить остаток. Поэтому в конце каждого шага выполнялась бы ненужная операция. Более симметричную схему дает метод без восстановления остатка. В этом методе (начиная отсюда нам не нужно предполагать, что делимое и делитель положительны) сравниваются знаки гп и d. Если они одинаковы, то делитель многократно вычитается из остатка до тех пор, пока знаки не станут противоположными. Если они противоположны, то делитель многократно прибавляется к остатку до тех пор, пока знаки не станут одинаковыми. Очевидно, что в этой схеме в данном разряде частного могут появиться цифры + 1, + 2, ..., +(т—1), причем положительные цифры соответствуют вычитаниям, а отрицательные — сложениям делителя и остатка.
Таким образом получается 2(т—1) цифр вместо обычных т цифр. В десятичной системе это означало бы 18 цифр вместо 10. Такое обозначение избыточно, поэтому нужно перейти к стандартному виду частного. Для этого из набора положительных цифр частного вычитается набор его отрицательных цифр. Это требует наличия возможностей переноса в том месте, где хранится частное.
Мы предполагаем хранить частное в АР, где нет средств для осуществления переноса. Поэтому мы не могли бы воспользоваться этим методом, если бы должны были работать в десятичной системе.
Такое же возражение против этого метода справедливо и при любом другом основании т, для которого рассмотренное цифровое представление избыточно, т. е. когда 2(т—1) > т. Условие 2 (т— 1) > т выполняется всякий раз, когда т > 2, но 2 (т—1) = т для т = 2. Следовательно, при использовании регистра, не обладающего возможностями переноса, применение этого метода деления исключается с самого начала, если не пользоваться двоичной системой.
Исследуем теперь случай с двоичной системой. Зададимся целью
получить, используя метод без восстановления остатка, квазичастное с цифрами 1, 0 вместо 1, — 1. Точнее говоря, следует поставить вопрос: существует ли простое соотношение между квазичастным и истинным частным?
Предположим пока, что на этот вопрос можно ответить утвердительно, и опишем такой способ деления. Делимое первоначально хранится в НС, делитель — в селектронном регистре СР, а частное образуется в АР. Содержимое СР прибавляется или вычитается из НС в зависимости от того, противоположны или одинаковы знаки в НС и СР, и в правый разряд АР записывается соответственно 0 или 1. Затем НС и АР сдвигаются на один разряд влево с помощью электронных сдвигателей, которые являются частями этих двух схем.
Для умножения нужно иметь возможность сдвигать вправо как НС, так и АР (см. п. 5.8). Теперь мы обнаружили, что для деления необходим аналогичный сдвиг влево НС и АР. Следовательно, оба органа должны иметь возможность с помощью электроники осуществлять сдвиг в обе стороны. Так как эти сдвиги необходимы для подразумевающихся нужд умножения и деления, то хорошо также использовать их явно в виде приказов. Таковы приказы 20 и 21 в табл. 1 и 2, ч. II. Однако, как оказалось, сдвиги, встречающиеся при выполнении явных приказов, удобнее организовать несколько иначе, чем сдвиги, встречающиеся неявно при выполнении умножения и деления. (О сдвигах см. в конце п. 5.8 и в третьем замечании ниже, а также в третьем замечании п. 7.2, ч. II.)
Закончим теперь рассмотрение деления. Описанный выше процесс должен будет повторяться столько раз, сколько разрядов частного мы захотим получить. Вероятно, это будет 39 или 40; мы точнее определим это число несколько позднее.
С помощью этого процесса мы образуем цифры частного Q = 0 или 1, в то время как на самом деле они должны быть ^ = —1 или 1, Cf = 2Cz — 1. Таким образом, существует разница между истинным частным г (с цифрами Q и квазичастным zr (с цифрами С/ ), но в то же время мы знаем взаимно однозначное соответствие между их цифрами. Было бы легко непосредственно получить алгебраическое выражение, устанавливающее связь между 2 и zr, но нам кажется лучше сделать это по ходу рассмотрения процесса деления, ответив одновременно на ряд других вопросов.
Сделаем сначала несколько общих замечаний.
Пусть а;— делимое, у— делитель. Мы предполагаем, конечно, что —1 < х < 1, —1 < у < 1. Мы увидим, что на данный процесс деления совершенно не влияют знаки х и у, поэтому никаких ограничений на этот счет не требуется.
С другой стороны, частное z^xjy должно удовлетворять неравенству —1 < 2< 1. Кажется несколько проще, хотя это совсем необязательно, исключить из рассмотрения случай 2 = —1 и потребовать |г|< 1. По отношению к делимому х и делителю у это означает, что мы исключаем случай х = —у и предполагаем \х\<у.
Деление выполняется за п шагов, которые соответствуют п цифрам Сь . .. , ^п псевдочастного z’, причем п еще должно быть определено (по-видимому, это будет 39 или 40). Предположим, что к—1 первых шагов (& = 1, . .. , и) уже выполнены, в результате чего получены к— 1 первых цифр Сь . . . , ^_i, и что выполняется ^-й шаг, дающий ^-ю цифру ^ . Предположим далее, что в данный момент НС содержит величину гк-1, являющуюся результатом к—1 первых шагов. (Это (ft—1)-й частичный остаток. Ясно, что г0=х для ^=1.) Образуем гк = 2гк_1ч1 У в соответствии с тем, одинаковы или нет знаки у гк_х и у.
ф означает f"" ’ если знаки rk-i и У одинаковые,
w , если знаки гк_х и у различные. (4)
Посмотрим теперь, какие при этом могут возникнуть переносы. Можно рассуждать следующим образом: неравенство | rh | < | у | справедливо для h^O (| г01 = | х | < | у |), и если оно справедливо для h^k—1, то (4) распространяет его также на h^k, так как гк_х и ©У имеют разные знаки. Последнее утверждение можно несколько развить: из-за разных знаков
—I < 2| </| —|^1 = И-
Следовательно, всегда \гк | < | у | и поэтому тем более |rk | < 1, т. е. —1 <rk< 1. Отсюда следует, что в (4) одно слагаемое обязательно больше —2 и меньше 2, второе не меньше —1 и меньше 1, а сумма больше —1 и меньше 1. Поэтому операции выражения (4) можно выполнять по модулю 2, не обращая внимания на возможность переноса за позицию 2°; при этом гк будет автоматически правильным [в интервале (—1, 1)].
Заметим, однако, что знак гк-1, играющий важную роль в (4), только тогда правильно определяется на основе знакового разряда, когда число, откуда он берется, лежит в интервале (—1, 1) (см. п. 5.7). Этому требованию, как мы видели выше, удовлетворяет rk_v но не обязательно должно удовлетворять число 2rk_v Поэтому знак гк_х (т. е. его знаковый разряд), как этого требует (4), должен определяться перед удвоением гк_х.
Удвоение тк_х можно осуществлять простым сдвигом влево, при котором самый левый разряд (знаковый) всегда теряется; это соответствует пренебрежению переносами за позицию 2°, что, как показано выше, для выражения (4) допустимо. (См., однако, ч. II, табл. 2 для другого типа сдвигов влево, которые задаются в виде явных приказов.)
Рассмотрим теперь точный смысл (4). Равенство Q =1 или О означает, что ф есть — или + соответственно. Следовательно, (4) можно записать в виде
т. е.т. е.г6 = 2гА_1 + (1 — 20 у,
т. е.
т. е.
2~к гк = Гкх + ( 2~к — 2~(6-1) <к ) и.
Суммирование по ^^1, . . . , п дает
т. е.
(
п\
-1 + 2 2^-° ci + r н 2ГП гп
к=\/
_ п
Отсюда ясно, что 2 = —I + У 2~(А:''1) С& + Т"п соответствует истинному частному 2 = х/у, а 2~пгп с абсолютным значением, меньшим 2-л | у | < 2'п,—остатку. Следовательно, если мы пока пренебрежем членом —I, то ф2, . . . , С, 1 представляют собой п ф I первых цифр, которые мы можем использовать как истинное частное, причем знаковый разряд входит в эту последовательность.
Если мы не хотим иметь дело с более сложными методами округления, для которых необходима большая емкость сумматора, чем у единственного нашего сумматора НС, то полученные выше результаты наводят на мысль, что мы должны положить п + 1 = 40, т. е. п = 39. Тогда ^ , .. . , С будут представлять собой 39 цифр частного, в которые входит знаковый разряд, но не входит крайняя правая цифра.
Крайняя правая цифра частного получается в результате засылки I в правый разряд НС.
Теперь становится очевидным дополнительный аргумент в пользу принятого метода деления. Этот метод совпадает (не требуя никакой дальнейшей коррекции) со вторым методом округления, который мы рассматривали в п. 5.12.
Остается член —1. В конечном результате, который больше вправо не сдвигается, можно пренебречь переносом влево за пределы позиции 2°. Следовательно, все сводится просто к изменению знакового разряда частного 2, т. е. к замене нуля или единицы соответственно единицей или нулем.
На этом мы заканчиваем рассмотрение схемы деления. Однако мы хотели бы еще раз подчеркнуть две отличительные особенности, которыми она обладает.
Данная схема деления применима для любых комбинаций знаков делимого и делителя. Это характерно для схем деления без восстановления остатка, но не имеет места для какой-либо простой известной схемы умножения. Следует напомнить, в частности, что в нашем методе умножения, описанном в п. 5.9, должны быть предусмотрены специальные корректирующие шаги для случая, когда один или оба сомножителя отрицательны.
Эта схема деления осуществима только в двоичной системе; она не имеет аналога для какого-либо другого основания.
Описанный метод двоичного деления будет проиллюстрирован несколькими примерами в п. 5.15. .
5. Мы приводим ниже несколько примеров, иллюстрирующих операции двоичной арифметики, которые мы рассмотрели в предыдущих пунктах.
Нам кажется, что лучше всего начать с примера сложения, хотя сложение и не относится к трудным или неясным операциям.
Двоичная система Десятичная система
(дробь)
1-е слагаемое2-е слагаемоеСумма (Переносы)1-е слагаемое2-е слагаемоеСумма (Переносы)0,010110011179/5120,011010111215/5120,110001010394/5121111 1110,010110011179/5120,011010111215/5120,110001010394/5121111 111
1-е слагаемое
2-е слагаемое
Сумма
(Переносы)
1-е слагаемое
2-е слагаемое
Сумма
(Переносы)
0,010110011179/512
0,011010111215/512
0,110001010394/512
1111 111
0,010110011179/512
0,011010111215/512
0,110001010394/512
1111 111
В последующих примерах мы не будем больше показывать переносов.
Образование отрицательного числа (см. п. 5.7):
Десятичная система(дробь)372/512Десятичная система(дробь)372/512Двоичная система
Десятичная система(дробь)372/512
Десятичная система(дробь)372/512
0,101110100
ДополнениеДополнение1,010001011
Дополнение
Дополнение
1
1,010001100
-14-140/512
Вычитание (см. п. 5.7):
Двоичная система
Десятичная система (дробь) 215/512
Вычитаемое
0,011010111
Уменьшаемое
0,110001010
394/512
Дополнение вычитаемого . . .
1,100101000
1
— 14-297/512
Разность
0,010110011
179/512
Умножение (см. п.
5.8 и
5.9):
Двоичная система
Десятичная
система (дробь)
Множимое
. .0,101
5/8
Множитель
....
. .0,011
3/8
0101
0101
0
Произведение . . . .
....
. . 0,001111
15/64
Двоичная
система
Десятичная система (дробь)
Множимое ......
. 1,101
—3/8
Множитель
....
. 1,011
—5/8
0101
0101
1
0,101111
Коррекция I1) . . . .
....
. 1 1
1,110111
Коррекция 22) (дополнение мно-
жимого)
. 0,010
1
0,001111
15/64
Деление (см. п. 5.14):
ЦЧЗ) 1,011000 0,001111ЦЧЗ) 1,011000 0,001111Десятичнаясистема (дробь)—5/815/64Десятичнаясистема (дробь)—5/815/64Двоичная система
ЦЧЗ) 1,011000 0,001111
ЦЧЗ) 1,011000 0,001111
Десятичнаясистема (дробь)—5/815/64
Десятичнаясистема (дробь)—5/815/64
Делитель .
Делимое .
0,011110 0
1,011000
1,110110
1,101100
0,100111
1
1
0,010100
0,101000
1,011000
0,000000
0
0,000000
1,011000
0
1,011000
0,110000
0,100111
1
1
1,011000
Частное (нескорректированное)
0,10011
1
» (скорректированное)
1,100111
— 1+39/64= =—25/64
Ц Для знака множимого.
2) Для знака множителя.
3) Цифры частного.
Заметим, что частное отличается на 1/64, т. е. на одну единицу самого правого разряда, от точного результата —3/8. Это является следствием нашего правила округления, в результате которого самый правый разряд всегда делается равным 1. Иногда это приводит к непривычным и даже досадным результатам (например, когда образуется частное вида 0 : у или у: у), но тем не менее это не должно вызывать возражения и вполне согласуется с нашими основными принципами.
6. Управление
Мы уже говорили, что вычислительная машина будет иметь орган, названный управлением, который сможет автоматически выполнять приказы, хранящиеся в селектронной памяти. По причинам, изложенным в п. 6.3, длина приказа составляет меньше половины длины 40-разрядного двоичного числа, поэтому приказы хранятся в селектронной памяти парами.
Рассмотрим работу управления при выполнении вычислений. Управление должно знать место в селектронной памяти, где находится пара приказов, которые нужно выполнить. Оно должно
отдать распоряжение, селектронам передать эту пару приказов в селектронный регистр и затем в управление. После этого оно должно управлять выполнением операции, заданной первым из двух приказов. Мы можем сразу же разделить приказы на два основных типа: приказы первого типа начинаются с того, что осуществляют передачу числа, хранящегося в заданной ячейке селектронов, в селектронный регистр. Затем они отдают приказ арифметическому устройству выполнить некоторые арифметические операции над этим числом (обычно в операциях участвует еще и другое число, которое уже находится в арифметическом устройстве) и оставить результат в арифметическом устройстве. Приказы второго типа осуществляют передачу числа, находящегося в арифметическом устройстве, в селектронный регистр, а оттуда — в заданную ячейку селектронной памяти. (Возможно также, что в последнем случае удастся осуществить непосредственную передачу из арифметического устройства в селектроны.) Еще один тип приказов составляют приказы перехода, упомянутые в п. 3.5. Существуют также приказы, управляющие вводом и выводом машины. Процесс, описанный в начале этого пункта, повторяется со вторым приказом, входящим в эту пару приказов.
Вся эта последовательность работы повторяется затем до тех пор, пока не будет исчерпана вся программа.
Из сказанного ясно, что управление должно иметь средства, позволяющие ему подключаться к заданной ячейке селектронной памяти, чтобы выбирать оттуда числа и пары приказов. Так как селектронная память будет (как предварительно предполагается) содержать 212=4096 40-разрядных слов (слово представляет собой либо одно число, либо пару приказов), то для указания ячейки памяти достаточно двенадцатиразрядного двоичного числа. Следовательно, нужен переключающий механизм, который после получения двенадцатиразрядного двоичного числа будет выбирать соответствующую ячейку памяти.
Для этой цели мы предполагаем использовать декодирующую схему. Такая схема была разработана в разных вариантах Рейх- маном и Кроуфордом1). В нее входит п триггеров, на которые заносится ^-разрядное двоичное число. Она имеет также выходные шины, максимальное число которых может доходить до 2”. Триггеры возбуждают матрицу, в которой пересечения между входными и выходными шинами сделаны таким образом, что
г) Схема Рейхмана описана Рейхманом, Снидером и Рудником в отчете Лаборатории Американской радиокорпорации, выпущенном в 1943 г. по договорной работе для Управления научных исследований и усовершенствований. Работа Кроуфорда рассматривалась в его магистерской диссертации в Массачусетском технологическом институте.
всякий раз выбирается (т. е. имеет положительный потенциал) одна и только одна из 2я выходных шин. Пересечения могут быть выполнены в виде сопротивлений или нелинейных элементов (например, диодов или выпрямителей). Исследуются различные методы построения подобной схемы. Селектрон спроектирован таким образом, что для него требуется четыре переключателя, каждый из которых имеет три двоичных разряда на входе и восемь (23) выходов. Из селектрона выведены четыре группы по восемь шин каждая для целей переключения. Заданная ячейка выбирается подачей на одну шину положительного потенциала по отношению к остальным. Так как все сорок селектронов переключаются параллельно, то эти четыре группы шин могут непосредственно подключаться к выходам всех четырех переключателей.
Так как большинство операций вычислительных машин используют по крайней мере одно число, находящееся в селект- ронной памяти, то имеет смысл выбрать такой код, в котором двенадцать двоичных разрядов каждого приказа отводятся для указания ячейки селектронной памяти. В тех приказах, где не нужно брать число из памяти или отсылать в память результат, эти разряды не будут использоваться.
Хотя окончательно еще не решено, сколько операций будет встроено в машину (т. е. сколько различных приказов должно выполнять управление), сейчас ясно, что их будет вероятно больше, чем 25, но заведомо меньше, чем 26. Поэтому для кода приказа можно отвести 6 двоичных разрядов. Таким образом оказывается, что каждый приказ должен содержать восемнадцать двоичных разрядов: двенадцать для указания ячейки памяти и шесть для задания операции. Теперь можно объяснить, почему приказы хранятся в памяти парами. Так как в этой машине для чисел и приказов должен использоваться один и тот же орган памяти, то выгодно сделать их длину приблизительно одинаковой. Но числа с восемнадцатью двоичными разрядами имели бы недостаточную точность для задач, которые будут решаться на этой машине; скорее всего потребуется точность по крайней мере 10"10 или 2~33. Следовательно, лучше сделать числа достаточно длинными, чтобы можно было поместить в одно слово два приказа.
Мы уже указывали в п. 2.3 и использовали в п. 4.2 и 5.7, что наши числа на самом деле будут иметь 40 двоичных разрядов. Это позволяет иметь в каждом приказе 20 двоичных разрядов, т. е. двенадцать разрядов, определяющих ячейку памяти, и 8 разрядов, определяющих вид операции (вместо 6, упомянутых выше). Удобно сгруппировать эти разряды в тетрады, группы из 4 двоичных разрядов (см. п. 6.8.2, а также ч. II, разд. 9).
Следовательно, целое число состоит из 10 тетрад, полслова, или приказ, —из 5 тетрад, 3 из которых определяют ячейку памяти, а 2 остальные — вид операции. Вне машины каждая тетрада может быть выражена цифрой в системе с основанием 16. (Цифры 16-ричной системы лучше всего обозначать символами всех 10 десятичных цифр от 0 до 9 и 6 дополнительными символами, например буквами от а до /.) Эти 16 знаков должны появляться при* набивке для ввода в машину и при печати для вывода из машины.
Вид операции задается в приказе в двоичной форме, так что для расшифровки приказа требуется еще один дешифратор. Он будет иметь шесть входных триггеров (два разряда приказа не нужны). Так как в машине будет меньше 64 различных приказов, то нет необходимости обеспечивать все 64 выхода. Однако, возможно, имеет смысл подать выходы, соответствующие неиспользуемым приказам, на схему контроля, которая будет давать сигнал всякий раз, когда на входные триггеры принято слово, не имеющее смысла для управления.
В только что описанном дешифраторе для каждого кода операции возбуждается своя выходная шина. Как будет показано ниже, многие шаги, встречающиеся при выполнении различных приказов, оказываются общими для различных операций. (Например, сложение, умножение, деление и выборка в регистр включают передачу числа из селектронов в селектроцный регистр.) Поэтому желательно иметь дополнительную группу управляющих шин, каждая из которых возбуждается какой-нибудь определенной комбинацией разрядов кода. Это можно осуществить путем использования выходных шин дешифратора для управления лампами, которые в свою очередь будут управлять шифратором. Такой шифратор состоит, как и раньше, из матрицы, но в этом случае при возбуждении только одной входной шины возбуждаются различные группы из одной или многих выходных шин.
Двенадцать триггеров, работающих с четырьмя дешифраторами, которые используются для выбора ячейки селектронов, и шесть триггеров, управляющих дешифратором, который используется для расшифровки приказа, названы регистром дешифра-» тора, РД.
Рассмотрим теперь процесс передачи пары приказов из селектронов в управление. Приказы сначала попадают в СР. Приказ, который должен обрабатываться первым, будет сразу передан непосредственно в РД. Второй приказ, входящий в пару, должен быть удален из СР (так как СР может использоваться во время выполнения первого приказа), но пока еще нс может быть послан в РД. Поэтому для него предусмотрен промежуточный.
регистр, названный регистром, управления, РУ, который состоит из 20 (возможно 18) триггеров и может принимать число из СР и передавать число в РД.
Как уже отмечалось (п. 6.1), управление должно знать ячейку селектронной памяти, из которой оно получает пару приказов. Обычно это ячейка, следующая за той, из которой выбирались два предыдущих приказа. Таким образом, управление будет последовательно выбирать приказы из селектронной памяти до тех пор, пока не получит приказ поступить иначе. Положение приказа можно запоминать в двенадцатиразрядном двоичном счетчике (способном считать до 212), в который добавляется единица всякий раз, когда выполняется пара приказов. Этот счетчик называется счетчиком управления, СУ.
Рассмотрим подробнее процесс получения пары приказов из селектронной памяти. Содержимое СУ передается в РД, а затем выбирается соответствующая ячейка селектронной памяти и содержимое селектронов передается в СР. После этого РД очищается и содержимое СР передается в РД и РУ. СУ увеличивается на единицу, так что управление готово к выборке следующей пары приказов из памяти. (Исключение из этого правила составляют так называемые приказы перехода, см. п. 3.5. В случае этих приказов СУ изменяется по-другому, см. следующий абзац.) Сначала выполняется приказ, находящийся в РД, затем передается в РД и исполняется приказ, находящийся в РУ. Следует отметить, что управление всеми этими приказами осуществляется самим управлением. При этом выполняются не только операции, заданные в управляющих словах, занесенных в РД, но и некоторые автоматические операции, необходимые для правильного выполнения приказов.
После описания метода, с помощью которого управление последовательно выбирает из памяти пары приказов, остается только рассмотреть вопрос о том, как управление переходит от одной последовательности управляющих приказов к другой, в соответствии с операциями, описанными в п. 3.5. Эти операции выполняются относительно просто. Приказ, выполняющий одну из таких операций, содержит двенадцать разрядов для указания ячейки, к которой должно быть передано управление. Эти разряды появляются в двенадцати левых триггерах РД. Все что требуется для передачи управления — это занести содержимое этих триггеров в СУ. При выборке из селектронов следующей пары приказов управление обратится таким образом к ячейке, заданной числом, занесенным на СУ. В случае безусловного перехода передача управления делается автоматически; условный переход осуществляется только в том случае, когда разряд знака накапливающего сумматора содержит нуль.
В этом отчете мы будем рассматривать только общий метод, с помощью которого управление будет выполнять отдельные приказы, оставляя подробности на дальнейшее. Мы уже говорили (п. 5.5), что при конструировании схем для выполнения отдельных элементарных операций (например, сложения) приходится делать выбор между статическим и динамическим типом схемы. Такой же вопрос возникает и при конструировании управления, функция которого заключается в управлении последовательностью операций, выполняющихся в различных частях машины (включая и цепи самого управления). Рассмотрим, в чем заключается управление операцией. Управление должно давать сигнал начала операции, вырабатывать сигналы, необходимые для задания операции, и устанавливать конец операции, чтобы начать следующую. Следовательно, цепи управления должны синхронизировать операцию. Следует заметить, что синхронизация необходима как для статических, так и для динамических схем, выполняющих операцию. Для схем статического типа управление должно вырабатывать статические управляющие сигналы на время, достаточное для того, чтобы выходные напряжения достигли устойчивого состояния. Для схем динамического типа управление должно посылать различные импульсы через надлежащие промежутки времени.
Если все схемы вычислительной машины являются статическими, то синхронизирующие схемы также могут быть статическими и в системе не будут нужны никакие импульсы. Однако в вычислительной машине, которую мы разрабатываем, вероятно, не все схемы будут статическими, поэтому наряду со статическими сигналами управление должно будет вырабатывать и импульсы. По ряду причин выгоднее получать эти импульсы из центрального источника, называемого генератором главных импульсов. Тогда синхронизация может осуществляться с помощью счетчиков, считающих главные импульсы, либо с помощью электрических линий задержки (/?С-схема рассматривается здесь как простейшая линия задержки). Так как синхронизация всей машины осуществляется от единого источника импульсов, то можно сказать, что схемы машины работают как синхронная система.
Главные импульсы играют важную роль при обнаружении и локализации ошибок, сделанных вычислительной машиной. Один из методов контроля, который сейчас рессматривается, заключается в том, чтобы иметь две одинаковые вычислительные машины, которые работают параллельно и автоматически сравнивают свои результаты. Обе машины управлялись бы в этом случае одним и тем же генератором главных импульсов, поэтому они работали бы абсолютно синхронно. При этом нет необходимости сравнивать каждый триггер одной машины с соответствующим
триггером другой. Так как все числа и управляющие слова рано или поздно проходят через селектронный регистр, либо через накапливающий сумматор, то достаточно контролировать триггеры селектронного регистра и накапливающего сумматора; на самом деле, по-видимому, возможно контролировать только накапливающий сумматор (см. конец п. 6.6.2). При появлении расхождения схема контроля останавливает генератор главных импульсов или в случае асинхронной системы — непосредственно машину. Триггеры каждой машины будут расположены в удобных местах. Все неоновые лампочки будут выведены на одну панель, причем соответствующие лампочки двух машин располагаются параллельными рядами, так что при визуальном наблюдении можно сказать (после того как машина остановится), где произошли расхождения.
Достоинства любой системы контроля должны оцениваться по ее стоимости. Создание двух вычислительных машин может показаться дорогостоящим, но это не совсем так, поскольку большая часть стоимости научной вычислительной машины относится к разработке, а не к производству. Можно убедиться на опыте, что для большинства задач нет необходимости обеим машинам работать параллельно. Действительно в большинстве случаев возможен чисто математический внешний контроль: гладкость результатов, поведение различных типов разностей, справедливость соответствующих тождеств, дополнительные вычисления и т. д. Обычно этих методов бывает достаточно для того, чтобы в общем констатировать наличие или отсутствие ошибки. Их недостаток заключается в том, что они либо сильно затрудняют, либо не позволяют совсем локализовать ошибки. Использовать обе машины параллельно нужно будет, как правило, только тогда, когда задача решается впервые и поэтому требует особого внимания, или когда известно, что есть ошибка, и она должна быть найдена. Так что большую часть времени их можно будет использовать как самостоятельные машины. Существенная особенность такого метода состоит в том, что он контролирует вычисление в каждой точке (и следовательно обнаруживает как случайные, так и систематические ошибки) и при возникновении ошибки останавливает машину, так что процесс локализации ошибки значительно упрощается. При дублировании арифметического устройства или при последующем выполнении дополнительной операции (умножения после деления и т. д.) эти преимущества достигаются только частично, так как в этих случаях из-под контроля выпадает либо память, либо управление (которое является самой сложной, хотя и не самой большой частью машины).
Метод локализации ошибок с помощью дублирующей машины или без нее требует дальнейшего обсуждения. Все схемы вычис-
лительной машины (включая схемы управления) предполагается разработать таким образом, что если генератор главных импульсов остановится между импульсами, то вычислительная машина сохранит всю информацию, содержащуюся в триггерах, так что после пуска генератора главных импульсов вычисление может быть продолжено без изменений. Полезность такого принципа уже была продемонстрирована в машине ЭНИАК. Он позволяет производить вычисления на машине при любой частоте работы генератора главных импульсов, не превышающей некоторого максимума, пока генератор выдает импульсы постоянной формы, не зависящей от величины промежутка между импульсами. В частности промежуток между импульсами может быть сделан как угодно большим. Генератор главных импульсов сможет работать и в таком режиме, при котором он будет вырабатывать одиночный импульс по приказу оператора. С помощью такого режима оператор может заставить машину выполнять операцию шаг за шагом, проверяя результаты с помощью индикаторных ламп, связанных с триггерами. Следует отметить, что этот принцип не исключает использование линий задержек при условии, что они используются для задания временных соотношений операций, входящих в один шаг, и не определяют рабочей частоты машины. Синхронизация совпадений с помощью линий задержки исключена, так как это требует постоянной частоты импульсов.
Приказы, которые понимает управление, можно разделить на две группы: приказы, которые определяют операции, выполняющиеся в вычислительной машине, и приказы, определяющие операции ввода данных в машину и вывода данных из машины. В настоящее время внутренние операции разработаны более полно, чем операции ввода и вывода, и поэтому они будут рассмотрены подробнее, чем последние (кратко обсуждаемые в п. 8). Намеченные предварительно внутренние операции приведены в табл. 1. Как уже указывалось, не все эти операции являются логически основными, многие из них могут быть получены программным путем с помощью других операций. О причинах введения в машину некоторых операций мы уже говорили. В этом разделе мы укажем причины, по которым в машину встроены другие операции, а также объясним, что должно делать управление при выполнении каждой из них.
Точный математический смысл вводимых ниже операций приводится в табл. 1, помещенной в конце отчета.
Далее везде мы будем обозначать через S(x) ячейку селектронной памяти с номером х. Соответственно х в S (х) означает 12-разрядное число в смысле п. 6.2. Восемь операций ело-
жения [ S (х) -> Ас +, S(x)-»Ac—, S^-^Ah-у» S^-^Ah—, S^-^Ac — M, S^-> Ac + M, S(x) -> Ah+M, S^-^Ah — M\ включает в себя следующие возможные четыре шага:
Очистить СР и передать в него число из* S(x).
Очистить НС, если приказ содержит символ с; не очищать НС, если приказ содержит символ К.
Прибавить к НС число, содержащееся в СР, или его отрицательное значение (в нашей системе это дополнение до 21). Если приказ не содержит символа М, то использовать число в СР или его отрицательное значение в соответствии с тем, какой символ, + или —, содержится в приказе. Если приказ содержит символ М, то использовать число в СР или его отрицательное значение, в зависимости от того, совпадает или нет знак числа в СР и символ (+ или —) в приказе.
Осуществить полный перенос. Управление последними четырьмя операциями (содержащими символ М) довольно просто: нужно выполнить только одно дополнительное сравнение (знака в СР с + или — в приказе, см. третий шаг). Для этого потребуется лишь на несколько ламп больше, чем для первых четырех операций сложения (не содержащих символа Му Этот факт сам по себе, казалось бы, оправдывает введение операций прибавления и вычитания абсолютной величины. Но следует заметить, что эти операции можно запрограммировать с помощью других операций, приведенных в табл. 1, при соответственно небольшом числе приказов (трех для прибавления абсолютной величины и пяти для вычитания абсолютной величины); поэтому для того, чтобы встроить эти операции в машину, нужны дополнительные оправдания. Приказ прибавления абсолютной величины часто используется с приказами L и R (см. п. 6.6.7), а приказ вычитания абсолютной величины делает очень простым обнаружение нуля — для этого просто определяется знак — | N |. (Если — | N | > О, то N = 0).
Операция S (х) -> R состоит из следующих двух шагов:
Очистить СР и передать в него S (х).
Очистить АР и прибавить к нему число, находящееся в селектронном регистре. Операция R -> НС заслуживает более детального рассмотрения, поскольку существует несколько путей удаления чисел из АР. Числа можно было бы передавать непосредственно в селектроны, так же как в НС, а передачу чисел в НС можно было бы осуществлять параллельно, последовательно или последовательно-параллельно. Следует напомнить, что большинство чисел поступает в АР из селектронной памяти и поэтому нет нужды возвращать их туда. Однако в АР появляется результат деления и 39 правых разрядов произведения. Это
означает, что операция удаления числа из АР хотя и нужна, но все же встречается относительно редко, и, следовательно, может быть не особенно быстрой. Поэтому мы рассматриваем возможность по крайней мере частичной последовательной передачи и использования для этого возможностей сдвига содержимого НС и АР. При использовании двух машин для контроля также желательно иметь передачу числа в селектроны через накапливающий сумматор, так как это означает, что даже если числа проверяются только при передачах их через накапливающий сумматор, каждое число, которое направляется в селектроны, все же контролируется перед записью.
Операция S (х) X R -> НС состоит из следующих шести шагов.
Очистить СР и передать в него S (х) (множимое).
Выполнить 39 шагов, каждый из которых состоит из двух частей: (а) прибавить (или, вернее, сдвинуть) знаковый разряд СР в НС, где хранится частичное произведение, или прибавить все разряды СР, кроме знакового, к НС, в зависимости от того, О или 1 стоит в самом правом разряде АР, и осуществить соответствующие переносы; (б) сдвинуть вправо НС и АР, заполнить знаковый разряд НС нулем, а разряд АР, находящийся непосредственно справа от знакового разряда (позиционное значение 2"1), — значением, содержавшимся перед этим в самом правом разряде. (Когда самый правый разряд АР равен 0, можно с целью экономии времени объединить эти две операции, но мы не будем рассматривать это здесь более подробно.)
Если знаковый разряд СР равен 1, то ввести перенос в крайний правый разряд НС и поместить 1 в знаковый разряд НС.
Если первоначально знаковый разряд АР равнялся 1, то вычесть содержимое СР из НС.
Если в этом основном процессе используется система частичного переноса, то в конце необходим полный перенос.
Необходимо выполнить соответствующее округление (подробнее см. ч. II, разд. 9, где объясняется также, как при округлении обрабатывается знаковый разряд арифметического регистра).
Следует заметить, что поскольку любое число, содержащееся в НС в начале процесса, постепенно сдвигается в АР, то в НС невозможно накапливать суммы произведений, не осуществляя при этом временного запоминания отдельных произведений в се- лектронной памяти. Хотя это, конечно, является недостатком, но его нельзя избежать без дополнительного регистра, что в данный момент представляется неоправданным.
4 Зака? № 102
С другой стороны, сохранение 39 первых разрядов результата достигается с помощью небольшого объема дополнительного оборудования, так как это означает связь разряда 2"39 в НС с разрядом 2"1 в АР при операции сдвига. Преимущество сохранения этих разрядов состоит в том, что это упрощает обработку в вычислительной машине чисел с любым числом разрядов (см. конец п. 5.12). Любое число с 39/? разрядами (где к— целое число) и знаком можно разделить на к частей и поместить каждую часть в отдельную ячейку селектронной памяти. Сложение и вычитание таких чисел можно запрограммировать серией сложений и вычитаний этих 39-разрядных частей. Перенос между частями осуществляется с помощью операций Cc-^S^ и Сс' -> S ^х\ (Если после сложения двух 39-разрядных частей разряд 2° регистра НС оказывается отрицательным, то это означает, что имел место перенос из старшего разряда и поэтому к сумме следующих двух частей нужно прибавить 2"39.) Такой же метод можно использовать и при умножении, если, как это предполагается, будут сохраняться все 78 разрядов произведения двух 39-разрядных частей (более подробно см. ч. II, разд. 9). Так как хранение и использование 78-разрядного делимого сильно усложнило бы машину, то 39^-разрядное деление предполагается программировать одним из способов, описанных в конце п. 5.12.
Операция деления НС-~ S (х) -* R состоит из следующих четырех шагов:
Очистить СР и передать в него S (х) (делитель).
Очистить АР.
Выполнить 39 шагов, каждый из которых состоит из следующих трех частей: (а) узнать, совпадают ли знаки содержимого НС (частичного остатка) и СР; (б) сдвинуть влево НС и АР. При этом предыдущий знаковый разряд НС теряется. Поместить в крайний правый разряд НС (после сдвига) 0, а в крайний правый разряд АР (перед сдвигом) 0 или 1, в зависимости от того, совпадают или нет знаки в (а); (в) сложить или вычесть содержимое НС и СР в зависимости от того же условия.
Поместить 1 в крайний правый разряд АР и изменить его знаковый разряд.
Для синхронизации всех 39 шагов деления в управлении будет сделан шестиразрядный счетчик (способный считать до 26 -= = 64). Этот же счетчик будет использоваться для синхронизаций 39 шагов умножения и возможно для управления НС, когда между ним и лентой будет осуществляться передача числа (см. п. 6.8).
Все три операции подстановки [Л^З(х), Лр->3(х) и Ар'-^- S (х)] осуществляют передачу всего или части числа, содержащегося в НС, в селектронную память. Это можно сделать с помощью вентильных ламп, связанных с запоминающими триггерами НС. Для операции полной подстановки, Л/-^3(х), нужно сорок таких ламп. Операции частичной подстановки, Лр-^З(х) и Ар'-^ S (х), должны подставлять двенадцать левых разрядов числа, находящегося в НС, в надлежащие разряды соответственно левого и правого приказа. Это можно сделать с помощью дополнительных вентильных ламп или посредством сдвига числа в НС и использования вентильных ламп, предназначенных для Л/->5 (х). (Эта схема нуждается в некоторых усложнениях для случая, когда приказ, осуществляющий подстановку, и приказ, в котором она делается, являются последовательными половинами одного и того же слова, т. е. когда последний уже находится в РД, в то время как первый находится в РУ. Поэтому операция, предназначенная для осуществления подстановки в селектронах, не сможет сделать ее в РУ так, чтобы в следующем шаге она была реализована в РД. Существуют различные пути преодоления этого осложнения как с помощью дополнительного оборудования, так и с помощью соответствующих правил кодирования. Мы не будем рассматривать их здесь более подробно, поскольку этот вопрос остается открытым.) .
Важность операций частичной подстановки едва ли можно переоценить. Как уже указывалось (п. 3.3), они позволяют машине выполнять операции, которые иначе нельзя было бы удобно выполнить, например использование таблиц функций, записанных в селектронной памяти. Кроме того, эти операции облегчают программирование задач, так как позволяют программировать не отдельно каждую задачу, а целый класс задач. Наличие операций Лр->3(х) и Ap^S^x) позволяет писать программу в общем виде (т. е. без указания ячейки селектронной памяти для чисел, с которыми производится работа) и затем в процессе использования этой программы подставлять ячейки памяти, в которых находятся числа, участвующие в операциях.
Например, рассмотрим универсальный метод программирования задачи интегрирования т уравнений п-го порядка в полных дифференциалах для р шагов независимой переменной /, заданных заранее. Всякий раз, когда для данной машины программируется такая задача, можно использовать эту универсальную программу интегрирования наряду со специально написанными командами, которые указывают, где она расположена в памяти [для того чтобы в команды типа Cu-*S^ и др. были введены соответствующие значения S(x)]. Всякий раз, когда эта программа должна обрабатываться вычислительной машиной, 4*
она автоматически подставляет нужные значения mt п, р и Д£, а также ячейки с граничными условиями и самими дифференциальными уравнениями в эту универсальную программу (подробнее см. ч. II, разд. 13). Будет создана библиотека таких универсальных программ, а также средства, облегчающие удобное использование любой из них в общих программах решения задач (см. п. 6.8.4). В этом случае придется программировать только небольшую часть задачи.
Метод выполнения операций передачи управления \Cu-^ S (х), CuZ-^S^, Cc-+S(x) и Cc'->S(x)] был рассмотрен в п. 6.4 и дальнейших пояснений не требует.
Один из основных вопросов, который должен быть решен при создании вычислительной машины, — это вопрос о том, должна ли машина иметь так называемую плавающую двоичную (или десятичную) запятую. Хотя плавающая двоичная запятая несомненно очень удобна при кодировании задач, она значительно усложняет машину, и, следовательно, этому вопросу должно быть уделено особое внимание. Однако нужно сразу же заметить, что доводы, обычно выдвигаемые в пользу той или иной альтернативы (создание машины с плавающей двоичной запятой или выполнение всех вычислений с фиксированной запятой) не являются исчерпывающими и поэтому справедливы только частично. Эти аргументы не учитывают того факта, что вопрос о любой операции (за исключением основных) состоит не в том, встраивать эту операцию в машину или не пользоваться ей совсем, а в том, встраивать ее в машину или программировать ее с помощью других операций, имеющихся в машине. (По поводу плавающей запятой см. также п. 5.13.)
Встроенная двоичная запятая не только усложнит управление, но и приведет к увеличению длины числа, а следовательно, к увеличению объема памяти, сложности арифметического устройства и размера всех чисел, хотя во многих случаях плавающая двоичная запятая и не нужна. Кроме того, при представлении чисел с плавающей запятой появится значительная избыточность, так как каждое число будет сопровождаться масштабным коэффициентом, хотя, вообще говоря, может быть достаточно одного масштабного коэффициента для большого ряда чисел. Плавающая двоичная запятая может программироваться с помощью уже описанных в этом отчете операций. Хотя для этого нужна дополнительная емкость памяти, она все же, вероятно, меньше, чем потребуется для встроенной плавающей запятой, так как не нужно запоминать масштабные коэффициенты для каждого числа.
: Для программирования плавающей двоичной запятой привле-
кается обнаружение первого нуля в числе, находящемся в НС. Лучше всего это можно сделать, используя возможность производить сдвиг числа, находящегося в НС. На основе описанных ранее операций, это потребовало бы взять данное число из НС и выполнить над ним подходящую арифметическую операцию: для одного (многократного) сдвига вправо — одно умножение, для одного (многократного) сдвига влево — либо одно деление, либо столько удвоений (т. е. сложений), на сколько разрядов нужно произвести сдвиг. Однако эти операции неудобны и требуют большой затраты времени; поэтому мы предлагаем ввести две операции (Ди/?), для того чтобы единичный сдвиг влево и вправо можно было осуществлять непосредственно. Эти операции используют уже имеющиеся в НС возможности и поэтому потребуют очень мало дополнительного оборудования. Следует отметить, что для программирования плавающей двоичной запятой во многих случаях будет достаточно однократного использования Д и, возможно, R. Ибо если при умножении оба сомножителя не имеют ненужных нулей, то произведение будет иметь самое большее один лишний нуль (если V2 < х < 1 и V2 < у < 1, то Ч^Сху <1). То же самое справедливо и для деления (если \/4 < х < V2 и V2< у < 1, то V4<x/y< 1). Аналогичным образом обстоит дело при сложении и вычитании. Числа, которые в этих случаях уменьшаются, т. е. числа, в начале которых появляются нули, фактически (математически) теряют точность. Следовательно, в этом случае естественно опустить формальные преобразования. (В самом деле, такая потеря точности не может быть устранена никакими формальными методами. Если это и возможно, то только путем изменения математической постановки задачи.)
Из табл. 1 видно, что многие операции, которые должно выполнять управление, имеют общие элементы. Так, сложение, вычитание, умножение и деление включают в себя передачу числа из селектронов в СР. Следовательно, управление можно упростить, расчленив некоторые операции на более элементарные. Для каждой элементарной операции будет предусмотрена синхронизирующая схема; в выполнении приказа будет участвовать одна или более таких схем. Точный выбор элементарных операций будет зависеть от того, как построено арифметическое устройство.
В дополнение к синхронизирующим схемам, необходимым для выполнения приказов табл. 1, две такие схемы нужны для автоматической передачи приказов из селектронного регистра в РУ и РД и для передачи приказов из РУ в РД. При обычной работе вычислительной машины эти две схемы используются поочередно, поэтому для запоминания того, какая из них должна использоваться в следующий раз, нужен двоичный счетчик. В операциях
Cuf->S^ и Cc-^S(x) первый приказ пары не выполняется, поэтому двоичный счетчик должен быть соответствующим образом изменен.
При выполнении последовательности приказов различные синхронизирующие схемы используются по очереди. После того как данная синхронизирующая схема кончает свою работу, она вырабатывает импульс, который передается на схему, работающую в следующую очередь. Так как это зависит от конкретной операции, выполняемой в данный момент, то эти импульсы распределяются в соответствии с сигналами, полученными от декодирующей и кодирующей матриц, которые возбуждаются шестью двоичными разрядами, определяющими приказ.
В этом пункте мы рассмотрим, что нужно добавить к управлению для того, чтобы оно могло управлять механизмами ввода данных в вычислительную машину и вывода данных из машины, и опишем сами эти механизмы.
Разработаны три различных типа механизмов ввода — вывода:
Несколько запоминающих устройств на магнитной проволоке, которые приводятся в действие сервомеханизмами, управляемыми вычислительной машиной.
Трубки визуального наблюдения для графического вывода результатов.
Пишущая машинка для ввода данных непосредственно в вычислительную машину. Это не следует путать с оборудованием, используемым для подготовки магнитной проволоки и для печати данных с магнитной проволоки. Как сейчас планируется, это последнее устройство будет состоять из модифицированного телетайпного оборудования (см. п. 6.8.2. и 6.8.4).
Поскольку уже существует канал передачи чисел между селектронами и НС, то НС можно использовать для передачи чисел с проволоки и на проволоку. Эта передача будет осуществляться последовательно и будет использовать возможности сдвига в НС. Использование НС для этой цели исключает возможность чтения или записи одновременно с вычислениями. Одновременная работа вычислительной машины и органа ввода — вывода требует дополнительной промежуточной памяти и выдвигает проблему синхронизации и поэтому для первой модели не рассматривается.
Так как в начале задачи память вычислительной машины не содержит никакой информации, то в управлении должна быть предусмотрена возможность считывания с проволоки группы чисел при нажатии кнопки оператором. Так как каждое число считывается в НС, то управление должно затем передавать его в
нужную ячейку селектронной памяти. Для последовательного счета ячеек селектронной памяти можно использовать НС, так как его содержимое может передаваться в РД. Обнаруживающая схема в СУ остановит этот процесс, когда заданное количество чисел будет записано в память и управление будет передано приказу, находящемуся в первой ячейке селектронной памяти.
Уже говорилось, что все оборудование на магнитной проволоке должно быть доступно для вычислительной машины без вмешательства человека. Это означает, что управление должно быть способно выбирать из всей массы чисел, идущих с проволоки, нужную группу чисел. Поэтому в программе должны быть дополнительные приказы. Здесь, как и раньше, мы встречаемся с двумя альтернативами. Управление может выполнять следующий приказ: взять числа из ячеек от р до p-Vs на проволоке № к и поместить их в ячейки от и до и + s селектронной памяти. Или же управление может выполнять более простые операции, которые вместе с уже имеющимися приказами управления будут использоваться для программирования операции передачи первого типа. Так как второй метод проще, то мы предварительно принимаем его.
Вычислительная машина должна некоторым образом отыскивать определенное число на магнитной проволоке. Один из методов, пригодных для этого, состоит в том, чтобы каждое число сопровождалось указанием его положения. 'Другой метод, требующий меньшую емкость памяти на проволоке, заключается в том, чтобы использовать селектронную память для запоминания позиции каждой проволоки. Например, вычислительная машина может содержать число tv показывающее, какое число на проволоке находится в данный момент в позиции, которая должна считываться. Если управлению дан приказ считать число, находящееся в позиции рх на этой проволоке, то оно сравнит рх с tx и заставит проволоку двигаться в нужном направлении, когда эти числа различны. При прохождении каждого числа к tx прибавляется или из tx вычитается 1 и повторяется сравнение. Когда рх=1х, числа будут переданы с проволоки в накапливающий сумматор и затем в соответствующую ячейку памяти. Затем как tv так и рх увеличиваются на 1 и передача с проволоки в накапливающий сумматор и в память повторяется. Это будет продолжаться до тех пор, пока не будет достигнуто tx + s и рх + s, после чего управление даст приказ проволоке остановиться.
При наличии такой системы управление должно быть в состоянии выполнять по отношению к каждой проволоке следующие приказы: пустить проволоку вперед, пустить проволоку в обратном направлении, остановить проволоку, передать (информацию)
с проволоки в НС и передать (информацию) из НС на проволоку. Кроме того, проволока должна посылать управлению сигналы при считывании каждого разряда и в конце числа. И наоборот, когда делается запись, управление должно иметь средства для синхронизации сигналов, посылаемых из НС на проволоку, и для счета разрядов. Для счета можно использовать счетчик на 26, предназначенный для умножения и деления. Для синхронизации потребуются дополнительные схемы.
Если будет принят метод контроля с помощью двух вычислительных машин, работающих одновременно, и машины смогут работать независимо друг от друга, то каждая машина будет иметь отдельный механизм ввода — вывода. Тогда процесс записи информации на магнитную проволоку для вычислительной машины должен дублироваться и, таким образом, можно контролировать работу персонала, готовящего проволоку.
Так как сервомеханизмы проволоки не могут синхронизироваться генератором главных импульсов, то возникает проблема синхронизации обеих машин при использовании проволоки. Вероятно, нецелесообразно синхронизировать информацию, вводимую с проволоки, с точностью до разряда, но в этом и нет необходимости, так как числа, приходящие в оба регистра НС, можно проверять не по мере поступления отдельных разрядов, а только перед отсылкой их в селектронную память.
Так как вычислительная машина работает в двоичной системе, то чрезвычайно желательно иметь средство для десятично-двоичного и двоично-десятичного перевода. Были рассмотрены различные способы преобразования. Можно выделить два основных пути решения этой задачи.
Задачи перевода можно рассматривать как простые арифметические операции и программировать их в виде программы из уже имеющихся в машине приказов. Подробности об этих программах даны в ч. 11, разд. 9, где также показано, что перевод одного слова занимает около 5 мсек. Таким образом, время перевода сравнимо с временем считывания или с временем вывода одного слова — около 2 мсек — и мало по сравнению с временем решения задачи на машине. Следует заметить, что предложенный здесь метод предполагает только, что десятичные данные, вводимые в машину или получаемые из машины, представлены тетрадами, причем каждая тетрада представляет собой двоично-кодированную десятичную цифру (информация, представленная десятичной цифрой, в действительности эквивалентна информации, представленной 3,3 двоичными цифрами). Кодирование десятичных цифр тетрадами двоичных разрядов и печать тетрад в виде десятичных цифр можно просто и автоматически осуще-
ствить с помощью несколько модифицированного телетайпного оборудования (см. п. 6.8.4).
Перевод можно рассматривать как самостоятельную задачу и осуществлять его с помощью отдельного оборудования, которое либо включено в собственно машину, либо связано с механизмами, предназначенными для подготовки магнитной проволоки и печати с магнитной проволоки. Такое оборудование перевода представляет собой нс что иное, как специализированную цифровую вычислительную машину. Оно оправдывало бы себя, как нам кажется, только для таких вычислительных машин, которые предназначены, прежде всего, для решения задач, для которых время вычисления мало по сравнению с временем ввода — вывода. Наша машина нс относится к классу таких машин.
В качестве трубок для визуального наблюдения можно использовать различные типы электронно-лучевых трубок и в частности селектроны. В этом случае программирование операции визуального наблюдения совсем просто. Селектроны, предназначенные для визуального наблюдения, могут переключаться с помощью того же самого дешифратора, который используется для переключения селектронов памяти. С помощью операций подстановки Лр->5(х) и Ap'-^S^ шестиразрядные числа, определяющие абциссу и ординату точки (шесть двоичных разрядов дают точность 26= 64, т. е. около 1,5%, что является, по-видимому, достаточным для этой цели), могут быть подставлены в приказ, который определит, какой из селектронов визуального наблюдения должен быть возбужден.
Как уже упоминалось выше, механизмы для подготовки проволоки и для печати с проволоки, по крайней мере для первой модели, будут представлять собой модифицированное телетайпное оборудование. Мы вполне удовлетворены тем, что заручились тесным сотрудничеством с Отделом артиллерийских разработок Национального бюро стандартов при осуществлении этих модификаций и при разработке и создании некоторого связанного с ними оборудования.
С помощью этого модифицированного телетайпного оборудования оператор сначала подготавливает проверенную бумажную ленту, а затем осуществляет передачу информации с этой ленты на магнитную проволоку. Аналогично можно передавать информацию с магнитной проволоки на бумажную ленту, которую можно использовать для управления пишущей машинкой телетайпа. (В настоящее время проводится разработка оборудования, которое устранит необходимость использования бумажной ленты.) Как было показано в п. 6.6.5., при подготовке проволоки для
Обозначение
Операции
полное
сокращенное
1
S (х) -> Дс +
X
Очистить накапливающий сумматор и прибавить к нему число, находящееся в ячейке х селектронов
2
S (х) -> Ас —
X —
Очистить накапливающий сумматор и вычесть из него число, находящееся в ячейке х селектронов
3
S (х) -> АсМ
x M
Очистить накапливающий сумматор и прибавить к нему абсолютное значение числа, находящегося в ячейке х селектронов
4
S (х) -> Ас — — М
x — M
Очистить накапливающий сумматор и вычесть из него абсолютное значение числа, находящегося в ячейке х селектронов
5
S(x)-+Ah+
xh
Прибавить к накапливающему сумматору число, находящееся в ячейке х селектронов
6
S{x)^ Ah —
xh —
Вычесть из накапливающего сумматора число, находящееся в ячейке х селектронов
7
S^->AhM
xhM
Прибавить к накапливающему сумматору абсолютное значение числа, находящегося в ячейке х селектронов
8
S (x) Ah — — M
x — hM
Вычесть из накапливающего сумматора абсолютное значение числа, находящегося в ячейке х селектронов
9
S (x) -* R
xR
Очистить регистр1) и прибавить к нему число, находящееся в ячейке х селектронов
10
R-*A
A
Очистить накапливающий сумматор и сдвинуть в него число, находящееся в регистре
11
S (x) X R-*A
xX
Очистить накапливающий сумматор, умножить число, находящееся в ячейке х селектронов, на число в регистре, поместив 39 левых разрядов результата в накапливающий сумматор и 39 правых разрядов результата в регистр.
12
A -t-S(x)-*
X 4-
Очистить регистр и разделить число в накапливающем сумматоре на число, находящееся в ячейке х селектронов, оставив остаток в накапливающем сумматоре и поместив частное в регистр
13
Си -> S (x)
xC
Передать управление левому из пары приказов, находящихся в ячейке х селектронов
14
Си' -► S (x)
xC'
Передать управление правому из пары приказов, находящихся в ячейке х селектронов
15
Cc-*S(x)
xCc
Если число в накапливающем сумматоре > 0, передать управление как в Си S (х)
16
Cc' -> S (x)
xCc'
Если число в накапливающем сумматоре > 0, передать управление как в Си' -> S (х)
17
At -> S (x)
xS
Передать число из накапливающего сумматора в ячейку х селектронов
18
Ap S (x)
xSp
Заменить 12 левых разрядов левого приказа, находящегося в ячейке х селектронов, 12 левыми разрядами накапливающего сумматора
Продолжение табл. 1
Обозначение
• Операции
полное
сокращенное
19
Ар' S (х)
х Sp'
Заменить 12 левых разрядов правого приказа, находящегося в ячейке х селектронов, 12 левыми разрядами накапливающего сумматора
20
L
L
Умножить на 2 число в накапливающем сумматоре, оставив его там
21
R
R
Разделить на 2 число в накапливающем сумматоре, оставив его там
О Имеется в виду АР.
новой задачи используются данные, специфические для этой задачи, и данные, которые имеются на подготовленных ранее бумажных лентах и магнитных проволоках. Оборудование, рассмотренное в предыдущем абзаце, позволяет оператору удобно компановать эти данные без подготовки новой проволоки. Поэтому предполагается сделать одну простую пишущую машинку, являющуюся частью вычислительной машины. С помощью этой машинки оператор сможет остановить вычисление, ввести в вычислительную машину с клавиатуры машинки номер ячейки памяти (который будет послан в РД) и число (которое будет послано в НС и затем записано в указанную ячейку памяти) и продолжить вычисление. •
Управление должно выполнять еще один приказ. Нужно, чтобы вычислительная машина сигнализировала оператору о том, что вычисление закончено или что вычисление достигло заранее заданной точки. Следовательно, нужно иметь приказ, который будет останавливать машину и зажигать лампочку или заставлять звенеть звонок.
Математические вопросы
Дж. М. Возенкрафт, Р. С. Кеннеди
В вероятностной теории кодирования получены границы (в виде функций скорости передачи) для вероятности ошибки, которая может быть достигнута при использовании средств связи без памяти. В этой работе дается обзор этих результатов и обсуждается их значение при оценке систем модуляции и демодуляции. Принимаемая здесь концепция состоит в том, что модуляция и кодирование в совокупности означают построение сигналов, а демодуляция и декодирование в совокупности означают обработку сигналов при приеме). Эта концепция иллюстрируется двумя примерами, первый из которых связан с исследованием передачи на большие космические расстояния, а второй связан с экспериментальными результатами по кодированию цифровой информации в телефонной линии дальней связи.
Введение
С 1948 г., т. е. после опубликования К. Э. Шенноном «Математической теории связи», инженеры, проектирующие системы связи, были увлечены проблемой построения такой системы передачи данных, которая одновременно обеспечивала бы предсказываемые теорией высокую точность и высокую эффективность. Настоящая работа представляет собой краткий обзор некоторых теоретических и экспериментальных результатов, достигнутых в этом направлении. В работе обсуждается значение этих результатов и сделана попытка внести ясность в вопросы взаимосвязи кодирования и модуляции.
Исследования по теории кодирования развиваются, грубо говоря, в двух направлениях. Первое, развиваемое алгебраической школой, состоит, главным образом, в построении специальных кодов и отыскании процедуры их декодирования в условиях, когда входной и выходной алфавиты являются /л-ичными алфавитами и когда канал является /п-ичным симметричным каналом. Второе, развиваемое вероятностной школой, основано, главным
т) Доклад на XIV Генеральной ассамблее Международного научного радиосоюза (U.R.S. I.), Токио, сентябрь 1963 г.
образом, на использовании вероятностной структуры различных средств передачи данных. В этой работе мы рассмотрим второе из указанных направлений.
Рис. 1. Показатель степени в оценке вероятности ошибки в зависимости от скорости передачи информации.
Весьма важным результатом вероятностного исследования является установление оценок в виде функций от скорости передачи для вероятности ошибки, которая может быть достигнута при данных средствах передачи. Фано [1] показал, что для любого дискретного канала без памяти возможно так кодировать и^декодировать сообщения, чтобы было1)
Р^<^ГпЕ№,(1)
где п— число использований канала при передаче кодового слова, a R — скорость передачи информации в битах, отнесенная к одному использованию канала. Для такого канала функция £(/?) всегда имеет вид, изображенный на рис. 1, на котором С обозначает пропускную способность канала, а /?Крит. — «критическую скорость». Отметим, что одно из свойств E(R) состоит в том, что-
E(R)>E^-R,(2)
и, следовательно,
-Р(».(3)
т) Р (е) — вероятность ошибки при декодировании блока п символов канала. — Прим, перев. "
Оценку (3) можно получить следующим образом. Предположим, что имеются т различных символов {xj, которые могут быть переданы по каналу. Попытаемся вначале передать только 1 бит информации. Для этого образуем две последовательности, состоящие из п символов каждая. Выберем эти последовательности, произведя 2п статистически независимых выборок из некоторого ансамбля, для которого Р(xj = р^ В тех случаях, когда
^3^9Т15 ^б ^12 Т4 Х4 ^20^4
5 О •' 11111!1*
д?7 а:1дujg а)13 жб j^ х313^
:—11111ч11—
'Pi 'Рг'Pi 'Рг
'Pi 'Рг
'Pi 'Рг
Рт,
Рис. 2. Случайный выбор кодовых слов. Любойиз п элементов в s0 и si выбирается равным х, с веро-ятностью р/ (/=1, ..., т).
на вход передатчика поступает 0, будем передавать первую последовательность (скажем, s0), а когда на вход поступает 1, будем передавать вторую последовательность (скажем, sj. Эта схема проиллюстрирована на рис. 2.
Дискретный канал без памяти с переходной вероятностью р^ преобразует переданный символ xi в некоторый принятый символ (скажем, у^ и, таким образом, образуется некоторая выходная последовательность г. Оптимальная стратегия для приемника (которому, по предположению, известны s0 и sj состоит в вычислении P(sJ г) и P(s±/ г) и принятии решения, что был передан 0 тогда и только тогда, когда первая из указанных вероятностей является наибольшей. При заданных множествах {pj и \р^ и заданной априорной вероятности появления на входе О имеется некоторая определенная вероятность, которую мы обозначим через Р^(г), того, что такое решение неверно. В общем случае эта вероятность убывает экспоненциально вместе с ростом п и можно показать, что .
Р^)<ГВД, (4)
где Е(0)— (положительное) число, которое входит в (3).
Недавно Галлагер, предложив весьма изящный вывод, показал, что
2 Pi V Рц\ .(5)
Если мы хотим послать одно из М равновероятных сообщений, то мы можем выбрать М последовательностей {s/} , / = 1, 2, ..., М, тем же способом, которым производился выбор So и sL в случае двоичного кода. Оптимальный приемник примет решение в пользу сообщения, для которого вероятность Р (sjr) максимальна. Так как вероятность того, что апостериорная вероятность, которую имеет какое-либо неправильное сообщение, превосходит эту вероятность для правильного сообщения, удовлетворяет (4) и так как совместная вероятность событий ограниченасверхусуммой вероятностей отдельных событий, то
для Мравновероятныхсообщений имеем'
Р (г) < Л12-п£(0) .(6)
Согласно определению, ^_^log2M.(7)
Подставляя это в (6), получаем (3). Оценка (3) показывает, что, выбирая п достаточно большим, можно получить сколь угодно высокую точность передачи по крайней мере при условии R < ДО).
Сущность проектирования системы
Оценка (3) для вероятности ошибки, очевидно, является минимальной тогда, когда значение Е^ максимально. При заданных ^р^ нужно, следовательно, произвести оптимизацию по (pj. При проектировании системы передачи данных крайне важно, однако, выбрать входной и выходной алфавиты \хД и \уД так, чтобы получить подходящие переходные вероятности ^риД. Именно здесь переплетаются проблемы кодирования и модуляции1).
Существо этой проблемы может быть пояснено, если рассмотреть блок-схему некоторой системы связи с кодированием,
!) Здесь под кодированием понимается совокупность кодирования и декодирования, а под модуляцией — совокупность модуляции и демодуляции.— Прим, перев.
изображенную на рис. 3. Кодирующее устройство рассматривает сразу nR входных бит и вырабатывает соответствующую им последовательность sz, составленную из п символов, выбранных из множества {xj. Когда некоторый символ xt поступает на генератор сигналов, то генератор вырабатывает соответствующий
nR цифр
_х15^9• • •Хг1 Х8
st ;।j11111
п цифр, выбранных из {х^}
T,5(t) Xg(t) Xg(t). . .T21(t) X8(t) X,(t)
(t) : I111=*11
п функций, выбранных из {x^ft)}2сек
У362У96^4• • •У21У25У И
Г :|11, ,—41111
п символов, выбранных из {yj
Рис. 3. Система связи с кодированием.
сигнал xt(t) длительности т. Результирующая последовательность сигналов передается по каналу, и случайно искаженный вариант этой последовательности поступает в приемник.
Приемник обрабатывает этот искаженный сигнал и в конце каждого т-секундного интервала доставляет декодирующему устройству некоторый символ ур выделенный из сигнала. Таким образом, декодирующее устройство оперирует с последовательностью г, состоящей из п символов, принадлежащих некоторому множеству {z/y}; число символов в выходном множестве {z/y} может намного превышать число символов входного множества {xj.
Сущность проблемы модуляции — демодуляции может быть теперь ясно выражена; желательно выбрать передаваемые сигна-
лы \xt(i)\ и построить обработку сигналов в приемнике таким образом, чтобы оптимизированный по \рД параметр £(0) в оценке (3) был максимальным. Для того чтобы проблема представляла интерес, максимизация должна быть выполнена при разумных ограничениях, таких, как ограничение на энергию, затрачиваемую передатчиком на один сигнал, и ограничения на число элементов множеств {xj и {z/y}.
В общем случае аналитическая проблема оптимизации Е(0) является, конечно, очень трудной. Тем не менее оценка (3) и равенство (5) справедливы при любых {pj независимо от того, соответствуют ли они точному оптимальному решению. Поскольку ^ри\ могут быть всегда измерены, возможно по крайней мере подсчитать Е(0) для любой заданной систему модуляции — демодуляции. Таким образом, различные системы могут быть оценены относительно друг друга по соответствующим им значениям Е(0). Более того, в некоторых простых случаях, таких, как гауссовский канал с бесконечной шириной полосы частот, возможно вычислить максимальное значение, которого может достигнуть Е(0). В этом случае система модуляции — демодуляции может быть оценена по абсолютной величине путем определения близости Е (0) к максимуму. '
В тех случаях, когда нужно провести техническое сравнение, оказывается более удобным переписать сценку (3) в несколько иной форме. Так как выбор одного из М = YR сообщений . требует v == nR бит, то можно написать
Р(е)<2-',["1+аК, (8а) где
а = E^[R. (86)
Соотношения (8) показывают, каким образом вероятность ошибки падает в зависимости от числа одновременно кодируемых бит. Чем больше значение а, тем большую ценность имеет данная система модуляции — демодуляции для кодирования.
Гауссовский канал с бесконечной шириной полосы частот
Хорошо известна величина минимальной вероятности ошибки при передаче какого-либо одного сигнала, взятого из большого числа (скажем, М) равновероятных сигналов, по каналу с бесконечной шириной полосы частот с аддитивным белым гауссовским шумом. Оптимальные сигналы образуют симплекс, который может быть получен из множества М ортогональных сигналов при помощи переноса начала координат. Симплексные сигналы с энергией Ес. эквивалентны ортогональным сигналам с энергией Ео. = ЕС.М {(М—1).
Так как вероятность ошибки для двух равновероятных ортогональных сигналов приближенно оценивается неравенством
р2 (е) < ±~ V^EoJNo.
то вероятность ошибки для М симплексных сигналов удовлетворяет неравенству
-Ес МДМ-Wo.
Р (г) £ 7^— —,(9а)
У 2к£с М/(М- 1) No.v 7
где плотность мощности шума на двусторонней частотной шкале равна No. /2. Полагая М 2" и пренебрегая неэкспоненциальными членами, имеем для больших v
Р^-Ч-1^(9б)
где‘
£б log2 е(9в)
представляет собой максимально достижимый показатель степени, а
Еб. = -^-(9г)
есть энергия на 1 бит. Индекс оо использован для того, чтобы подчеркнуть тот факт, что это значение достигается при использовании 2V ортогональных (или симплексных) сигналов. Ширина полосы частот, которую занимает множество сигналов, и сложность оптимального приемника (включающего согласованные фильтры) пропорциональна 2V и, таким образом, по существу бесконечна при больших v . Требуется, очевидно, чтобы а^ > 1.
А. Выбор сигналов для кодирования. Значение а, которое может быть достигнуто на практике всегда, конечно, меньше а^. Это происходит по двум причинам. Первой из них является желание иметь постоянное число степеней свободы на 1 бит, используемый в передаче: если на вход передатчика подается фиксированное число бит в 1 сек, то это позволяет передаваемому сигналу при увеличении v оставаться в полосе с неизменной шириной1). Второй из причин является желание ограничить число символов множества ^у^, представляющих вход декодирующего
х) В данном случае под «передатчиком» подразумевается устройство, вырабатывающее сигналы на входе канала. На вход «передатчика» поступают последовательности с выхода кодирующего устройства.—Прим, перев.
устройства, с тем, чтобы оптимизировать требования к памяти в декодирующем устройстве. Эта общая проблема впервые была рассмотрена Зивом [4].
Так как необратимая обработка данных в приемнике никогда не снижает достижимую вероятность ошибки, то отложим вначале рассмотрение сложности декодирующего устройства и исследуем отдельно границы на а, накладываемые ограничением множества передаваемых сигналов к степенями свободы на бит.
Рис. 4.Рис. 4.Оптимальный приемникОптимальный приемникдля гауссовского канала.для гауссовского канала.
Рис. 4.
Рис. 4.
Оптимальный приемник
Оптимальный приемник
для гауссовского канала.
для гауссовского канала.
Рассмотрим, в частности, множество сообщений, для которого каждый из 2V возможных сигналов формируется как последовательность, образованная
п = v п0.(10а)
статистически независимыми выборками с возвращением, выполненными из множества т равновероятных ортогональных элементарных сигналов (building-block waveforms) (хД/)}. Таким образом, по. — это число элементарных сигналов на I бит. Для того чтобы удовлетворить ограничению числа степеней свободы на 1 бит, потребуем, чтобы было
к
m = "i^(10б>
а для того чтобы удовлетворить ограничению энергии на 1 бит,. потребуем, чтобы энергия Ет каждого хД^ была равна
Ет=^г-(Юв>
Рассмотрим вначале оптимальный приемник; он изображен на рис. 4. Приемник состоит из т параллельных и согласованных с {хД/)) фильтров; на выходе каждого из фильтров в конце передачи каждого элементарного сигнала производится выборка. Выборка- квантуется и подается на декодирующее устройство. Предположим сначала, что квантование произведено настолько тонко, что оно не вызывает неточностей.
Значение а, получающееся при этой схеме модуляции — демодуляции, легко подсчитать. Рассмотрим случай лишь двух таких сообщений ^М = 2). Все те места, где эти две последовательности перекрываются, т. е. состоят из одинаковых хД/), ничего не дают для их различимости. Однако везде, где перекрытие отсутствует, последовательности являются ортогональными. Таким образом, как следует из равенств (8) — (10), вероятность ошибки для случая М = 2 при заданном числе перекрытий h имеет вид
^n0-^Emf<ZN0.
Р. № < ;===-(На)
У 2л b«o. — h)EmiNo.
И
■"о.
р^ = ^Ца1^к )(Ау(1__Ууп°-к (цб)
А=о'
Пренебрегая неэкспоненциальными множителями и производя суммирование, после выполнения некоторого количества преобразований получаем
ЛД0<2"^Т1,(Ив)
где Yi задается равенством
Ь =log 2;(Иг)
m aaoo •х 7
00— т——
1+(/П—1)2*
Назовем ух фактором эффективности системы модуляции. Из полученного результата следует, что для 2* таких сигналов
P(e)<2-H-1+Ti«oo] .(12у
Характеристика, которая описывается фактором эффективности ух, ухудшается по двум причинам: (I) из-за желания использовать большое значение т для того, чтобы уменьшить среднее число перекрытий; (2) если к (степень свободы на I бит) сохраняется постоянной, то увеличение т уменьшает число по. (число выбранных элементарных сигналов на 1 бит) и, следовательно.
вероятность того, что число перекрытий будет значительно больше среднего их числа при выборе двух передаваемых последовательностей, увеличивается для больших т. Отсюда следует, что для данного отношения а^ /k фактор ут как функция от m имеет (размытый) максимум. На рис. 5 приведена зависимость уг от
Рис, 5. Эффективность систем кодирования и модуляции с тонким квантованием.
а^ ]к\ при этом взято такое значение т, на котором достигается максимум уг при фиксированном (а^ /к\
Интересно сравнить этот результат с теми результатами, которые получаются, если использовать другие приемлемые способы кодирования. Если вместо пг ортогональных сигналов используются двоичные симплексные блоки элементарных сигналов, то вывод (На) остается справедливым для т = 2 при замене Ет на 2Em. Последняя замена объясняет преимущества обнаружения двоичных симплексных сигналов по отношению к двоичным ортогональным сигналам [см. неравенство (9а)]. Более того, для двоичной симплексной системы число степеней свободы на 1 бит равно по., а не 2ло. Таким образом, получающаяся эффективность, обозначаемая нами через у2« будет равна
Она также приведена на рис. 5. Можно показать, что в случае, когда т элементарных сигналов образуют некоторый симплекс, оптимальное значение т равно 2.
Наконец, если сконструировать сигнал передатчика как сумму &v ортогональных функций и выбрать амплитуды этих функций не-
зависимо согласно гауссовскому распределению со средним значением, равным нулю, и дисперсией S2, то вероятность ошибки для случая /И = 2 может быть найдена на основе равенства (5) при замене в нем сумм на определенные интегралы с бесконечными пределами. В результате получаем экспоненту
— — V&10g2
(14а)(14а)2 2।
(14а)
(14а)
которая означает, что фактор эффективности, обозначаемый нами через 73, равен
1 А/'
(146)(146)Тз = 4-^- 1о§2 1 + 1,385 «~ / &
(146)
(146)
Этот результат также изображен на рис. 5.
Можно дать прямую интерпретацию этих кривых эффективности. Дело обстоит в точности так же, как и в хорошо известном результате, полученном для пропускной способности
С = lFlog2 1 +С = lFlog2 1 +P]W \ , W0./2JP]W \ , W0./2J(15)(15)
С = lFlog2 1 +
С = lFlog2 1 +
P]W \ , W0./2J
P]W \ , W0./2J
(15)
(15)
где С — пропускная способность, отнесенная к секунде, a P,W— энергия на степень свободы. Если мы хотим достичь наилучшего возможного результата при фиксированном количестве передаваемой энергии, то мы должны использовать число степеней свободы, достаточное для того, чтобы отношение энергии к шуму на одну степень свободы оставалось небольшим.
Точное оптимальное множество элементарных функций {xz(/)J и вероятности ^р^, с которыми они должны быть использованы, остаются еще неизвестными. Ясно, однако, что каждый из рассмотренных выше способов является по существу оптимальным для малых Jk. Множество элементарных сигналов, образующих двоичный симплекс, до некоторой степени лучше, чем множество ортогональных элементарных сигналов с т </ 32, но, возможно, что этого недостаточно, чтобы оправдать дополнительную точность в определении фазы, которая требуется в приложениях. Разностнофазовая манипуляция также является возможной.
Важность этих результатов состоит в следующем. Весьма вероятно, что в случаях, когда получение большого отношения сигнал/шум является дорогостоящим (как, например, при глубоком исследовании космоса), может возникнуть желание использовать кодирование в гауссовском канале с бесконечной шириной 7 Заказ № 102
полосы частот. При этом для получения большой скорости передачи в битах надо, чтобы значение величины а^ [см. (96)] лишь ненамного превышало ее минимальное допустимое значение а^ = 1. Поскольку в соответствии с (12) мы требуем, чтобы Т«оо>1, то система модуляции должна быть выбрана очень тщательно, с тем чтобы обеспечить достаточно большое 7, удовлетворяющее этому требованию. Из рис. 5 ясно, что подходящая система модуляции существует и что v^—размерность пространства, которое образуют сигналы, — возрастает лишь линейно с ростом v (ограничения на длину кода). Однако для 7^1, как видно из рис. 5, коэффициент пропорциональности к должен удовлетворять условию —т— -т- < -.
К К 10
Б. Квантование в приемнике. Использование подходящей схемы модуляции, конечно, не достаточно для того, чтобы гарантировать высокое значение 7 в действующей системе. Необходимо также, чтобы объем памяти декодирующего устройства и требования к вычислительной возможности были разумными; сомнительно, что их можно было бы сделать таковыми, если бы приходилось запоминать (в случае больших v) к непрерывных переменных на бит. Задача прямого квантования выходов согласованных фильтров была ранее рассмотрена Зивом [4]. В этом пункте будут рассмотрены некоторые другие интересные способы обработки сигналов.
Простейший способ обработки в приемнике состоит в принятии жесткого решения относительно того, как идентифицировать каждый последовательный элементарный сигнал. Вероятность цо. того, что это рещение верно, может быть найдена по стандартным таблицам [5] и подставлена в (5). Для m равновероятных ортогональных или симплексных сигналов
Е(0) =-21og2[]/qoJrn + j/ро. ^M-j ,(16)
где ро. = 1 — Цо. • Таким образом, фактор эффективности у4 в этом случае будет равен
]■(17)
На рис. 6 приводится график зависимости 74 от ощ !к для нескольких значений пг в предположении, что \xt (Z)} ортогональны. На этом рисунке также изображен случай двоичных симплексных сигналов. Чем больше т, тем выше достижимая совокупная модуляционно-демодуляционная эффективность. Однако
значения т, существенно большие 1000, оказываются непривлекательными с технической точки зрения.
Жесткое правило решения, рассмотренное выше, может быть улучшено, если для каждого элементарного интервала передачи запоминать упорядоченный список / апостериори наиболее вероятных {a:z(OL Если предположить вновь, что имеют место т равновероятных ортогональных элементарных сигналов, то прямые,
Рис. 6. Эффективность ортогональной системы модуляции с жестким правилом решения.Рис. 6. Эффективность ортогональной системы модуляции с жестким правилом решения.
Рис. 6. Эффективность ортогональной системы модуляции с жестким правилом решения.
Рис. 6. Эффективность ортогональной системы модуляции с жестким правилом решения.
1 4т|/ к log2e '1 4т|/ к log2e '
1 4т
|/ к log2e '
1 4т
|/ к log2e '
но утомительные вычисления показывают, что эффективность модуляции — демодуляции (обозначенная у5) дается формулой
(18в)
Рис. 7а. Эффективность ортогональной системы модуляции со списком, состоящим из I сигналов.
Рис. 76. Эффективность ортогональной системы модуляции со списком, состоящим из / сигналов.
Рис. 7в. Эффективность ортогональной системы модуляции со списком, состоящим из / сигналов
Кривые зависимости у5 от а^ /& показаны на рис. 7 для различных значений т и I. Значения pj были получены просчетом на вычислительной машине ИБМ-7090 m-позиционного эксперимента, который описывается вероятностями (186).
Схема обработки сигнала в приемнике, запоминающем список, состоящий из I сигналов, требует память для запоминания v kl ^~т бит на одно кодовое слово; такая память является допустимой для тех параметров, которые представляют интерес. (Случай жесткого правила решения соответствует /= 1.) Если функции {хД/)} выбраны так, что они составляют т ортогональных сдвинутых во времени импульсов, то построение передатчика и приемника при m< 1000 может быть выполнено прямыми методами. Возможные трудности, возникающие из-за ограниченной пиковой мощности передающих устройств, могут быть разрешены с помощью передачи модулированных по положению сигналов с совершенными автокорреляционными функциями (такого типа, который был найден Хаффменом [6]) и с помощью согласованной фильтрации, выполняемой до демодуляции в приемнике.
Последовательное декодирование
Оценка сверху для Р (г), задаваемая (3), не. является наилучшей среди возможных оценок; это ясно из неравенства (1) и рис. 2. Однако сейчас следует рассмотреть ключевую проблему построения самого декодирующего устройства. Трудность состоит в том, что (так как М = 2V) при больших v число возможных передаваемых последовательностей огромно. Единственный известный до сих пор путь реального построения аппаратуры кодирующего и декодирующего устройств для больших v, при которых поведение ошибки будет по существу описываться оценкой (1), является некоторой комбинацией сверточного кодирования [7] и последовательного декодирования [8, 9].
К сожалению, процедуры последовательного декодирования нс сходятся при скоростях передачи Р, больших £(0). Это означает, что последовательное декодирование будет приводить к пренебрежимо малой вероятности ошибки при 7?^£(0) и достаточно больших v, но при таких высоких скоростях возникают серьезные трудности с аппаратурой для буферной памяти. Таким образом, построение схемы модуляции — демодуляции, которая даст уа^ > 1, здесь становится не столь важным просто потому, что увеличение у на 5% или около этого улучшило бы вероятность ошибки примерно также. Существенный вопрос состоит в том, возможно или невозможно построить работающую систему.
На помещенной ниже таблице дается сравнение отношений E6JNO., требуемых для того, чтобы получить различные вероятности ошибки при передаче с кодированием и без кодирования одного из М ортогональных сигналов. Предполагается, что имеется гауссовский канал и (в случае, когда кодирование производится) уа^ — 1.
Р^)
Симплекс
М ортогональных сигналов
Кодирование
М = 2
М = 16
М = 128
М = 1024
Т = 1,0
7 = 0,8
ю-3
~4,5
-3,5
-2,5
-2
1,39
1,74
10"6
~15
—8
-5,5
-4
1,39
1,74
10-9
~20
-12
-7,5
-5,5
1,39
1,74
Так как в случае, когда кодирование производится, вероятность Р(з) может быть сделана сколь угодно малой с помощью увели- чения v при постоянном > 1,74, то оказывается, что ве- роятностное декодирование сулит наибольшие преимущества в условиях, когда требуется малая вероятность Р(гу
При решении вопроса о том, даст ли вероятностное кодирование экономичное техническое решение, приведенная выше таблица может оказаться недостаточной. Если, например, кроме аддитивного гауссовского шума в канале появляются замирания и фазовые аномалии, временные параметры которых велики по сравнению с интервалом, соответствующим 1 бит, и малы по сравнению с интервалом, соответствующим v бит, то преимущества, связанные с применением кодирования, намного превосходят указанные выше [10]. При глубоком исследовании космоса аномалии такого вида могут возникнуть из-за вращения космического корабля и флуктуаций, возникающих из-за неоднородностей в среде распространения волн. Дополнительное преимущество кодирования состоит в том, что требуется меньший запас технических допусков.
Эксперимент с SECO1)
Примером практического применения приведенных выше рассуждений, касающихся модуляции и кодирования, является эксперимент с цифровой передачей, который был недавно выпол-
г) SECO — self-regulating error correcting coder—decoder — саморегулируе- мая и исправляющая ошибки система кодирующего и декодирующего устройств. — Прим, персе.
нен на телефонной линии Линкольновской лабораторией Массачусетского технологического института совместно с Исследовательской лабораторией электроники того же института [11]. Этот эксперимент был произведен в целях испытания специализированных вычислительных машин, являющихся сверточным кодирующим и последовательным декодирующим устройствами (SECO) [13]. Поток двоичных цифр с выхода сверточного кодирующего устройства, у которого v = 60, разбивался на группы, состоящие из 5 символов; каждая такая группа преобразовывалась в один из 32 амплитудных уровней. Эта последовательность уровней производила амплитудную модуляцию последовательности низкочастотных функций, приближенно представляющих собой sinx/x. В свою очередь эти функции были однополосно замодулированы и переданы по постоянно подключенной /(-несущей телефонной линии длиной 1280 км. В приемнике получаемые функции гетеродинировались снова к низкой частоте; из них производились выборки при пересечении нуля импульсами sinx/x, которые преобразовывались в двоичные пятизначные числа. Результирующий (смешанный с шумом) поток цифр попадал в буферное устройство, имеющее память на 3000 бит, и оттуда на последовательное декодирующее устройство. Путем последовательного просмотра цифр в декодирующем устройстве определялось, какая из 260 возможных последовательностей на выходе кодирующего устройства наиболее точно приближает принимаемый набор цифр в том смысле, что совокупная абсолютная величина разности между принятыми и переданными уровнями амплитуды является минимальной.
В случае передачи по телефонной линии невозможно подсчитать теоретический предел максимального достижимого значения а. Однако возможно сделать эмпирическое приближение. Переменными в системе модуляции являются число используемых уровней амплитуды и число импульсов в секунду. С увеличением числа уровней увеличивается экспериментальное значение а, однако наступает такой момент, когда шаг квантования становится настолько малым, что ошибки в один уровень становятся частыми; дальнейшее увеличение числа уровней амплитуды даст малый выигрыш. Экспериментально установлено, что тридцать два уровня, которые приводят к ошибке по крайней мерс на один уровень приблизительно в 10% случаев, являются достаточными. С увеличением числа импульсов в секунду значение а также увеличивается до тех пор, пока межсимвольная интерференция не становится сильной; после этого а быстро падает. Оказывается, что для однополосной сбалансированной аппаратуры, которая может быть использована в настоящее время, оптимум достигается примерно на 3000 символах в секунду.
Описанная комбинация SECO с системой модуляции — демодуляции работала в течение более 40 час с вероятностью ошибки при декодировании, меньшей, чем 10"9 на 1 бит. SECO использует автоматический дуплексный режим с переспросом и с исправлением и обнаружением ошибок [12], так что скорость декодирования 1 бит является случайной величиной. В среднем, однако, декодировалось 7500 бит в секунду, что в три или четыре раза больше скорости для обычной аппаратуры при вероятности ошибки ~105.
Выводы
Один из важных аспектов эксперимента, проведенного на телефонной линии, состоит в том, что эти результаты были получены без точного знания статистической структуры шумов, действующих в телефонной линии. Способность к достижению эффективной и точной передачи данных в отсутствие таких знаний характерна для процесса последовательного декодирования, использующего дуплексный режим. Хотя распространение ошибки может контролироваться даже в однонаправленных каналах [8], некоторая ограниченная возможность передачи в обратном направлении чрезвычайно упрощает задачу.
Оба рассмотренных здесь канала — гауссовский канал и телефонная линия — характеризуются тем, что они нс являются сильно диспергирующими, и тем, что в них отсутствуют случайно изменяющиеся параметры. Потребуется дополнительная работа, которая из-за трудностей, возникающих при математической обработке, должна быть в значительной мерс экспериментальной, для выяснения взаимодействия модуляции и кодирования в каналах с рассеянием. Однако концепция, согласно которой слова модуляция и кодирование означают построение сигналов, а слова демодуляция и декодирование означают обработку сигналов при приеме, кажется существенной для окончательного понимания обсуждаемого вопроса.
ЛИТЕРАТУРА
Fano R. М., Transmission of information, Techn. Press of MIT, Cambridge, Mass., and Wiley, N. Y., 1961. (Русский перевод готовится к печати в издательстве «Мир».)
G а 1 1 a g е г R. G. (неопубликованная работа).
Balakrishnan А. V., A contribution to the sphere-packing problem of communication theory, J. Math. Anal a. Appl., 3 (1961), 485.
Ziv J., Coding and decoding for time-discrete amplitude continuous memoryless channels, Techn. Rep. № 399, Res. Lab. of Electronics, MIT January 31, 1963.
Urbano R. H., Analysis and tabulation of the Af-position experiment integral and related error functions integrals, ARDC, AFCRC-TR-55-100, April 1955.
Huffman D. A., The generation of impulse-equivalent pulse trains, Trans. IRE, PGIT-8, № 5 (September 1962), 10.
Elias P., Coding for two noisy channels, Information Theory Third London Symposium, Cherry C. (ed.), Butterworth Sci. Publ., Lnd., 1955. (Русский перевод: Э л а й e с П., Кодирование для двух каналов с шумами, сб. Теория передачи сообщений, ИЛ, М., 1957, стр. 114.)
Wozencraft J. М., Reif fen В., Sequential decoding, Techn. Press of MIT, Cambridge, Mass., and Wiley, N. Y., 1961. (Русский перевод: Возенкрафт Дж., Р е й ф ф е н Б., Последовательное декодирование, ИЛ, М., 1963.)
Fano R. М., A heuristic discussion of probabilistic decoding, Trans. IEEE, PGIT-9, № 4 (April 1963), 64. (Русский перевод: Фано P. M., Эвристическое обсуждение вероятностного декодирования, сб. Теория кодирования, «Мир», М., 1964.)
J а с о b s I. М., Method and merit of binary coding for analog channels, Proc. Nat. Electronics Conf., 18 (1962), 765—773.
L e b о w I. L., McHugh P. G., Parker A. C., R о s e n P., W o- zencraft J. M., Application of sequential decoding to high-rate data communication on a telephone line, Trans. IEEE, PGIT-9, № 2 (April 1963), 124.
Wozencraft J. M., H о r s t e i n M., Coding for two-way channels, Information Theory, Fourth London Symposium, Cherry C. (ed.) Butterworth Sci. Publ Lnd., 1961.
Perry К. E., Wozencraft J. H., SECO: A self-regulating errorcorrecting coder — decoder, Trans. IRE, PGIT-8, № 5 (September 1962), S128—S133.
6 Заказ № 102
ОБСУЖДЕНИЕ СОСТОЯНИЯ ТЕОРИИ КОДИРОВАНИЯ И ВОПРОСОВПРАКТИЧЕСКОГО ИСПОЛЬЗОВАНИЯ КОДОВ1)
У. У. Питерсон
Введение
Цель настоящей статьи — осветить состояние работ, посвященных кодам, исправляющим ошибки. В первом разделе статьи дастся краткое описание некоторых широко известных схем кодирования, имеющих практическую ценность. Затем обсуждается состояние теории кодирования в применении к наиболее изученному в настоящее время двоичному симметричному каналу. В последнем разделе статьи производится сравнение состояния работ, посвященных некоторым другим аспектам кодирования, с состоянием работ по кодированию в двоичном симметричном канале.
Здесь невозможно произвести исчерпывающее рассмотрение этих вопросов. Поэтому я отобрал лишь тот материал, который, как мне кажется, наилучшим образом иллюстрирует наиболее важные моменты. По этой же причине здесь упоминается и содержится в списке литературы только небольшая часть работ, выполненных ранее по теории кодирования. Более того, эта статья носит отпечаток субъективности и в какой-то мере односторонности моих взглядов на эти вопросы. Однако я надеюсь, что некоторые из высказанных здесь положений будут стимулировать исследования, относящиеся к теории и практическому использованию кодов, исправляющих ошибки.
Коды, имеющие практическую ценность, и вопросы,связанные с их реализацией
За последние годы был открыт новый класс кодов с проверками на соответствие; эти коды были названы циклическими [1, 40, 41]. Как показано в работах ряда авторов, существует множество разнообразных видов таких кодов, и, что еще важнее, эти коды могут быть относительно легко реализованы на практике. Коды Хэмминга, исправляющие одиночную ошибку, и коды Хэмминга, исправляющие одиночную ошибку и обнаруживающие двойную ошибку, могут быть преобразованы в циклические;
J) Доклад на XIV генеральной ассамблее Международного научного радиосоюза (U. R. S. I.), Токио, сентябрь 1963 г.
известный совершенный код Голея (23, 12) и коды Рида — Мал- лера первого порядка также оказываются циклическими кодами [39]. Наиболее важными новыми классами таких кодов являются, по-видимому, коды Боува — Чоудхури — Хокингема [9, 27, 50] и коды Файра [17]. •
Коды Боуза — Чоудхури—Хокингема представляют собой класс кодов, исправляющих многократные ошибки. Для любого т существует такой код длины 2т — I, который исправляет все ошибки кратности / и меньше и требует при этом mt или меньше проверочных символов. Точное число проверочных символов нс выражается какой-либо простой формулой, однако расчеты по его отысканию несложны [33, 39]. Несколько примеров приведено в помещаемой здесь табл. 1. Были также изучены некоторые другие циклические коды, исправляющие многократные ошибки, и рассмотрены перспективы, связанные с их практическим использованием. Большинство этих кодов обладает длиной, равной простому числу.
Коды Файра представляют собой класс кодов, исправляющих любой одиночный пакет, или пачку ошибок в одном кодовом слове. Для любых т и Ь, таких, что т Ь, существует код Файра, который может исправлять любой одиночный пакет с длиной, меньшей или равной Ь. В этом коде длина кодового блока равна наименьшему общему кратному чисел 26 + I и 2т — I, а число проверочных символов в блоке равно 26 + m+1. Несколько примеров приведено в табл. 2. Был найден ряд других конкретных (т. с. нс образующих целый класс) циклических кодов, исправляющих пакеты ошибок. Во многих случаях они лучше кодов Файра. Например [2], существует код, исправляющий пакеты длины 3, который имеет 10 проверочных символов
Таблица 1
Несколько примеров параметров кода Боуза — Чоудхури — Хокингема
Общее число символов
Число проверочных символов
1 Число инфор- I мационных символов
15
8
7
2
15
10
5
3
63
12
51
2
63
33
30
6
63
53
10
13
127
63
64
10
1023
100
923
10
из общего числа 255; он более эффективен, чем первый из кодов, представленных в табл. 2.
Циклические коды тесно связаны с «линейными сдвигающими регистрами с обратной связью»; для таких кодов отыскание проверочных символов может быть легко выполнено на сдигающем регистре. Существуют два метода отыскания проверочных символов [39]. В первом из них требуется одна ступень сдвигающего регистра на каждый информационный символ в кодовом слове, а
Вход
Выход
Рис. 1. Блок-схема устройства, исправляющего ошибки в циклических
кодах.
во втором требуется одна ступень на каждый проверочный символ. Такая простая реализация делает эти коды чрезвычайно привлекательными для обнаружения ошибок.
Существует общий метод исправления ошибок на приемном конце, который впервые был открыт Меггитом [35] во время его пребывания в США и позднее независимо открыт Радченко и Мирончиковым [43] в очень интересной форме. Для типичного циклического кода один из способов построения декодирующего устройства изображен на рис. 1. Сдвигающий регистр здесь в точности такой же, как и регистр, используемый для кодирования. Он используется в декодирующем устройстве вначале для того, чтобы вновь осуществить проверки на соответствие
и определить, какие из проверок не удовлетворяются, а затем для определения ошибочных символов. В то время как осуществляются проверки на соответствие, в буферном устройстве происходит накопление, быть может искаженной шумом, принимаемой информации. На основании последовательности единиц и нулей, записанных в сдвигающем регистре, схема исправления ошибки определяет, содержится ли ошибка в первом двоичном знаке, и исправляет его при считывании. После этого сдвигающий регистр сдвигается на один знак и та же схема, исправляющая ошибки, может быть использована для того, чтобы определить, является ли правильным второй двоичный знак. Этот процесс продолжается так, что для каждого символа, который берется из памяти, происходит сдвиг сдвигающего регистра.
Таблица 2
Несколько параметров кода Файра
т
b
Общее число символов
Число проверочных симво-
Число информационных символов
3
3
49
10
39
4
3
105
11
94
5
5
341
16
325
10
10
7161
31
-7130
Весь процесс является простым и легко реализуемым, кроме, быть может, блока, содержащего «цепь, исправляющую ошибки». Эта схема оказывается тривиально простой для всех кодов, исправляющих пакеты ошибок и включающих как частный случай коды Хэмминга [39]. Теоретически этот блок может быть также сконструирован для любого кода как двоичная диодная логическая схема. Для кодов, исправляющих двойные ошибки, разумной приближенной оценкой числа диодов в этой схеме является число к^п—&)/2, однако необходимое число диодов быстро возрастает с увеличением числа ошибок, которые нужно исправлять. Код Боуза — Чоудхури с п = 31 и ^ = 21, исправляющий двойные ошибки, требует около 100 диодов, а код с и = 31 и к = 16, исправляющий тройные ошибки, требует около 3000 диодов. Однако недавно Массей [34], Прейндж [42], Касами [29] и Рудольф [44] усовершенствовали эту схему и сделали ее практически реализуемой для многих кодов, обладающих умеренным числом исправляемых ошибок (около четырех или пяти ошибок на слово). Такого рода аппаратура для кодирования и исправления ошибок была изготовлена по крайней мере двумя фирмами в США (компанией Дженерал электрик в Оклахоме, шт. Оклахома, и корпорацией Кодекс в Кембридже, шт. Массачусетс).
Для кодов Боуза — Чоудхури — Хокингема существует другая процедура исправления ошибок, которая имеет общие черты с процедурой, изображенной на рис. 1. Вместо «цепи, исправляющей ошибки», в ней имеется вычислительное устройство, которое производит арифметические операции в поле Галуа с проверочными символами, соответствующими тем проверочным соотношениям, которые оказались невыполненными, и эффективно находит расположение ошибок [39]. Сложность такого устройства невелика: оно может быть построено для кодов, исправляющих примерно 20 или более ошибок в блоках произвольной длины, зависящей от того, сколько символов накапливается во время процесса исправления ошибок. Такое декодирующее устройство было построено Барти [5] для кода Боуза — Чоудхури длины 127, исправляющего пятикратные ошибки. Вычислительное устройство, которое содержит в себе блок проверки на соответствие, в этой модели, использующей не слишком компактные схемы, имеет размер ящика картотеки.
Существует другой подход к исправлению ошибок, значимость которого становится все большей и начало которому положили работы, выполненные Возенкрафтом в МТИ в 1957 г. Этот подход состоит в совместном использовании сверточного кодирования и последовательного декодирования [52]. Важные результаты недавно были получены Фано [16], который, в частности, предложил усовершенствованный алгоритм последовательного декодирования. Этот тип систем плохо поддается полному и строгому математическому анализу, однако сейчас имеется достаточно разумное его понимание. Эта система имеет определенные преимущества (среднее число вычислений на символ, необходимых для исправления ошибок в длинных кодах, допускающих возникновение многих ошибок, невелико). Кроме того, эта система значительно более гибка по сравнению с системами для циклических кодов, обладающих фиксированной алгебраической структурой.
В силу того, что последовательное декодирование является столь многообещающим и оно полностью не может быть понято только с помощью теоретического анализа, в Линкольновской лаборатории МТИ была построена полная система, осуществляющая такое кодирование [38]. Эта система работает сейчас [31]; несмотря на высокую стоимость ее аппаратуры, удалось продемонстрировать возможность выполнения такой системы. По-ви- димому, усовершенствования в этой системе и аппаратуре, ее осуществляющей, сделают последовательное декодирование более экономичным. Более того, экспериментальные результаты по последовательному декодированию, которые будут обсуждаться в другом разделе этой работы, являются весьма ободряющими.
Существует некоторое число других типов кодов, исправляющих ошибки, которые имеют либо потенциальную, либо реальную практическую ценность. Даймонд [13], Браун [10], Хендерсон [26], Бернштейн и Ким [8] и Цзянь [12] исследовали, например, некоторый вид кодирования, основанного на обычной арифметике. Кодовое представление числа п есть Ап 4- В. Корректирующая способность кода зависит от значения А и ограничений на диапазон п. Так как операция кодирования является линейной, эти коды могут быть использованы для проверки вычислений, производимых в сумматоре. В этом случае они обнаруживают или исправляют как ошибки переноса, так и обычно рассматриваемые ошибки в цифрах. Так как кодирование и декодирование могут быть выполнены с помощью обычной арифметики, эти коды удобно использовать при передаче информации между вычислительными машинами.
Фрейман [21] и Бергер [6,7] нашли коды, хорошо приспособленные к асимметричному каналу. Одна особенно интересная схема кодирования использует в качестве проверочных символов число (возможно с учетом веса) «единиц» в информационных позициях. Это число выражается как дополнение к обычному двоичному числу. Тогда последовательность ошибок, которая заменяет только единицы на нули или наоборот, всегда может быть обнаружена.
Несомненно, что эти достижения теории исправления и обнаружения ошибок явились результатом развития методов кодирования, основанного на простых алгебраических или геометрических соотношениях, применявшихся во многих вычислительных машинах, начиная с машины SSEC Гарвардского университета, а также в обычных вычислительных системах. Во многих случаях этот вид исправления или обнаружения ошибок выглядит предпочтительнее по отношению к более мощным, но более сложным недавно развитым методам. Очень хороший обзор различных интересных для практики систем, исправляющих ошибки, дан в недавней работе Кауца [30].
Состояние теории кодирования для двоичногосимметричного канала ■
Содержание предыдущего раздела показывает, что теория кодирования получила значительное развитие. Помимо того, что было уже изложено выше, имеется целый ряд результатов, представляющих значительный теоретический интерес. Вот, например, два обращающих на себя внимание результата: (I) новая трактовка кодов Боуза — Чоудхури, данная Соломоном и Матсоном [50], и (2) полученная Маквильямс изящная формула, которая позволяет вычислить распределение веса в коде на основании распределения
веса в нулевом пространстве [32]. Здесь, однако, я хочу остановиться на некоторых аспектах теории кодирования, которые проливают свет на состояние этой теории и очерчивают границы ее будущих возможностей. Эти аспекты относятся к оценкам корректирующих способностей кодов.
На рис. 2 изображена простейшая и наиболее изученная модель канала с шумом — двоичный симметричный канал. В каждый момент времени по каналу могут передаваться «1» или «О». С вероятностью q полученный символ не изменится, т. е. будет «правильным»; с вероятностью р произойдет ошибка, т. е. символ изменится на противоположный; последовательные символы являются независимыми.
Простейшим типом кода является блочный код, в котором передаваемые сообщения выбираются из заранее известного множества блоков с фиксированной длиной п. Коды с проверками на соответствие — это блочные коды, в которых к первых символов являются произвольными «информационными» символами, а оставшиеся п— к символов представляют собой проверки на четность определенных множеств информационных символов. Принятый блок символов может содержать ошибки и поэтому может не совпадать целиком ни с каким из передаваемых кодовых блоков. Принятый блок «декодируется» в наиболее сходный с ним (в некотором смысле) передаваемый блок. В двоичном симметричном канале оптимальный метод состоит в декодировании в кодовый блок, который отличается от принятого блока в наименьшем числе позиций. Этот метод называется «методом декодирования по максимуму правдоподобия». В хорошем коде вероятность ошибочного декодирования может быть очень мала, много меньше, чем вероятность ошибки в канале р.
Две наиболее важные оценки вероятности ошибочного декодирования— это оценка снизу, получаемая при использовании метода упаковки шаров, и оценка сверху, получаемая при использовании метода случайного кодирования; обе оценки являются оценками
для вероятности ошибки оптимального кода при декодировании по максимуму правдоподобия. Они установлены Элайесом [14] и Шенноном [47] примерно восемь лет назад. Последняя из указанных оценок получена с помощью усовершенствования метода, который Шеннон использовал для доказательства своей замечательной теоремы о пропускной способности канала с шумами. Эта теорема утверждает, что, используя достаточно длинные коды, возможно передавать информацию со скоростью, сколь угодно близкой к пропускной способности канала и со сколь угодно малой вероятностью ошибки. Возникает существенный вопрос: какова должна быть длина кода? Оценки, полученные методом случайного кодирования и методом упаковки шаров, могут пролить свет на этот вопрос.
Пропускная способность двоичного симметричного канала задается формулой
С = 1 +plog2p + (l— р) log2 (1 — р).
Несколько вычисленных значений С приведены в табл. 3.
Таблица 3
Пропускная способность двоичного симметричного канала
р
с
р 1
1 -с
0,1
0,5310
0,001
0,9886
0,01
0,9102
0,0001
0,9985
На рис. 3 и 4 для вероятностей ошибок в канале, соответственно равных 0,01 и 0,0001, изображены оценки, полученные методом случайного кодирования и методом упаковки шаров. Значения оценок вычислены во Флоридском университете на вычислительной машине ИБМ-709 по формулам, приведенным в книге Фано [15]. Эти кривые наглядно показывают границы сверху и снизу для вероятности ошибки при фиксированном п, или наоборот, границы сверху и снизу для длины п, необходимой для достижения заданной вероятности ошибки. Интересно отмстить, что если скорость передачи R^kln близка к пропускной способности канала и вероятность ошибочного декодирования очень мала, то код должен быть очень длинным по отношению к обычным стандартам. Например, при р = 0,01 (это соответствует С = 0,9102) для того, чтобы иметь вероятность ошибочного декодирования 10~10 при скорости 0,9, требуется длина 50 000.
Зависимость логарифма вероятности ошибочного декодирования от длины п при больших п становится линейной. Асимптотический
наклон этой кривой называется надежностью Е и может быть относительно легко вычислен.
Среди всех известных кодов для двоичного симметричного канала наилучшими кодами с длиной в несколько сотен являются коды Боуза — Чоудхури. Ряд таких кодов в табл. 4 сравнивается
Рис. 3. Оценки, полученные методом упаковки шаров и методом случайного кодирования при р=0,0001 (оценка, полученная методом упаковки шаров, представлена сплошной линией).
с оценками, полученными методом случайного кодирования и методом упаковки шаров. Несмотря на то, что коды Боуза — Чоудхури являются наилучшими среди известных нам кодов, многие из них далеки от оптимума. Это происходит по целому ряду причин. По-видимому, наиболее важная из них состоит в том, что алгоритм декодирования для кодов Боуза — Чоудхури нс является декодированием по максимуму правдоподобия. Для некоторых t этот алгоритм исправляет всевозможные ошибки кратности t и
меньше и лишь обнаруживает многие ошибки кратности, большей, чем I. Конечно, если бы для того же самого кода использовалось декодирование по максимуму правдоподобия, то вероятность ошибочного декодирования была бы намного меньше. Вполне возможно, что эта вероятность была бы ниже оценки, получаемой с помощью
Рис. 4. Оценки, полученные методом упаковки шаров и методом случайного кодирования при р=0,01 (оценка, полученная методом упаковки шаров, представлена сплошной линией).
случайного кодирования, однако это не доказано. С другой стороны, мы не знаем никакого эффективного алгоритма декодирования, позволяющего исправлять ошибки, кратность которых больше I. Отсюда следует, что в настоящее время мы не можем использовать дополнительную корректирующую способность, которой обладают эти коды.
Неполными являются наши сведения даже относительно минимального расстояния между кодовыми словами в кодах Боуза —
Чоудхури. Боуз и Чоудхури и независимо от них Хокингем получили лишь оценки снизу для числа ошибок, которые могут быть исправлены, но возможно, что некоторые коды допускают исправление большего числа ошибок.
С другой стороны, известные сейчас алгоритмы декодирования работают только в том случае, когда действительное число ошибок не превышает указанную границу. Среди кодов длины 2Ш— 1 не известно ни одного кода, для которого минимальное расстояние превышает эту оценку. В то же время известно, что действительное минимальное расстояние совпадает с оценкой для всех таких кодов с длиной, меньшей или равной 63, и для бесконечного множества более длинных кодов, которые, однако, составляют лишь небольшую часть всех таких кодов.
Таблица 4
Сравнение кода Боуза — Чоудхури с оценками х)
п
А
t
р
р о.д.
р у.ш.
р
с.к.
127
113
2
0,0001
3,4X10-7
1,1X10-7
7,5x10-4
127
92
5
0,0001
5,2х10~18
1,2 ХЮ"19
3,6X10-1°
255
215
5
0,0001
3,5х10"
2,lxl0-ie
1,4x10-1°
511
466
5
0,0001
2,Зх10-п
1,0x10-18
7,0X10-1»
511
421
10
0,0001
1,ЗХ1О"22
1,2x10-82
2,0x10-2»
1023
1003
2
0,0001
1,7Х1О-2
1,охю-4
2,4x10-8
1023
973
5
0,0001
1,5х10-9
2,7x10-11
2,1x10-8
1023
923
10
0,0001
2,8X10-»
1,5x10-26 '
4,9x10-22
127
92
5
0,01
2,0хЮ-3
7,8x10-8
7,2x10-4
127
64
10
0,01
7,8x10-8
3,6x10-18
1,1X10-8
255
171
11
0,01
1,3x10-8
7,1X10-1°
9,6x10-8
511
421
10
0,01
1,7x10-2
1,5x10-1
6,5Х1О-9
511
340
21
0,01
2,0x10-8
2,6x10-17
3,7X10-16
1023
823
20
0,01
2,1x10'8
1,0x10-8
4,5x10-8
Ч В таблице использованы следующие обозначения:
PQ — вероятность ошибочного декодирования для кода Боуза—Чоудхури; Р^
— оценка ш.
для вероятности ошибочного декодирования оптимального кода, полученная методом упаковки шаров; Р^ ^ —оценка для вероятности ошибочного декодирования оптимального кода,
Оценка, основанная на методе случайного кодирования, получается с помощью оценки средней вероятности ошибки неправильного декодирования для всех возможных кодов данной длины с данным числом информационных символов. Весьма примечательно, что легче оценить эту среднюю вероятность, чем подсчитать вероятность ошибки для какого-либо конкретного типичного кода. Еще более примечательным является, быть может, тот факт, что мы не умеем еще доказывать, что характеристики наилучших кодов из тех, которые мы сейчас знаем, не хуже средних оценок для кодов данной длины. Это является источником огорчений теоретиков в области кодирования и в то же время указывает на существование проблем, требующих своего решения.
Некоторые теоретики в области кодирования выдвигают предположение о том, что, может быть, вообще невозможно построить длинные коды, имеющие закономерную (с точки зрения алгебры или геометрии) структуру и вместе с тем обладающие характеристиками, которые не хуже соответствующих средних оценок для этих кодов. Они предлагают использовать случайно выбираемые или случайно генерируемые коды. При этом возникает проблема декодирования. Существуют по крайней мере два метода, которые дают некоторую надежду. Первый — это уже упомянутое последовательное декодирование [52], открытое Возенкрафтом. В условиях высокой избыточности оно оказывается более гибким и требует меньшего числа операций по сравнению с любым другим известным методом декодирования. Второй метод состоит в использовании кодов с очень малым числом единиц в проверочной матрице и основан на некотором подсчете, связанном с характеристиками большинства невыполненных проверочных соотношений; этот метод был найден Галлагером [22] из МТИ. Успехи, достигнутые недавно в этих методах декодирования, дают основание предполагать, что эти методы, или, возможно, другие, подобные этим, будут приобретать все большее значение.
В настоящее время большинство реальных каналов связи использует обратную связь, т. е. имеется возможность посылки некоторого сообщения с приемного конца на передающий; в крайних случаях таким сообщением может быть подтверждение получения удовлетворительной информации или требование повторить передачу. По исследованию двоичного симметричного канала с обратной связью было выполнено несколько работ [11,28, 36, 46,51], однако не все еще здесь в достаточной степени выяснено. На практике наиболее простая процедура состоит в использовании кодов, обнаруживающих ошибки, и требовании повторить весь блок, если в нем была обнаружена ошибка. Пусть, например, р = 0,0001 и используется код Боуза — Чоудхури с п = 127, & = 119. Этот код обнаруживает все ошибки, кратность которых
меньше или равна 3, и обнаруживает 99,75% всех других ошибок. Вероятность необнаруженной ошибки приближенно равна 4-10"12. Скорость передачи равна произведению отношения к/п на вероятность того, что полученное слово будет безошибочным и поэтому принятым. Для указанных кода и канала /? = 0,92. Как следует из рис. 3, это будет ниже оценки, получаемой методом упаковки шаров. Ни один из блочных кодов указанной длины не может обладать такой эффективностью!
Рассмотрим теперь двоичный симметричный канал с р=0,01 и попытаемся найти код более эффективный, чем код Боуза — Чоудхури с п = 511, £=340, который представлен в табл. 4. Оказывается, что это невозможно! Причина состоит в том, что, для того чтобы вероятность обнаружения была низкой, должно быть большим число п—к проверок на соответствие. Кроме того, для получения большой скорости kin и qn должны быть приближенно равными единице. Эти требования являются несовместимыми. Если зафиксировать п— к, то при увеличении п увеличивается kin, в то время как qn уменьшается. Произведение отношения kin на qrt имеет некоторое максимальное значение, которое для заданного числа проверок на соответствие не может быть превзойдено.
Изучая действие обратной связи в двоичном симметричном канале, Уэлдон недавно показал, что хорошие результаты дает сочетание исправления всех ошибок кратности t или меньше (при некотором /) с обнаружением ошибок и требованием повторения передачи [51]. Соответствующий выбор параметров этой системы всегда приводит к вероятности ошибки, которая лежит ниже границы, получаемой методом упаковки шаров. Уэлдон привел также конструктивную схему кодирования, использующую обычные блочные коды. Эта схема вместе с решающей обратной связью приводит к вероятности ошибочного декодирования меньшей, чем граница, полученная методом упаковки шаров при отсутствии обратной связи. Таким образом, Уэлдон построил класс кодов, который удовлетворяет основной теореме Шеннона.
Система с обратной связью обладает самонастройкой: когда возникает много ошибок, появляется также много требований повторить передачу и эффективная скорость снижается. Другая сторона этого вопроса состоит в том, что информация поступает из источника с переменной скоростью, и это приводит к возникновению проблемы, связанной с переспросом.
Еще одно замечание следует сделать относительно систем с обнаружением ошибок и переспросом. Для однонаправленной системы с исправлением ошибок на приемном конце требуется память для хранения по крайней мере одного полного кодового слова. В системе с обратной связью для того, чтобы сделать возможным
повторение передачи, требуется такая же память на передающем конце и, таким образом, в целом аппаратура системы возрастает незначительно.
Другие каналы и модели каналов
Предыдущее рассмотрение относилось к двоичному симметричному каналу. Аналогичные вопросы в применении к другим каналам являются менее изученными. Большинство результатов (в том числе многие оценки, коды Боуза — Чоудхури — Хокингема и коды Файра) может быть обобщено на недвоичный канал главным образом тогда, когда число символов является степенью простого числа, так что символы можно рассматривать как элементы конечного поля [15, 39]. Были предприняты некоторые интересные, но частные попытки получить преимущества за счет асимметрии. Оказалось, что это не дает большого выигрыша.
Имеются два весьма важных отличия типичных двоичных дискретных каналов связи от двоичного симметричного канала: реальные каналы обладают несовершенной синхронизацией и зависимостью между последовательными символами [3, 18, 19]. Первое из отличий может быть введено в модель, если допустить в ней исчезновение и возникновение двоичных разрядов. Обнаружить исчезновение или возникновение двоичных разрядов, по-ви- димому, нетрудно. Некоторые успехи были достигнуты в несколько более трудной задаче восстановления синхронизации [24, 25, 37]. Однако исправление ошибок, связанных с исчезновением или возникновением двоичных разрядов, является задачей, значительно более трудной и не поддающейся хорошей математической обработке [23, 45].
Проблема зависимости ошибок в последовательных символах является наиболее серьезной проблемой, затрагивающей применение кодов с исправлением ошибок в дискретных системах связи. За последнее время были проведены многочисленные исследования типичных линий связи. Они неизменно указывают на зависимость между ошибками. Как выяснилось, ошибки появляются в виде пакетов, и вначале казалось, что коды, исправляющие пакеты ошибок, хорошо подходят для них. Более подробное изучение показало, однако, что пакеты появляются группами и длина пакета часто может сильно меняться. Временами условия в каналах оказываются хорошими, а временами очень плохими.
Довольно интересным является то обстоятельство, что при заданной вероятности ошибки пропускная способность канала принимает наименьшее значение в случае независимых ошибок. Таким образом, казалось бы, зависимость ошибок приносит некоторые преимущества. Однако для того чтобы достичь скорости, очень
близкой к пропускной способности канала без обратной связи, требуется использовать достаточно длинные коды, так чтобы статистика шума на протяжении одного кодового блока была бы с высокой вероятностью типичной статистикой ансамбля шума. В то время как для независимых ошибок подходящими являются коды с длинами в несколько сотен символов, для типичного телефонного канала, в котором имеются часовые, дневные и недельные вариации, оказывается, что кодовые слова должны иметь по крайней мере длительность многих недель! В случае использования коротких кодов с длиной в несколько сотен символов требуется, чтобы коды были сконструированы для тех периодов времени, когда канал работает плохо, и, следовательно, такие коды являются очень неэффективными в периоды хорошей работы канала. Это приводит в конце концов к обычному для практики использованию обратной связи и даст весьма удовлетворительные результаты. Даже при использовании обратной связи зависимость ошибок пагубно воздействует на систему, вызывая временами большое число требований повторить передачу,а временами—очень малое число таких требований, и, таким образом, проблема переспроса на передающем конце усложняется.
Большинство современных систем использует обнаружение ошибок и переспрос и нс использует исправления ошибок. Часто говорят, что статистика двоичных ошибок показывает, что с помощью частичного исправления ошибок нельзя ничего достигнуть. Интересный эксперимент [31], проведенный недавно Линкольновской лабораторией МТИ, находится в противоречии с этим мнением. Он показывает, что система в целом получает существенные преимущества, если модуляторы строятся с учетом использования кодов, исправляющих ошибки. Обычно же вначале строится по возможности наилучшая система модуляции — демодуляции, а затем принимаются меры по обнаружению и исправлению небольшого числа ошибок, для того чтобы скомпенсировать несовершенства системы. Система Линкольновской лаборатории использует многоуровневую передачу и последовательное кодирование и декодирование на телефонной линии высокого класса. Были получены скорости в 6000—9000 бит исправленной информации в секунду при низком уровне вероятности ошибки. Эта система все еще зависит от обратной связи в тс периоды, когда условия в канале плохие.
Эксперимент, проведенный Линкольновской лабораторией, показывает, что дальнейшее изучение системы передачи сообщений как целостного информационного процесса является более перспективным, чем раздельное изучение, с одной стороны, построения сигналов и модулятора — демодулятора, и, с другой стороны, построения обычных двоичных кодирующих и декодирующих устройств, исправляющих ошибки. Это, по-видимому, очень труд-
ная задача; интересные теоретические результаты получены лишь для модели гауссовского канала, в которой предполагается, что сигнал представляется выборочными значениями, независимо искажаемыми гауссовским шумом той же мощности. Для этого случая Шеннон получил оценки методом случайного кодирования и методом упаковки шаров [48]. Для этого же случая известны некоторые коды [4, 20]. Имеется также замечательная работа, выполненная Слепяном [49], в которой приводятся графики оценок и производится сравнение известных кодов с этими оценками; во многих отношениях эта работа аналогична тому, что сделано здесь для двоичного симметричного канала.
Заключение
Хотя в настоящее время найдено некоторое число хороших и удобных для реализации кодов, наилучшие из известных нам кодов далеки от тех границ, которые, как указывает теория, могут быть достигнуты. Таким образом, имеются важные стимулы для дальнейшего теоретического исследования двоичных и недвоичных кодов и даже в большей степени для дальнейшего исследования кодирования (или теории построения сигналов) в непрерывных каналах.
Известные сейчас коды с успехом могут быть использованы в некоторых частных случаях. Так, например, коды, исправляющие пакеты ошибок, могут быть очень эффективными в борьбе против магнитных дефектов, возникающих при записи на магнитных лентах, диске или барабане. Однако в типичных дискретных каналах связи практическому использованию кодов, исправляющих ошибки в отсутствие обратной связи, препятствует зависимость между ошибками. Показано, что хорошие с практической точки зрения результаты даст сочетание кодирования, обнаруживающего ошибки (и, возможно, частично исправляющего ошибки), с обратной связью, используемой для переспроса.
ЛИТЕРАТУРА
Abramson N.M., A class of systematic codes for nonindependent errors, IRE Trans., IT-5 (December 1959), 150—157.
Abramson N. M., Error-correcting codes from linear sequential networks, in «Information Theory» (ed. by Cherry C.), Butterworth, Lnd., 1961.
Alexander A. A., G г у b R. N., N a s t D. W., Capabilities of the telephone network for data transmission, Bell Syst. Tech. J., 39 (May 1960), 431—476.*
Balakrishnan A. V., A contribution to the sphere-packing problem of communication theory, J. Math. Analysis a. Application, 3 (December 1961), 485—506.
В а г t е е Т. С., Schneider D., An electronic decoder for Bose — Chaudhuri — Hocquenghem codes, IRE Trans., IT-8 (September 1962), 17—24.
Berger J. M., A note on error-detection codes asymmetric channels, Information a. Control, 4 (March 1961), 68—73. (Русский перевод: Бергер Дж. М., О кодах, обнаруживающих ошибки в асимметричных каналах, сб. Теория кодирования, «Мир», М., 1964.)
В е г g е г J. М., A note on burst-error-detecting sum codes, Information a. Control, 4 (September 1961), 297—299. (Русский перевод: Бергер Дж. М., О кодах с суммированием, обнаруживающих пакеты ошибок, сб. Теория кодирования, «Мир», М., 1964.)
В е г n s t е i n A. J., К i m W. Н., Linear codes for single-error correction in symmetric and asymmetric computational processes, IRE Trans., IT-8 (January 1962), 29—34.
Bose R. C., Ray-Chaudhuri D. K., Ona class of error-correcting binary group codes, Information a. Control, 3 (March 1960), 68—79. (Русский перевод: Б оу з Р. С., Рой-Чоудхури Д. К., Об одном классе двоичных групповых кодов с исправлением ошибок, Кибернетический сборник, вып. 2, ИЛ, М., 1961, стр. 83—94.)
Brown D. Т., Error-detecting and error-correcting codes for arithmetic operations, IRE Trans., EC-9 (1960), 333—337.
Chang S. S. L., The theory of information feedback systems, Trans. IRE, IT-2 (September 1956), 29—40.
Chien R. T., Linear codes for burst-error-correction in binary arithmetic and transmission, IEEE Trans., IT-9 (December 1963).
Diamond J. M., Checking codes for digital computers, Proc. IRE, 43, (April 1955), 487—488.
Elias P., Coding for noisy channels, IRE Conv. Rec., Pt. 4 (1955), 37—46.
F a n о R. M., Transmission of Information, MIT Press, Cambridge, Mass., 1961. (Русский перевод готовится к печати в Издательстве «Мир».)
F а п о R. М., A heuristic discussion of probabilistic decoding, IRE Trans., IT-9 (April 1963), 64—74. (Русский перевод: Фано P. M., Эвристическое обсуждение вероятностного декодирования, сб. Теория кодирования, «Мир», М., 1964.)
Fire Р., A class of multiple-error-correcting binary codes for nonindependent errors, Sylvania Rep. RSL-E-2, Mt. View, Calif., March 1959.
Fontaine A. B., G a 1 1 a g e r R. C., Error statistics and coding for binary transmission over telephone circuits, Proc. IRE, 49 (June 1961), 1059—1065.
F о n t a i n e A. B., Applicability of coding to radio teletype channels, MIT Lincoln Lab. Rep., 25G-3, Cambridge, Mass., October 1961.
Franco G. A., L a c h о G., An orthogonal coding technique for communication, IRE Conv. Rec., Pt. 8 (March 1961), 126—133.
F r e i m a n С. V., Optimal error detection codes for completely asymmetric channels, Information a. Control, 5 (March 1962), 72—86.
GallagerR.G., Low density parity check codes, MIT Press, Cambridge, Mass., 1963.
G a 1 1 a ger R. G., Sequential decoding for binary channels with noise and synchronization errors, MIT Lincoln Lab. Rep. 25G-2, October 1961.
Gilbert E. N., Synchronization of binary messages, IRE Trans., IT-6 (September 1960), 470—477. (Русский перевод: Гилберт Э. Н., Синхронизация двоичных сообщений, Кибернетический сборник, вып. 5, ИЛ, М., 1962, стр. 42—59.)
Golomb S. W., Gordon В., W е 1 с h L. R., Comma-free codes, Can. J. Math., 10 (1958), 202—209. (Русский перевод: Голомб С.,
Гордон Б., В елч Л. Р., Коды без запятой, Кибернетический сборник, вып. 5, ИЛ, М., 1962, ст. 33—41.)
Henderson D.S., Residue class error checking codes, Ph. D. Dissertation, Harvard Univ.
H о c q u e n g h e m A., Codes correcteures d’erreurs, Chiffres,2 (September 1959), 147—156.
Horst ein M., Sequential transmission of digital information with feedback, MIT RLE Techn. Rep. № 375, 1960.
К a s a m i T., A decoding procedure for multiple-error-correcting cyclic codes, IEEE Trans., IT-9 (December 1963).
Kautz W. H., Codes and coding circuitry for automatic error correction within digital systems, in «Redundancy Techniques for Computing Systems» (ed. by Wilcox R. H. and Mann W. C.), Sparton, 1962.
L e b о w I. L., M с H u g h D. G., Par ker A. C., R osenP., W o- z e n c r a f t J. M., Application of sequential decoding to high-rate data communication on a telephone line, IEEE Trans., IT-9 (April 1963), 124—126.
M c W i 1 1 i a m s J., A theorem on the distribution of weights in a systematic code, Bell Syst. Tech. J., 42 (January 1963), 79—94.
Mann H. B., On the number of information symbols in Bose — Chaudhuri codes, Information a. Control, 5 (June 1962), 153—162. (Русский перевод: Манн Г.Б., О числе информационных символов в кодах Боуза— Чоудхури,Кибернетический сборник,вып. 8,«Мир», М., 1964,стр. 31—41.)
М a s s е у J. L., Threshold decoding, MIT Press, Cambridge, Mass., 1963.
M e g g i t t J. E., Error-correcting codes for correcting bursts of errors, IBM J., 4 (July 1960), 329—334.
M e t z n e r J. J., Mo r g a n К- C., Coded feedback communication systems, Comm. a. Elec. (January 1962), 643—647.
N e u m a n P. G., Efficient error-limiting variable lefigth codes, Pt. I, IRE Trans., IT-8 (July 1962), 292—304; IT-8 (September 1962), S260— S266.
Perry К. E., Wozencraft J. M., SECO: a self-regulating error correcting coder — decoder, IRE Trans., IT-8 (September 1962), 128— 135.
Peterson W. W., Error-correcting codes, MIT Press, Cambridge, Mass., 1961. (Русский перевод: Питерсон У., Коды, исправляющие ошибки, «Мир», М., 1964.)
Р г a nge Е., Cyclic error-correcting codes in two symbols, TN AFCRC- TN-57-103, Air Force Cambridge Research Center, Bedford, Mass., September 1957.
Prange E., Some cyclic error-correcting codes with simple decoding algorithms, TN AFCRC-TN-58-156, Air Force Cambridge Research Center, Bedford, Mass., 1958.
P r a n g e E., The use of information sets in decoding cyclic codes, IRE Trans., IT-8 (September 1962), 16—21.
Радченко A. H., Мирончиков E. T., Многотактные методы исправления одиночных и многократных близко расположенных ошибок в групповых кодах, Радиотехника и электроника, 11 (1961), 1805—1812.
R u d о 1 f L., Easily implemented error-correction encoding-decoding, General Electric Rep. 62MCD2, Oklahoma City, Oklahoma, 1962.
S e 1 1 ers F. F., Bit loss and gain correction code, IRE Trans., IT-8 (January 1962), 35—38.
Shannon С. E., The zero-error capacity of a noisy channel, Trans. IRE, IT-2 (September 1956), 8—19. (Русский перевод: Шеннон К- Э., Пропускная способность канала с шумом при нулевой ошибке, сб.
К. Ш е н н о н, Работы по теории информации и кибернетике, ИЛ, М., 1963, стр. 464—487.)
Shannon С. Е., Certain results in coding theory for noisy channels, Information a. Control, 1 (September 1957), 6—25. (Русский перевод: Шеннон К. Э., Некоторые результаты теории кодирования для каналов с шумами, сб. К. Ш е н н о н, Работы по теории информации и кибернетике, ИЛ, М., 1963, стр. 509—531.)
S h a n non С. Е., Probability of error for optimal codes in a Gaussian channel, Bell Syst. Tech. J., 38 (May 1959), 611—656. (Русский перевод: Шеннон К- Э., Вероятность ошибки для оптимальных кодов в гауссовском канале, сб. К. Ш е н н о н, Работы по теории информации и кибернетике, ИЛ, М., 1963, стр. 540—586.)
S 1 е р i a n D., Bounds on communication, Bell Syst. Tech. J., 42 (May 1963).
Solomon G., Mattson H. F., A new treatment of Bose — Chaudhuri codes, J. Siam, 9 (December 1961), 654—669.
W e 1 d о n E. J., Asymptotic error coding bounds for the binary symmetric channel with feedback, Rep. AFCRL-63-122, Univ. Florida, Gainesville, Florida, 1963.
Wozencraft J. M., R e i f f e n B., Sequential decoding, MIT Press, Cambridge, Mass., 1961. (Русский перевод: Возенкрафт Дж. М., Р е й ф ф е н Б., Последовательное декодирование, ИЛ, М., 1963.)
Н. Гилберт
В статье изучается модель двоичного канала с пакетами ошибок, в которой используется цепь Маркова с двумя состояниями G и В. Если цепь находится в состоянии G, то при передаче ошибки отсутствуют. Если цепь находится в состоянии В, то имеется вероятность к правильной передачи символа по каналу. Для подходящим образом выбранных малых значений вероятностей р, Р переходов из В в G и из G в В модель воспроизводит каналы с.пакетами ошибок. Вероятностные формулы связывают параметры к, р, Р с легко измеряемыми статистиками и дают возможность получить распределения серий для сравнения с экспериментальными измерениями. Пропускная способность С этой модели канала превосходит пропускную способность Сдв. сим- двоичного симметричного канала без памяти с той же вероятностью ошибки. Однако для некоторых значений к, р, Р отличие незначительно; в таком случае достаточно эффективным может быть применение кодирующих схем с временным разделением.
Введение .
В теории информации двоичный симметричный канал является классической моделью двоичного канала с шумами. Этот канал порождает последовательность из двоичных шумовых символов zn, которые складываются (по модулю 2) с символами на входе хт порождая выходные символы уп = хп 4- zn. Двоичный симметричный канал является каналом без памяти; шумовые символы zn производятся последовательностью независимых испытаний. Каждое испытание имеет одну и ту же вероятность Р (1) появления ошибки и вероятность 1 — Р (1) = Р (0) отсутствия ошибки. Выражение для пропускной способности Сдв. сим. такого канала хорошо известно [1]:
Сдв. сим. = 1 Р (0) tog2P (0) 4- Р (1) Iog2P (1).
Каналы с памятью встречаются на практике. Если статические или переходные процессы производят шумы, то ошибки группируются в изолированные пакеты (несколько рядом лежащих ошибок). Независимые испытания нс воспроизводят такого шумо-
') Gilbert Е. N., Capacity of burst-noise channel. Bell Syst. Techn. J., 39, № 5 (1960), 1253—1267.
вого пакета. В разд. 2 этой статьи представлена модель канала с пакетами ошибок, которая достаточно проста, чтобы с ее помощью можно было вычислять пропускную способность канала С (см. разд. 3 и 4). В разд. 4 и 5 даются распределения серий, функция ковариации и другие вероятностные формулы, помогающие проверить применимость модели и подобрать параметры модели, соответствующие измеряемым статистическим данным.
Из всех двоичных каналов с заданной вероятностью ошибки Р (1) двоичный симметричный канал имеет наименьшую пропускную способность. Действительно, если известен способ кодирования сигналов для передачи по двоичному симметричному каналу со скоростью R, то N источников могут на основе временного разделения использовать этот способ при передаче по каналу с пакетами ошибок со скоростью R/N. Здесь N должно быть достаточно большим, чтобы шумовые символы, отстоящие друг от друга на N символов, были приблизительно независимыми. Временное разделение предохраняет от других шумовых схем, отличных от пакетов; возможны еще менее избыточные схемы. Увеличение скорости передачи символов С — С№. сим. часто оказывается удивительно малым (см. рис. 4).
Модель
Для получения пакетов ошибок может быть использована цепь Маркова с двумя состояниями. Эти два состояния будут обозначаться через G (от английского good — хороший) и В (от английского bad — плохой или burst — пакет ошибок). В состоянии G шумовой символ zn всегда равен нулю. В состоянии В, для того чтобы решить, будет ли 2^ = 0 или 2^=1, производится бросание монеты, отражающее тот факт, что реальные пакеты содержат неискаженные символы вперемежку с искаженными. В формулах, которые следуют ниже, допускается несимметричность монеты (вероятность h отсутствия ошибки в состоянии В). Все вычисления, данные здесь, проведены при Л = 0,5, которое является, по-видимому, приемлемым значением.
После порождения шумового символа zn цепь Маркова совершает переход, чтобы приготовиться к порождению zn+v Чтобы воспроизвести пакет ошибок, цепь, находящаяся в состоянии В или G, должна иметь тенденцию оставаться в прежнем состоянии, т. с. вероятности Р и р переходов G-> В и В-^ G соответственно должны быть малыми, а вероятности Q=1—Р и ^=1—р— большими. На рис. 1 изображена схема переходов для цепи Маркова.
Серии из G будут чередоваться с сериями из В. Длины серий имеют геометрические распределения со средними UP для серий
из G и 1/р для серий из В. Геометрическое распределение серий из G кажется приемлемым. Если различные помехи, которые могут явиться причиной ошибок в реальном канале, нс связаны друг с другом, то времена между такими событиями будут иметь геометрическое распределение (см. [2], гл. XIII, 9). Только математическая простота оправдывает геометрическое распределение 5-серий; можно было бы строить более точные модели. В разд. 3
Рис. 1. Схема переходов для цепи Маркова.
указывается путь разработки одной из них, однако в усложненных моделях невозможно определить все параметры без достаточных статистических данных. В разд. 5 иллюстрируются некоторые трудности в определении даже трех параметров Р, р и h.
Типичную выборку из последовательности с пакетами ошибок с параметрами 5^0,03; р 0,25; /г 0,5, полученную с использованием случайных чисел, образуют следующие 500 символов: 0G41017104410101 ПО^ОТО^Ю^НО^О37! 10^ 10181015110111011011105.
Показатели являются длинами серий, т. с. О62 означает серию из 62 последовательных нулей. Как и следовало ожидать, длинные серии из неискаженных символов разделяются пакетами.
Эта выборка из 500 символов иллюстрирует невозможность восстановления последовательности состояний по последовательности символов. Часть длинных серий из нулей была получена в состоянии В цепи Маркова (все бросания монеты дали в результате нули). Выборка содержит также одну пачку (1104), в которой состояние G породило три из четырех нулей.
Доля времени пребывания в состоянии В равна Р (В) = Р/(р + Р). Так как ошибки появляются только в состоянии В и при этом происходят с вероятностью 1 — й, то вероятность ошибки равна
Р^^х-^Рф^-^-^Т-р.(1)
Пропускная способность
Пусть Н обозначает энтропию последовательных шумовых символов . . ., zv 22,. . *. Для всех входов х канала с пакетами ошибок условная энтропия Нх (у) выхода у при известном входе х одна и та же:
нду^н.
Тогда простое рассуждение показывает, что пропускная способность С канала с пакетами ошибок есть С = 1 — Н (монограммный источник с вероятностями 0,5 для нуля и 0,5 для единицы достигает скорости С).
Шеннон [1, разд. 7] даст простой способ вычисления энтропии Н через вероятности состояний [обозначаемых здесь через Р (G) и Р (В)] и переходные вероятности. Макмиллан [3, разд. 2.0] замечает, что этот результат неявно допускает, что последовательность состояний восстанавливается по последовательности символов. Так как здесь такое восстановление невозможно, то Н выражается более сложной формулой.
По определению,
Н = Hm S P(zv .. ., zn^ h(zx,. .zN\(2)
где
h (2D . . . , 2дг) =
—P ( ^7V+1 ^1’ • • • ’ ZN ) ^°§2 P ( ZNA-\ I2!»---’ ^n\(3)
=°
Если 2Z=1, то соответствующее состояние есть, конечно, В и равенство
Р (^z+d • • • > 2/+z|2l> • • • > ^Z-l> 0 ~ Р (2Z+1, . . • , 2z+y |1)(4)
справедливо для всех />>1. Отсюда следует равенство
Р ( ^at^J^i, • • •> 2Z-1, 1, 2Z+1, . . . , 2^) = Р ( 2^^^ 1, 2Z+1, . . . , 2 nV а также
(2^, • • • , ^z-i» 1 »^Z4i» • • • ’ tv) = ^ 0 ^z+i» • • * ’ nV
Таким образом, именно число последовательных нулей в конце блока (2Г,.. . , 2^) полностью определяет h (2Р ..., zN\ Каждое из 2^ значений h в сумме (2) есть одно из М + 1 чисел
Н<\\ А(Ю),/г(10^),..., //(Ю^1), /г(Ю^)
(показатели, как и прежде, означают длины серий). Используя это упрощение в (2), получаем после суммирования и предельного перехода при N -> со
Н =^P^K^h^K^.(5)
к=о
Слагаемые суммы (5) содержат вероятности серии нулей. В разд. 4 будет дана формула для условной вероятности и (К) серии из К или более нулей, следующих за единицей, т. е. и(К) = = Р (0^11). Условимся считать, что м(0) = 1.
Тогда в (5)
Р(ЮК) =Р(1) и (Л)
[Р (1) задается соотношением (1)]. Кроме того, из соотношения (3) и равенства Р (0|10к) = [и (К + !)]/[«(К)] следует выражение для /г (10к):'
log2"-^+lL-
«(К+-1)1
С помощью (6) переставим слагаемые (5), в результате чего получим
C=l+?(1) J>(K)log2 У(К),(7)
где и (К) = и (К) — и (/С + 1). В разд. 4 содержатся формулы для вычисления у (/С). Хотя выражение (7) кажется более простым, чем (5) и (6), оно сходится медленно. Метод вычислений, описываемый в разд. 5, основан на использовании модификации (5) и (6).
Заметим, что и (/Q = Р (0к1|1). При другом способе вывода равенства (7) исходят из того, что шумовая последовательность состоит из последовательных блоков символов вида 1, 01, 001,... ..., 0к1,..., выбранных независимо и с вероятностью и^К) для блока 0к1. Тогда —^v^K) Xog^v^K) есть информация на блок, а Р (1) есть среднее число блоков на символ.
Равенства (5) — (7) применимы к некоторым другим каналам. Эти формулы следовали просто из выражения (4), которое справедливо во всех случаях, когда длины последовательных серий нулей независимы. Всякий раз, когда такая независимость может 9 Заказ № 102
быть допущена, в более тщательно разработанной модели значения и(0), у(1), у (2),... можно использовать непосредственно как параметры.
Тогда Р(1) в (7) имеет вид
Р(1) =Р(1) =£(К+1МК).^=0-£(К+1МК).^=0-
Р(1) =
Р(1) =
£(К+1МК).
^=0-
£(К+1МК).
^=0-
Проверка: двоичный симметричный канал имеет у (К)= Р (1) [Р (0)^ и (7) суммируется к Сдв. Сим.
Вероятности
Теория рекуррентных событий (см. [2], гл. XIII) дает некоторые вероятности, необходимые в разд. 5 и 6.
Времена возвращения для состояния В. Пусть fK означает условную вероятность первого возвращения в В на К-м шаге при условии, что в начальный момент имело место состояние 6:
Г К = Р (GK~lB\B)-,
тогда fi = q, [ъ = рР и fK = pQK~2P для ^>2. Удобно вира- зить эти вероятности через коэффициенты производящей функции F (Z) вероятностей времени возвращения:
F<t) = ^fKtK = qt+(8>
Например, вероятность /^ того, что m-е возвращение в В произойдет на К-м шагу, имеет производящую функцию
(9)
Вероятность не возвратиться в В за Атагов равна pQ^-1.
Тогда вероятность s(/<, ni) точно т возвращений в В за К шагов (возвращение на /(-м шагу не обязательно) равна
К—т
skK,^^к1ЬР^"Х •
6=1
Соответствующая производящая функция имеет вид
(10)(10)2 S (К,/72) tK = ( 1 + т^г) l77 (ОГ. к = \
(10)
(10)
Времена возвращения для единиц. При выходе из единицы (и, следовательно, из В) следующая единица должна появиться при возвращении в В, но нс обязательно при первом возвращении. Вероятность того, что следующая единица появится при m-м возвращении в В на К-м шагу, равна
^"'(l-A)/^.
Тогда вероятности времени возвращения для единиц равны
и (К - 1) = Р (0к"! 111) = J hm^ (1 - h^ .
Равенство (9) теперь дает производящую функцию V^ = ^^КЯк:
Аналогично, вероятность и (/С) того, что единица , не появится в последующие К шагов, равна '
т<.,
ее производящая функция имеет вид,
и V) - (1 _ Q/)[ 1е
В соответствии с (8)
'<13)
где £(/) = 1 —(Q + A?)/ —Л(р—Q)/2.
Квадратный трехчлен D(t) представляется в виде £)(/) = (1—Л) (1— П),
где 2J = Q + A9+ y^Q + hq^+Ah^p — Q^ a 2L обозначает 9*
то же выражение, в котором перед квадратным корнем стоит знак минус. Теперь (13) принимает вид
_l+(p-QH/ J L \
— J — L (1 — JtX — Lt J *
Коэффициент при tK в степенном ряде для U (t) равен
^^„у + р-дуК-у+р-д^,(14)
Чтобы найти рекуррентную формулу для и (К), запишем равенство (13) в виде D(t)U (t) = 1 + (р—Q)t и сравним коэффициенты при tK:' 1
■ ; и (К) =(Q + hq)u(K— 1) + h (p — Q)u (К — 2)(15)
для К = 2,3,.... Начальные значения имеют вид
ы(0) = 1, u(l)=p + ^q-
При расчетах формула (15) более удобна, чем (14).
Аналогичным рассуждением получаем из соотношения (11)
v(K) = ^;V(qJ + p-Q)JK-(qL-Vp-Q)LK). (16)
Для К = 2,3,... функция и (К) также удовлетворяет соотношению (15), но с начальными значениями
v(0) = (1 — h)q, v(l) = (1 — h)(pP 4- hq2).
Ковариация. Функция ковариации такого двоичного шума есть как раз совместная вероятность г (К) событий 20 = 1 и zK — 1. Формула для производящей функции R^ = ^r(K)tK та* кова:
R^=PvW-V tV (Z) + W (Z)]2 +=
PM = PWDW
\-tVW (1-Z)[1 -Hp-QVI *
Слагаемое P(1)[ZV (Z)]w в этой сумме порождает вероятности нахождения точно т—1 единиц среди символов zv ... , ^K-v если г0 = zK = 1.
Явная формула для г ^ следует из разложения R (t) в степенной ряд
r(0)=m
г(/0=Р(1)ф + Pt’-p^г(/0=Р(1)ф + Pt’-p^К= 1,2К= 1,2(1)7(1)7
г(/0=Р(1)ф + Pt’-p^
г(/0=Р(1)ф + Pt’-p^
К= 1,2
К= 1,2
(1)7
(1)7
Подбор параметров
Так как три параметра Л, р, Р непосредственно не наблюдаются, рассмотрим методы получения их с помощью статистических измерений. Мы выразим А, р, Р в виде функций трех других легко оцениваемых параметров шума. В качестве множества трех таких параметров (включающих только триграмные статистики) удобно взять
а =Р(1), b = Р(1|1), с = р(101) + р(Ш) •
Здесь с есть условная вероятность того, что между двумя единицами помещается единица; эта вероятность равна
(1-^) ^q^ + рР *
Выражая р, Р, А через а, Ь, с, получаем . ас—ft2
•Р2 ас — b (а + с) ’
А=1-А,.(18)
'р — ар
“ 1 — h — а*
Если допустить, что А = 0,5, то q = 26 и нет необходимости в измерении с.
Например, выборка, состоящая из 500 символов (см. разд. 2), содержит тридцать восемь единиц; пятнадцать конфигураций вида 11, семь—101 и три—111. Оценки для А, 6, с следующие: а = "500" ’= "38- ’ с = "ю * При этих оценках (18) дает бес
смысленные значения параметров (вероятность р отрицательна). Затруднение состоит в том, что 500 символов образуют слишком маленькую выборку. В частности, оценка с = -^ , основанная только на 10 наблюдениях, далека от правильного значения с = 0,49. Если допускается, что А = 0,5, то оценки . получаются следующие: р = 0,21, Р = 0,036 (ср. с истинными значениями Р - 0,25, Р = 0,03).
После того как р, Р и А найдены, результаты разд. 4 наводят на мысль о сравнениях между вероятностями и (/<) или г^К) и соответствующими величинами для серий. На рис. 2 показаны кривые вероятностей Р (10к) — Р ^ и (/<) некоторых серий (с использо^
ъанием логарифмической шкалы) в зависимости от К. Как следует из соотношения (14), эти кривые имеют наклонные асимптоты при больших К с наклоном, определяемым величиной/.
Данные о сериях нулей можно использовать в качестве других оценок параметров pt Р, h. Доля серий длины К или более
Рис. 2. Типичные распределения серий (/i=1/2).
является оценкой для и^. В соответствии с соотношением (14) можно найти постоянные /, L, Л, такие, что
и(К) = Л/к+(1 —Л)1Л(19)
Эти постоянные легко находятся путем подбора кривой вида (19), аппроксимирующей измеренное распределение серий. Сначала выбираются Ли/, чтобы правильно определить поведение Л/^для
больших К. Затем выбирается Л, чтобы улучшить соответствие при малых К. Выражения для р, Р, h через Л, J, L имеют вид
, _ LJ
J—АЦ—Ц ’
р _ (1-LH1-J)Г1 — h ’
На рис. 3 показаны распределения серий для двух различных телефонных цепей, передающих двоичные данные. Были взяты две из тысячи цепей в недавно осуществленной обширной программе измерений телефонных цепей (см. [4])1. Канал 1146 нес вызов центральной телефонной станции; при этом использовался нагруженный кабель и лишь местное коммутационное оборудование. Канал 1296 — междугородный телефонный канал протяженностью свыше 500 миль; в нем использовались /(-носитель, радиолиния и нагруженные кабели на концах. Эти каналы были выбраны в качестве примеров, потому что они были наиболее зашумленными из рассматриваемых каналов и таким образом обеспечили большое количество данных. Ступенчатые функции на рис. 3 изображают доли серий нулей дли-ны К и более из выборки, содержащей около 130 последовательных нулевых серий для каждого канала. Сглаженные кривые изображают кривые вида (19), которые подобраны для этих распределений. В случае канала 1146 значение и (К) = 0,9946к обеспечило хорошее представление; в то же время канал 1146 был хорошо аппроксимирован двоичным симметричным каналом с р = 0,9946. Результаты для канала 1296 в большей степени соответствуют данным, приведенным на рис. 2. Прямолинейная асимптота есть функция AJK с параметрами А = 0,184 и J =0,99743, выбранными так, чтобы аппроксимировать данные для больших К. Значение параметра L = 0,81 обеспечивает соответствие кривой (19) малым значениям К. Эти значения A, J, L приводят к оценкам
h = 0,84, Р = 0,003, р = 0,034.
Выборка объемом 500 символов из разд. 2 дает распределение серий с большими статистическими отклонениями, чем на рис. 3, из-за меньшего объема выборки. Для подобранной в этом случае
*) Кривые, опубликованные в работе [4], иллюстрируют объединенные данные для сотен каналов. Поскольку эти каналы значительно отличаются ДРуг от друга, кривые в [4] не имеют вида (19).
Доля нулевых серий длины К или болееДоля нулевых серий длины К или более0,05 х1—j—_±_—О 204060 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 4000,05 х1—j—_±_—О 204060 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400
Доля нулевых серий длины К или более
Доля нулевых серий длины К или более
0,05 х1—j—_±_—
О 204060 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400
0,05 х1—j—_±_—
О 204060 80 100 120 140 160 180 200 220 240 260 280 300 320 340 360 380 400
Длина К
Рис. 3. Сравнение экспериментальных распределений серий для двух телефонных цепей.
кривой имеем
Л = 0,385, «7=0,961, 7 = 0,32, h = 0,432,
Р = 0,047, р = 0,232.
Вычисления пропускной способности
В соответствии с равенствами (14) и (16) значения и (А) и у (А) ведут себя подобно JK при больших К. В наиболее интересных случаях вероятность Р мала и значение J близко к 1,0 (J^Q всегда). Это означает, что ряд (7) сходится медленно. Однако
и(К + Х) тЦК)
для больших К» и, согласно равенству (6),
h (10*)- J log2 J - (1 - J) log2 (1 - /) = /г0.
Здесь Л(1.0к) быстро достигает своего предельного значения hQ; действительно, L = Q + hq — J ^hq. Если Л = 0,5, то типичные значения L обычно не превышают 0,5, и слагаемое с LK в равенстве (14) становится пренебрежимо малым, когда К достигает 10 или 15. Таким образом, приближение А (10^) = Ао годится для всех К > К^ где Ко умеренно велико. Соответствующие слагаемые бесконечного ряда (5) суммируются следующим образом:
2 P(WK)h0 = h0P^^=
К = К0ККо
= /г0[1—Р(1) 2к=о
В последнем равенстве использовано тождество
/^ (1) [^(0) + ^ (1) -Ь ... ] = 1,
которое следует из равенства (13) при t = 1. Тогда с помощью К.—1 первых членов равенства (5) и только что введенной поправки можно вычислить С достаточно точно.
На рис. 4 показаны кривые зависимости постоянных С и Сдв.сим. от р, Р для h = 0,5 [пропускная способность Сдв.сим. подсчитывалась для значений Р(1), вычисляемых в соответствии
8 Заказ № 102
с (1) ]. Если средняя длина пакета невелика (значение р не слишком мало), то разница между двумя пропускными способностями незначительна.
Рис. 4. Кривые зависимости пропускных способностей С и Сдв. сим. от р,Р (h=l/2)-
ЛИТЕРАТУРА
S h а n п о n С., A mathematical theory of communications, BellSyst. Tech. J., 27 (1948), 379, 6 23. (Русский перевод: Шеннон K-, Математическая теория связи, в сб. Ш е н н о н К., Работы по теории информации и кибернетике, ИЛ, М., 1963, стр. 243—332.)
F е 1 1 е г W., An introduction to probability theory and its applications, vol. I, 2 nd, ed., Wiley, N. Y., 1957. (Русский перевод: Феллер В., Введение в теорию вероятностей и ее приложения, т. I, изд. 2, «Мир», М., 1964.)
М с М i 1 1 а п В., The basis theorems of information theory, Ann. Math. Stat., 24 (1953), 191.
Alexander A. A., G г у b R. M., Nast D. W., Capabilities of the telephone network for data transmission, Bell Syst. Tech. J., 39 (1960), 431.
ВЕРОЯТНОСТНЫЕ АВТОМАТЫ!)
М. О. Рабин
Вероятностные автоматы (в. а.) являются обобщением конечных детерми* нированных автоматов. Мы придерживаемся определения конечного автомата, предложенного в работе Рабина и Скотт [3], где автомат 51 имеет двузначный выход и, следовательно, без ограничения общности может рассмат* риваться как объект, характеризующий множество Т(51) всех слов, представимых автоматом 51. В. а. определяется как автомат, который в состоянии s при значении входа а имеет некоторую вероятность р^ (s, а) перехода в любое состояние s;. Задание произвольной точки сечения X, 0<Х<1, связывает с в. а. множество Т (51, X) слов, представимых автоматом 51 с точкой сечения X.
Мы развиваем общую теорию в. а. и решаем некоторые из основных проблем. Помимо математического интереса в исследовании этого естественного обобщения конечных автоматов, наши результаты имеют также отношение к вопросам надежности последовательностных сетей.
В. а. являются в общем более «сильными», чем детерминированные автоматы (теорема 2). Поиски способов применения вероятностных автоматов привели нас к понятию изолированной точки сечения. Оказывается, что каждый в. а. с изолированной точкой сечения эквивалентен некоторому детерминированному автомату (теорема редукции 3). Интересно отметить, что при переходе от минимального детерминированного автомата к эквивалентному в. а. возможно иногда экономить состояния (разд. 7).
Теорема редукции применяется для доказательства существования метода приближенного решения одной задачи, связанной с произведением стохастических матриц (разд. 8). Это задача совершенно нового рода, так как априори не задана никакая граница числа операций (умножений матриц), которые должны быть выполнены, и поэтому классические методы оценки ошибки округления неприменимы.
Актуальные (actual) автоматы (определение 9) обладают следующим свойством, часто выполняющимся в реальных ненадежных сетях: все переходные вероятности строго положительны. Доказано, что актуальные автоматы могут представлять только дефинитные (definite) события. Это вынуждает накладывать на вероятностные последовательностные сети ограничения, если мы хотим, чтобы они выполняли общие задачи, а именно некоторые переходы должны быть запрещены.
Наконец, мы сталкиваемся с важной проблемой устойчивости. Устойчиво (инвариантно) ли поведение в. а. при достаточно малых возмущениях переходных вероятностей? В случае актуальных автоматов ответ утвердителен (теорема 11). Мы рассматриваем эту проблему также и в общем случае.
}) R a b i п М, О., Probabilistic automata, Information and Control, 6, № 3 (1963), 230—244.
8*
Введение
Конечные автоматы — это математические модели систем, обладающих конечным числом состояний, которые принимают в дискретные интервалы времени определенные входы (входные сигналы) и выдают определенные выходы (выходные сигналы). Если система находится в состоянии s и вход есть о, то система перейдет в новое состояние sz, которое зависит только от s и о и будет иметь выход, который зависит (является функцией) только от sz. Таким образом, система преобразует последовательность входов в последовательность выходов. Это преобразование является существенной характеристикой системы. Последовательностные сети и даже цифровые вычислительные машины в целом (при условии, что в последних используется только внутренняя память или лента фиксированного размера) являются системами, действующими как конечные автоматы. По теории конечных автоматов, имеется обширная литература. В этой статье мы пользуемся обозначениями и некоторыми результатами по теории конечных автоматов, содержащимися в работе Рабина и Скотт [3]. В частности, определение, данное там, основано на предположении, что множество выходов содержит точно два элемента. Эго ограничение является удобным, и мы также придерживаемся его здесь, однако результаты немедленно могут быть распространены на общий случай более чем двух выходов. Ввиду такого ограничения на число выходов, автоматы могут рассматриваться как объекты, характеризующие множества последовательностей входов (слов), и эта точка зрения принята в данной статье.
Конечный автомат проявляет детерминированное поведение. Состояние s и вход а определяют следующее состояние автомата. Совершенно естественно рассмотреть автомат со стохастическим поведением. Идея заключается в том, что автомат, находящийся в состоянии s и имеющий вход а, может перейти в любое состояние sz, причем вероятность перехода в состояние sz является некоторой функцией pL (S, а) ОТ S И а.
Практическая аргументация в пользу исследования вероятностных автоматов состоит в том, что даже последовательностные сети, которые должны работать детерминированно, из-за случайных сбоев компонент проявляют стохастическое поведение. Эта ситуация была впервые отмечена фон Нейманом [4], который с целью увеличения надежности рассматривал схемы для конструирования комбинационных (и до некоторой степени также последовательностных) сетей, составленных из специальных компонент.
Несмотря на то что обобщение абстрактных детерминированных автоматов в абстрактные вероятностные автоматы (в. а.) напрашивается само собой, в литературе нет общих результатов
относительно вероятностных автоматов. В частности, не было даже известно, обладают ли вероятностные автоматы большими возможностями, чем детерминированные. В этой работе мы развиваем общую теорию в. а. и отвечаем на некоторые основные вопросы.
Оказывается, что в общем случае в. а. «сильнее» детерминированных автоматов. Тем не менее мы вводим концепцию изолированной точки сечения и доказываем основную теорему редукции 3 о том, что любой в. а. с изолированной точкой сечения эквивалентен некоторому детерминированному автомату.
В разд. И мы определяем актуальные автоматы как в. а., все переходные вероятности которых строго положительны. Эти автоматы определяют весьма ограниченный класс регулярных событий (теорема 10). Полученные результаты имеют определенное значение для теории надежности. Они означают, что если мы хотим синтезировать последовательностную сеть общего вида из ненадежных компонент, то мы должны комбинировать их так, чтобы переходы между определенными состояниями были запрещены (имели вероятность, равную нулю), или же считать, что сеть разорвана, если такие переходы имели место.
Другая проблема, относящаяся к теории надежности, — это проблема устойчивости. В. а. называется устойчивым, если его поведение не изменяется при малых возмущениях переходных вероятностей. При синтезе сетей из ненадежных компонент мы хотим, конечно, получать устойчивые сети. В разд. 12 мы доказываем теорему об устойчивости актуального автомата. Мы обсуждаем также общую проблему устойчивости, однако оставляем ее открытой.
Конечные автоматы
В этом разделе мы даем краткое резюме основных определений и некоторых основных результатов теории конечных (детерминированных) автоматов, которые будут использованы в дальнейшем. Изложение следует работе Рабина и Скотт [3]. Под термином «автомат» в этом разделе мы понимаем детерминированный автомат.
Пусть Е— непустое конечное множество, называемое алфавитом. Буквы т, а с индексами будут обычно обозначать элементы множества Е. Множество всех конечных последовательностей элементов из Е будем обозначать Е*. Элементы из Е* называются словами. Буквы х, у, 2, и, и с индексами бу^ут всегда обозначать слова. Пустое слово (т. е. последовательность нулевой длины) будет обозначаться через Л. Подмножества Е* (т. е. множества слов) будут иногда называться событиями.
Если х = ^аз.. .ak — слово, то длина I (х) слова х есть 1(х) = к. Если х и у — слова, то ху будет обозначать слово, полученное приписыванием справа слова у к слову х. Заметим, что множество Е* с определенной на нем операцией ху образует свободную полугруппу с множеством свободных образующих Е.
Определение 1. Конечный (детерминированный) автомат над Е есть система
91 — <S, М, s0, Т> , где S— конечное множество (множество состояний), М— функция, отображающая множество SxE в множество S (таблица переходов), s0^S (начальное состояние) и F^S (множество отмеченных конечных состояний).
Можно расширить функцию М до отображения множества SXE* в множество S следующим образом: М (s, Л) = s,
M(S, ха) - М (М (s, Х),о)(s^S, Х^*, а^Е).
/И($, х)— это состояние, в которое слово х «переводит» автомат 91, если он начинает прием слова х в состоянии s.
Определение 2. Говорят, что слово х представимо автоматом 91 тогда и только тогда, когда М (s0, x) ^ F. Множество всех слов, представимых автоматом 91, называется множеством, представимым автоматом 91, и обозначается Т (91). Событие U с Е* называется регулярным событием, если для некоторого конечного автомата 91 имеет место равенство U = Т(Э1).
Каждое конечное событие регулярно. Если U и V регулярны, то регулярны U(\V, U U V и Е* — [/ (см. Рабин и Скотт [3]).
Необходимое и достаточное условие регулярности события Тс Е* дано Рабином и Скотт [3] в терминах отношения правой эквивалентности.
Определение 3. Пусть Тс Е*. Отношение правой эквивалентности =Т, порожденное событием Т, определяется следующим образом: если х, у £ Е*, то запись х =т у равносильна утверждению, что для всех слов z^E* соотношение хг^Т имеет место тогда и только тогда, когда уг£ Т.
Легко видеть, что =т есть отношение эквивалентности в Е*. Заметим, что отношение =т стабильно справа относительно умножения, определенного в полугруппе Е*, т. е. если х=ту, то xz=Tyz для всех х, у, z^ Е*.
Теорема 1. (Рабин и Скотт [3]). Множество ТсЕ* является регулярным событием тогда и только тогда, когда число классов эквивалентности отношения ^r в Е* конечно. Если чис-
ло классов эквивалентности равно е< оо, то существует автомат 31, имеющий е состояний, такой, что Т = Т (Я), и не существует автомата с меньшим числом состояний, представляющего Т.
Вероятностные автоматы
Мы определим теперь основное понятие данного исследования, а именно понятие вероятностного автомата. Мы увидим, что вероятностный автомат аналогичен обычному автомату, за исключением того, что теперь таблица переходов М приписывает каждой паре (s, a)^SxE определенные переходные вероятности.
Определение 4. Вероятностный автомат (в. а.) над алфавитом Е есть система
21- < S, М, s0, F > ,
где S — (s0, ..., sj — конечное множество (множество состояний), Л4 — функция, отображающая множество SXE в г) [О, 1]пН (таблица переходных вероятностей), такая, что для пары (s, a)^SxE
М (s, а) = ^s, pn(s, а)),0<pz(s, а), Epz(s, а)=1, "
s0^S (начальное состояние) и F^S (множество отмеченных конечных состояний).
В. а. являются моделями систем (например, последовательностных сетей), способных находиться в конечном числе состояний s0,.. . , sn. Система может получать входы а^Е. Если система находится в состоянии s и значение входа равно а, то система может перейти в любое состояние s^S и вероятность перехода в sz равна (/+ 1)-й координате pt(s, а) вектора /W(s, о). Эти переходные вероятности pt (s, а) предполагаются неизменными и не зависящими от времени и предыдущих входов. Таким образом, такая система имеет также определенные вероятности перехода из состояния s в состояние si при подаче на вход последовательности х^Е*. Эти вероятности вычисляются посредством умножения некоторых стохастических матриц, которые мы теперь введем.
Определение 5. Для а^Е и х = а1а2...а/п определим квадратные матрицы (п + 1)-го порядка Л (а) и Л(х) следующим образом:
х) [0, 1] — замкнутый единичный интервал 0<х<1; [0, 1]л+1 — множество всех последовательностей вида (х0, хъ . . . , хп), где 0 < х^ с 1.
А ^ - Хр^, а)]0<;<л> 0</<„,
А(х)= A (а,) А (а2)... А (ат) = [Ру (st, х)]0<.<п> 0</<л.
Замечание. Несложное вычисление (с применением индукции по т) показывает, что (/+ 1, / + 1)-элемент py(sz, х) есть вероятность перехода автомата 31 из состояния st в состояние s7* при подаче входной последовательности х.
Определение 6. Если 31 = < S, М, s0, F > и F = { s. ,...,s^|r / = {f0, . . .дД, то положим
р U) = 5 р, (so. х¥
Очевидно, что р^х) есть вероятность того, что автомат 31 перейдет из состояния s0 в одно из состояний множества F при подаче входной последовательности х.
Множества слов, представимые вероятностными автоматами
В. а. могут быть использованы для представления множеств слов аналогично тому, как это имеет место в случае детерминированных автоматов, но с тем различием, что теперь множество слов будет зависеть не только от автомата 31, но также и от параметра X.
Определение 7. Пусть 31 — в. а. и X — действительное число, 0<Х<1. Множество слов Т (31, X) определяется следующим образом:
Т(31, X) = {х:,г£Е*, к<р^\.
Если х ^Т(31, X), то будем говорить, что слово х представимо автоматом 31 с точкой сечения X. Множество Т (31, X) будет называться множеством, представимым автоматом 31 с точкой сечения X.
Замечание. Детерминированный автомат можно рассматривать как специальный случай в. а., а именно, если в определении 1 М (s, a) = sb то мы можем считать, что автомат 31 переходит в состояние sz с вероятностью 1. Таким образом, при рассмотрении детерминированного автомата как в. а. стохастические векторы М (s, с) = (р0,. . . , рп) имеют точно одну координату, равную 1; остальные координаты равны 0. Очевидно, что в этом случае р(х) — 1 для х Е* тогда и только тогда, когда х ^ Т (31). Следовательно, для любого X, 0^Х< 1 мы имеем
Т (Я) = Т (51, X). Итак, каждое множество, представимое детерминированным автоматом, тривиальным образом представимо и некоторым в. а. В следующем разделе мы увидим, что обратное утверждение неверно и поэтому в. а. определяет строго больший класс представимых множеств.
Вероятностный автомат, представляющий нерегулярное событие
Мур предложил следующие матрицы:
Легко удостовериться, что если
л . р . ... р = ри Р1 § £ (о, 1},
то р = 0, S^Vi • • • ^1» гДе Р записано в двоичной системе счисления.
Теорема 2. Пусть 51 = < S, /И, s0, F > —автомат над Е = {0, 1}, такой, что S = [s0, sj, Л(О) = Ро, Л(1)^РГ, F^js^. Существует X, 0<iX< 1, такое, что Т^, X) не представимо детерминированным автоматом (т. е. не является регулярным событие м\
Доказательство. Если х = ВД . . . Вл ^ Е*, то из сказанного выше следует, что р (х) = 0, . . . Вг
Значения р(Х) всюду плотны в интервале [0, 1]. Отсюда следует, что если 0<Х< Хх < 1, то Т (51, Хх) cz 7(51, X), где включение строгое. Поэтому множества 7(51, X), 0<Д< 1, образуют несчетное множество попарно различных множеств. Но множество регулярных событий счетно. Следовательно, найдется такое X, что Т (51, X) будет нерегулярным.
Замечание. Приведенная выше аргументация является чистым доказательством существования. Однако мы можем указать конкретное значение X, такое, что 7(51, X) не является регулярным. Пусть wv w^ . . . — произвольное перечисление элементов множества Е*; тогда для X = 0, w^ ... множество 7(51, X) не является регулярным. Доказательство этого факта мы опускаем.
Указанное X является иррациональным числом. Можно показать, что если X рационально, то 7 (51, X) является регулярным событием.
Изолированные точки сечения
Пусть 91— в. а. иО<Х<1. Для данного слова х^Е* проанализируем следующий вероятностный эксперимент Е для выяснения принадлежности слова х множеству Т (Я, X). Мы вводим х в автомат 91 N раз (/V— большое число) и подсчитываем число т(Е) случаев, когда автомат 91 останавливается в состоянии, принадлежащем F. Если X < tn (E)/N, то гипотеза принимается; в противном случае ее отвергают. Ввиду вероятностной природы эксперимента возможно, конечно, что мы иногда принимаем гипотезу х, если x£T(9l, X), или отвергаем ее, если х-Ш X). Однако, согласно закону больших чисел, для каждого х, такого, что р^^Х, и любого г, е > 0, существует число N Vx. ^Y такое, что
РЕ XРЕ XmN<x^mN<x^^х^Т<^ X) >1—г.^х^Т<^ X) >1—г.
РЕ X
РЕ X
m
N<x^
m
N<x^
^х^Т<^ X) >1—г.
^х^Т<^ X) >1—г.
Таким образом, вероятность получения правильного ответа при эксперименте Е (состоящем во вводе слова х в автомат 91 N^x, г) раз и подсчете числа успехов) больше 1 — г.
Для выполнения описанного выше стохастического эксперимента мы должны знать число N (х, s), которое зависит от \р(х)— X]. Следовательно, мы в действительности должны знать р^х) заранее, если хотим удостовериться в том, что x^T(,9i, X) с вероятностью, большей 1—е. Однако как только мы узнаем PV^Y весь эксперимент Е становится ненужным.
Выход из положения состоит в том, чтобы рассматривать такие значения X, для которых величина |р(х) — Х| ограничена снизу для всех х^Е*.
Определение. 8. Точка сечения X называется изолированной относительно 91, если существует В, В > 0, такое, что
В<|р(х)— Х| для всех х^Е*. (1)
Замечание. Очевидно, что существует такая целочисленная функция N (В, г), что для изолированной точки сечения X и любого а;^Е*
РЕРЕХ<Х<m ^N^, е)m ^N^, е)х^Т^ X) >х^Т^ X) >1 — s.1 — s.
РЕ
РЕ
Х<
Х<
m ^
N^, е)
m ^
N^, е)
х^Т^ X) >
х^Т^ X) >
1 — s.
1 — s.
Таким образом, предлагаемый стохастический эксперимент для выяснения принадлежности х множеству Т (91, X) может быть
выполнен без какой-либо априорной информации о р (х). Это обстоятельство делает естественным рассмотрение изолированных точек сечения.
Теорема редукции
Теорема 3. Пусть 91-^-в. а. и X— изолированная точка сечения. Тогда существует детерминированный автомат 95, такой, что Т (91, X) = Т (95). Если 91 имеет п состояний и F состоит ровно из одного состояния, то автомат 95 может быть выбран с е состояниями, где1)
(2) \0 /
Доказательство. Пусть множество состояний S есть js0,.. . , s^-i} и F = {s^}- Для каждого слова х А^х) есть (п Хп)-матрица и р(,х)— элемент, расположенный в правом верхнем углу матрицы Л (%).
Пусть xv.. . ,хк— слова, попарно неэквивалентные относительно отношения =Т (21 Х) (см. определение 3). Следовательно, для каждой пары i 4 j> i < k, j ^ k, существует слово у, такое, что
х^Т^,\), х^Т^, X), *(3)
или наоборот. Пусть первая строка А ^х^, 1 <С i Л п, есть I Е 1, . . . Ди) и последний столбец А (у) для конкретного у, появившегося выше, есть (^, . . . , т^). Из равенств
A KdA = л Ki) А (у) И A ^Xjy^ = А Кй А (у) следует, что
Р Kty) = Bi ^ 4 ... 4- ^„^ р (Xj-y) = Biv), 4- • • • + с«7]л.
В комбинации с (3) мы получаем
Х < S1V31 4-4-517)! 4- • . . + УпЧп < ^-(4)
Поскольку X —изолированная точка сечения и В<|р(х) — Х| для любого х^Е*, то из (4) следует, что
28-< (5f —5{) ^ + . . . + (^—^) ^„.(5)
х) Если F состоит из г состояний, то е < (1 +, причем доказа
тельство в основном остается тем же.
Возьмем абсолютные значения разностей и, заметив, что t^z как элементы стохастической матрицы удовлетворяют неравенствам | vj. | ^ 1, получим из (5)
28<|е'-^| + . • . + |^-^| для(6)
Для того чтобы получить из (6) ограничение на к, мы используем следующее рассуждение. Векторы (h, • • • >U можно рассматривать как точки ^-мерного евклидова пространства. Пусть а., 1<Д<:&, суть множества, определяемые следующим образом:
az = ((V..V)N<^ 1</<V У(^-^ = 81.
Каждое а. есть параллельный перенос множества
о = {^ь . . . Л„)1 0<^, 1 С/Сп, У ^ = 8).
Легко видеть, что множество a— это ^п—1) - мерный симплекс, ЯВЛЯЮЩИЙСЯ подмножеством гиперплоскости Х1 + . . . + хп = 8. При этом (п—1)-мерный объем Vn-\ (°) симплекса а, выраженный как функция В, равен со72-1, где с — некоторая константа, нс зависящая от В.
Так как S В/ = 1, то из условия ^ь . . . ,^) i следует
S^ = 1 + 8, 0 <^, \<j<n.
i
Таким образом, oz^t, где
На рисунке показаны множества az, 1 < i < к, и т для двумерного случая п = 2 и к = 3. Точка с координатами (?i, 82) обозначена через Pb 1 < i < 3.
Точка (li,. . . Лп\ принадлежащая о., является внутренней точкой множества а. (в топологии гиперплоскости Xi + . . . + хп = = 1 + В) тогда и только тогда, когда 0 < ^ —-^ для 1 < р< п. Ввиду соотношения (6), а. и о^ I /, не имеют общих внутренних точек. В противном случае, если (81,. . . Лп)— внутренняя точка как оь так и gj, то мы имели бы 0 < ^ — ^, 0 < ;р — ^р и, следовательно,
l^-^l<hp-^l + l^-^l-
Отсюда
ррр
что противоречит (6).
Итак, при i 4 1 множества oz и о,- не имеют общих внутренних точек. Отсюда следует
Ы""1 = Vn-X (»1) + . . . + Vn-l (^) < Vn-Х (т) = с (1 + Sf-'-
Поэтому к < (1 + (1/3)}"—'. Таким образом, число е классов эквивалентности отношения = 7(9(Х) не превышает {1-f-(l/o)}”-1. По теореме 1 множество Т (21, X) представимо автоматом 23 с е состояниями.
Экономия состояний
Из доказательства теоремы редукции 3 и оценки (2), полученной в доказательстве, кажется вероятным, что при переходе от в. а. к эквивалентному детерминированному автомату нам нужно будет увеличить число состояний. Другими словами, в. а. более экономен в смысле числа состояний. Следующая теорема показывает, что в определенных случаях это действительно имеет место.
Теорема 4. Существует автомат 21 ровно с двумя состояниями и последовательность \п, 1<п<оо, изолированных точек сечения, такая, что для каждого п автомат %п с наимень-
шим числом состояний, удовлетворяющий условию Т (Я, Х„) = = Т (95л), имеет по крайней мере п состояний.
Доказательство. Пусть Е = {0,2}, S = {s0, Si) и F^ {si}. Пусть переходные вероятности таковы, что
' 1
0 "
1
2
Л(0) =
2
1
-Л(2) =
3
3
_ 3
з _
0
1
Легко проверить, что если х г= ох В2. . . 8Л Е*, то о о .А
Вспоминая, что Bz^ {0,2}, мы видим, что топологическое замыкание С множества Р — {р(х)[х^Е*} есть в точности канторов дисконтинуум.
Таким образом, все точки X, 0 < X < 1, которые удовлетворяют условию Х^С, являются изолированными точками сечения относительно 51. Рассмотрим теперь действительное число (записанное в троичной системе счисления) Хп = 0,22. . .211, число цифр которого равно п + 1. Так как х S*, для того чтобы было Хп < р (х), необходимо и достаточно, чтобы слово х имело вид х = Xi 22. . . 2, гдехх^Е* и число двоек по крайней мере равно п. Таким образом, множество Т ^&Д^ непусто, и если х^Т(51, Хл), то п< Цх). Из элементарной теории автоматов (см. Рабин и Скотт [3], теорема 7) следует, что минимальный детерминированный автомат %п, для которого Т (Я, XJ = T\%nV имеет по крайней мере п + 1 состояний (в действительности, автомат %п имеет в точности п + 1 состояний).
р ^ -A I = ^гйр ^ -A I = ^гйЗамечание. Анализ возможных значений р (х) показывает, что для упомянутых выше Хп
р ^ -A I = ^гй
р ^ -A I = ^гй
lim inf
Таким образом, в (2) мы можем положить В^З-^-1, что дает для числа состояний оценку 1 -|~3Л+1. В последнем случае эта оценка оказывается слишком завышенной. Нам неизвестно, может ли приведенная оценка быть ближе к точному значению для других примеров или же оценка в теореме 3 может быть в действительности значительно улучшена.
Приближенное вычисление произведений матриц
Пусть Н— конечное множество, Н = {Pi,. . . ,Р^}, стохастических (п X и) - матриц и пусть s, е > 0, — некоторое заданное действительное число. Элементы всех матриц Р ^Н предполагают-
ся конечными десятичными дробями1). Рассмотрим следующую комбинаторную задачу. Пусть в дискретные моменты времени т — 1,2 . . . подаются матрицы Р^уН,Р^УН... и пусть хт = --= UU. . .1т, т = 1,2 . .. . В каждый момент времени т мы хотим знать с точностью г элемент р (1,и) произведения матриц
^т = (Рхт^'1 <i<n = РЦ Pi2 - ■ ■ Pim-
Так как мы имеем здесь в виду реальное вычисление (с применением, скажем, реальной вычислительной машины с фиксированной памятью), то в общем случае решить нашу проблему вычисления Пг во все моменты т с полной точностью невозможно. т
Элементы рх (i, j) будут иметь все большее число десятичных знаков, так что регистрация их и вычисление с ними с возрастанием т станут невозможными. Невозможно также ввести простую процедуру округления, так как число перемножений матриц, которое придется произвести, заранее не ограничено. Фиксированная процедура округления может привести к накоплению ошибки, которая станет больше s.
Мы применим нашу теорему редукции (теорема 3), для того чтобы показать, что при определенных условиях, наложенных на Н, проблема приближенного вычисления может быть фактически решена. Решение основывается на следующей теореме.
Теорема 5. Пусть £ = {1,2, .. . , к\ и пусть рх, где х— = ii i2 . . . ^^S*, обозначает (1, пу элемент произведения Р^... Pt^. Предположим, что Н таково, что V = ^рх \х у 2*} нигде не плотно в интервале [0,1]. Тогда для каждого г, г > 0, существует целое положительное h, действительные числа Хь ... Дн и детерминированные автоматы Я1, . .., Я^ над алфавитом Sr такие, что
(I) 0 = Хх < Х2 < . . . < ХА = 1, Х/+1 — X. < г, 1 <3 < h,
(Щ \ <р.г< тогда и только тогда, когда хС-Т (3lz)—Т (У:+1),
1 < i < h.
Доказательство. Тот факт, что V нигде не плотно, означает, что топологическое замыкание V не содержит ни одного нетривиального интервала. Таким образом, для некоторого поло-
жительного целого числа h существует последовательность Xz, 1 < Z < Л, удовлетворяющая (I), причем X.^V при 2<г<А—1.
Рассмотрим в. а. 21 над 2, имеющий состояния s0, .. . ,sn_\, множество {S/z-i} отмеченных конечных состояний и такие переходные вероятности, что матрица, соответствующая индексу i € 2, есть /X. Для х ^2* мы имеем р^х) = рх. Числа Xh 2< К h—1, являются изолированными точками сечения для 21. Таким образом, по теореме 3 множество Т (21, X.), 2 < К h—1, является множеством Т (2lz), представимым некоторым детерминированным автоматом 2lz. Следовательно, X. < рх для 2 < i < h— 1 (равенство рх = Xz невозможно, поскольку Xz — изолированная точка) тогда и только тогда, когда x^T(2lz). Пусть 91г и 21^ — такие автоматы, что T(2lz) = 2* и Т(21^) = 0. Автоматы 2lz, 1 < i < h, удовлетворяют соотношению (II).
Замечание. Условие, касающееся V, выполнено, например, для множества Н = {А(0), Л (2)} (2 X 2) - матриц, определенных в теореме 4. В этом случае V есть канторов дисконтинуум. Мы не имеем, однако, критерия для решения вопроса о том, когда Н удовлетворяет этому условию.
Теперь можно предложить следующий метод приближенного вычисления рх (1, м) в случае, когда Н удовлетворяет условиям теоремы 5. Если дано е, е > 0, то пусть X., 3lz, 1 < i < hy удовлетворяют соотношениям (I) и (II) теоремы 5. Применяя строго фиксированную величину памяти вычислительной машины, возможно промоделировать автоматы 2lz, 1 < i < h. Когда подаются матрицы Р^, Р1э...э то индексы ч, U, . .. поступают в промоделированные автоматы. В каждый момент m вычислительная машина определяет, какие из автоматов Mz представляют слово хт = Ч ч • • • im- Существует в точности одно /^, такое, что хт € Т ^Jm) - Т ^Viy Для \т мы имеем | р^ (1 ,п) -| <е, и мы берем Х;. в качестве приближения для рх (1, п).
Таким образом, мы доказали существование приближенного метода вычисления, который может быть действительно осуществлен вычислительной машиной. Мы не знаем никакого метода классического численного анализа для получения этого результата. В действительности пример, принадлежащий Стирнсу, показывает, что без некоторых предположений относительно Н никакого вычислительного метода не существует.
Актуальные автоматы
В определенных реальных ситуациях естественно предполагать, что все переходные вероятности автомата между состояниями^ строго положительны (хотя иногда весьма малы). Этим оправдывается следующее определение.
Определение 9. В. а. Э1 называется актуальным автоматом. если для всех s^S.s^S и а ^ S вероятности pt (s, а) перехода из состояния s в состояние sz при входе а удовлетворяют' условию 0 < pt (s, о).
Произведения положительных стохастических матриц
Актуальные автоматы обладают весьма специальными свойствами. Для изучения этих свойств нам необходимы некоторые результаты относительно строго положительных стохастических, матриц. Лемма 6 — это сформулированная в наших обозначениях теорема 4.1.3 Кемени и Снелла [1]; ее доказательство приводится ради полноты изложения. Следствие 7 и лемма 8 тесно связаны с теоремами 4.1.4 — 4.1.6 Кемени и Снелла [1], за исключением того, что мы рассматриваем произведения различных матриц вместе^ степеней одной матрицы. Возможность такого обобщения была указана Пазом.
Определение 10. Если а = ^х<1<п — вектор-столбец, то || а || определяется как || а || = max at — min aL. Если A — (иХи)-мат- ii
рица, имеющая столбцы alt a2,..., an, то || Л || определяется» как || Л || = max || а; ||.
i
Лемма 6. Если Р ^ кРи\<1 j<n— стохастическая матрица. А = min ри- и т ~ ^\<1<п— вектор-столбец, то
4|| Ра || < (1-2Д)|| а ||.
Доказательство. Пусть Ра = (Ь^а<п. Без ограничения общности мы можем предположить, что bY = max bb Ь» = min b^
iI
^ = max ab a2 = min a,.
iI
Имеем:.
61 = Р1Л + P12O2 + • • • + Pl A< Pliai+P12«2 + P13«l + • • • + P1A == «1 — P12 (01 — 02).
Аналогично, подставляя в сумму для Ьг число а2 вместо а.» получаем1
62 > а2 + р12 (ах — а2).
Таким образом, || ^а ||=^i — b^C^i — ^2) (1—Р12-—£21)- Но ^i —^2 = ||а||» и так как Д< р12 и А<р2ъ то 1—р12 —p2i< < 1 — 2Д. Это доказывает лемму.
Следствие 7. Если Н = [Рг,... ,Pk\, где матрицы Рь 1 < I < к, стохастические и все элементы Pt больше к, Д > О, то для любых 1 < ZD . .., im< к
lIVv-AM-2^"1-
Доказательство. Вектор-столбцы аь ...,ал матрицы Р^ удовлетворяют условию Ц aj| < 1. По лемме 6 столбцы pv ... $т произведения Pirn_x Pim удовлетворяют условиям || & || ^ 1 — 2Д. Повторяя это рассуждение т—1 раз, получаем требуемый результат.
Для каждой (тХп)-матрицы А = (д^) положим | А | = max | atj |.
Ясно, что |Л| обладает обычными свойствами нормы.
Лемма 8. Если Р— стохастическая (дХпуматрица и а = ^ ^\<кп—вектор-столбец, то
|Ра — а|< || а ||.
Доказательство. Пусть (pv ...,р^ — первая строка матрицы Р и Ьг — первый элемент матрицы Ра.
Тогда
I ^1 — «11 = I РА + • • • + рпап—аг | < <р2|а2 —й! | + +рл|а„ —ах|< ||а||. Это соотношение справедливо и для остальных элементов матрицы Ра.
Следствие 9. Если Р— стохастическая (пХпуматрица и А—(n X пуматрица, то
1РЛ—л 1 II ли.
Актуальные автоматы и дефинитные события
Покажем, что множества, представимые актуальными автоматами, в точности описываются следующим определением.
Определение 11. Множество Тсs* называется дефинитным событием, если для некоторого целого числа к справедливо ^следующее: если &< ИдУ то х^Тт тогда и только тогда, когда х = уг, где к = I (2) и г У Т.
В работе [2] детально изучены свойства дефинитных множеств л детерминированных автоматов, представляющих эти множества.
Теорема 10. Если 21—актуальный автомат и X— изолированная точка сечения, то 7(21, X) — дефинитное множество. Обратно, каждое дефинитное множество представимо некоторым актуальным автоматом с изолированной точкой сечения.
Доказательство. Пусть 0 < 8 < | р (х) — X | и предположим, что все элементы стохастической матрицы А (о), а £ £ (см. определение 5), больше А, А > 0. Предположим, что 21 имеет в точности одно отмеченное конечное состояние, скажем sn_v Доказательство в общем случае по существу остается тем же.
Пусть число к таково, что (1—2Д)*-1 <28. Для любого слова 2 = ^ ... о^, (^ *L длины к матрица А (г) равна А (ат)... А (о^) и, таким образом, согласно следствию 7, удовлетворяет неравенству II А (2) II < (1—2А)^< 28.
Так как р^х) для x^S* есть (1, п)-элемент матрицы Л(х), то, согласно следствию 9, мы имеем
IР (уг) — Р (г) | < | А (у) A (z) — А (г) | < || А (г) ||.
Таким образом, для 2, удовлетворяющего условию /(2) = к, имеет место неравенство | р (,yz) — р (2) | < 28. Следовательно, yz^T (21, X) тогда и только тогда, когда 2^7(21, X), а это доказывает, что Т (21, X) — дефинитное событие.
Обратное доказывается явным построением актуального автомата, представляющего дефинитное событие 7. Подробности мы опускаем.
Проблема устойчивости
Рассмотрим в. а. 21 и изолированную точку сечения X. Естественно задать вопрос: когда множество 7 (21, X) остается инвариантным (устойчивым) при малых возмущениях переходных вероятностей автомата 21? Результаты такого рода мы будем называть теоремами устойчивости.
Теорема И. Пусть 21 = < 5, M,s0, F > — актуальный автомат и X — изолированная точка сечения. Существует е, е> 0, такое, что для каждого автомата 2Г = < S, Mr, s0, F > с переходными вероятностями, отличающимися от переходных вероятностей автомата 21 менее, чем на е, X есть изолированная точка сечения автомата 21' и 7(21, X) = 7(2Г, X).
Доказательство. Пусть А (а) и А’ (а) — матрицы, соответствующие а ^2 в автомате 21 и автомате 21' соответственно. Пусть А — наименьший элемент матрицы Л (а) и А' — наименьший
элемент матрицы Л'(о). Мы покажем, что для любого 8Р ^ < 0, можно найти такое в, в >0, что из
| А(а) —А'(а)| < в, а^(7)
для всех х = ах... ат следует неравенство
| Л (X) - Л' (X) НI л К)... Л(ОJ - Л' (01). .. А' Ы | < оР (8) Последнее, конечно, доказывает теорему.
Пусть число к таково, что (1 — 2А)л-1<-у-. Мы можем выбрать достаточно малое в, s > 0, так, чтобы из (7) следовало: а) (1 —2Д')А-1 (это возможно сделать, так как А — lim А'), 6s-^0
для всех г, таких, что / (г) < к, имеет место соотношение |Л(г)-ЛЧг)|<-|-.
Если / (х) < к, то (8) тривиально выполняется в силу (б). Если &< Цх), то х = уг, где Z(z) = к. Матрица Л (г) есть произведение к матриц Л (а); отсюда, в силу следствия 7, || Л (z) || < (1 — 2Д)*-1 < <-^.. Аналогично, применяя (а), мы имеем || Л'(z) || <-^-. Поэтому
| Л (х) — А' (х) | < | Л (у) Л (г) — Л (г) | + | Л' (у) А' (г) — A' ^ | + /+|Л(г)-Л^)|.
Ввиду следствия 9 и (б) каждое из слагаемых в правой части неравенства меньше -у-.
Замечание. Теорема 11 не может полностью быть справедливой для произвольного в. а. с изолированной точкой сечения. Предположим, что 91 — в. а. с изолированной точкой сечения X, такой, что Т (91, X) не является дефинитным событием. Автомат 91' может удовлетворять условию (7) и иметь только строго положительные переходные вероятности. В этом случае либо X не является изолированной точкой сечения для 91', либо Т (9lz, X) является дефинитным событием и, следовательно, Т^ЭГД^ТХЭ!, X).
Таким образом, предположительная формулировка общей теоремы устойчивости могла бы быть такой: если 91 — в. а. и X — изолированная точка сечения, то существует в, в > 0, такое, что для любого автомата 91', определенного как в теореме И, и такого, что матрица А' (а) имеет нули там, где их имеет А (а), X есть изолированная точка сечения 91' и 7(91', X) = T(9l, X). Кестен построил эффектный пример, противоречащий этому предположению. Таким образом, проблема приемлемого обобщения теоремы 11 остается открытой.
ЛИТЕРАТУРА
Kemeny J. G., S n е 1 1 J. L., Finite Markov chains, Van Nostrand, ’ N. Y., 1960.
P e r 1 e s M., R a b i n M. O., S h a m i r E., The theory of definite automata, будет опубликовано в IRE Trans. Computers (1963).
Rabin M. O., S с о t t D., Finite automata and their decision problems, IBM J. Res. Develop., 3 (1959);114—125.Русский перевод:
Рабин M. О., С к о т т Д., Конечные автоматы и задачи их разрешения, Кибернетический сборник, вып. 4, ИЛ, М., 1962, стр. 58—91.
V о n Neumann J., Probabilistic logics and synthesis of reliable organisms from unreliable components. Annals of Mathematics Studies, vol. 34 (S h a n n о n С. E. and McCarthy J., eds.), pp. 43—98, Princeton Univ. Press, Princeton, N.J., 1956. Русский перевод: Нейман Дж.» Вероятностная логика и синтез надежных организмов из ненадежных компонент, сб. Автоматы. ИЛ, М., 1956, 68—139.
В. Майеда
' Введение '
В этой работе рассматриваются сети, имеющие ветви (называемые также ребрами или элементами); веса ветвей представляют собой ограниченные пропускные способности каналов связи (которые будем называть пропускными способностями ветвей); будем считать, что по каналам в любом направлении можно передать ограниченное количество информации. Предполагается также, что сеть состоит из конечного числа ветвей. Между любой парой вершин в такой сети связи существует конечная мощность передаваемой информации, которая называется заключительной мощностью между этими вершинами.
Сеть связи, содержащую и вершин, можно задать посредством симметричной матрицы Т = ^Й порядка у, где ttj — заключительная мощность между вершинами I и / ^н Для всех 1 считаем равными dy Матрицу Т будем называть матрицей заключительных мощностей. Эта работа в основном посвящена отысканию необходимых и достаточных условий представления матрицы как матрицы заключительных мощностей.
Сеть связи, содержащую у вершин, можно представить и другим путем, а именно, с помощью симметричной матрицы пропускных способностей ветвей С = ^сиЙ» ГД£ сц — сумма пропускных способностей ветвей, соединяющих вершины i и / для i ^ /, и си = d для всех I. Любая симметричная матрица М = (т^, такая, что т^ ^ 0 (/ ^ /) и ти = d, представляет собой матрицу пропускных способностей ветвей. Показано, что синтез сети связи из данной матрицы заключительных мощностей можно осуществить, используя соотношения между матрицей заключительных мощностей и матрицей пропускных способностей ветвей.
Матрица заключительных мощностей
В этой работе каждая пропускная способность ветви в сети связи представляет собой скорость передачи информации по каналу в любом направлении. Если в сети связи, содержащей ко
Ч М а у е d a W., Terminal and branch capacity matrices of a communication net, IRE Trans, on Circuit Theory, CT-7, № 3 (I960), 261—269.
нечное число ветвей, каждой ветви поставить в соответствие конечную пропускную способность ветви, то в этой сети можна определить мощность передаваемой от одной вершины к другой информации. Будем называть ее заключительной мощностью. Для представления сети связи, содержащей у вершин, достаточна каждой паре вершин (г, /) поставить в соответствие заключительную мощность ttj. Симметричная матрица Т = (/Zy) порядка и называется матрицей заключительных мощностей, если
ty — заключительная мощность между вершинами i и / для i^/, tu = d для всех i.
Возьмем симметричную матрицу М, у которой все диагональные элементы равны d. Представление матрицы М в виде)
/ MQ\MC\\ Мс :)
будем называть главным разбивающим процессом, если:
все элементы подматрицы Мс одинаковы и равны наименьшему в М числу (число d не учитывается),
Ма и Мь — симметричные подматрицы.
Ма и Мь называются основными результирующими подматрицами главного разбивающего процесса.
Теорема. Симметричная матрица Т порядка и является: матрицей заключительных мощностей тогда и 'только тогда, когда главный разбивающий процесс применим как к Т, так и ко всем результирующим основным подматрицам, полученным после к главных разбивающих процессов (k = 1,2,..., у— 2), каждая из которых содержит более одного элемента.
Доказательство можно провести, используя соотношения между сечениями и заключительными мощностями сети. Пусть Sr, S2,.. . ,Sh,... ,Sk — все возможные сечения в сети N, каждое из которых обладает тем свойством, что удаление из сети N всех ветвей, образующих сечение Sh, приводит к разбиению N на две не связанные между собой части Nsh и Nsh, где Nsh содержит вершину i, a Nsh — вершину /.
Форд и Фулкерсон [1] показали, что заключительная мощность сети N между вершинами I и j равна наименьшему из значений сечений Sx, S2,..., SA,..., Sfe, где значение сечения есть сумма пропускных способностей всех ветвей, образующих сечение). Этот
факт определяет соотношение между сечениями и заключительными мощностями сети N. Кроме того, это означает существование сечения, называемого сечением, соответствующим заключительной мощности I, значение которого равно заключительной мощности t между парами вершин в сети N. Заметим, что может быть более одного сечения, соответствующего заключительной мощности, и обратно.
Доказательство необходимости. Предположим, что в сети связи .N заданы ST и S2— сечения, соответствующие заключительным мощностям tx и Z2, и что в N не существует заключительной мощности, которая меньше ^ и /2 и которой соответствует сечение, отличное от 5Х и S2. Тогда, как будет показано в дальнейшем, если tx < /2, то удалением всех ветвей, образующих Si и S2, нельзя разделить N на 4 части. Будет показано также, что когда N делится на 4 части удалением всех ветвей, образующих ST и S2, тогда 1г=1й. Кроме того, даже если ^=4, в N существует пара сечений Si и S2, которые являются сечениями, соответствующими 1г и /2, и которые таковы, что удаление всех ветвей, образующих .Si и S2, не будет делить N на 4 части.
Будем использовать следующие символы и предположения.
В сети связи N не существует заключительных мощностей, меньших, чем 1г и Z2, соответствующие сечения которых отличны ют сечений, соответствующих 1г и /2.
ST и S2 — сечения, соответствующие tT и /2.
N11l и N12— две связные подсети, полученные после удаления из N всех ветвей, образующих Sx; W21 и W22— две связные подсети, полученные из N после удаления всех ветвей, образующих S2; Na, Nb, Nc и Nd— 4 — связные подсети, полученные из JV после удаления всех ветвей, образующих Sx и S2.
Для i ^ / множество Вц есть совокупность ветвей, каждая из которых соединяет любую вершину из Nt с любой вершиной из Nj.
Ветви, образующие N„, Nb, Nc, N d, Bab, Baf, Bad, Bbc, Bbd и Bcd, — это все ветви сети N. Sx образовано ветвями из Вас, Bad, ВЬс и Bbd; S2 образовано ветвями из Bab, Bad, Bbc и Bcd, т. е. 1
Si = ^ос, Bud, Bbc, Bbd],
^2 ~ \Bab, Bad, Bbc, Brd]
^см. рис. 1, где
^ab ~ {^11» ‘ ‘ ‘ ’
Ветви из Na, Nb и Bab образуют vVn> а ветви из Nc, Nd и Bcd образуют W12. Аналогично ветви из Na, Nc и Вас образуют А21, а ветви из Nb, Nd и Bbd образуют А22.
V(u)— функция множества и, значение которой равно сумме пропускных способностей всех ветвей, входящих в и.
Рассмотрим сечения Sb S2, Sat Sb, Se и Sd, где
S1
=
V^ac, Bad, вЬс,
BbA,
(3)
52
=
^ab> ^ady ^bc^
Bca\,
(4)
sa
=
{Bab> Bac, Bad\
(5)
s»
=
{Bab, Bbc, Bbd]
(6)
{Вдс’ Bbc, Bcd\,
(7)
sd
—
{Bad’ Bbd. Bcd\
(8)
Предположение состоит в том, что ^(SJ, V(SbY V(SC) и V^S^
не меньше, чем tx и /2, где 11 Заказ № 102
fl = VTO = Уфис) + Уф^ 4- УфЬс) 4 У фм),(9)
z2 = V^ = wab) + Уф^ + УФ^ + УфС(1у(10)
V(SJ = Уф^ + Уф^ + Уфа4\(11)
Уф,) = УфиЬ) + Уф^ + Уфм),(12)
V(sf) = Уфа;> + уфф + Уфс4у(13)
Уфа) = Уф,,^ + Уфм) + Уфс4\(14)
Из (9) и (11) следует
УфаЬ)>УфЬсНУфм).(15)
Отсюда, используя (10), получаем
2УфЬс) + V(Bbd) + УфО(1) + Уфса) < Ф(16)
что вместе с (14) дает
V Фй) + 2УфЬс) < /2;(17)
а в силу предположения yvS^^t» это выполнимо, лишь когда Уфь^=0.(18)
В этом случае V^S^^t»,(19)
и (9), (10), (12), (13) принимают вид
ti = V^acVmBadHV(Bbd),(20)
/2=m») + md) + v(Bcd),(2i)
Уф^УфаьИУфм),(22)
V(SC) =УфасИУфс4).(23)
Из (21) и (22) получаем
VkBbd)>V<Bad>-VV<Bed),(24)
а это вместе с (20) дает
Уф^^-Уф^^^Уф^Хк.(25)
Используя (23), получаем
V(Sj + 2V(B^)</v(26)
а это противоречит предположению о том, что V (Sc) ^> t^ если не выполняется равенство
md) = 0.(27)
Следовательно,
V<Sc^tv(28)
Таким образом, получаем
^-Уф^ + Уф^.(29)
(, = УФ^ + УФ^.(30)
Уфа) = УфаЬ)+Уфас),(31)
Уфь) = УфаЬ)+Уфм),(32)
V Фс) =Уфас) + Уфса),(33)
Уф^Уф^^ФсаУ(34)
Но, в силу (19), правые части равенств (30) и (34) должны быть равны. Отсюда
Уф^^Уф^."(35)
Аналогично должны быть равны правые части (29) и (33). Поэтому
Уфь^ = Уфс<1\(36)
Итак, чтобы удовлетворить предположению, tA и /2 должны быть равны. Отсюда получаем
k = t^V (S^ - V (S.) - V (Sc) - V (Sd\(37)
Это означает, что если /г </2, то 52 не будет делить одновременно Ап и Л\2, т. е. посредством S2 на две связных подсети разбивается либо Ап, либо W12 (S2 находится либо в 7Vn, либо в А12).
Когда /г = /2, Sa можно рассматривать как сечение, соответствующее /2, и ввести другую заключительную мощность /3, соответствующее сечение которой есть Sd, так что сечение, соответствующее /2 (или /3), не будет делить сразу и NX1 и N^ при ^i = /2 = /3.
Рассмотрим матрицу заключительных мощностей Т сети N. Пусть tv— наименьшая заключительная мощность в N. Соответствующее ей сечение Sr делит N на An и Л712. Это означает, 11*
что tx — заключительная мощность между любой вершиной из Nxx и любой вершиной из Мх2. Следовательно, к Т можно следующим образом применить главный разбивающий процесс:
Т(УТ(У
Т(У
Т(У
(38)(38)т -
(38)
(38)
Т^у. т.
где элементы подматрицы Т^У) все одинаковы и равны tv а Тг и 72 — симметричные подматрицы, причем столбцы ^представляют собой вершины Nn и столбцы Т^ представляют собой вершины N^. Из предыдущих рассуждений известно, что сечение S2 (которое равно S2, если /2 > tv и равно 8а, если tx = /2), соответствующее /2, будет делить на две подсети либо Nxv либо Nx2.
Предположим, что S2 делит Nxx на две подсети Nxxx и Nm. Это означает, что к Тх можно применить главный разбивающий процесс и (38) перепишется в следующей форме:
Th
1 tvo
T' ю
т12
Г Ю
Теперь необходимо доказать, что главный разбивающий процесс может быть применен к каждой основной результирующей подматрице матрицы Т.
Предположим, что: ■
tvt^ . . . , tk, tk+x — заключительные мощности в ^, причем соответствующие им сечения все различны и tx ^ t^ ^ • • • ^ 4 4+1»
Sn S2, . .., Sk, Sk+X— сечения, соответствующие tv t^ . .., 4’ 4+i» „
в N не существует других заключительных мощностей, меньших, чем 4+1, и таких, что соответствующие им сечения отличны от SD S2, . . ., S^+1.
Из предыдущих рассуждений известно, что удаление всех ветвей, образующих Sr, приводит к разбиению N на две подсети Nа и Nb. Кроме того, удаление из Nа и Nb ветвей, образующих S2, приводит к тому, что или N а, или Nb будет разбита на две подсети. Пусть No, Nv . . ., Nk — (к + 1) подсетей, полученных из N удалением всех ветвей, входящих в
Sp s2, sft.
Напомним, что 7V0, Nv . . ., Nk получены из N удалением всех ветвей, образующих Sr, S2,. . ., Sk. Поэтому в Sr, S2, . . ., Sk существует сечение Sy, которое обладает следующими свойствами:
удаление из N всех ветвей, входящих в Sy, порождает две подсети Nq и Nn
Nq содержит одну из двух подсетей, выбранных произвольно из + 1 подсетей No, Nlt . . ., Nk,
Nr содержит другую выбранную подсеть.
Предположим, что для i = 1, 2,. . ., р (1 < p^k) удаление всех ветвей, образующих S^+1 (каждая ветвь из S^+1 принадлежит либо N0) либо Nv . .., либо Nk), приводит к разбиению Nt на две подсети Nt и Ni. Подсети Nq и Nr образуются путем удаления из N всех ветвей специальным образом выбранного из Sr, S2, . . . . . . , Sk сечения так, что Nq содержит некоторые (но не все) Nh a Np содержит остальные Nt. Тогда, удаляя все ветви, образующие Sk+V получаем четыре подсети. Но эта ситуация аналогична случаю, когда рассматриваются два сечения Sr и S2. Таким образом посредством S^+1 из N q и Nr можно сделать четыре подсети лишь в том случае, когда
4 ~ ^+i-
Известно, что если tM ^tu для р^u^k (jX^kY то существует сечение Szz, такое, что V (S") =/^+1, и удаление всех ветвей, образующих Sr\ из Nq и Nr делит либо Nq, либо Nr на две подсети. Будем считать, что сечением, соответствующим tk+v является Szz (а не S^+1). Число подсетей из множества NOl Nlf Nk, которые посредством Szz делятся на два, меньше того же числа для S^+1.
Отсюда, повторяя указанную выше процедуру, можно получить сечение S^+1, которое является сечением, соответствующим ^+1, так что удаление всех ветвей, входящих в S^+i, из No, Nv . . ., Nk делит на две подсети только одну сеть: либо No, либо Nv . .., либо Nk. Это означает, что главный разбивающий процесс применим к каждой результирующей основной подматрице.
Доказательство достаточности. Существует большое число сетей связи, имеющих одну и ту же матрицу заключительных мощностей. Здесь будет показано построение сети связи частного вида с помощью данной матрицы заключительных мощностей. В следующем разделе описывается простой метод синтеза сетей связи, не требующий каких-либо ограничений на структуру сетей.
Предположим, что матрица Т приведена к виду (38), где каждый элемент подматрицы Т (t^ является наименьшим изо всех элементов матрицы Т (число d при этом не учитывается). Пусть
сеть Мх состоит из вершин, соответствующих строкам (столбцам)» Тр и сеть N2 состоит из вершин, соответствующих строкам (столбцам) Т2. Возможно, называть Мх и М2 «сетями» неправильно, так как Мх и N2 состоят только из вершин. Тем не менее для удобства мы будем использовать слово «сеть» в этом смысле.
(40)(40)Пусть ветвь с пропускной способностью, равной /, соединяет любую вершину из Nx с любой вершиной из W2, как показано на рис. 2. Поскольку Тх— основная результирующая подматрица матрицы Т при указанном выше процессе, к Тх применим главный разбивающий процесс, т. е. Тх можно представить в виде
(40)
(40)
Т'д^ т\2
где каждый элемент подматрицы Тх (t2) равен наименьшему из элементов матрицы Тх (без учета d). Пусть ^11 будет подсеть Nx, состоящая из вершин, соответствующих строкам (столбцам) 7\р и Л^12— подсеть Nv состоящая из вершин, соответствующих строкам (столбцам) Т\2. Пусть ветвь с пропускной способностью, равной /2, соединяет любую вершину из Nv с любой вершиной из NX2 (рис. 3).
Указанный выше процесс дает возможность установить следующее.
При каждом главном разбивающем процессе, который применяется к результирующей основной подматрице, в сети появляется одна ветвь. .
Для симметричной матрицы Т порядка у существует у—1 главных разбивающих процессов. .
Полученная с помощью такого метода сеть содержит и—1 ветвей и не содержит циклов.
Отсюда, продолжая вышеуказанный процесс до тех пор, пока результирующая основная подматрица не будет состоять из одного элемента d, мы получим сеть, представляющую собой дерево, вес каждой ветви которого оценивается пропускной способностью,
Рис. 3.Рис. 3.
Рис. 3.
Рис. 3.
равной заключительной мощности. Поэтому ^ есть заключительная мощность между любой вершиной из NY и любой вершиной из М2; /2— заключительная мощность между любой вершиной из Ми и любой вершиной из Nw и т. д. Таким образом, результирующая сеть есть сеть связи с данной матрицей заключительных мощностей. Справедливость теоремы, таким образом, установлена.
Пример. Матрица
1 2 3 4 5
23452345
2
3
4
5
2
3
4
5
1 d
3
2
2
4
3 2
d 2
2 d
2 2
3 2
2 4
2 3
2 2
d 2
2 d
как ее можнокак ее можноесть матрица заключительных мощностей, так р азбить следующим образом:
как ее можно
как ее можно
1
5
2
4
3
а это означает, что матрица удовлетворяет теореме. Сеть связи, соответствующую данной матрице, можно получить следующим образом.
Между любой из вершин 1, 5, 2 и любой из вершин 3 и 4, например между вершинами 1 и 3, проводим ветвь с пропускной способностью tx = 2.
Вершины 3 и 4 соединяем ветвью с пропускной способностью /2 = 2.
Между вершиной 2 и любой из вершин 1 и 5, например между вершинами 1 и 2, проводим ветвь с пропускной способностью /3 = 3.
Наконец, ветвью с пропускной способностью /4 = 4 соединяем вершины 1 и 5.
Результирующая сеть показана на рис. 4.
Рис. 4.Рис. 4.
Рис. 4.
Рис. 4.
Матрица пропускных способностей ветвей и матрица заключительных мощностей. Матрица С = Vе^ пропускных способностей ветвей сети, содержащей о вершин, есть симметрическая матрица порядка о, определяемая следующим образом:
Сц— сумма пропускных способностей ветвей, соединяющих вершины / и / для i ^ /,,
cH = d для всех i.
Поскольку матрица пропускных способностей ветвей задает структуру сети связи, синтез сети связи, удовлетворяющей данной матрице заключительных мощностей, заключается в том, чтобы из данной матрицы заключительных мощностей получить матрицу пропускных способностей ветвей. Для описания такого алгоритма достаточно знать соотношение между этими двумя матрицами.
Предположим, что матрица заключительных мощностей Т сети связи N разбита следующим образом:
(42)(42)Та, : W
(42)
(42)
Тх
11усть подсеть ^1 соответствует подматрице Tv -а подсеть Nai соответствует подматрице Т2.
Разобьем матрицу С пропускных способностей ветвей следующим образом:
с =
Сй,
сю
;(43)
С'(У
Ci
здесь строки и столбцы подматриц CD Cat и С (t^ упорядочены лак же, как строки и столбцы подматриц Tv Та, и ^(/^соответственно, причем ветви, пропускные способности которых принадлежат С (ZJ, соединяют любую вершину из Nt с любой вершиной из Nar Отсюда заключительная мощность ^ в Т (/г) равна сумме всех элементов (пропускных способностей) в С^у.
(44)(44)^1 ~ X си М’
(44)
(44)
где с^ (у — элементы матрицы С(/г).
10 Заказ № 102
7 =Та,Т{^т'^Тг7 =Та,Т{^т'^ТгТ'^ ; тхТ'^ ; тх(45)(45)Пусть главный разбивающий процесс применен к результирующей основной подматрице ТО1 в равенстве (42), после чего матрица Т примет вид:
7 =
Та,
Т{^
т'^
Тг
7 =
Та,
Т{^
т'^
Тг
Т'^ ; тх
Т'^ ; тх
(45)
(45)
Пусть матрица пропускных способностей ветвей (43) представлена в виде1
Са,
. С (t^
: С ^1)а2
с =
С' М
: С2
С(^2
|.(46)
С' (^1)а2
С' (/г)2
С,
где строки и столбцы подматриц Са2, С2 и С(/2) упорядочены так же как строки и столбцы подматриц Та^ Т^ и Т(/2) соответственно. Легко видеть, что сечение S2, соответствующее /2, содержит ветви, каждая из которых соединяет любую вершину из Na% с любой вершиной из М2, где вершины в NQ2 соответствуют строкам (столбцам) Та2, вершины в N2 соответствуют строкам (столбцам) Т2, и заключительная мощность /2 равна любому элементу в Т(/2). Отсюда ветви, пропускные способности которых находятся в С (t2), принадлежат S2. Если сечение, соответствующее /2, выделяет NQq из N, то S2 также содержит ветви, каждая из которых соединяет любую вершину из NUa и любую вершину из Nt (этой подсети соответствует подматрица Т^. Пропускные способности, соответствующие этим ветвям, являются элементами подматрицы С(/Г)а2. Отсюда /2 равно сумме пропускных способностей ветвей, являющихся элементами С(/2) и С^^. С другой стороны, если сечение, соответствующее /2, выделяет N2 из N путем удаления из N каждой ветви, входящей в сечение, то S2 должно содержать ветви, каждая из которых проведена между любой вершиной из N2 и любой вершиной из A/V Отсюда /2 равняется сумме пропускных способностей ветвей, являющихся элементами С(/2) и С(^)2.
Пусть S' будет сечением, выделяющим Na, из W, и S2 будет сечением, выделяющим N2 из N. Тогда ответ на вопрос, будет
ли S' или S" сечением, соответствующим /2, зависит от того, будет или нет сумма пропускных способностей, соответствующих ветвям из S', меньше, чем сумма, пропускных способностей ветвей, соответствующих ветвям из S". Следовательно, /2 можно представить как2
4 = Ц сц Щ + min I V CijЦ сц (4)2 1,(47)
Д /I G /О j J
где через с^ (/2), с^ (/3)Оз и с^ (/3)2 обозначены элементы соответствующих матриц.
Пусть V [С^] означает сумму всех элементов подматрицы. Тогда (47) можно представить также в виде
к - V [С (/2)] + min { V [С (/JJ, V [С (/X)2J) •(48)
Предположим, что применение главного разбивающего процесса к Таг из (45) дает
т =
Та. i Г (4) '
ТАС) = Т3 i
Г (4)т.
т^а
.(49)
ТАТ)
Предположим также, что матрица С пропускных способностей ветвей из (46) разбита следующим образом:
Са3с (4)с ^й)а3С (^1)а3С' (4)С3С (^2)3С (^1)зС' V^a,С' (/2)3С2С (/г)2Cf (^1)а3CZ (^1)зCz (/3)2СгСа3с (4)с ^й)а3С (^1)а3С' (4)С3С (^2)3С (^1)зС' V^a,С' (/2)3С2С (/г)2Cf (^1)а3CZ (^1)зCz (/3)2Сг(50)(50)
Са3
с (4)
с ^й)а3
С (^1)а3
С' (4)
С3
С (^2)3
С (^1)з
С' V^a,
С' (/2)3
С2
С (/г)2
Cf (^1)а3
CZ (^1)з
Cz (/3)2
Сг
Са3
с (4)
с ^й)а3
С (^1)а3
С' (4)
С3
С (^2)3
С (^1)з
С' V^a,
С' (/2)3
С2
С (/г)2
Cf (^1)а3
CZ (^1)з
Cz (/3)2
Сг
(50)
(50)
Здесь строки и столбцы подматриц СОз, С3 и С (/3) упорядочены так же, как строки и столбцы подматриц ТОз, Т3 и Т (/3).
10*
Пусть NVN^N^ и Ntt3 — подсети, состоящие из вершин, представленных строками (и столбцами) подматриц 7\, Т^ Т3и Таз соответственно. Кроме того, пусть N (S^ и N (S3)2—подсети, полученные из сети N посредством сечения S3, соответствующего /3, где N (83)ь содержит Na3, a N (S3)2 содержит W3. Подсети Nx и W2 могут быть либо в N (83)ь либо в N (З3)2. Отсюда N (S^ и N (S3)2 удовлетворяют одному из следующих условий:
УУ(5з)1 содержит Na3. a N (S3)2 содержит Nu N2 и N3;
A^CS^ содержит Na3 и ^, a N (S3)2 содержит N2 и W3;
^(S^ содержит Na3 и N2, a W(S3)2 содержит Nx и W3;
N (S^ содержит Na3, NT и N2, a N (S3)2 содержит только N3.
Таким образом, сечение S3, соответствующее /3, удовлетворяет одному из следующих четырех условий:
8а состоит из ветвей, которые соединяют любую вершину из Na3 с любой вершиной из Nu N2 или N3;
Sb состоит из ветвей, соединяющих любую вершину из Na3 или Nv с любой вершиной из N2 или N3;
Sf состоит из ветвей, соединяющих любую вершину из Na3 или N2 с любой вершиной из W3 или Nx;
Sd состоит из ветвей, соединяющих любую вершину изМаз) Л\ или М2 с любой вершиной из N3.
Поскольку элемент с^ матрицы пропускных способностей представляет сумму пропускных способностей ветвей, которые соединяют вершины i и / в сети N, пропускные способности ветвей, соединяющие любую вершину из N (S3)L с любой вершиной из N (S3)2, являются элементами матрицы С, стоящими на пересечении строк, представляющих вершины N (S3)lt и столбцов, представляющих вершины N (S3)2. Поэтому пропускные способности ветвей, образующих сечение Sa [указанное выше в условии (1)], являются элементами С, которые находятся на пересечении строк подматрицы Саз1 представляющих вершины подсети Na3> и столбцов подматриц Сь С2 и С3, представляющих вершины подсе-
тей Nv N2a N3 матрицах С (/3), являются прош
В соотно С (^2)3 и ( /СКНЫМИ с
Са3
шении (Е (Уз 1в шособнос
с^
50), т. е матрице :тями вс
СМ,
. все эле (51) они ех ветвей
С (^1)а3
менты в подподчеркнуты]
1 В So.
•(51)
С (У
Сз
с (у3
см
с (^)a3
С' (/2)з
С2
С (Q2
С (^1)а3
С' (^)з
С' (^2
Су
Отсюда значение Sa равно
V (SJ = V [С (Z3)l + V [С MJ + v [С MJ- (52)
Пропускные способности ветвей в Sb [см. условие (2) выше] — это элементы, которые находятся на пересечениях строк подматриц Саз и Clt представляющих вершины Naa и Nv и столбцов подматриц С2 и С3, представляющих вершины W2 и N3 [в (53) они подчеркнуты].
^3C (^2)03C (^i)a3C'H)C3C (/2)3CMCf (^2)^3Cz (/2)3C2C (^)2CZ (^i)a3Cf (^1)3c'MCl^3C (^2)03C (^i)a3C'H)C3C (/2)3CMCf (^2)^3Cz (/2)3C2C (^)2CZ (^i)a3Cf (^1)3c'MCl(53)(53)
^3
C (^2)03
C (^i)a3
C'H)
C3
C (/2)3
CM
Cf (^2)^3
Cz (/2)3
C2
C (^)2
CZ (^i)a3
Cf (^1)3
c'M
Cl
^3
C (^2)03
C (^i)a3
C'H)
C3
C (/2)3
CM
Cf (^2)^3
Cz (/2)3
C2
C (^)2
CZ (^i)a3
Cf (^1)3
c'M
Cl
(53)
(53)
Отсюда значение Sb равно
V (86) = ПС (/3)1 + V [С MJ + V [С' (MJ + v [С' ML (54)
Аналогично значения Sc и Sd равны
V (8С) = ИС М + V [С MJ + V VC (ш + V [С ML (55)
V (Sd) = V [С (/3)] + V [С' (/2)з1 + V [С' (^)3].(56)
Так как /3 есть
min {V(SJ, V(S»), V(SC), V(SJ}, то
t. = V [C (^)1 + min {V [C M,]+V IC MJ, V [C (^2)aJ H-У [C' (/^3]+
-LV[C'M1, VfCMj + VfC'Ml + viCM), V[C'M] + + ИС'М1}-(57)
Продолжая главный разбивающий процесс, мы получаем
(58)
Матрицу С представим в виде
Са6
с(у
с (^’-1)^
с kt А
Ск
С Vk-iAk
■ Ckt^
С(М6
С7 (^~1)/г
ск.г
С (4)a-i
С(^i)*_
C'kt2\
С'<^к
СГ (^2)^-1 :
G
■ см
С7 (У^ ;
C'kt^
С' ^1>к-1
' СМ
i ci
так чтобы упорядочение строк и столбцов Ть а также строк и столбцов Ct было одинаковым. Обозначим через Nb где / = 1, 2, ..., к, подсеть, состоящую из вершин, которые представлены строками (или столбцами) подматрицы Сь Аналогично пусть NQfe будет подсетью, соответствующей Са .
Сечения, необходимые для получения заключительной мощности tk, определяются следующим свойством: удаление этих сечений из N порождает две подсети N (S^ и N (S^, где N (S^ содержит Ма^ и N^S^ содержит Nk (рис. 5). Поскольку подсети Nv N^ ..., Nk-1 могут находиться либо в N (S^ либо в ^(S^a, существует 2A-1 различных пар N^S^ и N (S^)2, которые задают 2?;-1 возможных сечений, и минимальное значение этих 2й"1 сечений равно tk. Очевидно, что сумма всех элементов, которые в матрице С лежат на пересечении строк, представляющих вершины из N (8^, и столбцов, представляющих вершины из N (S*)2, равна значению сечения, удаление которого из N порождает Л-^ и NkSfeV
Рис. 5.
Пусть V будет значением сечения S, соответствующего паре подсетей N (Sk)r и N (Sk)2. Заметим, что Nt представляет Cz (это означает, что Nt состоит из вершин, представленных строками и столбцами Cz). Если Nt принадлежит N <8^ то по указанной выше процедуре вычисления V для получения элементов, ветви которых находятся в S, используются строки подматрицы Cz.
С другой стороны, если Nt находится в N (S^ то для получения элементов, ветви которых находятся в 8, используются столбцы подматрицы Cz. Например, если A^S^ состоит из подсетей Wa^ , N^ и Nv toN (S^ состоит из подсетей Nk, Nk_v . . ., N3. Значение сечения, соответствующего ^(S^h N (З^з, есть сумма элементов, принадлежащих подматрицам, подчеркнутым снизу в равенстве (60): "
акак(60)(60)
ак
ак
(60)
(60)
Поскольку для получения значений этих сечений всегда используются строки подматрицы С^ и столбцы подматрицы Ск, значение V любого из этих 2й-1 сечений можно записать в виде
где Vp - сумма элементов, которые в матрице С находятся на пересечении строк, представленных вершинами подсети N (3^, и столбцов, представленных вершинами подсети ^(З^, за исключением элементов, принадлежащих С (/.,). Отсюда Vp будет иметь 2W значений; обозначим их через V^ V2V2*-i. Тогда ^ может быть записано в виде
tb = V [С О + min (yv V2V^).(61)
Рассмотренный выше процесс получения матрицы пропускных способностей ветвей путем использования соотношения между матрицами С и Т проиллюстрируем с помощью следующего примера. Пусть матрица заключительных мощностей имеет вид
12 3 4 5
1122Т = 3Т = 344d994d9949d949d945 4 45 4 49 4 49 4 4d 4 44 d 44 4 d9 4 49 4 4d 4 44 d 44 4 d
1
1
2
2
Т = 3
Т = 3
4
4
d
9
9
4
d
9
9
4
9
d
9
4
9
d
9
4
5 4 4
5 4 4
9 4 4
9 4 4
d 4 4
4 d 4
4 4 d
9 4 4
9 4 4
d 4 4
4 d 4
4 4 d
1) Применим к Т главный разбивающий процесс:1) Применим к Т главный разбивающий процесс:Та \Т^T'to ТьТа \Т^T'to ТьгдегдеТТd 9 99 d 99 9 dd 9 99 d 99 9 dd 4d 4Матрицу пропускных способностей ветвей,Матрицу пропускных способностей ветвей,соответствующую Т,соответствующую Т,запишем в видезапишем в видеС =С =Са \С^Са \С^
1) Применим к Т главный разбивающий процесс:
1) Применим к Т главный разбивающий процесс:
Та \Т^
T'to Ть
Та \Т^
T'to Ть
где
где
Т
Т
d 9 9
9 d 9
9 9 d
d 9 9
9 d 9
9 9 d
d 4
d 4
Матрицу пропускных способностей ветвей,
Матрицу пропускных способностей ветвей,
соответствующую Т,
соответствующую Т,
запишем в виде
запишем в виде
С =
С =
Са \С^
Са \С^
С' (/J: Сь
Единственное ограничение на С (Д) состоит в том, чтобы сумма элементов С ((^ была равна tx = 4.
Пусть
1111СкЫ = оСкЫ = о1
1
1
1
1
СкЫ = о
СкЫ = о
О 1
ТогдаТогда
Тогда
Тогда
1 2 345
12С = 34512С = 345' 1 1
1
2
С = 3
4
5
1
2
С = 3
4
5
Со 0 1
: 0 1
10 0:„
111.
2) Так как /2 = 4, переупорядочим строки и столбцы матрицы С так, чтобы подматрица Сь, соответствующая Ть, стояла в ле-
вом верхнем углу:
45
1 2 3
4
а ; с(/2)
1 0 0
5
С'^\ d
1 1 1
С- 1
1 1
2
01
сп
3
01
Тогда /2 должно быть равно
/2^4 = V[C(/2)] + min (1,3),
или
С(^) = ||3||.
После этого матрица С примет вид
4 5
4d \ 3
53 : d
1 2 3
1 0 0
1 1 1
111
201
301
с„
Соответствующая ей матрица Т может быть записана следующим
образом:
4
5
1 2
3
4
d .
4 i
4 4
4
5
4:
d
4 4
4
Т 1
4
4 i
d 9
9
2
4
4 ;
9 d
9
3
4
4 ;
9 9
d
Так как t3 = 9, переупорядочим матрицу С еще раз:
1
2
1 2
3
\C^
4 5
: 1 1
; 0 1
C = 3
с'кц
d
; 0 1
4
1 0
0
; d 3
5
1 1
1
i 3 d
Тогда t3 = 9 = S си (/3) + min (3, 1), откуда S си (td] = 8. idPi
тогдатогдаПусть
тогда
тогда
C(t3) =
1 7
>
1 2
3
4 5
C
; 1
1 1
; ?
0 1
1 7
i d
0 1
i o
o
d 3
1 1
1
3 d
1
3
1
2
4
5
Соответствующая матрица заключительных мощностей примет вид
1 2 3 4 5
12Т = 34512Т = 345d i 9 i 9d i 9 i 99 j d\ 99 j d\ 94 44 44 44 49 9 i d i 4 49 9 i d i 4 44 4 4 i d 44 4 4 H d4 4 4 i d 44 4 4 H d
1
2
Т = 3
4
5
1
2
Т = 3
4
5
d i 9 i 9
d i 9 i 9
9 j d\ 9
9 j d\ 9
4 4
4 4
4 4
4 4
9 9 i d i 4 4
9 9 i d i 4 4
4 4 4 i d 4
4 4 4 H d
4 4 4 i d 4
4 4 4 H d
Так как t4 = 9, то
1
2
3
4
5
1
d
^од
: 1
1
1
2
ОД
■ d
: 7
0
1
С - 3
1
: 7
i d
0 1
4
1
; о
0
d
3
5
1
i 1
] 1
3
d.
Подсети, которые являются существенными для получения сечения, соответствующего t4,—это Nn, Nb, Nc и Nd, где Na состоит из вершины 1, Nb состоит из вершины 2, Nc состоит из вершины 3 и Nd состоит из вершин 4 и 5. Подматрицы, соответствующие Na, Nb, Nc и Nd, в следующем представлении матрицы С подчеркнуты:
1
1
d
2
ОД:
3
1
4
: 1
5 ।
1
2
ОД
i d ;
7
: 0
1
3
1 i
7
d
: 0
1
4
1 :
o i
0
i d
3
5
1
1 •
1
: 3_
d
Следовательно, существуют 4 сечения, по крайней мере одно из которых представляет собой сечение, соответствующее Ц. Предположим теперь, что N есть сеть связи с данной матрицей заключительных мощностей Т. Тогда любое из этих сечений порождает две подсети ^(S^i и W(S4)2. Существует 4 различных пары Ж8^х и jV(S4)2, а именно: .
2V(S4)i содержит Na, a N^S^ содержит Nb Nc и Nd;
W(S4)i содержит Ntt и Nc, a N^S^ содержит Nb и Nd.
A/(S4)i содержит Nn и Nd, a N^S^ содержит Nb и Nc.
^(S4)1 содержит Na, Nc и Nd, a A/XS4)2 содержит N b.
Значение сечения, удаление которого из N порождает ;V(S4)i и ^(S4)2, равно: в случае 1) — сумме элементов, которые в матрице С находятся на пересечениях строки 1 и столбцов 2, 3, 4, 5; в случае 2) — сумме элементов, которые в матрице С находятся на пересечениях строк 1 и 3 столбцов 2, 4 и 5; в случае 3) — сумме элементов, которые находятся на пересечениях строк 1, 4 и 5 и столбцов 2 и 4; наконец, в случае 4) — сумме элементов, стоящих на пересечениях строк 1, 3, 4 и 5 и столбца 2. Отсюда
/4 = 9 - V[C(/4)] + min (3, 10, 3, 8),
или
С(М -!|6|!.
Таким образом,
1 2 3 4 5
1212С- 3С- 3454561116d70117d01100d31113d61116d70117d01100d31113d
1
2
1
2
С- 3
С- 3
4
5
4
5
6111
6d701
17d01
100d3
1113d
6111
6d701
17d01
100d3
1113d
Соответствующая сеть связи показана на рис. 6.
ЛИТЕРАТУРА
F о г d L. R., Fulkerson D. R., Maximum flow through a network, Can. J. Math., 8 (1956), 399—404.
D a n t z i g G. B., F u 1 k e r s о n D. R., On the min-cut max-flow theorem in networks, Ann. Math. Studies, 38 (1956), 215—222. (Русский перевод: сб. Линейные неравенства и смежные вопросы, ИЛ, М., 1959, стр. 318—324.)
Elias Р., F е i n s t е i n A., S h a n п о n С. E., A note on the maximum flow through a network, IRE Trans, on Information Theory, IT-2 (1956), 117—119. (Русский перевод: сб. Шеннон К-, Работы по теории информации и кибернетике, ИЛ, М., 1963, стр. 729—734.)
Р. Т. Цзянь
В статье дается систематический метод реализации сетей связи из их матриц заключительных мощностей. Доказывается, что среди всех сетей, удовлетворяющих одной и той же матрице заключительных мощностей, сеть, полученная с помощью этого алгоритма, имеет минимальную суммарную пропускную способность ветвей. Доказывается также, что если матрица заключительных мощностей не определена, то при заданной суммарной пропускной способности ветвей суммарная заключительная мощность будет наибольшей, как только будут равными все заключительные мощности.
Введение
Рассмотрим любую систему передачи с множеством конечных пунктов, например сеть связи, систему распределения энергии, сеть дорог, или любую аналогичную им систему. Их структуры топологически эквиваленты, так как каждая такая система может быть представлена графом; вершины графа соответствуют конечным пунктам, а соединениям между пунктами соответствуют взвешенные ветви. Вес, или пропускная способность ветви), означает максимально возможную скорость потока по каналу. Поскольку все эти системы имеют общее представление, к любой из них применимы результаты, полученные из рассмотрения графа.
В этой работе в качестве модели будет рассмотрена сеть связи, поскольку это понятие занимает важное место в современной науке и технике.
А. Матрица пропускных способностей ветвей и матрица заключительных мощностей. Свойства сети связи можно описать посредством двух матриц, а именно матрицы пропускных способностей ветвей и матрицы заключительных мощностей.
Матрица пропускных способностей ветвей — это симметричная квадратная матрица порядка п, где п— число узлов в сети. Лю-
бой элемент матрицы btj (i /) означает пропускную способность ветви, соединяющей непосредственно вершины i и /. Поскольку пропускные способности Ьи не определены, для всех i мы будем считать их равными некоторой постоянной величине и обозначать ее через d. Таким образом, матрица пропускных способностей ветвей сети связи, изображенной на рис. 1, будет иметь вид
Ьц612^13614614615^21622^23624624625^316 32^336з4634635641642^43644644645651652^536б4654655Ьц612^13614614615^21622^23624624625^316 32^336з4634635641642^43644644645651652^536б4654655d 1 0 0 5 1^220 0 2 d 3 1 0 2 3 d 2 5 0 1 2 d
Ьц
612
^13
614
614
615
^21
622
^23
624
624
625
^31
6 32
^33
6з4
634
635
641
642
^43
644
644
645
651
652
^53
6б4
654
655
Ьц
612
^13
614
614
615
^21
622
^23
624
624
625
^31
6 32
^33
6з4
634
635
641
642
^43
644
644
645
651
652
^53
6б4
654
655
(1)(1)Матрица заключительных мощностей — это также симметричная квадратная матрица порядка п. Каждый элемент 1и матрицы заключительных мощностей представляет собой максимально возможный поток от I к /. Как будет показано в разд. 2, матрица
(1)
(1)
заключительных мощностей сети связи, изображенной на рис. 1,
имеет вид
til tl2 ^13 tl4 tl5 t^l t^ Z23 ^24 ^25 ^31 ^32 ^33 ^34 ^35 ^41 ^42 ^43 ^44 ^45 ^51 ^52 ^53 ^54 ^55til tl2 ^13 tl4 tl5 t^l t^ Z23 ^24 ^25 ^31 ^32 ^33 ^34 ^35 ^41 ^42 ^43 ^44 ^45 ^51 ^52 ^53 ^54 ^55d 4 4 4 6
til tl2 ^13 tl4 tl5 t^l t^ Z23 ^24 ^25 ^31 ^32 ^33 ^34 ^35 ^41 ^42 ^43 ^44 ^45 ^51 ^52 ^53 ^54 ^55
til tl2 ^13 tl4 tl5 t^l t^ Z23 ^24 ^25 ^31 ^32 ^33 ^34 ^35 ^41 ^42 ^43 ^44 ^45 ^51 ^52 ^53 ^54 ^55
4 d 5 5 4
(2)(2)4 5 d 6 4
(2)
(2)
4 5 6 d 4
Рис. 1. Сеть связи.Рис. 1. Сеть связи.6 4 4 4 d
Рис. 1. Сеть связи.
Рис. 1. Сеть связи.
Поскольку для сети связи матрица пропускных способностей ветвей задает математическое описание ее физической структуры,
в то время как матрица заключительных мощностей определяет некоторую меру полезности этой сети, задача анализа по существу состоит в том, чтобы для данной матрицы пропускных способностей ветвей отыскать соответствующую матрицу заключительных мощностей. В задаче синтеза по данной матрице заключительных мощностей ищется соответствующая матрица пропускных способностей ветвей (рис. 2). В процессе синтеза получается
Матрица пропускных способностей
Анализ
Матрица заключительных мощностей
Синтез
Рис. 2. Соотношение между матрицей пропускных способностей ветвей и матрицей заключительных мощностей.
не единственная сеть. Обычно из одной матрицы заключительных мощностей можно получить много различных сетей. Однако для данной матрицы пропускных способностей ветвей матрица заключительных мощностей единственна.
Б. Три представляющие интерес прэблемы. Сеть связи удобно характеризовать посредством матрицы заключительных мощностей. Резонно предполагать, что нс каждая симметричная матрица может быть матрицей заключительных мощностей. Решить вопрос о том, какого вида матрица реализуема, можно с помощью исследования необходимых и достаточных условий представления квадратной симметричной матрицы как матрицы заключительных мощностей. Один ответ на этот вопрос был недавно найден Май- сдой [1]. Кратко он будет рассмотрен в разд. 2А.
Если мы знаем, что определенная матрица реализуема как матрица заключительных мощностей, то естественно задать вопрос: как с помощью систематического способа найти соответствующую матрицу пропускных способностей ветвей, такую, чтобы суммарная пропускная способность ветвей была наименьшей? Теоретически для любой реализуемой матрицы заключительных мощностей всегда можно найти матрицу с минимальной пропускной способностью ветвей. Однако без систематического метода необходимая для этого работа может оказаться невыполнимой.
В разд. 3 описан систематический метод непосредственного синтеза. Показано, что получаемая при этом методе суммарная пропускная способность ветвей минимальна. Дальнейшее изучение метода синтеза, содержащее пояснения некоторых интересных свойств реализации, проводится в разд. 4.
Интересные проблемы возникают, если задание заключительной мощности либо невозможно, либо не имеет смысла. Такими являются случаи, когда мы рассматриваем систему оповещения войск, систему связанных между собой каналов и водохранилищ для регулирования паводковых расходов или систему для распределения и резервирования электроэнергии. Во многих таких случаях заключительные мощности либо неизвестны, либо изменяются со временем. Эффективность системы такого вида лучше всего измеряется посредством заключительного индекса1 >
1 = ^^. (3) i<i
Задача теперь состоит в том, чтобы получить матрицу заключительных мощностей с максимальным индексом при условии, что суммарная пропускная способность ветвей и порядок матрицы фиксированы. Найдено, что когда используется метод синтеза, изложенный в разд. 3, индекс любой матрицы можно увеличить до максимума, который достигается в случае равенства всех 1ц. Эти вопросы подробно обсуждаются в разд. 5.
Для доказательства теорем, приведенных в этой работе, не требуется никаких предварительных математических сведений. Тем нс менее, неподготовленному читателю изложенное здесь может показаться более интересным, если он опустит все доказательства.
Некоторые свойства сети связи
А. Соотнсшения между матрицей пропускных способностей ветвей и матрицей заключительных мсщностей. При исследовании соотношений между матрицей пропускных способностей ветвей и матрицей заключительных мощностей полезно понятие сечения. Сечение St есть совокупность таких ветвей, что после их удаления граф разбивается на два не связанных между собой подграфа, причем никакое собственное подмножество множества Sz этим свойством не обладает. Поскольку каждой ветви в сети поставлено в соответствие положительное число — пропускная способность ветви, мы можем определить значение сечения как сумму всех пропускных способностей ветвей в сечении
Csk = 5j ^ij * (4)
bij € $k
т) Это определение индекса дано Майедой.
где Cs^ означает мощность сечения. Символом к^^м будем обозначать сечение, разбивающее граф на две части таким образом, что одной части всегда принадлежит данная вершина i, а другой— данная вершина /.
Заключительную мощность между парой вершин теперь можно определить посредством пропускных способностей ветвей следующим образом:
^4°^ ].^4°^ ].(5)(5)
^4°^ ].
^4°^ ].
(5)
(5)
Другими словами, заключительная мощность между I и j ограничена мощностью сечений, разделяющих вершины i и j. Сечение, которое имеет наименьшую мощность, является узким местом для потока информации от i к /.
Р и с. 3. Сечения, разделяющие вершины у2 и и3. Ветви сечений обозначены жирными линиями.Р и с. 3. Сечения, разделяющие вершины у2 и и3. Ветви сечений обозначены жирными линиями.
Р и с. 3. Сечения, разделяющие вершины у2 и и3. Ветви сечений обозначены жирными линиями.
Р и с. 3. Сечения, разделяющие вершины у2 и и3. Ветви сечений обозначены жирными линиями.
Для того чтобы определить t^, мы должны оценить мощность всех сечений, разделяющих г и j. Например, заключительная мощность /2з матрицы (2) определяется как минимум мощностей шести сечений, разделяющих вершины 2 и 3. Эти шесть сечений показаны на рис. 3.
Б. Необходимое и достаточное условие и разбивающий процесс. Как отмечалось в предыдущем разделе, из матрицы пропускных способностей ветвей получается единственная матрица заключительных мощностей. Обратный же процесс не только не един-
ствен, но иногда и невозможен, поскольку некоторые матрицы нельзя реализовать как матрицы заключительных мощностей. Рассмотрим кратко условие реализуемости Майеды [1].
Поскольку заключительные мощности выражаются через мощности сечений, а значение t}j определяется как некоторый минимум, должно быть сечение S^ значение которого является наименьшим среди всех сечений графа. Это сечение будет разбивать граф на две части, Ga и Gb. Пусть одна часть будет содержать к, а другая п— к вершин. Заключительные мощности ty для всех I^Ga и всех j^GB будут иметь значение 1Ъ равное мощности сечения SP
Это обстоятельство наводит на мысль, что после переупорядочения матрицу Т можно записать в следующей форме:
(6)(6)TG a- TAti)
(6)
(6)
ТЛ^ Tgb
где 7\— матрица, все элементы которой равны tv аТоА и Tqb— матрицы заключительных мощностей соответственно для Ga и Gb • Если занумеровать вершины так, что Ga принадлежат все вершины с 1 по к, a GB — с к + 1 по и, то
616.2 •• ^1к6 • •• 66162 •. Л^к6 • •• 6^к!6.2 •• ^кк6 • •• 666 • •6+1,м-1 '' * 6+1,/г6• 6inn616.2 •• ^1к6 • •• 66162 •. Л^к6 • •• 6^к!6.2 •• ^кк6 • •• 666 • •6+1,м-1 '' * 6+1,/г6• 6innТ -Т -(7)(7)
61
6.2 •
• ^1к
6 • •
• 6
61
62 •
. Л^к
6 • •
• 6
^к!
6.2 •
• ^кк
6 • •
• 6
6
6 • •
6+1,м-1 '
' * 6+1,/г
6
• 6
inn
61
6.2 •
• ^1к
6 • •
• 6
61
62 •
. Л^к
6 • •
• 6
^к!
6.2 •
• ^кк
6 • •
• 6
6
6 • •
6+1,м-1 '
' * 6+1,/г
6
• 6
inn
Т -
Т -
(7)
(7)
Представление матрицы (6) в виде равенства (7) позволяет более ясно представить себе структуру матрицы заключительных мощностей, в то время как форма (6) предпочтительнее с точки зрения простоты записи.
Полученные Майедой необходимые и достаточные условия формируются довольно просто: 1) после переупорядочения Т имеет следующий вид:
Тад Л
Л Тсв
(8)
где все элементы подматрицы Т\ равны tv а любой элемент подматриц Tqa и ТОв удовлетворяет неравенству
ty > к;(9)
^Тод hTGb в свою очередь являются матрицами заключительных мощностей.
Заметим, что для графа, имеющего только две вершины, всегда существует матрица заключительных мощностей. При заданной матрице такой процесс разбиения должен продолжаться до тех пор, пока все подматрицы не будут иметь второй порядок.
Пример. Пусть
d 4 4 4 6
4 d 5 5 4
4 5 d 6 4
4 5 6 d 4
6 4 4 4 d
Очевидно, что после переупорядочения мы
ставить в виде
где
(10)
можем матрицу Т пред
(11)
Поэтому Т— матрица заключительных мощностей.
В. Синтез путем произвольного выбора. Перейдем теперь к синтезу. Поскольку мы теперь знаем, что наименьшее из значений сечений равно четырем, запишем матрицу пропускных способностей ветвей в следующем виде:
В =В =ВОд BvВх BqbВОд BvВх Bqb(12)(12)
В =
В =
ВОд Bv
Вх Bqb
ВОд Bv
Вх Bqb
(12)
(12)
Поскольку
(13)(13)(14)(14)625 Т" 621 Г 635 + ^31 + 645 + 641 — 4,
(13)
(13)
(14)
(14)
положим произвольно
625 “ О,t>21 —1 ,
635 = 1 >6д^ =О,
645 = 2,641 =0.
(15)(15)После этого матрица пропускных способностей ветвей примет вид
(15)
(15)
0 1
Вс.
1 0
в =
2 0
0 1 2
100
Вбв
Рассмотрев все сечения, разделяющие вершины 1 и 5, получим 651 = 5.. Вновь перебрав все сечения, разделяющие 2 и (3,4), получим
623 + 624-4. (16)
Ясно, что при таком методе синтеза число сечений, которые следует проверять, с ростом порядка матрицы растет очень быстро. Кроме того, такой метод не позволяет наилучшим образом использовать свободу при распределении пропускных способностей ветвей.
С этой точки зрения было бы весьма желательно иметь простой и систематический метод, с помощью которого можно получать распределение минимальной суммарной пропускной способности ветвей.
Такой метод рассматривается в следующем разделе.
Простой систематический метод минимальнойреализации данной матрицы заключительныхмощностей
Метод. Приведенный здесь метод основан на разбивающем процессе. Лучше всего его можно описать с помощью разбиения графа.‘
Предположим, что данная матрица уже разбита и представлена в следующей форме:
Tga ТПУт = ,TGb
Тогда, как показано на рис. 4, соответствующий ей граф будет также разбит на две части. Предположим затем, что Од снова
Рис. 4. Вид графа после первого разбиения.
разбит на Gc и Gd и что ^ разделена на две равные части (рис. 5).
Пусть теперь матрица разбита на к частей и на следующем шаге подлежит разбиению один из к подграфов. На рис. 6 Gk означает подграф, подлежащий разбиению на следующем шаге. Процесс будет тот же самый, т. е. каждая пропускная способность ветви делится на две равные части, одна из которых связана с Gk , а другая с Gk. Пропускная способность Ькк определяется разностью
bk,k2 =2" S blk.(18)
i=\
Граф, получающийся на к + 1-м шаге, показан на рис. 66.
Поскольку необходимое и достаточное условие основано также на разбивающем процессе, возможность разбить данную реализуемую матрицу гарантирована.
Весь описанный здесь процесс можно сформулировать как простое эмпирическое правило.
Правило. При каждом разбиении все пропускные способности ветвей, объединенных в подграф, который подлежит разбиению, делятся поровну между двумя получаемыми подграфами. Пропускная способность новой ветви определяется разностью между новой заключительной мощностью и половиной первоначальной пропускной способности ветвей между подграфом, подлежащим разбиению, и всеми остальными подграфами.
Рис. 7. Пример синтеза методом последовательных разбиений.
13 Заказ № 102
Б. Пример. Возьмем снова приведенную выше матрицу заключи»
тельных мощностей,
которая после переупорядочения имеет вид
/22
^23 ^24. ^25 ^21
d 5 5 4 4
^32
^33 ^34 ^35 ^31
5 d 6 4 4
т = и
^43 ^44 ^45 ^41
5 6 d 4 4
•(19)
^52
^53 ^54 ^55 ^51
4 4 4 d 6
^12
^13 ^14 ^15 ^11
4 4 4 6 d
Реализация графа последовательными шагами показана на рис. 7.
Суммарная пропускная способность ветвей равна
ьт = 14 -Г(20)
(ср. с первоначальным значением 16, полученным в результате реализации, приведенной на рис. 1).
В. Доказательство. Покажем, что получившаяся в результате сеть удовлетворяет данной матрице заключительных мощностей.
На первом этапе матрица Т была представлена в следующей форме:
В этом случае матрица пропускных способностей ветвей и матрица заключительных мощностей совпадают. Соответствующий граф показан на рис. 8. Прежде чем продолжать процесс разбие-
Р и с. 8. Вид графа после первого разбиения.
ния, переупорядочим, во-первых, матрицу так, чтобы подматрица, подлежащая дальнейшему разбиению, находилась в левом верхнем углу. После первого разбиения матрица заключительных мощностей примет следующий вид:
Tgc |t2(/2)
T —
т;ш tGd
♦
(22)
Tqb
матрица В примет видматрица В примет видВсеbcDЬсвBGC/22 2.В =ЬсОBqdЬов=t(12^Gd^12ЬсвЬовBgbA 2A2BqbВсеbcDЬсвBGC/22 2.В =ЬсОBqdЬов=t(12^Gd^12ЬсвЬовBgbA 2A2BqbВ соответствии с нашим методом синтезаВ соответствии с нашим методом синтеза(23)(23)
матрица В примет вид
матрица В примет вид
Все
bcD
Ьсв
BGC
/2
2 2.
В =
ЬсО
Bqd
Ьов
=
t(1
2
^Gd
^1
2
Ьсв
Ьов
Bgb
A 2
A
2
Bqb
Все
bcD
Ьсв
BGC
/2
2 2.
В =
ЬсО
Bqd
Ьов
=
t(1
2
^Gd
^1
2
Ьсв
Ьов
Bgb
A 2
A
2
Bqb
В соответствии с нашим методом синтеза
В соответствии с нашим методом синтеза
(23)
(23)
где Ьи означает сумму пропускных способностей всех ветвей, соединяющих подграфы I и J. Очевидно, что значение сечения, разбивающего Gc и GD, равно
(24)(24)/2 —4г + min f4h "т) = ^-
(24)
(24)
Пусть теперь сеть построена вплоть до к подграфов. Запишем матрицы заключительных мощностей и матрицу пропускных способностей ветвей на ^-м шаге: *
TGfe тйк
(матрица TQk составлена из заключительных мощностей 1ф где i£Gk и j^Gq). Матрица пропускных способностей имеет вид
3°k^6, k-\bk, k-2 • • •bk, 1к, k—\°k-lbk-A, k-2 • •• bk-\, 1к, 1bk-\, 1bk-^, 2 • • •3°k^6, k-\bk, k-2 • • •bk, 1к, k—\°k-lbk-A, k-2 • •• bk-\, 1к, 1bk-\, 1bk-^, 2 • • •(26)(26)
3°k
^6, k-\
bk, k-2 • • •
bk, 1
к, k—\
°k-l
bk-A, k-2 • •
• bk-\, 1
к, 1
bk-\, 1
bk-^, 2 • • •
3°k
^6, k-\
bk, k-2 • • •
bk, 1
к, k—\
°k-l
bk-A, k-2 • •
• bk-\, 1
к, 1
bk-\, 1
bk-^, 2 • • •
(26)
(26)
Следующим шагом мы разбиваем Gk на Gk и Gk . Тогда матрица заключительных мощностей примет вид
13 е
TC °k1
T
1 kvk^
T
1 Okt
T^k.
Tr
Gk1
T
1 0k2
T’
1 0k2
тг
Go
(27)
Согласно описанному в разд. ЗА методу синтеза, матрица пропускных способностей ветвей примет вид к—\
k* 2 Zj bkl2• • • ~2—
Z=1 k—\ L V hb^,k \ bk,\
B =~(28)
bG1
Чтобы показать, что данная матрица В действительно даст желаемую матрицу Т, используем следующий аргумент. Совокупность подграфов Glt Оъ .. ., Gk_x будем рассматривать как части графа Go- Ветвь, которая первоначально соединяла Gk и любой из подграфов Gv G^ ... , Gk_v будем рассматривать как ветвь, соединяющую просто Gk и Go. Сечение, определяющее заключительную мощность 1к1кг> должно содержать элемент Ьк1кй. Предположим, что мы рассматриваем три сечения 51э S2 и S3, как показано на рис. 9. Пусть GOi и G02 — результирующие подграфы для Go.
Рис. 9. Возможные сечения на ^-м разбиении. Ветви сечений обозначены жирными линиями.
Очевидно, что как результат процедуры синтеза справедливы следующие соотношения:
а + b =4"Z b^ ь
z-i(29)
а также
а = с, b-d.
(30)
Поэтому мы имеем
к-\
Нс =-у 2 bfe, i.
Z=1
(31)
Это соотношение является следствием предлагаемого метода синтеза и не зависит от того, как S2 разбивает граф 60 на две части. Поэтому
min (С51, С5з X CSa,(32)
к-\
кг +1*^^
Поскольку t^ ^ tki для любого I, Ь^х ь2 всегда будет иметь неотрицательное значение. По индукции реализация удовлетворяет данной матрице заключительных мощностей. Доказательство того факта, что этот метод дает минимальную пропускную способность ветвей, приводится в разд. 4. '
Дальнейшее изучение метода синтеза
А. Нижняя граница суммарной пропускной способности ветвей. При данной матрице заключительных мощностей можно найти нижнюю границу требуемой суммарной пропускной способности ветвей.
Предположим, что посредством какого-то метода синтеза мы провели реализацию; обозначим через wt (для всех Г) пропускную способность ветвей инцидентного множества1). Тогда из определения заключительной мощности для любой вершины / (/ Ф i) следует, что
wt
(34)
В частности,
Wi > tu. , где ^ui =max(^/) (t фиксировано).
(35)
(36)
J) Инцидентное множество есть множество ветвей, проведенных к данной вершине.
Просуммируем теперь выражение (35) по всем пропускным способностям ветвей всех п инцидентных множеств:
пп
2.(37)
1=1/=1
Левая часть неравенства есть удвоенная суммарная пропускная способность ветвей (каждая ветвь проведена между двумя вершинами). Поэтому
пП
2Ьт=^>^и.(38)
zlzlИЛИ/=1 L„x 1
zl
zl
(39)
Б. Представление разбивающего процесса в виде дерева. Поскольку матрица заключительных мощностей содержит всю информацию, необходимую для определения сети, и при условии применения описанного в разд. 3 метода результирующая сеть
Рис. 10. Представление графа, разбиение которого приведено на рис. 7, в виде дерева.Рис. 10. Представление графа, разбиение которого приведено на рис. 7, в виде дерева.
Рис. 10. Представление графа, разбиение которого приведено на рис. 7, в виде дерева.
Рис. 10. Представление графа, разбиение которого приведено на рис. 7, в виде дерева.
единственна, можно без фактического выполнения процедуры синтеза определить требуемую суммарную пропускную способность ветвей. Процесс определения довольно прост, но прежде чем перейти к его подробному изложению, необходимо описать
представление графа в виде дерева. Такое представление будет полезным в разд. 5. Дерево имеет следующий вид: каждый подграф представим в виде клетки, внутри которой содержится G. Справа от каждой клетки будем записывать заключительную мощность между двумя полученными из разбиения подграфами. Если подграф разбивается на два, то из соответствующей ему клетки проводим по одной линии к двум новым клеткам. Например, рис. 10 представляет дерево, соответствующее графу, изображенному на рис. 7..
Вообще, представление частного графа с п вершинами будет частью полного дерева порядка п. Будем считать, что дерево имеет порядок 1, если оно состоит только из одной вершины. Для того чтобы можно было проследить историю любого подграфа, будем использовать двойные индексы. Через GXo и GX1 будем обозначать два разбиения любого подграфа Gx .
Определение суммарной пропускной способности ветвей. Представление графа в виде дерева особенно полезно при определении суммарной пропускной способности ветвей, требуемой для реализации данной матрицы заключительных мощностей. В таком дереве пропускную способность ветви, которая добавляется при каждом разбиении, можно записать вдоль линии, соединяющей два подграфа любого разбиения. Если каждое такое разбиение состоит только из двух шагов, то любой подграф, имеющий более одной вершины, будет иметь модель разбиения, аналогичную показанным на рис. 11.
В случае I сумма пропускных способностей ветвей на самом нижнем уровне будет
(40)
В случае 11 значение той же суммы равно
t.xo^- G + Gi^- tx ~ Go + tx\ — tx.(41)
Заметим, что поскольку мы суммируем по соседнему более высокому уровню, вхэтих суммах всегда будет присутствовать член tx. Таким образом, поскольку мы суммируем по всем пропускным способностям ветвей, сумма будет равна
'1 кт = S + "2" 5 tx(42)
Gx0Gx[
(Gl4) и GX1 считаем вершинами).
Например, матрица заключительных мощностей
d 5 5 4
5 d 6 4
т =
5 6 d 4
4 4 4 d
4 4 4 6 будет требовать суммарной пропускной
4
4
4
6
d
способности
(43)
(44)
б^б + б+А^ 14^_.
Рис. 11. Две возможные структуры поддеревьев, рассмотренные в разд. 5В.
Другой способ выражения уравнения (42) такой:
Из разд. 4А следует, что если использовать метод, предложенный в разд. 3, то требуемая суммарная пропускная способность ветвей минимальна.
Г. Теорема. Суммарная пропускная способность зависит только от наибольшей заключительной мощности в каждой вершине. Это обстоятельство можно использовать для увеличения производительности связи без увеличения суммарной пропускной способности. Сформулируем это утверждение в виде следующей-теоремы.
Теорема. Пусть матрица заключительных мощностей представлена в виде
(46)(46)(47)(47)А Тгт; В
(46)
(46)
(47)
(47)
1ц < min (а-ф by);
(48)(48)если А и В — подматрицы, имеющие порядок, больший единицы, то без увеличения суммарной пропускной способности, требуемой для реализации матрицы, значение tLj можно сделать равным -
(48)
(48)
min (аф Ь^.
Рис. 12. Сеть связи, соответствующая матрице заключительных мощностей (49).Рис. 12. Сеть связи, соответствующая матрице заключительных мощностей (49).
Рис. 12. Сеть связи, соответствующая матрице заключительных мощностей (49).
Рис. 12. Сеть связи, соответствующая матрице заключительных мощностей (49).
В этом смысле улучшением матрицы (43) является матрица
d
5
5
5
5
5
d
6
5
5
т =
5
6
d
5
5
•(49)
5
5
5
d
6
5
5
5
6
d
Реализация матрицы (49)
показана
на
рис. 12. Легко проверить,
что суммарная пропускная способность в двух случаях одна и
та же.
Сети с неопределенной матрицей заключительных мощностей
А. Оптимальная для данной суммарной пропускной способности ветвей матрица заключительных мощностей. Как отмечается в разд. 1, во многих случаях матрица заключительных мощностей неизвестна. Определенный в разд. 1 индекс сети связи является мерой совокупной полезности сети связи. Пользуясь этим критерием, попытаемся найти матрицу заключительных мощностей, которая для данной суммарной пропускной способности ветвей давала бы максимальный индекс. Как и прежде, суммарную пропускную способность ветвей будем обозначать через Ьт , а число узлов в сети через п.
Если использовать предложенный в разд. 3 метод, то требуемую суммарную пропускную способность ветвей можно определить непосредственно из матрицы заключительных мощностей. Сглаживая разности в этих заключительных мощностях, можно сделать так, что индекс связи будет монотонно возрастать. Если все заключительные мощности равны, то индекс связи будет принимать наибольшее значение. Подробное доказательство этого утверждения приводится в разд. 5Б. Когда все заключительные мощности одинаковы, суммарные пропускные способности равны
Ьт = п-^- или t = 2bT ]п.(50)
Предположим, что мы рассматриваем сеть с одинаковой пропускной способностью на каждой ветви максимально связной сети. При этом заключительные мощности и суммарная пропускная способность имеют вид
(51)(51)Ьт = Ьп-^t = (п— 1)6,Ьт = ^1.
(51)
(51)
Таким образом, при одинаковой суммарной пропускной способности наибольшее значение индекса то же, что и у равномерно распределенной сети с максимальной связностью, и следовательно, при данной суммарной пропускной способности ветвей сети с п узлами можно ожидать, что средняя величина пропускной способности будет равна ^Ът/п.
Б. Доказательство. Если матрица заключительных мощностей задана, то можно построить представляющее ее дерево. Суммарная пропускная способность ветвей, требуемая для реализации, определяется как
(52)(52)
(52)
(52)
Предположим, что мы рассматриваем подграф О, который разбивается на Ga и Gb (рис. 13). Очевидно, что когда О содержит
Рис. 13. Представление первого разбиения графа в виде дерева.Рис. 13. Представление первого разбиения графа в виде дерева.
Рис. 13. Представление первого разбиения графа в виде дерева.
Рис. 13. Представление первого разбиения графа в виде дерева.
две вершины, подграфам G д и GB в сумме Ьт будут соответствовать одинаковые слагаемые, равные V2 t, и если / — индекс такого подграфа, то / = t и все t равны.
Предположим, что подграфы G А и GB содержат соответственно и и v вершин (u,v^> 1); предположим также, что в GA и GB все / одинаковы, т. е.
t = tA Для Ga ,
t tB для Gв .(53)
Тогда индекс этого подграфа есть
I — tA CU2 + ts С2 + tuv.(54)
Без потери общности можно предполагать, что tA<.ts> и путем сглаживания можно увеличить индекс.
12*
Мы видим, что суммарная пропускная способность ветвей, вносимая этим подграфом, есть
Ьт = и Ц- 'г v 4г ,(55)
откуда
*ut в = 2ЬТ — utA .(56)
Подставляя это значение у в (54), получаем
/ = ^^Л_/л +-^ (26г - UtA ) + tAUU = (у - 1)6Г + tA [ «у +
+- 1) bT + ^- ku + vY (57)
Это означает, что если увеличивать Ia kt а ^ 1в ), то индекс будет всегда увеличиваться,, тогда как суммарная пропускная способность ветвей будет оставаться постоянной. Наибольшее значение tA равно
Подставляя это значение в (57), в результате получаем
/ = („_,)6г+ »^2^_М[,_1+и)_
= bTk.u + v — 1).(59)
Тогда по индукции совокупный индекс можно сделать равным
I = bT<n-\^=W X>-t (60) при условии, что все t равны.
Поскольку представленный метод синтеза даст минимальную суммарную пропускную способность ветвей [как показано в выражении (60)], индекс будет максимальным для всех сетей с одной и той же суммарной пропускной способностью.
Заключительные замечания
В этой работе показано, что систематический метод синтеза возможен, если при своем применении он в равной степени касается всех ветвей.
Получен очень простой метод, использующий однородность распределения, который для данной матрицы заключительных
мощностей дает минимальную суммарную пропускную способность ветвей, причем ее можно выписать, фактически нс проводя процедуры синтеза. Суммарная пропускная способность ветвей есть сумма, в которой каждой вершине соответствует член, равный половине значения максимальной заключительной мощности, сопоставленной этой вершине. Показано также, что путем сглаживания разностей между заключительными мощностями можно увеличить индекс сети связи. Максимальный индекс получается в том случае, когда все заключительные мощности равны.
В работе предполагалось, что пропускные способности ветвей конечны. Это предположение по существу можно опустить, если рассмотреть новый граф, у которого каждое множество вершин, связанных друг с другом каналами с бесконечными пропускными способностями, считать одной вершиной. Этот новый граф будет сетью, имеющей только конечные пропускные способности.
Автор благодарит д-ра Гибсона за его постоянную поддержку, а также д-ра Майеду, собеседования с которым помогли выяснить целый ряд вопросов.
ЛИТЕРАТУРА
М а у е d a W., Terminal and branch capacity matrices of a communication net, IRE Trans, on Curcuit Theory, CT-7, № 3 (1960), 261—269. (Русский перевод см. на стр. 142—166 настоящего сборника.)
Elias Р., F е i n s t е i n A., Shannon С. Е., A note on the maximum flow through a network, IRE Trans, on Information Theory, IT-2 (1956), 117—119. (Русский перевод: сб. Ш e н н о н К., Работы по теории информации и кибернетике, ИЛ, М., 1963, стр. 729—734.)
F о г d L. R., Fulkerson D. R., Maximal flow through a network, Can. J. Math., 8 (1956), 399—404.
D a n t z i g G. B., Fulkerson D. R., On the min-cut max-flow theorem in networks, Ann. Math. Studies, 38 (1956), 215—222. (Русский перевод:, сб. Линейные неравенства и смежные вопросы, ИЛ, М., 1959, стр. 318—324.)
О. Уинг, Р. Т. Цзянь
Введение
В настоящей работе приводится решение задачи реализации сети связи с минимальной стоимостью. Сеть составлена из множества вершин, связанных множеством ветвей, через которые может осуществляться передача. Каждой ветви поставлен в соответствие максимально допустимый поток, называемый ее пропускной способностью. Требуемая величина потока (обслуживание, потребление) между любой парой вершин считается заданным. Заданы также единицы стоимостей пропускных способностей ветвей. Задача состоит в том, чтобы найти структуру сети и пропускные способности ветвей так, чтобы суммарная стоимость сети была бы минимальна.
Будут рассмотрены два случая. В первом случае все единицы стоимостей ветвей предполагаются различными, во втором случае все они одинаковы. Для отыскания оптимальной реализации в первом случае используются методы линейного программирования (см. разд. 3). Во втором случае мы даем некоторые минимальные реализации, полученные без использования линейного программирования. Реализации требуют меньшего числа ветвей, чем предложенные ранее методы (разд. 4).
Отмстим, что рассмотренная здесь проблема относится к транспортной задаче [1] и к задаче, рассмотренной Калаба и Хункоса [2].
Математическая модель
Сеть связи представляется линейным графом, в котором вершины соответствуют станциям, а ветви — линиям, соединяющим станции. Ветви, соединяющей вершину I и вершину /, поставим в соответствие две величины: пропускную способность btj и cvj— стоимость установленной единицы мощности между вершинами I и /. Предполагается, что сеть связи двусторонняя, так что
]) Wing О., Chien R. Т., Optimal synthesis of a communication net, IRE Trans, on Circuit Theory, CT-8, № 1 (1961), 44—49.
Ьи- = bjt и c^ = cjv Сети соответствует система потребности, выраженная заключительными мощностями 1ф — матрица заключительных мощностей Тх
tny • • • tnn
где tu = d— произвольная положительная постоянная величина, ltj = ^п— требуемая мощность потока между входом I и выходом / системы и п—число вершин в системе [3]. Если задан граф вместе с пропускными способностями ветвей, то заключительная мощность tLj равна наименьшему из значений сечений, разделяющих вершины i и j [4, 5].
Множество пропускных способностей ветвей можно представить в виде матрицы пропускных способностей ветвей В*.
bnY . . . bnn
где Ь^ — Ьц— пропускная способность ветви, соединяющей вершины I и j nbu~d[3]. Если* матрица пропускных способностей ветвей В задана, то соответствующий ей граф единствен, и обратно, каждому графу соответствует единственная матрица пропускных способностей ветвей. Следует заметить, что если граф нс является максимально связным, то некоторые Ь^ + Ь равны нулю.
Проблема синтеза может быть теперь сформулирована следующим образом:, при условии, что матрица заключительных мощностей Т и множество единиц стоимостей ctj заданы, найти граф, матрица пропускных способностей ветвей которого В реализует Т таким образом, что совокупная стоимость 2 с^Ьц минимальна.
По своему физическому смыслу с.ф Ь^ и itj должны быть неотрицательны.
Если не рассматривать стоимости с.ф то проблема синтеза состоит просто в том, чтобы из данной матрицы Т получить матрицу В. Эта задача была решена Майедой [3] и Цзянем [6].
Существуют различные алгоритмы отыскания В. Это обстоятельство в свою очередь приводит к тому, что существует нс-
сколько сетей, удовлетворяющих требованиям, заданным матрицей заключительных мощностей.
Если в задачу ввести фактор стоимости, то существует по крайней мерс одна сеть, для которой суммарная стоимость минимальна.
Линейное программирование
Неизвестными в задаче являются величины Ьф число которых я (я—1)/2 равно числу ветвей в максимально связном графе.
В множестве всех сечений максимально связного графа рассмотрим сечение Sk. Сечение Sk разбивает граф на два подграфа Gx и О2. Подграф G1 может содержать 1, 2, . . . , или п— 1 вершин, поэтому общее число сечений равно 2Л-1— 1. Пусть Sk разбивает граф так, что Ох содержит вершины ир . . . , 1^,, а С2 — вершины ир+1, . . ., ип. По определению заключительной мощности вершины значение Sk должно быть по крайней мерс таким же, как максимум из множества р (д — р) заключительных мощностей t^, где i = 1, 2, . . ., р и / = р + 1, р + 2, . . ., п. Применяя этот принцип ко всем сечениям, получаем в результате 2Л"1—1 неравенств вида
Р п
22 b^ ^ max {^(p^i), ^(^+2), • •, tin' • • • > tptp^v^ tp^p-y^ ...
r=lj=p^X
(3)
В дополнение к этим неравенствам имеем
Ьц > О, f, / = 1, 2, . . . д.(4)
Задача теперь может быть сформулирована как задача линейного программирования следующим образом: требуется минимизировать суммарную стоимость системы
ILcyby
при ограничениях (3) и (4).
Для отыскания оптимального решения можно использовать симплекс-метод или какие-либо другие, модифицированные методы. В качестве примера рассмотрим построение сети с четырьмя вершинами, удовлетворяющей следующей матрице заключительных мощностей:
d 8 9 7
(5)(5)8 d 8 7
(5)
(5)
9 8 d 7
7 7 7 d
кроме того, совокупная стоимость
(6)(6)6i2 + 2613 + 2&14 + 2^3 “г 5&24 + 2^34
(6)
(6)
должна быть минимальной.
Выпишем ограничения на неизвестные [см. рис. 1 а]:
Рис. 1. Оптимальная реализация с неравномерной стоимостью матрицы Т вида (5).Рис. 1. Оптимальная реализация с неравномерной стоимостью матрицы Т вида (5).
Рис. 1. Оптимальная реализация с неравномерной стоимостью матрицы Т вида (5).
Рис. 1. Оптимальная реализация с неравномерной стоимостью матрицы Т вида (5).
(7)(7)612 + 613 + 614 > max {/12, /13, /14} = 9, 621 + 623 + 624 > max {/21, /23, /24) = 8, 631 + 632 + 634 > max |/31, /32, /34) = 9, 64i + 642 + 643 > max {/41, /42» /43} ^-7,
(7)
(7)
613 Ч~ 614 -]- &2з + 624 ^ max {/13, /14, /2з, /24) = 9, 612 Ч~ 614 Ч~ Ь«з2 Ч- 634 ^> max {/12, /14, /32, /34) ~ 8, 612 Ч~ 613 + 642 Ч~ 643 ^ max {/12, /13, /42, /43) ~ 9
и
6/у>0,/, /= 1, 2, 3, 4;/ ^ /.
Матрица пропускных способностей В, реализующая данную матрицу Т и минимизирующая стоимость системы, будет иметь вид
0
4
1,5
3,5
в =
4
0
4
0
1,5
4
0
3,5
3,5
0
3,5
0
Соответствующая стоимость системы равна 29. Сеть показана на рис. 1,6. Число неравенств равно 2П~1—1 и число неизвестных равно п (п—1)/2. Для любого реального п даже с использованием цифровой вычислительной машины, применяя симплекс-
метод, практически невозможно построить сеть с указанными выше условиями. Большое число нулей в неравенствах наводит на мысль, что возможны более эффективные методы отыскания оптимального решения.
Минимальная реализация в случае единственной стоимости
В частном случае, когда с^ = 1 для всех i ^ /, сеть, реализующую данную матрицу заключительных мощностей с минимальной стоимостью, можно получить без использования линейного программирования. Минимальная реализация при одинаковой стоимости приводилась и раньше [6]). Она представляет собой максимально связный граф, где число требуемых ветвей равно п\п— 1)/2 (п — число вершин). Мы покажем, что существуют другие минимальные реализации, в которых число ветвей много меньше.
Матрицу Т будем называть «элементарной матрицей заключительных мощностей», если ее можно представить в виде
(9)(9)d ty t^ t3 . . . tn_y ^i d t^ t3 . . . tn-v t^ t^ d t3 . . . tn_y ^з ^з ^з d . . . tn_x
(9)
(9)
^n-l ^п-1 ^n-1 ^n-1 . . . d
где tx > t^ > t3 > .. . > tn_y.
Следует заметить, что любая элементарная матрица заключительных мощностей удовлетворяет условиям Майеды) [3] и потому может быть реализована.
Мы утверждаем, что граф.на рис. 2 реализует элементарную матрицу заключительных мощностей порядка п за минимальную стоимость (при одинаковой единичной стоимости). Чтобы доказать это, вспомним), что в любой сети связи
2 (суммарная пропускная способность) >5 max Vtv • • •. ^i- (Ю)
Рассматривая рис. 2, мы замечаем, что в каждой вершине сечение удовлетворяет неравенству; поэтому граф фактически представляет собой минимальную реализацию. По той же причине граф на рис. 3 есть минимальная реализация элементарной матрицы заключительных мощностей. Этот граф дважды изоморфен графу, изображенному на рис. 2.
Рис. 2. Элементарная сеть, т. е. реализация элементарной матрицы Т.Рис. 2. Элементарная сеть, т. е. реализация элементарной матрицы Т.
Рис. 2. Элементарная сеть, т. е. реализация элементарной матрицы Т.
Рис. 2. Элементарная сеть, т. е. реализация элементарной матрицы Т.
Если матрицу заключительных мощностей можно представить в виде
/о • • • ^о
Рис. 3. Возможная реализация элементарной матрицы Т.
где t0 = min (t^) и Tv 1\ — элементарные матрицы заключитель
ных мощностей порядков соответственно к и п— к, то изображенный на рис. 4 граф реализует Т за минимальную стоимость.
Следует заметить, что между любыми двумя парами вершин можно провести две «связывающие» ветви. Если в Т\ (или Т2)
ветвь имеет пропускную способность, равную /0/2, то можно присоединить связывающие ветви к концам этой ветви для того, чтобы сделать сетевую мощность ветвей, соединяющих рассматриваемые вершины, равной нулю, а следовательно, уменьшить
11I
Рис. 4. Пример соединения элементарных сетей.
общее число ветвей. Возможная реализация указанной выше матрицы приводится на рис. 5.
Обобщение (11) на случай, когда матрица разбиваема на элементарные матрицы мощностей Tv T2t ..., Тр) очевидно. (Каждая реализуемая матрица заключительных мощностей является
Рис. 5. Другой пример соединения элементарных сетей.Рис. 5. Другой пример соединения элементарных сетей.
Рис. 5. Другой пример соединения элементарных сетей.
Рис. 5. Другой пример соединения элементарных сетей.
также разбиваемой на элементарные [3].) Минимальная реализация приводится на рис. 6, на котором каждая смежная пара из Tv . .., Тг реализуется способом, указанным на рис. 4 или на рис. 5.
Р и с. 6. Реализация посредством соединения элементарных сетей.
Число ветвей, требуемых в любой из двух минимальных реализаций равно по крайней мере 2п — Р— 2, где Р— число элементарных матриц заключительных мощностей в матрице Т. фактически это число будет меньше, если некоторые из пропускных способностей ветвей равны нулю. На рис. 7 показаны две минимальных реализации следующей матрицы заключительных мощностей (Р = 3):
(12)(12)
(12)
(12)
d121086
12d1086
1010d86
888d6
6666d
22222
22222
22222
22222
22222
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
2 2 2 2 2
d 14 12 \4 4
14 d 12 | 4 4
12 12 d i 4 4
4 4 4 ; d 8
4 4 4 8 d
6
Рис. 7. Две реализации матрицы Т вида (12).
К этой же проблеме можно подойти и по-другому, если заметить, что следующие условия являются необходимыми и достаточными для реализуемости матрицы Т.
Для некоторого к, ^СЫд
Т можно представить в виде
(13)
Каждая диагональная матрица квадратная.
Каждый элемент в недиагональных матрицах равен некоторой константе to.
Каждый элемент в диагональных матрицах либо равен dy либо больше, чем to-
Каждая диагональная подматрица либо состоит из единственного элемента d, либо обладает свойствами матрицы Т.
Можно показать, что эти условия эквивалентны необходимым и достаточным условиям Майеды [3]. Можно также показать, что разбиение (13) единственно (см. пример ниже). Это свойство единственности может быть использовано для точного определения числа ветвей, необходимых для реализации заданной матрицы 7\
Пример. Матрица
т =d65556d55555d55555d55555dт =d65556d55555d55555d55555d(И)(И)
т =
d6555
6d555
55d55
555d5
5555d
т =
d6555
6d555
55d55
555d5
5555d
(И)
(И)
по условиям Майеды [3] может быть разбита по крайней мере тремя различными способами:
d
6
5
5 5
d
6
5
5
5
d
6
5
5
5
6
d
5
5 5
6
d
5
5
5
6
d
5
5
5
T =
;5
5
d
5 5
5
5
d
5
5
—
5
5
d
5
5
, (15)
5
5
5
di5
5
5
5
d
5
5
5
5
d
5
5
5
5
5 id
5
5
5
5
d
5
5
5
5
d
в то время как согласно методу, кратко описанному выше, существует только один способ разбиения:
d66 d555555Т = 55d55555d55555dd66 d555555Т = 55d55555d55555d(16)(16)
d
6
6 d
5
5
5
5
5
5
Т = 5
5
d
5
5
5
5
5
d
5
5
5
5
5
d
d
6
6 d
5
5
5
5
5
5
Т = 5
5
d
5
5
5
5
5
d
5
5
5
5
5
d
(16)
(16)
Поскольку разбиение единственно, мы можем определить индекс разбиения, который является мерой сложности сети связи. Индекс разбиения Р' есть число операций, необходимых для разбиения матрицы Т, т. е. представления ее в форме, где каждая диагональная подматрица имеет порядок либо 2X2, либо 1X1 при
Р и с. 8. Кольцевые структуры и их соединение в процессе реализации.Р и с. 8. Кольцевые структуры и их соединение в процессе реализации.
Р и с. 8. Кольцевые структуры и их соединение в процессе реализации.
Р и с. 8. Кольцевые структуры и их соединение в процессе реализации.
условии, что подсчитывается применение каждой операции к каждой диагональной подматрице. В приведенном выше примере Р' = 1.
С помощью этого метода разбиения можно осуществить метод синтеза с минимальной стоимостью при относительно небольшом числе ветвей. Метод основан на кольцевой структуре, показанной на рис. 8,а. Если пропускная способность каждого элемента кольца равна в, то мощность между любыми двумя точками в кольце равна 2е. Используя кольцевую структуру, синтез любой матрицы Т выполняем следующим образом.
На первом шаге диагональные подматрицы первого разбиения рассматриваются как вершины кольца (каждый элемент кольца считается равным tJ2t т. е. половине пропускной способности первого разбиения). Для реализации каждой диагональной подматрицы образуется новое кольцо; каждая ветвь в новом кольце будет иметь пропускную способность IJ2 и лишь одна ветвь будет иметь пропускную способность, равную (^ — t0)l2. При этом одна и только одна ветвь отделяет новое кольцо от первоначальной кольцевой структуры (рис. 8,6). Для каждой подматрицы проделывается
такая же операция. Следует упомянуть лишь один специальный случай. Когда новое разбиение подматрицы имеет порядок 2, две ветви нового кольца можно объединить в одну.
Полученная реализация обеспечивает минимальную стоимость, поскольку каждое сечение удовлетворяет (10) в качестве неравенства.
Рис. 9. Сеть связи для матрицы Т вида (17).
Число ветвей, требуемых при таком методе, в точности равно
Рг + п— 1.
Это следует из того факта, что если все элементы Т равны, то
Р' 1
(в этом случае необходимы п ветвей), и из того факта, что дополнительная ветвь, прибавляемая каждый раз, образует новое кольцо.
Например, матрица
d 4 4
4 d 4
4 4 d
2 2 2
2 2 2
2 2 2
2 2 2
2 2 2
2 2 2
2 2 2
Т = 2 2 2
2 2 2
d 4 4
4 d 4
4 4 d
222
222(17)
222
2 2 2
2 2 2
2 2 2
2 2 2
2 2 2
2 2 2
d44'
4d4
44d
реализована на рис. 9.
Замечания
Мы представили здесь метод синтеза сети связи при одинаковой и неодинаковой стоимости. Метод линейного программирования в данном случае весьма неэффективен, и заслуживают исследования простые алгоритмы, сравнимые с методами, используемыми в транспортной задаче [9— И]. Постановка задачи должна выглядеть более реально. Например, совокупная стоимость, вообще говоря, нс является линейной функцией пропускных способностей ветвей, а заключительные мощности ty в действительности должны быть случайными величинами. Наконец, следует рассмотреть случай ориентированного потока ^btj ф bj^.
Отмстим далее, что минимальные реализации при условии одинаковой стоимости требуют меньшего числа ветвей, чем об этом сообщалось раньше. Определение минимального числа ветвей, требуемых при минимальной реализации все еще остается нерешенной проблемой.
ЛИТЕРАТУРА
Hitchcock F. L., The distribution of a product from several sources to numerous localities, J. Math, and, Phys., 20 (1941), 224—230.
К a 1 a b a R. E., J u n с о s a M. L., Optimal design and utilization of communication networks, Management Set., 3 (1956), 33—44.
M a у e d a W., Terminal and branch capacity matrices of a communication net, IRE Trans, on Circuit Theory, CT-7 (I960), 261—270. (Русский перевод см. в настоящем сборнике, стр. 142—166.)
Ford L. R., Fulkerson D. R., Maximal flow through a network, Can. J. Math., 8 (1956), 399—404.
E 1 i a s P., F e i n s t e i n A., Shannon С. E., A note on the maximal flow through a network, IRE Trans, on Information Theory, IT-2 (1956), 117—119. (Русский перевод см. в сб. Шеннон К., Работы по теории информации и кибернетике, ИЛ, М., 1963, 729—734.)
С h i е n R. Т., Synthesis of a communication net, IBM J., 4 (1960), 311 — 320. (Русский перевод см. в настоящем сборнике, стр. 167—189.)
G a s s S. I., Linear programming, McGraw Hill, N. Y., 1958. (Русский перевод: Гасс С. И., Линейное программирование (методы и приложения), Физматгиз, М., 1961.)
Whitney Н., 2-Isomorphic graphs, Am. J. Math., 55 (1933), 245— 246.
F о r d L. R., Jr., Fulkerson D. R., Solving the transportation problem, RAND Corp., Santa Monica, RAND Rept. RM-1736, 1955.
C h a r n e s А., С о о p e r W. W., The stepping-stone method of explaining linear programming calculations in transportation problems, Management Sci., 1 (1955).
D a n t z i g G. B., Application of the simplex method to a transportation problem, in «Activity Analysis of Production and Allocation» (К о op er ma ns T. C., ed.), Cowles Commission Monograph № 13, Wiley, N. Y., 1951.
М. Хелд, Р. М. Карп
Введение
Многие интересные и важные задачи оптимизации требуют нахождения наилучшего порядка выполнения данной системы операций. Настоящая статья посвящена решению трех таких задач упорядочения*, задачи расписания с произвольными функциями. стоимости, задачи о коммивояжере и задачи балансирования сборочных линий. Структура каждой из задач допускает решение посредством рекурсивных схем типа динамического программирования. В сущности, эти рекурсивные схемы позволяют рассматривать задачи с помощью сочетаний операций, которые должны быть выполнены, а нс их перестановок. Формулировки динамического программирования и обсуждение различных обобщений, таких, как наложение ограничений предшествования, приведены в разд. 1. В каждом случае предлагаемый метод решения эффективен с вычислительной точки зрения для некоторого ограниченного круга задач. Для больших задач могут быть получены приближенные решения путем решения последовательности небольших подзадач, каждая из которых имеет ту же структуру, что и исходная. Детально этот метод последовательных приближений описывается в разд. 2, где особое внимание уделяется задаче о коммивояжере, а в разд. 3 приводится сводка вычислительных экспериментов с программой для машины ИБМ-7090, использующей этот метод.
Формулировки задач
Задача расписания. Предположим, что в нашем распоряжении имеется система работ <7^ J2, • • •, А, которые должны последовательно выполняться на одной машине. При этом предполагается, что любая работа Jk требует для своего выполнения на машине т^ единиц времени. Кроме .того, с работой Jk связана функция ck (Z), определяющая стоимость завершения работы Jк в момент времени t. Мы предполагаем, что машина должна быть загружена постоянно и что никакая работа не прерывается до
г) Held М., Karp R. М., A dynamic programming approach to sequencing problems, J. Soc. Industr. and Appl. Math., 10, № 1 (1962), 196—210.
своего завершения1). При этих предположениях любой данный порядок выполнения работ {расписание) можно представить перестановкой {Ц, /2 , • • • , к) Целых чисел от 1 до п, показывающей, что работы должны выполняться в порядке J ^ , J^,.. . , J L . Если дано такое расписание, то время окончания 1{ работы Jt
k
равно 2Хи общую стоимость, связанную с этим расписанием,
можно записать в следующем виде:
п
Lc^(^).(1)
Найдем перестановку, для которой выражение (1) принимает свое минимальное значение С. Некоторые авторы рассматривали эту задачу для функций стоимости специального вида. Например, Мак-Нотон [9] анализировал случай, когда каждая функция ck{t) постоянна до некоторого момента времени, а затем линейно возрастает. Алгоритм динамического программирования, предлагаемый ниже, не требует никаких предположений о функциях стоимости.
Пусть S — \кг, к^. . . . kn{S}\ — подмножество множества {1, 2, . . . , п\; обозначим через ^величину 2 V Пусть С (S) —
минимальная стоимость выполнения работ J^v , J^ ,. .., Jkn^ в любом порядке в интервале [ 0, Zs]. Для Z(:S через S— / обозначим множество, полученное из S при выбрасывании из него /. Тогда можно вывести следующие рекуррентные соотношения, в которых С (S) для любого множества S выражается через значения С для- подмножеств S:
{n{S) = 1) : С ({/}) = ct (tz) для любого I;
{n{S)>\): C(S) = min [С (S — Z) + cz(^)].(2)
Проверим эти равенства. При оптимальном порядке выполнения работ с индексами из S [т. е. при порядке, который реализует стоимость С (S)] некоторая работа, скажем Jb должна быть выполнена последней, а остающиеся работы (с индексами из S — /) должны выполняться в оптимальном порядке в [0, Zs-zl- При таком упорядочении общая стоимость будет равна С(S—/) + c^ts).
Минимизируя по всем /, получаем равенство (26). Из этого следует, что упорядочение (/х, Z2, • •, Q оптимально тогда и только тогда, когда
С ({4, Ц^ • • •, ^}) “ С({ix, к, . . . , ip—\^ +
+{^, 4, • • • , ip } ) (2<p<n). (3)
Метод нахождения оптимального решения можно разделить на два этапа. На первом этапе рекурсивно по формулам (2) вычисляются величины C(S) для всех 5^(1, 2,. . . , п\\ С = — С({1, 2,..., п\). На втором этапе для получения оптимального упорядочения (/х, /2, • • •, U используется формула (3); in получается первым и затем последовательно /п^ь ^-2, • • •, к-
Основными требуемыми операциями являются сложения и сравнения, которые встречаются в равных количествах. Число сложений п
на первом этапе равно ^ к Ckn = п^- х; число сложений на втором
п
этапе не превышает ^ к = -^-3lD — 1. Если для каждого числа
С (S) требуется одна ячейка памяти, то требуемое число ячеек равно 2П— 1.
Задача о коммивояжере. Только что рассмотренная формулировка задачи расписания в терминах динамического программирования основана на том факте, что стоимость выполнения работы зависит только от того, какие работы ей предшествуют. Теперь мы рассмотрим задачу о коммивояжере, которая является примером стоимостной зависимости иного рода.
Задача о коммивояжере состоит в нахождении перестановки Р = (1, к, • • • , к) Целых чисел от 1 до п, которая минимизирует величину
апа + ^z2z3 + . • • + ^zni,(4)
где а^ — заданная система вещественных чисел. Точнее, так как нужно рассмотреть только ^п—1)! возможностей, то задача состоит в нахождении эффективного метода для выбора минимизирующей перестановки.
Название этой задачи связано с тем фактом, что коммивояжер, желающий, выезжая из своего дома, объехать кратчайшим путем каждый из п—1 заданных городов и вернуться домой, мог бы использовать такой метод, если бы ему были даны расстояния си^ между каждой парой городов его пути. Или же, если коммивояжер желает минимизировать общее время объезда, то а^ представляли бы времена проезда между городами [6].
Несмотря на то что абсолютно приемлемых численных методов решения задачи о коммивояжере не существует, было разработано несколько методов нахождения оптимальных или почти оптимальных решений. Однако эти методы, как правило, несколько громоздки, искусственны и трудны для программирования на вычислительных машинах. Обсуждение современного состояния задачи о коммивояжере можно найти в [1]. Дадим теперь формулировку этой задачи в терминах динамического программирования1).
Если Sc [2, 3,. . . , п} и l^Sf то пусть C(S, /) обозначает минимальную стоимость пути, начинающегося в городе 1, проходящего через все города множества S и заканчивающегося в городе /. Тогда
(a)(n(S) = l): С({/}, /) =аи для любого /;
(n(S) > 1) : C(S, /) = min[C(S —/, пг) + amlY (5> m^S—I
Для того чтобы в этом убедиться, предположим, что на пути, проходящем через города из S и оканчивающемся городом /, город т непосредственно предшествует городу /. Тогда, если остальные города обходятся в оптимальном порядке, то стоимость обхода равна C(S— l,tn) + am1. Взяв минимум по всем т, мы получаем (56). Наконец, если С обозначает минимальную стоимость всего пути, включая возвращение в город 1, то *
С = min [С({2, 3, . . . , п}, /) + а1Х\.(6)
/£ (2, 3, . . . , л }
Перестановка (1, Z2, г3,. . ., Ц оптимальна тогда и только тогда, когда
^ = С({2, 3,..., nV in) + ^nV(7)
и для 2<р<п— 1
С({^2> ^з, • • • , ip» Wib *p-i-i) “ С ({f2, i-з» • • • » ip]» ip) + atp ip^\. (8)
Как и в задаче расписания, для получения оптимального решения вычисление проводится в два этапа. На первом этапе по формулам (5) рекурсивно вычисляются величины C(S, /) и С вычисляется по формуле (6). На втором этапе для нахождения оптимальной перестановки используются формулы (7) и (8) (вначале определяется 1п, затем последовательно in_\, in-2» • • • » У-
т) Эта формулировка, независимо открытая авторами, совпадает, по существу, с формулировкой, предложенной Беллманом в [2].
Как и раньше, сложения и сравнения являются основными операциями, используемыми при вычислении. Число операций на первом этапе равно
п—1
У к (k - 1) C^1-r(n-l) = (n-l)(n-2)2^ + (n-l), 6=2
п— 1
а на втором этапе нс превышает ^ & =— — 1. Если на
2
каждое число С (S, /) отводится одна ячейка памяти, то требуется
л—1
1)2""2
к=\ ячеек.
Задача балансирования сборочных линий. В задачах расписания и о коммивояжере допускались все мыслимые расположения элементов (работ или городов). Во многих задачах упорядочения налагаются ограничения, которые препятствуют появлению некоторых расположений. Преимущество подхода с точки зрения динамического программирования состоит в том, что такие ограничения скорее облегчают, чем затрудняют решение. Мы проиллюстрируем это утверждение рассмотрением задачи балансирования сборочных линий, поставленной Сальвесоном [10].
Для каждой единицы продукта на сборочной линии необходимо выполнять систему работ, обозначаемых через Jv J^..., Jn. Данная работа Jk требует для своего выполнения ^к единиц времени и может быть приписана любому из рабочих мест, расположенных в ряд вдоль сборочной линии. Требуется произвести такое назначение, что:
/z, сумма времен выполнения работ, приписанных t-му рабочему месту, не должна превосходить времени цикла Т; Т — tt называется свободным временем на t-м рабочем месте;
выполнены все требования предшествования, вытекающие из технологии процесса сборки (мы предполагаем, что эти требования имеют вид: «работа Jz должна предшествовать работе Jm»y,
число рабочих мест минимально.
Наличие ограничений предшествования отражается в понятиях допустимых множеств и допустимых назначений. Будем говорить, что данное подмножество Sc [1, 2,..., п^ допустимо, если не существует такой пары Уь J^, что: (a) /££, (б) m ^S, (в) работа Jz предшествует <7^. Назначение работ по рабочим местам 1, 2,. .., q называется допустимым, если для каждого
i Cq допустима система работ, приписанных первым I рабочим местам. С любым допустимым множеством S = \kv к<^ .. . Лп^\ связана «стоимость» C(S), представляющая собой минимум величины (г— 1)Т +/г по всем допустимым назначениям работ с индексами из S; здесь г — число рабочих мест, необходимых для сборочной линии, a tr — сумма времен выполнения работ, приписанных конечному рабочему месту согласно определенному назначению. Тогда величину C(S) можно вычислить по следующим рекуррентным соотношениям, которые выполнены только для допустимых множеств:
(n(S) = 1) : C((/}) = v.
(n(S)> 1) : C(S) = min [С (S —/) + А (С (S —/), tz)],(9)
ZgS
S—l допустимо
где ’)
А (х, и\ = и, если — = —— или —— = ——,
\ / \I I I I I т
А (х, у) = Т р ^ 1 + У — х, если
и Гх + #12L±J.
L г J т *
Величина A(C(S—/), tz) обозначает прирост стоимости, связанной с назначением работы Jb в предположении, что работы, определенные элементами множества S — /, уже назначены оптимальным способом.
Рекуррентные соотношения (9) почти совпадают с соотношениями (2), которые использовались при формулировке задачи расписания, и, аналогично этой задаче, вычисление С ({I, 2,..., п)) и получение оптимального назначения сборочной линии может быть проведено в два этапа).
. Некоторые обобщения. Использованные для решения задачи балансирования сборочных линий рекуррентные соотношения имеют большое сходство с соотношениями, выведенными при формулировках задач расписания и о коммивояжере. Однако
х) [х] обозначает целую часть х.
формулировка задачи балансирования сборочных линий неизбежно включала отношения предшествования, которые отражались в рассмотрении ограниченного класса подмножеств. С ограничениями предшествования, наложенными на порядок выполнения работ, которые должны быть расписаны, или на путь коммивояжера, можно обращаться аналогичным образом.
Другой вариант трех рассматриваемых задач включает возможность «параллелизма»: множество городов, которые нужно посетить, должно быть распределено среди нескольких коммивояжеров; множество операций может быть разделено между несколькими сборочными линиями; работы могут быть приписаны к лк)бой из нескольких машин. Мы введем, в качестве примера ситуации этого типа, некоторые изменения в задачу расписания.
Предположим, что имеются машины F(1), F(2), .. ., F^. Любая данная работа Jk может выполняться любой машиной с соответствующими временами выполнения т^, т^2), ... , т^). Связанная с окончанием работы Jk в момент t на машине F^ стоимость обозначается через с^ (t). Тогда оптимальное распределение работ по машинам при оптимальном расписании для каждой машины получается следующим образом:
Для каждого множества S вычислить функции № (S) по формулам (2), в которые на г-м этапе вычисления вместо тк и ск^1) соответственно подставляются ^ и c^(t).
Вычислить минимум1) величины ^№(8^ по всем разбие-
ниям множества {1, 2,..., п\ на множества S^, S(2\ ..., S^; пусть этот минимум достигается на разбиении Т^\ Т^2\ . .. , Т^.
В оптимальном расписании работы из Т^ выполняются на машине F^. Порядок выполнения работ на каждой машине вычисляется, как и выше,по формуле (3).
Можно значительно уменьшить количества операций в рассматриваемых алгоритмах, если обращать внимание на эквивалентности между элементами, которые должны быть упорядочены. Рассмотрим, например, такую ситуацию в задаче расписания, при которой п работ, подлежащих расписанию, так могут быть разбиты на q классов эквивалентности, что любые две работы из одного класса имеют одни и те же время выполнения и функцию стоимости. Тогда любая система работ характеризуется вектором V = (v1, у2, ..., и^ обозначающим, что эта система содержит yz элементов из /-го класса эквивалентности; более того, все мно-
х) Для эффективного вычисления этого минимума можно предложить алгоритм динамического программирования.
жества, для которых этот вектор один и тот же, могут рассматриваться как одно множество. Тогда, если каждый класс множеств определяется вектором V, формулы (2) могут быть заменены следующими:
С (0, 0,. . ., 0) - 0,
C(V) = min[C (V —ez) Т-С/^-т)]. (10) \ <q
V/ >0
Здесь т = (тр т2,..., т^), где tz— время выполнения работы из /-го класса эквивалентности, ct (/) — функция стоимости для работ из /-го класса эквивалентности, а V — et— вектор, получаемый из V вычитанием единицы из /-й его компоненты).
Последовательные приближения
Характерная черта рассматриваемых алгоритмов состоит в том, что их сложность, измеряемая количеством арифметических операций и требованиями к объему памяти, растет чрезвычайно быстро. Однако по сравнению с полным перебором эти алгоритмы имеют огромное преимущество и дают возможность быстро и прямо решать задачи сравнительно небольшого объема). В этом пункте мы покажем, как эти алгоритмы можно объединить с методом последовательных приближений, чтобы получить систематический метод решения больших задач. Этот метод дает последовательность перестановок, каждая из которых получается из предыдущей путем решения некоторой подзадачи сравнительно небольшого объема с той же структурой, что и данная. Соответствующие стоимости образуют монотонно невозрастающую последовательность, которая может и не сходиться к оптимальному решению, однако экспериментирование на вычислительной машине показало превосходные результаты во многих случаях (ср. разд. 3). В качестве иллюстрации мы изложим метод последовательных приближений для решения большой задачи о коммивояжере.
Если дана перестановка Р=(1, /2, ... , ij, представляющая путь через п городов, то эти города можно разбить на и упорядоченных множеств, каждое из которых состоит из городов, встречающихся последовательно в соответствии с перестановкой
Р и сохраняющих тот же порядок, что и в Р. Затем решается за« дача о коммивояжере для и городов, в которой каждое упорядо^ ченное множество рассматривается как один город, а стоимость пе^ рехода от множества (lj. ij+v .... 4-v4) к множеству (ib iUv.4 ..., im_i, im) равна aikit- Если и не слишком велико, то эта
а
Р= [/] [31[51 [7][5][//]1/3][1524 6 8 1012141б\
Р'=[/5] [/1[7] [3][//][5][5][/524 6 8 10121416\
6’
Р=[/ ^1[5 4?И9 //][/3/5][241[5 81 [1012\[14161
Р’=[9 ^И![2^4][6"81\Г"3][10 "12А^7\^3"15\[1416 \
Рис. 1. Пример локального и глобального разбиений.
подзадача может быть решена алгоритмом динамического программирования, описанным в п. 1. 2. В результате решения из Р получится перестановка Р\ стоимость которой не больше стоимости Р.
Особенно полезными оказываются два типа разбиений. В разбиениях первого типа, 'называемых локальными, каждое из упорядоченных множеств, кроме одного, состоит из одного элемента, так что пути, соответствующие перестановкам Р и Р\ отличаются друг от друга локально, если они вообще отличаются. В другом крайнем случае глобальные разбиения выбираются так, чтобы и множеств были как можно ближе друг к другу по объему, так что если проводятся изменения, то они носят глобальный характер. Примеры разбиений этих двух типов и возможных переупорядочений, связанных с ними, показаны на рис. 1. В этих примерах п= 16, и = 8. При решении больших задач оказывается желательным применять попеременно локальные и глобальные улучшения.
При экспериментировании с программой для вычислительных машин были разработаны систематические методы выбора подзадач. Как часть этого процесса выбора был получен метод, позволяющий определить, может ли дать улучшение полученная подзадача (т. е. стоимость Рг меньше стоимости Ру Каждая подзадача определяется иХ//-матрицей стоимостей С = ^СцУ причем строка и
столбец для каждого множества городов должны быть переупорядочены. Мы предполагаем, что строки и столбцы этой матрицы упорядочены так, что слантовые элементы сиХ, с12, . . ., си_1>и обозначают стоимости переходов, которые содержатся в данной перестановке Р. Если стоимость Рг должна быть строго меньше стоимости Р, то оптимальный путь для подзадачи о коммивояжере, определяемой матрицей С, должен использовать переходы, соответствующие внеслантовым элементам С. Отношение суммы слантовых элементов, которые являются минимальными в строке или столбце, к сумме общего числа и слантовых элементов оказывается надежной мерой «перспективности» подзадачи. На любом этапе вычисления матрицы, для которых это слантовое отношение превышает некоторое критическое значение (которое можно установить в процессе вычисления), далее не рассматриваются.
Если такой метод выбора не применяется, то можно показать, что метод последовательных приближений дает один и тот же конечный путь для любых двух эквивалентных задач о коммивояжере. Говорят, что две задачи с соответствующими (пх ^-матрицами стоимостей (а^) и (Ь^) эквивалентны, , если существуют такие константы а и что для любой циклической перестановки Г индексов 1, ..., п •
г г '
Так как соответствующие подматрицы эквивалентных матриц (а^) и (Ь^ не обязательно имеют одно и то же слантовое отношение, то теряется инвариантность вычисления при преобразованиях эквивалентности, если применяется выбор. Однако можно вывести каноническое представление для каждого класса эквивалентности (см. приложение), и инвариантность, если требуется, можно сохранить, преобразуя любую данную задачу в ее каноническую форму.
Программа для вычислительной машины
В этом разделе мы излагаем некоторые результаты вычислений, полученные с помощью программы для машины ИБМ-7090 для решения задачи о коммивояжере. Эта программа решает задачи с 13 или меньшим числом городов прямым применением алгоритма динамического программирования, изложенного в п. 1.2; задачи большего размера решаются с помощью метода последовательных приближений из разд. 2.
Описание программы. В программе, осуществляющей метод последовательных приближений, каждая подзадача имеет раз- 15*
мер 13. Эта программа попеременно выполняет этапы локальног<| и глобального улучшений. Каждый этап локального улучше! ния состоит из циклов, в каждом из которых решается п возЗ можных подзадач, соответствующих оптимальной перестановка последовательных городов, до тех пор, пока полный цикл не бу^ дет рассматриваться без какого-либо улучшения. В этот момен^ порог слантового отношения возрастает, и если он все еще не превышает верхней границы, предписанной для текущего этапа, то продолжаются локальные улучшения; в противном случае начинается этап глобального улучшения. На каждом этапе глобального улучшения рассматривается самое большее п + 1 подзадач. Первая из них получается выбором разбиения, которое максимизирует сумму слантовых элементов подматрицы стоимостей; при этом слантовое отношение уменьшается. Остальные п задач программа выбирает произвольно, но по определенному правилу, согласно которому 13 множеств должны быть возможно ближе по объему. Подзадачи исследуются по очереди, и для тех из них, для которых слантовое отношение нс превышает текущей величины порога, решается задача динамического программирования для получения оптимального пути. Как только подзадача даст решение, лучшее, чем решение, связанное с ее слан- том, это улучшение вводится во всю задачу и начинается новый этап локального улучшения. Если ни одна из подзадач не дает улучшения, то порог слантового отношения возрастает, и если он не превышает определенной для данного этапа верхней границы, то задачи проверяются заново; в противном случае начинается новый этап локального улучшения, и на этом этапе вычислений глобальных улучшений не производится.
Вычисления продолжаются до тех пор, пока улучшения не становятся мало заметными; эта точка определяется эмпирическим критерием остановки, содержащим число подзадач, которые на любом данном этапе не решаются с помощью алгоритма динамического программирования. Во всяком случае, программа заканчивается после пятого этапа глобального улучшения.
Стратегия вычислений, включающая выбор подзадач, определение порогов слантового отношения и момента окончания вычислений, была подсказана вычислительной практикой. В широких пределах успешная работа программы нс зависит существенно от этих выборов.
Результаты вычислений. Теперь мы представим шесть примеров, которые были решены с помощью программы для машины ИБМ-7090. В этих примерах время решения одного варианта менялось от 2 до 15 мин. В каждом случае начальный путь выбирался случайно.
(I) Задача Данцига, Фулкерсона и Джонсона для 42 городов. В [4] специальными рассуждениями было показано, что стоимость оптимального пути равна 699.
Номер варианта
Стоимость начального пути
Стоимость конечного пути
1
3235
699
2
3513
705
3
3207
704
4
3246
699
5
2913
704
(II) Задача Криса для 20 городов. Крис в [3] утверждает, что стоимость оптимального пути равна 246.
Номер варианта
Стоимость начального
Стоимость конечного
пути
пути
1
732
246
2
816
246
3
811
246
Путь коня через 48 полей. Если за расстояние между двумя полями шахматной доски принимается минимальное число ходов коня, необходимое для того чтобы перейти с одного поля на другое, то задача нахождения замкнутого пути коня (т. с. такого пути на доске, описанного ходами коня, который заканчивается возвращением на начальное поле и при этом каждое поле посещается точно один раз) может рассматриваться как задача о коммивояжере. Так как известно [8], что замкнутый путь коня для урезанной шахматной доски размерами 6x8 существует, то соответствующая задача о коммивояжере имеет оптимальное решение со стоимостью 48.
Номер варианта
Стоимость начального
Стоимость конечного
пути
пути
1
132
56
2
132
52
3
124
54
4
132
56
Путь короля через 36 полей. Задача о замкнутом пути короля, точно так же, как и задача о пути коня, может быть сформулирована в виде задачи о коммивояжере. Очевидно, что замкнутый путь короля существует для доски размерами 6x6; следовательно, соответствующая задача о коммивояжере имеет оптимальное решение со стоимостью 36.
Номер варианта12Номер варианта12Стоимость начального. Стоимость конечного
Номер варианта
1
2
Номер варианта
1
2
путипути
8736
10336
(V) Путь через 48 городов США. Машинные результаты в сочетании с визуальным исследованием позволяют сделать предположение о том, что оптимальный путь имеет стоимость 11 470. Матрица стоимостей для этой задачи и предполагаемый оптимальный путь показаны в табл. 1.
Номер варианта
Стоимость начального пути
Стоимость конечного пути
1
50 716
11 566
2
42 288
12 116
3
45 400
11 984
4
51 223
11 688
(VI) Задача для 25 городов, для которой стоимость оптимального пути, по-видимому, равна 1711. Матрица стоимостей для этой задачи и вероятный оптимальный путь даны в табл. 2.
Номер варианта
Стоимость начального пути
Стоимость конечного пути
1
5626
'1711
2
5838
1711
3
5115
1711
Таблица 2
Задача о 25 городах
2
3
4
5
6
7
182
86 107
129 142
211 195
185 22
185 50
167
249 82
99 164 217
99 115 175 72
8
41 144
58 163 245 144 144
9
174 85
88 220 280 63 127 146
10
106 165
151 23 105 187 138 140 237
II
18 200
104 146 228 203 203 59 192 123
12
73 109
26 148 230 125 117 46 112 125 91
13
186 167
100 267 349 145 199 158 82 251 204 126
14
71 114
50 124 206 114 114 39 136 113 89 24 150
15
26 208
112 136 218 211 211 67 200 113 22 99 212 97
16
233 128
208 270 323 119 167 201 120 275 251 186 158 162 259
17
288 231
252 341 423 209 271 256 178 330 306 241 189 217 314 114
18
212 36
126 178 231 27 75 171 88 201 230 145 170 141 238 92 203
19
201 144
167 254 336 122 184 169 79 243 219 154 96 130 227 68 99 116
20
183 126
162 236 318 104 166 151 95 225 201 136 114 112 209 50 105 98 18
21
290 231
264 343 425 211 270 258 180 332 308 243 187 219 316 103 36 195 101 107
22
208 45
122 187 240 23 85 167 65 210 226 148 147 137 234 108 186 23 99 81188
23
93 272
179 158 240 272 272 134 267 135 87 16) 279 158 67 320 375 299 288 270 377 295
24
373 305
308 426 500 283 355 341 240 415 391 326 208 302 399 203 94 288 193 190 128 271 460
25
453 396
417 506 588 374 436 421 343 495 471 406 321 382 479 279 165 368 264 270 195 351 540
1 2
345678 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Предполагаемый оптимальный путь: (5 4 10 23 15 11 18 14 12 3 13 24 25 17 21 16 20 19 9 22 18 6 2 7).
Стоимость пути: 1711.
Заключение
Изложенный в этой статье подход с точки зрения динамического программирования ни в коей мере нг является универсальным ключом для решения задач упорядочения. Однако он может использоваться во многих важных ситуациях и в тех случаях, когда он приложим, дает некоторые выгоды. Для небольших задач оптимальное решение может быть получено с небольшим и притом точно предсказываемым объемом вычислений. Для решения больших задач прибегают к методу последовательных приближений, который хотя и страдает отсутствием строгого обоснования, но довольно хорошо разработан на практике). Наконец, эти методы могут быть полностью механизированы сравнительно простыми программами для вычислительных машин.
Приложение
Приведение матрицы к канонической форме. В разд. 2 две задачи о коммивояжере для п городов, определяемые матрицами (azy) и ^b-J), были названы эквивалентными, если существуют такие константы аир, что для любого пути Г
aU “ а Zj ^z/ Р •г г
В этом приложении мы охарактеризуем эту эквивалентность непосредственно при помощи определяющих матриц и покажем, как получить каноническое представление каждого класса эквивалентности.
Для последующих рассуждений удобно определить четыре специальных класса матриц: (е^ называется матрицей с постоянной строкой (с постоянным столбцом), если все ее элементы равны нулю, за исключением элементов одной строки (столбца), причем все ее (его) внедиагональные элементы равны между собой (диагональный элемент произволен); ^е^ называется потенциальной матрицей"), если e.tj-V cjk -= elk для каждой тройки индексов I, j, k',( е^ называется матрицей-образом, если ее диаго-
нальные элементы равны нулю и сумма элементов каждой строки и каждого столбца равна нулю.
Определим теперь гомоморфное отображение Т аддитивной группы G (вещественных) матриц порядка п на аддитивную группу G (вещественных) матриц-образов порядка п. Для данной матрицы (dZy) G мы определим отображение в два этапа:
пп
^ij ” П^и S ^lk S ^кр(1)
6=16=1
п
йц = 4' + IX Н(Л 8/6 — Ч — й; J + «„+!•(2)
к=1
Здесь Ь1гп— символ Кронекера, а ах, а2, ... , ал+1 определяются единственным образом из системы п + 1 линейных уравнений1), п п
выражающих условия du = 0 для всех i и ^ S dzy = 0. Легко
видеть, что (dZy) принадлежит G.
Можно показать, что ядро N отображения Т есть нормальная подгруппа группы G, порожденная множеством матриц с постоянной строкой, постоянным столбцом и потенциальными матрицами. Отсюда следует (по закону гомоморфизма для групп [11]), что две матрицы имеют один и тот же образ при отображении Т тогда и только тогда, когда каждая может быть получена из другой добавлением матриц с постоянной строкой, постоянным столбцом и потенциальной.
Каноническая форма матрицы есть ее образ при отображении Т. Говорят, что две матрицы эквивалентны, если каждая может быть получена из другой использованием только следующих операций: а) добавление матриц с постоянной строкой и постоянным столбцом, б) добавление потенциальных матриц и в) умножение матрицы на скалярный множитель. Таким образом, две матрицы эквивалентны тогда и только тогда, когда их канонические формы отличаются скалярным множителем.
Наконец, можно показать, что две задачи о коммивояжере для п городов эквивалентны тогда и только тогда, когда эквивалентны определяющие их матрицы, так что класс эквивалентных задач о коммивояжере характеризуется канонической формой любой из соответствующих матриц.
х) Эта система будет неособенной, если п^2.
14 Заказ № 102
Авторы выражают особую признательность Р. Шарешиану из Отделения математики и приложений фирмы ИБМ, кото* рый принимал участие в составлении упомянутой здесь программы для задачи о коммивояжере. Авторы выражают также благодарность д-ру А. Бомберо из того же Отделения за несколько плодотворных дискуссий, касающихся, в частности, вопросов канонического представления матриц, изложенных в приложении.
ЛИТЕРАТУРА
А с к о f f R. L., Progress in operations research, vol. 1, N. Y., 1961.
В e 1 1 m a n R., Combinatorial processes and dynamic programming, Proceedings of the Tenth Symposium in Applied Mathematics of the American Mathematical Society, 1960; см. также Dynamic programming treatment of the travelling salesman problem, J. Assoc. Comput. Mach., 9 (1962), 61—63. (Русский перевод см. на стр. 219—222 настоящего сборника).
С г о е s G. A., A method for solving travelling-salesman problems, Operations Res., 6 (1958), 791—812.
D a n t z i g G. B., F u 1 k e r s о n D. R., JohnsonS. M., Solution of a large-scale travelling salesman problem, Operations Res., 2 (1954), 393—410; см. также On a linear programming, combinatorial approach to the travelling salesman problem, Operations Res., 7 (1959), 58—66.
E i s e m a n n K., The trim problem, Management Sci., 3 (1957), 279—■ 284.
Flood M., The travelling-salesman problem, Operations Res., A (1956), 61—75.
G i 1 m о r e P. C., G о m о г у R. E., A linear programming approach to the cutting stock problem, Operations Res., 9 (1961), 849—859.
К r a i t c h i k M., Mathematical recreations, Dover, N. Y., 1953, Ch. 11.
McNaughton R., Scheduling with deadline and loss functions, Management Sci., 6 (1959), 1—12.
S a 1 v es о n M. E., The assembly line balancing problem, J. Industr. Engineering, 6 (1955), 18—25.
V a n d e r W a e r d e n B. L., Modern Algebra, Vol. 1, Ungar, N. Y., 1950. (Русский перевод: Ван-дер-Варден Б. Л., Современная алгебра, т. I, Гостехиздат, 1947.)
Р. Беллман
Введение
Хорошо известная задача о коммивояжере состоит в следующем: «Коммивояжер, выезжая из некоторого города, должен посетить один и только один раз каждый из п различных городов и вернуться в исходный. Какой путь минимизирует общее расстояние, пройденное коммивояжером?»
Этой задачей занимались многие авторы, применявшие разнообразные методы (см., например, работу Данцига, Фулкерсона и Джонсона [1], где линейное программирование сочетается с искусственными приемами, и статью Миллера, Таккера и Землина [2], эксперименты которых, использующие метод Гомори целочисленного программирования, не привели к результатам в случаях с 10 городами, хотя был достигнут некоторый успех в простых случаях 4 городов). Цель настоящей статьи—показать, что к этой задаче легко можно применить метод динамического программирования [3]; этим методом могут быть численно решены задачи с числом городов, не превышающим 17. Для большего числа городов предлагаемый ниже метод в сочетании с некоторыми простыми приемами можно использовать для быстрого получения приближенных решений. Аналогичные результаты, касающиеся некоторых обобщений и вычислительных результатов, независимо были получены М. Хелдом и Р. М. Карпом).
Метод динамического программирования
Будем рассматривать задачу как многошаговый процесс принятия решения. Так как путь является замкнутым, то, нс умаляя общности, можно считать, что начальным является город 0. Предположим, что на некотором этапе оптимального пути, начинающегося из города 0, достигнут город i и перед возвращением в город 0 осталось посетить к городов jv j^ ..., jk. Очевидно, что
х) Bellman R., Dynamic programming treatment of the travelling salesman problem, J. Assoc. Compt. Machinery, 9, № 1 (January 1962), 61—63.
так как путь оптимален, то его часть, соединяющая города i и 0 и проходящая в некотором порядке через города jv j^ ..., jfe, должна иметь минимальную длину; действительно, в противном случае путь не был бы оптимальным, так как его длину можно было бы уменьшить, выбирая более короткий путь от города i до города 0 через города Д, /2,..., jk.
Поэтому обозначим через
(1)(1)fU;kJ24)
(1)
(1)
длину пути минимальной длины, соединяющего города i и 0 и проходящего один и только один раз через каждый из к городов Л, /2, • • • > ik- Следовательно, если мы найдем /(0; j\,..., /п) и путь этой длины; то; задача будет решена.
Обозначим также через dv расстояние между городами I и /. Тогда из приведенных выше рассуждений вытекает, что
f(i; Д, ...,/») =.
= min(^m4V(i;/i,A,..-./m-i./m+i.--^^(2)
\<m<k с л
Это уравнение выражает общий принцип оптимальности в теории динамического, программирования [3] применительно к данной задаче. . . .
Итерационный процесс, выражаемый уравнением (2), начинается с известной функции
(3)(3)/ ^t i) ^ij “Ь ^/о»
(3)
(3)
из которой мы получаем fkyJvi^ последняя в свою очередь с помощью уравнения (2) дает / (t;/р/2^ и т. д., пока не будет вычислена / (0; jv ..., j^. Последовательность значений т, которая минимизирует выражение в . скобках в правой части уравнения (2), дает искомый минимальный путь.
Трудоемкость вычислений
Единственная трудность/ которая возникает при использовании описанного выше алгоритма решения задачи о коммивояжере для произвольного числа городов, состоит в хранении промежуточной информации. Далее мы будем говорить о «быстром получении результата». Если решение конкретной задачи было бы настоятельно необходимо и если бы мы намеревались потратить достаточное время, то мымогли бы значительно увеличить размер за-
дачи, которую можно было бы решить с помощью описанного выше метода, используя дополнительные устройства памяти.
Для табулирования функции (1) необходимо учитывать только совокупность значений jvU,..., /^, но не порядок, в котором приходится обходить эти города. Следовательно, при хранении функции /(г, jv ..., j^ мы сталкиваемся с задачей табулирования всех способов выбора к элементов из п— 1. Число этих способов является наибольшим, если к — ближайшее целое к (и—1)/2> Рассмотрим случай, когда число п—1 четно. Так как по формуле Стирлинга
_ (2^)! _ 2^^’
(m!)2 -\‘
то мы получим следующие приближенные значения:
11 городов (2m = 10): ■< 300,
: : У 5к ,
17 городов (2m—16): у^* < 12 000,(6)
21 город (2m = 20):21 город (2m = 20):4=-< 200 000. у Юк4=-< 200 000. у Юк
21 город (2m = 20):
21 город (2m = 20):
4=-< 200 000. у Юк
4=-< 200 000. у Юк
Из этих оценок следует, что случай II городов можно рассматривать обычным способом, случай 17 городов требует наибольшей оперативной памяти имеющихся в наличии вычислительных машин; что же касается задачи с 21 городом, то по крайней мере в течение нескольких лет она будет недосягаема для нас. Эти оценки можно улучшить, используя тот факт, что расстояния будут целыми числами и нет необходимости использовать все цифры одного слова для записи расстояния, но это потребует изобретательности при программировании.
Более того, в любом конкретном случае можно легко уменьшить число городов, объединяя подпути в одно новое «расстояние». Этим способом можно быстро получить приближения к решениям больших задач.
Одна из выгод подхода с точки зрения динамического программирования состоит в том, что на порядок, в котором города могут посещаться, легко можно наложить все типы реалистических ограничений. Например, процесс минимизации (2) упрощается, если m— это число городов, входящих в множество S^i\ определяемое номером t, например 10 ближайших соседей I.
Наконец, отметим следующие моменты, касающиеся аспектов времени и памяти, необходимых для решения этой задачи. Прямое перечислительное сравнение путей потребовало бы пЛ сравнений
Мы уменьшаем это число до порядка и? 2Л-1 (число сложений при этом почти не меняется). Требования, налагаемые на память, для функции, подлежащей вычислению, функции, подлежащей хранению, и оптимальной стратегии, были определены тройкой приведенных выше оценок (6). С другой стороны, все типы ограничений легко могут быть использованы.
Автор выражает признательность М. Хункоса за полезную критику и предложения при написании этой статьи.
ЛИТЕРАТУРА
D a n t z i g G. В., F u 1 k е г s о n D. R., J о h n s о n S. M., On linear programming combinatorial approach to the travelling salesman problem, Operations Res., 7, № 1 (1959).
Miller C. S., T u c k e r A. W., Z e m 1 i n R. A., Integer programming formulation and travelling salesman problems, J. Assoc. Compt. Mach., 7 (1960), 326—329.
Bellman R., Dynamic Programming, Princeton Univ. Press, Princeton, N. J., 1957. (Русский перевод: Беллман P., Динамическое программирование, ИЛ, М., 1960.)
Программирование
Ж. Риге
Прошло свыше 15’лет с тех пор как в 1945 г. Эйленберг и Мак-Лейн опубликовали статью [1], в которой впервые было введено понятие категории. С тех пор язык категорий доказал свою удивительную способность объяснять, вскрывая истинные истоки, явления двойственности [2] в алгебре и топологии, которые казались прежде таинственными. Он не только завоевал право гражданства в этих дисциплинах, но оказался достаточно гибким для использования почти во всех областях математики. Такой успех позволяет полагать, что через 50 лет все ветви математики будут переформулированы и переобоснова- ны в терминах категорий.
Цель статьи — показать, что язык категорий может быть полезен при формулировке проблем, касающихся программирования, а также заняться связями между программой и процессом работы машины.
Введение в понятие категории
Категория — это, грубо говоря, ориентированный граф, на ребрах которого определено ассоциативное умножение, не везде, однако, заданное. (Мы говорим «грубо говоря», так как определение категории, которое мы дадим ниже, отличается от истинного определения только тем, что мы называем «множествами» совокупности, которые должны быть названы классами, чтобы можно было охватить все категории, которые встречаются в алгебраических или топологических приложениях. Но для приложений, которые мы здесь имеем в виду, вполне достаточно рассмотреть «классы», сведенные к «множествам».)
Все знают, что такое ориентированный граф. Нарисуем один граф.
Граф (ориентированный) —это множество вершин и ребер; каждому ребру соответствуют вершина, называемая началом, и вершина, называемая концом. Эти две вершины могут совпадать (петля).
т) Riguet J., Programmation et theories des categories. «Symbol. Languages Data», N. Y. — Lnd., Gordon & Breach, 1962, pp. 83—98.
Категория — это ориентированный граф, на котором определено умножение упорядоченных пар для ребер {х, у), таких, что конец ребра х совпадает с началом ребра у. Произведение х и у
обозначается через ух. Это умножение ассоциативно в следующем смысле: если рассматривают три ребра х, у, z, расположенные так же, как на рис. 3, то произведение z {ух) всегда равно произведению {zy) х.
узе
Рис. 2.
Кроме того, мы будем предполагать, что для каждого ребра х существует петля х\ начало и конец которой равны началу ребра х, и петля х'\ начало и конец которой совпадают с концом
Рис. 3.
ребра х. Эти петли являются единичными элементами для ребра х слева (соответственно справа). Другими словами, они таковы, что хпх — ххг = х.
Понятие группоида Брандта было введено около 1927 г. Брандтом для исследования квадратичных форм. Начиная с работы Эресмана, оно играло важную роль для понятий «локальной структуры», которые появились в дифференциальной геомет-
хп х = ххг — Xхп х = ххг — XРис. 4.Рис. 4.
хп х = ххг — X
хп х = ххг — X
Рис. 4.
Рис. 4.
рии. Понятие группоида является частным случаем понятия категории: это категория, в которой всякое ребро х допускает «обратное», другими словами, в которой для всякого ребра х существует ребро у, начало и конец которого совпадают соответственно с концом и началом ребра х, т. с.
ух = хп,ху = х'
(легко доказывается, что ребро у единственно. Его обозначают через х"1).
Категории проблем1)
Существуют многочисленные примеры категорий. Действительно, любая математическая структура порождает большое число категорий, которые дают адекватный язык для описания тех или иных ее свойств. Мне хотелось бы ограничиться двумя примерами.
Первый пример. Категория отображений частей множества X в части того же самого множества X. Эта категория определяется так: пусть Хг и Х2— две части множества X и / — отображение Хг в Х2; можно рассматривать / как ребро, направленное из вершины Хг в вершину Х2.
Рассмотрим три части множества X: Хг, Х2, Х3 и два отображения / и g, отображающие соответственно Хх в Х2 и Х2 в Х3. Можно определить ребро gf из Хг в Х3 как отображение, составленное из отображений / и g, другими словами, gf — отображение Хг в Х3, такое, что *
V х £ хг (gf) (x)def = g (J (x)).
т) См. по этому поводу статью Риге [9].
Легко показать, что множество таких отображений (или таки< ребер, если угодно) составляет некоторую категорию.
ух = Xй ху = х'ух = Xй ху = х'XXРис. 5.Рис. 5.УУ
ух = Xй ху = х'
ух = Xй ху = х'
X
X
Рис. 5.
Рис. 5.
У
У
Второй пример — это категория задач об алфавите S, т. е. категория отображений частей множества X в части того же множества X, где X обозначает множество слов (конечной длины), которые можно строить, исходя из алфавита S.
9*9*Рис. 6.Рис. 6.
9*
9*
Рис. 6.
Рис. 6.
Эта категория отличается от категории первого примера только частным выбором множества X. Между тем она заслуживает отдельного названия, которое мы ей дали на следующем основании. Решить (общую) задачу с помощью машины или скорее найти метод решения некоторого класса задач — это, в сущности» то же самое, что найти отображение подмножества Хг множества X в подмножество Х2 того же множества X. Подмножество Хг является множеством всех возможных данных задачи, а Х2— множеством всех возможных решений задачи. Метод решений общей задачи состоит в том, чтобы с частной задачей, уточненной некоторыми данными (т. е. отдельными элементами из Хг), связать частное решение (т. е. отдельный элемент из Х^, которое этой задаче соответствует.
Проиллюстрируем это примером, к которому мы снова вернемся далее. „
Рассмотрим алфавит S, состоящий из четырех символов (h >f<, а, Ь) и множество X слов, построенных из этих символов. (Общая) задача умножения «палочек» (|) состоит в нахождении
отображения / из Хг в Х2, где Хг — подмножество множества X, составленное из слов вида р >|< ^ (т. е. из слов, составленных из р «палочек», одной >|< и еще из q «палочек»), а Х2— подмно
жество множества X, составленное из слов, содержащих только «палочки». / — отображение из Xt в Х2, которое выражению р ^ |^ ставит в соответствие выражение / (|^ >|< |^) = \pq.
Интерпретация решения задачи в терминах категорий. Чтобы решить задачу с помощью машины, ее можно сформулировать в терминах категорий следующим образом. Машина, работающая с алфавитом 5, эквивалентна некоторому набору задач, т. е. некоторому набору ребер А, • - -, fm из категории задач. Решение задачи / с помощью машины сводится к нахождению пути (т. е. ряда последовательных ребер в категории), составленного единственным образом из Д, ... , fm так, что произведение в категории всех ребер пути совпадает с /. Решение с помощью машины задачи об алфавите S сводится, следовательно, к тому, чтобы ребро из категории задач об алфавите S разложить на «множители», которые все принадлежат данному подмножеству
из категории (это подмножество «элементарных» задач, решаемых машиной).
Например, если машина позволяет решить 11 элементарных задач Д,..., /п, то говорят, что задача / решена с помощью машины, если найден путь /2, Д, Д, /3, Д, Д, Д, f5, f6, f„ fe, Д, До, Дь такой, что
f = Ai/io/» /в А /в А А /в /в /з
Рис. 8.
Как найти такое разложение на практике? Для этого используют органиграммы.
Органиграммы
Мне кажется, что здесь нецелесообразно подробно анализировать то, что понимается под органиграммой: это последовательность клеток, прямоугольных (операторные элементы) или ромбовидных (элементы проверки и выбора), связанных между собой в вершинах.
Каждая из прямоугольных клеток содержит одно слово некоторого языка L. Клетка, связывающая вершины i и /, содержит слово Zzy.
Каждая клетка в форме ромба содержит предикат языка L с вопросительным знаком и ответ на этот вопрос, материализованный двумя ребрами, исходящими из клетки и несущими ответы «да» и «нет». Понятие органиграммы легко объяснить в терминах графов. Для этого достаточно стереть прямоугольники, сохраняя только «оценку» 1ц ребра ij и заменить ромб (как это представ-* лено на рис. 9) двумя ребрами, соединяющими вершину i с вершиной )ъ вершину i — с вершиной /2 и «оцененными» соответственно значениями р^х) и рАх\ как показано на рис. 10.
Немного обобщая случай обычных органиграмм, соответствующих п = 2, на случай любого п, можно прийти к следующему определению.
zzДаны некоторый язык L и множество / (множество вершин), в котором различают два элемента /0 (вход) и 1Х (выход). Органиграммой носителя R, оцененной посредством языка L, назы-
z
z
гУ
Рис. 9.
вают пару (/?, /), составленную бинарным отношением Ra Ixl и отображением I носителя R в язык L, таким, что
Ч С ^ Go), ^ 1 Go) ~ 0, ^ Gi) “ 0’
где/? — транзитивное замыкание отношения R;
R(i) =— фраза на языке L;
R G) = {Л, • • • ,/$) -*hiv • • •, lns—взаимно исключающие друг друга предикаты из языка L, такие, что по крайней мере одно
Рис. 10.
Аналогично, если даны множество X и множество вершин /, в котором различают вход i0 и выход it, то функциональной.
органиграммой с носителем R, оцененной посредством Ф, называют пару (7?, Ф), составленную бинарным отношением Ra 1x1 и отображением Ф носителя R в множество отображений частей множества X в части множества X, таким, что
Ч R (^о)> R 1 (ч) — Q , R (ч) " Q >
7? (О = {/) -* ф/у — отображение части множества X в часть того же множества X,
R (i) = {/ь ..., /5} ~> 3 Х^,.. ., Хц$ — разбиение X такое, что ф», = %,Ф»5 =
где Дх — тождественное отображение X в X.
В рамках наших рассуждений можно было бы определить семантику как переход от органиграммы, написанной в языке Л, к функциональной органиграмме1).
Сейчас мы покажем, как функциональная органиграмма на множестве X позволяет построить отображение некоторого подмножества множества X в некоторое подмножество множества X, другими словами, как решить некоторую задачу, когда X является множеством слов алфавита S.
Рассмотрим следующий пример.
Пусть Z = {1, 2, 3, 4, 5), 1 —вершина входа, 5 — вершина выхода,
X = \а, Ь, с, d],
R - {(1, 2), (2, 3), (3, 2), (2, 4), (3, 4), (3, 5), (4, 5)};
оценки R нанесены на рис. 11.
Ч Здесь подразумевается функтор, отображающий одну категорию в другую (Эйленберг, Мак-Лейн [1]).
Отображение подмножества множества X в подмножество мио- v.„иia b
жества л, определенное этой органиграммой, есть 1^ с ^.
В самом деле, d является образом а, так как последовательность a b b d отвечает пути 1 2 4 5, b имеет образ с, так как имеется путь Ьаас, соответствующий пути 1 2 4 5, элемент сне имеет образа, так как, достигая 2, он попадает в бесконечный цикл 2 3, d имеет образ d, так как имеется отрезок dbbd, который соответствует пути 1 2 4 5.
Итак, как можно видеть из этого примера, отображение, определенное функциональной органиграммой, есть произведение единственного пути, соединяющего вход с выходом, если считать, что органиграмма погружена в категорию отображений подмножеств множества X в подмножества того же множества X.
Говорят, что функциональная органиграмма допустима, когда отображение, которое она определяет, непусто (т. с. определено на непустом подмножестве).
Практически органиграммы, используемые при машинном вычислении, нс произвольны. Множество Ф оценок органиграммы составляется машиной, и машина может решить задачу тогда и только тогда, когда некоторая органиграмма может также се решить. Следовательно, мы должны изучить отношение между органиграммой и машиной. В последующих разделах мы сформулируем алгебраическое понятие машины. Но прежде мы уточним отношение между понятием органиграммы и понятием диаграммы.
Понятие диаграммы
Понятие функциональной органиграммы, которое мы только что определили, есть только частный случай понятия диаграммы, введенной Гротендиком [3] в рамках теории категорий. Напомним определение диаграммы. Дана категория С и (ориентированный) граф G. Диаграммой (на G со значениями в С) называют отображение D множества ребер графа G в множество ребер категорий С, а также отображение (которое тоже обозначим через О) вершин графа G в множество вершин категории С, таксе, что, если gx и ^2 — два ребра графа G, такие, что конец / ребра gx совпадает с началом j ребра £2> то ребра D (gx) и D (g2) из С. которые соответствуют ребрам gx и g2, имеют соответственно началами D ^ и D (/) и концами D (/) и D (6).
Итак, можно утверждать, что диаграмма—это граф G, ребра и вершины которого оценены соответственно ребрами и вершинами
х) Запись ^ ^ ^ обозначает отображение, которое а переводит в с, b переводит в d, с переводит в Ь.
категории С. Бинарные отношения на множестве I составляют
частный случай графа: / — множество вершин, а пары (7, /) ^ R—• множество ребер.
Определение диаграммы принимает тогда следующий вид. Даны категория б*
г
к
и бинарное отношение Ra I X Л диаграммой (на R со значениями в С) называют
0(90
Рис. 12.
п<92
D(j)
ОН)
О (к)
отображение D множества пар, принадлежащих R, в множество ребер категории С, а также отображение, которое мы тоже обозначим через D, элементов из / в множество вершин категории С, такое, что каковы бы ни были (/, /) R, ребро D (I, /) имеет начало I и конец /. Итак, если рассматривать функциональную органиграмму Ф множества вершин I и носителя R, непосредственно, видно, что Ф есть диаграмма на R со значениями в категории отображений подмножеств множества X в подмножества того же множества X (Ф/э очевидно, берут равным подмножеству, на котором определено отображение Фиу
Алгебраическое определение понятия машины
Понятие машины в алгебраических терминах впервые было определено Эшби 13] (см. также Ригс [7] о понятиях спаривания) и переформулировано многими авторами (в частности, см. Мили [6]). Эго понятие может быть введено разными способами, более или менее эквивалентными. Дадим точное определение понятия машины, которое нам необходимо для дальнейшего.
Если даны два множества С и X, будем называть машиной отображение L подмножества Е С X X в Е, обладающее следующим свойством:
если (с,х) ^ Е, то L (с, х) имеет вид (с, Sc (х)), где Lc обозначает отображение подмножества множества X в X.
Будем называть Е множеством состояний машины. Элемент с С называется управляющей переменной, или параметром машины. Элемент х X называется состоянием памяти машины. В дальнейшем, когда мы будем говорить о машинах, мы будем всегда предполагать, что С содержит особый элемент с0, такой, что, каково бы ни было х X, выполняется равенство Е (с0> х) = (с0, х). С интуитивной точки зрения, наложенное на
£ условие означает, что множество состояний машины расслаивается на «плоскостях» различными возможными значениями параметра и машина осуществляет переход из одного состояния в непосредственно следующее за ним, оставаясь всегда в соответствующих «плоскостях». Например, если рассмотреть множества С = [0, 1, 2}ъ где 0 — особый элемент, и X = {а, 6, с}, то отображение Е, определенное следующим образом:
S (1,с) -(1,6),Е (1,6) = (1,а),Е (1,а) = (1,а),
Е (2,с) -(2,6),Е (2,6) - (2,с),Е (0,а) = (0,а^
Е (О,6) =(0,6),Е (О,с)-(0,с),
является машиной. Отображения Ех, Е2 и Ео определяются так: Ех (с) = 6, Ех (6) = а, Вх (а) = а, Е2 (6) = с, Е2 (с) = Ь,
Ео — тождественное отображение.
Рис. 13.
Графическое отображение такой машины дано на рис. 13 (где каждое ребро представляет переход от некоторого состояния к непосредственно следующему за ним).
Пусть даны два множества С и X; назовем передачей управления отображение а подмножества Е множества С X X в Е со следующим свойством. Если (р,х) Е, то а (с, х) имеет вид (а^ (с), х\ где зх означает отображение подмножества множества С в множество С. Будем говорить, что Е— множество состояний, управляемых посредством передачи управления а, или что а — передача управления на Е. Заметим, что понятие пере-
дачи управления в некотором смысле двойственно понятию машины, которое можно также рассматривать как преобразование состояний. Два множества С и X и пара (Е, а) состояний машины Е с множеством состояний Е и передачей управления а на том же множестве назовем машиной с передачей управления. Заметим, что это определение с точностью до некоторых деталей (впрочем, существенных для наших целей) совпадает с понятием машины, описанной Мили. В реальных машинах (Е, а) передача управления организована следующим образом: для каждого значения управляющего параметра с £ С существует разбиение множества X на непересекающиеся подмножества Хс,... Лс и S режимов управления cv .. ., cs ^ С, таких, что каково бы ни было х X,
ах (0 =ах (0 =cv если xQ Хс,cv если xQ Хс,cs , если х Х^.cs , если х Х^.
ах (0 =
ах (0 =
cv если xQ Хс,
cv если xQ Хс,
cs , если х Х^.
cs , если х Х^.
Пусть 0 = (/?, Ф) — функциональная органиграмма с вершинами /. Будем говорить, что 0 допустима для (Е, а), если множество всех Ф/у, где R (г) сводится к одному элементу, содержится в множестве преобразований состояний памяти Ес машины и если множество всех Ф/у, где R (/) содержит более одного элемента, содержится в множестве всех преобразований команд машины. Другими словами, скажем, что 0 допустима для (Е, а), если существует единственное отображение у множества / в С, такое, что Ф/у = Ет (/), когда R (/) состоит из одного элемента, и такое, что Ф^ = Ьх^, когда R(i) = \jv . .., /J содержит более одного элемента.
Рассматривая лишь машину Е, скажем, что 0 допустимо для Е, если существует единственное отображение у множества / в С, такое, что Ф^- = Ет (/), когда 7? (/) сводится к одному элементу.
Отображение 7, которое мы только что определили, вскрывает природу связи, существующей между программой и процессом работы машины; у преобразует ориентированный граф, изображающий процесс работы машины, в «поверхность наложения» органиграммы, изображающей программу. Термин «поверхность наложения» употребляется здесь в том же смысле, что в топологии; это — некоторый аналог «римановой поверхности» (см. [10] и [11]). о
Для иллюстрации предыдущего рассмотрим пример, который нам даст алгоритм Маркова as ([2], стр. 90), или, что еще лучше, машину, с ним связанную (Ригс [8]) и определяемую еле-
дующим образом. Множество переменных памяти X машины состоит из всех слов, которые можно образовать, исходя из алфавита
S = {|,Ь].
МножествоJ команд машины — С = { О, 1,2, 3, 4, 5, 6, 7}. Обозначим через Хт подмножество множества слов X, содержащих в себе в качестве подслова слово m X. Тогда машина Е описывается отображениями частей множества X в X, определяемыми следующим образом:
Ej — отображение Хь\ в X, состоящее в замене первого появления слова | b словом b | в каждом слове из Хц. Будем говорить, что:
Ет — применение правила 6[-^|6;
отображение Ха\ в X, состоящее также в применении правила а | ->| Ьа;.
отображение Ха в X, состоящее в применении правила а->(т. с. состоящее в том, что вычеркивается первое появление буквы а в словах из XJ;
— отображение Х|*вX,состоящеевпримененииправила
— отображение X^jвX,состоящеевпримененииправила
отображение X*вX,состоящеевпримененииправила
>К-^ (т. с. состоящее в том, что вычеркивается первое появление знака >(< в словах из X*);
Е7 — отображение Хь в X, состоящее в применении правила
Ео — тождественное отображение X в X.
Органиграмма с множеством вершин
/ - {0, 1,2, 3, 4, 5, 6, 7, Г, 2', 3',4', 5', 6' 7'), изображенная в верхней части рис. 14, даст изображение программ. Отображение д определяется так:
Т(0) = 0; 7(1) = 7(1')=7(7) = 7 (7') = 7.
На рисунке видно, что процесс работы машины представляет собой поверхностные наложения органиграммы. Можно констатировать, что машина решила задачу умножения | | на | j |. Проверка того, что общая задача умножения [^ на решается предложенной органиграммой, предоставляется читателю.
Рис. 14.Рис. 14.
Рис. 14.
Рис. 14.
| 6= | |
|Ь | Ьа |
I I bba |
| |ЪЬ | Ьа
11^1 bba
| | | bbba
|||bbb
a | ||bbb
| ba | | bbb
I b | ba | bbb
| | bba | bbb
||bb | babbb
| I b |bbabbb *|||bbbabbb
*|||bbbbbb
* |Ibbbbbb
* |bbbbbb
* bbbbbb bbbbbb |bbbbb |\bbbb \\\bbb
1 I I|bb
Заключение
Имеется много других аспектов теории машин и программирования, которые используют теорию категорий. Рассмотрение последовательного выполнения программ как их спаривания (или алгебраического умножения) показывает, что машины образуют категорию. Аналогичное спаривание органиграмм позволяет определить категорию органиграмм. Естественная связь между этими категориями описывается в терминах функторов.
Отметим, наконец, что на теории категорий и на функторах, образованных комбинаторными операторами Шонфинкеля — Кюри (см., например, [13]), можно построить теорию семантики в выше- определенном смысле, т. с. теорию, позволяющую переходить от органиграммы, написанной на каком-нибудь языке L, к функциональным органиграммам1).
ЛИТЕРАТУРА
М с L a n е S., Е i 1 е n b е г g, General theory of natural equivalences, Trans. Am. Math. Soc., 58 (1945), 231—294.
M c L a n e S., Categories and duality, Bull. Am. Math. Soc. (1952).
Grothendieck A., Elements d’algebre homologique et categories abeliennes, Tohdku Math. J. (1947).
A s h b у R. W., Design for a brain, Chapman & Hall, Lnd,, 1952. (Русский перевод: Эшби P. У., Конструкция мозга, ИЛ, М., 1962.)
A s h b у R. W., Introduction to cybernetics, Chapman & Hall, Lnd.— N. Y., 1956. (Русский перевод: Эшби P. У., Введение в кибернетику, ИЛ, М., 1959.)
М е а 1 у G. Н., A method for synthesizing sequential circuits, Bell Syst. Techn. J., 34 (1955), 1045—1079.
R i g u e t J., Sur les rapports entre les concepts de machine de multipole et de structure algebrique, C. R. Acad. Sci., Paris, 237 (1953), 425—427.
R i g u e t J., Algorithmes de Markov et theorie des machines, C. R. Acad. Sci., Paris, 242 (1956), 435—437.
R i g u e t J., Le calcul des relations en tant qu’outil methodologique dans «La methode dans les sciences modernes», Travail et Industrie (Exposes reunis par F. Le Lionnais), Paris, 1957.*
Reidemeister, Einfiihrung zur kombinatorischen Topologie, Chelsea Publ. Co.
S e i f e r t, T h r e 1 1 f a 1 1, Lehrbuch der Topologie, Chelsea Publ. Co. (Русский перевод: 3 e й ф e p т Г., Трельфалль В., Топология, ГОНТИ, М.-Л., 1938.)
М а р к о в А. А., Теория алгоритмов, Труды матем. ин-та АН СССР, 42 (1954), 1—376 (или 38 (1951)/ 176—189).
С и г г у Н. В., F е у s R., Combinatory logic I, North Holland Pub.l Co., 1961.
x) Близкий по характеру анализ процесса работы машин и строения программ с позиций теории категорий дается в работах Шрейдера Ю. А. (см. сб. Вопросы теории математических машин, вып. 8) и Ляпунова А. А., К алгебраической трактовке программирования (см. сб. Проблемы кибернетики, вып. 8, стр. 235—242). —Прим, перев.
АВТОМАТИЧЕСКИЙ ПРОЦЕСС УПОРЯДОЧЕНИЯ МОДУЛЕЙИ ЕГО ПРИЛОЖЕНИЕ К ПАРАЛЛЕЛЬНОМУ ПРОГРАММИРОВАНИЮ1,
Ю. С. Шварц
Описывается автоматический процесс распределения групп команд (модулей преобразования графа) программы по наперед заданным независимым блокам мультипроцессора.
Процесс основывается на использовании матрицы распределения, полученной из матрицы очередности. Численное решение становится возможным благодаря присоединению к матрице распределения вектор-столбца, элементы которого представляют собой операционное время для каждой группы команд. Топологические индексы (числа предшествований), определяющие положение каждой группы команд по отношению к последнему набору в последовательности команд, выполняемых после данной группы, составляют второй вектор-столбец. В разветвленной программе используется матрица переходов совместно с автоматически получаемой таблицей пути.
Для процесса получено шесть обобщенных правил, с помощью которых решение получается непосредственно (без получения и проверки всех перестановок групп команд), и устанавливается такая последовательность операций, которая минимизирует общее операционное время, выполняя при этом условия очередности. Поскольку процесс не требует просмотра последующих групп команд перед выполнением распределения по блокам предыдущей группы, вычисление может начаться сразу после окончания первого периода распределения совместно с продолжением обработки и распределения модулей.
Этот процесс легко приспосабливается к операциям вычислительной машины; описано автоматическое получение матрицы распределения. Представлена блок-схема процесса и ее использование для решения задач. Гарантируется, что полученное решение является допустимым, хотя и необязательно единственным. В проверенных примерах было получено оптимальное или близкое к оптимальному решение. Опыт вычисления с помощью этого процесса в сложных задачах требует определения его эффективности в таких случаях.
.1. Введение
Параллельное программирование изучалось в литературе под названиями мультипрограммирования [1], параллельного программирования, одновременной обработки [2], сходящейся обработки [3], мультипрограммного распределения [4] и т. д. В общем проблема ставится так: дана некоторая аппаратура с автономными элементами, обладающими свойством временного и пространственного разделения; составить программу или систему программ так, чтобы оптимизировалась некоторая целевая функция. Такими функциями могут быть время, количество команд, использование аппаратуры или некоторые их комбинации. Общая тео- х) Schwartz Е. S., An automatic sequencing procedure with application to parallel programming, J. Assoc. Compt. Machinery, 8, № 4 (1961), 513—537.
рия логического синтеза для таких программ рассматривается в р].
Чаще всего программа (или программы) упорядочения составляется так, чтобы группы команд распределялись по автономным блокам в соответствии с их общим или частным назначением под контролем центрального процессора. Метод распределения по времени выполнения программ связан с соблюдением требований очередности и минимизации времени ожидания очередной программы. При этом оптимизируется обращение к автономным блокам и предотвращаются пагубные последствия пересечения различных программ.
По-видимому, проблеме перестройки программы, для того чтобы к ней можно было применять процесс ра.пределения множества команд по различным блокам, уделялось пока мало внимания. Вместо того чтобы использовать процедуру, в которой следующая команда (или труп ла команд) поставлена в соответствие приспособленному для этого блоку, мы в этом исследовании стремимся переделать данную программу так, чтобы полностью использовать потенциальные возможности аппаратуры. Кроме того, делается попытка усозершенстзовать процесс так, чтобы вычислительное устройство само автоматически перестраивало программу и строило последовательность согласно поступающей информации. Таким образом, эта работа связана с проблемой, в которой даны аппаратура и независимые блоки, а последовательность операций подчиняется ограничениям, налагаемым на очередность выполнения групп команд.
В настоящее время нс существует моделей и аналитических решений для сложных проблем упорядочения, хотя решения для простых случаев известны. Чтобы получить оптимальное или близкое к оптимальному решение, применялись различные эвристические способы, методы Монте-Карло и линейного программирования, но требующиеся для этого вычисления громоздки и цена, которой добывается решение, часто превосходит экономию, полученную от него. '
Процедура, описанная в этой статье, начинается непосредственно с решения без получения и проверки всего множества возможных перестановок групп команд; при этом устанавливается такая последовательность операций, которая стремится минимизировать время, удовлетворяя при этом всем предыдущим ограничениям. Процедура, приспособленная к осуществлению на вычислительной машине, является достаточно простой и быстрой. Поскольку она не требует просмотра последующих групп команд прежде реализации предыдущих, вычислительный процесс может начаться после выполнения первого периода распределения вместе
с обработкой и с поступлением информации на следующий net риод. ;
Можно отмстить несколько различных случаев проблем упо- рядочсния:
одна программа с группой команд, которые надо размер стить в несколько независимых блоков; |
две (или более) независимые программы с группами команда распределяемыми в несколько независимых блоков;
две (или более) программы с зависящими друг от другая группами команд, размещаемыми в несколько независимых! блоков. j
Размещение по независимым блокам во всех трех случаях может рассматриваться как постоянное, если группа команда может быть выполнена только на одном блоке Ub или как пе-; ременное, если она может быть выполнена на одном из блоков* Ub U^, .. . , в зависимости от их пригодности. В последнем случае время вычисления для одной группы команд на различу ных блоках может быть одинаковым или различным.
Эта работа связана с теоретическим анализом структурных свойств вычислительных программ, матриц распределения, полученных из матриц очередности, и с применением их в автоматическом процессе упорядочения. Вначале процесс иллюстрируется на примере открытого пути для случая одной программы с фиксированными блоками распределения. Затем метод распространяется на разветвленную программу с условной передачей и. циклом. Распространение метода на более общие задачи, включающие переменное распределение для одной или более программ, можно осуществить в рамках развитой здесь теории.
2. Структурные свойства программ вычислительных машин
Автоматический процесс упорядочения основан на модели блок-схем и программ, которая строится с помощью теории графов и представляет собой линейный граф. Свойства этого графа описываются с помощью матриц. Этому виду анализа посвящено несколько новых работ [6—8].
Программа вычислительной машины — это группа команд, дающих машинную процедуру для получения решения поставленной задачи. Команды представляют собой правила преобразования, расположенные в некоторой последовательности, которая удовлетворяет логическим требованиям задачи и может быть представлена блок-схемой. Один блок блок-схемы соответствует модулю преобразования Т графа (термин модуль эквивалентен терминам узел, вершина, точка, 0-симплекс, употребляемым в теории графов). Каждый модуль преобразует входной сигнал в
некоторый выходной сигнал, согласно правилу преобразования R. Модуль Т представляет преобразование, которое может быть выражено конечным числом команд (не обязательно одной командой).
Модули графа соединены ориентированными отрезками, называемыми ветвями; модули, соответствующие некоторой ветви, называются ее границами. Запись T^j обозначает ветвь, соединяющую модуль Tt с модулем Tj. Совокупность ветвей вида 7\ Т^ Т^Т^ ..., Тп_г Тп образует путь, который называется открытым, если он содержит п различных модулей. В противоположном случае путь называется замкнутым, или циклом.
Отношение порядка для вершин открытого пути определяется так: пусть граничные модули пути обозначены через Tt и Т^; тогда имеет место одно и только одно из следующих условии: либо (1) Tt<Tj, либо (2) Ti>Tj, где <означает «предшествует», а > означает «следует». Отношение между вершинами нсрсфлск- сивно, несимметрично, но обладает свойством транзитивности.
Первый модуль программы, который предполагается единственным, определяется как предшествующий любому другому модулю, но не следующий ни за одним из них. Граф называется связным, если можно пройти от входа к любому модулю графа по пути. Каждая блок-схема программы представляет собой связный граф.
Пусть дан граф с п модулями и т ветвями. Тогда связи графа могут быть описаны матрицей связи C=[^Zy]/ строки которой соответствуют модулям графа, а столбцы — ветвям. Если Tt— модули графа (t = 1, 2,..., п) и В;— его ветви (/ = 1, 2,.. ., т), то величины ctj определяются ориентированной матрицей Пуанкаре— Веблена [9]:
— 1, если Tz есть начальная граница Bj, О, если Т\ нс есть граница Bj, + 1, если 7\ есть конечная граница В;.
В матрице связи каждый столбец может содержать только две единицы противоположного знака, описывающие одну ветвь. Число единиц в строке неограниченно.
Порядком модуля направленного графа называется число ветвей графа, для которых он является границей. Внешний порядок модуля направленного графа определяется как число ветвей, выходящих из этого модуля. Он равен числу отрицательных элементов в Гй строке матрицы связи. Аналогично внутренний порядок определяется как число ветвей, направленных к этому модулю, и равен числу положительных элементов в i-и строке матрицы связи.
Можно установить следующие топологические отношения, описывающие структуру программы.
Строка с внешним порядком 0 означает вход.
Строка с внутренним порядком 0 означает выход.
Строка порядка 2, содержащая элементы противоположных знаков, указывает, что модуль является внутренним, т. е. что он следует за некоторым модулем и предшествует некоторому модулю.
Строка, внутренний порядок которой больше единицы, означает точку сходимости.
Строка, внешний порядок которой не меньше двух, означает модуль, выполняющий условную передачу.
Матрица связи для графа, изображенного на рис. 11, показана на рис. 12.
Блок-схема может быть построена по ее матрице связи при помощи процедуры, которая может быть запрограммирована для вычислительной машины. Начиная с входа, процедура построения пути определяет местоположение каждого модуля прохождением по столбцу от —1 до +L а затем строит ветвь, следуя ло строке, в которой встретилась +1, до —1. Если на пути встретится модуль, осуществляющий условный переход, то будем следовать по одной ветви до достижения выхода; программа построения пути обеспечивает тогда возврат к вершине ветви и прослеживает модули на других путях. Каждый просмотренный ненулевой элемент матрицы заменяется нулем. Эта процедура продолжается до тех пор, пока нс построены все пути и матрица нс приведена к нулю [6].
Отношения очередности в вычислительной программе могут быть описаны матрицей очередности М, в которой каждый модуль обозначен своим индексом (г = 1, 2,..., п\ Это—квадратная матрица с элементами, состоящими из булевых переменных 0 и 1. Если модуль Tt должен предшествовать Ту, то 1 появляется в Тй строке и /-м столбце, но не наоборот, т. е. если mtj = 1, то mtj —0. Благодаря свойству нерефлексивности, mtl = т^ = 0 для всех i и j [2, 10]. Матрица очередности может быть преобразована в треугольную матрицу с помощью следующего правила: если Tt < Tj, то i < j.
Так как отношение очередности определено только для открытого пути, для каждого пути имеется один вход в матрицу. В случае когда имеется модуль, общий более чем для одного пути, отношение очередности должно быть установлено между этим общим модулем и другими модулями пути. Чтобы определить отношение очередности на цикле, нужно преобразовать замкнутый путь в открытый. Это можно сделать, установив отношение для первого пути через цикл к точке, где встречается модуль,
который встречался прежде при построении пути. Полная структура цикла определяется, во всяком случае, матрицей связи и модулем, для которого правило преобразования задаст условную передачу.
Значение пары отношений, появляющееся в матрице очередности М, выявляется из свойства транзитивности отношения и может быть вычислено путем перемножения матриц, которое производится с помощью логического сложения и умножения. Путем последовательного перемножения выявляются значения высших степеней; этот процесс можно продолжать до тех пор, пока нс получится матрица Мр = 0, указывающая, что все степени исчерпаны. Матрица, содержащая все значения отношений, имеет вид
Н = M\J М^М М^\.. . V Мр"\
Эта матрица будет использоваться в процессе упорядочения.
Матрица распределения
Рассмотрим программу, содержащую 20 модулей на открытом пути, который образует последовательность модулей от 1 до 20. Каждый модуль может быть выполнен только, на одном из автономных блоков Л, В или С в соответствии с информацией, заданной для каждого модуля, и временем выполнения модуля на связанном с ним блоке, которое предполагается известным.
В(4 С/2
Рис. 1. Диаграмма счередности для открытого пути.
Если бы не было ограничений, задаваемых отношениями очередности, мы имели бы 20! возможных перестановок из этих модулей. Однако условия очередности уменьшают допустимое число перестановок, хотя оно еще может быть очень велико.
Условия очередности для данной программы показаны на рис. 1 в виде диаграмм следования (заметим, что мы имеем здесь диаграмму следования по открытому пути, а нс блок-схему). Направленная ветвь, соединяющая два модуля, имеет условное обозначение, а именно: запись, в которой модули 1 и 2 соединяются стрелкой, направленной в сторону модуля 2, означает, что модуль 1 должен предшествовать модулю 2. Если два модуля не упорядочены между собой, то они нс соединены. Около каждого модуля стоит указание о блоке, в котором этот модуль будет выполняться, и время выполнения. Матрица очередности Н показана на рис. 2 (незаполненные клетки соответствуют нулевым элементам).
Путем транспонирования матрицы Н и сложения этой транспонированной матрицы с Н получается симметрическая матрица, показанная на рис. 3. Ненулевые элементы в f-й строке выше главной диагонали означают модули, следующие за модулем i; ненулевые элементы ниже главной диагонали в i-й строке означают модули, предшествующие модулю I.
Все ненулевые элементы i-й строки сдвинем теперь налево, если они появляются ниже главной диагонали, и направо, если они появляются выше. Повторив это для всех /, получим матрицу, показанную на рис. 4.
Заштрихованная площадь на рис. 4 означает места возможных перестановок положения каждого модуля. Например, модуль 1 может появиться в любом месте от 1 до 14, так как за ним следует 6 модулей. Это, как показывает матрица очередности, суть модули 5, 6, 10, 14, 18 и 20. Модудю 11 должны предшествовать три модуля, а именно 2, 3 и 7, а за ним должны следовать модули 15, 16, 19 и 20. Допустимые перестановки требуют, конечно, выполнения условий очередности, установленных матрицей очередности.
Число допустимых положений модуля легко подсчитать с помощью матрицы Н: число положений модуля i равно числу модулей в матрице за вычетом суммы элементов i-й строки и /-го столбца. .
Число перестановочных положений модуля / соответствует нулевым элементам i-й строки преобразованной матрицы очередности. о
Матрица распределения А = \aLj\ образуется с помощью той части преобразованной матрицы очередности, которая расположена ниже главной диагонали. Матрица содержит обозначение
Рис. 2. Матрица очередности Н.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1Й
19 320
/
1
1
1
1
1
1
2
1
1
1
1
7
1
3
1
1
1
1
1
1
4
1
1
1
1
1
1
5
1
1
1
1
1
6
1
1
1
1
7
1
1
1
1
1
1
1
5
1
1
1
1
9
1
1
1
1
10
1
1
1
1
1
11
1
1
1
1
1
1
1
12
1
1
1
1
13
1
1
1
1
14
1
1
1
1
1
1
15
1
1
1
1
1
1
16
1
1
1
1
1
17
1
1
1
1
1
1
18
1
1
1
1
1
1
19
1
1
1
1
1
1
20
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Рис. 3. HvHT.
блока, в котором может быть выполнен каждый модель, и информацию о модулях, которые должны предшествовать данному модулю в соответствии с требо: алиями очередности.
Рис. 4. Преобразованная матрица Н. ,
Обозначение блока для модуля I помещено в первом левом нулевом элементе f-й строки. Ненулегые элементы Пй строки заменены в соответствии с условиями очередности номерами, определяющими предшествуйщие модули, причем информация об этом берется из симметрической матрицы. Блоки и номера вводятся в матрицу для всех I.
В пол\ ченной матрице нс принимается в расчет действительный период времени, необходрих ый для выполнения каждой операции, и вычисление времени р£ Соты программы с помощью матрицы такого вида невозможно. Однаго, присоединяя к матрице распределения вектор-столбец, каждый элемент которого есть время в полнения каждого модуля, мы делаем такое вычисление возможным.
Теперь матрица распределения содержит всю информацию, связанную с условиями очередности и временем выполнения каждого модуля. Информация, содержащаяся в верхнем треугольни-
ке преобразованной матрицы очередности, однако, еще нс использовалась. Эта информация может рассматриваться как топологический индекс, так как она устанавливает число модулей, за которыми следует модуль i, и будет называться числом предшествований. Число предшествований каждого модуля содержится во
Р и с. 5. Матрица распределения А.
втором вектор-столбце, присоединяемом к матрице распределения. Матрица распределения для рассматриваемой задачи вместе с векторами времени и числа предшествований показана на рис. 5.
Матрица распределения может быть построена вычислительной машиной за пять шагов:
образование транспонированной матрицы очередности Н;
замена каждого ненулевого элемента i-n строки НТ числом, указывающим столбец, в котором появляется этот элемент (для всех /);
просмотр каждой строки слева;
ввод обозначения блока для f-й строки в первый слева нулевой элемент f-й строки (для всех I);
получение числа предшествований модуля i путем вычис-
16 Заказ № 102
ления суммы ненулевых элементов f-й строки матрицы Н (для всех г),
Введение вектор-столбцов времени и числа предшествований завершает построение матрицы распределения.
Автоматический процесс упорядочения
Задача поставлена теперь формально так: дана программа вычислительной машины, состоящая из множества модулей преобразования, операции над которыми должны производиться по частично упорядоченной последовательности. Поставить в соответствие каждому модулю некоторый блок так, чтобы он выдавал результат в минимальное время для выполнения всей программы.
При этом предполагаются выполненными следующие условия.
Каждому модулю может соответствовать только один определенный блок.
Для каждой операции задан конечный интервал времени ее выполнения.
Начатая операция нс должна прерываться.
Множество операций может быть выполнено в конечное время.
Вначале дастся общее описание автоматического процесса упорядочения; при этом используются определения и обозначения, сделанные ниже, а затем следует формулировка процедурных правил. После этого процесс применяется к задаче, для которой уже была получена некоторая матрица распределения.
Введем следующие определения и обозначения:
ограниченный модуль — модуль, для которого обозначению блока в матрице распределения предшествует хотя бы одно число;
неограниченный модуль — модуль, для которого обозначению соответствующего блока в матрице распределения не предшествует ни одно число;
преобразование блока — стирание в матрице распределения обозначения блока соответствующего модуля;
преобразование номера — преобразование к нулю в матрице распределения числового указателя соответствующего модуля;
р5—период распределения / (/ = 1, 2,...), т. с. период, в течение которого имеющиеся неограниченные модули распределяются по блокам;
множество распределения: группа неограниченных модулей, которые могут быть распределены по блокам в течение некоторого периода распределения;
пц — модуль i (г = 1, 2,.. . , п);
.— номер в матрице распределения, указывающий модуль I; tt — время выполнения модуля I;
Uk— множество независимых блоков с индексом к^к — = А,В,С...}\
kt — обозначение блока для модуля i;
т^ t — модуль i с обозначением блока к и временем операции I;
Tk=^tk.— время выполнения всех модулей, соответствующих блоку к;
->соответствует; преобразовано к.
В каждом периоде распределения множество распределения получается с помощью просмотра каждой строки матрицы распределения и нахождения имеющихся там неограниченных модулей. Эти модули могут быть распределены по соответствующим блокам, так как они удовлетворяют наложенным на них условиям очередности. После того как указан соответствующий данному модулю блок, обозначение этого блока в матрице распределения стирается.
В последующие периоды распределения обозначения ранее распределенных модулей, имеющиеся в матрице, стираются в соответствии с правилом преобразования номеров. При этом образуются новые группы распределения, так как процедура преобразования номеров дает хотя бы один неограниченный модуль в каждый период распределения.*
С каждым блоком связан счетчик, который накапливает время выполнения модулей, соответствующих данному блоку. Временные проверки, осуществляемые с помощью этих счетчиков, в соединении с матрицей распределения гарантируют допустимость решения, удовлетворяющего всем требованиям очередности.
Последовательное стирание обозначений блоков и чисел в матрице распределения приводит матрицу к нулю, и процесс упорядочения на этом заканчивается.
Правила автоматического процесса упорядочения сформулированы так, что они годятся для различных случаев, которые могут возникнуть в ходе получения решения. Один класс случаев составляют задачи, возникающие при распределении неограниченных модулей. Ко второму классу относятся правила преобразования номеров, так как порядок, в котором стираются числа матрицы, определяет, в частности, порядок, в котором модули становятся неограниченными.
Проанализируем следующие шесть случаев.
Случай 1. В некоторый период распределения имеется только один неограниченный модуль.
Нс требуется никакого выбора и решение единственно.
Случай 2. В некоторый период распределения имеется более одного неограниченного модуля, но не более одного из них ставится в соответствие каждому блоку.
В этом случае, как и в случае 3, следует решить, распределять ли все неограниченные модули или оставить один или более для последующего периода распределения. Пусть временные и топологические характеристики задачи таковы, что выполнение модуля на одном блоке высвобождает модуль, который может быть распределен на второй блок за время, меньшее, чем время выполнения некоторого неограниченного модуля во втором блоке. Тогда наличие времени простоя, которое меньше, чем время, нужное для выполнения этого неограниченного модуля, свидетельствует о том, что может существовать лучшее решение. Однако выяснение этого вопроса сводится к общему решению сложной задачи упорядочения и к исследованию всех допустимых перестановок. Поэтому было сформулировано следующее правило распределения модулей, когда они становятся неограниченными.
Правило 1. Неограниченный модуль распределяется в соответствующий блок в период, когда этот модуль появляется.
Случай 3. В некоторый период распределения имеется более чем один неограниченный модуль и два или более модуля могут распределяться на один и тот же блок.
Учитывая правило распределения всех неограниченных модулей, появляющихся в период распределения, можно сделать вывод, что решение зависит в данном случае от порядка, в котором модули распределяются в один и тот же блок.
Рассмотрим задачу упорядочения, которая возникает, когда два модуля могут быть распределены в один блок в один период распределения, как показано ниже. Заметим, что за модулем 2 следуют два модуля, тогда как за модулем 3 следует только один модуль. После того как модуль распределен на блок А,
В А
условие очередности выполнено одновременно для модулей 2 и 3, и оба должны быть распределены на блок В. Нужно решить, в каком порядке модули 2 и 3 будут распределяться в блок В. В рассматриваемом случае топология является более важным фактором, чем время, и выбор сводится к одной из двух альтернатив. ’
Легко видеть, что если модуль 2 распределяется в блок В первым, то последующий период допускает параллельную процедуру для модулей 3 и 4, но если первым распределяется модуль 3, то условия очередности требуют линейного порядка всей последовательности распределения.
Времена выполнения двух рассматриваемых последовательностей распределения таковы: '
ии/х + ^ + тах^, /4) + /5
и
и
^1 + ^2 + ^3 + ^4 + ^5’
т. е. в первом случае время меньше.
В несимметрическом случае, когда два (или более) модуля могут быть распределены на один блок и число модулей, следующих за каждым из них, неодинаково, число предшествований модуля, характеризующее число модулей, следующих за ним в матрице очередности, служит, таким образом, решающим критерием для выбора порядка распределения.
Рассмотрим теперь симметрический случай, показанный ниже
- А/4 ВЦ- А/4 ВЦ
- А/4 ВЦ
- А/4 ВЦ
После того как модуль 1 распределен в блок В, можно выбирать любой из модулей 2, 3, 4 для выполнения в блоке А. Так как модули 2, 3 и 4 имеют одно и то же число предшествований (2), то это число предшествований нс может быть в данном случае критерием выбора.
Вышеприведенный случай подобен двойственной задаче распределения работы на п параллельно работающих устройств, для
которой решение—получение последовательности с минимальным временем выполнения — было найдено в [1]. Оптимальная последовательность дастся следующим правилом.
Модуль / предшествует модулю / + 1, если
min(4’ tB/+J< riling, tBj\
и модуль j совпадает с модулем / + h если
min('v 4«) = mLn(4«’
где tA —время, требуемое для модуля j в блоке A, a tB—время, требуемое для модуля j в блоке В.
Процедура иллюстрируется ниже; при этом пары модулей, выполняемых сначала в одном блоке, а затем в другом, считаются эквивалентными одной из параллельно работающих программ.
МодулиВремя А Время В
2,541
3,663
4,725
Рассматриваются времена использования блоков Л и В и находится минимальное из них.
Если этот минимум находится в столбце А, то соответствующий модуль распределяется на блок первым, если в столбце В, то модуль распределяется на блок последним.
Эта процедура повторяется; при этом производится перебор всех ранее распределенных модулей и находится следующее минимальное время. В случаях совпадения должен быть выбран один из совпадающих модулей.
Так как tB = 1, то модуль 5 помещается в блок А последним. Модуль 4 с t = 2 (следующее минимальное время) помещается в блок А первым. Модуль 3 оказывается в середине. Оптимальная последовательность будет иметь вид
432
।। ।ij—।—<—।—।—1—1—1—I
765
।—।—।—।—j—।|—।—1—II—I
Вышеприведенное решение утверждает, что пропуски нс имеют места, т. с. если парные модули 2, 5 выполняются параллельно, то порядок работы модулей в блоке А, а именно 4 — 3 — 2,
должен сопровождаться последовательностью 7 — 6 — 5 для блока В.
Заметим, что если минимальное значение времени находится для блока В во втором столбце, то этот модуль расположен в конце последовательности; если это минимальное значение находится в первом столбце, то модуль стоит на первом месте независимо от значений элементов второго столбца; правило всегда будет выбирать минимальное значение времени в первом столбце для первого распределения и этот выбор будет оптимально возможным выбором на этой стадии.
Решение для трех блоков и п модулей при отсутствии пропусков известно для двух частных случаев. Для общей задачи п модулей и т блоков общего решения нс существует. Если разрешены пропуски, то проблема еще больше усложняется.
Оба вышеприведенных анализа дают следующие правила для автоматической процедуры.
Правило 2. Когда в одном блоке могут быть выполнены два или более модуля, в первую очередь выполняется модуль с большим числом предшествований; оставшиеся модули выполняются в порядке убывания величины их числа предшествований.
Правило 3. Когда в одном блоке могут быть выполнены два или более модуля с одним числом предшествований, в первую очередь выполняется модуль с минимальным временем выполнения, оставшиеся модули выполняются в порядке возрастания времени их выполнения. В случае совпадения времен выбирается любой из совпадающих модулей.
Случай 4. Имеется только один номер, сводимый к нулю. Нет необходимости выбора, и преобразование единственно.
Случай 5. Имеется более одного номера для приведения к нулю.
Рассмотрим два модуля, которые были распределены в соответствующие блоки в период распределения pj. Если суммарное время использования соответствующих им блоков неодинаково, то сведение к нулю номера, соответствующего блоку, имеющему минимальное суммарное время, даст в период распределения ру+1 блок, который освобождается первым. На этой стадии процедуры минимизируется время простоя имеющихся блоков. Критерий для выявления блоков, которые освобождаются первыми, дастся следующими правилами.
Правило 4. Если в некоторый период распределения к нулю могут быть сведены два или более номера модулей, то в
первую очередь выбирается номер модуля, соответствующего блоку, имеющему наименьшее суммарное время использования. -
Правило 5. Если в некоторый период распределения к нулю могут быть приведены два или более номера модулей и суммарное время использования соответствующих этим модулям блоков одинаково, то в первую очередь выбирается номер с большим числом предшествований.
Случай 6. Преобразование номеров дает неограниченный модуль, распределение которого может удовлетворять или не удовлетворять условиям очередности.
Преобразованный номер обозначим через //, пусть модуль mt распределен на блок Л. Если неограниченный модуль т^ появился в предыдущем периоде распределения при сведении It к нулю, то он будет распределен на блок Л или на какой-нибудь другой блок. Если ту соответствует тому же блоку, что и mt, то, очевидно, mj будет следовать за гщ во временной последовательности. Однако, если модуль mj распределен не на тот блок, на который распределен модуль тр то условия очередности могут быть не выполненными. Следовательно, нужно сравнить суммарное время использования блока, соответствующего mL, включая время выполнения модуля mt, с суммарным временем использования блока, соответствующего т^, нс включая времени выполнения модуля ту. Если первое время больше второго, то надо уравнять счетчики обоих блоков, прежде чем будет распределено т7-.
Например, если суммарное время использования блока Л после выполнения операции mt равно пяти единицам, а суммарное время использования блока В, с которым должен быть сопоставлен модуль mt, равно трем единицам, то очевидно, что хотя модуль ту и был неограниченным в матрице распределения, он не мог быть распределен в блок В, пока нс выполнен модуль тГ Блок В будет иметь время бездействия, равное двум единицам, и суммарное время использования блоков Л и В перед выполнением модуля mj делается равным пяти единицам. Если бы суммарное время использования блока Л после выполнения mt было равно трем единицам, а время использования блока В до выполнения mj пяти, то уравнивать счетчики было бы не нужно.
Временная проверка, необходимая для обеспечения условий очередности, содержится в следующем правиле.
Правило 6. Если модуль mj не ограничен при сведении к нулю Ц и модуль mj распределен в тот же блок, что и ть то
нм*-о вп—о ТАБЛ*-О
Уравнять счетчики ТВП = ТТА5Л
Рис. 6. Автоматическая программа упорядочения.
условия очередности для гщ удовлетворены. Если модули mtu гщ распределены в разные блоки, то осуществляется проверка
Tk.<Tfej?
Если получен положительный ответ, то модуль mj может быть распределен в указанный блок. Если ответ отрицателен, то величины Tk. и Tk. перед распределением должны уравниваться.
Фактически правило 6 вводит в процесс упорядочения время простоя (для того чтобы удовлетворить требованиям очередности). Все решения, полученные с помощью процедуры преобразования номеров модулей и временной проверки, являются допустимыми.
Шесть сформулированных выше правил входят как составные части в блок-схему (рис. 6) программы автоматического выполнения процесса упорядочения на вычислительной машине. Задача упорядочения с матрицей распределения, изображенной на рис. 5, решается теперь с помощью этой блок-схемы и матрицы распределения. (Запись X^-Y в блок-схеме означает, что функция X заменяется функцией У.)
Запись НМ в блок-схеме обозначает оперативный накопитель для неограниченных модулей в начале периода распределения. ВП есть место в оперативном накопителе, используемое для временной проверки в процессе преобразования номеров. ТАБЛ — часть памяти, в которой хранится информация о распределении модулей по блокам и время использования блоков. ,
После задания исходных значений НМ, ВП, ТАБЛ и / просматривается первая строка матрицы распределения. Модуль тх оказывается неограниченным и в НМ записывается информация mv (Л) 3.
Поскольку матрица ненулевая и I ^ п (п = 20), / увеличивается на единицу и производится поиск второй строки матрицы. Находим второй неограниченный модуль т^ и записываем в НМ информацию т2(С)5. Эта процедура повторяется, пока нс просмотрены все строки матрицы. Множество модулей распределенных в период рх, имеет вид ^ = \тх, т^, т3, т^. Содержимое НМ есть т4(Л)3, m2(C)5, т3(В)2, /7?4(Л)4.
Поскольку содержимое памяти НМ нс равно нулю, производится определение последовательности, в которой модули распределяются по соответствующим блокам (часть Х3 блок-схемы). Заметим, что модули тх и т^ должны быть распределены в блок Л; при этом оба модуля имеют одинаковое число предшествований (6), но tY = 3, тогда как Z4 = 4. Поэтому модуль тх будет распределяться в блок Л прежде пи, а поскольку содержимое ВП равно нулю в этот момент (часть Х6 блок-схемы), модуль тх
действительно распределяется в блок Л, а в счетчик блока Л добавляется 3; обозначение Д в матрице распределения приводится к нулю и запись, тх (Л)3 переносится из НМ в ВП. После того как модудь т4 распределен (Х5), счетчик Л содержит 7. Модули т2 и т3 распределяются по соответствующим блокам единственным способом.
Распределения в период рг суммированы ниже и соответствующие значения различных ячеек памяти показаны в таблице на рис. 9.
тх—>А, ТА = 3, 0«—А(Д = #п), т4—>Л, ТА =3 + 4-7, 0 —Л4(Л4 = а41), т2—>С, ТС^Ь, 0^—С2(С2 —#21), т3—>В, Тв=^2, 0.—В3(В3 — fl3i).
Первые четыре строки матрицы содержат теперь только нули и в начале периода р^ нет неограниченных модулей.
Теперь программа осуществляет процесс преобразования чисел (часть Х2 блок-схемы). После проверки ВП = 0 ищется номер модуля, для которого время использования соответствующего блока минимально; Тв = 2— минимальное время; поэтому /3(В)2 помещается в ВП, а номер /3 приводится к нулю во всех строках матрицы распределения, в которых он содержится. Затем время в ТАБЛ делается отрицательным и тем самым исключается из дальнейшего рассмотрения.
Повторный поиск в матрице распределения после приведения /3 к нулю обнаруживает, что больше неограниченных модулей нет, поскольку в конце поиска НМ содержит нуль. Поэтому процесс преобразования чисел осуществляется вторично. /3 (В) 2 стирается из ВП и 1Х выбирается в качестве следующего номера с минимальным временем накопления. После приведения к нулю всех 1Х в матрице распределения, модули т5 и т6 становятся неограниченными и подвергаются распределению.
Оба модуля т5 и т6 распределяются в блок В, причем порядок распределения определяется правилами, а именно: т5 распределяется раньше т^ так как число предшествований модуля т5 больше числа предшествований модуля т6. Так как ВП содержит теперь +(,4)3, требуется временная проверка (Х4). Так как блоки, обозначение которых содержатся в НМ и ВП, различны, сравниваются счетчики блоков А и В. Проверка Тл( = 3)<^ ^Тв( = 2)? дает отрицательный результат, указывая, что модуль 772! нс может быть выполнен за время выполнения т3, и, поскольку модуль mY должен предшествовать m5, a т3 следовать за т5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
6
7
8
С
9
С
10
5
С
11
7
А
12
8
В
13
9
В
14
5
6
10
А
15
7
11
В
16
7
11
С
17
8
9
12
13
А
18
5
6
10
14
С
19
7
11
15
С
20
5
6
7
8
9
10
И
12
13
14
15
16
17
18
19
В
Рис. 7.Рис. 7.Матрица распределения в начале четвертого периода распределения.
Рис. 7.
Рис. 7.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1
2
3
4
5
б
7
8
9
11
И
12
13^
9
В
11
6
10
А
15
11
В
16
11
С
17
9
12
13
А
18
6
10
14
С
19
11
15
С
20
6
9
10
11
12
13
14
15
16
17
18
19
В
Рис. 8. Матрица распределения в конце седьмого периода распределения.
р
НМI
ТАБЛ
вп
/
К
t
А
в
с
1
К
7
1
Т
1
Т
I
Т
1
1
2
3
4
А
С В
А
3
5
2
4
/
4
®
3
©
2
©
2
5
6
В
В
4
3
5
6
©
3 /
В
А
2
3
3
7
А
3
7
2
С
5
4
8
9
С
С
2
4
8
9
4
А
7
5
10
С
2
10
©
5
В
7
6
12
В
4
12
®
8
В
9
7
11
А
6
11
7
А
10
8
13
В
3
13
®
6
9
В
С
10
13
9
14
А
3
14
12
10
В С
14
15
10
15
16
В
С
4
3
15
16
© ©
11
Д
16
И
17
А
5
17
13
В
17
12
18
С
4
18
@
14
А
19
13
19
С
3
19
@
16
15
С
В
19
21
14
20
В
2
20
® @
18
17
19
С
А
С
23
24
26
Рис. 9. Таблица распределения.
в блоке В, этот блок бездействует до тех пор, пока в блоке А не будет выполнен модуль mv Уравнивая счетчики ТА = Тв = 3 (посредством добавления в счетчик блока В времени простоя, равного единице), мы удовлетворяем требованиям очередности. После уравнивания счетчиков происходит распределение модуля т5 в блок В, указанное на рис. 9 шестиугольником. Модуль me проверяется после т5 и распределяется в блок В после временной проверки.
Совокупность действий во втором периоде распределения такова:
Р2 • ^<—73(73 ^7,2’ ^11,2» ^15,2» ^16,2» ^19,2» ^20,з)’ 0^71(71 = ^51, Q^ , #1OJ, ^14|1, ^18,1’ а20,1)» т5 (В) 4 -> НМ, т6 (В) 3 -> НМ, 4n5>4H6(4nz — число предшествований модуля /), ГЛ(-3)>ГВ(=2), тА-тв-^ тДВ^В, Гв-3 + 4 = 7, 0 ^-В5(В5 = а5 2), ^(-3)<TB(=7), т6(В)3->В, Тв = 7 + 3=10, О^ВДВ^а^у Оставшаяся часть процедуры и соответствующие записи в память содержатся в таблице на рис. 9.
Матрица распределения в начале четвертого периода показана на рис. 7, а ее вид в конце седьмого периода — на рис. 8.
На рис. 10 сравниваются временные диаграммы машинного решения с диаграммами для двух «хороших» решений и трех «плохих», полученных вручную.
Метод решения, описанный выше, является приближенной оптимизацией и оптимизирует отдельные части задачи. Правила автоматического процесса упорядочения были получены с помощью анализа частных случаев временных и топологических характеристик, полученных для различных частей сложной диаграммы очередности. Затем они были обобщены для всей диаграммы. Поэтому общее решение не является оптимальным. Хотя каждое правило гарантирует оптимальное решение в области его применения, комбинация результатов не обязана быть оптимальной.
• Полученное решение является, безусловно, допустимым, хотя не обязательно единственным. В исследованных примерах было получено оптимальное или близкое к оптимальному решение.
А Решение полученное с помощью автоматического распределения
п 14711141 ?
г д ‘‘ /2 ‘ ‘ ‘ '/3 * ' /5 * ‘ ‘ '20
174111417
Упорядочение разветвленных программ
Способность описанной выше процедуры производить распределение на каждом шагу без анализа всей задачи является весьма ценным свойством, так как в реальных программах вычислительных машин путь, который программа выбирает в любой заданный момент времени, заранее неизвестен, хотя альтернативные пути известны из матрицы распределения.
Рис. 11. Линейный граф разветвленной блок-схемы.
Рассмотрим программу, блок-схема которой представлена линейным графом рис. 11. Граф содержит три точки ветвления и один цикл. Модули 2 и 18 являются условными передачами, которые вводятся в программу вследствие двойственности решений. Модуль 4 — разветвленная условная передача. Модуль 3 имеет вид 5<-Г(Х), где F (X) = 1, 2, 3 или 4. Модуль 4 мог бы иметь форму переключателя на S. Используя процесс построения пути, описанный в разд. 2, с помощью матрицы связи (рис. 12) можно автоматически получить таблицу пути этого графа, изображенную на рис. 13, которая содержит все возможные пути выполнения программы.
Обратный путь в цикле от модуля 19 к модулю 1 опущен в таблице путей, так как безусловная передача, связанная с модулем 19, возвращала бы программу к модулю 1 всякий раз, когда
достигается модуль 19. Если цикл возвращается к модулю 1, то в дальнейшем можно следовать по любому из 10 возможных путей.
/
-1
1
2
1
-1
-1
3
1
-1
4
1
-1
-1
-1
-1
5
1
-1
6
1
-1
7
1
-1
8
1
-1
9
1
-1
10
1
1
-1
11
1
-1
12
1
-1
1
13
1
1
-1
14
1
-1
15
1
-1
16
1
-1
17
1
-/
18
1
1
-1
-1
19
1
-1
20
1
Рис. 12. Матрица связи.
Если состояние программы в точках условной передачи известно, то конкретные пути, принимаемые ветвящимся модулем, могут быть определены единственным образом. С этой целью вводится матрица переходов Т ^и\, которая является (лХт)- матрицей, где п— число путей программы, a m— число модулей, для которых правило преобразования есть условная передача.
Входами матрицы могут быть числа —1, 0, 1, . . . , г, где г — наибольшее число положений многозначного переключателя в программе.
Поскольку обычно модуль перехода нс является инцидентным каждому пути, символ —1 будет означать неинцидентность. Если условный переход является переходом типа ДА или НЕТ (плюс или минус,> или< и т. д.), то нуль означает выбор НЕТ, а единица означает выбор ДА. В других случаях условный переход означает выбор одной из многих ветвей пути. Если А-с положение модуля / переключает программу на путь г, то
значением элемента ttj будет к. Если модуль / не лежит на пути /, то значением элемента t^ будет —1.
Матрица переходов линейного графа рис. 11 показана на рис. 14. Каждый из 10 возможных путей программы единственным образом определяется заданием значений модулей 2У 4,18.
Рис. 13. Таблица путей.Рис. 13. Таблица путей.ПутьМодуль2418Об1/0р//1X/206/21с/30с/31и140е/41X0-/00-11ПутьМодуль2418Об1/0р//1X/206/21с/30с/31и140е/41X0-/00-11Рис. 14. Матрица переходов.Рис. 14. Матрица переходов.
Рис. 13. Таблица путей.
Рис. 13. Таблица путей.
Путь
Модуль
2
4
18
Об
1
/
0
р
/
/
1
X
/
2
0
6
/
2
1
с
/
3
0
с
/
3
1
и
1
4
0
е
/
4
1
X
0
-/
0
0
-1
1
Путь
Модуль
2
4
18
Об
1
/
0
р
/
/
1
X
/
2
0
6
/
2
1
с
/
3
0
с
/
3
1
и
1
4
0
е
/
4
1
X
0
-/
0
0
-1
1
Рис. 14. Матрица переходов.
Рис. 14. Матрица переходов.
Пусть условия очередности для выполнения модулей программы имеют вид, показанный на рис. 15. С помощью метода из разд. 3 для программы может быть получена матрица распределения, показанная на рис. 16. 1. Распределение модулей не может производиться по матрице такого вида, так как номера модулей меняются, а условия очередности сильно зависят от того, по какому пути мы следуем.
Используя таблицу путей для того чтобы определить, какие модули имеются на каждом пути, и выясняя с помощью матрицы переходов, по какому пути идет в данный момент программа, в матрице распределения можно вычеркивать строки и столбцы, соответствующие модулям, которые не встречаются на этом пути. Преобразованные таким образом матрицы для путей аир
показаны на рис. 16. 2 и 16.3. Число предшествований для каждого модуля может быть определено из таблицы путей, так как оно меняется в соответствии с путем следования.
Рис. 15. Диаграмма очередности блок-схемы.Рис. 15. Диаграмма очередности блок-схемы.
Рис. 15. Диаграмма очередности блок-схемы.
Рис. 15. Диаграмма очередности блок-схемы.
Процесс распределения может осуществляться с помощью
приведенных матриц распределения.
Заключение
Был описан автоматический процесс упорядочения, основанный на модели блок-схем программ, которые строятся с помощью теории графов. Если дано описание программы в виде матрицы связи и матрицы очередности, то вычислительная машина может получить матрицу распределения и построить все возможные пути разветвленной программы. Процесс упорядочения автоматически распределяет модули (группы команд) в соответствующие наперед заданные автономные блоки, исходя из требований очередности, что гарантирует допустимость решения.
Процесс может быть использован для дальнейшего изучения методов получения оптимальных решений. Нам кажется, что изменяя правила процесса и (или) вводя новые правила, возможно получать оптимальное решение с большой вероятностью успеха.
/
А
2
1
С
3
1
2
А
4
1
2
3
D
5
1
2
3
4
D
6
1
2
3
4
А
7
1
2
3
4
В
8
1
2
3
4
С
9
1
2
3
4
5
С
10
1
2
3
4
В
1
В
11
1
2
3
4
D
12
1
2
3
4
5
6
7
9
10
С
13
1
2
3
4
5
6
7
8
9
10
11
12
В
14
1
2
В
15
1
2
14
С
16
1
2
14
Д
17
1
2
14
15
D
18
1
2
3
4
5
Б
7
8
9
10
11
12
13
14
15
16
17
Д
19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
В
20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
D
16.1 Программная матрица
16 2 Матрица пути ос
Рис. 16. Матрицы распределения.
1
А
2
1
С
14
1
2
В
15
1
2
14
С
16
1
2
14
А
17
1
2
14
15
D
18
1
2
14
15
16
17
А
20
1
2
14
15
16
17
18
D
16.3 Матрица пути р
Однако добавление каждого нового правила усложнит и увеличит время процесса для процедуры упорядочения и может потребовать дополнительного объема памяти.
ЛИТЕРАТУРА
LourieN., Schrimpf Н., Reach R., К a h n W., Arithmetic and control techniques in a multi-program computer, Proc. Eastern Joint Comput. Conf., 1959.
L e i n e r A. L., N о t z W. A., Smith J. L., M a r i m о n i R. B., Concurrently operationg computer systems, Intern. Conf. Information Proc., UNESCO(NS) *(ICIP) B. 2. 17, 1959.
P о r t e r R. E., Programming a polymorphic system, Conf. Parallel Programming, May 1960.
С о d d E. F., Multiprogram scheduling, IBM Corp., Paper TR 00.716, April 1960.
H о 1 1 a n d J., A universal computer capable of executing an arbitrary number of subprograms simultaneously, Proc. Eastern Joint Comput. Conf., 1959.
Schwartz E. S., Network properties of computer programs, Armour Research Foundation, 1960 (не опубликовано).
Prosser R. T., Application of Boolean matrices to the analysis of flow charts, Proc. Eastern Joint Comput. Conf., 1959.
Karp R. M., A note on the application of graph theory to digital computer programming, Information Control (June 1960), 179—190.
Veblen O., Analysis Situs, Am. Math. Soc. Colloquium Publ., vol.
Pt. 2, 2nd ed., Ch. 1, 1931.'
В a r a n k i n E.W., Precedence matrices, Management Sci. Res. Project, Rep. 26, Univ. Calif., December 1953.
Johnson S. M., Optimal two-and three-stage production schedules with setup times included, Nao. Res. Log. Quart. (March 1954), 61—68.
СОДЕРЖАНИЕ
Вычислительные машины
Предварительное рассмотрение логической конструкции электронного вычислительного устройства. А. Беркс, Г. Голдстейн, Дж. Нейман.
Перевод В. К- Смирнова 7
Математические вопросы
Кодирование и связь. Дж. М. Возенкрафт, Р. С. Кеннеди. Перевод Б. С. Цыбакова 71
Обсуждение состояния теории кодирования и вопросов практического использования кодов. У. У. Питерсон. Перевод Б. С. Цыбакова . . 90
Пропускная способность канала с пакетами ошибок. Э. Н. Гилберт.
Перевод Э. И. Рузайкина109
Вероятностные автоматы. М. О. Рабин. Перевод Р. Г. Бухараева . .
Матрицы заключительных мощностей и матрицы пропускных способностей ветвей. В. Майеда. Перевод Е- П. Липатова142
Синтез сетей связи. Р. Т. Цзянь. Перевод Е. П. Липатова167
Оптимальный синтез сети связи. О. Уинг, Р. Т. Цзянь. Перевод Е. П. Липатова190
Применение динамического программирования к задачам упорядочения. М. Хелд, Р. М. Карп. Перевод А. Н. Ляпунова202
Применение динамического программирования к задаче о коммивояжере. Р. Беллман. Перевод А. Н. Ляпунова219
Программирование
Программирование и теория категорий. Ж- Риге. Перевод О. Н. Бондаренко 225
Автоматический процесс упорядочения модулей и его приложение к параллельному программированию. Ю. С. Шварц. Перевод Р. В. Софроницкой240
КИБЕРНЕТИЧЕСКИЙСБОРНИК
вып. 9
Редактор Е. М. Дмитренко
Художественный редактор В. И. ШаповаловТехнический редактор Е. С. ПотапенковаКорректор Т. А. Палладина
Сдано в производство 18/11 1964 г.
Подписано к печати 18/VII 1964 г.Бумага 60x90Vie- Бум. листов 8,5.Печ. л. 17. Уч.-изд. л. 14,3. Изд. № 1/2677.
Цена 1 р. 20 к. Зак. 102
ИЗДАТЕЛЬСТВО «МИР»Москва, 1-й Рижский пер., 2
Ярославский полиграфкомбинатГлавполиграфпрома Государственногокомитета Совета Министров СССР по печати.Ярославль, ул. Свободы, 97.
3. Первые замечания об управлении и коде
3.1. С помощью методов формальной логики легко убедиться в существовании кодов, которые в принципе оказываются при
годными для управления. С их помощью легко можно осуществить выполнение любой последовательности операций, имеющихся в машине и задуманных в своей совокупности человеком, планирующим задачу. С современной точки зрения при выборе
кода решающее значение имеет практическая сторона дела: прос
тота оборудования, требующегося для этого кода, ясность его
применения к действительно важным задачам, а также скорость
решения этих задач с его помощью. Подробное и достаточно об
щее рассмотрение всех этих вопросов завело бы нас слишком
далеко; поэтому мы ограничимся только анализом типа кода, ко
5 Заказ № 102
1) Chien R. Т., Synthesis of a communication net, IBM J. Research and Development, 4, № 3 (1960), 311—320.
б „Хорошие11 решения
В. ,, Плохие “ решения
Рис. 10. Временные диаграммы решений.
В качестве нижней границы рабочего времени для решения задачи можно принять максимальное время, требуемое для выполнения модулей в соответствующих блоках. Времена использования блоков в рассматриваемом примере таковы:
2 G = 24, 2 U - 22, 2 tc - 23.
i^A i i^B i i^C t
Отсюда минимальным возможным для решения задачи временем будет время, требуемое блоком Л, т. с. 24 единицы времени. В качестве верхней границы рабочего времени может рассматриваться общее время, требуемое для выполнения всех модулей 2Т^ = 69.
Поскольку все модули должны предшествовать модулю 20, выполняемому в блоке В, для получения величины минимального времени решения задачи к 24 единицам времени использования блока А должны быть добавлены еще две единицы. Значение 28 близко аппроксимирует действительную нижнюю границу 26.
Кибернетическийсборник
9
СБОРНИК ПЕРЕВОДОВПод редакциейА. А. Ляпунова и О. Б. Лупанова
19 6 4Издательство «Мир»Москва
Научный совет по кибернетикеУДК 519.95
Академии наук СССР
Настоящий сборник — девятый в серии периодических сборников по кибернетике.
Сборник открывается статьей А. Беркса, Г. Голдстейна и Дж. Неймана, в которой рассматриваются общие логические вопросы, возникающие при конструировании электронных вычислительных машин.
В разделе, посвященном математическим вопросам, помещены статьи по теории кодирования, вероятностным автоматам, теории сетей и динамическому программированию.
В первой из двух статей последнего раздела рассматривается применение теории категорий в программировании. Во второй статье предлагается алгоритм автоматического распределения памяти при составлении программ цифровых вычислительных машин параллельного действия.
Сборник будет полезен математикам, специалистам по вычислительной технике, программистам, а также лицам других специальностей, занимающимся вопросами кибернетики и ее приложений.
Редакция литературы по математическим наукам
Вычислительные машины
Л. Беркс, Г. Голдстейн, Дж. Нейман
Этот отчет был подготовлен в соответствии с договором между Научноисследовательским отделом Артиллерийско-технического управления армии США и Институтом новейших исследований. Он является первой из двух статей, посвященных общим логическим вопросам, которые возникают при рассмотрении электронных вычислительных машин. В первой статье сделана попытка дать общую картину рассматриваемого электронного вычислительного устройства. Во второй статье будет изучен вопрос кодирования существующих математических задач, т. е. подготовки их на таком языке, который может понимать машина.
Мы намереваемся выпускать время от времени отчеты, охватывающие различные стадии этого проекта. Статьи будут появляться всякий раз, когда будет чувствоваться, что по данному вопросу проделана достаточная работа, логическая или экспериментальная, чтобы оправдать сообщение о ней.
Авторы хотели бы выразить благодарность д-ру Дж. Тьюки из Принстонского университета за ценные предложения и участие в обсуждениях.