Книга
Книга
ВВЕДЕНИЕ
Пусть п>3 (>4)—целое число и ^п (utn)—симметрическая (знакопеременная) группа степени п и порядка п\ ^nXj^.
Обозначим через 1, 2, ..., п элементы подстановок группы (5%.
Известно, что ни группа <5% ^п^^, ни группа <^п (и >4) не могут быть порождены одной подстановкой. Напротив, для всех п^З (/1^4) существуют пары подстановок в группе ^л Ц»), порождающие эту группу.
Пара S, Т подстановок группы <Уп (с^л) называется базисом этой группы, если все подстановки из £Р п {JL^ могут быть получены в виде суперпозиции (конечной) S и Т.
Мы докажем, что при любом целом п^ 3 (^4) для каждой нетождественной подстановки S группы <Уп (А^ существует по крайней мере одна подстановка Т группы ^л (с^л), которая вместе с S составляет базис группы ^л (с^л), за исключением трех подстановок (1 2) (3 4), (1 3) (2 4), (1 4) (2 3), которые не входят ни в один базис группы ^4.
ОПРЕДЕЛЕНИЯ И ПРЕДВАРИТЕЛЬНЫЕ ЗАМЕЧАНИЯ
Определение 1. Пусть 5 и Т— две подстановки из элементов 1, 2, ..., п (.п^Зу Назовем их связанными, если не существует собственного подмножества Е^ множества Е = ={1, 2, ..., п\ состоящего из множества элементов некоторых циклов как для 5, так и для Т. Например, подстановки 5 = = (12) (3 4) и Т=(1) (2 3) (4)—связанные, а подстановки 5=(1 2 3) (4) и Т=(1 2) (3) (4)—несвязанные; здесь Ev = ={1, 2, 3).
Замечание 1. Две несвязанные подстановки группы ^д порождают нетранзитивную группу. Но группа ^п (Лп) транзитивна. Поэтому необходимым условием того, чтобы две подстановки группы <Уп (ut^ были ее базисом, является их связанность.
Определение 2. Назовем две подстановки S и Т группы ^п непримитивными. если можно разложить множество Е = ={1, 2, ..., п} в сумму £ = £1 + £2+ ... + Е:к (6 > 2) попарно не- пересекающихся множеств одинакового порядка таким образом, чтобы и 5 и Г преобразовывали каждое множество Et в некоторое множество Е^. Если такое разложение множества Е невозможно, то S иТ называются примитивными.
Например, две подстановки 5 = (1 2 3 4) и Т= (1 2) (3 4) из группы 5^4 непримитивны, так как E = Ei + E2, ^i={l, 3}, Е2= = {2, 4}, и 5 и Т переводят Е^ в Е2 и Е2 в Ev Подстановки 5 = = ( 1 2 3 4) и 7=(1 2) примитивны. Если п— простое число, то две связанные подстановки группы <У п (Лп} всегда примитивны.
Замечание 2. Непосредственно видно, что две непримитивные подстановки порождают непримитивную группу. Группы же ^« и Л п примитивны. Поэтому необходимым условием того, чтобы две подстановки группы ^п (Лп) были базисом, является их примитивность.
Замечание 3. Если две подстановки 5 и Т группы ^п кЛп^ принадлежат одной и той же собственной подгруппе группы (^л V^nV они не могут, очевидно, составлять базис группы ^п (Лп). Напротив, если можно показать, что подстановки Si и Ti, о которых известно, что они составляют базис, входят в группы, порождаемые соответственно подстановками 5 и Т, то можно утверждать, что подстановки 5 и Т также составляют базис группы <5% \ЛпУ
Замечание 4. Каковы бы ни были подстановки 5 и Т, составляющие базис группы <Уп (Лп), и какова бы ни была
подстановка R из ^л (<;£„), две подстановки S1 = /?S/?-1 и Т^ = = RTR"X тоже составляют базис ^л (dj. Мы будем говорить, что базис Si, Л получен трансформированием базиса S, Т подстановкой R.
Обозначения. 1. Пусть п > 1—целое число, к — целое число, такое, что 1 ^ к ^ п\, и пусть 5Ь 52, ..., S& — подстановки элементов 1, 2, ..., п. Обозначим символом (5Ь 52, ..., 5^) группу, порожденную подстановками 5Ь 52, ..., 5^. Группа (Si, 52, ..., 5^) содержит все подстановки, которые можно получить конечными суперпозициями подстановок Sb S2, ..., Sk. Для краткости мы будем говорить, что подстановки 5Ь 52, ... ..., 5ft порождают подстановку Т или группу G, если Т, соответственно G, входят в группу (Si, 52, ..., 5^).
Пусть п > 1 — целое, 5 = (1 2 ... л) и о, 6 — два различных числа из множества {1, 2, ..., п\ Обозначим через ab и назовем расстоянием между а и b в цикле 5 наименьшее целое число между 1 и п— 1, такое, что a-Vab=b (modn). Например: п=10, а = 9, Ь = ^. Тогда ab = 4. Очевидно,
■ ab + Ьа = п.
Более общий случай: пусть к^Х, т^ т2) ..., тк— последовательность из к целых чисел, таких, что 1 ^ т^ •< т2 ^ ... ^.т^ и по крайней мере одно из чисел mw — ^г (f = 0, 1, ..., к — 1, то = О) больше 1; пусть, кроме того, 5=(1 2 ... т^ (mi+1 ... ... m2) ... (m^-i+J ... т^ и C=(mi+1 m^ + 2 ... mw^ 0^i^.k—1—какой-либо цикл порядка >1 в 5 и а, b— какие-либо два различных элемента из этого цикла. Назовем расстоянием между а и b в_цикле С или, короче, расстоянием между а и b (обозначается^аб) наименьшее положительное целое число, такое, что a + ab = b (mod (mw\- т^). Очевидно, ab + ba = mw — т<. )
Каковы бы ни были целые числа аь а2, ..., ак (к >2), обозначим их наибольший общий делитель через D (а^ а2, ... $.., akY
Символ Е = ^а, Ь, с, ...} обозначает множество Е, состоящее из элементов а, Ь, с ... .
НЕСКОЛЬКО КРИТЕРИЕВ, ПОЗВОЛЯЮЩИХ РАСПОЗНАВАТЬБАЗИСЫ СИММЕТРИЧЕСКОЙ ГРУППЫ
Лемма 1. Каково бы ни было целое число п^ 2, транспозиции'-
(1 2), (2 3), ..., (п — 1 п)(*)
порождают группу ^п.
Доказательство. Очевидно, что лемма верна при п = 2. Пусть О2и лемма верна для п—1. По предположению, транспозиции (1 2), (2 3), ..., (п— 2 п— 1) порождают группу ^n-i. Транспозиции (1 2), (1 3), ..., (1 п—1) принадлежат ^л-р Кроме того, имеем (1 п — 1) • (п — 1 п) • (1 п — 1) = (1 п). Следовательно, п — 1 транспозиций
(1 Z), Z = 2, 3, ..., п, (**)
могут быть получены суперпозициями транспозиций (*')• Но транспозиции (**), как известно, порождают группу <Уп. То же относится и к транспозициям (*), что и требовалось доказать.
Теорема 1. Каковы бы ни были целые числа п^З и fe(l4.k4n^ две подстановки S=(l 2 ... п) и Т=(к к+\) (если к = п, то k+\ заменяется на 1) составляют базис группы (Уп.
Доказательство. Действительно, каково бы ни было / из последовательности 1, 2, ..., п—1, имеем (Z Z+l) = = Si-KTSk-i. Следовательно, транспозиции (1 2) (2 3) ... ... (п — 1 и) могут быть получены суперпозициями S и Т, и поэтому в силу леммы 1 подстановки S и Т образуют базис группы &7V
Лемма 2. Каково бы ни было целое число п^3, подстановки
(1 2 3), (2 3 4), (п — 2 п — 1 п) ' (♦)
порождают группу Ли.
Доказательство. Лемма очевидна при п = 3. Легко проверить, что она также верна и при п = 4. Пусть п — целое число >4; предположим, что лемма доказана для п— 1. Докажем ее для п. По предположению, подстановки (1 2 3), (234),... ..., (п— 3 п— 2 п—1) порождают группу Лп-ь Но эта группа содержит подстановки (1 2 3), (1 2 4), ..., (1 2 п—1), а также подстановку R=(2 п—1) (1 п— 2). Имеем R-(n— 2 п—1 n^*R=(\ 2 и). Следовательно, п— 2 подстановок
(1 2 Z), Z = 3, 4, ..., а (**)
получаются суперпозициями подстановок (*). Но подстановки (**), как известно, порождают группу Л^ поэтому подстановки (*) также порождают группу Л^ что и требовалось доказать.
Теорема 2. Каково бы ни было четное (нечетное) число п^ 3 и 6(1 ^ к 4п), две подстановки 5=(1 2 ... п) иТ= = (6 6+1 6 + 2) составляют базис группы ^п (Л^.
Доказательство. Каково бы ни было i из последовательности 1, 2, ..., п— 2, имеем 8*-кТ8к~1 = (Z Z+Ч Z + 2). Следовательно, п — 2 подстановки (1 2 3), (2 3 4), ..., (п— 2 п — 1 п) (*) получаются из суперпозиций двух подстановок S и Г, а подстановки (*) порождают группу <^п в силу леммы 2. Отсюда следует, что подстановки S и Г порождают также группу^ Мл), если п четно (нечетно), что и требовалось доказать.
Лемма 3. Каковы бы ни были целые числа п^ 3 и к (2 ^ 6 < /г), подстановки
Т^'=у, Z-j—1 Z-j—2 Z ~+6—1), Z^l, 2, п — 6-+1 (*) порождают группу <Уп Мл), если к четно (нечетно).
Доказательство. Лемма 3 сводится к лемме 1 при 6=2 и к лемме 2 при 6 = 3. Пусть 6>3. Предположим сначала, что я = 6+1 и, следовательно, п— 6+1=2. Имеем
Т’Г1Г2 = (1 Н+1)и тХО к >fe+l) 7Т2 = (1 2 3).
В силу теоремы 2 две подстановки Ли (1 2 3) порождают группу^ Мл), если & четно (нечетно). Группа, порожденная подстановками Л и (12 3), содержит во всяком случае подстановки (1 2 3), (1 2 4), ..., (1 2 6). Но[(1 2 6) (1 6 6+1) (1 6 2)]2= (1 2 6+1). А так как подстановки (1 2 3), (1 2 4),... ..., (1 2 6 + 1) порождают группу cz£k+i, то, следовательно, подстановки Т^ и Г2 порождают rpynny^ft+1 Whi), если 6 четно (нечетно). —
Предположим теперь, что п > 6+1, т. е. п > 5, и что мы уже доказали лемму для п—1. Докажем ее для п. По нашему предположению, подстановки
Л» ^2> • • •> Тп_к (**) порождают группу c^n-i Mn-i), если 6 четно (нечетно). Следовательно, группа (Л, Л, • •., Л-д) содержит во всяком случае подстановки (1 2 3), (1 2 4), ..., (1 2 п—1), а также две подстановки
Р = ^п— 2 п— З...м — 6 + 2 п— 6 + 1) и
Q - (1 п — 6+1)(2 п— 1).
Имеем QTn_k+1PQ=(l 2 я). Следовательно, подстановки (1 2 /), / = 3, 4, ..., щ входят в группу (Л, Г2, ..., Тп-к^ и поэтому подстановки (*) порождают группу ^п (ЛпУ если к четно (нечетно), что и требовалось доказать.
Теорема 3. Каковы бы ни были целые числа п ^ 3, k(1 < к < п) и m^4m<.n^ две подстановки S = (1 2 ... п) и Т=(т т + 1 ... mA-к—И) (здесь числа, большие п, берутся по mod и) составляют базис группы ^п. если хотя бы одно из чисел п, к четно, и базис группы Лп. если оба эти числа нечетны.
Доказательство. Каково бы ни было целое число /(1 ^ / ^ /г — 6 + 1), имеем Т^=Ц i+1 ... i+k — 1) =8^тТ8т-\ Но в силу леммы 3 подстановки Л, Г2, ..., Тп_к-н порождают группу ^п^п)» если 6 четно (нечетно). Отсюда следует, что (5, Г) = ^п, если хотя бы одно из чисел п, к четно, и (S, Г) = Л^ если оба числа п и к нечетны, что и требовалось доказать. Теоремы 1 и 2 являются частными случаями теоремы 3.
Следствие. Каковы бы ни были целые числа я > 3, к (1 < к < /г) и i (1 + i + к), две подстановки 8 = (1 2 ... 6) и T=(i 6+1 6 + 2 .. л) составляют базис группы <Уп, если хотя бы одно из чисел п, к четно, или базис группы Лп, если оба эти числа нечетны.
Доказательство. Действительно, положим Р = = Sh-iTS*h^i. Имеем
Г = (6 6+1 ... п\ £Г = (1 2 ... п\
Две подстановки Р и SP порождают в силу теоремы 3 группу или группу Лп в соответствии с тем, четно ли хотя бы одно из чисел щ к или оба они нечетны. Утверждение следствия получается отсюда при помощи замечания 3.
Лемма 4. Взяв некоторое число 6 > 1 транспозиций Т< = ^^агЬ^, /=1, 2, ..., 6, таких, что для всех значений индекса /=1,2, ..., к — 1 множества
Vh, bv а2, b2, .... аь ЬД и {az+1, 6Z+1}
имеют по крайней мере один общий элемент, мы получим базис симметрической группы 6Р подстановок всех элементов, переставляемых транспозициями Т^Ц=\, 2, ..., 6).
Доказательство. Очевидно, лемма верна при 6=1. Пусть 6 — некоторое целое число >1; предположим, что лемма уже доказана для 6—1. Докажем ее для 6. В силу нашего предположения подстановки Т1э Т^ ..., Tk-л порождают сим-
метрическую группу G подстановок тех элементов, которые они переставляют. Пусть
^ь ^2» • • •, dt(1)
есть последовательность, образованная всеми этими элементами.
Группа О содержит подстановку (d^ d^ ... dt), и в силу наших предположений по крайней мере один из элементов ak, bk принадлежит последовательности (1). Если только один из этих элементов принадлежит последовательности (1), то в силу следствия теоремы 3 вместе с подстановкой (^ d2 • • • dt) порождает группу ^. Если оба числа ak) bk входят в последовательность (1), то очевидно, что G = ^. В обоих случаях лемма доказана.
Лемма 5. Составляя некоторое число k ^ 1 подстановок вида Tt—^at bi с^, 1=1, 2, ..., к, таких, что для каждого индекса i = 1, 2, ..., к — 1 множества
{^1, b^ С^ U2, b^s С2, • • • , ^г, Ь^ C^ U {^+1, ^г+Ь ^<+1} имеют по крайней мере один общий элемент, получим знакопеременную группу Л подстановок элементов, переставляемых подстановками Ti (i = 1, 2, ..., k).
Доказательство. Очевидно, что лемма верна для к=\. Пусть к — некоторое целое число >1; предположим, что лемма верна для к — 1. Докажем ее для к. По предположению, подстановки Ti, Т2, ..., Тк_! порождают знакопеременную группу G подстановок тех элементов, которые они переставляют. Пусть ^р ^2» • • •> d^(1)
есть последовательность, образованная всеми этими элементами. По предположению, по крайней мере одно из чисел ак, Ьк, ск принадлежит последовательности (1). Если все три числа принадлежат последовательности (1), имеем О = Л, и лемма доказана. Если только одно из чисел ак) Ьк, ск принадлежит последовательности (1), лемма вытекает из следствия теоремы 3. Предположим теперь, что среди чисел ак, Ьк) ск находятся два элемента из последовательности (1).
Пусть dt и d^\ ^.1 < i <.!)—такие элементы. Предположим сначала, что t четно. Тогда подстановка ^dY d2 ... dj-i d^v d^ ... dt), имеющая порядок t— 1 и, следовательно, четная, принадлежит группе G. Эта подстановка вместе с Тк в силу следствия теоремы 3 порождаёт группу Л. Предположим теперь, что / нечетно. В силу наших предположений / > 3. Если / = 3, группа G содержит подстановку (^ d^ d), где d означает
элемент последовательности (1), отличный от а^ Ьн, с^. Легко проверить, что две подстановки (^ сЦ d) и 7\ всегда порождают группу Л. Пусть / > 3. Мы всегда можем выбрать обозначения таким образом, чтобы было /^/>/>1. Подстановка (d2 d3 ... dj-i d^i dj^2 ... dt), которая является четной, принадлежит группе G и порождает вместе с 7\ в силу следствия теоремы 3 знакопеременную группу подстановок соответствующих элементов. Эта группа содержит подстановки ^ d3 d^t (d3 d4 d5), ..., (dt-i dt dwV где dw означает элемент 7h, не принадлежащий последовательности (1). С другой стороны, подстановка (dt d2 ds) принадлежит группе G и множество подстановок (di d2 ds), (d2 d3 d^), ..., (dt-i dt dw) в силу леммы 2 порождает группу JL Следовательно, то же самое можно сказать о подстановках Tit i=V 2, ..., к, что и требовалось доказать.
Лемма 6. Каковы бы ни были целое число п > 2 и четная подстановка S степени п+1 элементов 1, 2, ..., п+1, содержащая элемент п + 1 в цикле порядка > 1, соединив S с подстановками симметрической группы 5f п (знакопеременной группы Л^, введенными над элементами 1, 2, ..., п, мы получим группу ^ п+1 (<-^п+1)«
Доказательство. Пусть i (l^i^n)—элемент, который подстановка S переводит в п+1.
Группа ^п содержит транспозиции
(*)(*)(1 2), (2 3), ..., (п — 1 n), (n 1).
(*)
(*)
Среди этих транспозиций имеется транспозиция (Z—1 Z) (где Z— 1 должно быть заменено на п, если Z=l). Мы имеем
S-(Z —1 Z).S-1 =U л + 1), !</<«•
Транспозиция (/ п+1) порождает вместе с транспозициями (*) группу <^n+i. как это следует из леммы 4.
Группа <^п содержит подстановки
(1 2 3), (2 3 4). .... (п — 2 n —1 п), (n —1 п 1), (n 1 2), (**)
среди которых имеется подстановка (i — 2 Z — 1 Z) (где Z— 2(Z—1) должно быть заменено на n+Z — 2(n+Z—1), если Z<2 (i=l)).Hoтогда имеем*
S- (i — 2 i — 1 i) - S'1 = (j k n+1), K/^n, 1 < k < щ и в силу леммы 5 подстановка (i k п+1) порождает вместе с подстановками (**) группу c^n+ь Таким образом, лемма 6 доказана.
Лемма 7. Каковы бы на были целое я > 3 и три различных числа а^ а-^ а3 из последовательности 1, 2, ...
п^а\<а^ ах<а^ если D(a2— av а^— а^ = к, то подстановка (ах ax-Vk ax-\-<2k^ может быть получена из двух подстановок 3 = (1 2 ... п) и Т = (ах а2 а^.
Доказательство. Пусть а2— ах = кх, а^— ах = к2. Так как а2=#=а^ то не может быть кх = к2. Предположим, что кх>к2. Если ^ — ^к^ то к2 = к и Г“1 = (а1а1 + ^ ^4*26). Следовательно, в этом случае лемма верна.
Предположим, что кх + 2к2. Пусть
^i — l2k2 4~ ^з к2 = 13к3 4“ ^4^i — l2k2 4~ ^з к2 = 13к3 4“ ^4(1(1^ ^з <^ ^з <^2),^2),(К(К^4^4^з)»^з)»
^i — l2k2 4~ ^з к2 = 13к3 4“ ^4
^i — l2k2 4~ ^з к2 = 13к3 4“ ^4
(1
(1
^ ^з <
^ ^з <
^2),
^2),
(К
(К
^4
^4
^з)»
^з)»
kt_2 = lt_xkt_x-Y-к (1 ^ к <С ^/-i)> ktj —■ / tk,
где />>2, /2, /3, ..., lt — определенные целые положительные числа. Рассмотрим подстановки
7-i = 5^7'5-^ = (ai + z^ ai + 6i + t^2 а1+(г + 1)Л2),/ = 1, 2, ..., /2,
где числа, большие п, берутся по modn. Подстановки Г, Tv Т2,..., Т^ в силу леммы 5 порождают знакопеременную группу подстановок тех элементов, которые они переставляют. Они порождают, следовательно, также и подстановку R = = (^1 ^1 4“ ^2 ^2 #1 4“ ^2 ^2 4“ ^з)*
Пусть R'— подстановка, которая получается при трансфор/ мировании подстановки R подстановкой S*3./
Имеем
7^/ = (а14-^зл14~^2^4~^з^14" ^2^-V^k^
где числа >п взяты по modn. Две подстановки R и R' порождают знакопеременную группу подстановок тех элементов, которые они переставляют, следовательно, они порождают также подстановку
(^14~ ^к2 СЬ\ 4“ ^2 4~ ^з ^14“ Цк2 4“ 2^3).
Трансформирование этой подстановки подстановкой З"^2 дает («101 + ^3 ai+2/?3). Аналогичным рассуждением можно последовательно показать, что группа (3, Т) содержит подстановки (al ax-vk4 ai+2fe4), (^1 Я1 + &5 ^1 + 2^5) и, наконец, подстановку
(а^ ai + k #1+26). При 6i < 62 рассуждение вполне аналогично. Лемма 7, следовательно, доказана.
Теорема 4. Каковы бы ни были четное (нечетное) число п^ 4 и три различных числа а, Ь, с из последовательности 1, 2, ... п, необходимым, и достаточным условием того, что две подстановки S=(l 2 ... n), Т=(а b с) составляют базис группы ^n^otn^ является равенство
'D^ab, be, п) — 1.
(Это условие также необходимо и достаточно для того, чтобы подстановки S и Т были примитивны.)
Доказательство. Можно ограничиться рассмотрением случая а < b < с. Действительно, всегда можно выбрать обозначения таким образом, чтобы а было наименьшим среди чисел а, Ь, с. Если Ь>с, то достаточно взять подстановку Тч, которая вместе с S порождает ту _же группу, что и Т. Итак, пусть а < b < с. Тогда ab = b — а, Ьс = с—Ь.
Необходимость. Предположим, что подстановки S и Т порождают группу (S^n^n). В этом случае подстановки S и Т примитивны.
Пусть D^b— а, с — b, п) =г>1; b — a = kr, с — b — mr, п=п'г, и пусть
ML=\i, Z + r, Z + 2r, ..., Z-K^7—l)r} (Z=l, 2, .... r}.
Подстановка S преобразует все множество Mj в множество Mi+i, где Z+1 следует заменить на 1, если Z = r, в то время как Т преобразует все множество М^ в себя. Следовательно, подстановки S и Т непримитивны, т. е. мы пришли к противоречию. Отсюда следует, что условие необходимо.
Достаточность. Предположим теперь, что условие, сформулированное в теореме, выполнено. Предположим сначала, что b— а = с— b — k. Если 6=1, то теорема 4 верна в силу теоремы 3. Пусть к>\. Тогда к взаимно просто с п. Следовательно, существует целое т, такое, что тк = 1 (mod и). В этом случае имеем Т = (а а + к a + 2k).
Рассмотрим подстановки
Tj=.S3’tTS"lk, j=\, 22m — 2.
В частности, получим
Tm 2 = (a-^-(m—2)^ а + (/п—1)Л а-^-тк)1
и
Г2т_2 = (а + (2/?г —2)^ а + 2(/п—1)А а + 2/пД);
числа, большие п, берутся по mod п. В силу сказанного выше а4-^6=а4-1 (mod/г), a+2mfe=a + 2(mod п) и в силу леммы 5 подстановки Т, Л, Т^ ..., Т2т-2 порождают знакопеременную группу подстановок тех элементов, которые они переставляют. Следовательно, они порождают также подстановку (а а 4-1 а4-2), которая вместе с S образует в силу теоремы 3 базис группы ^п (Лп}> То же самое можно сказать относительно S и Т.
Предположим теперь, что b— а+с— Ь. Пусть D^b— а, с — 6) = r ^ 1. Так как D^b — а, с — Ь, и) = 1, то D(r, n) = 1. Непосредственно видно, что D^b — а, с — 6) =D(b — а, с — а) = = г и в силу леммы 7 подстановка (а а + г а + 2г) может быть получена суперпозициями подстановок S и Т. Так как г взаимно просто с п, то подстановка (а а 4v а4-2г) вместе с S порождает в силу предыдущих рассуждений группу ^п или группу Лп. Следовательно, условие достаточно, что и требовалось доказать. В частности, если п — простое число, то подстановки S и Т всегда образуют базис группы <Ли.
' Теорема 5. Каковы бы ни были нечетное (четное) п^ 3, m(l ^ m < п) и три числа а, Ь, с из последовательности 1, 2,... ..., п, из которых по крайней мере одно r^m и по крайней мере одно >т, необходимое и достаточное условие того, что две подстановки 5=(1 2 ... m) (m+1 ... ^), 7= (a b с") составляют базис группы <Уп (<ЛпУ состоит в том, что D^m, п—m, d) = l, где d— абсолютное значение разности тех двух чисел из системы а, Ь, с, которые содержатся в одном и том же цикле из S. (Это условие также необходимо и достаточно для того, чтобы две подстановки S и 7 были примитивны.)
Доказательство. Из соображений симметрии можно ограничиться рассмотрением случая, когда два из трех чисел а, Ь, с, например а и Ь, не превосходят пг. Кроме того, можно ограничиться случаем, когда а < Ь, так как (S, 7) = (5, 7-1). Итак, пусть а < Ь. Тогда имеем d=b —а.
Необходимость. Предположим, что условие не выполняется; пусть D^m, п—m, d)=k>\. Пусть m — m'k, п— m^n'k, d=d'k. Рассмотрим к множеств Mi={a + i, a + i + fc,..., a+i+ (пг'—1)6, с-Н, с-НА-к, c + i+(n'—1)6} (i=0, 1, 2, ..., 6—1), где числа, предшествующие c+i, должны быть взяты по mod т 9 широком смысле между 1 и т, а остальные числа должны быть взяты по mod (п—т) в широком смысле между т4-1 и п.
Из определения подстановок S и 7 следует, что S преобразует каждое множество Мг (r = 0, 1, ..., 6 — 2) в Afw и мно-
жество Mh-t в М01 а Т преобразует каждое из множеств М^ в себя.
Следовательно, в данном случае подстановки S и Г непримитивны. Но если бы S и Т образовывали базис группы £f № или Л^ то они должны были бы быть примитивными. Следовательно, наше условие необходимо.
Достаточность. Предположим, что D^m, п— m, d) = L Покажем, что в этом случае S и Т образуют базис группы или Лп- Допустим сначала, что п = т+У а, следовательно, 5 = = (1 2 ... /и), Г=(а 6 /п+Т), Рассмотрим подстановки 1\ = = SiTS-i = (a + i b + i m+1) (i= 1, 2, ..., m — 1), причем числа a + i и b + i взяты no mod m в широком смысле между 1 и т. Подстановки Т, Т^ ..., T^-t переставляют все элементы последовательности 1, 2, ..., m +1, и в силу леммы 5 из суперпозиций этих подстановок мы получаем группу Лт-н* Следовательно, S и Т представляют собой базис группы ^m+i (ЛтмлУ ссли 771 четно (нечетно).
Предположим теперь, что п>т + \. Пусть D^m, d}=k. Подстановка R=(a а + к с) может быть получена суперпозицией S и 7. Действительно, это очевидно для d = k (тогда b = a + k и R = Ty Пусть d>k, и пусть d = d'k (d' > 1), m = m'k. Тогда D(d\ т') = \. Рассмотрим подстановки Т^ = 8^Т8-^ = = (a + jd a+(j+l)d c + jd), /=1, 2, ..., где числа a+jd^c+jd) должны быть взяты по mod m (mod (n—m)) между 1 и m (между m+1 и n). Так как D(d\ m') = l, существует целое i> такое, что id' = 1 (mod пг'У
Следовательно, существует целое /^1, такое, что id' = = tm'+\. Умножим обе части этого равенства на к. При этом получим id=tm + k, следовательно, id = к (mod ту Пусть i— наименьшее целое положительное число, удовлетворяющее этому второму равенству. Имеем Т^_х = (а+^—l)d а + к c+(i—^d). Подстановки Г, Т^ ..., T^-v порождают в силу леммы 5 знакопеременную группу подстановок тех элементов^ которые они переставляют. Эта группа содержит подстановку R=(a а + к сУ таким образом, наше утверждение доказано.
Так как D(m, n — m, d) = l, то D(k. п — т) = 1. Рассмотрим последовательность подстановок
R} = SiteRS-ik= (a +jk а + (/+ 1) к с +jk),j= 1, 2, ..., n — m — 1,
где числа a + jk^ + jk) должны быть взяты по mod m (mod (п— m)) в широком смысле между 1 и m(m +1 и п).
Поскольку к и п — m взаимно просты, последовательность чисел с, с + к, ..., с+(п — m—1)6, взятых, как было сказано
выше, по mod (п— /п), содержит все числа из последовательности m+1, /п + 2, ..., п.
Подстановки R. R^ ..., Rn-m-i порождают в силу леммы 5 знакопеременную группу G подстановок тех элементов, которые они переставляют.
Теперь следует рассмотреть отдельно два случая:
п — m— нечетное число (>^Y Группа G содержит подстановку (n п — 1 ... /п + 1), а также подстановки
(а /п+1 /п + 2), (/п+1 /п+2 /п+3), ..., (п — 2 п— 1 п). (*)
Но 5 • (п п — 1 ... /п+1) =(1 2 ... /п), и легко видеть, что из следствия теоремы 3 и уже рассмотренного случая нашей теоремы (п = /п+1) вытекает, что подстановка (1 2 ... /п) вместе с подстановками (*) порождает группу^ (Лп^ если /п четно (нечетно). Следовательно, S и 7 составляют базис группы ^п Ц,п), если п нечетно (четно).
п— пг— четное число (^2). В этом случае группа G содержит подстановку (а п п—1 ... /п+J), а также подстановки „
(а /п+1 /п + 2), (/п+1 /п + 2 /п + 3), ...,(п — 2 п — 1 п). (**) Но S • (а п п — 1 ... /п +1) = (1 2 ... а /п+1 а +1 а +2 ... /п), и легко видеть, учитывая уже рассмотренный случай п = /п+1, что эта последняя подстановка вместе с подстановками (**) порождает группу^ (Лп^ если т+1 четно (нечетно). Отсюда следует, что 5, Т составляют базис группы <5% (с#л), если п нечетно (четно). Таким образом, достаточность условия доказана.
Теорема 6. Каковы бы ни были нечетное число к^З (четное к^ 6) и целое i (\^i^k— 2), две подстановки S = = (1 2 ... k) и Т = (i i+l)(6 6+1) порождают группу Лмл (^д+i), за исключением трех следующих случаев:
Г = (2 3) (5 6);7 = (2 3) (7 8);7 = (4 5) (7 8).Г = (2 3) (5 6);7 = (2 3) (7 8);7 = (4 5) (7 8).S = (l 2 3 4 5),
Г = (2 3) (5 6);
7 = (2 3) (7 8);
7 = (4 5) (7 8).
Г = (2 3) (5 6);
7 = (2 3) (7 8);
7 = (4 5) (7 8).
5 = (1 2 3 4 5 6 7),
S = (l 2 3 4 5 6 7),
Доказательство» Пусть 6=3. Тогда возможен только один случай: S = (1 2 3), Т = (1 2) (3 4), и без труда можно убедиться, что эти две подстановки порождают группу Л^.
Пусть 6 = 5. Тогда i может принимать значения 1, 2, 3.
Если 1 = 2, то имеем исключительный случай: две подстановки S=(l 2 3 4 5), 7= (2 3) (5 6) порождают группу порядка 120, отличную от Лв-
Если /=1, то S= (1 2 3 4 5), Т=(1 2) (5 6), 7S-1TS-I7S37S = = (3 5 4) =R. Подстановки S и R порождают группу ds в силу теоремы 4. Кроме того, из леммы 6 следует, что суперпозиции Т и подстановок группы с#5 дают группу с^6. Следовательно, S и Т составляют базис группы ut6.
Если / = 3, то тогда мы имеем S=(l 2 3 4 5), Т=(3 4) (5 6), S2TS-lTSTS = (3 4 5)=/?, и по аналогии с уже разобранным случаем, три подстановки S, Т и R порождают группу <^6. Следовательно, S и Т составляют базис группы с£6.
Пусть 6 = 6. Тогда I может принимать значения 1, 2, 3, 4.
Если £ = 2, то S= (1 2 3 4 5 6), Т=(2 3) (6 7), (STS2T)5 = = (4 7), а эта последняя подстановка вместе с S в силу следствия теоремы 3 порождает группу ^7. Следовательно, S и Т составляют базис группы ^7.
Если £ = 3, то S= (1 2 3 4 5 6), Т=(3 4) (6 7), (STS2T)5= = (3 7), а эта последняя подстановка вместе с S в силу следствия теоремы 3 порождает группу ^7. Следовательно, S и Г составляют базис группы ^7.
Позднее мы рассмотрим случаи, когда г=1 или 4.
Пусть к = Т. Тогда i может принимать значения 1, 2, 3, 4, 5. Если / = 2 или i=4, легко проверить, что мы имеем исключительные случаи и что соответствующие этим случаям подстановки S и Т не составляют базиса группы ^8, а в обоих случаях порождают группу порядка 1344.
Случаи, когда /=1, 3 или 5, будут рассмотрены ниже.
Предположим теперь, что к > 7. Если /=1, то Т = = (1 2) (6 6+1), S3TS-3=(4 5)(3 6+1)=Ть (ЛЛ2=(3 6 6+Д), и эта последняя подстановка вместе с S порождает в силу теоремы 5 группу SP^y или группу сА+ь Следовательно, S и Г составляют базис группы ^-ц или группы сА+ь Это верно также и для 6 = 6 и 6 = 7.
Если £ = 2, то Т-^ 3)(6 6+1), S4TS”4=(6 7) (4 6+1)=Гь (Т\Г)2 = (46 6+1), и в силу теоремы 5 эта последняя подстановка вместе с S порождает группу ^+i или группу utkw Следовательно, S и Т образуют базис группы 5Рн^ или группы ^Если 1=к — 2, то T=(k — 2 6—1) (6 6+1), З^-з, = (1 2) (3 А+1)=7'1, (Т1Т)2=(3 к 6+1). Это верно также и для 6 = 6 и 6 = 7. Из теоремы 5 следует, что подстановка (3 к 6+1) вместе с подстановкой S порождает группу <Ук+v или группу и^ь+ь Следовательно, S и Т составляют базис группы ^% + 1 ИЛИ Группы сА+1.
Если i=k — 3, то Т=(к — 3 к -2) (k 6+1), S<TS-<= = (1 2) (4 6+1) =7'1, (7'17')2= (4 к 6+1), и, как следует из теоремы 5, эта последняя подстановка вместе с S порождает группу
^Pw или группу c^^+i- Следовательно, S и Т составляют базис группы ^ + 1 ИЛИ о^ + ь
Наконец, если 2 < i < к — 3, то S^TS^ = (1+2 / + 3)(2 &+!)=» = ТЬ (7\Т)2=(2 к &+1), и, как следует из теоремы 5, эта последняя подстановка вместе с S порождает группу ^+1 или группу с^^+ь Следовательно, 8 и Т составляют базис группы ^ь+i или Jz^+i. Те же рассуждения остаются верными для 6=7 и 1 = 3. Следовательно, теорема 6 доказана.
Лемма 8. Каковы бы ни были целые к> 1 (к > 2) и п> к, суперпозиции подстановки вида 8= (i i+1 ... п) (1 ^0 ^.i^k^ с подстановками группы^ k (Лк)дают группу^п (Л^у если 8 — четная подстановка, или ^п, если 8 — нечетная).
Доказательство. Если п = к+1, то лемма, которую мы должны доказать, является следствием леммы 6. Предположим, что п > 6+1. Если /=1, то лемма 8 вытекает из теоремы 3.
Пусть теперь i > 1.
Группа ^н содержит подстановку (1 2 ... Z), которая вместе с S порождает группу ^п или группу Ли в силу следствия теоремы 3; так как группа <Ук содержит нечетные подстановки, отсюда следует, что при помощи суперпозиций S с подстановками группы S^k мы получим группу^. Группа Лк(к > 2) содержит подстановки (1 2 3), (2 3 4), ..., (I—1 i i+1) =R, где Z+’l должно быть заменено на 1, если 1 = к. В силу теоремы 5 и следствия теоремы 3 подстановки S и R порождают симметрическую или знакопеременную группу подстановок тех элементов, которые они переставляют. Во всяком случае, они порождают подстановки *
(Z Z + l Z + 2), ..., (п — 2 п — 1 п).
Но множество подстановок (1 2 3), (2 3 4),..., (п — 2 п — 1 п) порождает в силу леммы 2 группу Ли. Следовательно, при помощи суперпозиций подстановки S с подстановками группы Лк мы получим группу ^п (если п— 1+1 четно) или группу Лп (если п — Z+1 нечетно), что и требовалось доказать.
Теорема 7. Каковы бы ни были целые п^З, к(1 < к <п) и 1(1 < Z< к), две подстановки 8= (1 2 ... к) и Т= (i 1+1 ... ...к 6+1 ... п) составляют базис группы (Лп), если по крайней мере одно из чисел к, п— /+1 четно (если оба числа к, п— Z+1 нечетны), за исключением трех случаев*.
S = (l 2 3 4), Т = (3 4 5 6);
S = (l 2 3 4), Т = (2 3 4 5 6);
5=(1 2 3 4 5), Т = (3 4 5 6).
Доказательство. Если f=l, то теорема 7 следует из теоремы 3. Для i = k теорема 7 вытекает из следствия теоремы 3. Пусть \<i<k, k^S, п— f+l>3. Если 6 = 3 или если л — /+1=3, теорема 7 следует из теоремы 5. Таким образом, можно предположить, что к*> 4 и п— i +1 > 4. Имеем
TST-1 =(Д 2 ... i— 1 Z + l ... A + 1) = S„
S^S^^ к — 1 ... 1).(1 2 ... i — 1 Z+l ...£ + !) =
= (Z — 1 Z) (k k-Y-\) = R.
Если две подстановки S, R порождают группу ^ + i (<^6+1), то две подстановки S, Т порождают группу <5+ или группу Лп. Действительно, в силу леммы 8 суперпозиции подстановки Т •С подстановками группы с£%+1 (<+т) дают группу ^п или группу Ли. В силу теоремы 6 две подстановки S и R порождают группу с^а+1 или группу с^а+1 для всех пар значений Z и к, взятых в рассматриваемых пределах, за исключением следующих пяти случаев:
z = 2, к = 4; 2) Z = 3, к = 4; 3) Z = 3, к = 5;
Z = 3, к = 7\ 5) Z = 5, к = 7.
Мы рассмотрим эти пять случаев отдельно и покажем, что, за исключением трех случаев, указанных в формулировке теоремы 7, подстановки S и Г всегда порождают группу SPn или группу Лп-
Пусть Z=2, к=4. Имеем S=(l 2 3 4), Т= (2 3 4, ..., п) (п > 5).
Если п = 5, то ST~*=(1 2 3 4) • (2 5 4 3) = (1 2 5), и в силу теоремы 5 эта последняя подстановка вместе с S порождает группу ^5. Следовательно, S, Т составляют базис группы <^5 Если /г = 6, то мы имеем исключительный случай, и легко проверить, что две подстановки S и Г порождают группу порядка 120.
Пусть п> 7. Имеем Р8Т-3=(1 5 6 7)=Si. В силу следствия теоремы 3 две подстановки S и Si порождают группу <^7, и в ■силу леммы 8 суперпозиции Т с подстановками группы <^7 дают труппу £fu. Следовательно, S и Т образуют базис группы ^„.
Пусть Z=3, к=4. Имеем S=(l 2 3 4), Т=(3 4 5... п) (и > 6).
Если п=6, то имеем исключительный случай. Две подстановки S и Т порождают группу порядка 120.
Если п = 7, то (ST)9 = (4 5 6 7), и в силу следствия теоремы 3 эта подстановка образует вместе с S группу <^7. Следовательно, 5, Т составляют базис группы <^‘’7.
Если /г>8, то PST-2=(\ 2 5 6) =Si, PS:M=(\ 2 7 8)=S2, ^S'i=(l 2 3 4) • (1 6 5 2) = (1 6 5 3 4), а эта последняя подста-
новка вместе с S2 порождает группу <5% в силу следствия теоремы 3. Как следует из теоремы 6, при помощи суперпозиций Т с подстановками группы с^3 мы получим группу £Ри. Следовательно, S и Г составляют базис группы g^V
Пусть £ = 3, А=5. Имеем S = (1 2 3 4 5), Т = (3 4 5 ... п) (п^ 6).
Если я = 6, то имеем исключительный случай: две подстановки 8 и Т порождают группу порядка 120. Если п = 1, то (S72)2=(i з 2). Эта подстановка вместе с S порождает в силу теоремы 4 группу Ль, и в силу теоремы 6 суперпозиции Т с подстановками из Ль дают группу ^п или группу Ли. Следовательно, S и Т образуют базис группы ^п или Ли.
Если п >8, имеем PST-3=^ 2 6 7 8)=S,, (SS?)5 = (2 6 8)„ и в силу следствия теоремы 3 эта последняя подстановка порождает вместе с S знакопеременную группу подстановок элементов 1, 2, 3, 4, 5, 6, 8, т. е. группу, которая содержит Л6. В силу леммы 8 суперпозиции Т с подстановками этой последней группы; дают группу (^п или группу Лк.
Пусть f=3, k = l. Имеем S= (1 2 3 4 5 6 7), Т= (3 4 5... ...п)(/г>8). .
Этот случай можно свести к случаю (5). Действительно^ имеем ST-1 = /?=(! 2 3 п п— 1 ...8), Г=/?~л5. Следовательно, две пары подстановок S, Т и S, R порождают одну и ту же группу. С другой стороны, две пары подстановок S, R и S, Ri = = S4RS~4 = (5 6 7 п п — 1 ... 8) порождают изоморфные группы^
Положим
Получим
USU-^Sx, URxCT'=(5 6 7 ... п) = Тх.
Две пары подстановок 8, Т и 8^ 1\ порождают в силу предыдущих рассуждений изоморфные группы, и этот случай сводится к случаю (5).
Пустьi = 5, А=7. Имеем S= (1 2 3 4 5 6 7), Т= (5 6 7 .. . ... п) (п > 8).
Если п = 8, то имеем (ST2)5 = (6 7 8). Эта подстановка вместе с S порождает в силу теоремы 5 группу с^8. Если п = 9, то имеем (ST2)6=(1 2 3 4 5). В силу теоремы 3 эта подстановка вместе с S порождает группу Л7, и в силу леммы 8 суперпозиции Т с подстановками этой группы дают группу Лэ. Следовательно^ S и Т образуют базис группы Л?9.
Если п= 10, то
T5T2S-*=(1 10 8 5 6) (7 ^ = R, /^ = (7 9).
Транспозиция (7 9) вместе с S порождает в силу следствия теоремы 3 симметрическую группу подстановок элементов 1, 2, 3, 4, 5, 6, 7, 9, т. е. группу, которая содержит группу ^7, и в силу леммы 8 при помощи суперпозиций Т с подстановками этой последней группы мы получаем группу с^ю. Следовательно, S и Т есть базис группы <^ю.
Если п>\\, то T3ST-3=(1 2 3 4 8 9 10)=Sh S3SiS-3 = = (4 5 6 7 8 9 10) =S2, и в силу предыдущего две подстановки S и S2 порождают группу о^ю. Но по лемме 8 при помощи суперпозиций Т с подстановками группы с^ю мы получаем группу или группу Л^. Следовательно, 5, Т образуют базис группы ^п или JLn. Теорема, таким образом, полностью доказана.
Сопоставляя теоремы 3 и 7, можно сформулировать следующее более общее утверждение:
Теорема 8. Пусть k> 1, 1(1 ^ 1 *< 6) и п> i — три целых числа, такие, что по крайней мере одно из равенств 1=1, k = n не имеет места. Тогда, если по крайней мере одно из чисел к, п—1+1 четно {если оба числа к и п— i*+1 нечетны), то две подстановки S = (1 2 ... к), Т = (i i +1 ... п) порождают группу <^тах(А,и) (с^тахСА, п)Х За иСКЛЮЧСНивМ Трех Случаев*.
S = (l234),Г = (3456);
S = (l234),Т = ^345 6);
S = (l234 5),Г = (3456).
ОСНОВНАЯ ТЕОРЕМА
Теорема 9. Каково бы ни было целое число п^ 3, для любой нетождественной подстановки S группы ^fn существует по крайней мере одна подстановка Т, которая вместе с S составляет базис группы ^п- Исключение составляют три случая: (1 2)(3 4), (1 3)(2 4), (1 4)(2 3). Эти подстановки не входят ни в один базис группы <9\.
Доказательство. Пусть S — некоторая нетождественная подстановка группы ^РДп 3).
Предположим сначала, что S содержит по крайней мере один цикл первого порядка.
Так как 5=#1, эта подстановка содержит по крайней мере один цикл порядка > 1. Мы всегда можем выбрать обозначения таким образом, чтобы можно было S записать в виде
5 = (1 2 ... mx) {mx + 1 ... ш2) ...
... {тг_г^-1 ... тг) {тг4-1) ... {п).
где r> 1, mi > 1, Z=l, 2, ... г, п> пгт, циклы подстановки S расположены таким образом, что циклы порядка > 1 предшествуют всем циклам, состоящим из одного элемента, и, кроме того, цикл (mr_i+l ... mT^ имеет порядок не меньший, чем все остальные циклы в S.
Следует выделить три случая:
Не имеет места хотя бы одно из равенств г=2, п— mr = 2, и подстановка S — нечетная, или если S — четная, то число всех ее циклов п — mr+'r четно.
Положим Т = (т4 пг^ ... mT 7Пт+1 ... /г) и покажем, что S и Т составляют базис группы <Уп.
Имеем ST= (1 2 ... п),
5Г5'1 = (1 mx-V 1 ... mT__x-V 1 mr-V\ ... п) = Тх.
Из теоремы 8 следует, что две подстановки Т и Л порождают симметрическую или знакопеременную группу подстановок тех элементов, которые они переставляют в соответствии с тем, нечетные эти подстановки или четные. Во всех случаях эти подстановки порождают подстановку (1 т4 п), которая вместе с ST составляет базис в ^п» если п четно, и в если п нечетно, в соответствии с теоремой 4. Так как по крайней мере одна из подстановок S и Т нечетна, отсюда следует, что эти подстановки порождают всегда группу ^п.
Предположим теперь, что г=п — пгг = 2. Следовательно, S имеет вид
S = (l 2 ... m^ (тп! 4-1 ... m2^ (т24-1) (/п2 + 2).(*)
Эта подстановка может быть четной или нечетной; в любом случае два из ее циклов имеют порядок больше 1, два других — порядок, равный 1, и тп2— пг^Шр
Если S = (l 2) (3 4) (5) (6), положим 7' = (2 3) (4 5 6). Как легко проверить, 5 и 7 порождают группу ^6.
Предположим теперь, что 5 + (1 2) (3 4) (5) (6). Тогда ^2 — ^1^3. В этом случае положим Т = Qnx m2m2-\-A /м24-2)> Получим ST = (Д 2 ... тп24-2) = R. Если шх = 2, то S2TS"2= — (mx ггц + 2 тп24-1 m24-Т) = Тх. Две подстановки Т и Тх порождают в силу теоремы 8 симметрическую группу подстановок тех элементов, которые они переставляют. Следовательно, они порождают также транспозицию (тп24-1 т24~2), которая вместе с R порождает группу ^т,+2 в соответствии с теоремой 8.
Таким образом, S и Т составляют базис группы ^т2+2»
Если тх >3 и пц— ^>3, то
STS-1=(1 m^l /«2 + 1 тз+2) = TvFTS'2^ тг4-2 /Пз+1 гаг2 + 2) = 7'2,7'ГГ1 = (1 mt т^ /П2+1 /n, + l) = r3.
Подстановки Г2 и Т3 порождают в силу следствия теоремы 3 симметрическую группу подстановок тех элементов, которые они переставляют, поэтому они порождают и транспозицию {№2+1 т<1-\-2\ В силу теоремы 8 эта транспозиция вместе с R составляет базис группы ^т^г. Следовательно, подстановки S и Г во всех случаях составляют базис группы тг+2-
Подстановка S четна, а общее число ее циклов нечетно, а) Все циклы в 5 имеют порядок <2
S = (l 2) (3 4) ... (£—1 Л) (^ + 1) ... (га),
где k/2—четное число>2 и к^^-п—к—нечетное число >3. Если 5 = (1 2) (3 4) (5), положим Г = (1 2 3) (4 5). Эти две подстановки порождают, как легко проверить, группу <У5.
Предположим теперь, что 5 + (1 2) (3 4) (5).
Положим тогда Т = (2 4 6 ... к к — 1 кЦ-1 ... п\ Это нечетная подстановка. Покажем, что две подстановки S и Г порождают группу ^п.
Действительно, если 5 содержит два цикла второго порядка и нечетное число ^>3 циклов первого порядка, другими словами, если
S = (l 2) (3 4) (5) (6) ... (2га+ 1), 2га+1>7, то
Т = (2 4 3 5... 2га+1), ST = <\ 2 3 5 6... 2га+1) = £/.
Подстановка U нечетная. Имеем
UTU-1=^ 4 5 6... 2га+1 1) = 7'1,
ТТГХ = (1 2 4 5 3) = /?,
Я-1=(3 5 4 2 1), U2RU~2=^ 5 4 7 6) = /?Р
Две подстановки R-1 и Rt порождают в силу теоремы 8 группу utT Следовательно, они порождают подстановку ■(4 5 6), которая вместе с U образует в силу теоремы 5 базис группы ^2„+1. То же самое, следовательно, можно сказать о подстановках S и Г.
Если 5 содержит более двух циклов второго порядка, та А >8, подстановка Т имеет четный порядок ^>6 и мы имеем.
5Т = (Д 2 ... к — 2 k — 1 Л 4-1 ^ + 2 ... /i) = t/1(
5Г5~*=(1 3 5 7... к — 3 к — 1 к ^ + 1 к-^ ... п}=Т^
Т и Т2 — две подстановки вида
Л = (1 2 ... $ $ + 1 ... /) и
B = (s+1 5 s+2 ... / /4-1 ... /4-s—1),
где /— четное число>6 и 4<$</— 1. Но две подстановки А и В всегда порождают группу ^^.р Действительно, пусть сначала s = i— 2. Имеем Л = (1 2.../), B = (t—1. / — 2 / /4-1 ... 2/ —3),
BAB"1 =(1 2 ... / —3 / / — 2 /4-1) = Ль
^"^! = C = (/ —3 /—1 / — 2 <4-1 /),
- АСА"1 =^ = (1—2 t / —1 /4-1 1).
Две подстановки С и ^ порождают знакопеременную группу подстановок тех элементов, которые они переставляют, потому что это имеет место для подстановок С и ССХС2 = = (/—1 / /4-1) в силу теоремы 5. Они порождают, следовательно, подстановку (/—1 / /4-1), которая вместе с А составляет базис группы ^,+1 в силу теоремы 5. Эта группа содержит подстановку (12.../ — 2), которая вместе с В составляет базис группы с^-з в силу следствия теоремы 3. Следовательно, подстановки А и В также порождают группу
2/—3*
Предположим теперь, что $ < /— 2. Имеем
ВАВ'1—^ 2 ... $—1 $4-2 $ $4-3 ... /4-1) = Л„
Л'*Л1 = С = ($ —1 $4-1 $ $4-2) (/ /4-1),
АСА"1 =Сг = (8 $4-2 $4-1 $4-3) (1 /4-1).
Легко видеть, что две подстановки С и Ci всегда порождают подстановку (1 / /+1); эта подстановка вместе с Л в силу теоремы 5 составляет базис группы ^ш — группы, которая содержит подстановку (1 2 ... s), а эта подстановка порождает вместе с В группу ^t+s-t в силу следствия теоремы 3. Следовательно, А, В есть базис группы ^^^.р
Отсюда вытекает, что две подстановки Т и Т\ всегда порождают симметрическую группу подстановок тех элемен-
тов, которые они переставляют. Поэтому они порождают подстановку (1 к п\ которая вместе с Ux порождает группу £f п в силу теоремы 5. Следовательно, в рассматриваемом случае S и Г также составляют базис группы ^п.
б) По крайней мере один из циклов в 5 имеет порядок больше двух:
5 = (1 2 ... т^) (тх +1 ... т2) ...
... (m,-i+ 1 ... тг) (тТ+1) ... (га), г>1, тг— тг_х'>3.
Положим
Г = (rai! ratj ... тТ_х тт тг—\ тт-\-\ ... га).
Покажем, что две подстановки 5 и Т порождают группу Уп. Действительно, в силу нашего предположения Т — нечетная подстановка порядка >-4.
Предположим сначала, что S содержит только один цикл порядка > 1 и два цикла первого порядка:
5 = (1 2 ... гаг,) (mt4-l) (rait4-2).(**)
Число mx нечетно и гаг^З. Тогда имеем
Т = (тх тх — 1 тх 4-1 тх 4- 2),
ST = (1 2 ... тх — 1 гаг! 4-1 тх 4- 2) = U.
Подстановка U нечетная, и две подстановки U и Т порождают группу <5^+2 в силу теоремы 8. Подстановки S и Т также образуют базис группы 6Ттх*2.
Предположим теперь, что 5 имеет вид, отличный от (**). Имеем
ST = (1 2 ... тг — 1 тг-\-1 ... n) = U,
UTU = (rail 4~ 1 ^2 4~ 1 • • • nir_ 14~ 1 rai^ тпг 4— 1 • • • га 1) = Тх*
Две подстановки Т и Тх имеют вид
Л = (1 2 ... $ $4-1 ... <),
B = (s $+2 $4-3 ... / /4-1 ■•• <4-s).
где t — четное число ^-4 и $ = 2, если / = 4, или $ — целое число, находящееся (в широком смысле) между 1 и / — 2, если / > 4. Две подстановки А и В порождают группу ^(+$. Действительно, если / = 4, имеем Д = (1 2 3 4), В = (2 4 5 6), и эти две подстановки порождают, как легко проверить, группу <^6.
Предположим теперь, что / > 4. Если $=1, имеем
Л = (1 2 ... /), 5 = (1 3 ... t /4-1), А~ХВ = С = <\ 2) (/ /4-1).
Две подстановки А и С порождают группу c^(+i в силу теоремы 6. Отсюда следует, что А и В составляют базис в ^+1. Если $ — 2, имеем Л = (1 2 ... /),
Д = (2 4 5..J /4-1 /4-2), А'ХВ = С = (1 t /4-1 /4-2) (2 3),
ВСВ"Х =CX = <V /4-1 /4-2 2) (3 4).
Две подстановки С и ^ порождают знакопеременную группу подстановок тех элементов, которые они переставляют, а следовательно, и перестановку (/ /4-1 /4-2). А эта последняя подстановка образует вместе с А базис группы ^+2 в силу следствия теоремы 3. Следовательно, Ли В составляют базис группы ^+2-
Если s = t— 2, имеем
Л = (1 2 .../), В = (/ —2 / /4-1 ... 2/ —2),
ВАВ'Х =(1 2 ... / —3 / /—1 / + 1) = Л„
ЛГ*Л = С = (/ —3 / — 2 / /4-1 /—1).
В силу теоремы 8 две подстановки С и В порождают симметрическую группу подстановок тех элементов, которые они переставляют. Эта группа содержит подстановку (/ / —|—1 ... ... 2/ — 2), которая вместе с А порождает группу ^/-г в силу следствия теоремы 3. Следовательно, Л и В составляют базис группы <9*у-т
Если 2<$</— 2, имеем
В АВ = Л| ^= (1 2 ... $ — 1 $ 4— 2 $ 4— 1 5 4— 3 ... / —)— 1),
Л-1Л = С = ($ —1 $ $4-2 $4-1) (/ /4-1),
ВСВ-Х =Сх = ^—\ $4-2 $4-3 $4-1) (/4-1 /4-2).
Нетрудно видеть, что две подстановки С и Ci всегда порождают подстановку (/ /+1 / + 2), которая вместе с А составляет базис группы ^<4-2 в силу следствия теоремы 3. Эта группа содержит подстановку (1 2 ... s s+1), которая вместе с В порождает группу ^<4-s в силу следствия теоремы 3. Следовательно, А и В составляют базис группы (У^з.
Таким образом, две подстановки Т и А во всех случаях порождают симметрическую группу подстановок тех элементов,
которые они переставляют; эта группа содержит подстановку (1 тт п), которая вместе с U порождает группу <Уп в силу теоремы 5. Следовательно, S и 7 также составляют базис группы S*^
Предположим теперь, что S не содержит ни одного цикла первого порядка.
Всегда можно выбрать обозначения таким образом, чтобы подстановка S записывалась в виде
S = (1 2 ... mJ (тх +1 ... т^ ... (mr-1 +1 ... тТ\
где г>1 и цикл (mr_i+l ... mV) имеет порядок не меньший^ чем все остальные циклы в S. Нужно отдельно рассмотреть три случая.
По крайней мере один цикл в S имеет порядок > 3, следовательно, тт — mr-i ^ 4.
S нечетна, или если S четна, то общее число ее циклов нечетно.
Положим
Т = (тх т2 ... тг_х тг тТ— 1).
Покажем, что две подстановки S и Т порождают группу ^тг. Действительно, имеем
S7 = (l 2 ... mT — \) = U.
UTLT1 =(^-^1 m^l . ../n^j+l tn, 1) = Гр
Две подстановки T и Л порождают в силу следствия теоремы 3 симметрическую или знакопеременную группу подстановок тех элементов, которые они переставляют. Следовательно, они во всех случаях порождают подстановку (1 mr— 1 mr), которая вместе с U порождает группу 5*тт или группу Лт, в силу теоремы 5. Отсюда следует, что две подстановки S и Т, из которых по крайней мере одна нечетна, с необходимостью порождают группу ^т.
Подстановка S четна, и общее число ее циклов тоже четно.
Положим Т=(т1 т2 ... тт_х тт тт— 1 тг—2). Это нечетная подстановка порядка >4. Покажем, что S и Г составляют базис группы <Утг- Действительно, предположим сначала, что S имеет вид
S = (l 2 ... mJ (m! Ч- 1 ... т^, причем тх и т^ одновременно четны или нечетны, ^>2 и т^ — тх > 4. В этом случае Т = (mt т^ пи, — 1 пц — 2).
Если Wi = 2, то /712 >-6. Предположим сначала, что пи = 6. Тогда Г = (2 6 5 4), ST = (1 2 3 4). Две подстановки Т и ST порождают группу ^6. То же самое можно сказать о подстановках S и Т. Предположим теперь, что/п1 = 2 и /п2 > 6. Так как пц четно, имеем /п2>-8. Тогда
Г = (2 /п2 /тг2 — 1/712 — 2),
ST — (1 2 ... /тг2 — 2), STS'1 =Л = (1 3 т2 /712—1),
ТТ;1 = /? = (! m2-2 2m2 3),
S3TS"3 = Г2 = (1 5 4 3).
Две подстановки R и 72 порождают в силу теоремы 8 симметрическую группу подстановок тех элементов, которые они переставляют, т. е. группу, содержащую транспозицию (1 т2). Легко показать, опираясь на следствие теоремы 3 и лемму 6, что эта транспозиция вместе с подстановками ST и Т порождает группу ^т^ Отсюда следует, что подстановки S и 7 представляют собой базис группы ^т^ Если /П1 = 4 и т2=8, то 5 = (1 2 3 4) (5 6 7 8),7 = (4 8 7 6),
ST=U = ^ 2 3 4 5 6),S[P = (2 6 4) (3 7 8 5),
(56/3)4 = (2 6 4) = /?.
Две подстановки R и Т порождают в силу теоремы 8 симметрическую группу подстановок тех элементов, которые они переставляют. Следовательно, они порождают также подстановку (6 7 8). Эта подстановка вместе с U порождает группу с^8 в силу следствия теоремы 3. Поэтому подстановки S и Т порождают группу ^8. Во всех остальных случаях мы имеем
/П! > 3, тп2 > 8, ST = (1 2 ... m2 — 2) = 6/,S2TS'2=(2 mx 4-2 //i14~ 1 m^ = Tv
Две подстановки 7 и 7i порождают симметрическую группу подстановок тех элементов, которые они переставляют; следовательно, они порождают подстановку (т2 — 2 т2—1 /п2), которая вместе с U образует базис группы <Ут2 в силу следствия теоремы 3. Таким образом, 5 и 7 составляют базис группы <5^.
Предположим теперь, что S состоит не из двух циклов. Имеем
S7 = (l 2 ... тт — ^ = U.
STS'1 = (1 mx-V 1 ... тг_х-^1 тТ тг—\^ = Тх.
Две подстановки 7 и Л порождают в силу теоремы 8 симметрическую группу подстановок тех элементов, которые они
переставляют, в том числе и подстановку ^тт — 2 тт—1 тт^ которая вместе с U составляет базис группы ^тг в силу следствия теоремы 3. Следовательно, и в этом случае S и Т составляют базис группы ^т^
В S нет ни одного цикла порядка > 3, но есть по крайней мере один цикл третьего порядка.
Если S четна или если S нечетна, но общее число циклов у нее нечетно, то положим
Т =\тх т2 ... тТтг — 1).
Рассуждение, аналогичное проведенному в случае II, 1, а), показывает, что S иТ составляют базис группы ^тг.
Предположим теперь, что подстановка S четная и что число циклов у нее четно. Пусть
5 = (1 2 ... т^ (тх + 1 • • • ^) • • • ^г — 2 тг — 1 тг\
где г ^ 2 и тТ — 2 = /nr_i+4.
Если 5=(1 2 3) (4 5 6), положим Т=(1 2) (3 4 5). Эти две подстановки порождают группу ^6.
Если 5¥=(1 2 3) (4 5 6), положим
Т = (тх т2 ... тТ_х тг тг — 1 тг — 2).
Это нечетная подстановка. Покажем, что две подстановки S и Т составляют базис группы (Ут • Действительно, имеем 5Г=(1 2 ... mr —2)=[/,Г
UTU'1 =(^4-1 т2 + 1 ... тг_2 + 1 тТ — 2 тт mr—\ 1) = ГР
Две подстановки Т и Тх имеют вид
Л = (1 2 ... /) и B = (t t — 2 t — 1 /4-1 ... 2/ —3),
где t — четное число > 6. Покажем, что подстановки А и В порождают группу ^2^-з. Действительно, имеем A3BS*3 = (3 1 2 /+1 /4-2 ... 2/— 3) =ВХ) и две подстановки В и Вх порождают симметрическую группу подстановок тех элементов, которые они переставляют, в силу теоремы 8. Следовательно, во всех случаях они порождают подстановку (1 /+1 /4-_2 ... 2/— 3), которая вместе с А образует в силу следствия теоремы 3 базис группы ^/-з- То же самое, следовательно, можно сказать о подстановках А и В.
Отсюда следует, что две подстановки Т и Тх порождают симметрическую группу тех элементов, которые они переставляют, следовательно, и подстановку (mr — 2 mT—1 mr), и эта под-
становка в силу следствия теоремы 3 вместе с U порождает группу <Утг. Две подстановки S и Т образуют поэтому базис ГруППЫ ^mr.
Все циклы в S имеют второй порядок:
S = (1 2) (3 4) ... (л — 1 л) (л четно).
Если S=(l 2) (3 4), то не существует подстановки Т группы 6^4, которая образовывала бы с S базис группы <^4. Если S = = (1 2) (3 4) (5 6), то легко проверить, что подстановка Т= = (1 2 3 4 5) порождает вместе с S группу <$%.
Если S = (1 2) (3 4) (5 6) (7 8), положим Т= (1 2 3 4 5 6 7). Подстановки S и Т порождают группу ^з.
Пусть п > 8. Тогда если общее число п/2 циклов в S нечетно, то положим Т= (2 4 ... п — 2 п п — 1). Покажем, что две подстановки S и 7 порождают группу £Рп. Действительно, имеем
ST=(1 2 ... п— 1)=[/,
575-'= (1 3 ... п — 3 п— 1 п),
(ST’S-1)"1 =Цп /1 — 1 л-3 ... 3 1) = 7'1,
и две подстановки Г и Л порождают в силу теоремы 8 симметрическую группу подстановок тех элементов, которые они переставляют, в том числе и транспозицию (п— 1 и); эта последняя вместе с U составляет базис группы ^п в силу следствия теоремы 3. Следовательно, в рассмотренном случае подстановки S и Т представляют собой базис группы SPn.
Если число /г/2 четно (тогда оно > 6), положим Т = (2 4 6 ... ... п — 2 п— 3 п п—1). Покажем, что S и Т составляют базис группы ^f п. Действительно, имеем ST=(1 2 ... п— 3 n—Y^U, STS-^(\ 3 5 ... п —3 п — 2 п—\ n^=Tv
Две подстановки Т и Л имеют вид Д=(1 2 ... t) и В = = (f — 2 t — 3 t t — 1 Z+1 ... 2/ — 4), где t — четное число > 8; следовательно, t— 4 >4. Тогда имеем В^АВ”^=^\ 2 ... / — 4 £+2 /+1 /+4 /+3)=Л1. Две подстановки А и Л1 всегда порождают группу «Ум-ь в силу теоремы 8. То же самое, следовательно, можно сказать о подстановках А и В.
Отсюда следует, что две подстановки Т и Л порождают симметрическую группу подстановок тех элементов, которые они переставляют, в том числе и подстановку (и — 2 п — 1 /г); в силу следствия теоремы 3 эта последняя перестановка вместе с U образует базис группы ^п. Следовательно, S, Т составляют базис группы с^п. Таким образом, теорема полностью доказана.
Теорема 10. Каково бы ни было целое число п^4, для любой нетождественной подстановки S из группы Л^ существует по крайней мере одна подстановка Т из группы Л-п, которая вместе с S образует базис группы Лп.
Эту теорему можно доказать, опираясь только на теоремы 4, 5 и 8, а также на следствие теоремы 3.
Теорема 11. Каково бы ни было четное (нечетное) число п > 3, для любой циклической подстановки S из группы ^п №п) существует по крайней мере одна циклическая подстановка Т, которая образует вместе с S базис группы ^п (Л^
Доказательство. Очевидно, достаточно доказать теорему для какой-нибудь одной циклической подстановки S. Пусть, например, 5 = (1 2 ... я).
Предположим сначала, что п четно. Положим Г=(2 4 6 ... ... п 3 5 7 ... п — 1 1). Две подстановки S и Т образуют базис группы ^п. Действительно, имеем S"1TS"1 = (1 2) и в силу теоремы 1 две подстановки S и Т порождают группу ^п. Теорема доказана для четного п.
Пусть п— нечетное число, п = 2й+1 (А >2). Если А=2, положим Т = (1 4 3 2 5). Если 6^3, положим
Г = (1 Н2 3 ^ + 4 ... i Z + ^+l ...
. ... k 2^+1 ^+1 2 ^ + 3), 3<Z<£.
Каково бы ни было 6^2, имеем TSk=(\ 2 3), и в силу теоремы 8 две подстановки S и (1 2 3) порождают группу Л-п» Таким образом, теорема доказана и для нечетных п.
Перестановочное декодированиесистематических кодов1)
Дж. Мак-Вильямс
Под симметрией систематического кода понимается такая перестановка позиций каждого кодового слова (одна и та же для всех кодовых слов), относительно которой код инвариантен в целом. При перестановочном декодировании эти симметрии кода используются для построения алгоритма декодирования.
Для выбранного случайным образом кода трудно найти соответствующее ему множество симметрий. Эта проблема является более простой в случае циклических кодов и для некоторых специальных циклических кодов полностью решена в данной работе. Кроме того, для этих кодов перестановочное декодирование технически легко реализуемо и обходится дешевле по сравнению с другими схемами декодирования.
Оценивается контроль ошибок с помощью перестановочного декодирования для бинарного симметричного канала и переключательных телефонных линий, описанных экспериментальными данными. Перестановочное декодирование оказывается очень эффективным в случае бинарного симметричного канала и имеет весьма сомнительную ценность для современных телефонных линий.
ВВЕДЕНИЕ
Систематический код с длиной блока п является подпространством векторного пространства всех возможных строк из п символов, принимающих значения в конечном поле. В данной статье такие коды будут называться алфавитами [1], а последовательности, принадлежащие алфавиту, будут называться буквами.
Для описания алфавита используются параметры: длина блока гц число информационных позиций к и коэффициент корректирования е (п — число символов в каждой букве; к — размерность алфавита как подпространства; е определяется тем свойством, что минимальное (в смысле Хэмминга) расстояние между двумя буквами равно либо 2е+1, либо 2е+2).
Хорошо известно [1], что с теоретической точки зрения алфавиты с параметрами п, к и е в блоках длины п могут
]) Mac Wil Hams J., Permutation decoding of systematic codes, Bell Syst. Techn.L, 43, № 1, part 2 (1964), 485—505..
корректировать все ошибки кратности -Се. Однако для е > 1 процедура декодирования с коррекцией ошибок является сложной и требует соответственно дорогой аппаратуры. В данной работе описывается новая схема декодирования—перестановочное декодирование, которая является простой по своему существу и допускает простую техническую реализацию.
Процедура декодирования состоит из ряда перестановок полученного блока символов, каждая из которых сопровождается подсчетом проверок на соответствие. Таким образом, имеется возможность провести грубое сравнение сложности аппаратуры, требуемой для кодирования и декодирования. Для построения корректирующих позиций в кодирующем устройстве используется один регистр сдвигов, а в декодирующем — г регистров (или один регистр г раз), где г — число перестановок декодируемой последовательности. При постоянном времени задержки время операции декодирования имеет вполне допустимую величину и, по-видимому, обходится не слишком дорого.
Перестановочное декодирование впервые рассматривалось в более ранних работах П. Неймана и Е. Прейнджа. Оно существенно зависит от симметрий алфавита. Под симметрией алфавита понимается такая перестановка позиций, относительно которой алфавит инвариантен в целом. Одна и та же перестановка применяется к каждой букве алфавита, и при этом каждая буква переходит, вообще говоря, в другую букву того же самого алфавита. Симметрии произвольных алфавитов изучены очень мало, однако, как будет показано, даже этого достаточно для того, чтобы применять перестановочное декодирование для большого класса алфавитов.
Два важных свойства отличают перестановочное декодирование от предложенных ранее схем декодирования. Во-первых, оно тем легче, чем больше избыточность алфавита, т. е. оно более результативно для алфавитов с высоким коэффициентом корректирования. Во-вторых, в n-мерном блоке оно не может корректировать более чем е ошибок. Полученная последовательность, содержащая более чем е ошибок, либо будет неправильно «скорректирована», либо поступит на выход декодера без изменений.
В разд. III показывается, что при перестановочном декодировании на выходе получается намного больше ошибок, чем при обычных методах детектирования с ретрансляцией. Поэтому там, где это в принципе возможно, следует использовать более простую схему детектирования и ретрансляции.
Статья имеет следующий план: разд. I содержит описание перестановочного декодирования в целом, без обращения к каким-либо специальным (частным) алфавитам. Разд. II является
примером и содержит детальный расчет одной специальной группы перестановок, которая позволяет обосновать перестановочное декодирование для многих бинарных циклических алфавитов. В разд. III описывается, как можно оценить вероятность некорректируемых ошибок и обнаружения без коррекции.
Контроль ошибок и перестановочное декодирование
Обозначим через Vй множество всех возможных бинарных 9 последовательностей длины п. Расстояние между двумя последовательностями равно числу несовпадающих позиций; иначе говоря, расстояние между Vi и и2 равно минимальному числу позиций, которые надо изменить в Vi для того, чтобы перевести ее в и2.
Для осуществления контроля за ошибками лишь некоторые последовательности из Vn выбираются в качестве последова- teльнocтeй, которые могут передаваться. Это подмножество Vй называется кодом. Обнаружение ошибок заключается в проверке, принадлежит или нет полученная последовательность коду. Каждый метод исправления ошибок заключается в отображении полученной последовательности в ближайший (в смысле определенного выше расстояния) элемент кода. Если при этом имеется несколько ближайших элементов кода, то произвольным образом выбирается любой из них или указывается, что произошла некорректируемая ошибка.
Основной принцип выбора кода обычно сводится к тому, чтобы разместить его элементы в пространстве Vn по возможности дальше друг от друга. При этом потребуется относительно большое число ошибок, чтобы из переданной кодовой последовательности получилась другая последовательность кода. Если $асстояние между двумя кодовыми последовательностями >• ►2е+1, то теоретически такой код позволяет корректировать все одиночные, двойные, ..., е-кратные ошибки. Это можно обосновать следующим образом: если в полученной последовательности v произошло ^ е ошибок, то в коде существует единственная последовательность а, находящаяся на расстоянии -Се ют и. Все другие элементы кода находятся от о на расстоянии >е.
Сущность декодирования состоит в нахождении а по заданному и. Для быстрого осуществления этой процедуры необходимо знать некоторые дополнительные структурные бсобенности
кода, и поэтому в дальнейшем мы ограничимся одним классом кодов, описанным в следующем абзаце.
Алфавит 9 (систематический код, групповой код) есть код, в каждой последовательности которого фиксированное число фиксированных позиций являются информационными, а остальные позиции содержат проверки на соответствие, т. е. являются линейными комбинациями содержимого информационных позиций. Для удобства в качестве информационных выбираются первые к позиций. Добавление п — к проверок на соответствие к некоторой Л-мерной бинарной последовательности h определяет единственную букву алфавита. Эта буква будет обозначаться через/и (Л).
Пусть а — вектор, стоящий в первых к позициях п-мерной последовательности а. а является буквой алфавита тогда и только тогда, когда а = /п(а). Пусть л будет перестановкой позиций в Vn, относительно которой инвариантен данный алфавит, Если а является буквой, то и ал является буквой. Первые к позиций последовательности ал являются информационными и ал=»/п(ал).
Пусть полученная последовательность и содержит ^ е ошибок. Если в первых к позициях и не произошло ошибок, то ао=т(у) является единственной буквой алфавита, находящейся на расстоянии 4е от у и являющейся правильной интерпретацией и. Наоборот, если в первых к позициях и произошла одна или более ошибок, то буква /и(г;) является неверной интерпретацией и, так как в первых к позициях она совпадает с и. В этом случае т^ находится от и на расстоянии > е.
Первый шаг процедуры декодирования состоит в образовании ao^/nfF), нахождении расстояния между и и а0 и в принятии а0 в качестве правильной версии v, если это расстояние ^ в.
Пусть а означает единственную букву алфавита, находящуюся на расстоянии 4е от и. Пусть л, как и ранее, будет перестановкой позиций, относительно которой данный алфавит инвариантен. Тогда очевидно, что расстояние между ал и ил равно расстоянию между а и и.
Предположим, что нам удалось найти перестановку ль относительно которой алфавит инвариантен и которая передвигает ошибки в v из к информационных позиций в проверочные. Тогда аг = т(ил{) находится на расстоянии <5 от tm* и является единственной буквой алфавита, обладающей этим свойством. Следовательно, a = a^z-1 является правильной версией у.
Это рассуждение является обоснованием следующей процедуры декодирования: пусть / (тождественная перестановка), ль л2, • • •, — последовательность перестановок, относительно которых инвариантен данный алфавит. Образуем буквы
а0 = m (ф/), aj = tn (w^, а2 = пг (фл^), ...
и будем последовательно находить расстояния между а^ и uлi до тех пор, пока не найдем букву а^ находящуюся на расстоянии 4 s от ил*. Тогда а^*1 является правильной версией и.
Если полученный вектор и находится на расстоянии > е от всех букв алфавита, то рассматриваемая процедура позволяет обнаружить ошибку, но не позволяет скорректировать ее. На этот случай необходимо предусмотреть дополнительную процедуру, что обсуждается в разд. III.
Возможна также такая ситуация, когда декодер производит неправильную «коррекцию» ошибки. Это происходит тогда, когда вектор шума (содержащий более чем е единиц) переводит переданную букву а в последовательность и, находящуюся на расстоянии ^ е от буквы а', отличной от а. Вероятность такого события вычисляется в разд. III.
Для того чтобы работать с помощью перестайовочного декодирования, мы должны быть уверены, что одна из последовательностей ил< содержит к правильных первых позиций. Если u = a+f, где f—вектор ошибки, то перестановка Лг должна передвинуть все ненулевые координаты этого вектора из первых к позиций. Для того чтобы такая процедура имела практический интерес, должна существовать достаточно короткая последовательность перестановок, которая позволяла бы передвинуть из первых к позиций любую ошибку кратности ^е.
Итак, для того чтобы с помощью перестановочного декодирования можно было корректировать любую ошибку кратности ^е в блоке длины п, необходим 1) алфавит с длиной блоков п, размерностью к и минимальным расстоянием ^2е+1 и 2) множество перестановок Л1, лг, ...» которые передвигают любую ошибку кратности ^е из к информационных позиций в проверочные и относительно которых алфавит инвариантен.
Подчеркнем, что требование инвариантности алфавита относительно перестановок л^ является следствием требования того, чтобы для всех последовательностей алфавита проверки на соответствие вычислялись идентичным образом. Кодирующее устройство (вычислитель проверок на соответствие) является сложной и дорогой частью аппаратуры. Поэтому желательно в декодирующем устройстве использовать только одну кодирующую схему. Если по какой-либо причине (например, для уменьшения
реального времени операции) необходимо иметь более чем одно кодирующее устройство, то можно в определенной степени ослабить ограничения, накладываемые на перестановки л$.
Может показаться, что найти одновременно подходящий алфавит и подходящую группу перестановок чрезвычайно трудно. Основная трудность при этом состоит в том, что ни алфавиты, ни группы перестановок не изучались с этой точки зрения. В разд. II показано, что многие циклические алфавиты имеют очень простую группу перестановок.
В заключение данного раздела приведен пример перестановочного декодирования для алфавита Хэмминга с параметрами л = 7, 6=4, е=1 9- Алфавит выписан в табл. 1. Он, очевидно, инвариантен относительно циклических перестановок.
Таблица 1Циклический алфавитс л = 7; 6 = 4; е=\Таблица 1Циклический алфавитс л = 7; 6 = 4; е=\0 0 0 0 0 0 00 110 10 00 0 110 100 0 0 1 1 0 11 0 0 0 1 1 001000111 0 1 0 0 0 11101000111111110 0 10 11110 0 10 11110 0 10011100110111000 10 11100 0 10 1110 0 0 0 0 0 00 110 10 00 0 110 100 0 0 1 1 0 11 0 0 0 1 1 001000111 0 1 0 0 0 11101000111111110 0 10 11110 0 10 11110 0 10011100110111000 10 11100 0 10 111V= 1 110100m(7) = 1 1 10010 VT =0111010Расстояние = 2m(VT) = 011 1001VP= 0011 101Расстояние = 2m(.VT^= 0011010У 73= 1001 1 10Расстояние = 3тп(уТ^ = 1001011ИТ4 = 01 001 11Расстояние = 2m(VT^ = 01 00011Расстояние = 1V= 1 110100m(7) = 1 1 10010 VT =0111010Расстояние = 2m(VT) = 011 1001VP= 0011 101Расстояние = 2m(.VT^= 0011010У 73= 1001 1 10Расстояние = 3тп(уТ^ = 1001011ИТ4 = 01 001 11Расстояние = 2m(VT^ = 01 00011Расстояние = 1Таблица 2Таблица 2Процедура декодирования для алфавита табл. 1Процедура декодирования для алфавита табл. 1Таким образом, а = 0 100011 является единственной буквой, находящейся на расстоянии < 1 от VT* и, следовательно, аТ-* = аТ3=01101 00 является правильной версией V.Таким образом, а = 0 100011 является единственной буквой, находящейся на расстоянии < 1 от VT* и, следовательно, аТ-* = аТ3=01101 00 является правильной версией V.
Таблица 1
Циклический алфавитс л = 7; 6 = 4; е=\
Таблица 1
Циклический алфавитс л = 7; 6 = 4; е=\
0 0 0 0 0 0 0
0 110 10 0
0 0 110 10
0 0 0 1 1 0 1
1 0 0 0 1 1 0
0100011
1 0 1 0 0 0 1
1101000
1111111
10 0 10 11
110 0 10 1
1110 0 10
0111001
1011100
0 10 1110
0 0 10 111
0 0 0 0 0 0 0
0 110 10 0
0 0 110 10
0 0 0 1 1 0 1
1 0 0 0 1 1 0
0100011
1 0 1 0 0 0 1
1101000
1111111
10 0 10 11
110 0 10 1
1110 0 10
0111001
1011100
0 10 1110
0 0 10 111
V= 1 110100
m(7) = 1 1 10010 VT =0111010
Расстояние = 2
m(VT) = 011 1001
VP= 0011 101
Расстояние = 2
m(.VT^= 0011010
У 73= 1001 1 10
Расстояние = 3
тп(уТ^ = 1001011
ИТ4 = 01 001 11
Расстояние = 2
m(VT^ = 01 00011
Расстояние = 1
V= 1 110100
m(7) = 1 1 10010 VT =0111010
Расстояние = 2
m(VT) = 011 1001
VP= 0011 101
Расстояние = 2
m(.VT^= 0011010
У 73= 1001 1 10
Расстояние = 3
тп(уТ^ = 1001011
ИТ4 = 01 001 11
Расстояние = 2
m(VT^ = 01 00011
Расстояние = 1
Таблица 2
Таблица 2
Процедура декодирования для алфавита табл. 1
Процедура декодирования для алфавита табл. 1
Таким образом, а = 0 100011 является единственной буквой, находящейся на расстоянии < 1 от VT* и, следовательно, аТ-* = аТ3=01101 00 является правильной версией V.
Таким образом, а = 0 100011 является единственной буквой, находящейся на расстоянии < 1 от VT* и, следовательно, аТ-* = аТ3=01101 00 является правильной версией V.
Пусть Т обозначает циклическую перестановку. Очевидно, что самое большее четырехкратное применение Т передвигает любую единичную ошибку из первых четырех позиций. Декодирующая последовательность состоит из перестановок /, Т, Г, Г, Т42).
9 Данный пример выбран для простоты. Перестановочное декодирование не является самым эффективным способом коррекции одиночных ошибок.
Пусть на приемном конце получен вектор 1110100 (первый ненулевой вектор из табл. 1 с искаженной первой позицией). Все последовательные этапы процедуры декодирования приведены в табл. 2.
Перестановочное декодирование циклических алфавитов1)
Для удобства описания перестановок перенумеруем координаты пространства Vй числами 0, 1, 2, ..., п — 1. Если со — произвольное из этих чисел, то циклическая перестановка Т описывается соотношением -
Т :со->со+1 (сложение по модулю п).
Степени циклической перестановки Т определяются соответственно правилами
Г2: со->со4-2; Г3 : co-xD-j-S; ..., Тп : со—>со + ^ = м.
Циклический алфавит в Vй — это такой алфавит, который инвариантен относительно Т и, следовательно, относительно Т2, Т3 и т. д. Предположим, что нам надо декодировать циклический алфавит с параметрами п, к, е.
С помощью последовательных циклических сдвигов всегда можно передвинуть любые к последовательных позиций на первые к мест и, следовательно, перевести из первых к позиций все единичные координаты любого вектора шума, который имеет не менее к подряд идущих нулей. В частности, последовательность /, Т, Г2, ..., Ти*х всегда позволяет корректировать одиночные ошибки 2).
Если вектор шума не имеет отрезка длины > к из подряд идущих нулей, то последовательность циклических перестановок не может корректировать соответствующие ошибки. Предположим, например, что п = 23 и 6=12. Тогда не существует циклических сдвигов, которые бы позволяли скорректировать ошибку вида
X 12345678 X 10 11 12 13 14 15 16 17 18 X 20 21 22.
Для этих ситуаций мы введем другую подстановку — U : со —► 2ш (умножение по модулю п) и ее степени — <72 : со —> 4ш; С73: со —> —>8(о и т. д. Если п— нечетное число, то существует такое
9 Необходимо подчеркнуть, что данный раздел является всего лишь примером. Перестановки, описанные в этом разделе, не являются достаточными для того, чтобы декодировать все циклические алфавиты с нечетной длиной блока. В приложении А дан метод нахождения других перестановок.
Ч Она также позволяет корректировать все двойные ошибки, если ^<п!2 и так далее.
наименьшее целое число /, что 2* =1 (mod я) и 1Р=1. Выбор U обосновывается следующей теоремой.
Теорема 1. Каждый бинарный циклический алфавит с нечетной длиной блока п инвариантен относительно перестановки U и ее степеней.
Доказательство этой теоремы приведено в приложении А.
Рассмотренная выше ошибка в позициях 0, 9 и 19 с помощью перестановки U может быть переведена в позиции 0, 18 и 15, а затем сдвинута из первых двенадцати позиций с помощью 21 циклического сдвига.
Обозначим через Gn группу перестановок на множестве О, 1, ..., п — 1, порожденную перестановками Т и U. Легко убедиться, что TU=UT2, и, следовательно, каждую перестановку из Gn можно представить в виде U^T^^ где O-O'^f— 1 и (Х/^ г4п—1. Так как никакая степень U не затрагивает нулевую позицию и так как любая степень Т (за исключением нулевой) ее передвигает, то 1ИР=икТк тогда и только тогда, когда Z=A(modZ) и j = A(modn). Отсюда следует, что группа Gn имеет порядок nt и состоит из элементов
/,
Т,
р,..
рп — 1
U,
ит,
UP, ..
итп~х,
и\
и2т,
игт\ ..
и‘-\
и‘~хт,
u^t1,..
^jt — lpn — 1
Предположим, что в позициях и^ u2l ..., и8 произошли ошибки, где 0 ^ Uv < и2 < ... < us ^ п—1 ^п — нечетное число). Пусть g^u^ и2) ..., и8, п^ будет длиной максимального отрезка подряд идущих нулей, который может быть получен из соответствующего вектора шума в процессе последовательного умножения номеров позиций на 2 по модулю п.
^(«1, «2, •• ••^(«1, «2, •• ••Если и^п обозначает число, меньшее чем п и сравнимое с 2kuv по модулю п, то -
^(«1, «2, •• ••
^(«1, «2, •• ••
us, n)+^-=ra^k\4ik — 4jk\
при условии, что интервал Vum, и^д] не содержит других uVj. Обозначим через g(s, п) наименьшее значение длин максимальных нулевых отрезков для всех возможных наборов чисел Ui, и2, ...
и& при заданном s,g(s, п)= min g^ и^ .us. п).
“р “2US
Тогда группа Gn содержит перестановки, которые передвигают любую ошибку кратности s из первых g^s, п) позиций. Очевидно, что g^s', п^> g^s, п) для s'< s. Следовательно, бинарный циклический (п, 6, е)-алфавит с нечетным п можно декодировать с помощью группы Gn тогда и только тогда, когда k<g^ п).
Величина g^e, п) имеет несколько очевидных свойств.
Множество чисел 0, 1, ..., п — 1 можно разбить на непере- секающиеся подмножества, инвариантные относительно G). Например, для п=15 эти подмножества имеют вид
(0), (1, 2, 4, 8), (3, 6, 12, 9), (5, 10), (7, 14, 13, 11).
Объединение любого числа инвариантных подмножеств также является инвариантным относительно U. Инвариантные подмножества дают возможность получить верхнюю оценку g^e, п) путем непосредственной проверки. Для рассмотренного выше примера имеем
^•(2,15) -<9, так как инвариантное подмножество (5,10) дает максимальный нулевой отрезок 11, 12, 13, 14, 0, 1, 2, 3, 4 длины 9;
g(3,15)-^4, так как инвариантное подмножество (0, 5, 10) дает максимальный отрезок 1, 2, 3, 4 длины 4;
^(5,15) г^2, так как инвариантное подмножество (0,3,6,9,12) дает максимальный отрезок длины 2.
Верхняя граница является полезной и интересной характеристикой, так как она позволяет ограничить область целесообразности использования группы Gn.
На IBM-7090 были просчитаны значения g^e, п) для различных наборов п и е, Для некоторых циклических кодов эти данные совместно с параметрами и, к, е приведены в табл. 3.
В качестве декодирующей последовательности желательно, если это возможно, использовать только часть группы Gn. Рассмотрим, например, алфавит с параметрами п = 23; 6=12; е = 3). В этом случае перестановки U, U2, Un будут всегда создавать неискаженный отрезок длины по меньшей мере 12 при любой трехкратной ошибке. Декодирующая последовательность имеет
ВИД 9
/,
т,
р.
7^22
(/,
ит,
UP, ...
, UT22,
IT2,
ич,
Ц^Р, ...
, и2Р2,
и",
и^т,
UUP, ...,
ипр\
Для этого ‘частного алфавита процедура декодирования моделировалась на IBM-7090. Диаграмма логической программы Приведена на рис. 1, а в табл. 4 прослежена процедура декодирования для одной частной последовательности. Для того чтобы последовательность на выходе появлялась в своем естественном виде, на практике к декодирующей последовательности перестановок удобно добавить еще одну перестановку (в данном случае ТЩ. Окончательно на выходе перестановочного регистра появляется принятая последовательность уже в скорректированном виде.
Таблица 3Эффективность перестановки U дляразличных длин блоков
КодыКодып к вп к вДлина отрезка g (s)*
Коды
Коды
п к в
п к в
Х(2)g(3)g(4) g (5)
472453121231163311142312321122£19 32154179215721553472453121231163311142312321122£19 321541792157215531912171366139419121713661394
47245
31212
31163
31114
23123
21122
£19 3
2154
1792
1572
1553
47245
31212
31163
31114
23123
21122
£19 3
2154
1792
1572
1553
19
12
17
13
6
6
13
9
4
19
12
17
13
6
6
13
9
4
*) g(s) является длиной максимального отрезка из последовательных нулей, который можно вставить в произвольный л-мерный вектор— шум s-кратной ошибки при последовательном применении перестановки ©->2co(mod л). Если k<g(e\ то группа, порожденная Перестановками Т и U, содержит последовательность перестановок, позволяющую применять перестановочное Декодирование к (л, к, е)-алфавиту.
Операции на IBM-7090 выполняются последовательно, и это приводит к замедлению при моделировании вычислений прове-
9 Берлекамп показал, что на самом деле для декодирования необходима только последовательность из 40 перестановок.
рок на соответствие. Из логической диаграммы видно, что чрезвычайно удобно расчленить кодирующее устройство на четыре параллельные части, каждая из которых содержит регистр, способный осуществлять циклические перестановки, и
Bacoa-v
Рис. 1. Логика декодера для (23, 12, 3)-алфавита. В прямоугольниках записаны инструкции типа .Фортран*; например, I = i +1 означает J заменить на Z-f-1*.
кодирующее устройство для проверок на соответствие. Эта идея может быть использована для ускорения процедуры декодирования любого циклического кода.
Таблица 4
Проверки на соответствие *)
Расстояние
v3 5 7 11 13 14 15 18 19 20 21 22
3 5 7 11 13 16 18 21
6
vT0 4 6 8 12 14 15 16 19 20 21 22
0 4 6 8 16 18 19
7
vT222 4 6 10 12 13 14 17 18 19 20 21
2 4 6 10 12 15 17 20
6
vU3 5 6 7 10 13 14 15 17 19 21 22
3 5 6 7 10 12 15 16 17 W 20
7
vUT0 4 6 7 8 11 14 15 16 18 20 22
0 4 6 7 8 11 12 13 14 20 21 22
6
vUTM2 4 5 6 9 12 13 14 16 18 20 21
2 4 5 6 9 13 14 17 18 19 21 22
6
vU23 5 6 7 10 11 12 14 15 19 20 21
3 5 6 7 10 11 12 13 19 20 21 22
4
vU2T4 6 7 8 11 12 13 15 16 20 21 22
4 6 7 9 11 13 16 17 18 20 21
5
^^27120 ! з 4 8 9 10 15 17 18 19 22
_0 1 3 4 8 9 10 12 15 18 19
3
0^2712Q ] з 4 8 9 10 12 15 18 19<-
aU2T«2 5 69 12 14 16 18 20 21 22
aU'»0 9 10 11 13 14 17 18 19 21 22
aU^T0 1 10 11 12 14 15 18 19 20 21
0^107228 9 10 12 13 16 17 18 20 21 22
a0 3 5 11 13 15 18 19 20 21 22
*) Числа указывают номера позиций последовательности длины 23, в которых стоят единицы. Например, первая последовательность у имеет вид: 0001010100010111001111 1.
Оценка перестановочного декодированияс точки зрения контроля ошибок
Перестановочное декодирование (п, 6, е)-алфавита Л любую полученную последовательность и отображает в ближайшую букву из Л при условии, что эта буква единственна. Это» происходит в том случае, когда и лежит на расстоянии 4е от некоторой буквы из Л. Если и находится на расстоянии > е от любой буквы алфавита, декодер обнаружит ошибку, но не сможет скорректировать ее1).
Декодер может также делать ошибки. Если f — шумовая последовательность, имеющая больше чем е единиц, и а — переданная буква, то полученная последовательность a+f может лежать на расстоянии <.е от некоторой другой буквы а' алфавита Л. При этом декодер интерпретирует a+f как а'. Шумовые последовательности, которые приводят к такому неправильному декодированию, характеризуются следующей теоремой.
Теорема 2. Шумовыми последовательностями, приводящими декодер к неправильным «коррекциям», являются в точности те последовательности веса >е, которые лежат на расстоянии ^е от некоторой буквы из Л.
Доказательство. Пусть f последовательность веса >e* такая, что f = $ + F, Р 6 Л. и F имеет вес ^.е. Тогда для любой переданной буквы а
а+/ = а+Р+Г
и декодер интерпретирует а+f как а^р. Обратно, предположим, что f— такая шумовая последовательность, для которой a+f декодируется как а'^а. Тогда a-H=a' + F, а' £Л, F имеет вес Х>е и f = a'— a-VF- Следовательно, / находится на расстоянии ^ е от буквы а' — а алфавита Л.
Обозначим через A (s), s = 0, 1, ..., п, число букв веса s в алфавите Л, а через C(s), s=0, 1, ..., n, — число последовательностей веса s в пространстве Vn, находящихся на расстоянии ^.е от букв алфавита Л. Тогда C(s) однозначно определяется через Л($) с помощью простых вычислений по точным форму-
!) Соблазнительно, конечно, потребовать, чтобы в случае такого обнаружения декодер посылал запрос для ретрансляции. Однако идея эта сомнительна, так как вообще не следует использовать коррекцию ошибок при декодировании, если возможна коррекция ошибок методом обнаружения с последующей ретрансляцией. Поэтому мы предположим, что ретрансляция чрезвычайно трудно выполнима, если не полностью невозможна.
лам, приведенным в приложении В. Для некоторых бинарных циклических алфавитов значения Л($) приведены в табл. 5, а значения C(s) —в табл. 6.
Для s^e C(s) = ^) и является числом последователь- «ностей веса s, которые правильно корректируются декодером. Для s> е C(s) является числом последовательностей веса s, которые неправильно корректируются декодером.
Обозначим через D(s), s = e+l, ..., п, число таких последовательностей веса s, что декодер обнаруживает соответствующие ошибки, но не корректирует их. Очевидно, что D(s)=0 для s < е и D (s) = ^ ) — С (s) для s> е.'
Пусть РЕ означает вероятность того, что полученная последовательность неправильно «скорректирована» в декодере, а Рп — вероятность того, что в полученной последовательности обнаружена ошибка, но не скорректирована. Рассмотрим бинарный симметричный канал без памяти с вероятностью р искажения сигнала. Тогда вероятность некоторой конкретной s-кратной ошибки в блоке длины п не зависит от ее конкретного местонахождения и равна ps(l—p)n-s. Следовательно,
п
ре^. с.)= з с^А'-рГ\
5 = 5 + 1
П'
^(Б. с.)= 2 d^via-pT5.
5 = 5 + 1
Необходимо отметить, что если используется обнаружение с ретрансляцией, то вероятность необнаруженных ошибок равна
2 А(s)/(l— рУ$\ d = 2<? + l или d = 2^ + 2. s=d
Эта сумма начинается с того номера s (s > 0), для которого A(s) > 0, т. е. с s = 2e+l или s = 2e+2. Очевидно, что при значениях пир, принятых для использования в Bell System, коррекция ошибок с помощью обнаружения и ретрансляции является более предпочтительной схемой.
В табл. 7 для некоторых алфавитов приведены значения вероятностей РЕ(Б.С.) и Рр(Б.С.), причем в качестве р взята величина 3,22Х10"5, равная частоте ошибок телефонной сети согласно данным Александера, Гриба и Наста (см. [5]).
Все алфавиты, за исключением первого и последнего, входят в табл. 5, 6 и 7 парами. Второй алфавит каждой пары содержит буквы первого алфавита, имеющие четный вес. Для
Значения A(s)
п, к, е
47, 24, 5 |
31, 21, 2
31, 20, 2
31, 16, 3
31, 15, 3
S
A(s)/47
A(s)/31
A(s)/31
$
A(s)/3X
Л($)/31
0
1/47
0
1/31
1/31
0
1/31
1/31
11
92
5
7
0
7
5
0
12
276
6
27
27
8
15
15
15
3795
7
75
0
И
168
0
16
7590
8
245
245
12
280
280
19
35420
9
655
0
13
589
0
20
49588
10
1387
1387
16
589
589
23
81720
11
2640
0
19
280
0
24
81 720
12
4 480
4 480
20
168
168
27
49588
13
6510
0
23
15
0
28
35420
14
8 310
8310
24
5
5
31
7590
15
9 489
0
31
1/31
0
32
3 795
16
9 489
9 489
35
276
17
8310
0
36
92
18
6 510
6 510
47
1/47
19
4480
0
20
2640
2640
21
1387
0
22
655
655
23
245
0
24
75
75
25
27
0
26
7
7
31
1/31
0
л, Л, е
23, 12, 3
23, 11, 3
21, 12, 2
21, 11,2
(17, 9, 2)
(17, 8, 2)
(15, 7, 2)
S
A (s)/23
Л($)/23
5
Л(5)
А (5)
5
А(^
А (5)
5
Л (5)
0
1/23
1/23
Q
1
1
0
1
0
1
7
И
0
5
21
0
5
34
5
18
8
22
22
6
168
168
6
68
6
30
11
56
0
7
360
0
7
68
0
7
150
12
56
56
8
210
210
8
85
85
8
150
15
22
0
9
280
0
9
85
0
9
30
16
11
11
10
1008
1008
10
68
68
10
18
23
1/23
0
11
1008
0
11
68
0
15
1
12
280
280
12
34
34
13
210
0
17
1
0
И
360
360
15
168
0
16
21
21
21
1
0
4 Зак. 1622
Значения С (s)
п, к, е
47, 24, 5*)
31, 21, 2*)
31, 20, 2
31, 16, 3
31, 15, 3
S = 1
С (s) = 47
31
31
31
31
2
1081
465
465
465
465
3
16215
2170
0
4495
4495
4
178365
13640
12555
5425
О
5
1533939
82274
5022
29295
26040
6
1997688
360964
339047
92225
13020
7
11700743
1276115
81685
329375
303180
8
58503719
3829585
3591040
1248525
86025
9
253516120
9788250
604655
3190675
2861455
10
1094459500
21506932
20159981
6790333
690525
11
3681363800
41087771
2569497
12963363
11812395
12
10764415000
68535730
64275400
21284445
1987720
13
28981118000
100106900
6245260
31108034
28201320
14
70307802000
128661310
120616350
40561485
3675360
15
154677160000
145890120
9085914
45969682
41569263
16
310193350000
145890120
136804210
45969682
4400419
17
565646700000
128661310
8044965
40561485
36886124
18
942103590000
100106900
93861645
31108034
2906715
19
1437947500000
68535730
4260330
21284445
19296724
20
2012287600000
41087771
38518275
12963363
1150968
21
2587226900000
21506932
1346950
6790333
6099808
22
3059047600000
9788250
9183595
3190675
329220
23
3325051800000
3829585
238545
1248525
1162500
24
1276115
1194430
329375
26195
25
360964
21917
92225
79205
26
82274
77252
29295
33255
27
+ симметричные
13640
1085
5425
5425
28
члены
2170
2170
4495
0
29
465
0
465
0
30
31
0
31
0
31
1
0
1
0
*) Таблица просчитана с точностью до восьмой значащей цифры. „
Продолжение
п, к, е
23, 12, 3
23, 11, 3
21, 12, 2
21, и, 2
17, 9, 2
17, 8, 2
15, 7, 2
5 = 1
С (s) =23
23
21
21
17
17
15
2
253
253
210
210
136
136
105
3
1771
1771
210
0
340
0
180
4
8855
0
2625
2520
1190
1020
540
5
33649
28336
10269
1008
3910
408
1413
6
100947
14168
24024
21168
7820
6936
2355
7
245157
216568
52440
4200
11560
1428
3135
8
490314
61226
92610
85050
14450
13005
3135
9
817190
715990
131530
12810
14450
1445
2355
10
1144066
138138
161196
146748
11560
10132
1413
11
1352078
1180774
161196
14448
7820
884
540
12
1352078
171304
131530
118720
3910
3502
180
13
1144066
1005928
92610
7560
1190
170
105
14
817190
101200
52440
48240
340
340
15
15
490314
429088
24024
2856
136
0
1
16
245157
28589
10269
9261
17
0
17
100947
86779
2625
105
1
0
18
33649
5313
210
210
19
8855
8855
210
0
20
1771
0
21
0
21
253
0
1
22
23
0
23
1
0
второго алфавита С(е+1) равна нулю, поскольку его минимальное расстояние равно 2е + 2. Иными словами, обнаруживается любая ошибка веса е+1. В тех случаях, когда это важно, более выгодно использовать второй алфавит.
Вероятности ошибок, приведенные в табл. 7, являются фантастически малыми, что, к сожалению, справедливо лишь для бинарного симметричного канала. В реальных телефонных каналах дело обстоит совсем иначе.
Пусть P(s, п) обозначает вероятность s-кратной ошибки в п последовательных позициях. [Для бинарного симметричного канала P(s, д) = ^^р5(1—р)л”5-] Для телефонной сети таблица величин P(s, п) составлена по данным Александера, Гриба и Наста.
Каждая ошибка веса >е в перестановочном декодере либо обнаруживается, либо корректируется неправильно.
Таблица 7
Вероятность ошибок для бинарного симметричного канала
л, к, в
РЕ
PD
PE*PD
47, 24, 5
2,23 X Ю'21
4,56 X Ю'20
4,78 ХЮ" 20
31, 21, 2
7,23 X Ю"11
0,77 ХЮ'10
1,50 ХЮ"10
81, 20, 2
1.342ХЮ"12
1,50 ХЮ'10
1,50 X Ю"10
31, 16, 3
5,83 X Ю"15
2,80 X Ю”14
3,38 X Ю~14
31, 15, 3
9,01 X Ю"19
3,38 X Ю'14
3,38 X Ю'14
23, 12, 3
9,59 X Ю'15
0
9,59 X Ю"15 *>
23, 11, 3
9,81 X Ю“19
9,59 X Ю '16
9,59 ХЮ"15
21, 12, 2
7,00 ХЮ'12
3,72X Ю"11
4,42 X Ю~11
21, 11, 2
2,70 X Ю'15
4,42 X Ю'11
4,42X Ю'11
17, 9, 2
, 4,54ХЮ'12
1,80 X Ю'11
2,27 X Ю'11
17, 8, 2
1,11 х Ю"13
2,27 ХЮ"11
2,27 X Ю'11
15, 7, 2
6,092 ХЮ'12
1,078 ХЮ'10
1.078Х Ю'10
*) Рассматриваемый алфавит является плотноупакованным: каждая последовательность из 23 бинарных цифр находится на расстоянии < 3 от некоторой буквы алфавита.
Следовательно,
PE-VPD= 2 P(s, nY
5 = ^ + 1
Получить точные формулы для величин РЕ и PD в отдельности в случае телефонной сети невозможно. Используя метод, предложенный в работе [5], удается получить приближенные формулы п
РеФ- С.) = 2 с^-^^,
PD(T- С.) = 2 D(s)^^-.
»=«+! I с I
Эти числа были просчитаны и соответствующие значения приведены в табл. 8. Приведенные данные ясно показывают, что в канале, описанном по данным Александера, Гриба и Наста, частота ошибок на слово после коррекции ошибок
больше частоты ошибок на символ при передаче без всякого кодирования.
Частоты ошибок, приведенные в табл. 8, конечно, не позволяют сделать точные выводы. Исследование величин P(s, п)
Таблица 3
Частоты ошибок для телефонной сети ♦)
п, к, е
РЕ
PD
pe+pd
47, 24, 5
4,65 X Ю~6
3,51 X Ю'8
4,08 X Ю~5
31, 21, 2
3,17 X Ю"8
3,73 X Ю~8
6,9 ХЮ"5
31, 20, 2
1,23 X Ю-5
5,67 X Ю~8
6,9 X Ю-8
31, 16, 3
7,34 X Ю-6
3,99 X Ю-8
4,72 X 10-8
31, 15, 3
3,06 х Ю"8
4,41 X Ю"8
4,72 X 10'5
23, 12, 3
3,69 X Ю-8
0
3,69 X Ю~5
23, 11, 3
1,52 X Ю'5
2,17 X Ю-5
3,69 X Ю-8
21, 12, 2
1,82 X 10-8
3,13 х Ю'8
5,05 X Ю-5
21, И, 2
8,72 X Ю'6
4,18 X Ю"8
5,05 X Ю-5
17, 9, 2
2,36 X Ю'8
1,89 X 10~5
4,25 X Ю"5
17, 8, 2
0,98 X Ю'8
3,27 X Ю-8
4,25 X 10""5
15, 7, 2
1,83 X Ю-8
2,0 ХЮ-5
3,83 X Ю"5
*) Pg и Pd имеют приближенное значение, a PgA- Pd~ точное.
для некоторых частных случаев показывает, что примерно в половине из тех случаев, в которых встречались ошибки, последние были бы успешно скорректированы с помощью перестановочного декодирования.
ЗАКЛЮЧЕНИЕ
Перестановочное декодирование является простой и удобной схемой коррекции ошибок без ретрансляции. Особенно era целесообразно применять для алфавитов с большой избыточностью. Подобно любой аналогичной схеме, перестановочное декодирование приводит к значительно большему числу ошибок декодирования, чем коррекция с помощью обнаружения и ретрансляции, но оно вполне пригодно для каналов, в которых
P(s, и) быстро убывает с ростом s. Перестановочное декодирование имеет весьма сомнительную ценность для телефонной сети, описанной по данным Александера, Гриба и Наста.
ПРИЛОЖЕНИЕ А
ИДЕМПОТЕНТЫ И АВТОМОРФИЗМЫ ЦИКЛИЧЕСКИХ КОДОВ
Приведем прежде всего краткую сводку свойств циклических гкодов.
Пусть V— конечное поле характеристики q. Обозначим через Vй прямую сумму п образцов V.
Обозначим через V [у] кольцо полиномов от у над полем V. Пусть V И= V [у]1{уп — 1) — кольцо классов вычетов кольца V[z/] по модулю уп—1. V[x] содержит все полиномы степени £Ся — 1 с коэффициентами из поля V. Сложение полиномов выполняется как обычно; для умножения двух полиномов производят обычное умножение, а затем показатели берутся по модулю п.
Подмножество Л полиномов из V[x] называется идеалом, «если
£ъ g^^=>axg\-V<4gi^dt, а„ а2£К
g^dt^xg^ut.
Полином полностью определяется своими коэффициентами, что позволяет фактически отождествить V[x] с Vй. Однако удобно рассматривать полином и последовательность его коэффициентов как отдельные* объекты, связанные взаимно однозначным соответствием
Од+а^Ч- ... H-a^x"-1 ^Од, аь .а„_Р
Согласно свойству (1), каждый идеал в ИЧ является линейным подпространством в Vя. Это подпространство, согласно ■свойству (2), инвариантно относительно циклической перестановки координат и, следовательно, является циклическим алфавитом в Vя. Обратно, каждый циклический алфавит в Vя образует идеал в К[х]. Мы будем обозначать идеал и алфавит одной и той же буквой Л.
Кольцо V[x] можно рассматривать как групповую алгебру циклической группы 1, х, ..., х"-1 над V. При условии, что 4 не делит п, групповая алгебра является полупростой ([6], разд. 10.8). В этом случае, как известно, каждый идеал со-
Перестановочное декодирование систематических кодов 55» держит полином е, обладающий следующими свойствами:
е является идемпотентом(^2 = ^);
е является единицей в Л(а^Л^ае — а)\
е порождает Л(Л состоит из всех полино
мов fi, f6^[x]).
Полином е называется порождающим идемпотентом Л.
Автоморфизмом о кольца V[x] называется такое взаимно однозначное отображение V [х] на себя, которое сохраняет как сложение, так и умножение. Если ^2, ^Е^И» то
(^! + ^2) о = ^о + ^2а,
(®1-D2)a = (-D1o) (v^).
Лемма 1.1. Идеал Л инвариантен относительно автоморфизма о кольца V[x] тогда и только тогда, когда о сохраняет порождающий идемпотент е идеала Л.
Доказательство. Предположим, что о сохраняет е. Тогда Ло= V [х] • eo=V[x] • е=Л.
Предположим, что Л инвариантен относительно о. Тогда ео £ Л и еое = ео согласно свойству (2).
Пусть b— такой элемент из Л, что Ьо=е. Тогда
вое = eobo = (eb) о = Ьо = е.
Следовательно, е = еое = ео, и о сохраняет е.
Лемма 1.2. Если q (характеристика V) взаимно проста с п (длина блока алфавита Л), то отображение о-.х^—^х1^ является автоморфизмом V [х].
Доказательство. Очевидно, что рассматриваемое отображение сохраняет сложение и умножение. Необходимо только доказать его взаимную однозначность.
Если х^=х39, то (Z — j)^ = 0(mod п). Так как q и п— взаимно простые числа, то из этого вытекает, что (f — /) = eO(mod п^, или хг=хЛ Это и доказывает лемму.
Теорема 1.3. Если q и п взаимно просты, то каждый идеал в V[x] инвариантен относительно отображения о : xi —>х^_
Доказательство. Пусть Л—некоторый идеал в V[x] и п
€=5 а^ — его порождающий идемпотент. z=o п/ п\Q
ое = 2 atxlq = S atxl = ^»1=0\i=0/
так как q является характеристикой V. Имеем е = е2 = е3=... ... = е«, следовательно, о сохраняет е, и в силу лемм 1.1 и 1.2 Л инвариантен относительно о.
Обозначим через 0, 1, ..., п— 1 координаты Vй. Тогда отображению о;хг->х^ в V[x] соответствует перестановка Uq : со —* qw координат Vn.
Следствие. Каждый бинарный циклический алфавит € нечетной длиной блока инвариантен относительно перестановки U : со -* 2(о.
Это и есть теорема 1 разд. II. Приведенное здесь доказательство ее использует более обширный аппарат, чем это требуется для доказательства теоремы 1. Это сделано с целью обращения внимания на лемму 1.1, указывающую методы нахождения других автоморфизмов V[x], сохраняющих некоторые циклические алфавиты.
ПРИЛОЖЕНИЕ В
РАСПРЕДЕЛЕНИЕ ВЕСОВ В СМЕЖНЫХ КЛАССАХГРУППОВОГО КОДА
Пусть Л— бинарный (п, к, а)-алфавит и пусть 58— ортогональное дополнение (двойственный алфавит) Л в Vn. Пусть А^ и В (/) обозначают число букв веса / в Л и 58 соответственно. Величины А(Ц и B(Z) связаны производящей функцией
2 A (Z) (1 + г)”’' (1 — zt = 2» s В (О Z1. 1=0 1=0
Так как А (Г) известно, то из этого соотношения можно подсчитать B(Z).
Положим п
7=о
Пусть C(s, /) означает число последовательностей в V” веса s, находящихся на расстоянии j от некоторой буквы алфавита Jt.
Тогда для j^Ce C(s, j) и ВЦ) связаны производящей функцией
пп
3 ВЦ)^Ц, МИ-хГЧг-хУ-^'^СЦц Л^- Z=05=0
Так как В(Ц и *ф(/, /) известны, то из этого соотношения можно найти C(s, /). Очевидно, что
C(s)=fc(s, у).
у=о
ЛИТЕРАТУРА
Slepian D., A Class of Binary Signaling Alphabets, B. S. T. J., 35, (1956), 634. (Русский перевод: Слеп ян Д., Класс двоичных сигнальных алфавитов, сб. Теория передачи сообщений, ИЛ, 1957.)
Neumann Р. G., A Note on Cyclic Permutation Error-Correcting Codes^ Information and Control, 5 (1962), 72. (Русский перевод: сб. Теория кодирования, «Мир», М., 1964, 65—82.)
Р г a n g е Е., The Use of Information Sets in Decoding Cyclic Codes, IRE - Trans., IT-8 (1962), 5—9.
P r a n g e E., An Algorithm for Factoring xn — 1 over a Finite Field, Air Force Cambridge Research Center, AFCRC-TN-59—775.
E11 i о 11 E., Estimates of Error Rates for Codes on Burst-Noise Channels^ B.S.T.J., 42 (1963), 1977.
Curtis C. W., Reiner I., Representation Theory of Finite Groups and Associated Algebras, Interscience Publishers, New York, 1962.
M a c W i 11 i a m s J., A. Theorem on the Distribution of Weights in a Syste* matic Code, B.S.TJ., 42 (1963), 79,
Циклически перестановочныесамокорректирующиеся коды *)
Э. Гилберт
В асинхронных мультиплексных системах в одной и той же полосе частот радиоволн одновременно идет передача нескольких разговоров, каждый из которых использует различную последовательность импульсов в качестве «носителя». При синтезе хорошего списка допустимых последовательностей импульсов возникает любопытная задача, аналогичная некоторым задачам теории самокорректирующихся кодов.
Искомое кодирование использует двоичные наборы длины N (кодовые слова), в которых большинство разрядов равно нулю. Кроме того, расстояние Хэмминга между любым кодовым словом и всеми циклическими перестановками остальных кодовых слов должно превышать заданное минимальное значение. Кодовые слова, найденные при этом, легко могут быть порождены регистром сдвига.
ВВЕДЕНИЕ
Путем асинхронного уплотнения система рассеянных (например, подвижных) станций может сообщаться одна с другой одновременно по общему радиочастотному каналу ([10, 6, 9, 4]). Сигналы идут прямо от одной станции к другой без промежуточного центрального устройства, осуществляющего контроль или такое распределение, при котором не происходит интерференции. Каждая передающая станция испускает характерную последовательность импульсов, однозначно соответствующую этой станции. Принимающая станция должна распознавать этот поток импульсов и отделять его от импульсов, предназначенных для других станций. Поток импульсов для заданного приемника представляет собой фиксированную наперед заданную последовательность, или кодовое слово. Для того чтобы передавать сообщение не только для простого отождествления, можно модулировать некоторые свойства потока импульсов (например, амплитуду импульсов),.
Так как отсутствует центральное устройство, контролирующее все станции, то нет и центральных часов, устанавливающих
!) Gilbert Е. N., Cyclically permutable error-correcting codes, IEEB Transactions on information theory, IT-9, № 3 (1963), 175—182,
синхронность передатчика и той станции, которую он вызывает (отсюда название асинхронное уплотнение). Из-за отсутствия синхронности и возникает задача распознавания приемником потока импульсов. Приемник должен распознать свой собственный поток импульсов, если фаза этого потока импульсов неизвестна.
Задача, которую мы рассмотрим в этой сжатье, касается синтеза соответствующих потоков импульсов. Эти потоки представляют собой двоичные последовательности периода N. Чтобы интерференция между станциями оставалась маленькой, необходимо ограничить сверху число единиц (представляющих импульсы) в каждом периоде потока импульсов. Кроме того, список допустимых потоков импульсов будет обладать некоторого рода способностью исправлять ошибки. Для некоторого* числа 5 никакие два различных потока импульсов не могут различаться менее чем в S из N позиций периода.
Чтобы сравнить два потока импульсов, нужно исследовать каждую из N возможных относительных фаз.
Решение, которое предлагается здесь, использует циклический код (см. Питерсон [5], гл. 8), у которого каждая пара кодовых слов различается по крайней мере в 5 позициях. Из такого кода выбирается меньший список кодовых слов, не содержащий ни одной пары слов, получающихся друг из друга циклической перестановкой. Повторяя кодовые слова из этого меньшего списка, мы получим периодические последовательности, пригодные для потоков импульсов. Таким образом, задача сводится к построению циклических самокорректирующихся кодов при дополнительном ограничении на вес кодовых слов.
Эту задачу предложил автору М. Карно. Для его целей нужны были кодовые слова для нескольких тысяч станций. В одном из типичных решений, предлагаемых в настоящей работе, 2475 станций обслуживаются потоками импульсов с периодом W = 231, разделением 5=12 и с 24 единицами в каждом периоде.
КОДИРОВАНИЯ
Каждый сигнал, который подлежит передаче, представляет собой бесконечную двоичную последовательность с периодом !) N
• *1» С^+Л^-^),
9 N не обязательно является наименьшим периодом последовательности {Xi}. Таким образом, эта последовательность может обладать также меньшим периодом, который является делителем N.
полученную повторением двоичного слова длины N
X = (хь х2. .... xN).
Не предусматривается никакого соглашения между передатчиком и приемником о моменте появления х0. Приемник не может отличитр периодическую последовательность, полученную путем повторения X. от последовательности, полученной путем повторения
RX = (х2, x3, ...» xN. xx)
или любой другой циклической перестановки R2X, R3X, ... ..., RN-XX слова X. Таким образом, циклическая группа {1, R, ..., ^“^ разбивает двоичные слова длины N на классы эквивалентности неразличимых слов длины N.
Если X и X' — двоичные слова длины N. то пусть d^X. X') обозначает число индексов li^V ..., N^. для которых х^ и х^ fразличны. Число d(X, X') называется расстоянием Хэмминга 11] между X и X'. Чтобы учитывать циклические перестановки, определим
D^X. X') = m\nd(X. RSX'\
Число D^X. X') зависит только от тех классов эквивалентности, к которым принадлежат X и X'. Будучи функцией классов эквивалентности, оно удовлетворяет трем, аксиомам метрики. Поэтому D^X, X') мы будем называть просто расстоянием между X и X'.
Кодированием размера К называется список слов длины N (кодовых слов) Xb Х2, • • •, Хк. Число
S = minD(Xz, Х^
называется разделением кодирования. Если некоторое кодирование имеет разделение S, то могут быть изменены по крайней мере S разрядов кодового слова внутри периода (^ разрядов), прежде чем это слово станет эквивалентно другому кодовому слову. Следовательно, приемник может исправлять [(S—1)/2] любых ошибок внутри одного периода (здесь квадратные скобки означают целую часть). Весом w(X) произвольного набора X длины N называется число разрядов^, которые равны 1.
Циклический код (см. Питерсон [5], гл. 8) представляет собой список наборов длины N. таких, что все циклические перестановки RX, R2X, ..., RNX каждого набора X. входящегр в список, также входят в этот список. Каждый такой список может быть представлен в виде
Хъ RXx. &Хх. ..., Хъ RX^ Х^ RX^ ....
где
Хи Х2, ^з, ...
— это слова циклического кода, которые неэквивалентны (никакие два различных набора Хь Х3 не являются циклическими перестановками друг друга).
Теорема 0. Пусть Х^ ..., Хк — неэквивалентные наборы длины N, принадлежащие циклическому коду, в котором расстояние Хэмминга между любыми двумя наборами не меньше чем So. Тогда {Хр ..., Хк^ представляет собой кодирование с разделением S > So.
Доказательство. Для любых /, /, таких, что i^j,
D<Xb Х^ = тпс1{Хь RSX^SQ.
Следовательно,
S = minD(Xz, ^)>S0.
Применяя теорему 0 к получению потоков импульсов из циклических кодов, в качестве Х^ ..., Хк берут только слова с малым весом. Таким образом, очень важно знать число /(w) классов эквивалентности кодовых слов веса w. Если известно число M^w) кодсгвых слов веса w в циклическом коде, то
J^^M^/N,
так как каждый из J (w) классов эквивалентности содержит не более N кодовых слов. Равенство имеет место в том случае, когда все Af(ty) кодовых слов имеют наименьший период N (например, когда N — простое число и 14w4N—1 или, в более общем случае, когда N и ну взаимно просты).
ЦИКЛИЧЕСКИЕ КОДЫ ХЭММИНГА
Циклические коды Хэмминга (коды Хэмминга, исправляющие единичную ошибку, сделанные циклическими соответствующим размещением разрядов) образуют семейство, для которого распределение весов М(ну) известно; Питерсон [5] дает его в форме производящей функции
2 М W{(1 +^ + W (1 +л)("-1у2 (1х}"^.
Явное выражение для М (tw) имеет вид
(^) + (—Ц"^^ ^). если 1У четно, (w)—1)lW~1№^((w-l^ если ® нечетно
Табл. 1 дает нижнюю оценку M(w)fN величины J(tw) для некоторых малых значений N и w. В этой таблице «3—» обозначает «число между 2 и 3». Табулированные числа в точности представляют собой числа классов эквивалентности, когда N — простое число 7 или 31 и 1 -^ w ^ N — 1.
Таблица I
Нижняя оценка числа неэквивалентных слов веса w в циклических кодах Хэмминга длины N
W
0
1
2
3
4
б
6
7
N = 7
1 —
0
0
1
1
0
0
1 —
15
1 —
0
0
3 —
7
12 —
19 —
29
31
1 —
0
0
5
35
168
728
2665
63
1 —
0
0
11 —
155
1736
16782 —
137291 —
Так как циклические коды исправляют единичную ошибку, то кодовые слова в них отстоят друг от друга на расстояние 3. Таким образом, табл. 1 показывает, что возможны 1+5 + 35+] + 168+728 = 937 различных потоков импульсов с периодом 31, разделением 3, весом 6 или менее. Рассмотрим, с другой стороны, только кодовые слова с четным весом в коде Хэмминга. Эти слова образуют код с расстоянием 4, обнаруживающий двойную ошибку. Табл. 1 показывает, что возможны 1+35 + + 728 = 764 потоков импульсов с периодом 31, разделением 4 и весом 6 или менее.
ПОСЛЕДОВАТЕЛЬНОСТИ, ПОРОЖДАЕМЫЕ РЕГИСТРОМ СДВИГА
Двоичная последовательность, удовлетворяющая линейному рекуррентному соотношению
Хп+Ъ = ХпА"Хпл-ах 4*-^л+а2 + ••• (mod 2)(1)
(1 •< ai < а2 < ... < 6), называется последовательностью, порождаемой регистром сдвига. Если (1) имеет решения периода N, то множество всех наборов (хь ..., xN} длины N, являющихся
последовательными разрядами решения уравнения (1), имеющего период N, образует циклический код. Эти наборы длины N включают нулевой набор Уо = (0, 0, ..., 0); ненулевые наборы длины N будем обозначать через Уь У2, ... .
Теорема 1. Пусть Хь ..., Хк — неэквивалентные наборы длины N, состоящие из N последовательных разрядов решений уравнения (1), имеющих период N. Тогда список {Xi, ..., Хк) является кодированием с разделением S ^ S0 = min {w(Yt), w(Y2)_..}.
Доказательство. Расстояние Хэмминга между любыми двумя различными членами У;, Yj циклического кода есть d(Yi, Yj) =w(Yi + Yj). Здесь Yt + Yj есть векторная сумма по mod 2 элементов Уг- и Yj. Так как соотношение (1) линейно и однородно, то Yt + Yj является некоторым третьим ненулевым решением Уд. Тогда d(Yi, Yj)=w(Yk) ^ S0) и мы можем применить теорему 0.
В качестве небольшого примера рассмотрим все решения периода N=9 рекуррентного соотношения хп+6=хп+34-хп. Имеются восемь классов эквивалентности решений; они приведены в табл. 2. Любой выбор значения X из табл. 2 приводит к кодированию с разделением по меньшей мере два.
Таблица 2
Вес
Решение X
=U1,
X»)
w (X)
•Ч
для
1=1
2
3
4
5
6
7
8
9
0
0
0
0
0
0
0
0
0
0
2
1
0
0
1
0
0
0
0
0
4
1
1
0
1
1
0
0
0
0
4
1
0
1
1
0
1
0
0
0
4
1
0
0
I
1
0
0
1
0
6
1
1
1
1
1
1
0
0
0
6
1
1
1
0
1
1
1
0
0
6
1
1
1
1
0
1
0
1
0
Возможное преимущество кодирования, построенного при помощи рекуррентного соотношения (1), состоит в простоте получения сигналов. Сумматор по mod 2 и линия задержки регистра сдвига с b ступенями являются основными частями необходимого оборудования. В частности, так как b может быть намного меньше N, то возможна экономия по сравнению со схемами, в которых требуется запоминание всех N разрядов
периода. Кроме того, один и тот же передатчик может посылать любой из К кодов. Чтобы послать Х^ b ячеек памяти регистра сдвига должны быть заполнены b последовательными разрядами Х^ после чего передатчик будет бесконечно повторять Xt. Возможный недостаток этой системы состоит в том, что единичная ошибка в передатчике может преобразовать поток импульсов в совершенно иной.
СВЯЗЬ С КОДАМИ БЕЗ ЗАПЯТОЙ
Код без запятой [2, 1] является списком кодовых слов длины N, обладающим следующим специальным синхронизационным свойством: для любой пары кодовых слов
Х = (хъ ..., х^, У = ^уъ ..., yN)
(включая пары, где X=Y) и целого числа Ц2Х к ^.N^ слово £ = Vxb ^ + 1> •••» XN' Уъ •••» Ук-\^
не является кодовым словом. Таким образом, блок из N последовательных разрядов, выделенный в сообщении, использующем код без запятой, лишь тогда совпадает с некоторым кодовым словом, когда он является передаваемым кодовым словом.
Во многих примерах слова Х^ ..., ХК из теоремы 1 образуют коды без запятой. Асинхронное уплотнение не использует полностью свойства отсутствия запятой, потому что сообщение просто повторяет одно и то же кодовое слово. Однако, если важно хронометрирование, как это может быть в случае некоторых способов модуляции потока импульсов, то свойство отсутствия запятой весьма полезно.
В теореме 1 наборы Хь ..., Хк образуют код без запятой всякий раз, когда все эти наборы длины N получены из периодических последовательностей с наименьшим периодом N и, кроме того, N^>2b— 1. Действительно, рассмотрим набор 2, определенный, как указано выше, с X и У, выбранными из списка Xi, Х2, ..., Хк. Так как N^2b—1, по крайней мере один из элементов X, Y совпадает с Z в b или более разрядах. Предположим, что k >6 + 1, так что Z содержит к — 1>6 разрядов У. Если бы набор Z был кодовым словом, то периодическая последовательность, которая повторяет Z, должна была быть решением соотношения (1). Тогда Z и У можно было бы получить из двух решений соотношения (1), которые содержат последовательные разряды yi, ..., уь и поэтому отличаются друг от друга только циклической перестановкой: Z=Rk-xY. Так как единственным кодовым словом, эквивалентным У, является У,
то Y=Z=Rh-xY. Следовательно, Y должен иметь период 6 — 1 < ^ что приводит к противоречию. Подобно этому, легко показать, что Z не может быть кодовым словом, содержащим b или более разрядов набора X (что имеет место в том случае, если 6^6).
ХАРАКТЕРИСТИЧЕСКИЙ МНОГОЧЛЕН
Для того чтобы подобрать параметры аь а2, ..., 6 в соотношении (1) для получения хорошего кодирования, нужно знать, каким образом эти параметры определяют So и список классов эквивалентности (как в табл. 2) или по. крайней мере распределение весов w^X). Чтобы исследовать эти свойства соотношения (1), определим следующим образом характеристический многочлен С(/) рекуррентного соотношения (1):
С(/) = 1+^‘+/“2+ +А
Пример из табл. 2 имеет характеристический многочлен 1+^3 + ^6. Этот многочлен оказался неприводимым (т. е. он не может быть разложен в произведение многочленов меньших степеней над полем коэффициентов 0, 1). В том случае, когда многочлен С(/) неприводим, все ненулевые решения соотношения (1) имеют один и тот же наименьший период. Для многочлена 1+/3-Н6 этот период равен девяти. Читатель может убедиться, что никакое из семи ненулевых решений периода девять, приведенных в табл. 2, не имеет меньшего периода. Приведенные решения содержат 7 • 9+1 =26 различных блоков из шести последовательных разрядов; таким образом, табл. 2 содержит все решения.
В общем случае для неприводимого многочлена С(/) степени b и наименьшего периода р каждый из 2Ь — 1 ненулевых двоичных наборов длины b должен один раз появиться в качестве блока из b последовательных разрядов в некотором ненулевом решении соотношения (1). Так как С(/) неприводим, то каждое ненулевое решение имеет период р и каждый класс эквивалентности ненулевых решений содержит р различных блоков из b разрядов. Имеется в точности (2Ь— 1)/р классов эквивалентности ненулевых решений, которые нужно записать в виде таблицы, аналогичной табл. 2. Таким образом, периодр и число классов ненулевых решений оба делят 2Ь—1. В частном случае р может быть равно 2Ь — 1 (как это, очевидно, будет при 2Ь—1 простом), и тогда существует только одно ненулевое решение. Многочлен с периодом 2Ь — 1 называется примитивным.
Питерсон [5] приводит список неприводимых многочленов до 16-й степени включительно и дает достаточную информацию, благодаря которой легко получить периоды этих многочленов. Голомб, Велч и Хейлз [3] дают подобную информацию относительно трехчленов (многочленов вида 1+/° + /ь) до 36-й степени. Эти таблицы очень удобны для наших приложений. Например, чтобы получить кодирования с заданным значением N, нужно искать многочлен с периодом.p = N и со степенью, достаточно большой для получения соответствующего набора классов решений, из которых можно было бы выбрать Х^ ... ..., Хк. К сожалению, нет простого способа предсказания величины So из этих таблиц. Однако этот подход дает некоторые кодирования с малыми значениями N и К, которые можно комбинировать с целью получения кодирований большего размера.
НАСЛОЕНИЕ
Если С' является циклическим кодом, состоящим из двоичных наборов длины р, то циклический код- С, состоящий из наборов длины N, где N=Mp, может быть без труда построен при помощи наслоения кодовых слов из С' по М штук. Код С состоит из всех наборов (хь ..., х^) длины N, таких, что каждый набор длины р
•£ц ^М-И» X2M+h •••)» (^2» XM-V2i Х2М+2’ • • • )> •••
..., (х^, х2М1 хзм, ...)
принадлежит коду С'. Минимальное расстояние Хэмминга между различными кодовыми словами в С равно минимальному расстоянию в С'.
Если кодовые слова из С' порождаются регистром сдвига с многочленом С'(^), то слова из С являются последовательностями, порождаемыми регистром сдвига с многочленом С^^С'^у
Теорема 2. Если C(t) = C'(tM) для некоторого многочлена С' степени Ь[М, то для каждого r=0, 1, ..., М— 1 подпоследовательность
. . . Хп ХМ^Т1 Х2МЛ-Г удовлетворяет рекуррентному соотношению с характеристическим многочленом C'(t).
Доказательство. Применяя алгоритм Евклида, напишем п = тМ+г, где остаток г есть одно из чисел 0, 1, ..., М — 1.
Тогда (1) перейдет в
Уm-vb/M У У m+aJM ”^ У m-VQ-ilM “f“ • • (2) где ym=xmM-VT. Характеристический многочлен этого рекуррентного соотношения имеет вид
^^я^^я^ -НЬ/М = С'(Д
В случае 1+/3 + /6 многочлен С'^ равен 1+/+72. Рекуррентное соотношение ДЛЯ С'^ есть Ут+2 = Утп+1 + Ут, которое имеет только нулевое решение и один класс ненулевых решений
Г<п = ... 1101101...
(многочлен С'^ примитивен, потому что он неприводим и 22 — 1 =3 — простое число). Таким образом, как читатель может убедиться, каждое решение в табл. 2 состоит из трех наслоенных последовательностей периода 3. Каждая из этих трех последовательностей эквивалентна либо №, либо нулевой последовательности. Одно из ненулевых решений соотношения (1) содержит У^) только один раз. Кроме того, теорема 1 показывает, что 50 есть число единиц в одном периоде У^, т. е. S0 = 2.
В общем случае многочлен С'^ может иметь много различных классов решений УО>, У<2\ ... . Только решения Y^\ имеющие период, который делит N/M (включая сам период N/M), комбинируются для составления решений X периода N для C^ty Все эти решения X представляют собой комбинации М решений Y^ с периодом, являющимся делителем N[M, наслоенных всеми возможными способами. В частности, некоторые решения X содержат только одно ненулевое решение YW. Таким образом, So есть наименьшее число единиц, которые появляются среди NJM последовательных разрядов ненулевого решения Y^ с периодом, делящим М[М.
МАЛЫЕ КОДИРОВАНИЯ
Наслоение переводит малые кодирования в большие. При этом остаются две проблемы. Одна из них состоит в нахождении классов решений и распределения весов w^X) для многочленов С'(/) малых степеней. Вторая проблема, которую мы рассмотрим в следующем разделе, состоит в вычислении по заданному весу классов наслоенных решений.
Для многочленов С'^ достаточно малой степени Ь'=Ь1М возможно вычисление всех классов решений соотношения (2) вручную. Каждый раз, когда найдено какое-либо решение.
начальными значениями, используемыми для следующего решения соотношения (2), могут быть любые Ь' разрядов, которые еще не появлялись последовательно ни в одном из найденных решений.
Примитивные многочлены С'^ особенно просты. Для них существует только один класс ненулевых решений; он имеет наименьший период р = 2ь'— 1. Все р возможных блоков из Ь' разрядов, не равных одновременно нулю, появляются в качестве последовательных разрядов в этом решении. Эти р блоков содержат вместе
к единиц.
Так как каждая единица появляется в р блоках, то единственное ненулевое решение содержит (р + 1)/2 единиц в каждом периоде из р разрядов. Если наслаиваются М решений для получения кодирования с N=Mp, то разделение S оказывается равным или более (р + 1)/2.
Таблица 3
Степень
Неприводимый многочлен
Период р
Начальные значения (восьмеричные)
Число единиц в периоде
4
1 + / + /2 + /3 + /4
5
12, 18
2
17
4
6
9
см. табл. 1
l+^ + ^ + ^ + Z6
21
01
8
52, 77
12
8
l + ^ + ^ + ^ + ^ + ^ + Z8
17
001, 252, 020, 206
6
356, 276, 155, 203, 212
8
357, 172, 216, 162
10
377, 076
12
9
1+/ + /9
73
001
28
402, 404, 410
36
406, 361, 362
40
10
1 + Н /5 + /9 + /10
33
0572, 0666, 1205, 1001, ОНО
12
0264, 0402, 0512, 0060, 1265
14
1463, 1111, 0314, 1315, 1572
16
0716, 1403, 1375, 1607, 0606
18
1513, 1717, 1061, 0170, 0374
18
1777, 0776, 0462, 1667, 0204
20
1171
22
В табл. 3 представлены классы ненулевых решений для некоторых неприводимых многочленов малых степеней. Для экономии места в этой таблице не даны полные периоды каждого класса решений. Однако в ней дан блок разрядов, используемый в качестве начальных значений для вычисления решений из (2). Каждый блок задан в восьмеричной записи. Например, восьмеричное число 12 изображает одно из начальных условий для многочлена степени 4. Чтобы получить хь ..., х4, переведем восьмеричную запись 12 ( = 8 + 2) в двоичную 001010 и из последних четырех разрядов получаем %1 = х3=1, х2=^4 = 0. Два или более восьмеричных чисел расположены в таблице на одной и той же линии, если они изображают различные классы решений, имеющие одинаковый вес.
Если многочлен С'^ степени Ь' приводится в табл. 3, то двойственный многочлен tb'C' (1//) не приводится. Решения двойственного многочлена представляют собой обращенные решения многочлена C'^tY В табл. 3 также опущены примитивные многочлены, так как они всегда имеют период р = 2ь'— 1 и содержат (р + 1)/2 единиц. За исключением этих случаев, табл. 3 является полной для неприводимых многочленов степени <?7. Некоторые изолированные классы степеней 8, 9 и 10 также представлены в этой таблице.
ПЕРЕЧИСЛЕНИЕ КЛАССОВ
Предположим теперь, что известны все классы слов для циклического кода С'. Пусть слова из С' наслаиваются по М штук для получения циклического кода С. Построить все слова из С и рассортировать их по классам — это трудоемкая работа. Однако и без построения С можно найти число J (w) классов слов веса w и исходя из этого предсказать, насколько С будет хорошим в качестве источника потоков импульсов.
■ Чтобы не усложнять формулы, предположим, что С' содержит нулевое слово (0, ..., 0) и что все остальные слова из С' имеют одинаковый наименьший период р. Например, С' может порождаться линейным рекуррентным соотношением с неприводимым многочленом C'^tY Все слова из С имеют период Мр (возможно, что этот период не наименьший). Пусть Q есть число различных классов ненулевых слов из С'. Пусть
Г^ = (0, 0, ..., 0),
— й«у.
г‘®=(</«. 9«у»)
представляют собой наборы длины р, состоящие из последовательных разрядов слов кода С', принадлежащих различным классам. Для каждого значения г=0, ..., М—1 ровно р разрядов
Х^п =Цхп хм+п .^+r)(3)
слова X, принадлежащего С, должны быть циклической перестановкой одного из Y^.
Рассмотрим лишь те слова X, в которых для /=0, 1, ... Q ровно kt из Х^ являются циклическими перестановками Y^L Обозначим число классов таких слов через Цк0) к^ . . ., kQy J(w) есть сумма Цк0, klt ..., Aq), взятая по тем разбиениям
^o+^i + ••• 4гкд = М, • для которых
^к1чо(¥^) = w.
Так как каждое Y^\ где i > 0, обладает р различными циклическими перестановками, то существует
слов, распадающихся на Цк^ ..., kQ) классов.
Из того, что существует только один класс, содержащий нулевое слово, следует, что /(Л1, 0, ..., 0) = 1. В следующих разделах мы будем рассматривать ненулевые слова и поэтому предположим, что к0 < М.
Если X есть слово с наименьшим периодом q, то класс, содержащий X, состоит просто из q слов X, RX, ..., RtHX. Основная трудность в вычислении классов состоит в том, что слова не обязаны иметь одинаковый наименьший период. Поэтому классы могут иметь различные размеры.
Простейший случай возникает, когда все ненулевые слова из С имеют один и тот же наименьший период (например, в случае регистра сдвига, где С(/)=С'(/М) — неприводимый многочлен). Этот общий период должен быть равен Мр (например, набор У1, наслоенный с М — 1 экземплярами Y^°\ имеет наименьший период Мр). Все классы содержат Мр слов; Цк0, ... ,.., кд) есть число слов (4), деленное на Мр. В общем случае имеет место следующий результат.
Теорема 3.
7(^0, hq)— Мр ^ф(д) ^цх^^х ... (А^Д) I '^
где сумма берется по всем числам А, взаимно простым с р и являющихся общими делителями чисел Ао, к^ ...» kQ и М.
Член ф(А) в теореме 3 является функцией Эйлера. Прежде чем доказывать равенство (5), приведем для иллюстрации следующий пример.
Условия, накладываемые на А, настолько строгие, что сумма (5) обычно содержит только небольшое число членов. Суммирование чисел Цк0, ki, ..., kQ^ по разбиениям числа М с целью получения общего числа J^w) классов веса w не представляет труда, если М мало.
Например, рассмотрим многочлен
С (/) = /60 + Z54 +t® + /6 + 1 = Cr (/6),
где С'(t) = /10 + /9 + /5+7 +1. В соответствии с табл. 3 многочлен С(/) будет пригоден для кодов с периодом Л1р = бХЗЗ=198 и с разделением 12. Чтобы найти число /(28) кодов с весом 28, отметим, что все такие коды получаются путем наслоения двух ненулевых решений YW, Y^ уравнения С'^ и четырех нулевых решений Y^\ При этом либо У^ и УМ имеют веса 12 и 16, либо Y^ и Y^ оба имеют вес 14.
В первом случае fe0=4, кг = \, kh=\ и остальные к равны нулю. Для этих значений к0) ..., kQ в соотношении (5) имеется только один член А = 1 и
^q) = 198 41111! — 1651
Так как и Y^\ и YW может быть одним из пяти решений с весом 12 и 16, то имеется 25X165 = 4125 классов решений этого типа.
Во втором случае, когда оба Y^) и YW имеют вес 14, Y^ и YW могут быть выбраны либо равными, либо различными. Если они различны, то опять мы имеем 165 неэквивалентных способов наслоения Y^\ YW и четырех экземпляров YW. Так как имеется 5 различных решений веса 14, то существует I 2 ) = 10 способов выбора различных Y^ и У<4 Эти 10 способов порождают в целом 1650 классов решений. Наконец, если Y^ и YW являются одним и тем же решением веса 14, тогда &o=4, ki = 2, а все остальные к равны нулю. В этом случае А в соотношении (5) может быть равно 1 или 2 и
нь— 1 J 6 1 332 ! 31331 loo
J* е — 198 1 412!2!1! J
Пять возможных способов выбора Y^ и YW, где Y^ и yw представляют собой одно и то же решение веса 14, порождают всего 5X83 = 415 классов решений. Общее число классов
решений веса 28 при всех разбиениях fe0, &ь • • •, kq, принимаемых во внимание, равно.
7(28) = 4125+ 1650 + 415 = 6190.
В столбцах табл. 4 представлены результаты вычислений значений функции J (w) для других многочленов C(t) = С'(tM). В каждом случае многочлен C'^t) либо примитивен, либо является многочленом из табл. 3, имеющим заданную степень и период р.
Доказательство теоремы 3 использует теорему Пойа [7] (см. также [8]). В общем случае теорема Пойа позволяет находить число классов эквивалентности объектов относительно некоторой конечной группы G симметрий. В этом случае объектами являются слова из С, a G представляет собой циклическую группу {1, R, R2, ..., 7?^-1}. Одна из форм теоремы Пойа утверждает, что число классов эквивалентности равно
g
g-^Hs),(6)
5 = 1
где g есть порядок группы G, a /(s) есть число объектов, инвариантных относительно s-ro элемента группы G. В нашем случае g = N=Mp, а s-й элемент Rs оставляет инвариантными те слова, которые имеют s в качестве периода (не обязательно наименьшего). Таким образом, остается задача нахождения числа /(s) слов из С, имеющих период s.
Каждое слово X с периодом s имеет также период Мр и, следовательно, период d=(s, Мр), т. е. наибольший общий делитель s и Мр. При заданном значении делителя d число значений s, для которых d=(s, Мр), выражается функцией Эйлера q(Mpld). Таким образом, (6) приобретает вид
...,kQ) = ^ 2 Ф<MP!dW\ (7)
d | Мр
где сумма берется только по делителям d числа Мр.
Для слов X с периодом d имеет место соотношение
X = RdX--= ... = RMp-dX.
В частности, х№ = х^ = ... =X<Mp'd\(8)
В равенствах (8) элемент Х^ представляет собой набор длины р, как ив (3). Однако заметим, что верхние индексы в (8) не должны быть меньше, чем М. Если hd=mM-Vr, где 0^г< < М, то Х^ в соотношении (8) является Х^ из соотношения (3), сдвинутым циклически на m мест. Таким образом, если
Таблица 4
Распределение по весу классов последовательностей, порождаемыхрегистром сдвига с многочленом С (О = С' (fM)
Степень С' (t)
3
4
4
4
4
10
10
9
6
6
Период р
7
15
15
15
15
33
33
73
63
63
Разделение 50
4
8
8
8
8
12
12
28
32
32
N = Мр
49
45
75
90
105
99
231
365
189
441
w = 4
1
8
21
1
1
1
1
12
245
0
0
0
0
5
5
14
0
0
0
0
0
5
5
16
1715
15
30
38
45
5
5
18
0
0
0
0
0
10
10
20
7203
0
0
0
0
5
5
22
0
0
0
0
0
1
1
24
16807
75
450
750
1125
825
2475
26
0
0
0
0
1650
4950
28
16807
0
0
0
2475
7425
1
30
0
0
0
4950
14850
0
32
3375
8445
16875
0
1
1
36
0
0
0
3
0
0
40
10125
50625
151875
•
•
3
0
0
56
146
0
0
64
876
63
189
68
•
•
876
0
0
72
2190
0
0
76
2628
0
0
80
2190
0
0
84
10658
0
0
92
95922
0
0
96
95922
1323
19845
один из ¥^ выбран в качестве Х<°\ то равенства (8) автоматически определяют некоторые другие Х^ в соотношении (3).
Ненулевое слово X может иметь период d только в том случае, если Mp/d чисел
О, d. 2d. Mp — d.(9)
которые в соотношении (8) являются верхними индексами, различны по mod М. Чтобы доказать это, предположим противное. Допустим, что два числа из (9) равны по mod М. Их разность (обозначим ее через kd, где к < Mpld) имеет вид СМ, где
С = kd/M < (Мp/d) d/M = р.
Тогда набор Х^ длины р из соотношения (8) представляет собой Х^\ циклически сдвинутое на С мест. Из соотношения (8) при этом следует, что X<°) имеет период С < р. Так как все ненулевые слова из С' имеют наименьший период р, то X<0> может быть только У<°>. Подобные рассуждения показывают, что каждый Х^ в соотношении (3) должен быть равен также У<°\ что приводит к противоречию.
Предположим теперь, что все числа (9) различны по mod М. Тогда каждый выбор Y^ в качестве одного из Х^ в соотношении (3) автоматически определяет Mpld элементов Х^ через равенства, аналогичные (8)
^ [r+Mp-d)
Эти Mpld наборов длины р являются циклическими перестановками различных X из (3). Таким образом, /(d) =0 только в том случае, если Mpld делит к0, к^, ..., kQ и, следовательно, делит также и М. В этом случае р должно делить d, т. е. d=pD. Так как d делит Мр, то D делит М. Поскольку Х^ выбираются в группах размера Mp[d=M]D, то имеется для выбора в точности D независимых №. В этих D выборах циклические перестановки У^ должны появиться kiD/M раз. Всего имеется
Шркм-^прл
= (^D/My ... (kQDIM)\ (d — PD> выборов.
Эта формула для /(d) вместе с (7) дает решение. Чтобы получить выражение (5), заменим переменную d, по которой производится суммирование, на k=Mpld=MID. Условие, что А делит к0, ..., kq и М, рассматривалось (в терминах d) в предыдущем абзаце. Остается наложить такие условия на А, чтобы числа (9) были различны по modAl. Числа (9) представляют собой
0, pD, 2pD, (A - \)pD, которые должны быть различны по mod M=Dk. Таким образом,
0, р, 2р, ..., (А— 1)р
должны быть различны по mod А. Они различны тогда и только тогда, когда Аир взаимно просты.
ЛИТЕРАТУРА
Gilbert Е. N., Synchronization of binary messages, IRE Trans. Information. Theory, IT-6 (1960), 470—477< (Русский перевод: Гилберт Э. Н„ Синхронизация двоичных сообщений, Кибернетический сборник, вып. 5, ИЛ, М., 1962.)
Golomb S. W., Gordon В., Welch L. R., Comma-free codes, Canadian J. Math., 10 (1958), 202—209. (Русский перевод: Голомб С. У., Гордон Б. и В е л ч Л. Р., Коды без запятой, Кибернетический сборник, вып. 5, ИЛ, М., 1962.)
Golomb S. W., Welch L. R., Hales A., On the factorization of trinomials over CF(2), research source, location, Jet Propulsion Lab. Memo, 1959, 20—189.
Hamsher D. H., System concepts for address communications systems, IRE WESCON Convent. Record, pt. 7, 1960, 102—106.
Peterson W., Wesley, Error-correcting codes, John Wiley and Sons, Inc., New York, 1961. (Русский перевод: Питерсон У., Коды, исправляющие ошибки, «Мир», М., 1964.)
Pierce J. R., Hopper A. L., Multiplex with random sampling, Proc. IRE, 40 (1952), 1079—1088.
Pdlya G., Kombinatorische Anzahlbestimmungen fur Gruppen, Graphen . und chemische Verbindungen, Acta Math., 68 (1937), 145—253.
R i о r d a n J., An introduction to combinatorial analysis, John Wiley and Sons, Inc., New York, 1958. (Русский перевод: Дж. Риордан, Введение в комбинаторный анализ, ИЛ., М., 1963.)
Т а у I о г J. Е., Asynchronous multiplexing, Trans. AI ЕЕ, 79 (Comm. and Electronics, pt. 1) (1960), 1057—1062.
White W. D., Theoretical aspects of asynchronous multiplexing, Proc. IRE, 38 (1950), 270—275.
Hamming R. W., Error detecting and error correcting codes, Bell Sys. Tech. J., 29 (1950), 147—150. (Русский перевод: Хэмминг P, В., Коды с обнаружением и исправлением ошибок, ИЛ, М., 1956.)
Задача о синхронизации цепистрелковх)
Мур
Задача, известная под названием задачи о синхронизации цепи стрелков, была придумана Джоном Майхиллом примерно в 1957 г., но, насколько мне известно, формулировка этой задачи еще не появлялась в печати. Она широко распространилась в устной форме и привлекла достаточный интерес для того, чтобы ее напечатать. Эта задача возникла вначале в связи с задачей о том, как заставить все части саморазмножающейся машины включаться одновременно. Впервые задача была решена Джоном Мак-Карти и Марвином Минским, и теперь, когда о существовании решения известно, даже лица без всякой подготовки в области программирования или логического конструирования обычно в состоянии найти решение за время от двух до четырех часов. Необыкновенное изящество задачи состоит в тЪм, что она вполне аналогична задачам логического проектирования, конструирования систем или программирования, но не зависит от свойств конкретного набора логических элементов или набора команд конкретной вычислительной машины. Я настоятельно прошу знающих решение этой задачи избегать разглашения его тем людям, которые сами ищут решение, чтобы не испортить удовольствия от решения этой интригующей проблемы.
Рассмотрим конечное (но сколь угодно длинное) одномерное расположение конечных автоматов, которые все одинаковы, за исключением крайних. Автоматы называются солдатами, а один из крайних — генералом. Автоматы синхронны, и состояние каждого в момент времени /+1 зависит от состояния его самого и двух его соседей в момент I. Задача состоит в том, чтобы построить солдат (т. е. указать их состояния и переходы) таким образом, чтобы генерал мог заставить солдат перейти в определенное заключительное состояние (произвести выстрел), всех точно в один и тот же момент времени. Предполагается, что в начальный момент (т. е. при /=0) все солдаты находятся в одном состоянии — состоянии покоя. Когда генерал переходит в
Moore Е. F., The firing squad synchronization problem, «Sequential machines» reading, Mass., Palo Alto, London, Addison Wesley Publ. Co., Inc., 1964, pp. 213, 214.
некоторое отмеченное состояние (команда «по готовности — стрелять»), он после этого не проявляет никакой инициативы, и остальное предоставляется солдатам. Сигнал может распространяться по цепи не быстрее чем на одного солдата за единицу времени, и задача солдат — достичь согласованности. Сложность задачи заключается в том, что это должны уметь делать солдаты одного и того же вида с фиксированным числом К состояний независимо от длины п цепи. В частности, такой солдат с К состояниями должен правильно функционировать, даже когда п намного больше К. Грубо говоря, ни одному солдату не разрешается считать до п.
■ Двое из солдат — генерал и солдат, наиболее удаленный от генерала, — могут слегка отличаться от остальных солдат, будучи способны действовать, не имея солдат с обеих сторон от себя, но их структура тоже должна быть независима от п.
Один из удобных способов описания решения задачи состоит в использовании листа клетчатой бумаги; горизонтальная координата задает пространственное положение, вертикальная — время. В клетке (f, /) помещается символ, указывающий состояние t-го солдата в момент /. Визуальное изучение картины распространения этих символов может показать, какого рода сигнализация должна иметь место между солдатами.
Легко показать, что при всяком решении задачи о синхронизации цепи стрелков время от команды генерала до выстрела должно быть равным по крайней мере 2п — 2, где п — число солдат. Большинство людей решают эту задачу способом, требующим от Sn до Вп единиц времени, хотя изредка попадаются и другие решения. Некоторые из этих других решений требуют, например, 5nJ2 или же порядка п2 единиц времени. До недавнего времени было неизвестно, каково минимальное возможное время решения. Это было выяснено в Массачусетском технологическом институте профессором Э. Гото [1] из Токийского университета. В решении, полученном Гото, использовалась весьма хитроумная конструкция, где каждый солдат имел много тысяч состояний, и решение требовало ровно 2п — 2 единиц времени 1). Ввиду трудности получения этого решения гораздо интереснее для начинающего попытаться получить решение, требующее от Зп до Вп единиц времени, что, как замечено выше, сравнительно просто сделать.
ЛИТЕРАТУРА
[I] Goto Е., A minimum time solution of the firing squad problem, dittoed course notes for applied mathematics 298, Harvard Univ., 1962, 52—59.
В. И. Левенштейн нашел решение задачи о синхронизации за время 2и—2, в котором каждый солдат имеет 9 состояний (см. журнал «Проблемы передачи информации», № 4, 1965). — Прим, ред^
Оптимальное расписание для двух- итрехступенчатых процессов с учетомвремени наладки1)
С. Джонсон
СЛУЧАЙ ДВУХСТУПЕНЧАТОГО ПРОЦЕССА
Рассматривается типичный многоступенчатый процесс, описанный Беллманом следующим образом.
Даны п предметов, которые должны пройти сначала через одну производственную стадию или машину, а потом через другую. На каждой стадии имеется только одна машина. В каждый момент времени на каждой машине может обрабатываться не более одного предмета.
Рассмотрим 2п констант А^ В^ А^ В^ ..., Аи, Вп — неотрицательных, но в остальном совершенно произвольных чисел. Пусть А^ Вг—время установки и обработки i-го предмета на первой и второй машинах соответственно. Будем искать оптимальный порядок обработки предметов, а именно порядок, обеспечивающий минимум общего затраченного времени.
Дается простое разрешающее правило, применение которого ведет к оптимальному упорядочению. Это правило позволяет, например, упорядочить оптимальным образом 20 предметов за несколько минут путем непосредственного перебора величин Аг, В{.
Во второй части обсуждается (и решается для некоторого частного случая) аналогичная задача для трехступенчатого процесса.
Лемма 1. Порядок прохождения предметов через обе машины может быть сделан одинаковым без дополнительных затрат времени.
Доказательство. Разместим Аг и Вг произвольным образом на шкалах времен для соответствующих машин, соблюдая единственное условие: начало Вг должно быть правее конца Av Если порядок прохождения предметов через первую ма
!) Johnson S. М., Optimal Two and Three-Stage Production Schedules with Set-up Times Included, Naval Research Legistics Quaterly, 1 (1954).
шину отличен от порядка на второй машине, элементы, следующие не по порядку, будут расположены приблизительно следую* щим образом:
AtAtAj
At
At
Bj Bk Bi
Тогда без потери времени мы можем сделать порядок на первой машине таким же, как на второй, выгодным образом переставляя те предметы, которые следуют не по порядку (начиная слева). Симметричным образом можно переставлять предметы на второй машине до совпадения порядков.
Далее, так как порядок теперь один и тот же для обеих машин, можно начинать обработку каждого предмета при ближайшей возможности с целью минимизации общего времени обработки. Таким образом, на первой машине время простоя равно 0.
Обозначения. Положим Х^— время простоя второй машины непосредственно перед началом обработки на ней i-ro предмета. Если, например, мы установим порядок $={1, 2, ... ..., п}, то шкала времен для обеих машин будет выглядеть следующим образом:
A,
Aa
Аз
A4
X. . .
B)V
— kAa .
5i,x«
в»
имеем
Хх = Аь
Х2 = max {Д1 + А2— Вх— Хх, 0),
Хх -f- Х2 ==— max {Д^ -I- А2— Вь Д1}>{1221
2 At — S Bt™ 2 Xb 0 , 1=1i = l1 = 1 J
3Г 322ч
^Xt = max 2Л—2^z. 2^z =
1 = 1U = 1i = li = lJ
{322
2 At — 2 Bb 2 At — Bb A, z=iz=iz=i
Вообще п ^Х^ max Ки, t = 11 < ы < л
где иы-1
ки = 2Д—S^z-Z = 1Z = 1
Пусть F(S) = max Ktt. Задача состоит в нахождении 1 < К < Л
такой последовательности S*, что для всех So
^(S*)<F(S0).
Решение задачи. Пусть 5' — последовательность, получаемая из S перестановкой у- и (/+ 1)-го предметов. Тогда
F(S') = max К',1<и < пгдеиU-1
к;=2/;-2/;;
Л,' = ЛР B'i — Bl для /¥=/, у+1 и
Лу=Лу+1, B. = Bj+v Aj+x=Ap В)+Х—Вр
Тогда Ки = К'и для и + у, /4-1. Следовательно, F(5) = F(S'), если
max ^Kr К^ = max \Кр ^y+1}.
Теорема 1. Оптимальная последовательность строится по следующему правилу: j-u предмет предшествует (у + \)-му, если
max^Kp Kj+^ < max ^К', К'^ ...(1)
Если имеет место равенство, то любой порядок оптимальный, и требуется выполнение некоторых дополнительных условий (см. случай 4 в лемме 2).
У+1/-1
Вычитая 2 Л—5 Bt из каждого члена неравенства (1), Z = 1Z = 1
получаем
тах(—Вр —Л;+1} < max {—5у+1, —Лу} ... или
min (Лу, Ву41} < min {Л/+1, Ву) ...(2)
Это упорядочение транзитивно (доказательство ниже) и ведет к построению последовательности 5*, единственной с точностью до несущественных перестановок.
Тогда F<S*><FXS^ для последовательности 50, так как S* может быть получена из 50 путем последовательных перестановок соседних элементов соответственно с (2), причем каждая перестановка не ведет к увеличению F.
Лемма 2. Соотношение 2 транзитивно.
Пусть
min {Л1, В2} -С min (A, Bj},min (Л2, В3) < min {Л3, В^.
Тогда min (Л^ В3)<:т1п{Л3, BJ, за исключением возможного случая, когда перестановка второго предмета с первым или третьим несущественна.
Доказательство.
Случай 1:
.Л] В2, Л2, Л2 By Л3, By
Тогда
Л1<:Л2<СЛ3; Л!^#!, так что Л!<^т1п{Л3, BJ.
Случай 2:
В2 ^ -^1’ ^2’ ^1’ В3 ^ -^2’ А> ^2'
Тогда
В3 <. В2 <С By Ba<_Ay так что В3 <: min {Л3, BJ.
Случай 3:е
Лх -^ В2, Л2, By В3 <^ Л2, Л3, By Тогда
Л^В^ В3<А3, так что min (Лц В3}<^т1п{Л3, В^.
Случай 4:
В2 ^ -^1» Л3, By Л2 ^ В3, Л3, В2.
Тогда Л2 = В2 и перестановка второго предмета не влияет на F. В этом случае первый предмет может идти до или после третьего предмета, но это не противоречит транзитивности, если мы упорядочим сначала первый и третий предметы, а затем поместим произвольным образом второй предмет.
Используя (2), получаем чрезвычайно простой практический способ упорядочивания предметов за п шагов.
6 Зак. 1622
Рабочее правило.
Поместить константы А^ Bi в два столбца:
iAt
Bi
IА
2Л2
Bt в2
иАп
Вп
Выбрать среди всех констант минимальную.
Если эта константа есть время обработки некоторого предмета на первой машине (т. е. Дг), поместить этот предмет первым.
Если эта константа есть время обработки некоторого предмета на второй машине (т. е. Вг), поместить этот предмет последним.
Вычеркнуть соответствующую строку из таблицы.
Повторить операции 1—5 с оставшимися 2п — 2 константами и т. д. Таким образом, мы строим последовательность с обоих концов к середине.
В случае если применение правила 2 даст несколько предметов, для определенности расставить эти предметы по порядку номеров. В случае если минимум приходится и на А^ и на В^ действовать по правилу 3.
Для иллюстрации этого метода приведем следующий пример:
i 1
\ At
Bl
1
4
5
2
4
1
3
30
4
4
6
30
5
2
3
Применение рабочего правила дает оптимальную последовательность (5, 1, 4, 3, 2). Общее время простоя для этой последовательности равно 4, общее время обработки — 47. При обратном порядке общее время будет равно 78 — наихудшее из возможных значений.
СЛУЧАЙ ТРЕХСТУПЕНЧАТОГО ПРОЦЕССА
Лемма 3. Оптимальное упорядочение достигается при одинаковом порядке на всех трех машинах.
По лемме 1, порядок на первой и третьей машинах может быть сделан одинаковым с порядком на второй, а именно порядок на первой машине можно сделать таким же, как и на второй, а на последней — таким же, как и на предпоследней. Тем самым лемма доказана.
Для четырех и большего числа машин оптимальное упорядочение может потребовать изменения порядка обработки. Рассмотрим два предмета, проходящих через четыре машины, со следующими временами обработки:
i
At
Bi
c, I
1 °i
1
2
3
3
3
1
3
1
3
3
Легко убедиться, что оптимальное упорядочение требует перемены порядка при переходе со второй машины на третью. Вероятно, решение для общего случая весьма сложно.
Обозначения. Определим А^ В^ Xi так же, как в случае двухступенчатого процесса. Пусть Ci — время заправки и обработки 1-го предмета на третьей машине, и пусть Yt — простой третьей машины непосредственно перед началом обработки на ней /-го предмета.
Рассмотрим шкалу времен для всех машин:
Ki — хг + Вх — л, + Bv
{
пп-1пп-1
S — S Ci + Xi — 2 ь о
1 = 11 = 1i = li = !
так что
п(пп—1пп—1
2 ^z= тах ।2 ^ 2 cz + 2 xb 2 ^i
{nn-Yn{nn-YnBt 2^+2 Xb «=1/=1i = lBt 2^+2 Xb «=1/=1i = l61+^1).61+^1).Z = 1l/=lZ = 1Z = 1Z = 1
{nn-Yn
{nn-Yn
Bt 2^+2 Xb «=1/=1i = l
Bt 2^+2 Xb «=1/=1i = l
61+^1).
61+^1).
Пусть
VУ-1
H^^Bt—^Ct (® = 1, 2,n);
Z = 1i = Y
иu-Y
Ktl=^iAi—2 Bt (u = 1, 2, ..., n), как и раньше. z=ii=i
Тогда
п
2^ i= max |//„4-тахК„)= max уН^А-КД.
Z = 11 < ы < w < л1 < и < -и < п
Как и раньше, переставим у-й и (y+U’® предметы. Тогда изменятся только Н^ Кр Н;+1, Kj+V
Теперь сравним
шах {Н}+1-\-Ки, 1<м</+1; Н}-\-Ки, \<u<j\ тах{Я'+1 + /С;, 1<«</+1; Н'^К^ \<u<j\.
Заметим, что эти выражения включают уже не только члены с номерами у, у+1, так что решение будет зависеть от предшествующих элементов.
Частный случай: т!пЛг>тах^.
В этом случае max Ки = Ку, так что можно сравнивать меньшее число членов. Тогда правило утверждает, что у-й предмет предшествует (& + 1)-му, если
шах {//у+1+^+1, //y + /Cy] <шах {^+1+^+р H'j-V К'Д ...
(3)
В случае равенства упорядочение определяется дополнительными условиями.
Вычитая
/+1/-1, + 1У-1
2 А — 5 Bt+2 bl — 2 cL
1=1i=li = l1 = 1
из обеих частей равенства (3), получаем
max {— В,— Cj, — Вж — А,^<
< max {—Bj+1 Cj+V Bj Лу} или
ш1п(Лу + 5у, Cy+i + 5y+i) < min {Лу+1Ч-5у+1, Cy + 5y) ... . (4)
Лемма 4. Соотношение (4) транзитивно.
Доказательство аналогично доказательству леммы 2.
Проводя рассуждения аналогично случаю двух машин, можно получить оптимальный порядок обработки путем последовательных перестановок соседних предметов, исходя из любой последовательности S.
Таким образом, доказывается следующая теорема:
Теорема 2. Если min At ^ max 6^, 1 ^ i ^ п, то оптимальное упорядочение для трехступенчатого процесса дается следующим правилом: i-й предмет предшествует j-му, если ‘
min\А( ~Ь ^ь Су + By} < {min Ду + By, С1-У-ВД.
Если имеет место равенство, то любой порядок предметов i и } оптимален; требуется выполнение дополнительных условий.
Как и в случае двух машин, существует простое правило^ позволяющее очень быстро вырабатывать оптимальный порядок. Вместо Л г берется Аг-VBt, а вместо Bj берется Cj + Bj.
Отметим, что тот же результат получается в случае Сг ^ "> max Bj.
Другой специальный случай трехступенчатого процесса — когда правила двухступенчатого процесса, примененного к первым двум машинам, дает на второй машине порядок, совпадающий с результатом применения того же правила к последним двум машинам. Тогда этот порядок будет оптимальным и для всего трехступенчатого процесса.
Возможна следующая интерпретация трехступенчатого процесса: заметим, что'
max { Ku-V5 сД
есть максимальная сумма элементов, встреченных при проходе матрицы времени из левого верхнего угла в нижний правый.
двигаясь только вправо или вниз. Проблема состоит в отыскании порядка столбцов, минимизирующего этот переход.
Эта интерпретация полезна для трехступенчатого процесса, но для большего числа машин непригодна.
Как замечено выше, порядок не всегда одинаков на всех машинах. Однако практически удобно предполагать его одинаковым для сокращения числа рассматриваемых случаев.
ЛИТЕРАТУРА
Melvin Е. Salve son, On a Qualitative Method in Production Planning and Scheduling, Econometrica, 20, № 9 (1952), 571—574.
D a n t z i g G. B., Linear Model of Production, RAND Publication, P. 375A, 1953. .
Деревья, леса и переупорядочение
П. Ф. Уайндлих>)
В этой статье описывается некоторый метод переупорядочения данныг в вычислительной машине, при котором минимизируется используемый объем памяти. Выведены выражения для математического ожидания и дисперсщг необходимого числа сравнений.. Проведено сопоставление этого числа с числом сравнений, которое требуется для процесса сращивания.
ВВЕДЕНИЕ
Френд (Friend, 1956) рассматривает влияние времени доступа, когда на магнитной ленте хранятся сращиваемые данные, и указывает, что для уменьшения требующегося числа последующих прогонов необходим специальный первый прогон в- целях выработки длинных последовательностей. Наряду с этим он, как и Белл (Bell, 1958), исследует некоторые технические приемы для выполнения необходимого предварительного переупорядочения внутри вычислительной машины. Все методы, рассмотренные ими, включают в выражении необходимого числа сравнений множитель W2, где N — число элементов; исключение составляет метод внутреннего сращивания (merging), при котором выражение равно Mlog2 W]. Два недостатка метода внутреннего сращивания состоят в том, что, во-первых, при нем необходимо рабочее поле, достаточное для хранения по крайней мере W/2 элементов, вследствие чего уменьшается максимальная длина последовательностей, которые могут быть обработаны этим методом; во-вторых, при каждом проходе все данные перемещаются из одного места памяти машины в другое. Если код короткий, то эти возражения можно частично снять, применив прием независимых ключей. Метод переупорядочения с использованием дерева, описанный кратко Дугласом (Douglas, 1959) и приписываемый Бернерс-Ли (Berners-Lee), не обладает этими недостатками. Данные помещаются в памяти один раз и
W i n d 1 е у Р. F., Tress, Forests and Rearranging, The Computer L, 3^ № 2 (1960), 84-88.
не перемещаются до выборки в окончательном порядке. В памяти требуется место, достаточное лишь для сохранения трех адресов при каждом элементе. Число необходимых сравнений зависит от исходной последовательности. Мы рассмотрим здесь несколько вариаций этого метода и выведем выражения для математического ожидания и дисперсии числа сравнений в предположении, что возможные исходные последовательности равновероятны.
Деревья
Дерево можно определить как сеть точек, размещенных по уровням. Самый нижний уровень содержит только одну точку, называемую корневой точкой. Любая другая точка связана с одной и только одной точкой на соседнем нижнем уровне и не более чем с п точками на соседнем верхнем уровне. Для дихотомического дерева и = 2; мы в дальнейшем будем рассматривать только дихотомические деревья. Каждой связи точки с другой точкой на соседнем верхнем уровне соответствует направление.
Номер ячейки
Элемент
Левый адрес
Правый адрес
Обратный адрес
1
А
2
3
F—i
2
В
5
4
11
3
С
1Е | D
4
D
2В 1 С
5
Е
6
2д
6
F
5А
Рис. 1. Запоминание элементов в процессе формирования дерева.
Эти направления называются правыми и левыми. Каждой точке дерева соответствует элемент. Адреса тех элементов, которые связаны непосредственно с некоторым элементом, хранятся в памяти вместе с этим элементом. Эти адреса называются: левый адрес, правый адрес и обратный адрес. Левый адрес указывает место в памяти, где хранится элемент, соответствующий точке, расположенной левее на верхнем уровне. Обратный адрес указывает точку на соседнем нижнем уровне, с которой связан данный элемент. Все точки, связанные с некоторым элементом через его левый адрес, образуют левую ветвь этого элемента. На рис. 1 показано, как при формировании изображенного дерева элементы А — F вместе с их адресами связи размещаются в ячейках 1—6 вычислительной машины.
Левая ветвь корневой точки А содержит элементы В, D, Е, Fg
Рост дерева
Дерево растет в результате того, что элементы берутся в их первоначальной последовательности и размещаются один за другим на дереве. Сделано так, что дерево растет следующим образом: в окончательном порядке для каждого элемента X все- элементы из левой ветви X будут затребованы раньше X, а все точки с правой ветви X — позже. Например, на рис. 1 дерево представляет первоначальную последовательность А, В, С, D, Е, F и окончательный порядок F, Е, В, D, А, С. Предположим, что требуется добавить к этому дереву элемент G и что в окончательном порядке G встретится между В и D. Сначала G сравнивается с корневой точкой А. Элемент G идет раньше А в окончательном порядке, он должен быть расположен на левой
Номер ячейки
Элемент
Левый адрес
Правый адрес
Обратный адрес
1
А
2
3
2
В
5
4
1F—।G—।
3
С
111
4
D
7
2Е | D
5
Е
6
2В I С
6
F
51
7
G
4А
Рис. 2. Рост дерева.
ветви А. Левый адрес А точно определяет следующий элемент В, который необходимо сравнить с G. Это сравнение показывает, что G должен хранится на правой ветви В. Поэтому следующее сравнение делается с D, этот элемент точно определяется правым адресом В. Последнее сравнение показывает, что G принадлежит левой ветви D. У D еще нет левой ветви, таким образом ему приписывается левый адрес 7 — адрес, по которому G направляется в память, a G присваивается обратный адрес 4 — адрес D. Новое дерево показано на рис. 2.
Заметим, что элемент G не обязательно помещать в ячейку 7. Его можно поместить на любое свободное место при условии^ что левый адрес элемента D соответственно сформирован. Алгорифм размещения точки на дереве состоит в следующем:
Адрес корневой точки помещается в качестве адреса элемента, с которым будет производиться очередное сравнение. Переход к п. 3.
Левый (или правый) адрес берется в качестве адреса элемента, с которым производится очередное сравнение.
Элемент, для которого ищется место на дереве, сравнивается с элементом, определенным по п. 1 или 2.
Выясняется, где должен разместиться наш элемент — на левой или правой ветви того элемента, с которым он только что сравнивался.
Выделяется очередной левый (или правый) адрес и сравнивается с нулем. Если он не нуль, то переход к п. 2.
Новый элемент помещается на дерево с обратным адресом, относящимся к последнему элементу, с которым он сравнивался.
В найденный левый (или правый) адрес, который до сих пор был нулем, заносится адрес, по которому в п. 6 был помещен новый элемент.
Выборка данных из дерева
Данные должны выбираться из дерева таким образом, что для каждого элемента X все данные с левой ветви X выбираются раньше X, а все данные с правой ветви X выбираются после X. Предположим, что программа достигла элемента X, далее выполняется следующее:
Проверяется левый адрес X. Если у X нет левого адреса, то либо у X нет левой ветви, либо все точки на левой ветви уже были выбраны. В этом случае переходим к п. 2. Если у X есть левый адрес, то используем этот адрес в целях точного определения Xх — Элемента для очередного испытания. Снова выполняем п. 1.
Проверяем, выбирался ли ранее элемент X. Если да, то переходим к п. 4. Если нет, выбираем X и помечаем, что X выбран !).
Проверяем правый адрес X. Если этот адрес не пуст, то ^используем этот адрес для точного определения Xх — элемента .для очередного испытания, и повторяем процесс, начиная с п. 1. Если правый адрес пуст, то переходим к п. 4.
Проверяется обратный адрес X. Если обратный адрес пуст, то X — корневая точка, и процесс окончен. В противном случае обратный адрес указывает элемент для очередной проверки. Возврат к п. 1.
Процесс начинается с проверки корневой точки и движется ъверх и вниз по каждому соединению дерева. Поэтому всего де-
9 До окончания процесса правые и левые адреса, указывающие на уже выбранные элементы, интерпретируются как пустые (см. п. 1, 3). — Прим, агерев.
лается 2N проверок. Каждый раз, когда происходит подъем по дереву, продвигается адрес в главной памяти; кроме того, перед подъемом по правой ветви делается пометка, что элемент выбран. Эту пометку не обязательно делать, если нет правого адреса, а при подходящем уплотнении ее можно сделать в момент передвижения по правому адресу. Отсюда этот процесс требует всего 3(N— 1) обращений к памяти: два обращения на каждый- подъем вверх по дереву и одно для каждого спуска вниз.
Число сравнений, которое необходимо в течение роста дерева
Каждому уровню дерева припишем некоторое значение. Корневая точка имеет значение 1, точки на следующем уровне — 2 и т. д. Пусть N — число точек на дереве. Суммарное значение дерева, т. е. сумма значений всех точек -на этом дереве, зависит от формы дерева и определяется первоначальной последовательностью данных.
Обозначим форму дерева через S1), а суммарное значение дерева — через Р^М, S). Пусть P(Nt S) —вероятность того, что- дерево из N точек имеет форму S. Точка на r-м уровне дерева сравнивается с (г—1)-ми точками, на ветвях которых она помещена. Таким образом, общее число сравнений равно- R^N, S) — N.
Среднее значение дерева
Среднее значение Q(N) дерева из N точек определяется формулой Q (N) = 2^ (^, S)7?(^ S), где суммирование производится по всем возможным формам дерева. Левая ветвь корневой точки в свою очередь является деревом. Предположим, что это дерево имеет / точек и пусть его форма S'. Его значение должно быть равно R^t, S')+t (так как его корневая точка имеет значение 2). Правая ветвь корневой точки также является деревом. Оно имеет (Af — 1 — /) точек и форму, например, S". Его значение равно R(N — 1 — /, S") + (Af — 1 — /); тогда
R^N, S)=\ + R(t, S') + t + R(N-l-t, S") +
S') + R(N—l—t, S"WN..
Вероятность того, что имеется t точек на левой ветви корневой точки, равна вероятности того, что в окончательном порядке корневая точка является (/+1)-й точкой. Но в окончательном
!) О числовом способе представления формы дерева см., например, Т. Л. Гаврилова, О структурном анализе вьетнамского текста и одном способе записи его результатов, «Проблемы кибернетики», вып. 13, М., 1965„ стр. 201—220. — Прим. ред.
порядке корневая точка будет всюду с одинаковой вероятностью. Отсюда вероятность равна XJN.
.-.QW^P^N, SyR^N, S) = s
^^SSS^^’ S')-P(N-l-t, S")x / = 0 S' S"
X [/?«, S'H-R<N-\-t, S") + ^j)=/V + 4 2 QW- (1) t=o
Среднее отклонение значения дерева
Среднее отклонение V (N) дается формулой
V2(N) = U(N) — Q4N), где
U(N)=^P(N, ^-RW, S) = s
= 2 22^’ S'yP(N-\-t, S")X
X\R(t, S'^Rt.N-l-t, S"^N\4 =
= ^2 2 2P^’ S')-P(N-\-t, S")x /=0 S' S”
XIR2U. S')4-R2(N—l — <, 5") + Л^ +
-VSNRlt, S'^^NR^N — l — t, S") +
4-2R^, S')-R(N—l — t, S")] =
= ЗГ 2 2 lP1 ^2(^ S'WU(N-\-t) + /=0 S'
-V-№-V-2NR(<t, S') + 2^Q(^ — 1 — /) +
4-2R(t, S')-Q(N-\-t))\ =
= -^2 [^(0+t/(^-l-/) + ^2^-2^Q(/) +
-|-2^Q(^ — l —^)+2Q(/)- Q(^—1 — /)] =
=^ + 42^)+2ЛГ(5^+ /=о
+ Q(/)- Q^—1 —^)1 = 2^Q(^) —№ +
+42 [^ W+Q W • Q (AT— 1 — OL(2)
/ = 0
...v^n^^ 2l^W+Q(0-Q(^-i-^)]-[Q(^)-Arp.
/=o
Определение Q (A/')
В силу (1)i
Q^-N^ ^Q^y
r=0
Отсюда
Q(/V-l) = (A^-l) + 774r ^Q^. 't=o
. NQ(N) — (N—1) Q(N—\) = (2N—\) + 2Q(N— 1).
. Q(N> Q(N— 1) _ 22V—1 _ 31
^+l N ~ ^(^^-l) — ^+l N’
. QW Q (1) _ 3 y 21
• • ^+l2 — ^4-l "T" Ai f4-12 •
/=2
Отсюда
Q(7V) = 2(7V+1).^1-37V.
AT
Формальный ряд для ^y, полученный по формуле Эй
лера — Маклорена, имеет вид
105е-^ + т+2^- —^^7^7
(где у—константа Эйлера, a Bt — числа Бернулли).
у « 0,57721566 (приближенно).
.•.Q(A0 = 2(AT+l)X.
X ^OgeATH-у4“277 ЙМУ^-Ь 120ЛГ4 + • *(^)
Таблица 1
N
QW
V (N) |
N
QIN)
kw
N
QW
VW
10
34
4
40
231
22
150
1238
91
20
91
10
50
309
28
200
1763
123
30
158
16
100
748
59
250
2313
155
Оценка среднего и дисперсии
К вычислениям Q^N) и V(N) надо подойти с большой осторожностью, так как рекуррентные соотношения, полученные из формул (1) и (2), являются неустойчивыми. Значения, данные в табл. 1, были вычислены на машине посредством «двойного просчета». Точность значений Q(N) была проверена путем сравнения их со значениями, полученными по асимптотическому разложению (3). Оказалось, что дисперсия мала по сравнению со средним.
Время, необходимое для работы по этому методу
Рассмотрим сначала машину типа «Пегас» с главной памятью на магнитном барабане и малой быстродействующей оперативной памятью. Допустим, что элемент может целиком содержаться в оперативной памяти и что он может пересылаться на барабан и обратно посредством одной или более групповых пересылок. Можно допустить, что для второй и последующих групповых пересылок барабан находится в правильной позиции, что не влечет за собой времени ожидания. Каждое сравнение открывает определенный ключ, по которому левый или правый адрес пересылается в оперативную память. По мере того как очередной элемент размещается в главной памяти, ему придается обратный адрес, а адрес, который хранится вместе с предшествующим элементом, формируется так, чтобы привязать новый элемент к дереву. Всего для этого требуется 2^ пересылок. Так как в среднем имеется Q^N) —N сравнений, то при построении дерева необходимое общее число пересылок равно Q(W)+M Как было видно ранее, для выборки данных из дерева необходимо 3^ пересылок. Таким образом, в целом число пересылок, необходимое для полного процесса, приближенно равно Q(W)+4Л^^ (Л^+1) loge W+(1+у)^~ l’4(Af+1) log2A^+ + (1+у)М Процесс сращивания требует 27V[log2 Л/] пересылок.
На машине, главная память которой реализована на магнитных сердечниках, нельзя производить сравнение обоих методов просто по числу пересылок в память и обратно. Необходимо вы-
яснить, сколько внутренних циклов включают в себя обе программы, и оценить сравнительные длины этих циклов. Для сортировки при помощи дерева имеется два внутренних цикла. Первый используется в процессе роста дерева и насчитывает Q(^)—N тактов. Второй используется в процессе выборки и включает в себя 2 N тактов. Теперь предположим, что а — время проведения одного сравнения, 0 — время, необходимое для пересылки одного полного элемента из одной или группы машинных ячеек в другое место, X— время на административное указание, необходимое для привязки нового элемента к дереву, и V — среднее время для нахождения очередного по порядку элемента в процессе выборки. Если не учитывать время, необходимое для первоначального размещения всех данных в памяти и являющееся одним и тем же для всех методов, то общее время работы по методу дерева, таким образом, приближенно равно
а [Q (дг) _ дг] + NX + 2NX*.
Время работы по методу сращивания равно
-(a + 0)^[log2^].
Достаточно сравнить выражения
l,4a/V [log2 W] и (a + P)^ log2 N.
Отсюда при условии, что a < 2,50, метод дерева быстрее.
Поиск информации
Деревья можно использовать для облегчения поиска информации, хранящейся в главной памяти и отвечающей данному ключу. Если это сделать, то для опознания каждого элемента требуется в среднем Q(N)/N«In N сравнений.
Леса деревьев
Как уже было упомянуто, если элемент размещается на дереве, то это размещение может быть проведено где угодно, на любом участке памяти, еще не использовавшемся для хранения элемента дерева. Единственным параметром, необходимым как для начала процесса роста дерева, так и для начала процесса выборки данных из дерева, является адрес корневой точки. Все другие требующиеся адреса хранятся уже на дереве. Отсюда — возможность иметь в машине два дерева, растущих одновременно без взаимодействия друг с другом. Эти деревья имеют различные корневые точки. Пока деревья растут, очередное место в машине предназначается то первому, то второму дереву, как потребуется. Если на дереве необходимо разместить
элемент, то сначала проверяется, какому дереву этот элемент принадлежит. Затем выбирается соответствующая корневая точка, чтобы начать сравнение.
После проведения необходимых сравнений новый элемент помещается в машине на свободное место и привязывается посредством своего обратного адреса к соответствующему дереву. Может быть использовано не только два, но и любое число деревьев, при условии, что каждое дерево имеет в машине место для своей корневой точки. Для выборки данных используется тот же самый процесс. При нем происходит вход в каждое дерево, начиная от его корневой точки. Преимущество такого технического приема «мультидерева» или леса состоит в том, что значение двух деревьев меньше, чем значение дерева, равного по размеру двум деревьям, взятым вместе. Выбор соответствующего дерева для каждого элемента можно сделать путем разделения диапазона ключей на части и подбора дерева к каждой части. Заметим, что подбор эквивалентен одному прогону распределительной сортировки, причем в оценке размера массивов нет надобности.
Теоретически в лесу следует использовать столько деревьев, сколько возможно, но если какое-либо дерево пусто (т. е. на нем нет никаких элементов), то пространство, предназначенное для его корневой точки, пропадает. Практически оптимальное число зависит от распределения ключей по их возможному диапазону и от того, что об этом диапазоне известно. В пределе, когда каждый ключ определяет дерево, этот метод вырождается в метод типа «ящика для бумаг». Метод идеально подходит для данных, которые должны быть упорядочены в последовательность внутри многих групп, причем критерий для определения групп отличен от критерия, который используется для упорядочения данных внутри этих групп. Таковы фактически и были условия, для которых развивались эти технические приемы.
Были использованы данные о студентах Университета в Лидсе (см. Windley, Kay and Rowland-Jones; 1960); требовалось составить список студентов, упорядоченный по алфавиту для каждого курса. Сначала для каждого студента по его данным выяснялся курс, а затем были проведены сравнения по фамилиям студентов.
Деревья и сортировка
Деревья можно очень эффективно использовать для . сортировки. Под сортировкой понимается накопление элементов с одним и тем же ключом. Чтобы использовать метод типа «ящика для бумаг», необходимо иметь возможность выделения ячейки
в машине для каждого ключа из полного диапазона ключей. В сортировке при помощи дерева требуется место лишь для накопления элементов, фактически встреченных в течение сортировки, и для трехблочного адреса на каждый ключ, отличный от других ключей. Если пометить ключи, о которых известно, что они встречаются наиболее часто, и выделить отдельное дерево для каждого помеченного ключа, то возможно использовать скорость сортировки типа «ящика для бумаг» в применении к наиболее часто встречающимся ключам. При подсчитывании это может привести к значительному выигрышу в скорости, если некоторые подсчеты намного чаще других. В сортировке при помощи дерева элементы с одним и тем же ключом накапливаются по мере того, как они размещаются на дереве. Таким образом, не надо времени для запоминания одного и того же ключа дважды. В этом большое преимущество метода сортировки по сравнению с методом сращивания, при котором элементы накапливаются только постепенно.
Деревья в слегка измененной форме можно еще использовать и при выработке наилучших стратегий для других методов сортировки и переупорядочения. Соответствующие технические приемы рассмотрены в статье Берджа (Burge, 1958).
Заключение
Метод переупорядочения при помощи деревьев сначала был рассмотрен автором с целью получения наиболее длинных последовательностей внутри вычислительной машины. Было показано, что для случайно заданной начальной последовательности этот метод в среднем быстрее, чем переупорядочение посредством сращивания. Метод был успешно испытан на двух упомянутых выше программах, относящихся к регистрации студентов. Во-первых, он был использован для расположения данных во всевозможных порядках, как требовалось университетской канцелярии. Для этой программы потребовалось только 6% памяти под рабочее поле. Во-вторых, он был использован для подсчета числа студентов, посещающих различные курсы, причем эти данные не были упорядочены по курсам. Сортировка типа «ящика для бумаг» не могла быть использована по причине большого числа ключей для возможных курсов, так как только часть из них относится к фактическим курсам. Использование предлагаемого метода сортировки может иметь хорошее применение в области исследования рыночных цен, где требуется обременительный счет по многим разным заголовкам из большого количества данных. Если использовать лес из деревьев, то станет возможным проведение нескольких подсчетов за один прогон полной информации. Этот технический прием
полезен там, где кодирование основных данных таково, что сортировка типа «ящика для бум-аг» не может быть использована по причине большого диапазона возможных ключей.
ЛИТЕРАТУРА
Bell D. A., The Principles of Sorting, Comp. L, 1 (1958), 71.
Burge W. H., Sorting, Trees and Measures of Order, Inf. and Control, 1 (1958), 181.
D о и g 1 a s A. S., Techniques for the Recording of and Reference to Data in a Computer, Comp. J., 2 (1959), 1.
Friend E. H., Sorting on Electronic Computer Systems, J. Assoc. Comp. Mach., 3 (1956), 134.
W i n d 1 e у P. F., Kay L. F., R о w 1 a n d -Jones A., Data Processing in University Administration, Comp. I., 3 (1960), 15.
Вычислительные машиныи программирование
Архитектура системы IBM-360)
Дж. Амдаль, Дж. Блоу, Ф. Брукс
Архитектура) недавно объявленной IBM-360 имеет четыре основных новшества:
Метод организации памяти, допускающий и использующий очень большие емкости, иерархию скоростей, постоянную память для микропрограммного управления, гибкую защиту памяти и простое перемещение программ.
Системы ввода-вывода с новой степенью совмещенной работы, совместимость операций в каналах ввода-вывода, скорость передачи данных, достигающая 5 000 000 символов в секунду, совместное использование аппаратной и программной логики, новая дешевая компоновка оборудования большого количества каналов в одной стойке, новые возможности получения информации о состоянии схем и стандартное сопряжение между центральным процессором и устройствами ввода-вывода, обеспечиваемое каналами ввода-вывода.
Универсальная организация машины, предлагающая новые удобства для управления ее работой, мощные логические возможности и широкий набор форматов данных.
Прямая совместимость машинных языков для серии из шести моделей, имеющих коэффициент перекрытия по производительности 50. ,
В статье детально рассматриваются цели проекта и рациональность основных черт архитектуры. Подчеркиваются проблемы, связанные с необходимостью совместимости между центральными процессорами различных размеров и соперничающими требованиями задач — коммерческих, научных, логических и решаемых в реальном масштабе времени. Табличная сводка данных об архитектуре приведена в приложениях.
ВВЕДЕНИЕ
В статье рассматриваются основные идеи, положенные в основу разработки новой универсальной организации машин семейства IBM-360). Кроме рассмотрения архитектуры, мы остановимся на различных инженерных проблемах, возникших при попытках сделать систему совместимой на уровне программ для
больших и малых моделей. Совместимость должна была распространяться не только на модели различных размеров, но также на их различные применения — научные, коммерческие, решение задач в реальном масштабе времени и т. д.
В следующем разделе описываются основные принципы проектирования новой системы, а именно чтобы она служила основой для новой технологии и новых применений, чтобы она была универсальной, эффективной и прямо программно совместимой во всех моделях. Остальная часть статьи посвящена проблемам внешних характеристик системы, рассмотренным альтернативам и решениям, принятым для форматов данных, кодировки данных и команд, иерархии памяти и управления вводом-выводом.
ОСНОВНЫЕ ПРИНЦИПЫ ПРОЕКТА
Новая архитектура построена на основе проектов, которые постепенно развивались с 1950 г., но отличается от них. В процессе эволюции вычислительных машин, кроме основных технологических улучшений, выкристаллизовались следующие важные принципы и достижения:
. 1) приспособленность к обработке деловых данных;
растущая важность всех частей системы, особенно ввода-вывода;.
всеобщее использование составляющих программ, компиляторов и других метапрограмм;
усовершенствование записи на магнитные ленты, барабаны и диски;
увеличение в сотни раз памяти;
приспособленность к работе в реальном масштабе времени.
В течение этого периода большинство новых машин с точки зрения их логической структуры были улучшенными, увеличенными или более дешевыми (за счет достижений технологии) вариантами машин, разработанных в начале 50-х годов. Продукция IBM не атипична; развитие шло от IBM-701 к 7094, от 650 к 7074, от 702 к 7080, от 1401 к 7010.
Однако характеристики системы, описываемой здесь, дают новый подход к логической структуре и функциям, предназначенный для удовлетворения нужд следующего десятилетия, в согласованном ряде систем обработки информации.
Предпосылки
Исходя из того что проект должен учесть последние достижения в принципах построения машин и, следовательно, при не-
обходимости не быть совместимым с существующей продукцией, были рассмотрены следующие предпосылки:
Так как вычислительные машины развиваются в семейства, любая предложенная система должна быть способна к росту и пополнению семейства новыми машинами.
Соответствующее оборудование ввода-вывода делает системы особенно полезными для конкретных применений. Необходим общий метод для использования устройств ввода-вывода, отличающихся по скорости передачи данных и своим функциям.
На самом деле действительная ценность информационной системы определяется количеством задач, решаемых за месяц, а не числом бит, перерабатываемых за микросекунду. Этот критерий потребовал принятия специальных мер, которые увеличивали бы пропускную способность для данной внутренней скорости, сокращали бы время пребывания задачи в системе для данной пропускной способности и обеспечивали бы простоту использования всего комплекса машин и программных систем.
Только малую часть времени центральное вычислительное устройство (CPU, central processing unit) занимается переработкой информации собственно в области применения машины. Основную часть времени занимают действия, требуемые системой для ее собственного функционирования, т. е. компиляция, управление вводом-выводом, обращение к сложным информационным структурам и адресация внутри этих структур. Должна быть обеспечена эффективность этих действий, и они не должны отличаться в машинах, сконструированных для различных применений.
Канал ввода-вывода и управляющая программа ввода- вывода должны проектироваться согласованно друг с другом.
Машинные системы должны быть приспособлены к самоуправлению без вмешательства человека при решении задач в реальном масштабе времени, при мультипрограммировании и работе с разделением во времени. Чтобы иметь эту возможность, требуется: исчерпывающая система прерываний, защита памяти, защищенная программа-супервайзер, управляемое супервайзером переключение программ, управление с помощью супервайзера всем вводом-выводом (включая распределение устройств ввода-вывода), работа без остановок, простое перемещение программ, простое изменение постоянной памяти (т. е. простая замена постоянных программ), часы и интерпретируемые пульты.
Должна иметься возможность просто комплектовать системы с избыточными устройствами ввода-вывода, памятями
и CPU с тем, чтобы система могла действовать при неисправностях в отдельных блоках.
Может потребоваться емкость памяти большая, чем обычно доступные 32 000 слов..
Определенные типы задач требуют слова с плавающей запятой с длиной большей, чем 36 разрядов.
Поскольку надежность CPU непрерывно растет, обязателен полный аппаратный контроль машинных сбоев для всех систем вне зависимости от применения.
Так как самая большая проблема обслуживания — диагноз сбоев, то для уменьшения потерь времени необходимы встроенные в конструкцию схемы, облегчающие диагностику сбоев; кроме того, желательно обеспечить обнаружение единичных сбоев и характерных неправильностей в синтаксисе программ.
Способность системы к расширению
Предлагаемый проект должен на десятилетие вперед обеспечить потребности пользователей, а также послужить надежным фундаментом для непрерывного внедрения новых результатов исследовательских лабораторий фирмы как в области технологии, так и в методах программирования, способах компоновки систем и методах удовлетворения специальных требований.
Элементы, память и устройства ввода-вывода, используемые в системе, изменяются независимо и не одновременно, что приводит к соответствующим изменениям в их относительных скоростях и стоимостях. Чтобы использовать эти изменения, желательно, чтобы проект предусматривал асинхронное действие этих компонент по отношению друг к другу.
Изменения в областях приложения машин и методах программирования неизбежно требуют от машины способности к расширению с функциональной точки зрения. Целесообразно проэкстраполировать сегодняшние тенденции и заранее учесть их развитие. Этого можно достичь прямым увеличением мощности системы, т. е. увеличением емкости памяти, использованием систем с многими CPU, использованием различных новых устройств ввода-вывода и разделением времени. Можно пойти также по пути обобщения функций. Примером может служить кодово-независимый просмотр информации и соответствующие возможности перекодировки. Наконец, можно пойти по пути разумного оставления запасных разрядов, кодов операций и блоков кодов операций для новых режимов, команд и групп команд.
Изменение требований к комплектации системы приводит к необходимости разрабатывать не только такие вопросы, как стандартность сопряжения устройств ввода-вывода с устройствами управления, но и обеспечения специальных возможностей для того, чтобы машина могла непосредственно опрашивать состояния, управлять работой и отвечать на запросы других комплектующих модулей, пользуясь при этом линиями передач, отличными от обычных. Эти черты допускают получение сверхсистемы, которая может быть динамично перестроена с помощью программного управления с целью приспособить ее более точно к специфическим функциям или получить изящный уменьшенный вариант.
Во многих частных приложениях некоторое специальное (и часто минимальное) изменение увеличивает полезность системы. Эти модификации (RPQ), которые могут скорректировать некоторые недальновидности первоначального проекта, часто содержат операции, заранее не предусмотренные. В любом случае хорошая общая схема позволила бы избежать некоторых изменений и легко внести другие.
Универсальность функций
Проект машины должен предусматривать индивидуальные конфигурации системы для больших и малых, специфических и общего типа задач из следующих областей: экономика, наука, реальное время, обработка первичной информации, связь, язык и логическая обработка данных. Спроектированное CPU должно быть удобным для каждого из этих применений. Отдельные удобства, такие, как десятичная арифметика или арифметика с плавающей запятой, могут потребоваться только в задачах того или иного типа и должны предлагаться на выбор, однако с точки зрения логической структуры они должны быть согласованы со всем проектом.
В частности, универсальность системы приводит к следующим требованиям:
Логика должна обладать большой общностью, чтобы допускались все комбинации разрядов в данных и их можно было обрабатывать с помощью операций, мощность и полезность которых зависит от общей природы представления данных больше, чем от любого специфического выбора такого представления.
Операции должны быть кодово-независимыми, за исключением, конечно, тех операций, где структура кода существенна для операции, как, например, в арифметике. В частности, все кодовые комбинации должны быть допущены в качестве данных; ни одна комбинация разрядов не должна оказывать влияние
на любую управляющую функцию в случае ее появления в потоке данных. .
Должна иметься возможность работы с отдельным разрядом.
Адресная система должна обеспечивать возможность адресоваться к небольшим группам разрядов, желательно к группе, используемой для кодирования символа.
Далее, использование CPU общего назначения для машин, работающих в системах связи, потребовало радикального пересмотра понятий. Традиционные CPU, например, дополняются независимым устройством со своей программой (IBM-7750 или 7740), чтобы управлять всеми функциями связи. Поэтому желательно, чтобы новое CPU легко производило такие логические функции, как перекодирование и компоновку сообщений. Линии связи в этом случае прямо связывались бы с каналом ввода-вывода через управляющий блок, который осуществлял бы только сборку букв и функции электрического управления линиями.
Реальная производительность
Основным признаком хорошо спроектированной системы является более высокая производительность по сравнению с другими машинами, имеющими ту же самую цену. Этого нельзя игнорировать при конструировании серии совместимых машин. Отсюда каждая индивидуальная модель и конфигурация системы должны быть конкурентоспособны по сравнению со специализированными системами, аналогичными по функциям, мощности или по тому и другому. Эта цель вполне достижима, несмотря на требование совместимости, так как благодаря той же совместимости можно осуществить особенно значительное снижение стоимости.
Совместимость моделей
Нужно было спроектировать серию моделей с внутренней производительностью, перекрывающей диапазон от машин типа IBM-1401 до машин значительно более мощных, чем IBM-7030 (Stretch). Как уже упоминалось, все модели должны быть прямо программно совместимы, как «вверх», так и «вниз», на уровне программ, записанных в машинных кодах.
Выражение «прямо программно совместимы» требует более точного определения. Здесь оно означает, что правильная (valid) программа, логика которой не зависит явно от времени выполнения и которая выполняется на машине А, будет также выполняться на машине В, если последняя имеет по крайней мере требуемую память, по крайней мере требуемые устройства вво^
да-вывода и по крайней мере требуемые выборные черты. Неправильные (invalid) программы, т. е. программы, не удовлетворяющие требованиям инструкции по программированию, не
АдресаАдресаПамятьМодельЕмкость в 6jразрядных байтах 1к = 1024Длина слова, исключая четностьмксек308-64К82,04016-256 К162,55032-256К322,060128-512 к642,062256-512к641,070256-512 к641,0ПамятьМодельЕмкость в 6jразрядных байтах 1к = 1024Длина слова, исключая четностьмксек308-64К82,04016-256 К162,55032-256К322,060128-512 к642,062256-512к641,070256-512 к641,0
Адреса
Адреса
Память
Модель
Емкость в 6jразрядных байтах 1к = 1024
Длина слова, исключая четность
мксек
30
8-64К
8
2,0
40
16-256 К
16
2,5
50
32-256К
32
2,0
60
128-512 к
64
2,0
62
256-512к
64
1,0
70
256-512 к
64
1,0
Память
Модель
Емкость в 6jразрядных байтах 1к = 1024
Длина слова, исключая четность
мксек
30
8-64К
8
2,0
40
16-256 К
16
2,5
50
32-256К
32
2,0
60
128-512 к
64
2,0
62
256-512к
64
1,0
70
256-512 к
64
1,0
Команды
Управление*МодельТипмксек30 4050 60 6270Односторонняя память Односторонняя память Односторонняя память Односторонняя память Односторонняя память Стандартные компоненты1,0 0,625 0,5 0,25 0,25Управление*МодельТипмксек30 4050 60 6270Односторонняя память Односторонняя память Односторонняя память Односторонняя память Односторонняя память Стандартные компоненты1,0 0,625 0,5 0,25 0,25Проиндексированные адресаПроиндексированные адресаПоток данныхМодельРазрядность шин передачи информа - цаи, исключая четностЗадержка на логический , уровень, нсек30 40 50 6062 708■83264646430303010105Фиксированная Поле перемен- Плавающая запятаяной длины запятаяПоток данныхМодельРазрядность шин передачи информа - цаи, исключая четностЗадержка на логический , уровень, нсек30 40 50 6062 708■83264646430303010105Фиксированная Поле перемен- Плавающая запятаяной длины запятая
Управление*
Модель
Тип
мксек
30 40
50 60 62
70
Односторонняя память Односторонняя память Односторонняя память Односторонняя память Односторонняя память Стандартные компоненты
1,0 0,625 0,5 0,25 0,25
Управление*
Модель
Тип
мксек
30 40
50 60 62
70
Односторонняя память Односторонняя память Односторонняя память Односторонняя память Односторонняя память Стандартные компоненты
1,0 0,625 0,5 0,25 0,25
Проиндексированные адреса
Проиндексированные адреса
Поток данных
Модель
Разрядность шин передачи информа - цаи, исключая четност
Задержка на логический , уровень, нсек
30 40 50 60
62 70
8
■8
32
64
64
64
30
30
30
10
10
5
Фиксированная Поле перемен- Плавающая запятаяной длины запятая
Поток данных
Модель
Разрядность шин передачи информа - цаи, исключая четност
Задержка на логический , уровень, нсек
30 40 50 60
62 70
8
■8
32
64
64
64
30
30
30
10
10
5
Фиксированная Поле перемен- Плавающая запятаяной длины запятая
Общие регистры Регистры дляплава- (16*32)ющей запятой (4x64)
Местная память
Модель
Длина слова исключая ' четность
Цикл, мксек
30
40
50
60
62
70
Основная память
Регистры на сердечниках
Регистры на сердечниках
Транзисторные _ ревистры Транзисторные г регистры
8 16 32 64 64 64
2,0 1,25 0,5
Рис. 1. Структура машины и основные параметры.
обязаны давать одни и те же результаты на всех моделях. Инструкция определяет, кроме результатов всех операций, зависящих от типа модели, результаты не зависящих от модели, но необычных или неправильных (invalid) операций. Программы, зависящие от времени выполнения, будут также совместимы, если эта зависимость явная и если, например, предусмотрена проверка окончания операций ввода-вывода или проверка времени по часам.
Совместимость гарантирует, что самые разнообразные нужды пользователя легко удовлетворяются соответствующей моделью. Совместимость обеспечивает также максимальное использование обслуживающих программ, подготовленных изготовителем, максимальное привлечение программ, сделанных пользователем, способность использовать небольшие системы для выполнения вспомогательных работ в комплекте с большими и исключительную свободу в комплектовании систем для тех или иных конкретных приложений.
Потребовались новые взгляды и способы мышления, чтобы понять, что совместимость может быть достигнута. В последние несколько лет многие создатели вычислительных машин поняли, хотя и недостаточно четко, что логическая структура (как она представляется программисту) и физическая (как она представляется инженеру) совершенно различны. Так, все могут представить себе регистры, счетчики и т. д., однако для программистов они могут не ассоциироваться с реальной конструкцией. Иное положение было в 50-х годах. Явное признание дуальности структуры открыло путь к совместимости в IBM-360. Требование совместимости предопределяет, что основная архитектура должна охватывать различные технологии, различные соотношения скоростей памяти и схем, различную разрядность цепей передач данных и различную сложность потоков данных. На рис. 1 приведены данные об основной структуре машины и реализации ее на различных уровнях производительности.
РЕШЕНИЯ, ПРИНЯТЫЕ ПРИ ПРОЕКТИРОВАНИИ
Некоторые решения при проектировании архитектуры стали основополагающими, так как они а) определяют выдающиеся характеристики IBM-360, б) решают проблемы, возникающие в связи с совместимостью, тем самым проливая свет на суть различия между небольшими и большими моделями, или в) решают проблемы, возникающие при достижении универсализма, тем самым проливая свет на суть различий в применениях. Эти решения, возникшие проблемы, конкурирующие возможности и причины принятия окончательных решений обсуждаются в последующих частях статьи.
Формат данных
Для основного формата (который влияет на размер символов, слов, командных полей, число индексных регистров, выполнение ввода-вывода, разбивку команд, емкость памяти, кодировку символов и т. д.) нужно было решить, должны длины
модулей информации быть кратными 2П или ЗХ2П. Несмотря на то, что при выборе формата было рассмотрено много сторон во* проса, существенно влияющих друг на друга, мы будем обращаться с основными компонентами решения как с независимыми.
Длина кода символа 6 или 4(8. В длине символа основная проблема в том, что десятичная цифра требует 4 разрядов, а буквенно-цифровые символы — 6. Были рассмотрены три очевидные альтернативы — 6 разрядов и для цифр и для букв с 2 разрядами, теряемыми в случае числовых данных; 4 разряда для цифр, 8 для буквоцифр с 2 разрядами, теряемыми на буквоцифрах; и 4 разряда для цифр и 6 для буквоцифр, что потребовало бы принятия 12-разрядного модуля в качестве минимального адресуемого элемента. Был также кратко рассмотрен 7-разрядный символ, который содержит перекодированную пару десятичных цифр.
Вариант 4/6 был отвергнут, так как а) желательно иметь гибкую и мощную обработку потоков символов и адресацию отдельных символов даже в моделях, где десятичные цифры не используются; б) ограничение буквенного символа 6 разрядами казалось недальновидным и в) инженерные сложности этого решения могли стоить больше, чем потерянные разряды в символе.
Шестиразрядное представление, использованное в семействах IBM-702—7080 и 1401—7010, а также в системах других фирм, имело преимущества привычности, пригодности существующего оборудования ввода-вывода, простого определения структуры поля и соразмерность с 48-разрядным словом с плавающей запятой и 24-разрядным командным полем.
Представление 4/8, использованное в семействе IBM-650— 7074 и других машинах, имело большую эффективность кодирования, запасные разряды в кодах алфавитно-цифровых символов (позволяя расширить запас символов) и соразмерность с 32/64-разрядным словом с плавающей запятой и 16-разрядным командным полем. Наиболее важным из этих факторов была кодовая эффективность, которая следует из того, что числа в деловых записях встречаются не менее чем вдвое чаще букв. Эта эффективность, для данных затрат на конструкцию, позволяет лучше использовать память на сердечниках, иметь более быстрые ленты и более емкие диски.
Длина слова с плавающей запятой 48 или 32)64. Для больших моделей время сложения растет медленно с длиной слова, а время умножения растет почти линейно. Для небольших последовательных моделей время сложения растет линейно, а умножение — как квадрат длины слова. Время ввода-вывода
массивов данных растет линейно. В больших машинах чаще требуется высокая точность; для небольших машин более важно требование коротких операндов. Иными словами, из-за совместимости при выборе основного формата появляются определенные противоречия.
Надежные данные о том, какая точность должна выдерживаться на различных задачах и в различные моменты решения одной задачи, отсутствовали. Практически нельзя получить надежные данные по таким первичным параметрам, как частота операций с двойной точностью на 36- и 48-разрядных машинах. Стоял вопрос — либо обострить все эти проблемы, приняв 48-разрядное слово, либо принять 64-разрядное слово, тем самым обеспечив задачи, чувствительные к точности, либо принять 32- или 36-разрядное слово, чтобы обеспечить максимальную скорость и лучшую эффективность кодирования для остальных задач. В IBM-360 было решено иметь слова с плавающей запятой длиной и в 64 и в 32 разряда. Это решение, с целью лучше удовлетворить требования пользователя, предлагает на выбор или улучшить показатель скорость/занятая память, или увеличить точность за счет ухудшения этого показателя. Считается, что пользователи больших моделей большую часть времени используют 64-разрядные слова. Для пользователя меньших моделей в большинстве случаев достаточно 32 разрядов. Все модели с плавающей запятой имеют обе длины слова и работают одинаково.
Плавающая запятая с основанием 16. Для плавающей запятой без противоречий между большими и малыми моделями было выбрано основание 16. Исследования Суини [1] показали, что при этом выборе относительная частота пресдвигов, переполнений и послесдвигов с потерей точности в сложениях с плавающей запятой существенно уменьшается. Он показал, что по сравнению с основанием 2 процент частоты случаев переполнения составляет 5 против 20, пресдвигов — 43 против 58 и послесдвигов с потерей точности—11 против 18. Таким образом, скорость заметно увеличивается. Кроме того, большую часть всех пресдвигов будут завершать за один проход более простые логические цепи с меньшим числом логических уровней. Например, цепи, сдвигающие на 0, 1, 2, 3 или 4 двоичных разряда, покрывают 82% пресдвигов при основании 2. Существенно более простые цепи, сдвигающие на 0,1 или 2 шестнадцатиричных разряда, покрывают. 93% всех пресдвигов при основании 16. Это упрощение дает высокую скорость для больших моделей и низкую стоимость для малых.
Наиболее существенное неудобство принятого основания 16— эго сдвиг в использовании разрядов от порядка к мантиссе. Так,
для данного диапазона и данной минимальной точности основание 16 требует на 2 разряда меньше для порядка и на 3 разряда больше на мантиссу по сравнению с основанием 2. Соответственно эффекты округления и усечения в 8 раз больше для данной длины мантиссы. Для 64-разрядной длины это не проблема. Для 32-разрядной длины с ее 24-разрядной мантиссой минимальная точность уменьшается до 21 разряда. Но так как для задач, где минимальная точность стесняет пользователя, можно употреблять 64-разрядное слово, были выбраны более высокая скорость и простота основания 16.
Арифметика значимости. Было предложено много схем, дающих оценку значимости машинных результатов. Одна такая схема, модифицированная форма ненормализованной арифметики, была в течение некоторого времени включена в проект. Эта схема была в конце концов отброшена после того, как моделирование показало, что при этом способе работы по сравнению с операциями с нормализацией действительно получаемая значимость примерно на одну шестнадцатиричную цифру меньше Кроме того, оценка значимости, полученная для любой данной задачи, существенно меняется в зависимости от данных, используемых для теста.
Представление знака. Для отрицательных чисел в арифметике с фиксированной запятой в двоичном случае было выбрано представление в дополнительном коде. Единственность представления нуля и отсутствие повторных переходов к дополнению — хорошо известные достоинства такого представления. Эти существенные преимущества дополняются несколькими особенно полезными в адресной арифметике свойствами. Особенно это важно для больших моделей, в которых адресная арифметика имеет свое собственное оборудование. При использовании дополнительного кода это индексирующее оборудование работает быстрее, так как не нужна схема, пропускающая прямой код или его дополнение. В небольших последовательных моделях тот факт, что старшие разряды адресной арифметики могут быть опущены без изменения младших разрядов, также позволяет увеличить скорость. Аналогичное свойство усечения упрощает вычисления с двойной точностью. Кроме того, при вычислениях таблиц округление и усечение до целого числа изменяют все переменные в одном и том же направлении, таким образом давая более приемлемое распределение погрешности, чем дает представление «абсолютная величина плюс знак».
С другой стороны, установившийся в коммерческих расчетах способ округления сделал использование записи в дополнительном коде для десятичных данных неудобным, поэтому здесь используется представление «абсолютная величина плюс знак».
В операциях с плавающей запятой достоинства нормализации по нулям только в старших разрядах и представления наименьшего возможного числа всеми нулями предрешили выбор в пользу метода «абсолютная величина плюс знак».
Десятичные числа переменной или постоянной длины. Так как в деловых записях разрядность чисел существенно меняется от случая к случаю, эффективность кодирования (и отсюда скорость лент, емкость накопителей, скорость CPU и т. д.) может быть увеличена с помощью операций над числами переменной длины. Это легко осуществимо для последовательных (serial-bybyte) !) машин, и семейства IBM-1401—7010 и 702—7080 сделаны именно так. Менее гибкая структура больше подходит более параллельной машине, и в машинах семейства IBM-650— 7074 десятичная арифметика* работает с фиксированной длиной слова. Можно ожидать, что преимущество в эффективности хранения данных переменного формата уменьшается тем, что в командах требуется дополнительная информация для указания длины. Хотя для больших машин предпочтителен фиксированный формат, был принят переменный формат из-за того, что а) мелкие фирмы многочисленны и совсем недавно освоили переменный формат и б) большие коммерческие машины обычно ограничены вводом-выводом; для них неудобство внутренней работы с переменным форматом более чем компенсируется увеличением эффективной скорости движения ленты.
Десятичный накапливающий сумматор или операции память-память. Тесно связанный с предыдущим вопрос, встречающийся и в больших и в малых моделях, касается использования накапливающего сумматора как одного из операндов в десятичной арифметике или же использования ячеек памяти для всех операндов и результатов. Этот вопрос уместен даже после принятия форматов переменной длины; например, он отличает арифметику IBM-702—7080 от семейства IBM-1401—7010.
Большие модели легко позволяют увеличивать скорость, используя в качестве накопителей регистры или местную память. Для небольших машин, использующих память на сердечниках для логических регистров, прибавление к накапливающему сумматору не быстрее, чем сложение с ячейкой, указанной программистом. Сложение двух произвольных операндов и сохранение результата становятся ЗАГРУЗИТЬ, СЛОЖИТЬ, ПЕРЕСЛАТЬ В ПАМЯТЬ, однако и эта процедура существенно медленнее для небольших моделей, чем последовательность ПЕРЕСЛАТЬ, СЛОЖИТЬ, соответствующая операции память-память. Ариф-
’) Байт (byte)—единица, равная нескольким битам (здесь восьми).— Прим. ред.
метические операции в программах обработки деловых данных (как в написанных вручную, так и особенно в компилированных с КОБОЛа) чаще представлены в последней форме, и редко случается, что промежуточные результаты выгодно хранить в накапливающем сумматоре. В адресной арифметике и арифметике с плавающей запятой верно прямо противоположное.
Работа с полями: слова-метки или длина. Поля переменной длины могут быть определены либо с помощью символов разграничителей или слов-меток, либо указанием в команде длины поля или начала и конца. Для деловых данных слова-метки имеют некоторое слабое преимущество в эффективности памяти: один лишний разряд на . 8-разрядный символ должен стоить меньше, чем добавочные А разряда на 16-разрядный адрес. Кроме того, команды, и, следовательно, адреса, обычно занимают большую часть памяти на сердечниках в машинах для коммерческих вычислений. Однако принятие слова-метки приводит к использованию слов-меток также и в командах, так что стоимость не уменьшается. То же самое верно для всех данных с фиксированными полями, что является важным фактором для универсальной машины.
В итоге, поскольку эффективность памяти примерно та же, определение поля было перенесено в команду с тем, чтобы допустить все комбинации данных и обеспечить легкое и более прямое программирование. Последнее в основном является следствием того, что принятый способ дает удобную адресацию к частям полей. Чтобы упростить перемещение программ и модификацию команд, для указания размеров поля была выбрана именно длина, а не конечный адрес.
Код ASCII или BCD. Дальновидность выбора в 1961 г. 8-разрядного символа стала ясной в 1963 г., когда Американское бюро стандартов приняло 7-разрядный символьный код для информационного обмена (ASCII). Этот 7-разрядный код проходит теперь окончательное обсуждение в Международной организации стандартов для принятия в качестве рекомендуемого международного стандарта. Возникает вопрос — почему не принять ASCII в качестве единственного внутреннего кода для IBM-360?
Причиной против принятия только кода ASCII было широко распространенное использование кода BCD, ведущего свое происхождение от перфокарточного кода IBM и легко транслируемого на этот код. Чтобы облегчить использование обоих кодов, центральные вычислительные устройства спроектированы с высокой степенью кодовой независимости, со специальными
Номера разрядов
L 4567
-0>
► 23 0001ю11
r
000»10n
oo 011011
nr
000110II
0000
NULL
BLANK
&
-
>
<
t
0
0001
/
a
J
к
J
I
сою
b
k
$
6
К
S
2
осп
c
I
f
c
L
T
3
0100
PF
RES
BYP
PN
d
m
и
D
M
U '
4
0101
НТ
NL
LF
RS
e
n
V
E
N
V
5
0110
LC
65
EOB
UC
f
о
w
F
О
w
6
от
DEL
IDL
PRE
EOT
9
P
X
6
P
X
7
1000
h
q
у
H
Q
Y
В
1001
*
i
r
z
1
R
Z
9
1010
?
1011
$
*
1100
«—
*
@>
1101
(
)
•
1110
♦
-
*1111
1
a
*
✓
Рис. 2а. Расширенный двоично-кодированный десятичный (BCD) код дляобмена.
средствами для перекодировки и программным выбором кода BCD или ASCII для кодовозависимых команд. Тем не менее должен быть сделан выбор для схем ввода-вывода, чувствительных к кодировке, и для программных обслуживающих систем. Было решено предложить на выбор пользователю оба кода на равных правах. Какой бы из кодов ни был выбран, системы будут, конечно, легко читать и писать входную-выход- ную информацию с носителя с другим кодом. На рис. 2 приведены расширенный код BCD для обмена и 8-разрядное представление 7-разрядного кода ASCII.
Расположение границ форматов. Основная проблема совместимости относится к выравниванию границ полей. Различные модели должны иметь различную разрядность памяти и шин передачи данных, и поэтому для каждой модели более выгоден свой способ работы. Для 8-разрядных моделей границы символов, по-видимому, должны совпадать с границами ячейки без каких-либо еще ограничений. Для 64-разрядных моделей предпочтительным является способ работы, при котором не бывает разделения полей между различными 64-разрядными двойными словами. Принятое общее правило постулирует (рис. 3), что каждое поле фиксированной длины должно начинаться с адреса, кратного его длине; на десятичные и символьные поля переменной длины ограничение не накладывается, и они обрабатываются последовательно во всех моделях. Все модели должны следить за тем, чтобы программисты придерживались этих правил. Это весьма существенно для защиты от использования неправильных программ, которые могли бы работать отлично на малых моделях и не работать на больших; это исключило бы совместимость. Общее правило, имеющее очень немного и очень незначительных исключений, состоит в том, что недопустимые ситуации, описанные в инструкции по программированию, обнаруживаются аппаратно и вызывают прерывания. Этот тип прерывания отличается от прерываний из-за сбоев машины.
Вопросы, касающиеся структуры команд
Стэк или адресуемые регистры. Была серьезно рассмотрена схема, основанная на магазинном накопителе, или стэке [2]. Она была отвергнута в пользу нескольких адресуемых регистров. Так как преимущества стэка рассматривались в литературе [3], здесь достаточно перечислить его неудобства, которые вызвали решение использовать адресуемые регистры:
Более высокая производительность при работе со стэком является следствием существования нескольких быстрых регистров, а не того, каким образом они используются или адресуются.
Из-за случающихся повторений операндов (как констант, так и общих множителей) доля случаев, когда «полезные» данные, т. е. данные, нужные в следующий момент, «выплывают на поверхность» стэка, составляет около половины всех случаев. Это приводит к использованию таких операций, как ПОДНЯТЬ и ОБМЕНЯТЬ, первая из которых копирует погруженные данные в активную позицию, а вторая помогает устранить погруженные данные, когда они больше не нужны.
С учетом операций ПОДНЯТЬ и ОБМЕНЯТЬ реальная плотность команд, достигнутая за счет широкого использования неявных адресов, примерно равна плотности для команд с явными, но укороченными адресами, которые употребляются только для быстрых регистров.
При любой практической реализации глубина стэка ограничена. Те заботы о регистрах, которые сняты «магазинной» организацией, появляются снова как заботы о конечной глубине стэка и заботы об адресации данных, находящихся внутри стэка, для команд ПОДНЯТЬ и ОБМЕНЯТЬ. Кроме того, когда стэк нужно разгрузить, чтобы освободить место для новых данных, то разгружать нужно часть, расположенную на дне стэка, а не в активной области.
Способность использовать подпрограммы рекурсивно есть одно из очевидных преимуществ стэка. Однако неудобство состоит в том, что это преимущество не реализуется, если не ввести добавочные независимые стэки для целей адресации.
Обработка полей переменной длины затруднительна в стэке с фиксированной разрядностью.
В конечном счете стэковая организация должна быть относительно удачной для системы, предназначенной в основном для научных вычислений. Здесь намерение сделать систему более универсальной заставило выбрать более гибкую организацию с адресуемыми регистрами.
Полные или укороченные адреса. С самого начала главный вызов совместимости лежал в адресации памяти. Ясно, что в больших моделях потребуется емкость памяти в миллионы символов. В небольших (последовательных) моделях требуются короткие адреса, чтобы сэкономить дорогую память и уменьшить время выборки команд. Положение до некоторой степени было облегчено решением использовать адресуемые регистры, что уменьшает частоту появления полных адресов в потоке команд приблизительно в два раза.
Из предшествующих решений ясно, что все адреса должны быть индексируемы и что должно быть обеспечено простое перемещение всех программ. Индексирование полностью подтвер-
дило свою ценность в существующих системах [4]. Используя индексирование, полные адреса можно получать с помощью полноразмерного индекс-регистра, выполняющего роль базы. Этот способ вместе с использованием укороченных адресов дает существенное увеличение в плотности команд. Принцип регистра-базы был принят, а затем усилен введением для некоторых команд второго индексирования.
Следующим возник вопрос: какой объем памяти нужно еде-' лать прямо адресуемым, а к какому можно обращаться только с помощью базовых регистров? Некоторые имевшиеся ранее случаи использования принципа регистра-базы были явно неудачны, в основном из-за плохой организации перехода с прямой адресации на базовую и обратно. Было решено сделать систему полностью основанцой на базовых регистрах; прямая часть адреса, или «смещение», было сделано таким маленьким (12 разрядов, или 4096 символов), что прямая адресация встречается практически только на очень небольших моделях. Эта решение приводит к тому, что все программы не зависят от места, за исключением констант, помещаемых в регистры-базы. Таким образом, все программы можно легко перемещать. Эта решение также приводит к тому, что обслуживающая система эффективно и действенно управляет механизмом использования регистров-баз. Компонующая программа автоматически строит адреса по принципу «база плюс смещение» и распределяет их во время построения таблицы символов. Компиляторы выполняют не только эту работу, но и распределяют память, для базовых регистров так, чтобы получались эффективные программы.
Десятичная или двоичная адресация. Решено использовать двоичную, а не десятичную адресацию, так как а) компонующие программы, так сказать, «на уровень отдаляют» пользователя от адресов, поэтому привычность использования становится не столь важной, б) двоичная адресация более эффективна (эффективность характеризуется отношением 3,32/4,00) и в) работа с таблицами проще и имеет более общий вид, поскольку любые комбинации разрядов могут находиться в адресе и могут быть сложены с ним, опять давая допустимый адрес. Однако эторешение несколько противоречит принципам, принятым в прошлом. Машины для чисто деловых применений часто использовали десятичную адресацию (машины «родоначальники» семейства). Теперь большинство машин для деловых применений имеет двоичную адресацию или перешло к адресации со смешанным основанием.
Использование многих накапливающих регистров. Экстраполяция тенденций развития техники показывает, что можно
или ASCII кодах
Рис. 3. Форматы.
сделать небольшую, но очень быструю память. Вследствие этого- в проекте используется значительное число логически независимых регистров, которые физически реализованы или в памяти на сердечниках, или в местной быстрой памяти, или на транзисторах в зависимости от модели. В логическом проекте системы имеется шестнадцать 32-разрядных регистров общего назначения и четыре 64-разрядных регистра для плавающей запятой. Предусмотрена возможность увеличения числа последних до восьми. Неожиданно оказывается, что решение использовать, много регистров не создает конфликта между большими и малыми моделями. В разных моделях одна и та же логика реализована соответственно по-разному.
Иерархия памяти. Развитие технологии обеспечивает непрерывный спектр систем памяти, скорость которых меняется обратно пропорционально емкости при равной цене за бит. Равно важно и то, что требования задач, естественно, соответствуют спектру систем памяти — небольшое количество данных используется с большой частотой, среднее количество — со средней частотой и очень большое количество — с низкой частотой. Если иерархия памяти сможет быть эффективно использована, эти факты улучшат отношение производительность/цена.
Было решено внести в проект инженерные, архитектурные и программные черты, требуемые для использования иерархии памяти. Инженер должен согласовать в пределах одной системы памяти с технически различными принципами построения, с различными скоростями, схемами, потребляемыми мощностями, сигнальными шинами и т. д., причем все это требует асинхронности: работы всех видов памяти по отношению к CPU. Программист1) вынужден считаться с неудобствами, создаваемыми границами внутри полной памяти, и должен определять используемые части памяти. Он должен разработать методику адресации для очень больших емкостей, методику передач данных блоками и работы с ними, методику сквозной индексации и обхода разрывов в последовательности адресов.
Раздельные или универсальные накапливающие регистры
Имеются некоторые преимущества в использовании одних и: тех же логических (в противоположность физическим) регистров для арифметики с фиксированной и плавающей запятой. Однако имеются некоторые менее очевидные неудобства, которые повлияли на решение использовать разные группы накапливающих регистров. Во-первых, при принятом методе адреса-
ции регистров (4 разряда в нашем случае) использование разных групп допускает адресацию большего количества регистров с использованием для этого кода операции. Во-вторых, в больших моделях выполнение команды и подготовка следующих команд производятся одновременно в отдельных блоках. При использовании одной группы регистров эти. процессы оказываются взаимосвязанными сильнее; этим уменьшается асинхронизм и достижимое совмещение. Исторически индексные регистры были отделены от регистров для фиксированной запятой, что ограничивало задачу распределения регистров только задачей распределения индексных величин. Объединение регистров ведет к тому, что вся мощь арифметических операций с фиксированной запятой используется для индексных вычислений. Преимущества объединения проявляются при выполнении любых программ (даже при выполнении компиляторов и компонующих программ), в то время как заботы о распределении регистров падают только на компиляцию и компоновку.
Система ввода-вывода
Способ управления вводом-выводом без понимания отличия логической структуры от физической стал бы главной проблемой при попытке сделать совместимыми все модели. Небольшие машины используют оборудование CPU для выполнения действий, необходимых для ввода-вывода; в больших машинах требуется несколько независимых каналов, способных действовать независимо и одновременно по отношению к CPU и друг к другу. В каждом из таких каналов в больших машинах часто содержится больше компонент, чем во всей небольшой машине.
Канальные команды. В логической схеме машины канал рассматривается как независимо действующая единица. Программа CPU начинает канальную операцию, задавая нужную канальную программу и используемое устройство ввода-вывода. Канальные команды, специализированные для ввода-вывода, определяют блоки памяти для чтения или записи, действия устройства ввода-вывода, условные и безусловные переходы в канальной программе и т. д. Когда канальная программа кончается, программа CPU прерывается и становится доступной полная информация о состоянии канала и устройства ввода-вывода.
Особенно ценной чертой является зацепленность команд, (command chaining) — способность последовательных канальных команд задавать устройству последовательность различных операций, таких, как ИСКАТЬ, ЧИТАТЬ, ПИСАТЬ, ЧИТАТЬ
С КОНТРОЛЕМ. Эта черта позволяет подавать новые команды в устройство за очень короткое время, тем самым существенно увеличивая фактическую скорость.
Стандартное сопряжение. В результате общности подхода к вопросу о связях между центральным вычислительным устройством и устройствами ввода-вывода появился канал, который осуществляет стандартное сопряжение с устройством управления для устройства ввода-вывода. Это сопряжение было достигнуто тем, что канал сделали способным передавать между памятью и устройством не только данные, но и управляющую информацию, а также информацию о состоянии устройств. Все функции, специфичные для данного устройства ввода-вывода, предусмотрены в, устройстве управления этим устройством. Для сопряжения требуется 29 сигнальных линий. Независимость сопряжения от времени осуществлена с помощью блокирующих сигналов.
Реализация. В небольших моделях поток данных и управляющая информация разделены во времени между CPU и каналом. Когда байт данных появляется из устройства ввода-вывода, CPU «захватывается», разгружается, используется и восстанавливается. Хотя максимальная скорость передачи данных оказывается при этом меньше (а взаимодействие с вычислениями в CPU больше), чем в случае отдельной аппаратуры, выполняемые действия одни и те же.
После того как канал становится самостоятельным понятием, использующим оборудование с разделением во времени, можно иметь большое число каналов фактически бесплатно, за исключением места в памяти на сердечниках для управляющих слов. Мультиплексный канал такого типа включает в себя до 256 индивидуальных каналов, причем все они могут работать одновременно, пока суммарный поток данных находится в приемлемых границах. Такое мультиплексирование очень полезно для применений в системах связи.
ЗАКЛЮЧЕНИЕ
В статье показано, как принимались решения для логической структуры шести моделей, которые составляют систему IBM-360. Были перечислены причины, повлиявшие на принятие форматов данных, выбор команд и управление вводом-выводом. Главными чертами новой организации машин являются ее пригодность для многих типов обработки данных, новый подход к памятям большой емкости и совместимость машинного языка для шести моделей.
Кратко перечислим вопросы, которые были рассмотрены в статье.
Относительная независимость логической структуры и физической реализации допускает эффективную реализацию на различных уровнях производительности.
Задачи, являющиеся общими при работе машин в большинстве приложений, требуют такой совокупности команд и возможностей в машине, которая могла бы послужить базой для добавления специальных возможностей, ориентированных на конкретные приложения.
Форматы, команды, распределение регистров, а также такие функции, как защита памяти и прерывания в машине, могут быть определены так, что они становятся применимы на многих уровнях производительности и допускают широкую специализацию для частных применений.
Мы надеемся, что обсуждение этих черт проекта прольет некоторый свет на сегодняшние и завтрашние потребности в организации систем обработки данных.
ПРИЛОЖЕНИЯ
Основные черты окончательного проекта, кратко рассмотренного выше, приведены в пяти приложениях, в которых даются форматы, коды данных и команд, распределение памяти и характеристики прерываний.
Осуществление проекта IBM-360 зависело от различных достижений многих людей. Наиболее важными из этих достижений были гибридные полупроводниковые компоненты, герметизированные стеклом, печатный монтаж на панелях и внутри ячеек, новые системы памяти, односторонние памяти и микропрограммная техника, новые устройства ввода-вывода и достижение нового уровня в обслуживающих программных системах.
Разработка и широкое применение идеи совместимости, а также осуществление всей IBM-ЗбО в значительной степени были проведены благодаря Б. О. Эвансу, вице-президенту отделения Data Systems-Development.
Приложение 1. В таблице приведены все коды операций. Восьмиразрядные коды операций разбиты на основные группы, такие, как арифметика с фиксированной запятой, арифметика с плавающей запятой и логические операции. Кроме того, коды группируются в соответствии с пятью основными форматами команд: RR (регистр-регистр), RX (регистр-память (с индексированием)), RS (регистр-память), SI (память-непосредственная информация) и SS (память-память).
Формат Класс
RR
Передачи управления и переключения состояния
RR*
Операции над полным словом с фиксированной запятой и логические операции
RR Операции с плавающей, запятой над длинными числами
RR
Операции с плавающей запятой над короткими числами
хххх
ООООхххх
0001ХХХХ
ООЮхххх
ООП хххх
0000
Загрузить положитель.
Загрузить положитель
Загрузить положитель
ным
ным
ным
0001
Загрузить отрицатель-
Загрузить отрицатель
Загрузить отрицатель
ным
ным
ным
0010
Загрузить и проверить
Загрузить и проверить
Загрузить и проверить
ООП
Загрузить дополнением
Загрузить дополнением
Загрузить дополнением
0100
Установить маску програм-
И
Уменьшить вдвое (hal
Уменьшить вдвое (hal
•мы
ve)
ve)
0101
Передать управление с воз
Сравнить логически
вратом
ОНО
Передать управление по счет
Или
чику
0111
Передать управление по ус
Исключающее или
ловию
1000
Установить ключ (set key)
Загрузить
Загрузить
Загрузить
1001
Выбрать ключ (insert key)
Сравнить
Сравнить
Сравнить
1010
Обратиться к супервайзеру
Сложить
Сложить N
Сложить N
1011
Вычесть
Вычесть N
Вычесть N
1100
Умножить
Умножить
Умножить
1101
Разделить
Разделить
Разделить
1110
Сложить логически
Сложить U
Сложить U
1111
Вычесть логически
Вычесть U
Вычесть U
Формат Класс
RX
Операции над полусловами с фиксированной запятой и передачи управления
RX
Операции над полным словом с фиксированной запятой и логические операции
RX
Операции с плавающей запятой над длинными числами
RX
Операции с плавающей запятой над короткими числами
хххх
ОЮОхххх
0101XXXX
01 Юхххх
011 Ixxxx
0000
Записать в память
Записать в память
Записать в память
Записать в память
0001
0010 ООП
0100 0101
ОНО
0111
1000
Загрузить адрес
Записать в память символ
Вставить символ (insert character)
Выполнить команду (execute)
Передать управление с возвратом
Передать управление по счетчику
Передать управление по условию
Загрузить
И
Сравнить логически
Или
Исключающее или
Загрузить
Загрузить
Загрузить
1001
Сравнить
Сравнить
Сравнить
Сравнить
1010
Сложить
Сложить
Сложить N
Сложить N
юн
Вычесть
Вычесть
Вычесть N
Вычесть N
1100
Умножить
Умножить
Умножить
Умножить
1101
Разделить
Разделить
Разделить
1110
Преобразовать в десятичную
Сложить логически
Сложить U
Сложить U
1111
Преобразовать в двоичную
Вычесть логически
Вычесть U
Вычесть U
Формат Класс
RS, SI Передачи управления, переключения состояния и сдвиги
RS, SI
Операции с фиксированной запятой, логические операции и операции ввода-вывода
хххх 0000
0001
0010 ООП 0100 0101 ОНО
0111
1000
1001
1010
1011 1100 1101
1110
1111
ЮООхххх
Установить маску системы
Загрузить PSW Диагностика
Записать непосредственно Прочитать непосредственно Передатьуправлениепо
«больше»
Передатьуправлениепо
«меньше-равно»
Сдвинуть вправо SL Сдвинуть влево SL Сдвинуть вправо S Сдвинуть влево S Сдвинуть вправо DL Сдвинуть влево DL
Сдвинуть вправо D Сдвинуть влево D
1001ХХХХ
Записать в память группу (store multiple)
Проверить по маске (test under mask)
Переслать
И
Сравнить логически
Или
Исключающее или
Загрузить группу
Начать ввод-вывод
Проверить состояние устройства ввода-вывода
Остановить ввод-вывод
Проверить состояние канала
ЮЮхххх
ЮПхххх
Формат Класс
SS Логические операции
SS
Операции с десятичными числами
хххх
ИООхххх
HOlxxxx
ШОхххх
ИНхххх
СООО
0001
Переслать цифры
Переслать со сдвигом
(move numeric)
0010
Переслать
Упаковать (pack)
ООП
Переслать зоны )
Распаковать (unpack)
(move zone)
0100
И
0101
Сравнить логически
оно
Или
0111
1000
Исключающее или
Очистить и сложить
1001
Сравнить
1010
Сложить
1011
Вычесть
1100
Перекодировать (translate)
Умножить
1101
Перекодировать и проверить
Разделить
1110
Отредактировать (edit)
1111
Отредактировать и отметить
(edit and mark)
Сокращения:
N — с нормализациейU — без нормализации
SL — слово логическиS — слово
DL — двойное слово логическиD — двойное слово
Приложение 2. В данной таблице приведены форматы всех управляющих слов, нужных при работе CPU и каналов. Базовые и индексные регистры, определяемые В и X полями команды, обеспечивают получение 24-разрядного адреса. Слово Состояния Программы (PSW, Program Status Word) управляет последовательностью выполнения команд и отражает, за исключением адресуемых регистров и памяти, полное состояние CPU. При прерывании PSW сохраняется в памяти. Управляющее Слово Канала (CCW, Channel Command Word) управляет операцией ввода-вывода и переходом к следующему управляющему слову. Часть таблицы составляют команды, которые могут быть посланы в канал1). Адресное Слово Канала (CAW, Channel Address Word) используется, чтобы начать последовательность операций ввода-вывода. В Слове Состояния Канала (CSW, Channel Status Word) фиксируется состояние канала после завершения операции ввода-вывода или, когда оно определено, во время операции ввода-вывода.
Форматы управляющих слов
базовые и Индексные Регистры гО—О—О—О—О—О—О —О—О—О — 1 — 1 — 1 — 1 — 1 —1 — 1 — 1 — 1 — 1—2—2—2—2—2—2—2—2—2—2—3—3i
•• I БАЗОВЫЙ АДРЕС ИЛИ ИНДЕКС!
III
<.0-1-2^**<-5-6-7-8-9-0-1-2-3-»-5-6-7-в-9-0-1-2-3-4-5-6-7-в-9-0-1-'
о - ? Не используются
е - at Базовый адрес или индекс
Слово Состояния Программы (PSW) гО—О—О—О—0-0—О-О—О—0—1—1-1 — 1 —1 — 1— 1 — 1 —1 — 1—2—2-2-2—2—2-2—2—2—2—З-3-i ---
ХмАвКА СИСТЕМЫ ! КЛЮЧ i AMWP i КОД ПРЕРЫВАНИЯ।
tilli
l»0—1 —2—3—4—5—6-7—8—9—0—1—2-3-0-5-6-7-8-9-0-1-2-3--5-б-7-в-9-0-Н---
3—3—3—3—3—3—3—3—*—4—4—4—А—4—4—4—4—4—S—5—5—5—5—5—5—5—5—5—6—6—б—6п I।। МАСКА ।।
IILC। СС ПРОГРАММАДРЕС КОМАНДЫ»
I•• МЫ '1
-—2—3—4-5-6—7—8-9-О—1■2—3—а-5—6—7—8—9—О—1—2—3—4—5—б—7—8—9-0—1—2—3J
О—7 Маска системы
О Маска мультиплексного канала
Маскаселекторного канала1
Маскаселекторного канала2
Маскаселекторного канала3
Маскаселекторного канала4
Маскаселекторного канала5
Маскаселекторного канала6
Маскавнешних прерываний
8—11Ключзащиты памяти
Режим ASCII (А)
Маска контроля машины (М)
Продолжение
Состояние ожидания (W)
Режим решения основной задачи (Р) — в отличие от режима супервайзера
16—31 Код прерывания
32—33 Код длины команды (ILC)
34—35 Код-условие (СС)
36—39Маскапрограммы
36Маскапереполнения в операцияхсфиксированнойзапятой
37Маскапереполнения в операцияхсдесятичнымичислами
38Маскаисчезновения порядка
39Маскапотери значимости
40—63Адрескоманды
Управляющее Слово Канала (CCW)
гО-О-О-О-О-О-О-О-О-О-1-1-1-1-1-1-1 -1-1,-1-2-2-2-2-2-2~2-2-2-2-3-Зз
III
' КОД КОМАНДЫ IАДРЕС ДАННЫХi
।।।
LO-i-2-3-4-5-6-7-8-9-0-1 -2-3-4-5-6-7-8-9-О-1-2-3-4-5-6-7-6-9-0—1J
r3-3-3-3-3-3-3-3-4-и-и-и-и-и-*-*-а-*-5-5-5-5-5-5-5-5-5-5-6-6-6-63
111!I
ПРИЗНАКИ 10 0 01*1СЧЕТЧИКt
Illii
— 12-3-4-5-6-7-8-9-О-1-2-3-4-5-6-7-8-9-0-1-2-3-4-5-6-7-В-9-0-1-2-ЗУ
0—7 Код команды
8—31 Адрес данных
32—36 Управляющие признаки
32 Признак цепочки данных
33 Признак цепочки команд
34 Признак блокировки неправильной длины массива
35 Признак пропуска (блокировка записи в память)
36 Признак программно-управляемого прерывания
37—39 Нули
40—47 Не используются
48—63 Счетчик
Адресное Слобо Канала (CAW)Адресное Слобо Канала (CAW)г0-0-0-О-О-0-0-0-0-0-1 - 1-1-1-1-1-1-1-1-1-2-2-2-2-2-2-2-2-2-2-3-3jг0-0-0-О-О-0-0-0-0-0-1 - 1-1-1-1-1-1-1-1-1-2-2-2-2-2-2-2-2-2-2-3-3j; клюя; клюяI1idoooiI1I1idoooiI1АДРЕС CCWАДРЕС CCWI !I !**0—1 - 2-3-**'-5-6-7-8-9-0—1-2-3-4-5-6-7-8-9-0-1-2-3-4 —5—6-7-8—9-0-1 •***0—1 - 2-3-**'-5-6-7-8-9-0—1-2-3-4-5-6-7-8-9-0-1-2-3-4 —5—6-7-8—9-0-1 •*
Адресное Слобо Канала (CAW)
Адресное Слобо Канала (CAW)
г0-0-0-О-О-0-0-0-0-0-1 - 1-1-1-1-1-1-1-1-1-2-2-2-2-2-2-2-2-2-2-3-3j
г0-0-0-О-О-0-0-0-0-0-1 - 1-1-1-1-1-1-1-1-1-2-2-2-2-2-2-2-2-2-2-3-3j
; клюя
; клюя
I1
idoooi
I1
I1
idoooi
I1
АДРЕС CCW
АДРЕС CCW
I !
I !
**0—1 - 2-3-**'-5-6-7-8-9-0—1-2-3-4-5-6-7-8-9-0-1-2-3-4 —5—6-7-8—9-0-1 •*
**0—1 - 2-3-**'-5-6-7-8-9-0—1-2-3-4-5-6-7-8-9-0-1-2-3-4 —5—6-7-8—9-0-1 •*
о - э Ключ защиты
6-7 Нули
е - 31 Адрес CCW
Продолжение
Слобо Состояния Канала (CSW) гО—О—О—О—О—О—О—О—О—О—1 —1 — 1 — 1 — i —1 — 1 — 1 —1 —1—2—2—2—2—2—2—2—2—2—2—3—3i — -
I КЛЮЧ ю о о olАДРЕС CCW।
ill|
lQ—1 — 2—3—*—5—6—7—8—9—О—1—2—3—*—5—6—7—8—9—О—1—2—3—4—5—6—7—8—9—0—1 ^*-••
гЗ-З—3-3-3—3—3—3—*-*-*—*—*-*—*—*—*—*—5—5—5—5—5-5—5—5—5—5—6-6—6—61
I•t
i СОСТОЯНИЕiСЧЕТЧИК|
i।I
... l2-3-*-5-6-7-8-9-0-1—2—3-4-5—6—7—8^9—0—1—2—3—*—5-6-7-8-9-0-1-2-3J
0—3 Ключ защиты памяти
4—7 Нули
8—31 Адрес CCW
32—47 Состояние
Внимание (attention)
Состояние модификатора (status modifier)
Конец работы устройства управления
Занято (busy)
Конец работы канала
Конец работы устройства
Ошибка в устройстве
Исключенная операция в устройстве (unit exception)
Управляемое программой прерывание
Неправильно задана длина массива (incorrect length)
Ошибка в программе
Задано обращение к защищенной области памяти (protection check)
Ошибкавканале(вданных)
Ошибкавканале(вуправлении)!
Ошибкавстандартном сопряжении
Ошибкавцепочке
48—63Счетчик
Приложение 3. В таблице приведены все постоянно распределенные ячейки памяти. CPU и каналы ввода-вывода обращаются к этим ячейкам в программе начальной загрузки, во время прерываний и при изменении состояния часов. При работе программы начальной загрузки при помощи Определенного входного устройства считывается 24 байта в ячейки с 0 по 23. Эта информация последовательно используется в качестве CCW для указания расположения дальнейшей входной информации и в качестве PSW для управления действием CPU, после того как загрузка завершена. Во время прерывания текущее PSW сохраняется в ячейке «старого», a PSW из ячейки «нового» выбирается в качестве следующего PSW. Счетчик времени уменьшается, и когда он проходит через 0, происходит прерывание. Ко всем постоянно распределенным ячейкам возможно также обращение из программы.
Постоянно распределенная память
Адрес
Длина
Назначение
0 0000 0000
Двойное слово
PSW программы начальной загрузки
8 0000 1000
>>
CCW1 программы начальной загрузки
16 0001 0000
>>
CCW2 программы начальной загрузки
24 0001 1000
>»
Старое PSW при внешних прерываниях
32 0010 0000
>>
Старое PSW при обращении к супервайзеру
40 0010 1000
>>
Старое PSW программы
48 ООП 0000
>>
Старое PSW машины
56 ООП 1000
>>
Старое PSW ввода-вывода
64 0100 0000
»»
Слово Состояния Канала
72 0100 1000
Слово
Адресное Слово Канала
76 0100 1100
Не занято
80 0101 0000
»
Часы
84 0101 0100
>
Не занято
88 0101 1000
Двойное слово
Новое PSW при внешних прерываниях
96 ОНО 0000
»»
Новое PSW при обращении к супервайзеру
104 ОНО 1000
>>
Новое PSW программы
(12 0111 0000
>>
Новое PSW машины
120 ОШ 1000
128 1000 0000
>>
Новое PSW ввода-вывода
Поле информации о состоянии машины для диагностики *)
*) Размер это 'о поля зависит от конкретной модели и каналов ввода-вывода.
Приложение 4. В таблице приведены все команды, которые изменяют код-условие (32 и 33 разряды в PSW). Все другие команды оставляют код- условие неизменным. Код-условие определяет результат команды ПЕРЕДАЧА УПРАВЛЕНИЯ ПО УСЛОВИЮ. Четырехразрядная маска в команде определяет, при каких значениях кода произойдет передача управления.
ЗНАЧЕНИЕ КОДА-УСЛОВИЯ
Арифметика фиксированной запятой
0
1
2
3
Сложить H/F
Нуль
Меньше нуля
Больше нуля
Переполнение
Сложить логически
>
Не нуль
Нуль, перенос
Перенос
Сравнить H/F
Равно
Меньше
Больше
—-
Загрузить и проверить
Нуль
Меньше нуля
Больше нуля
—
Загрузить дополнением
>
Меньше нуля
—
Переполнение
Загрузить отрицательным
>
Меньше нуля
Больше нуля
—-
Загрузить положительным
>
—
Больше нуля
Переполнение
Сдвиг влево D
>
Меньше нуля
Больше нуля
Переполнение
Сдвиг влево S
>
Меньше нуля
Больше нуля
Переполнение
Сдвиг вправо D
>
Меньше нуля
Больше нуля
—
Сдвиг вправо S
>
Меньше нуля
Больше нуля
—
Вычесть H/F
>
Меньше нуля
Больше нуля
Переполнение
Вычесть логически
Десятичная арифметика
Не нуль
Нуль, перенос
Перенос
Сложить десятичные
Нуль
Меньше нуля
Больше нуля
Переполнение
Сравнить десятичные
Равно
Меньше
Больше
—
Вычесть десятичные
Нуль
Меньше нуля
Больше нуля
Переполнение
Очистить и сложить
, Нуль
Меньше нуля
Больше нуля
Переполнение
0
I
2
3
Арифметика с плавающей запятой
Сложить с нормализацией S/L
Нуль
Меньше нуля
Больше нуля
Переполнение
•Сложить без нормализации S/L
Нуль
Меньше нуля
Больше нуля
Переполнение
Сравнить S/L
Равно
Меньше
Больше
—
Загрузить и проверить S/L
Нуль
Меньше нуля
Больше нуля
—
Загрузить дополнением S/L
Нуль
Меньше нуля
Больше нуля
—
Загрузить отрицательным S/L
Нуль
Меньше нуля
—
—
Загрузить положительным S/L
Нуль
—
Больше нуля
—
Вычесть с нормализацией S/L
Нуль
Меньше нуля
Больше нуля
Переполнение
Вычесть без нормализации S/L
Нуль
Меньше нуля
Больше нуля
Переполнение
Логические операции
Сложить
Нуль
Не нуль
—
—
Сравнить логически
Равно
Меньше
Больше
—
Отредактировать
Нуль
Меньше нуля
Больше нуля
—
Отредактировать и отметить
Нуль
Меньше нуля
Больше нуля
—
Исключающее или
Нуль
Не нуль
—
—
Или
Нуль
Не нуль
—
—
Проверить по маске
Нуль
Смешанное
—
Единицы
Перекодировать и проверить
Нуль
Не завершилась
Завершилась
—
Операции ввода- - вывода
Прекратитьввод-вы
Не
Остановле
Прекраще
Выключено
вод
работает
но
но
Начать ввод-вывод
Доступно
CSW записано в память
Занято
Выключено
Проверить состояние канала
Не работает
CSW готово
Работает
Выключено
Продолжение
0123
Проверить состояние ус
Доступно CSWРаботает Выключено
тройстваввода-вы
записано
вода
в память
Сокращения
Доступно
Устройство и канал доступны
Занято
Устройство или канал заняты
Перенос
Произошел перенос из разряда знака
Завершилась
Последний байт результата не нуль
CSW готово
Слово состояния канала готово для проверки
' или прерывания
CSW записано в память
Слово состояния канала записано в память
Равно
Сравниваемые операнды равны
F
Полное слово
Больше нуля
Результат больше нуля
Н
Полуслово
Остановлено
Передача данных прекращена; отключенный
блок переводится в нулевое положение
Больше
Первый операнд больше
Не завершилась
Байт результата не нуль; байт не последний
L
Длинное число
Меньше нуля
Результат меньше нуля
Меньше
Первый операнд меньше
Смешанное
Среди выбранных разрядов имеются и нули и
единицы
Выключено
Устройство или канал выключены
Не работает
Устройство или канал не работают
Не нуль
В результате не все разряды равны нулю
Единицы
Все выбранные разряды — единицы
Переполнение
Переполнение результата
S .
' Короткое число
Прекращено
Передача данных прекращена
Работает
Устройство или канал работают
Нуль
Результат или выбранные разряды — нули
Замечание.
Код-условие может быть также изменен операциями ЗАГРУЗИТЬ^-PSWj- УСТА-* НОВИТЬ МАСКУ СИСТЕМЫ, ДИАГНОСТИКА и при прерывании.
Приложение 5. В таблице приведены все прерывания, которые могут произойти. В ней указывается код в старом PSW, определяющий причину прерывания, разряды маски, которые могут быть использованы для того, чтобы заблокировать прерывание, и сведения о том, как влияет прерывание на выполнение команды. Адрес команды, которая была бы выполнена следующей, если бы прерывание не произошло, записывается в адресном поле команды старого PSW. Если известна длина предшествующей команды, то она приводится в коде длины команды (ILC, Instruction Length Code), и это отражено в одном из столбцов таблицы.
ОБРАБОТКА ПРЕРЫВАНИЙ
Название источника прерывания
Код прерывания, разряды PSW 16—31
ILC
Выполнение команды
Ввод-вывод (старое PSW 56, новое PSW 120, приоритет 4)
Мультиплексный канал
00000000 аааааааа
0
X
Завершается
Селекторный канал 1
00000001 аааааааа
1
X
Завершается
Селекторный канал 2
00000010 аааааааа
2
X
Завершается
Селекторный канал 3
00000011 аааааааа
3
X
Завершается
Селекторный канал 4
00000100 аааааааа
4
X
Завершается
Селекторный канал 5
00000101 аааааааа
5
X
Завершается
Селекторный канал 6
00000110 аааааааа
6
X
Завершается
Программа (старое PSW 40, новое PSW 104, приоритет 2)
Операция
00000000 00000001
1, 2, 3
Прекращается
Особая операция
00000000 00000010
1, 2
Прекращается
Выполнить команду
00000000 00000011
2
Прекращается
Защита памяти
00000000 00000100
0, 2, 3
Прекращается/
Заканчивается
Адресация (Addressing)
00000000 00000101
0,1,2,3
Прекращается/ Заканчивается
Прекращается
Спецификация
00000000 00000110
1, 2, 3
(Specification,)
2, 3
Данные
00000000 00000111
Заканчивается
Переполнение в опера
00000000 00001000
36
1, 2
Завершается
ции с фиксированной запятой
Деление с фиксированной запятой
00000000 00001001
1, 2
Прекращается/ Завершается
Переполнение в опера
00000000 00001010
37
8
Завершается
ции с десятичными числами
Десятичное деление
0000000000001011
3
Прекращается
Переполнение порядка
0000000000001100
1, 2
Заканчивается
Исчезновение порядка
0000000000001101
38
1, 2
Завершается
Название источника прерывания
Код прерывания, разряды PSW 16—31
1
ILC
Выполнение команды
Значимость
00000000 00001110
39
1, 2
Завершается
Деление с плавающей
00000000 00001111
1, 2
Прекращается
запятой
Обращение к супервайзеру (старое PSW 32, новое PSW
96, приоритет 2)
Разряды команды|
00000000 rrrrrrrr
1
1 1
| Завершается
Внешний источник (старое PSW 24, новое PSW 88, приоритет 3)
Внешний сигнал 1 .
00000000 xxxxxxxl
7
X
Завершается
Внешний сигнал 2
00000000 xxxxxxlx
7
X
Завершается
Внешний сигнал 3
00000000 xxxxxlxx
7
X
Завершается
Внешний сигнал 4
00000000 xxxxlxxx
7
X
Завершается
Внешний сигнал б
00000000 xxxlxxxx
7
X
Завершается
Внешний сигнал б
00000000 xxlxxxxx
7
X
Завершается
Прерывание по кнопке
00000000 xlxxxxxx
7
X
Завершается
на пульте
Часы
00000000 Ixxxxxxx
7
X
Завершается
Проверка машины (старое PSW 48, новое PSW 112, приоритет 1) Машинный сбой I 00000000 00000000 1131 х I Заканчивается
Сокращения:
а) Разряды адреса устройства ввода-вывода,
г) Разряды полей 1 и 2 команды ОБРАТИТЬСЯ К СУПЕРВАЙЗЕРУ.
х) Значение этих разрядов заранее неизвестно.
ЗАПИСЬ ДЛИНЫ КОМАНДЫ
Код ДЛИНЫ команды
32-33 разряды PSW
0—1 разряды команды
Длина команды
Формат команды
0
00
Не известна
1
01
00
Одно полуслово
RR
2
10
01
Два полуслова
RX
2
10
10
Два полуслова
RS или 81
3
11
11
Три полуслова
SS
ЛИТЕРАТУРА
b Sweeney D. W., An Analysis of Floating-Point Addition and Shifting, IBM Systems Journal.
См., например, Barton R. S.„ A New Approach to the Functional Design of a Digital Computer, Proc. WJCC, 19 (1961), 393—396.
В г о о к s F. P., Jr., Recent Developments in Computer Organization, Advances in Electronics, 18 (1963), 45—64.
В1 a a u w G« A., Indexing, in Planning a Computer System, W. Buchholz, ed., McGraw-Hill Book Company Inc., 1962, pp. 150—178,
Проектирование свойствэксплуатационной надежностидля системы IBM-3601)
У. Картер, Г. Монтгомери, Р. Прейсс, Г. Рейнхеймер
В этой статье обсуждается проектирование свойств, которые призваны обеспечить значительно большую эксплуатационную надежность системы IBM-360 по сравнению с надежностью предыдущих систем. С самого начала было решено разрабатывать систему IBM-360 как единый комплекс оборудования, операционных программ и методоов технического обслуживания.
Главными проблемами, которые следовало решить, добиваясь повышенной эксплуатационной надежности и единства, были: а) уменьшение максимальной продолжительности ремонтов, б) уменьшение медианной и средней продолжительности ремонтов и в) подбор единого комплекса эксплуатационных программ и методов эксплуатации, согласующихся с самыми различными программами операционных мониторов и моделями машины.
Эти задачи были решены с помощью дополнительных стандартных обслуживающих средств (и аппаратных, и программных), предусматривающих: а) возможность автоматически записывать во всех деталях ту ситуацию, в которой находилась система в момент обнаружения ошибки; б) возможность установить центральное вычислительное устройство (CPU, central processing unit) в любое произвольно заданное состояние (как «допустимое», так и «недопустимое»), выполнить, начиная с этого состояния, указанное количество машинных циклов и сравнить новое состояние с предварительно вычисленным результирующим состоянием; значительная часть используемых при этом схем не зависит от схем, необходимых для выполнения программы; в) систему программ, которую можно использовать совместно с комплексом Автоматизации Проектирования IBM-360, чтобы автоматически получить входные значения, эталонные результаты и анализ места неисправности, т. е. то, что необходимо для реализации возможностей, описанных в б); г) семейство программ диагностических мониторов, которое решает задачу подбора эксплуатационных процедур для различных моделей машины и программ операционных мониторов; д) в больших моделях возможность повторить выполненные с ошибкой операции CPU на уровне команды в добавление к обычному повторению на уровне сегментов программы.
Введение
На ранней стадии проектирования системы IBM/360 была поставлена задача: значительно повысить эксплуатационную
!) Carter W. С., Montgomery Н. С., Рге i ss R. J., R e i n h e im e r H. J., Design of Serviceability Features for the IBM System/360, IBM. I. Res. and Dev., 8, № 2 (1964), 115—126.
надежность по сравнению с эксплуатационной надежностью существующих систем. Стремление получить требуемые, улучшенные характеристики заставило искать новые пути, что неизбежно привело к смещению акцента при проектировании си* стемы. Цель этой статьи: описать новые способы, в которых выразилось стремление к повышению эксплуатационной надежности IBM-360. Здесь не описывается количество дополнительного оборудования, поскольку оно зависит от модели. Благодаря тому, что особое внимание уделялось единству свойств в моделях системы и многократному использованию элементов везде, где это возможно, количество дополнительного оборудования оказывалось не чрезмерным.
Вначале описывается процесс, с помощью которого основная задача сводится к конкретным целям. Далее излагается разработанная с целью уменьшения продолжительности ремонтов система для автоматического определения места ошибки. Затем рассматривается совокупность специального оборудования и программ, которые обеспечивают возможность объединить эксплуатационные программы в любой комплекс машина/про- грамма-монитор. В последнем разделе резюмируются наиболее существенные эксплуатационные преимущества IBM-360.
ГЛАВНЫЕ ЗАДАЧИ ПРИ ОБЕСПЕЧЕНИИ ЭКСПЛУАТАЦИОННОЙНАДЕЖНОСТИ СИСТЕМЫ 1ВМ-360
Основные определения
Система с точки зрения эксплуатационной надежности состоит из оборудования IBM-360, программ системы, операционных программ, оператора и среды. Большинство внеплановых остановок для технического обслуживания вызывается отказами системы, которые можно определить как обнаруженное присутствие нежелательного действия или обнаруженное отсутствие желательного действия. Устойчивый отказ определяется как отказ, всегда проявляющийся при одних и тех же условиях, которыми пользователь может управлять. Неустойчивый отказ определяется как отказ, над проявлением которого пользователь совсем или почти совсем не властен [1].
Рабочий период состоит из времени, пригодного для продуктивного использования системы, времени, предусмотренного для планового профилактического обслуживания, и времени внеплановых ремонтов. Время внеплановых ремонтов —это произведение числа отказов в элементах на среднее время устранения последствий отказов плюс время, обусловленное ошибками оператора, неправильной работой программ и средой. Не-
исправности элементов обсуждаются в [2]. Хотя ряд средств в IBM-360 предусмотрен для облегчения обработки программных ошибок, настоящее обсуждение ограничивается в основном особенностями, которые облегчают и улучшают локализацию неисправностей в оборудовании.
Постановка задачи
Прежде всего при постановке задачи предполагается, что начальные эффекты обучения [3] прошли, и период быстрого изменения эксплуатационной эффективности, обусловленный вводом новых методов и систем, позади. Чаще всего этот период занимает приблизительно год.
Имеющийся в настоящее время опыт работы в промышленности показывает, что распределение внеплановых простоев системы определяется графиком, приведенным на рис. 1. Для большинства установок наиболее серьезным показателем внепланового обслуживания являются не столько медианная или средняя продолжительности (хотя они тоже важны), сколько продолжительность устранения неисправности на уровне 90% и выше. В настоящее время большие неудобства возникают при остановках системы на 4, 5, 6 или более часов подряд, ибо такая остановка нарушает весь график работы установки. Поэтому самой насущной целью является резкое уменьшение максимальной продолжительности ремонта.
Кроме продолжительности длительного ремонта, важны также медианные и средние продолжительности ремонта. Эти три величины взаимосвязаны и зависят от распределения продолжительности внеплановых ремонтов как функции от суммарного процента внеплановых ремонтов. Распределение, полученное в результате имеющегося опыта, показано на рис. 1. Рабочая гипотеза состоит в том, что общая форма кривой распределения будет оставаться относительно неизменной. Если некоторая средняя продолжительность простоя предполагается равной, скажем, da или db, тогда кривые А и В на рис. 1 дают приемлемые распределения внеплановых перерывов. С помощью этих кривых можно показать, что для уменьшения среднего значения в данном эмпирическом распределении необходимо уменьшить медианное значение в том же процентном отношении.
Учитывая основную задачу, упомянутую во введении, и только что рассмотренные соображения, был установлен следующий приоритет целей по повышению эксплуатационной надежности для IBM-360:
резко уменьшить максимальную продолжительность внепланового ремонта; .
существенно сократить медианную продолжительность внепланового ремонта;
как естественное следствие пункта (б), существенно уменьшить среднюю продолжительность внепланового ремонта.
Рис. I. Суммарный процент ремонтов как функция продолжительности ремонта. Величины da и db представляют средние продолжительности, а величины тпа и mb представляют медианные продолжительности ремонтов для предполагаемых распределений Л и В.
С другой стороны, чтобы совместимость программ и стандартизация компонент способствовали эксплуатационной надежности в такой степени, в какой они могут этому способствовать, было признано необходимым сделать так, чтобы нить подобия, которая охватывает несколько моделей, осталась видимой для тел, кто обслуживает эти системы. Нельзя допустить, чтобы со-
четания различных аппаратных реализаций с программами операционных мониторов скрывали принципиальное сходство различных моделей. Стремление не потерять эти потенциальные удобства приводит к четвертой цели в эксплуатационной надежности: ‘
разработать единый всесторонний комплекс стандартных обслуживающих программ и процедур, которые эффективны для всех основных сочетаний конфигураций машины и программ-мониторов.
После того как цели определились, немедленно встала задача указать средства, с помощью которых эти цели можно* было бы реализовать и определить среду, в которой эти средства могли бы использоваться. Первым средством являются дополнительные схемы, которые предназначены для облегчения эксплуатации. Второе средство — это программы, которые используют новое оборудование и стандартные команды вычислительной машины для локализации неисправных элементов. Эти средства должны использоваться в двух ситуациях. Чаще встречается ситуация, при которой отказ повторяется и симптомы отказа легко получить. Диагностические средства должны быть рассчитаны так, чтобы использовать эти симптомы непосредственно. Во второй ситуации неисправность в системе проявляется редко, но тем не менее она серьезно мешает желаемому использованию системы. В этом случае задача состоит в получении симптомов, которые можно проанализировать. Если симптомы получены, то для их обработки можно использовать ту же самую редко сбивающуюся вычислительную машину.
УМЕНЬШЕНИЕ МЕДИАННОЙ И СРЕДНЕЙ ПРОДОЛЖИТЕЛЬНОСТИРЕМОНТОВ
Можно достичь уменьшения продолжительности внепланового ремонта, используя следующую общую стратегию:
при неисправностях в устройствах, функции которых могут быть выполнены другими устройствами, использовать диагностическую программу для сбора данных о симптомах, после чего исключить неисправное устройство и продолжать работу на сокращенной системе;
для неисправностей в устройствах, функции которых нельзя выполнить с помощью других устройств, улучшать эксплуатационные характеристики.
Метод, реализующий эту стратегию, был применен в системе IBM-360. Неисправности типа (а) будут обсуждаться в этой статье позднее. Для неисправностей типа (б) было решено
сосредоточить внимание на уменьшении времени, необходимого для диагностики, так как это самая значительная составная часть времени ремонта и именно она создает наибольшие возможности для улучшения. Два главных препятствия, которые ограничивали уменьшение времени диагностики в более ранних машинах, состоят в следующем:
Лишь незначительная доля элементов схемы была доступна непосредственно программному управлению и опросу. Это было названо проблемой разрешающей способности по адресам.
Интервал между точками, в которых состояние системы можно было определить с помощью программ, был равен времени выполнения целой команды. Система проходила через несколько промежуточных состояний, но это можно было установить только по тому, что наблюдалось в конечных точках. Это было названо проблемой разрешающей способности по времени.
После того как в недавней работе [4] было показано, что удачное решение обеих этих проблем можно получить достаточно дешево, естественно было испытать это предложение на CPU, а в целях снижения стоимости учесть это с самого начала проектирования.
В малых моделях, управляемых с помощью постоянного запоминающего устройства (ПЗУ), для достижения тех же целей был избран несколько другой подход. Это будет обсуждаться ниже в разделе «Самодиагностика».
Тесты, локализующие неисправность (ТЛН)
Диагностика выполняется применением серий стимулов и анализом соответствующих реакций. Если логика между стимулом и реакцией управляется и идентифицируется однозначно, тогда серии правильных и неправильных реакций могут привести к точному указанию неисправного элемента схемы. Чтобы обеспечить хорошую разрешающую способность по адресам в IBM-360, требуется оборудование, ограничивающее количество схем, участвующих в отработке конкретного тест-стимула. Чтобы выполнить идентификацию, требуется длинная и сложная программа, которая вычисляет необходимые стимулы для проверки логики и анализирует реакции. Так как нельзя надеяться, что эту работу сможет выполнить неисправная машина, данные должны быть вычислены заранее на работающей системе. В неисправной системе необходимо иметь дополнительное оборудование, которое должно подавать стимулы, рассматривать реакции и определять следующее действие, которое нужно выполнить для достижения диагностического заключения.
Как можно вычислить конкретные стимулы? Хорошо из* вестно, что логические свойства элементарных конструктивных блоков можно проверить, используя подмножество всех возмож* ных комбинаций входов [5]. Комбинаторная логическая сеть, связывающая любые два запоминающих элемента в вычисли* тельной машине, состоит из нескольких уровней таких элементарных блоков, соединенных так, как это диктуется логикой ра* боты вычислительной машины. Любой элементарный блок можно проверить, подавая на его вход некоторый пример, если в результате инверсии правильного состояния его входных или выходных линий будет инвертирован наблюдаемый выход логической схемы [6, 7].
Был разработан комплекс программ для IBM-7094 (см. дополнение), чтобы заранее вычислять последовательность стимулов, необходимую для указания в схеме малого количества сменных блочков, один из которых содержит неисправный элемент. Определение примера, локализующего неисправность, используется для описания этих стимулов. Каждый пример представляет совокупность состояний запоминающих элементов, специально подобранную для того, чтобы проверить группу элементарных блоков в комбинаторной логической сети, которая определяется некоторым выходом и всеми ее входами.
С использованием программ IBM-7094 и особенностей системы IBM-360 возможен следующий основной подход к проблеме быстрой локализации неисправности логической схемы!
улучшить разрешающую способность по адресам, чтобы непосредственно работать с неисправным элементом на уровне комбинаторной логики, последовательностной логики или на уровне временной диаграммы;
улучшить разрешающую способность по времени, обеспечивая возможность записать каждое последовательное состояние вычислительной машины в ее темпе;
представить получаемую при этом информацию в таком виде, который требует минимума человеческого анализа во время ремонта;
обеспечить непосредственную проверку ремонта.
Чтобы использовать стимулы, необходимо было только добавить к системе IBM-360 схемы, которые устанавливают любые запоминающие элементы машины в любое состояние, и обеспечить возможность, позволяющую определить состояние любого запоминающего элемента, т. е. наблюдать его реакцию. Эта особенность используется, кроме того, при автоматической записи ситуации и обсуждается в этой статье позднее.
Комплекс программ для подготовки ТЛН анализирует данные о логических схемах машины, записанные на ленте Основ-
ного Логического Массива Автоматического Проектирования [8], и вычисляет или анализирует группу тестов для определения места ошибки в зависимости от модели IBM-360, в которой они будут использоваться. Эти тесты могут быть записаны на входной носитель, такой, как магнитная лента или диски, для непосредственного считывания моделью IBM-360 в режиме тестирования с определением места неисправности или, для других моделей, диагностические тесты могут находиться в ПЗУ.
Этот комплекс программ а) подготавливает данные для ТЛН, чтобы непосредственно проверить большую часть элементов CPU в больших моделях IBM-360; б) упорядочивает эти данные так, чтобы результаты проверки можно было легко анализировать; в) модифицирует эти данные в связи с инженерными изменениями в логических схемах и г) выдает обработанную документацию, которая сама по себе достаточна, чтобы уменьшить продолжительность текущего ремонта.
Пользование тестом, находящимся во внешнем запоминающем устройстве
ТЛН хранятся во внешнем накопителе, таком, как магнитная лента или блок дисков. Когда на инженерном пульте нажимается кнопка «ввод ТЛН», упрощенная последовательность схем управления каналом переписывает группу тестов с внешнего носителя в основную память. Каждый ТЛН подразделяется на несколько полей, как показано в табл. 1.
После того как группа ТЛН считана в запоминающее устройство, последующими действиями CPU управляет специальная дополнительная схема1), предназначенная для проверки машины на примерах ТЛН. Прежде всего запоминающие элементы CPU устанавливаются в соответствие со значениями стимулов в данном примере. На специальный счетчик также заносится значение, указанное в поле количества тактов. Когда эта начальная установка окончена, разрешается выполнять машинные такты синхронно со счетчиком. Как только на счетчике окажется нулевое значение, такты прекращаются и машина опрашивает запоминающий элемент, чтобы сравнить его состояние с предварительно вычисленным результатом. Производится это сравнение, результат запоминается и тест повторяется фиксированное число раз, N. Если получено N одинаковых результатов, принимается решение, зависящее от этих результатов, какой из двух возможных ТЛН, указанных в поле / табл. 1, надлежит выполнять следующим. Если результаты не одинако-
9 Эти схемы существуют только в больших моделях.
Таблица 1
Формат ТЛН
Поле
Функция
а
Идентификация
b
Комбинация стимулов
с
Количество тактов
d
Управляющие разряды
е
Указание эталонного результата и место
положения контролируемого элемента
/
Указание следующих возможных ТЛН.
вые, т. е. обнаружен неустойчивый отказ, вычислительная машина останавливается, а тест и причина останова индуцируются на инженерном пульте. В этом случае можно обратиться к документации на ТЛН, которая обсуждается далее.
Первичная последовательность ТЛН будет контролировать отсутствие ошибок в машине. (Одним из ТЛН, указанных в поле / теста в первичной последовательности, является следующий такой же первичный тест.) Заранее вычисленные примеры ТЛН готовятся программой-составителем ТЛН так, что получается предельно широкий охват элементарных логических блоков вычислительной машины.
Если неисправность обнаруживается первичным тестом, тогда ошибка машины на этом тесте либо позволяет, либо не позволяет поставить удовлетворительный диагноз, чтобы указать неисправные сменные ячейки в машине. Если да, то машина останавливается и на инженерном пульте индуцируется номер теста. В документации на ТЛН перечисляются эти подозреваемые в неисправности ячейки схемы. Управляющие разряды — поле d табл. 1 в тесте — дают информацию, чтобы определить, продолжать работу или остановиться после устойчивого отказа.
Если первичный тест не обеспечивает достаточной локализации, подаются ТЛН для ее улучшения. Вторичный ТЛН, указанный в поле f табл. 1, проверяет некоторое подмножество элементарных логических блоков из тех, которые отказали при выполнении первичного теста. Если это подмножество отказывает при вторичном тесте, значит именно это подмножество содержит неисправность; если тест выполняется правильно, значит неисправность находится в дополняющем подмножестве. Тестирование продолжается до тех пор, пока не достигнута
конечная точка, как это показано в типичной последовательности тестов на рис. 2. Первичная и вторичная последовательности заранее составляются так, чтобы, когда достигается конечная точка, разрешение было доведено до нескольких подозреваемых сменных ячеек !).
Рис. 2. Типичная последовательность тестов. Конечные тесты на блок- схеме указывают, что имеется достаточное основание произвести ремонт.
Чтобы избежать ошибочных выводов, вызываемых случайными сбоями, тесты строятся так, что неправильное выполнение теста является условием, которое ведет к конечной точке. Если на самом деле это оказывается не так, то последний тест в цепочке повторяет пример первого теста, в котором была обнаружена неисправность. Если последний тест не обнаруживает неисправность, машина останавливается и дается специальное указание о случайном сбое.
9 Для простых моделей число подозреваемых сменных ячеек в среднем составляет приблизительно три.
Документация на тесты
В документации на ТЛН указываются все логические элементы машины, которые активно участвуют в образовании желаемого выхода для данного входного примера. Единичная неисправность в любом одном из описанных логических элементов или в соединении между ними обычно вызывает неправильный ответ, который обнаруживается вместо ожидаемого результата. (Это не означает, что только названные цепи работают в машине во время выполнения данного примера. Но только эти цепи при наличии в них одной неисправности могут быть обнаружены по выходу.) Упомянутое перечисление включает также идентификацию теста, все относящиеся к цепи номера контактов вместе со значениями, которые обычно наблюдаются в этих точках с помощью тестера или осциллографа, и ссылками к соответствующим логическим схемам, а также к отдельным ячейкам, которые подозреваются в каждой конкретной конечной точке.
Характеристики ТЛН
Предшествующая работа [4] и опыт, накопленный на экспериментальной модели, на прототипах IBM-360 и на машинах IBM-1418, 1419 и 1428, показали, что наиболее существенными являются следующие характеристики ТЛН:
процент оборудования в CPU, необходимый для работы ТЛН, колеблется между 3 и 10 (в зависимости от модели);
тестирование с целью локализации неисправностей обеспечивает единообразные процедуры, документацию и заранее спланированную методику отыскания неисправностей;
каждый из последовательных тестов при проверке управляет небольшим количеством логических элементов, обеспечивая тем самым отличную пространственную разрешающую способность;
ТЛН проверяют малые комбинации действий схемы, предоставляя тем самым возможность имитировать логические условия, которые при тестировании обычными программами были бы возможны только при задании извне особых сигналов или при наличии специальных команд вычислительной машины;
тестирование с локализацией неисправности обеспечивает вторичные документы, которые указывают и цепи, которые тестируются, и цепи, которые не тестируются;
ТЛН и связанные с ними документы составляются и обновляются автоматически;
ТЯН, составленные вычислительной машиной, требуют меньшего времени для отладки на макете и меньшего времени для проверки правильности указания места отказа в неисправной схеме.
Самодиагностика
Для машин IBM-360, управляемых с помощью ПЗУ, каждая команда относится к совместимому списку команд IBM-360 и выполняется за один или более циклов. В каждом цикле определяется некоторое состояние машины, т. е. запоминающие элементы устанавливаются в соответствии с содержимым слова, считанного из ПЗУ, при участии активной логики, такой же, как в машинах с традиционным управлением.
Инженеру, который зачастую выполняет команду цикл за циклом, такое управление в вычислительной машине покажется обычным. Но потребитель в этом случае не может непосредственно воспользоваться микропрограммированием. Тем самым сразу исчезают как преимущества прямого использования микрокоманд, так и недостатки двух уровней управления.
Однако в машины, у которых ПЗУ является элементом управления, легко встроить диагностические средства, используя часть постоянной памяти для диагностических микропрограмм 9В целях диагностики машины можно также воспользоваться однотактной работой, обеспечив тем самым и адресное, и временное разбиение. Обнаружение ошибок производится схемами контроля. Тесты местной и основной памяти проверяют эти устройства непосредственно, не считывая из них команды. Кроме того, ПЗУ содержит микрокоманды, которые используются для инвертирования разрядов четности; таким образом, можно непосредственно тестировать схемы обнаружения ошибок.
Для моделей IBM-360 с постоянной памятью характерны следующие эксплуатационные черты:
управление легко проверяется: как данное слово ПЗУ, так и возможные следующие слова контролируются по четности;
документация составляется на уровне циклов машины, представляется в удобной для понимания форме блок-схемы и обновляется с помощью программ вычислительной машины;
матрицы ПЗУ в малых моделях могут быть легко проверены тестами, находящимися в ПЗУ;
неисправности ПЗУ в больших моделях можно диагнози- ровать, используя ТЛН;
i) Эти тесты широко используются в малых моделях.
специальные модификации (о некоторых из них будет сказано ниже) можно включать без особых затрат и с незначительным влиянием на существующую логику управления.
УМЕНЬШЕНИЕ ПРОДОЛЖИТЕЛЬНОСТИ ДЛИТЕЛЬНЫХ РЕМОНТОВ
Обычно самым существенным фактором, определяющим длительность ремонта, является время, необходимое для диагноза. Зачастую хуже других поддаются быстрому диагнозу те отказы, которые названы неустойчивыми. Стратегия для уменьшения продолжительности длительных ремонтов в IBM-360 направлена на устранение трех трудностей, относящихся к случайным сбоям. Во-первы,х, эффективность диагноза случайных сбоев в ранее существовавших системах была низка, так как отсутствовала точная и полная информация о симптомах. Во-вторых, влияние случайных сбоев в CPU усугублялось потерями времени на процедуры восстановления. В-третьих, многие отказы относили к случайным и обрабатывали как случайные просто потому, что не было подходящих средств, чтобы вызвать соответствующие симптомы.
Сбор и анализ данных о симптомах
Ясно, что пользователь не может вызвать случайные сбои, чтобы получить данные о симптомах. Остается только собирать и сохранять эти данные, когда они появляются в реальной обстановке. Система IBM-360 снабжена аппаратно-программной системой, которая именно для этого и предназначена.
В связи с этой задачей к аппаратной части системы предъявляются следующие требования: а) обнаружение ошибок сразу же после их появления; б) детальная регистрация состояния системы в момент появления ошибки и в) переключение к различным последовательностям команд.
В системе IBM-360 прерывания, вызванные сигналами схем контроля, автоматически и аппаратно отделяются от прерываний, обусловленных программой. Так как обработка программных ошибок находится, очевидно, в распоряжении подпрограмм,, к которым приводит система прерываний, мы ограничимся лишь теми замечаниями, которые касаются неисправностей схемы.
Требование (а) об обнаружении ошибок сразу же после их появления удовлетворяется распределением схем контроля 9 по системе, включая области управляющих схем; таким
*) В IBM-360 используется целый ряд методов контроля, но все они зависят от модели и поэтому здесь рассматриваться не будут.
образом, ошибки обнаруживаются в непосредственной близости к пространственной и временной точке их появления.
Требование (б) о записи подробного состояния системы в момент ошибки приводит к интересной задаче, напоминающей принцип неопределенности. Как может машина записать свое состояние, не изменяя того, что записывается? Для решения этой задачи по отношению к ошибкам CPU и некоторым ошибкам в каналах ввода-вывода в IBM-360 решено ввести специальные независимые схемы. Если контрольная схема обнаруживает ошибку в CPU или в некоторой части каналов ввода- вывода большой модели, то: 1) нормальная последовательность в неисправном устройстве сразу же останавливается (ошибки CPU не влияют на операции каналов и наоборот для моделей, в которых CPU и каналы ввода-вывода работают автономно); 2) под управлением специальных схем состояние запоминающих элементов управления и шин передачи данных неисправного устройства записывается как совокупность разрядов в основную память и 3) затем возобновляется нормальная последовательность.
Требование (в) о переключении к различным последовательностям команд удовлетворяется при возобновлении нормальной последовательности, когда возбуждается специальное прерывание программы, названное прерыванием от машины.
Требование (б) в устройствах ввода-вывода удовлетворяется отчасти по-разному. Здесь имеется два основных различия:
Сигнал схемы контроля останавливает блок управления устройства, но не обязательно само устройство (из-за механического движения). Например, магнитная лента при чтении пробегает до конца текущей зоны. Некоторые блоки управления останавливаются сразу же, сохраняя состояние в данный момент времени; другие блоки управления сохраняют состояние лишь частично, так как блок работает до нормального окончания.
Информация о состоянии должна выбираться из неисправного блока с помощью программы.
В случае устройств ввода-вывода требование (в) удовлетворяется тем, что после нормального прерывания от устройства ввода-вывода, которое свидетельствует о выполнении команды, становится доступной кодированная информация о состоянии [9].
Таким образом, автоматически записанные данные дают точную и детальную картину состояния неисправного устройства самого по себе, т. е. CPU, канала или блока управления, яо они не обеспечивают полной информации о всей среде си-
стемы. Для данного же класса неисправностей необходимо знать больше, чем локальные условия ошибки, потому что воздействие из внешнего источника на подозреваемое устройство является весьма распространенной причиной отказа. Данные, которые дополняют информацию о ситуации, в каждом случае собираются специальной программой. В эти дополнительные данные включаются: сведения об устройствах ввода-вывода, которые работали во время ошибки, время дня, название программы, операнды для данной команды, адрес команды в памяти и, если необходимо, номера лент и дисков. Эта информация в сочетании с автоматически записанными данными образует страницу в описании среды во вспомогательном запоминающем устройстве1). Результат является полной, подробной, хронологической историей эксплуатации системы в форме^ пригодной для ввода в машину.
Чтобы помочь инженеру эффективно пользоваться этой информацией при эксплуатации, предусмотрена программа, которая соответствующим образом редактирует страницы описания среды. Имеются также программы, которые печатают информацию в форме, удобной для чтения, и программы поиска, которые просматривают записи и выделяют страницы, которые удовлетворяют признакам, указанным в стандартном запросе поиска. Например, инженер может запросить все страницы, относящиеся к устройству, имеющему указанный адрес, или все страницы, порожденные указанной схемой контроля.
Обход последствий ошибок — повторение команды
Пользователь системы совершенно безразличен к отказам машины, если они не мешают его работе. Например, если все неисправности обнаруживаются и устраняются в течение периода, когда он не пользуется системой, пользователь, как правило, удовлетворен. Опыт показывает, однако, что отказы не всегда имеют такое удачное распределение во времени. Когда отказы появляются в процессе нормальных рабочих периодов, пользователь может либо прекратить работу на машине, либо может (и часто это делает при отказах в блоках магнитной ленты, например) попытаться продолжить работу, обходя эффекты ошибок.
Обход последствий ошибок можно осуществить либо исключая из использования части системы, в которых только что наблюдались отказы, либо повторяя неверно выполненную обработку данных в надежде, что причина ошибки более не суще-
Вспомогательным (secondary) запоминающим устройством может быть либо магнитная лента, либо диски. — Прим. ред.
ствует. Первая возможность — правильный выбор для устойчивых отказов, а вторая — предпочтительна для отказов, симптомы которых неустойчивы. Эта вторая возможность называется повторением этапа (checkpointing).
Исключение неисправной части системы может быть сделано удачно, если система содержит достаточную избыточность, а характер работы таков, что функцию подозреваемой части может взять на себя другая часть или если функция, выполняемая подозреваемой частью, может быть временно исключена. Оба эти метода применялись довольно успешно к оборудованию ввода-вывода. Чрезвычайно неодинаковые требования различных программ к вводу-выводу создали избыточность как побочный результат. *
Метод исключения можно также применять успешно (правда, менее успешно) к области основной памяти. Исключение подозреваемой области основной памяти является целесообразным лишь в том случае, если машина связана с многими подсекциями составной памяти и вся подсекция, о которой идет речь, может быть исключена. Даже в этом случае отрицательное воздействие на работу системы значительно, так как в большинстве случаев программа, на которой произошел сбой, должна быть заново введена в другую область памяти и вновь начата либо с последнего этапа, либо с самого начала.
Однако такой частью машины, где метод исключения может использоваться с наименьшим успехом, является CPU. Устойчивый отказ приводит обычно к останову работы системы, если в системе одно CPU, и по крайней мере к коренному пересмотру работы в системе, имеющей более чем одно CPU. Изменение конфигурации системы для продолжения работы с исключением одного CPU требует специфичного планирования и программирования.
В прошлом обработка случайных ошибок CPU была не очень эффективной. Деление программы на сегменты в сочетании с выводами этапа и возвратами к этапу действительно выполняли обработку случайных сбоев, но со значительными потерями времени. Кроме того, при таком подходе требовалось значительное время для обнаружения устойчивого отказа.
Исключение не требуется при случайных сбоях в операциях ввода-вывода. Программы, управляющие вводом-выводом, уже давно допускают повторение на уровне операции, помимо повторения на уровне сегментов программ. При правильном программировании вся информация, необходимая для повторного выполнения операции ввода-вывода, сохраняется в конце операции.
Аппаратные средства, включенные в IBM-360 для решения других задач, создают новую благоприятную возможность для повторного выполнения команды CPU, в случае если обнаружена ошибка. Сохранение всей информации, необходимой для повторного выполнения операции после того, как обнаружена ошибка, является первым условием успешного повторения операции в CPU. Второе условие состоит в том, чтобы проявление неисправности было неустойчивым.
Например, в команде, которая пересылает из памяти в- регистр, первое условие удовлетворяется, так как операнд сохраняется в основной памяти. Однако, если неисправно запоминающее устройство на сердечниках, проявление ошибки будет устойчивым и повторение приведет опять-таки к отказу. Большинство команд нельзя повторить после того, как их выполнение завершено; порог повторения 9 для них наступает обычно после этапа выборки команды, на некоторой стадии ее выполнения.
Повторное выполнение команд налагает два требования на машину:
выполнение должно быть остановлено сразу же после обнаружения ошибки; таким образом, если порог повторения еще не достигнут, операнды не будут искажены;
когда машина остановлена, программе, которая решает, возможно или невозможно повторное выполнение, должна быть доступна достаточная информация о состоянии машины.
Как было показано ранее, схемы, которые удовлетворяют этим требованиям, обеспечили для IBM-360 средства записи ситуации. По сигналу схемы контроля состояние вычислительной машины «замораживается» и специальные цепи записывают подробное состояние CPU как группу разрядов в зарезервированную для этих целей область основной памяти. Программа, которая записывает в память информацию о ситуации, кроме того, анализирует эту информацию, определяет, возможно ли повторение, и считает количество попыток повторения. Если порог повторения пройден или эффекты неисправности устойчивы, повторение бесполезно. Эта программа занимает доли секунды по сравнению с минутами, необходимыми для возврата к предыдущему этапу, что сопровождается повторным выполнением программы.
Полная эффективность описанных средств зависит от доли всех случаев сбоев, для которых порог повторения не достигнут и для которых неисправности не являются устойчивыми. Для данной машины порог повторения изменяется от команды к
') Порогом повторения команды является стадия ее выполнения, после которой некоторые исходные операнды оказываются измененными.
команде, так что успех повторения очень чувствителен к набору команд, на котором он (успех) измеряется. Используя грубое предположение, что неисправности во всех циклах равновероятны и что использование команд подчиняется нормальному распределению, более 50% повторений будет успешным для моделей IBM-360, в которых описанные средства работают наи- -лучшим образом. Изменения в наборе команд могут снизить этот процент, по-видимому, до 35% или увеличить его до 80%.
Уменьшение количества случайных сбоев
Если ошибки, которые иными способами обычно обрабатываются как случайные, можно было бы обработать как устойчивые, тогда среднее время для диагностики неисправностей можно было бы уменьшить. Это делается с помощью более полного и лучше управляемого испытания элементарных конструктивных блоков. Как обсуждалось ранее, процедура составления ТЛИ выполняется с помощью комплекса программ для IBM-7094. Эти программы подготавливают списки всех логических элементов, которые тестируются непосредственно, и элементов, которые не тестируются. Это позволяет сильно увеличить охват непосредственно тестируемых элементов. А такое расширение охвата позволяет обрабатывать как устойчивые многие отказы, которые при других методах обычно относятся к случайным.
Кроме того, если любой из ТЛН обнаружит ошибку хотя бы -один раз, немедленно будет получен список подозреваемых цепей. Ячейки, содержащие эти цепи, можно профилактически заменить, исходя из эксплуатационной предосторожности.
Подводя итог, мы видим, что количество случайных ошибок значительно уменьшено за счет дополнительных схем управления, позволяющих иметь перед собой симптомы, указывающие подозрительное поведение, а также за счет обеспечения более качественной документации, которая используется, когда обнаружена ошибка.
ОБЪЕДИНЕНИЕ ЭКСПЛУАТАЦИОННЫХ ПРОГРАММ В КОМПЛЕКСМАШИНА/ПРОГРАММА-МОНИТОР — СТАНДАРТИЗАЦИЯ ПРОЦЕДУР
ОБСЛУЖИВАНИЯ
Условия, в которых будут использоваться эксплуатационные программы IBM-360, можно описать, так сказать, в двух «измерениях». В простейшем случае эксплуатационной программе в процессе ее работы доступны все средства системы. В более сложных условиях программа должна ограничить себя подмно-
жеством системы, в которой она используется, и быть готовой передать управление операционному монитору сразу же после появления событий, внешних к используемому подмножеству и требующих быстрого ответа. Таким образом, первым «измерением» является присутствие или отсутствие монитора. Второе «измерение» характеризует, имеется в системе одно CPU или более чем одно.
Совместимость программ, использование общего набора устройств ввода-вывода и блоков управления во всех моделях и наличие основных блоков памяти в различных моделях ставит целью составление единого набора эксплуатационных программ^ как основы для наладки и эксплуатации этих устройств во всех моделях. Чтобы оставить программы для данного устройства в основном неизменными при изменении окружения, в котором находится устройство, было решено вставить буферную программу между программами для каждого устройства и внешней средой и в то же время передать в эту программу, называемую диагностическим монитором, те средства (стандартные* функции), которые являются общими для программ многих устройств. Таким образом, проблема объединения комплекса эксплуатационных программ свелась к задаче подбора диагностического монитора для этого комплекса.
Необходимость работы и в среде, состоящей только из машины, и в среде, управляемой монитором, а также решение централизовать общие функции привели к включению в диагностический монитор следующих средств: а) самозагрузка через операцию начальной загрузки программ; б) установка системы в начальное состояние; в) предварительная обработка прерываний и их распределение по диагностическим программам для устройств; г) декодирование поступивших извне сообщений и* выполнение по ним соответствующих действий; д) распознавание приоритетных прерываний1); е) загрузка диагностических программ для устройств; ж) управление последовательностью, в которой обрабатываются устройства, включая случаи, когда несколько устройств работают одновременно, и з) управление выбором работы (например, выдача описания ошибки на печать).
Главным образом потому, что малые модели IBM-360 налагают серьезные ограничения на размер диагностического монитора, а также чтобы свести к минимуму требования диагности-
9 Приоритетным прерыванием считается прерывание, которое возникает- вне области, заданной диагностическому монитору операционным монитором. Без всяких исключений приоритетное прерывание вынуждает диагностический" монитор немедленно возвратить управление из своей области операционному^ монитору.
ческого монитора на память при распределении системы операционным монитором, делается несколько диагностических мониторов. Они составляют семейство в том смысле, что диагностические мониторы обладают свойством совместимости снизу вверх. Уменьшение размера достигается за счет уменьшения числа возможностей и обеспечения некоторых из них в более простой форме.
Начальные варианты трех членов семейства диагностических мониторов работали на прототипах IBM-360 с конца 1963 г.
С точки зрения диагностического монитора проблема приспособления к изменяющимся средам является в основном проблемой связи с внешним миром. В этом контексте внешний мир, естественно, распадается на четыре части: диагностические программы устройств, программы операционного монитора, другие диагностические мониторы (в других CPU), а также операторы и инженеры.
Всякая связь со своей средой осуществляется диагностическим монитором через стандартное сопряжение программ. В том виде, как это используется здесь, сопряжение программ состоит из средств для передачи запросов (передача управляющей информации) и средств для передачи параметрических и других данных. Эти сопряжения являются стандартными в том смысле, что они идентичны во всех диагностических мониторах семейства.
Сопряжение диагностический монитор!диагностическая программа устройства решает проблему объединения в одну систему комплекта диагностических программ для устройств, которые сделаны независимыми проектными группами, и проблему использования с различными мониторами одних и тех же диагностических программ для устройств. Общее согласование достигается в самом начале при определении этого сопряжения, и затем все программирование подчиняется этому стандарту.
Часто используемые функции реализуются как подпрограммы в диагностических мониторах, где они доступны диагностическим программам устройств через сопряжение.
Через это же сопряжение диагностический монитор влияет на управление выбором работ. Диагностический монитор приводит к некоторому нормализованному виду команды, направляемые диагностическим программам устройств из внешнего мира так, чтобы независимо от первоначального вида сообщения программам устройств всегда передавались стандартным образом.
Сопряжение диагностический монитор!операционный монитор обеспечивает решение проблемы подбора нескольких диагностических мониторов к большому числу операционных мониторов.
Именно с практической точки зрения важен тот факт, что составление операционного монитора и составление диагностического монитора не нужно тщательно согласовывать по времени. Но, возможно, наиболее замечательным преимуществом является то, что потребитель, который делает свой собственный операционный монитор, может подключить соответствующий комплекс эксплуатационных программ IBM к своей системе, просто включая в свою программу блок, который обеспечивает это сопряжение «со стороны» операционного монитора.
Именно через это сопряжение операционный монитор дает запросы на работу диагностического монитора. В такой запрос на работу включается определение области диагностического монитора и устройств системы, которые следует проверить. Управление из указанной области через это же сопряжение возвращается операционному монитору после нормального завершения запроса на работу и при возникновении приоритетного прерывания. Результаты заказанной работы передаются через сопряжение в то же время, когда возвращается управление.
Сопряжение диагностический монитор)диагностический монитор необходимо при работе нескольких диагностических программ устройств под согласованным управлением более чем одного CPU. При таком применении диагностический монитор должен быть в каждом CPU. Эти диагностические мониторы связаны один с другим через сопряжение диагностический мони- тор/диагностический монитор.
Сопряжение диагностический монитор (человек обеспечивает единый набор процедур и сообщений, которыми может пользоваться оператор и инженер при запросах и управлении работой обслуживающих программ на любой машине IBM-360.
Именно через это сопряжение могут указываться вручную выборы работ и печататься выходные сообщения. Благодаря этой возможности человеку не требуется узнавать и изучать неизбежные индивидуальные различия, которые появляются в программах для диагностики устройств. Это стандартное сопряжение облегчает обучение пользователя процедурам применительно к любым установкам IBM-360 независимо от модели, что особенно ценно при обучении процедурам обслуживания системы такой конфигурации, в которой представлено несколько различных моделей.
ЗАКЛЮЧЕНИЕ
Для обеспечения эксплуатационной надежности системы IBM-360 предполагалось решить с помощью дополнительного стандартного оборудования следующие проблемы:
обнаружение ошибок (при передаче данных и в управлении);
«замораживание», а затем перепись в основную память «фотографии» внутренних элементов CPU, которые определяют состояние машины в данный момент;
передача управления программы к специфическим местам монитора при данных сигналах;
установка внутренних элементов CPU в состояние, заданное в основной памяти;
выполнение указанного количества циклов при независимом управлении;
сравнение фактического состояния машины с требуемым состоянием;
управление этим оборудованием с помощью специальных команд или независимых схем.
Как указано в тексте, не всякая модель имеет все возможности.
В дополнение к этому оборудованию были составлены следующие новые программы и процедуры:
Использование машины IBM-7094 при: 1) подготовке примеров для тестирования почти всех элементов CPU в IBM-360 (в больших моделях), 2) упорядочении последовательности тестов на магнитной ленте или дисках, чтобы добиться локализации схемных неисправностей до нескольких сменных схемных ячеек, и 3) составлении документации, в которой указываются подозреваемые ячейки, и обновлении ее при инженерных изменениях.
Использование ПЗУ как хранилища для диагностических программ в малых моделях, чтобы I) проверить схему в пошаговой (от такта к такту) работе на полной скорости машины, 2) локализовать ошибку после обнаружения, используя схемы киигриля, И 3) ПОЗВОЛИТЬ ЭТИМ Й^Ограммам пользоваться при работе переключателями инженерного пульта.
Использование ТЛН (в больших моделях) или проверочных процедур из ПЗУ для диагностики системы с индикацией часто повторяющихся ошибок.
Программы, работающие как часть операционного монитора, чтобы 1) обеспечить запись ситуации, при которой произошла ошибка, 2) использовать запись состояния машины при желании повторить команду и 3) использовать диагностический монитор при проверке той части машины, которая указана оператором или операционным монитором.
Программы, работающие независимо, которые 1) при ошибке анализируют возникшую запись ситуации, чтобы помочь инженеру в диагностике случайного сбоя, и 2) эффективно упра-
вляют диагностическими процедурами с помощью диагностического монитора.
После того как первоначальный период обучения прошел, эта заранее разработанная совокупность аппаратных и программных процедур направлена а) на уменьшение максимальной продолжительности ремонта, б) на уменьшение средней и медианной продолжительности ремонта и в) на подбор единого комплекса эксплуатационных программ и процедур для широкого спектра программ операционных мониторов и моделей машины.
ДОПОЛНЕНИЕ
Контрольные и диагностические процедуры, которые основываются на анализе схем вычислительной машины, осуществимы только в том случае, если этот анализ выполняется автоматически. Первые программы для выполнения такого анализа были сделаны Рутом и др. [7] и Форбзом и др. [6]. Методика выполнения анализа для вычислительной машины в целом (в противоположность логике без обратных связей) и формулировка требований к оборудованию, необходимому для реализации этих тестов для всей системы, были впервые описаны Малингом и Алленом [4]. Эти методы были успешно использованы для анализа таких систем, как IBM-1418, 1419, 1428, и таких особенностей машины, как защита памяти для IBM-7094 в MIT1). Знания, накопленные при составлении и использовании этих первых систем, послужили для внесения улучшений в эти системы. Новая система использует в качестве входной информации ленту, содержащую Основной Логический Массив Автоматического Проектирования [8]. Кроме того, она может анализировать вдвое с лишним больше логических схем, чем преды- Д¥" ° ™ K<r-T " nawd nnu rnnuY ВПЗППОТТШХ ВОЗМОЖНОСТЯХ требует меньше вычислительного времени на IBM-7094.
Общая блок-схема комплекса программ для составления ТЛН показана на рис. 3. Информация, определяющая логическую структуру сетей вычислительной машины, извлекается из Основого Логического Массива. Затем по структуре связей определяется структура схем комбинационной логики, информация о физическом местоположении схем отделяется от логической информации и последняя преобразуется в форму, которая удобна для анализа. (Здесь не упоминаются многие программы, необходимые для вывода на печать и для анализа ошибок.)
Следующая часть программы состоит из блоков для эвристического анализа схемы логического дерева. Блоки просма-
j) MIT— Массачусетский технологический институт. — Прим. ред.
Рис. 3. Комплекс программ для составления тестов, локализующих неисправность Этот комплекс используется на IBM-7094 для предварительного вычисления примеров тестов.
тривают схему вперед от предполагаемой неисправности к выходу дерева и назад до входов. На каждом этапе логические значения, определяемые элементами схемы, присваиваются линиям. Это может привести к логической несовместимости и к отказу от данной попытки. Входы сети указывают комбинацию входных условий, с помощью которых можно определить, что конкретная тестируемая линия работает правильно. Анализируется каждая входная и выходная линия для элемента схемы.
После того как составлен пример, проверяется, какие линии он в действительности тестирует и тестирует ли какие-нибудь линии, не проверенные ранее. Составление и проверка продолжаются до тех пор, пока не получен набор тестов, который будет указывать неисправные элементы.
Тесты сами по себе не обязательно обеспечивают разбиение, достаточное, чтобы локализовать неисправный элемент. Однако после того, как их организуют в последовательность в форме дерева решений, требуемое разбиение достигается.
Последняя из комплекса программ переводит деревья решений и соответствующие примеры в данные для тестов. Эти данные преобразуются в форму, соответствующую конкретным тестирующим схемам, используемым в тех или иных моделях IBM-360.
ЛИТЕРАТУРА
Malin g К., Classes of Component Failures and a System Design to Facilitate Their Location, IBM Data Systems Division Technical Report TR 00.1029. (Rev. March 10, 1964).
D a v i s E. M., H a r d i n g W. E., S c h w a r t z R. S., С о r n i n g J. J., Solid Logic Technology: Versatile, High-Performance Microelectronics, IBM L, 8 (1964), 102.
В e n n e t C. A., Application of a Learning Curve to a Maintenance Problem, 2-nd Annual Quality Control Symposium of the Dallas-Fort Worth Section of the ASQC, 1961, 16.
M a 1 i n g K., Allen E. L., Jr., A Computer Organisation and Programming System for Automated Maintenance, IEEE Trans. Electr. Comp. EC-12, № 6 (1963), 887. См. настоящий сборник, стр. 191.
Eldred R. D., Test Routines Based on Symbolic Logic Statements, J. ACM, 6, № 1 (1959), 33—36.
Forbes R. E., Stieglitz С. B., Muller D., Automatic Fault Diagnosis, AIEE Conference on Diagnosis of Failures in Switching Circuits, 1961, 15—16.
Galey J. M., Norby R. E., Roth J. P., Techniques for the Diagnosis of Switching Circuit Failures, Proc. 2-nd Annual Switching-Circuit Theory and Logical Design Symposium, AIEE, 1961.
Case P. W., Graff H. H., Griffith L. E., LeClerq A. R., Mur- Ie у W. B., Spence T. M., Solid Logic Design Automation for IBM System/360, IBM J., 8 (1964), 127. См. настоящий сборник, стр. 162.
Amdahl G. M., В 1 a a u w G. A., Brooks F. P., Jr., Architecture of the IBM System/360, IBM J., 8 (1964), 87. См. настоящий сборник, стр. 101.
Автоматизация проектированиявычислительных системс использованием логическихсхем на твердом теле1)
П. Кейс, Г. Графф, Л. Гриффит, А. Ле-Клерк, У. Мерли,Т. Спенс
Эта статья описывает отличительные черты ряда программ для IBM-7090, которые помогают инженерам в проектировании систем, использующих логические схемы на твердом теле. Эти программы применялись при проектировании системы IBM-360.
ВВЕДЕНИЕ
Для эффективного использования способностей инженера при разработке современных цифровых систем стала необходимой автоматизация проектирования. Проектирование таких систем связано с переработкой огромного количества информации и получением документации к проекту. При отсутствии автоматизации от инженера требуется не только выполнение его основной задачи по определению внутренней логической структуры системы, но также осуществление вручную всей скучной, однообразной работы по детализации, вычерчиванию и проверке своих схем.
Идея автоматизации проектирования цифровых систем рассматривалась ранее [1]. Согласно этой идее, инженер должен составить грубый план размещения логических элементов для системы, которую он проектирует. Как только он сделает это, использование вычислительной машины может помочь на всех дальнейших стадиях детализации проекта и обеспечить получение документации о состоянии проектирования на каждой из этих стадий. Базой для этого процесса является Основной Массив, который хранится на магнитной ленте и служит основным показателем состояния проекта аналогично ранее использовавшимся чертежам инженера. Автоматическая печать логических схем, производимая вычислительной машиной, заменяет устаревший процесс получения синек.
!) Case Р. w., Graff Н. H.r Griffith L. Е., LeClerq A. R., М u г 1 е у W. В., S р е п с е Т. М., Solid Logic Design Automation, IBM Journal of Research and Development, 8, № 2 (1964), 127—140.
АВТОМАТИЗАЦИЯ ПРОЕКТИРОВАНИЯ СИСТЕМЫ IBM-360
Логическое проектирование
Создание IBM-360 потребовало применения новых методов автоматизации проектирования. Поскольку основными целями при разработке системы IBM-360 были высокое качество и полная совместимость различных моделей [2], что, естественно, привело к увеличению объема и сложности логического проектирования, становится очевидной необходимость более эффективной переработки информации в процессе проектирования. Очевидна также необходимость в эффективных процессах получения документации к проекту.
Поэтому, помимо известных ранее методов хранения и накопления данных о проекте, а также использования печатаемых вычислительной машиной логических страниц, в процедуру проектирования для уменьшения нагрузки на инженера были включены новые возможности, увеличившие способность вычислительной машины использовать данные на главной проектировочной ленте для производства различных документов. Это позволило исключить много ошибок, появлявшихся раньше из-за участия человека.
Для того чтобы проектировщики IBM-360 могли оценить свои логические схемы до конструирования аппаратуры, реализующей их, был разработан ряд моделирующих программ. Некоторые особенности этих программ дают большую гибкость действий, чем предшествующие моделирующие программы.
Вопросы компоновки
На ранней стадии планирования системы было решено, что IBM-360 должна использовать новый способ компоновки схем, названный Технологией Логики на Твердом Теле (ТЛТ). Это решение послужило основным мотивом для разработки метода автоматического проектирования, описанного в этой статье.
Как было описано Дэвисом и другими [3], микроэлектронные схемы ТЛТ заключены в модули. От 6 до 24 таких модулей монтируются в ячейках различных стандартных размеров. Печатные проводники на обеих сторонах ячейки связывают выводы модуля с контактами разъема в основании ячейки. В свою очередь ячейки устанавливаются на больших монтажных панелях, при этом контактные штырьки панели попадают в разъемы ячеек. Большие панели также несут двусторонний печатный монтаж.
Связи между большими панелями выполнены при помощи плоских гибких кабелей [4]. На рис. 1 показаны ячейки, установленные на большой панели. Предварительно спроектирован-
164 П. Кейс, Г. Графф, Л. Гриффит, А. Ле-Клерк, У. Мерли, Т. Спенс
ные ячейки с прикрепленными модулями являются наименьшими конструктивными единицами, с которыми работает проектировщик IBM-360.
Рис. 1. Ячейки, установленные на большой монтажной панели.
Были разработаны новые программы: 1) для распределения каждого блока логической схемы по ячейкам, 2) для присвоения меток тем контактам в разъемах ячеек, которые соответствуют входным и выходным цепям блоков на логической схеме, 3) для размещения каждой ячейки на большой панели, 4) для расчета маршрутов, последовательности укладки, расположе-
ния изгибов и длин плоских кабелей, связывающих большие панели.
Другие программы были созданы для автоматического определения конфигурации печатных проводников на больших панелях.
ПРОЦЕСС НАКОПЛЕНИЯ ИНФОРМАЦИИ ПРИ ЛОГИЧЕСКОМПРОЕКТИРОВАНИИ
Процесс накопления информации при логическом проектировании осуществляет регистрацию текущего состояния проектирования машины на каждой стадии разработки. Первичным документом такой регистрации является напечатанная вычислительной машиной логическая схема, такая, как показано на рис. 3.
Процесс начинается с того, что инженер дает чертеж, показывающий, как должна быть связана группа логических элементов (например, блоков И или ИЛИ для получения желаемой машинной функции). Этот чертеж делается в определенной форме, что дает возможность перенести его на перфокарты. Затем данные, пробитые на перфокартах, вводятся в IBM-7090 и сохраняются на магнитной ленте в Основном Логическом Массиве Автоматического Проектирования. Вычислительная машина также сразу печатает логическую схему, заданную инженером. Всякий раз, когда инженер вносит изменение в свою схему, изменяется Основной Логический Массив и печатается новая логическая страница. Как показано на рис. 2, другие программы будут последовательно получать данные прямо из Основного Логического Массива.
На всем протяжении процесса проектирования инженер получает полный набор свежих напечатанных вычислительной машиной логических страниц, описывающих проектирование системы. Эти страницы перенумерованы и озаглавлены, чтобы идентифицировать изображенную логическую функцию. Приведены названия и номера всех входных и выходных сигналов страницы. При печати каждый логический блок на странице снабжается 1) типом логической функции, выполняемой блоком (И, ИЛИ, НЕТ, ТРИГГЕР и т. д.); 2) идентификатором микроэлектронной схемы, представляющей блок; 3) числом, определяющим тип ячейки, на которой располагается схема; 4) обозначением, определяющим часть ячейки, на которой располагается схема; 5) координатами ячейки на большой панели и 6) обозначением клемм разъема ячейки, контактирующих со
Рис. 2. Схема использования программ автоматизации проектирования систем с использованием логических схем на твердом теле.
♦ NO»Wk адм—■♦ NO»Wk адм—■*"йи eeuoc"*"йи eeuoc"VO IHP<VO IHP<го, какжна в py нет воде в чально иден- м, свя- раммы :я, чтого, какжна в py нет воде в чально иден- м, свя- раммы :я, что
♦ NO»Wk адм—■
♦ NO»Wk адм—■
*"йи eeuoc"
*"йи eeuoc"
VO IHP<
VO IHP<
го, как
жна в py нет воде в чально иден- м, свя- раммы :я, что
го, как
жна в py нет воде в чально иден- м, свя- раммы :я, что
4 SINGLE MvM ROM"
O-MCOV * N0T 10 «ЯСО«> «SEQUENCE w#<oiv «у.» -
-лесе» «с»те roe
«-rCQZI >GOT ISC TO
—ЯСОИ «CLOC*«
[ческой
е пол
учила адана, Логи- нения аи пе-
овщи- >i. Это аужно писы- э прош но- фаба- такой части
*—^согь «сеч моа *-ГС0’5 «CLOCK тэ«
Зак. 1622
(страница АВ 101
приведены
двух логических страниц
и АВ405)
перед
Эл
/ ext СО.
Рис. 2. С сис
штырьками на большой панели. На рис. 4 дан пример того, как выглядит блок на логической схеме.
Хотя вся только что перечисленная информация должна в конце концов появиться на логической странице, инженеру нет необходимости определять ее всю при первоначальном вводе в Основной Логический Массив. Он может задать первоначально только названия входных-выходных сигналов и указать идентификаторы логических функций и микроэлектронных схем, связанных с каждым блоком на схеме; последующие программы будут помогать ему в дальнейшей детализации. Считается, что
Логическая функцияЛогическая функцияТОЗАВТОЗАВКонтакт ячейки для выходного сигналаКонтакт ячейки для выходного сигналаЧасть и подчасть ячейкиЧасть и подчасть ячейкиПозиция ячейки на большой панелиПозиция ячейки на большой панелиВ12В12ООООЕ^ A-c^gT тЗвТан-ООООЕ^ A-c^gT тЗвТан-Контакт ячейки для входных сигналовКонтакт ячейки для входных сигналовКоординаты блока на логической страницеКоординаты блока на логической страницеСтойкаСтойкаТип ячейкиТип ячейкиПанельПанельидентификаторсхемыидентификаторсхемы. Порядковыйномер блока. Порядковыйномер блока
Логическая функция
Логическая функция
ТОЗАВ
ТОЗАВ
Контакт ячейки для выходного сигнала
Контакт ячейки для выходного сигнала
Часть и подчасть ячейки
Часть и подчасть ячейки
Позиция ячейки на большой панели
Позиция ячейки на большой панели
В12
В12
ООООЕ^ A-c^gT тЗвТан-
ООООЕ^ A-c^gT тЗвТан-
Контакт ячейки для входных сигналов
Контакт ячейки для входных сигналов
Координаты блока на логической странице
Координаты блока на логической странице
Стойка
Стойка
Тип ячейки
Тип ячейки
Панель
Панель
идентификаторсхемы
идентификаторсхемы
. Порядковыйномер блока
. Порядковыйномер блока
Р и с. 4. Пример задания информации, связанной с блоком на логической
странице.
логика на этом раннем этапе «задана», так как ее действие полностью определено, несмотря на то, что она еще не получила конструктивного воплощения. После того как логика задана, контрольные программы проверяют проект из Основного Логического Массива на выполнение ряда критериев соединения схем. Эти программы будут показывать, например, есть ли перегруженные схемы.
Итак, логические страницы должны снабдить проектировщиков новейшей картиной состояния проектирования системы. Это утверждение предполагает, что на появление изменений нужно рассчитывать и эти изменения должны автоматически записываться на логические страницы. Для того чтобы упростить проблему внесения изменений, для IBM-360 были разработаны новые программы. Одна из этих программ автоматически обрабатывает изменения во взаимных связях страниц. Пример такой обработки дается на рис. 5. На рис. 5, а приведены части двух логических страниц (страница АВ 101 и АВ405) перед
Рис. 3. Пример логической страницы, нэпе
чатанной вычислительной машиной.
изменениями. Предположим, что инженер хочет использовать выходной сигнал страницы АВ 101 в качестве входного для блока на странице АВ405. Тогда он на странице АВ405, как показано на рис. 5, б, определяет входной сигнал, написав название стра-* ницы (АВ 101) и место на этой странице (блок CD, выход 4), где образуется этот сигнал.
АВ 101АВ 101kbAOS
АВ 101
АВ 101
8С2И8С2И♦ READY♦ READY-STOPAB230RS4-STOPAB230RS4ENG CHG 1ENG CHG 1ENG CHG 2ENG CHG 2Рис. 5. Пример, иллюстрирующий автоматическое внесение изменений в проект.(а) —страницы до изменения; (б) — измененная страница, представленная ицженером; (в) — страницы, выданные программойРис. 5. Пример, иллюстрирующий автоматическое внесение изменений в проект.(а) —страницы до изменения; (б) — измененная страница, представленная ицженером; (в) — страницы, выданные программой
8С2И
8С2И
♦ READY
♦ READY
-STOPAB230RS4
-STOPAB230RS4
ENG CHG 1
ENG CHG 1
ENG CHG 2
ENG CHG 2
Рис. 5. Пример, иллюстрирующий автоматическое внесение изменений в проект.
(а) —страницы до изменения; (б) — измененная страница, представленная ицженером; (в) — страницы, выданные программой
Рис. 5. Пример, иллюстрирующий автоматическое внесение изменений в проект.
(а) —страницы до изменения; (б) — измененная страница, представленная ицженером; (в) — страницы, выданные программой
Используя код сигнала (AB101CD4), вычислительная машина может найти в Основном Логическом Массиве, какое название дать сигналу ( + READY), и напечатать его на странице АВ405. Вычислительная машина также автоматически отразит на странице АВ 101 новое использование сигнала и перепечатает ее. Рис. 5, в показывает, как выглядят страницы после
того, как они были исправлены. Эта специальная программа осуществляет автоматический просмотр использования сигналов и немедленную переработку всех страниц в случае внесения изменений инженером. Это уменьшает количество информации, задаваемой вручную, и помогает избежать введения лишних и двусмысленных названий сигналов в проекте.
Стандартное кодирование названий сигналов последовательностями из восьми символов (называемых «номером сигнала») дает дополнительные преимущества на последующих стадиях проектирования. Например, облегчается проверка списков проводников и кабелей, так как все номера сигналов в списках непосредственно соответствуют логическим страницам, из которых они выходят.
Другое новшество программ Автоматизации Проектирования Вычислительных Систем состоит в обработке модификации проекта. После того как планирование основной системы закончено, производится запись модификаций этой системы, которые возникают при добавлении тех или иных черт, включаемых по выбору заказчика. Так как неизменяемая часть основной схемы не нуждается в дублировании, удается избежать избыточности и двусмысленности. Для каждой модификации автоматически печатаются результирующие логические страницы, на которых отражены соответствующие изменения основной логики. Одним из наиболее важных преимуществ обработки модификации проекта является то, что программы автоматически выдают измененные страницы, когда основная схема изменяется.
ЛОГИЧЕСКОЕ МОДЕЛИРОВАНИЕ
Проектирование логики IBM-360 было весьма эффективным благодаря использованию программ логического моделирования. Эти программы были созданы для того, чтобы дать возможность инженерам предсказать работу предложенных ими схем до того, как эти схемы будут реализованы. В эти моделирующие программы были включены некоторые новые черты:
Исследуемая логика при моделировании берется непосредственно из Основного Логического Массива.
Моделирующая программа может учитывать время прохождения сигнала и задержки переключения.
Моделирующая программа может обрабатывать петли логической обратной связи. .
Моделируемая логика просматривается только в те моменты времени, когда некоторые элементы изменили состояние.
При просмотрах проверяются только те элементы, которые, возможно, могут изменить состояние в будущем как результат изменения состояний в данный момент.
При использовании моделирующей программы инженер задает, какую часть логики он хочет исследовать. Так как логика уже находится в Основном Массиве, исходные данные для моделирующей программы берутся с ленты: это исключает необходимость вручную задавать логику для использования в моделирующей программе. Инженер должен также задать временной масштаб моделирования и моменты переключения в этом масштабе логических состояний входных сигналов.
Когда кодированная логика из Основного Массива вводится в моделирующую программу, она объединяется с данными с других магнитных лент, которые определяют задержки каждого логического блока. Эта комбинация данных транслируется в ряд кодированных уравнений, определяющих логическое состояние каждой схемы как функцию задержек и логических состояний других схем. Затем функциональные уравнения помещаются в часть памяти на сердечниках, которая используется моделирующей программой и называется функциональной таблицей.
Другая часть памяти содержит таблицу ссылок вперед. Для каждой логической схемы хранится список, перечисляющий все другие схемы, логические состояния которых зависят от данной схемы. Когда бы схема ни изменила свое состояние, моделирующая программа уходит на соответствующий вход в таблице. Она определяет, какие схемы могут в дальнейшем подвергнуться влиянию этого изменения. Поступая так, моделирующая программа исключает необходимость в просмотре каждой логической схемы во время теста, таким образом уменьшая время моделирования. Кроме того, эта черта делает возможным для моделирующей программы рассмотрение петель обратной связи в логических схемах.
Третья часть памяти занята таблицей событий переключения. Переключение сигнала в определенный момент времени называется «событием». События расписаны хронологически по временной шкале, заданной инженером. Первоначально в таблицу вносятся с соответствующими временами события, связанные с входными схемами. Например, инженер может задать, что вход схемы X переходит в состояние включено в момент времени 1 и в состояние выключено в момент времени 12.
Однако может случиться, что в соответствии с таблицей ссылок вперед событие в схеме X может повлиять на логическое состояние схемы Y. Затем в результате обращения к таблице уравнений для схемы Y может быть установлено, что схема Y переходит в состояние выключено через 4 единицы вре-
мени после того, как схема X перешла в состояние включено. Поэтому, когда в момент 1 произойдет событие «X перешло в состояние включено», это вызовет новый вход в таблицу событий. Это в свою очередь приведет к тому, что схема Y перейдет в состояние выключено в момент 5.
Так как переключение в момент времени 5 есть следующее событие в таблице, моделирующая программа затем определит, какое влияние окажет это событие на появление следующих событий, и внесет любое последующее событие в соответствующее место в таблице. Таким образом, таблица событий постоянно перерабатывается во время моделирования.
Благодаря использованию таблицы ссылок вперед и таблицы событий достигается значительная экономия памяти, так как обычно только около 1% логических элементов активны в каждый момент времени при прохождении теста. Таким образом, полное время моделирования уменьшается благодаря способности моделирующей программы 1) рассматривать логику только в те моменты времени, когда в ней происходит событие, и 2) рассматривать только те логические элементы, которые влияют на события.
Результаты моделирования выдаются инженеру в форме или временной диаграммы, или последовательностной диаграммы. Чтобы выдать временную диаграмму, моделирующая программа печатает состояние каждой схемы через равные промежутки времени. При выдаче последовательностной диаграммы печать производится только в моменты времени, соответствующие событию.
На рис. 6 показаны последовательностные диаграммы для логической страницы, приведенной на рис. 3. Левая часть диаграммы — список всех схем в этой логической странице, для которых нужны диаграммы. Три одинаковые колонки печатаются после того, как одна или более схем, для которых выдаются диаграммы, изменят состояние. В данном ряду колонки происходит печать, если соответствующая схема в состоянии включено в рассматриваемый момент. Временной масштаб внизу диаграммы указывает моменты времени, в которые произошло событие.
Временные диаграммы моделирующей программы, которые могут показать состояние свыше ста схем, можно сравнить с наблюдением экрана многолучевого осцилографа, подключенного к каждой схеме. Изучая такие диаграммы, инженеры часто способны опознать нежелательную временную ситуацию и исправить свою схему до какого бы то ни было осуществления ее в конструкции.
Временнаясикала
Результаты моделирования
МС041ВВ* 1 МС013001 2 МС037МЙ з МС013»С* 4 МС041ВС* 5 МС013*8* 6 МС013АА4 7 ^С01У0<* 8 МС013ЙН* 9 МС013А** 1 исоиве* 2 псоззои* з МСО13*М* 4 MCO13*L* 5 «СО13ОТ* 6 «СОиВНа 7 МСО13ВР* 8 HC013AR* 9 1*1001300* 1 •ХО13ВЕ* 2 «СО13ВС* 3 *XO13QU<* * MCO13OF* 5 МСО13ВГЙ 6 МСО13В5* 7 MCO13OJ* в MCO11BG* 9 МСО13ВОМ 1
МС013ОШ* 2 MC013*L* 3 МС013ВС* 4 MC013AV* 5 NC0139Q4 b
11111111111111111111111111111111ii11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111 222222222222222222222222222222222222222222222222222222222222222222
***4*********4**4*4*4**4**4*4*****444*444**4**44464*44****444444*4*4444*444*4*44*44444*444444444*4*444*444*****6*4***444М^4646*6*669 666666666666666666666666666666666666666666666666666666666666666660666666666666666666666666666666666666666666666666666666666666666666 ТП7П777777777777777777777777777777777777777777777777777777777
888888868888888868888868868888868888888888888668888888868888888688
999999999999 ~999999999999999999999999999999999999999999999999999999999999999998
111111111111111111111111111111111111111111111111111111111111111
333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333 4*4444444444444444444444444444444444444444444444444444-*4*4444444444444444444444444444**4**4*44444**444444
5555555555555555555555655555S5555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555553 666666666666666666666666666666666666666666666666666666666666666666666666666
77777777777777777?777777777777777777777777777777777777777777777777
888888888888888888888886686886888888888888888888888888888886888886
996999999999999999999999999999998999999999999999999999999999999999999999999
222222222222222222222
222222222222222222332
333333333333333333
222222222222222222222
222222222223 333333333333333333333333333333
*4*4* *4444*4*44444444444444444444444444444444464444444444444*4444444*444444444446444444444444444464
555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
666666666666666666666666666666666666666666666666
888886888888888888888888888888888888888888888868886888888888688888888688888888888888888888888888388888886888888888888888888888888888 »99**9<ху)9*94**о*494994<)9*9<)д 99*499*99994*4* 999*999499*9994*9**9*99**99* 999*999999999999999999999999999°99999999999999999QA9O9* 9OQ**
222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222 3333333333333333333333333333333333333333333333333ззззззззззззззззззззззззззззззззззззззззз333333333333333333333333333333333333333333 4444*44**44*44 44**44444444***4*4*444444
555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555
Списоксхем
0 0 0 0 0 1 1 1 1 1 1 1.22 00358012357801 00000000000000
222223333333*4 2 3 5 6 8 0 1 2 3 5 7 8 0 2 00000000000000
44*4555555566666 3 5 6 8 0 1 2357802356 0000О000000О0О00
Рис. 6. Пример последовательностной
диаграммы,
полученной
в результате логического моделирования.
Только что описанная моделирующая программа способна промоделировать 3000—4000 логических элементов в течение 10—20 синхронизирующих тактов менее чем за 30 минут времени на IBM-7090.
ПРОГРАММЫ КОМПОНОВКИ И РАЗМЕЩЕНИЯ КАБЕЛЕЙ
После того как логика отработана, возникает проблема физической реализации этой логики. Как говорилось ранее, логика IBM-360 монтируется с использованием модульных схем ТЛТ. Вновь разработанные программы позволяют распределять логические элементы по стандартным ячейкам, присваивать метки контактов в разъемах- ячеек соответствующим входам логических блоков, размещать ячейки на больших панелях и определять требования к кабельным соединениям.
Распределение логики по ячейкам и панелям 1. Формирование логических групп
Программа разбиения просматривает логику, содержащуюся в Основном Массиве, и разделяет ее на группы блоков для дальнейшего распределения этих групп по ячейкам. Каждый логический элемент имеет на ленте идентификатор (например, Z03BB), который определяет стандартную схему IBM. Следовательно, этот идентификатор определяет и логическую функцию, реализуемую элементом, и электрические характеристики схемы.
Полная библиотека ячеек, используемых для монтажа, содержит много типов ячеек. Однако для простоты предположим, что библиотека содержит только три типа, показанные на рис. 7. На этом рисунке видно, что в ячейке 1234 смонтированы две схемы Z03BB. Одна схема находится в части А ячейки, а другая — в части В. Все входы и выходы схем связаны через разъем с монтажом на большой панели. В ячейке 6789 смонтированы четыре схемы. Схемы Z03AC связаны проводниками в самой ячейке со схемой Z03CC. Эти три схемы находятся в части А ячейки, в подчастях 1, 2, 3 соответственно. Внутренние связи в ячейке не выведены на контакты разъема и не могут иметь соединения с монтажом на большой панели. Схема Z03BB не связана в ячейке с другими схемами.
Совокупности схем, встречавшиеся в предыдущих двух ячейках, рассматриваются как «нефункциональные» части. Это связано с тем, что они представляют собой либо отдельную схему, либо совокупности схем, которые появляются в ячейке всегда вместе.
Третья рассматриваемая ячейка (ячейка 4567) имеет три схемы Z03BB, которые находятся в части А, подчастях 1, 2, 3. Так как Z03BB может также появиться в качестве самостоятельной схемы, как, например, в предшествующих ячейках,
603 —604 —603 —604 —006006605605608 —608 —Z03BBВ1Z03BBВ1еюею
603 —
604 —
603 —
604 —
006
006
605
605
608 —
608 —
Z03BB
В1
Z03BB
В1
ею
ею
Ячейка 1234
807807809809Z03BB 81Z03BB 81ОТООТО
807
807
809
809
Z03BB 81
Z03BB 81
ОТО
ОТО
Ячейка 6789
004
005 —005 —Z038B >-,Z038B >-,802 — А802 — А804804Z03BBА2Z03BBА2Z03BB АЗZ03BB АЗ808808010010007007Ячейка 4567Ячейка 4567
005 —
005 —
Z038B >-,
Z038B >-,
802 — А
802 — А
804
804
Z03BB
А2
Z03BB
А2
Z03BB АЗ
Z03BB АЗ
808
808
010
010
007
007
Ячейка 4567
Ячейка 4567
Рис. 7. Библиотека ячеек.
составная часть А называется «функциональной» частью.
Часть В ячейки 4567 снова является независимой схемой.
Важно помнить, что ячейки с установленными модулями доступны лишь как предварительно собранные блоки. Функция
Z03BB 4567АЗ А-В1А2
AF
Идентификатор схемы
Заранее присвоенный тип ячейке
Z03BB >
Z03BB >
AJ
AG
Метка контактаячейки
If— B03
804
Z03BB >D06 1234A1 I A-BfA3 AK-*
Рис. 8. Внешний вид логической схемы перед началом распределения.
вычислительной машины состоит в том, чтобы распределить блоки логической схемы по подходящим частям и подчастям в соответствующих ячейках.
Теперь предположим, что инженер хочет распределить по ячейкам логику, приведенную на рис. 8. На стадии проектирования, представленной на этом рисунке, инженер сам помещает блок АК в ячейку 1234, часть А, подчасть I, он сам помещает блоки АС, АЕ и AF в ячейку 4567, часть А, подчасти 1, 2, 3, все другие блоки должны быть распределены автоматически. (Из рис. 4 можно понять, какая информация содержится на логической схеме.) Распределение блока АК вручную продиктовано такими соображениями, как тепловой режим или электрические наводки.
Распределение инженером блоков АС, АЕ и AF было вызвано предпочтительностью использования в монтаже функциональных частей. В противном случае программы разбиения
Таблица 1
Номер группы
Логические блоки, составляющие группу
Название группы
Причины формирования группы
1
' AG
Z03BB
Этот блок не является предварительно распределенным. Критерий разбиения требует, чтобы группа состояла только из Z03BB и была реализована как отдельная часть ячейки
2
AJ
Z03BB
То же, что для группы 1
3
AL
Z03BB
То же, что для группы 1
4
AD, АА, АВ
Z03CZ
Критерий требует, чтобы эти три блока встречались всегда вместе в ячейке. Поэтому они рассматриваются как одна группа
5
АК
—
Этот блок не является кандидатом для разбиения, так как он предварительно распределен инженером
6
AF, АЕ, АС
Эти блоки не являются кандидатами для разбиения; они были предварительно помещены инженером в функциональную часть. Если бы этого не было, то при разбиении они рассматривались бы как три отдельные группы, подобные группе 1
могли бы выбрать нефункциональные части для монтажа этих схем.
Программа разбиения извлекает логику из Основного Массива и проверяет каждый логический блок с точки зрения ряда критериев разбиения, получаемых с другой ленты. Критерии используются для определения групп. Группы блоков, сформированные программой для данного примера, и причины формирования для каждой группы приведены в табл. 1.
Распределение групп по ячейкам
При следующем шаге размещения необходимо распределить каждую нераспределенную группу по ячейкам, используя процесс, описанный Хэспелом [5]. Прежде всего программа выбирает из библиотеки ячеек минимальный комплект ячеек, на котором возможно разместить все группы.
Затем вычислительная машина работает по стандартной программе, которая помещает в одну ячейку «связанные» между собой группы. Для этого произвольно выбирается одна из ячеек. Рассматривается «часть» в этой ячейке, в нее помещается группа. (Для простоты предположим, что предварительно распределенные группы отсутствуют.) Затем выбирается следующая часть ячейки и выбирается «наилучшая группа-кандидат» для размещения в ней. «Группа-кандидат» — это такая группа, конфигурация которой соответствует конфигурации данной части ячейки. «Наилучшей группой-кандидатом» будет «группа- кандидат», которая наиболее «связана» с уже размещенной группой. Наиболее «связанной» группой является такая группа, которая имеет наибольшее число соединений с размещенной группой (группами) и наименьшее число цепей, не связанных с размещенной группой (группами). Если этому критерию удовлетворяет более чем одна «группа-кандидат», делается произвольный выбор.
Теперь, имея две группы, размещенные по частям ячейки, вычислительная машина выбирает следующую часть и находит «группу-кандидата», наиболее связанную с двумя уже размещенными группами. Таким же образом каждая ячейка, выбранная из библиотечного комплекта, рассматривается по частям до тех пор, пока не будут размещены все группы. Конечно, в некоторых случаях число имеющихся в наличии частей может быть больше, чем число групп, которые нужно разместить, и тогда программа должна решить, какие из частей останутся неиспользованными.
Для логической схемы, приведенной в качестве примера на рис. 8, с помощью только что описанного процесса группы можно было бы распределить следующим образом:
Группа 1: ячейка 4567, часть В, подчасть 1.
Группа 2: ячейка 6789, часть В, подчасть 1.
Группа 3: ячейка 1234, часть В, подчасть 1.
Группа 4: ячейка 6789, часть А, подчасти 1, 2, 3.
Группа 5: распределена ранее.
Группа 6: распределена ранее.
Размещение ячеек на панелях
После того как группы распределены по ячейкам, следующим шагом процесса компоновки должно быть размещение ячеек на соответствующих панелях. Этот процесс во многом аналогичен процессу распределения групп в том смысле, что ячейки, которые связаны друг с другом, располагаются на одной и той же панели. Здесь понятие связанности ячеек имеет точно такой же смысл, что и связанность групп. Наиболее связанной ячейкой- кандидатом является ячейка, которая связана наибольшим числом цепей с уже размещенными ячейками и имеет минимальное число цепей, не связанных с размещенными ячейками.
Присвоение меток контактам разъема
После завершения процесса компоновки в Основном Массиве имеется достаточно данных, для того чтобы произвести присваивание меток, которые устанавливают соответствие между контактами разъемов ячеек и сигнальными цепями для всех блоков логической схемы. Присвоенные метки контактов также записываются в Основной Массив.
На рис. 9 показано, как будет выглядеть логическая схема, приведенная на рис. 8, после того, как будут произведены все виды размещений. Из этой схемы видно, что каждому логическому блоку приписаны часть и подчасть в ячейке, что присвоены метки контактов, что ячейки распределены по большим панелям и, наконец, ячейки размещены по гнездам разъемов на больших панелях. Последнюю проблему еще предстоит рассмотреть.
Размещение ячеек на большой панели
Соединения между ячейками выполняются с помощью печатных проводников, полученных травлением на большой панели. Поскольку выполнение печатного монтажа включает в себя задачу выбора маршрутов сигналов и требует, чтобы связи между ячейками были как можно более короткими для хорошей работы схем, то желательно максимально использовать ту гибкость, которой обладает размещение ячеек на панели. Программа размещения определяет позиции ячеек на панели.
из
203СС
6789АЗ
А-В182
AD
004> OR
Z038B 4567А1 D05> А-В1А2 1АС -
OR
602 > OR
"IZ03BB
4567А2 г ВО4 > А-В1А2'
>810-1 Iд£_
Метка контактаразъема
A
Z03BB >808 45ЫАЗ I А-В1А2 I
ApJ
— BO7
60^
г Тип ячейки(присвоенной)
Z03BB />009 — 456781 |;
A-B1A2^* '
A
Z03BB >то 678981 I А-В1В2 AJ-J
^ Стоика, панель апозиц ия (присвоенные)
803
A
804
— 805
808
Z03BB >006 1234А1 1
А-В1АЗ
АК-»
Z0388 >810 f 23481 I
А-В1АЗ AL-»
Рис. 9. Внешний вид логической схемы после частичного размещения (ячеек) и присвоения меток контактам разъемов
В распоряжении инженера имеются две основные программы размещения: алгоритмическая программа и программа обмена. Они могут быть использованы независимо или последовательно. Поскольку иногда инженер захочет сам точно задать место некоторых ячеек из большого набора, в обеих программах на этот случай предусмотрены соответствующие возможности. Программы дают приоритет предварительным указаниям и будут размещать ячейки в оставшиеся гнезда.
Алгоритмическая программа
Для выполнения размещения по алгоритмическому методу программа прежде всего выбирает одну панель из ранее выбранного комплекта панелей. Затем она составляет список всех ячеек, которые должны быть размещены на этой панели, и другой список всех свободных гнезд панели. (Гнездо считается свободным, если оно не было занято при предварительном распределении или если оно не было исключено инженером из числа свободных.)
Предположим, например, что одна из ячеек размещена в гнезде инженером. Тогда эта ячейка и это гнездо отсутствуют в таблицах. Далее программа выбирает из таблицы ячейку Сг и по очереди пытается поместить ее в каждое гнездо Sj. Каждый раз, когда вычислительная машина выбирает комбинацию ячейка-гнездо CtSj, она отмечает местоположение всех контактов, которые участвуют в связях с уже занятым гнездом (гнездами) и гнездом, которое рассматривается. Затем она вычисляет полупериметр наименьшего прямоугольника, в который можно вписать все контакты связей схемы, общей для обоих гнезд. Если существует более чем одна общая схема (обычно так и бывает), вычислительная машина рассчитывает полупериметры описанных прямоугольников для каждой схемы и складывает их.
Такая сумма Nij определяется для всех возможных комбинаций ячейка-гнездо СД. Из всех Ni3 выбирается сумма Npq> такая, что
^ =max[min(2Vv)J.
На основе этого критерия ячейка Ср помещается в гнездо Sg; определенные таким образом ячейка и гнездо вычеркиваются из таблиц, и процесс повторяется до тех пор, пока не будут размещены все ячейки. На практике алгоритмическая программа размещает 80 ячеек по гнездам на панели в течение 10 мин при использовании машины IBM-7090.
Программа обмена
После того как все ячейки размещены по гнездам, программа обмена пытается улучшить монтаж панели. Коэффициент монтажа равен сумме всех N^ где каждое N^ рассчитывается вышеуказанным способом. Чем ниже этот коэффициент^ тем лучше монтаж панели.
Пытаясь улучшить монтаж, вычислительная машина пробует поменять местами каждую ячейку с каждой другой ячейкой на панели. При каждом пробном обмене вычисляется величина ^N^. Если в результате вычислений получается сумма, меньшая, чем та, которая была получена при предыдущем размещении, оставляется вновь полученное размещение ячеек. Процесс обмена продолжается до тех пор, пока не будут отсутствовать замены, которые дают меньшую величину ^N^. Инженер использует коэффициент монтажа для сравнения эффективности различных способов размещений. Практически программа обмена занимает на машине IBM-7090 от 15 до 40 мин для того^ чтобы оценить монтаж панели с 60 ячейками и выполнить перераспределение.
Программа размещения кабелей
Использование плоских кабелей ставит перед проектированием новые задачи для получения эффективной и правильной монтажной схемы. Необходима весьма точная информация относительно длины и расположения изгибов. Кроме того, порядок укладки и маршруты следования (кабелей) должны быть
Рис. 10. Схема блока кабелей.
такими, чтобы общая толщина нескольких кабелей не превышала величины поперечного сечения кабельного канала, и такими, чтобы кабели, выходящие из канала в данной точке, располагались в той же относительной последовательности, что и разъемы, с которыми они соединяются.
Программа размещения кабелей рассчитывает по известным конечным точкам порядок укладки, изгибы и длины плоских кабелей. Для того чтобы это осуществить, имеется дополнительный вход связи с инженером, который рисует схему блока кабелей, как показано на рис. 10. Эти схемы содержат пары
блоков, которые устанавливают соответствие между каждым кабелем и разъемами на большой панели, которые кабель использует.
В первую очередь программа размещения кабелей рассматривает те кабели, которые соединяются с гнездами, расположенными наиболее близко к кабельным каналам, и помещает их в таблицу «доступных» кабелей. Из этой группы выбираются те кабели, которые могут быть расположены единственным образом. Анализ путей этих кабелей вместе с выбором соответствующих изгибов, когда направление кабеля меняется, определяет их первоначальное размещение в каналах. По мере размещения кабелей добавляются другие гнезда и к списку «доступных» добавляются новые кабели. Когда все кабели размещены в каналах, подсчитывается суммарное число полученных в канале пересечений. Эта величина используется для выбора расположения кабеля в случае существования различных путей, которые желательны в равной степени. При размещении кабеля подсчитывают длины, чтобы отметить места изгибов. Каждый подсчет используется для того, чтобы определить в процессе изготовления кабеля отметку, которая показывает, где необходимо изогнуть кабель, если указано изменение направления, или где необходимо укрепить кабель (или набор кабелей) для получения дополнительной опоры.
После завершения размещения комплекта кабелей изготавливаются магнитные ленты, которые используются в процессе производства. Главные преимущества, вытекающие из использования этих программ, состоят в точности получаемых данных и в уменьшении доли ручного труда и стоимости проектирования.
Хотя методы, описанные выше и имевшие целью облегчить проектирование, весьма важны, тем не менее наиболее существенной помощью при проектировании в условиях использования инженером логических схем на твердом теле является подготовка к выполнению печатного монтажа панели. Этот вопрос рассматривается в следующей главе.
ПРОЕКТИРОВАНИЕ ПЕЧАТНОГО МОНТАЖА НА ПАНЕЛИ
Определение конфигурации печатных проводников на панели является завершающим и наиболее важным шагом в процессе проектирования. В предыдущих главах было описано, как первоначальная логическая схема машины последовательно уточняется, испытывается, проверяется и распределяется по ячейкам. Так как каждая ячейка помещена в некоторое место на печатной панели, в результате имеет место строгая определенность в соединениях, которые необходимо выполнить между
контактами на панелях. Основная задача программ проектирования печатных проводников на панели состоит в подробном расчете конфигурации этих проводников.
Как и для описанных ранее программ, помогающих проектированию, источником информации для размещения проводников является массив на магнитной ленте, в котором находятся данные, накопленные при логическом проектировании. Это очень- важно, так как это обеспечивает абсолютную уверенность в том, что проводники и результаты логического проектирования соответствуют друг другу. Другим важным фактором, предусмотренным в программах, является способность сохранять «историю», т. е. архивные массивы данных о печатном монтаже. Использование этих массивов позволяет вносить изменения в данные о проводниках, что необходимо для перехода с одного уровня проектирования на другой.
В следующих разделах статьи полное расположение проводников на панели будет рассматриваться как «первоначальное проектирование монтажа», в то время как определение добавлений-выкидываний будет называться проектированием «изменений монтажа».
Конструкция панели с печатным монтажом
На рис. И в общих чертах показано, что представляет собой монтажная панель. Панель имеет две поверхности, на которых методом травления может быть получена система проводников. Связь между обеими поверхностями осуществляется с помощью сквозных отверстий. Некоторые из сквозных отверстий заняты штырьками, через которые сигналы поступают на панель или выходят из нее. Сквозные отверстия без штырьков называются «перемычками» и используются исключительно для связи между поверхностями панели. Отверстия расположены в виде прямоугольной матрицы 65x98, в этой матрице имеются группы 5X14, образующие гнезда. Каждое гнездо состоит из трех рядов перемычек и двух рядов штырьков.
Как показано на рис. 11, между соседними отверстиями размещается до трех печатных проводников. Печатные схемы получаются на машине с цифровым управлением, которая использует для экспонирования движущийся источник света. Дополнительные связи между штырьками могут быть выполнены навесными проводниками, которые накручиваются на штырьки со- стороны панели, противоположной укрепленным ячейкам.
Первоначальное проектирование печатного монтажа
Определение совокупности отрезков печатных проводников, которые реализуют требуемые соединения, представляет собой;
•сложную задачу главным образом из-за того ограничения, что можно использовать только две плоскости для печатных проводников.
Характерными особенностями программ, по которым рассчитывают конфигурацию проводников, являются следующие.
—— Верхняя поверхность*- - - - Нижняя поверхность—— Верхняя поверхность*- - - - Нижняя поверхностьРис. 11. Элементы панели с печатными проводниками.Рис. 11. Элементы панели с печатными проводниками.
—— Верхняя поверхность
*- - - - Нижняя поверхность
—— Верхняя поверхность
*- - - - Нижняя поверхность
Рис. 11. Элементы панели с печатными проводниками.
Рис. 11. Элементы панели с печатными проводниками.
Если требуют обстоятельства, инженер может предварительно задать путь проводника. Это позволяет иметь дело с особыми случаями. Поэтому программы в первую очередь рассматривают все такие вводимые вручную данные.
Печатные проводники в отличие от навесных могут иметь, как показано на рис. 12, несколько концов. Так как все вертикальные печатные отрезки расположены на одной плоскости, а горизонтальные отрезки на другой (для эффективного использования пространства), важно использовать, где это возможно, такие проводники с несколькими концами для уменьшения длины проводников и увеличения плотности монтажа.
Иногда порядок соединения штырьков в пределах схемы должен быть выполнен строго определенным образом для того, чтобы учесть параметры отдельных цепей. Поэтому в программах предусмотрено выполнение специальных правил расположения, связанных с назначением отдельных ячеек.
При расчете путей конкретных проводников последовательно применяются два различных метода. С помощью эвристического метода выполняется приблизительно 60% всех требуемых соединений. На это затрачивается 2—3 мин на машине IBM-7090. Метод движения по лабиринту [6, 7], который является исчерпывающим при нахождении свободных путей для оставшихся связей, обеспечивает выполнение в среднем около 95%
Рис. 12. Способы соединения трех штырьков
а — с использованием многоконцевых печатных проводников; б — с использованием навесных проводников; в — с использованием проводников типа «штырек-штырек».
всех связей. Это занимает на вычислительной машине примерно 30 мин. Оставшиеся 5% необходимых связей выполняются навесными проводниками.
Результаты исследования способов расположения проводников
В процессе разработки способов расположения проводников была выполнена большая экспериментальная работа для выяснения наилучшего способа. Некоторыми наиболее существенными результатами являются следующие:
Способ с использованием многоконцевых проводников оказался лучше, чем способ с использованием проводников типа «штырек-штырек» в смысле средней протяженности проводников и количества навесных проводников, необходимых для завершения всех соединений. В табл. 2 даны сравнительные результаты, полученные при использовании обоих способов. -
Обнаружено определенное преимущество при управлении очередностью, в которой монтировались различные схемы.
Таблица 2
Сравнение результатов использования многоконцевых проводников и проводников типа «штырек-штырек»
Номер панели
Число штырьков на панели
Число отдельных схем на панели
Число навесных проводников., необходимых для завершения монтажа
при использовании многоконцевых проводников
при использовании проводников типа «штырек-штырек*
1
961
314
0
3
2
1161
514
54
68
3
989
323
23
57
4
1113
297
164
203
5
1046
298
52
97
6
901
261
0
13
В среднем необходимо на 15% меньше навесных проводников, если схемы монтируются в порядке убывания размера, а не в случайном порядке. (Размер схемы определяется здесь как периметр наименьшего прямоугольника, который содержит все штырьки схемы.)
Как затраты машинного времени, так и требуемое число гавесных проводников значительно увеличивались, когда использовался только метод движения по лабиринту, по сравнению с тем, когда он использовался совместно с эвростическим методом.
Ограничения, накладываемые на программу движения по лабиринту, ведут к заметному уменьшению числа требуемых навесных проводников. Эти ограничения заключаются в уменьшении области, в которой разрешено работать программе в поисках свободных путей, и ограничении числа перемычек и длины печатных проводников, позволяющих завершить путь. Наилучшие результаты получаются при ограничениях на программу в начале работы, когда исследуются все требуемые соединения, в постепенном уменьшении ограничений при последующих итерациях.
Программы проектирования печатных проводников на панели, используемые при разработках IBM-360, выполнены так, что могут использовать вышеуказанные результаты наилучшим образом. Как и следовало ожидать, дополнительные затраты машинного времени по мере улучшения результатов проектирования становятся все менее эффективными. Параметры, которые управляют ограничениями и итерациями для каждой обра-
Таблица 5'
Влияние затрат машинного времени на характеристики монтажа
Характеристики панели
Результаты
1
N
2
Панель 1
Машинное время (в мин^
12
4
0,5.
Число штырьков
791
Число навесных проводников
12
16
ба
Число отдельных схем
280
Число использованных перемычек
915
898
718
Среднее число штырьков в одной схеме
2,32
Среднее число перемычек в одной схеме Средний полупериметр схемы (в дюймах)
3,36
6,75
3,34
6,77
3,01
6,85»
Панель 2
Машинное время (в мин^
37
18
2
Число штырьков
1050
Число навесных проводников
60
78
1за
Число отдельных схем
357
Число использованных перемычек
1319
1179
852
Среднее число штырьков в одной схеме
2,94
Среднее число перемычек в одной схеме
Средний полупериметр схемы (в дюймах)
4,27
8,64
3,94
8,69
3,37
9,11
Панель 3
Машинное время (в мин^
94
60
Т
Число штырьков
1299
Число навесных проводников
169
188
272’
Число отдельных схем
362
Число использованных перемычек
1653
1576
1099
Среднее число штырьков в одной схеме
3,58
Среднее число перемычек в одной схеме
Средний полупериметр схемы (в дюймах)
5,66
10,72
5,69
11,15
4,79
11,62
Примечания:
1 — набор параметров при значительных затратах машинного времени.
N — набор параметров при оптимальных затратах машинного времени (нормальный).
2 — набор параметров при небольших затратах машинного времени.
батываемой панели, можно регулировать с помощью управляющих перфокарт. В табл. 3 показаны результаты расчета проводников для панелей различной степени сложности с использованием трех наборов управляющих параметров.
Проектирование изменений монтажа
Вслед за завершением и выдачей первоначального проекта инженер сталкивается с проблемой внесения изменений в проект. Часто необходимо, чтобы такие изменения ограничивались модификацией существующего проекта, а не выполнением совершенно нового.
е Для этого программа проектирования печатных проводни- *ков на панели обладает способностью воспринимать добавления или удаления, которые должны быть сделаны в логике первоначального проекта. Затем' изменения в логике приводят к изменениям в ранее полученной конфигурации проводников, преобразуя ее в соответствующий новый вид.
Важнейшими особенностями этого процесса являются:
В первоначальном проекте удаляются только те проводники, которые не нужны.
Дополнительный требуемый монтаж добавляется так, чтобы вновь завершенный проект был пригоден для производства. Для увеличения эффективности этот процесс требует максимального использования печатных соединений.
Оба вышеуказанных процесса совершаются так, что этапы удаления и добавления проводников могут быть описаны и эффективно выполнены вручную для ранее полученной панели. Удаление вручную производится путем разрыва существующих травленых проводников или перемещением существующих навесных соединений, добавление выполняется с помощью дополнительных навесных проводников.
Каким бы из двух возможных путей ни была получена новая панель (т. е. выполнена заново или переделана вручную из старой), процесс в целом таков, что в случае будущих изменений он может применяться одинаково к панелям обоих сортов. Это достигается за счет того, что все добавочные травленые проводники делаются по типу «штырек-штырек» и прямо соответствуют навесным соединениям, добавляемым вручную.
Помимо того, что программы изменений монтажа необходимы для эффективности производства и доработки машин, подвергающихся схемным изменениям, они дают при проектировании два важных преимущества: позволяют проводить проектирование путем итераций при постоянно управляемых условиях и
значительно уменьшают машинное время, необходимое для выполнения измененного проекта. Изменения в законченном проекте, затрагивающие 10% монтажа, могут быть выполнены в течение машинного времени, которое составляет 30% машинного времени, необходимого для того, чтобы рассчитать проект заново.
ЗАКЛЮЧЕНИЕ
Использование автоматизации проектирования вычислительных систем с использованием логических схем на твердом теле оказало существенную помощь в разработках, связанных с использованием схем на твердом теле для нового семейства вычислительных машин IBM-360. Для автоматизации проектирования логических схем на твердом теле характерно то, что она:
обеспечивает различные лаборатории, участвующие в проектировании частей машины, одинаковыми методами проектирования;
обеспечивает получение единообразной документации так, что любой завод может выполнять проекты любой лаборатории и каждый человек, освоивший одну машину, может понять документацию любой другой машины;
дает в руки инженера новые мощные средства для выполнения и детализации своих проектов с недостижимой ранее степенью точности (такое увеличение точности особенно важно, так как ошибки в печатном монтаже, обнаруженные после того, как образец уже изготовлен, ведут к серьезным последствиям);
позволяет инженерам легко вносить в проект изменения в целях выбора наилучшего варианта;
дает возможность получения экономичного расчета панелей с печатными проводниками и плоскими кабелями;
преобразует логические схемы в цифровую информацию, благодаря чему осуществляется управление автоматической аппаратурой, выполняющей панели с печатным монтажом и плоские кабели.
Невозможно перечислить всех, чье постоянное сотрудничество позволило осуществить этот универсальный набор программ: работа по программированию в десятки раз превышает объем работ при реализации FORTRAN. Упомянутое в статье устройство для производства печатных схем разработано в Научно-исследовательской лаборатории фирмы IBM в Эндикотте, штат Нью-Йорк.
Л ИТ ЕРАТУ РА
К1 о о m о к М., Case Р. W., Graff Н. Н., The Recording, Checking and Printing of Logic Diagrams, Proceedings of the EJCC (1958), 108.
Amdahl G. M., В 1 a a u w G. A., Brooks F. P., Jr., Architecture of the IBM System/360, IBM L, 8, № 2 (1964), 87—101. См. настоящий сборник, стр. 101—136.
Davis E. M., Harding W. E., Schwartz R. S., Corning J. J.» Solid Logic Technology: Versatile, High-Performance Microelectronics, IBM L, 8, № 2 (1964), 102—114.
P a u 1 s e n R. C., S p r i n g f i e 1 d W. K., High-Frequency, MultipleSignal-Conductor Transmission Line, готовится к печати.
H a s p e 1 С. H., Automatic Packaging of Computer Circuitry, готовится к печати.
Ko d res U. R., Lippman H. E., SLT Board Layout, IBM Technical Report TR00, 1010, 1964.
Lee C. Y., An Algorithm for Path Connections and Its Applications, IRE Trans, on Elect. Computers, EC-10, № 3 (1961), 346—36o,
Автоматизированное обслуживаниевычислительных машин(машинная организацияи программная система1)
К. Малине, Е. Л. Аллен
В статье рассматривается подход к вопросу эксплуатации центрального процессора при минимальном участии человека. Этот подход включает в себя: 1) программную систему, которая составляет диагностическую программу на основе информации, хранящейся на магнитной ленте автоматического проектирования машины, и 2) новую организацию части управления экспериментальной машины. Перечисляются проблемы, которые требуют решения, и объясняется, почему для решения этих проблем были выбраны описанные ниже методы. Описывается программная система и схемы. Указывается, какие усовершенствования следует в них внести для преодоления встретившихся трудностей.
Введение
Сейчас все острее встает вопрос о том, чтобы выделить часть схем вычислительной машины для облегчения обслуживания. С точки зрения нормальной работы машины желательно, чтобы эти схемы осуществляли контроль. С точки зрения повышения эксплуатационной надежности желательно при проверке значительной части процессора регистрировать ошибки и иметь некоторые вспомогательные средства локализации ошибок, когда полученная о них информация достаточно подробна.
Наибольший интерес представляет вопрос об общем методе разработки системы обслуживания экспериментальной вычислительной машины. Некоторые основные функции осуществляются почти теми же схемами, которые нужны для выполнения обычных функций процессора и для осуществления контроля по четности. Различные комбинации этих основных функций будут использоваться в различных эксплуатационных ситуациях. Одна из таких комбинаций предназначена для работы с программами, которые создаются программной системой на основе теории локализации ошибок. Программная система и схемы машины
*) М а 1 i n g К., Allen Е. L, A Computer Organization and Programming System for Automated Maintenance, IEEE Trans, on Electronic Compute EC-12, № 6 (1963), 887-895.
взаимно связаны; для достижения максимальной эффективности они дополняют друг друга.
Программная система не зависит от специфических особенностей машины, а аппаратная система зависит только частично. Это объясняется тем, что найден достаточно общий подход к вопросу обслуживания.
Возникающие проблемы
Обнаружение ошибок
Как создать минимальную систему тестов, успешное выполнение которой гарантировало бы, что процессор выполнит любой другой тест? Нужно доказать, что программа, отлаженная на одной модели процессора, будет вести себя точно так же на другой модели или на этой же модели в другое время. Как процессор будет проверять свои схемы контроля?
Локализация ошибок
Как построить системы тестов, выполнение которых на неисправной машине позволило бы определить, какой элемент или какие элементы являются неисправными?
Полнота охвата контролем
Каким образом можно гарантировать, что в процессе обнаружения или локализации ошибок ни один элемент не будет пропущен?
Обновление
Как можно упростить или автоматизировать задачу обновления диагностических программ?
Ядро машины
Какой должна быть организация машины, чтобы свести к минимуму ту часть машины, которая должна правильно работать, прежде чем можно будет пустить диагностическую программу?
Упрощение пульта управления
Каков наименьший объем вспомогательных средств — сигнальных лампочек и переключателей, — позволяющий эффективно обслуживать машину?
Создание опытной модели
Как диагностическое программирование сможет обнаружить ошибки проектирования до того, как опытная модель будет введена в строй?
Неустойчивые ошибки
Как процессор может отличить постоянную ошибку от неустойчивой? Как процессор восстанавливает свою работоспособность после неустойчивой ошибки? Какую информацию может сохранить процессор об обстоятельствах, при которых появилась неустойчивая ошибка?
Очередность разработки
Как разрешить парадокс, заключающийся в том, что диагностические программы должны быть готовы к моменту завершения схемной части машины и в то же время их нельзя детализировать, пока не закончатся все инженерные изменения?
Дополнительные условия
Требования
Из перечисленных проблем видно, что существуют по крайней мере два требования. Во-первых, машина должна обладать, если можно так сказать, способностью самоанализа, и, во-вторых, диагностические программы должны вырабатываться процессором. Однако любые дополнительные аппаратные средства не должны существенно увеличивать стоимость машины, а любая программная система, разработанная для составления диагностических программ, должна быть достаточно общей, чтобы ее можно было применить для машин других типов.
Нельзя исходить из предположения, что на установке потребителя имеется другой процессор, специальное испытательное оборудование или цифровое устройство связи для анализа результатов диагностической программы. Нельзя также предполагать, что процессор, после того как он не смог помочь в анализе, все еще работает правильно.
Диагностическая программа должна быть достаточно простой, чтобы оператор мог пользоваться ею без знания схем машины.
Среднее время локализации ошибки должно быть равно по крайней мере наименьшему времени локализации ошибки в современных вычислительных машинах.
Ограничения
Такое решение применимо только для процессора и только для случая одиночных логических ошибок. Многократные ошибки, ошибки питания, задающего генератора, синхронизации потребуют обычных методов поиска с использованием осциллографа. .
Теория метода
Число различных комбинаций входных сигналов, которые могут быть поданы на логический элемент с п входами, равно 2П. Тест заключается в подаче на вход элемента одной из таких комбинаций сигналов и сравнении значения его выхода с известным результатом. Однако для доказательства правильности работы элемента не нужны все 2П тестов. Достаточно убедиться, что каждый вход способен индивидуально управлять выходом и что выход может иметь любое состояние. На рис. 1 показаны
ДостаточныетестыДостаточныетестыИзбыточныетестыИзбыточныетестыИИИЛИИЛИИЕ^ЕоПо]EGD1D]E^ИЕ^ЕоПо]EGD1D]E^
Достаточныетесты
Достаточныетесты
Избыточныетесты
Избыточныетесты
И
И
ИЛИ
ИЛИ
ИЕ^ЕоПо]
EGD1D]E^
ИЕ^ЕоПо]
EGD1D]E^
Рис. 1. Достаточные и избыточные тесты для схем «И» и ИЛИ» с тремя входами.
достаточные и избыточные тесты для схем «И» и «ИЛИ» с тремя входами.
Для транзисторных схем, например, можно утверждать, что если любой из входов некоторой схемы «И» определяет значение выхода, то несколько таких входов также будут определять значение выхода. Следовательно, число необходимых тестов будет равно только четырем, или в общем случае и+1.
При анализе логической сети можно рассматривать поочередно все элементы и для каждого из них перебирать все п + 1, комбинации входных сигналов. При этом каждый раз сеть прослеживается назад к входам, для того чтобы определить значения сигналов на входах сети, обеспечивающих нужную комбинацию на входе элемента. Если Л2 должен иметь на входах все единицы, то комбинация сигналов может быть такой, как на рис. 2 (х означает, что данный входной сигнал может иметь любое значение).
Для сети из к элементов, когда t-й элемент имеет гц входов, число комбинаций равно
С — 5 (^z+ 1) = ^+ S ni*Z = 1z=i
Это число комбинаций является верхней границей числа тестов Ттах = С. Можно установить нижнюю границу числа тестов (она нам потребуется в дальнейшем). Пусть 0 = ^. Предположим далее, что достижима идеальная степень локализации ошибки и пусть каждый тест будет подавать на входы тех или иных элементов половину оставшихся комбинаций входных сигналов. После t тестов останется только одна комбинация входных сигналов. Поэтому нижней границей является Tmin=l + ^ = = 1 +(H°g2 & IL где (I И-используется для обозначения ближайшего целого, превосходящего данное число. Опыт показал, что
Рис. 2. Входы сети.
фактически достаточно, чтобы число тестов было приблизительно равно числу элементов к.
Ясно, что существуют и другие способы задания подходящих входных сигналов на Д2. Например:
Некоторые способы позволяют воспользоваться «безразличными» состояниями. Если бы, например, требовалось только обнаружить ошибку, то можно было бы минимизировать число тестов. Для локализации ошибок было решено выбирать значения входных сигналов таким образом, чтобы тест был
наименее чувствительным к неисправностям всех элементов, кроме проверяемого. В приведенном выше примере следовало бы взять все входы равными единице. Этот метод был использован в программе для выработки системы тестов (которая не является единственно возможной) для любой логической схемы, не содержащей обратной связи. Существуют схемы, для которых нельзя найти теста. Схема, показанная на рис. 3, является
Рис. 3. Цепь с избыточными элементами.Рис. 3. Цепь с избыточными элементами.
Рис. 3. Цепь с избыточными элементами.
Рис. 3. Цепь с избыточными элементами.
избыточной, так как значение ее выхода всегда определяется значением сигнала, поданного на верхний вход. На входах Л1 невозможно обеспечить комбинацию
Г
О *
Точно так же нельзя задать комбинацию
"О"
_0_
на входах 02 или различить значения выходных сигналов 01 (как было сделано для Л1) для входных комбинаций
О’ОО’О"О"
О’
О
О’
О
Следовательно, элементы такой схемы не могут быть полностью проверены. Программа, вырабатывающая систему тестов, обнаружит конструкторские ошибки такого рода (пропуск инверторов и т. д.). На практике большое число ошибок в начертании логической схемы неожиданно делают ее избыточной.
Между тестами и вышедшими из строя элементами не обязательно существует взаимно однозначное соответствие. Ошибочное выполнение теста может быть вызвано отказом разных элементов. Поэтому для локализации ошибок приходится применять один из двух методов:
принять расположение тестов в виде дерева, когда правильное или ошибочное выполнение теста определяет, какой
тест должен выполняться следующим для того, чтобы группа подозреваемых элементов постепенно сужалась;
выполняя все тесты или часть тестов, фиксировать те из них, которые выполняются неверно, и затем взять пересечение множеств подозреваемых элементов для каждого из них, т. е. найти такой элемент, отказ которого мог бы объяснить все случаи неверного срабатывания.
Чтобы пояснить различия между этими двумя методами, ниже в табличной форме приводятся данные о вычислительных средствах, необходимых на разных этапах локализации ошибок.
Действие
Время
Вычислительные средства
Выработка тестов
До проверки
Сложная программа, выполняемая на универсальной вычислительной машине
Использование
Во время
Сравнение результата теста, выполненно
тестов
проверки
го на неправильно работающей машине, с известным результатом. Метод (1) требует выбора выходов.
1) Выбор последо
Во время
Пропуск некоторого числа тестов в соот
вательности тестов
проверки
ветствии с результатом предыдущих. Установление соответствия между конечными тестами и неисправным элементом
2) Установление
После
Установление пересечения новой группы
пересечения подозреваемых элементов
проверки
подозреваемых элементов с накопленной до этого группой. Установление соответствия межад оставшимися подозреваемыми элементами и неисправным элементом
Теперь можно определить, какие из вычислительных средств, необходимых для локализации ошибок, должны быть встроены в процессор и какие должны существовать вне его. Для метода (2) требуется сравнивать, устанавливать пересечение и устанавливать соответствие. Любая из этих логических операций пли все они могут быть выполнены либо ручным способом, либо с помощью другого процессора, если он есть, либо же с помощью специальных схем, являющихся частью процессора. Рассмотрим, сколько раз выполняется каждая из этих операций. Сравнение должно выполняться для каждого теста,
пересечение выполняется всякий раз, когда сравнение дает отрицательный результат, а операция установления соответствия выполняется лишь несколько раз в конце диагностической программы. Если пренебречь возможностью использования другого процессора, то в специальные схемы несомненно должны входить схемы сравнения, возможно — схемы установления пересечения, но не должны входить схемы установления соответствия.
Списки подозреваемых элементов можно получить также для сокращенной системы тестов (осуществляющей обнаружение ошибок). Список подозреваемых элементов для теста, состоящего из нескольких тестов, можно получить в результате объединения списков подозреваемых элементов для входящих в
Рис. 4. Комбинации входных сигналов.
него тестов. Существует два метода получения списков подозреваемых элементов для теста. Оба эти метода требуют моделирования логики с помощью программы на вычислительной машине.
Моделирование может быть интерпретативным; тогда имеет место сложный алгоритм для определения того, насколько далеко следует прослеживать в обратном направлении от выхода каждого элемента. Рассмотрим четыре комбинации входных сигналов для элементов «И» и «ИЛИ». Для схемы «ИЛИ» это могут быть все нули, все единицы или другие входные комбинации (рис. 4).
Напоминаем, что возможны только одиночные ошибки и что логика неизбыточная. Тогда для случаев 01 и Л1 не нужно прослеживать ни одного входа, так как изменение значения одного входа не повлияет на значение выхода. Для случаев 02 и Л2 справедливо то же самое. Но для 03 и ЛЗ уже нужно прослеживать вход Z, а для случаев 04 и Л4 должны быть прослежены все входы, поскольку ошибка на любом входе приведет к тому, что выход окажется ошибочным.
Моделирование можно выполнить также путем компилирования программы, эквивалентной моделируемой логике. Исполь-
зуя в качестве входных данных комбинации каждого теста, можно моделировать ошибку в каждом элементе путем изменения одной команды в выполняемой программе. Таким образом определяют, влияет или нет моделируемая ошибка на результат, получаемый в данном тесте. Преимущество такого метода заключается в том, что с его помощью на вычислительной машине IBM-7090 можно моделировать одновременно 36 ошибок. Недостаток состоит в том, что время вычисления пропорционально приблизительно кубу числа элементов, так как: 1) число тестов примерно пропорционально числу элементов, 2) число ошибок примерно пропорционально числу элементов; 3) число команд, приходящихся на каждый тест, предназначенный для выявления одной ошибки, примерно пропорционально числу элементов.
Для больших логических цепей недостатки явно перевешивают преимущества, но если одновременно моделировать не 36, а только один тест, то можно прекращать моделирование для тех элементов, через которые ошибка не распространяется. Условие прекращения процесса определяется так же, как и в случае описанного выше интерпретативного моделирования. Тогда время вычисления становится приемлемым для логических сетей, состоящих из сотен элементов, причем такое количество элементов является вполне реальным. Можно отметить, что при интерпретативном моделировании прослеживание ведется от выхода к входу, а при компилятивном моделировании — в обратном направлении. Обычно используют последний метод.
Использование описанных идей вытекает из предположения, что диагностические программы не следует писать на функциональной основе, при которой проверяются все команды в различных видах и со многими операндами. Чтобы получить полный и в то же время минимальный по объему набор тестов для локализации ошибок, их необходимо писать на основе элементов. Такие программы и составлялись на основе разных точек зрения.
Организация экспериментальной машины
Метод выработки тестов, описанный в разд. IV, применим к комбинаторной логике, т. е. к логике, не содержащей цепей обратной связи или триггеров. Задача выработки тестов для последовательной логики (и составления списков подозреваемых элементов для них) не решена иначе, как «исчерпывающим» методом. Там, где «исчерпывающий» метод слишком длинен, требуется метод разделения последовательной логики на
участки, с которыми можно оперировать методами комбинаторного анализа.
Такой метод сведения к комбинаторной логике особенно удобен для последовательной машины, в которой для большинства команд результат операции получается через много шагов после засылки операндов. Экспериментальная машина является именно такой последовательной машиной.
Другая проблема возникает в связи с тем, что тестовая информация проходит, так сказать, через многие руки. В машине информационный поток идет от входного устройства к памяти, процессору и затем обратно от процессора к памяти и устройству вывода (рис. 5).
Рис. 5. Прохождение информации теста.
При такой схеме информационного потока устройства ввода-вывода и память можно проверить независимо и до проверки процессора. Поэтому при проверке процессора можно предполагать, что промежуточные схемы передают информацию правильно.
В экспериментальной машине число информационных регистров уменьшено за счет того, что они выполняют разнообразные функции в зависимости от обстоятельств. Это требует использования вспомогательных слов в памяти, по одному для каждой дополнительной функции регистра, и такой организации потока информации, при которой передача информации между запоминающим устройством и регистрами была бы по возможности непосредственной. Это упрощает использование памяти в качестве источника и приемника тестовой информации для процессора (рис. 6).
Машина хорошо проверяется (около 60%), и в большинстве случаев ошибка обнаруживается через один такт синхронизации после ее появления. Для полного использования возможностей контроля необходимо сохранять состояние процессора, соответствующее моменту обнаружения ошибки (идеально было бы сохранять состояние процессора в момент появления ошибки),
с тем, чтобы по несоответствию состояния машины ее нормальному состоянию можно было сделать заключение о характере ошибки. Необходимость предусмотреть возможность появления неустойчивых ошибок оправдывает включение дополнительных схем для пересылки содержимого управляющих триггеров и информационных регистров в память. Кроме того, исходная засылка программы требует установки одних и сброса в начальное состояние других управляющих триггеров. Такую установку можно осуществлять из памяти, используя для этого общий метод, и делать это почти так же экономично, как и установку триггеров и регистров в некоторое фиксированное состояние.
УстановкаУстановкаРис. 6. Прохождение информации в экспериментальной машине.Рис. 6. Прохождение информации в экспериментальной машине.
Установка
Установка
Рис. 6. Прохождение информации в экспериментальной машине.
Рис. 6. Прохождение информации в экспериментальной машине.
Таким образом, возможность устанавливать состояние машины из памяти и записывать состояние машины обратно в память, естественно, вытекает из тех возможностей, которыми обычно обладает вычислительная машина.
Специальные схемы управления
Специальные схемы управления реализуют несколько фиксированных программ, осуществляющих пересылку информации
Рис. 7. Специальные режимы.Рис. 7. Специальные режимы.
Рис. 7. Специальные режимы.
Рис. 7. Специальные режимы.
и восстановление исходного состояния, причем некоторые из этих программ требуют работы устройств ввода-вывода. Нуж-
ные программы задаются с помощью переключателя на пульте управления (рис. 7).
Когда идет работа в одном из специальных режимов, то с точки зрения специальных схем управления обычные схемы
НормальныйрежимНормальныйрежимПцск—засылка—цстановка— нормальный-* опрос*
Нормальныйрежим
Нормальныйрежим
3/ 6.(15№
E.D.
рюедПиск—засылка—уста- — нормальный-*опррс- -* выдача
автМаЮическойноека-вхвых
выдачиЕ Р
адержкаадержкаРежим Пуск — выдача принудительной выдачи
адержка
адержка
Циклический Пуск-* засылка-* установка
Засылка-Писк —засылка—выдача
выдачавыдачазадержказадержкаПиск-засылка* установка-' гь-'Писк-засылка* установка-' гь-'выдача
выдача
выдача
задержка
задержка
Писк-засылка* установка-' гь-'
Писк-засылка* установка-' гь-'
Е.Е., Ошибка во времяразрешенного режима
E.D. Ошибка во время запрещенного режима
Рис. 8. Работа процессора в специальном режиме.
Примечание. Вычислительная машина входит в режим запрещения для повторения. Программа не может быть прервана, пока машина находится в режиме запрещения.
управления ничем не отличаются от информационных разрядов (рис. 8). Следовательно, вместо такого положения, когда примерно 65% схем машины управляет 30% схем, мы будем иметь, что 5% будет управлять 95% схем машины. Так реализуется требование о сокращении той части машины («ядра»), которая должна правильно работать перед пуском диагностической программы.
Определение терминов
Засылка
(Load) —
передача информации из входного устройства в память
Выдача
(Unload) —
передача информации из памяти в выходное устройство
Установка
(Scan-in) —
занесение на триггеры процессора состояний, соответствующих значениям разрядов памяти
Опрос
(Scan-out) —
занесение в разряды памяти значений, соответствующих состояниям триггеров процессора
Задержка
(Delay) —
число тактов синхронизации между установкой и опросом
Простота схем управления была достигнута за счет использования постоянного общего участка памяти для информации, предназначенной для осуществления установки и полученной в результате опроса, за счет постоянного формата для этой информации и за счет того, что задержка является частью устанавливаемой информации. Режимы работы задаются переключателями.
Специальные схемы управления выполняют следующие функции:
засылка-выдача (режим работы, см. разд. V); исходная засылка программы (режим работы);
повторная засылка программы (после ошибки, обнаруженной контролем по четности);
повторяющийся цикл (режим для проверки с помощью осциллографа);
опрос (после ошибки, обнаруженной контролем по четности) ;
разрешение программной установки и опроса (для моделирования и проверки);
устранение с пульта управления световых индикаторов и переключателей;
тест установки-опроса и сравнение (режим работы). Последние три функции заслуживают некоторого уточнения.
Программная установка-опрос
При работе в нормальном режиме программа вычислительной машины может обращаться к специальным схемам управления как к устройству ввода-вывода. Движение информации идет от памяти к процессору и обратно в память. Никакого
механического ввода-вывода при этом нет, не может быть также и одновременного вычисления. В управляющих кольцах предусмотрено состояние, при котором выполняется логическое сложение (операция «ИЛИ») выходов двух регистров перед записью в память. Засылая на эти регистры нужную комбинацию разрядов, можно записать в память любую комбинацию разрядов с любым значением разряда контроля по четности (за исключением всех нулей и четного значения контрольного разряда). Это единственный способ, с помощью которого правильно работающая машина может выработать слова с неправильной четностью, так как при нормальной работе это специальное управляющее кольцо недоступно. Но благодаря специальному управлению в обычные управляющие кольца можно заслать любой код. При наличии возможности задавать слова " с неправильной четностью появляется возможность проверить схемы контроля путем осуществления нормального продолжения, используя для этого повторную засылку программы.
Неисследованной возможностью использования программной установки и опроса является моделирование машины путем копирования самой себя. Из-за перемежающихся ошибок анализ опроса требует обнаружения несоответствия в состоянии машины. Это означает моделирование состояния машины вплоть до того цикла, в котором был осуществлен опрос, однако моделирование всего процессора является трудновыполнимой задачей. Тем не менее если анализ выполняется на идентичной машине, то можно использовать программную установку и опрос для получения состояния процессора в каждом интересующем нас цикле путем выполнения указанных опросов с последовательно изменяющимися задержками.
Устранение световых индикаторов и переключателей
Световые индикаторы и переключатели нужны как для нормальной работы, так и для целей обслуживания. Применение интерпретативного пульта управления делает их ненужными для нормальной работы, а возможность осуществлять опрос и выдачу эквивалентна большему количеству индикаторных лампочек, чем обычно принято устанавливать в машине. Выбор средства для наблюдения за состоянием машины зависит от того, кто будет обрабатывать информацию — инженер или другая машина. Для инженера нужны индикаторные лампочки, для машины — перфокарты или лента. Если приходится делать выбор между этими двумя средствами, то следует принять во внимание, что легче производить перевод информации с перфокарт на визуальный индикатор, чем обратно. Та степень автоматизации, которую дают диагностические программы, вырабатывав-
мые вычислительной машиной, должна уменьшить необходимость в визуальном контроле за состоянием процессора.
Основными лампочками и переключателями являются, конечно, те, которые помогают при проверке специальных схем управления, т. е. той части машины, которая должна работать до пуска диагностических программ. Предусмотрена также возможность индикации любого слова памяти, что оказалось весьма ценным.
Тест установки-опроса и сравнение
В последнем режиме работы, показанном на рис. 8, тест засылается в фиксированный участок памяти, скажем с некоторой зоны на ленте. Устанавливается соответствующее состояние процессора, и процессор нормально работает в течение нескольких циклов синхронизации. Затем состояние триггеров процессора записывается в память (производится опрос).
Следующая зона на ленте содержит эталонную информацию. Она посимвольно сравнивается с информацией о состоянии триггеров процессора, находящейся в памяти. Если информация идентична, то начинается следующий тест, если нет, то перед началом следующего теста печатается первое слово текущего теста, которое является его номером.
После того как на неисправной машине будут выполнены все тесты, содержащиеся на ленте вместе с эталонной информацией, отпечатанные номера тестов используются для выбора индексных карт. Для каждого теста имеется своя карта. Получение карт и их использование описано в разд. VII.
Специальные схемы управления могут выполнять следующие основные функции:
Засылку
Установку
Задержку
Опрос
Выдачу•
Сравнение (в процессе засылки)
Нормальную работу
Повторение
Комбинация основных выполняемых функций определяется переключателем режимов и некоторыми условиями. Переключатели могут задавать следующие режимы:
Нормальный
Автоматической выдачи
Принудительной выдачи
Тест установки и опроса
Циклический
Засылка-выдача
Сравнение результатов опроса
Условиями являются:
Ошибка, обнаруженная контролем по четности Разрешение-запрещение
Успешное сравнение
Обслуживающие программы
Специальное управление полезно только в том случае, если его особенности успешно используются и дополняются соответствующими программами. За исключением программы засылки (используемой для начальной засылки программы), все они имеют отношение к случаю появления ошибок. Это следующие программы:
Программа восстановления, которая используется при появлении ошибки, обнаруженной контролем по четности, с целью заново выполнить неверную команду и получить информацию об обстоятельствах появления этой ошибки.
Программа анализа результатов опроса. Общий метод построения этой программы пока еще не найден.
Программа обнаружения ошибок, обслуживающая ту часть процессора, которая не может быть охвачена программой локализации ошибок.
Программа локализации ошибок или программа теста установки-опроса, которая ниже будет рассмотрена более подробно.
Программа теста установки-опроса
Слова, написанные заглавными буквами, относятся к программам, показанным на рис. 9. Резюмируем основные положения разд. IV и V.
Благодаря доступу к достаточному числу триггеров в машине стал возможен анализ последовательной по своему характеру логики вычислительной машины.
Наиболее удобным документом, из которого можно взять данные о логике машины, является лента автоматического проектирования машины. Следовательно, нужна программа, которая ИЗВЛЕКАЕТ некоторую часть информации, содержащейся на этой ленте, и преобразует ее во входной формат РАЗРАБАТЫВАЮЩЕЙ ПРОГРАММЫ. Следует отметить, что все изменения логики фиксируются на ленте автоматического проек-
тирования машины по причинам, не связанным с вопросами обслуживания.
РАЗРАБАТЫВАЮЩАЯ ПРОГРАММА вырабатывает систему тестов.
Рис. 9. Блок-схема программы, вырабатывающей тесты локализации ошибок.
ОЦЕНИВАЮЩАЯ ПРОГРАММА определяет полезность теста, составляя описок «подозреваемых» элементов для каждого теста. Под «подозреваемым» элементом понимается элемент, неисправность которого может быть причиной отличия фактического сигнала от заранее вычисленного эталонного. Некоторых входов или выходов элементов может и не быть в
списке подозреваемых ошибок какого-либо теста. Это может быть обусловлено либо избыточностью, либо взаимозависимостью логики, что затрудняет нахождение теста в приемлемое время. Однако последний случай встречается редко.
Указанные три программы — ИЗВЛЕКАЮЩАЯ, РАЗРАБАТЫВАЮЩАЯ и ОЦЕНИВАЮЩАЯ — в случае их применения к логике всего процессора нужно дополнить еще некоторыми свойствами.
Основная задача распадается на три части: разбиение логики на поддающиеся анализу участки, описание участка логики для ИЗВЛЕКАЮЩЕЙ ПРОГРАММЫ и решение вопроса о том, какие триггеры должны быть программнодоступны для установки-опроса. Последняя задача тесно связана с двумя предыдущими и решается в процессе разработки машины. Из соображений экономии нецелесообразно делать каждый триггер доступным программе.
Для того чтобы выработанные тесты и полученные результаты перевести в фиксированный формат, определяемый схемной реализацией, нужны специальные программы вывода. Для установления соответствия между тестом и адресом элемента в машине необходимо выработать индекс.
Чтобы избежать дублирования тестов, нужно вести список проверенных элементов. Этот список можно также использовать для нахождения остальных элементов, для которых должна быть предусмотрена возможность обнаружения ошибок во время нормальной работы.
Подводя итог, можно сказать, что интересующий нас участок логической схемы задается, во-первых, указанием названий всех «логических страниц», содержащих отдельные части этого участка, и, во-вторых, перечислением всех триггеров, образующих «границу» участка по входам и выходам. Для соединения линий, принадлежащих разным страницам, используется информация, содержащаяся на ленте автоматического проектирования машины. Сигналы, не несущие логических функций, не рассматриваются.
Страницы извлекаются с ленты и организуются в формат, облегчающий их обработку на машине IBM-7090. Та часть логики, которая была ИЗВЛЕЧЕНА, но лежит за пределами границ, определяемых перечисленными триггерами, ОТБРАСЫВАЕТСЯ другой программой. Затем осуществляется проверка на наличие линий, входящих и выходящих из данной схемы, но не оканчивающихся триггерами или явно указанными линиями.
Для выделенной таким образом части схемы составляются тесты с учетом списка элементов, для которых тесты уже были
составлены до начала работы РАЗРАБАТЫВАЮЩЕЙ ПРОГРАММЫ. Список проверенных элементов будет существенно увеличен, если анализ не обнаружит избыточных элементов.
Затем выполняется ОЦЕНИВАЮЩАЯ ПРОГРАММА, которая вычисляет состояния опрошенных триггеров, а те триггеры, которые не связаны с конкретным тестом, устанавливает в нейтральное состояние, например устанавливает в начальное состояние управляющие кольца. Несмотря на то что ошибку можно локализовать с точностью до нескольких элементов, ограничиваются сменным блоком. Тем самым удается сократить число двоичных знаков, среди которых необходимо выполнить ПЕРЕСЕЧЕНИЕ, до такой степени, когда это просто выполнить ручным способом. В качестве индекса используются перфокарты, причем каждому тесту соответствует своя перфокарта. Каждому сменному блоку соответствует своя позиция на перфокарте, в которой делается пробивка, если сменный блок содержит подозреваемые элементы. Операция СРАВНЕНИЯ указывает, какая карта индекса должна быть взята из картотеки. Карты собираются в стопку, и путем визуального просмотра находится ПЕРЕСЕЧЕНИЕ.
При наличии второй вычислительной машины, например такой, как IBM-1401, выбор индексов, нахождение пересечений и установление соответствия можно осуществить на этой машине.
VIII. Трудности составления тестов
Система программирования, описанная в разд. VII, ставит много интересных и вполне преодолимых проблем. Однако не следует думать, что наличие такой системы сделает выработку диагностических программ тривиальной. Вся работа по выбору участков логики падает на программиста, занимающегося диагностическими программами. Он должен определить последовательность, в которой следует анализировать эти участки, и, что более серьезно, решить, как быть с теми линиями, к которым нет прямого доступа со специальных схем управления. К таким линиям относятся:
входные и выходные линии информационного регистра памяти;
входные линии адресного регистра памяти;
линии, соответствующие стробирующим сигналам на входах и выходах регистров;
линии, соответствующие цепям сопряжения устройств;
линии, представляющие условия, которые используются для индикации ошибок (эти условия могут быть созданы только ошибкой вне процессора);
линии управления опросом и установкой триггеров процессора и линии сброса этих триггеров в исходное состояние (любой триггер, для которого не предусмотрена установка, должен находиться в известном исходном состоянии);
выходы триггеров, не доступных для опроса и установки.
Для опроса и установки доступно только около 2/3 всех триггеров машины. Половина из них являются регистрами, а другая половина — управляющими триггерами, окружающими шифраторы и дешифраторы, которые определяют стробирование шин и регистров, а также последовательность работы управляющих колец. Эти управляющие триггеры составляют около 25% оборудования машины.
Неизбежно приходится допускать такое положение, когда для проверки некоторой логики В используется логика А, а затем с помощью В прямо или косвенно проверяется логика А. Это вполне обоснованно для случая обнаружения и локализации одиночных ошибок, однако делает локализацию менее автоматической, чем это было бы, если бы А и В были независимыми. Программист, составляющий диагностические программы, должен поэтому тщательно проверить свои предположения относительно отдельных участков логики. Один из методов уменьшения указанной зависимости состоит в том, чтобы перед основной диагностической программой выполнить ряд тестов опроса и установки, которые гарантировали бы правильность работы следующих схем:
специальных схем управления, памяти и некоторых схем управления вводом-выводом;
необходимой части памяти;
регистров;
шин между памятью и регистрами;
схем управления, в частности их способности «ничего не делать», т. е. держать все вентили запертыми;
цепей между вводом-выводом и памятью.
Эти тесты осуществляют только грубую локализацию ошибок, однако они проверяют те части процессора, к которым легко применимы обычные методы отыскания ошибок.
Линии, идущие к регистру адреса запоминающего устройства, можно частично проверить, если использовать тест записи в ячейку с фиксированным адресом (или выборки из нее) некоторой характерной информации, а затем другой тест для обращения к этой ячейке с помощью адресной части слова в программе. Окончательная проверка, состоящая из программы, выполняемой в нормальном режиме, нужна для того, чтобы показать, что все адреса в памяти отличны друг от друга.
Линии, соответствующие цепям сопряжения устройств, должны проверяться также при помощи нормально выполняемой программы. В некоторых случаях требуется ручное вмешательство, например для задания таких сигналов, как «сигнал внимания» или сигнал «работа-ремонт» в недопустимых сочетаниях с другими сигналами.
При выделении участков логики пренебрегают линиями, которые не ведут к доступным триггерам или от них.
Так, были опущены линии, которые идут к схемам управления установкой и опросом триггеров, а также линии, идущие от клавиш начального пуска и пуска и осуществляющие стробирование и установку. Для их проверки следует использовать нормально работающие программы и визуально-ручное вмешательство. Триггеры, состояние которых записывается в память, должны быть «заморожёны»; при этом их использование для выработки стробов запрещено. Эти линии запрещения стробирования были также опущены.
Не все триггеры непосредственно доступны для установки и опроса. Триггеры, недоступные для установки и опроса, можно устанавливать и опрашивать путем введения задержки на два цикла, как это показано на следующей схеме:
Логика 2Логика 2Установка 1Установка 1Логика 1Логика 1ОпросОпрос
Логика 2
Логика 2
Установка 1
Установка 1
Логика 1
Логика 1
Опрос
Опрос
Логика 1 может быть проверена, поскольку можно установить на триггер Т2 информацию из памяти и после задержки на один цикл осуществить опрос Т3.
Логику 2 нельзя проверить, используя задержку в один цикл, так как нельзя осуществить опрос Т2. Однако можно вначале проверить логику 1, затем произвести установку в Ть разрешить задержку, равную двум циклам, и произвести опрос Т3. Это означает, что логика 1 для РАЗРАБАТЫВАЮЩЕЙ И ОЦЕНИВАЮЩЕЙ ПРОГРАММ будет указана дважды, однако во второй раз дополнительные тесты выработаны не будут. Возможно аналогичное положение, когда нельзя произвести опрос Т2. В этом случае необходимо сначала проверить логику 2.
В режиме «засылка-выдача» удобно проверяются связи между памятью и устройством ввода-вывода. Установка с нуле* вой задержкой используется для проверки способности регистров и управляющих колец хранить коды.
Возможности и ограничения выбранных решений
Следует отметить определенный успех в решении таких проблем (указанных в разд II), как обнаружение и локализация ошибок, обновление диагностических программ и уменьшение ядра машины.
Достигнута полнота охвата контролем в том смысле, что элементы, не охваченные тестами локализации ошибок, будут указаны в списке непроверяемых элементов. Можно ожидать, что по мере сокращения списка непроверяемых элементов трудности их проверки будут возрастать до непреодолимых размеров. По приблизительным оценкам, тестами установки и опроса могут быть охвачены около 85% схем процессора. Остальные 15% схем состоят из схем управления установкой и опросом (5%), схем каналов ввода-вывода, пассивных схем управления, схем синхронизации, логических схем, обслуживающих формирователи сигнализации, и некоторых других элементов.
Возможность упрощения пульта управления зависит от использования метода установки и опроса. Вопрос заключается в том, не слишком ли много времени занимает манипуляция с клавишами и переключателями в тех случаях, когда их использование совершенно необходимо для определения состояния процессора.
Обнаружение избыточных элементов оказалось вполне эффективным способом нахождения ошибок, допущенных при конструировании. В результате экспериментальной проверки, охватывающей около 200 элементов, было выявлено пять ошибок.
Упомянутый в начале статьи парадокс очередности разработки частично можно разрешить, если допустить, что триггеры, которые должны подвергаться опросу и установке, будут указываться в программе на самом последнем этапе; это вполне приемлемо, так как для инженерных переделок, связанных с их изменением, вообще говоря, нужны лишь провода, а не дополнительные элементы. Однако из-за ограничений, накладываемых мощностью и числом выходных штырьков, необходимо наложить некоторые ограничения на компоновку схем. Единственное удовлетворительное (но дорогостоящее) решение заключается в том, чтобы вести компоновку так, чтобы опросу и установке можно было подвергнуть любой триггер.
Из-за недостатка опыта сейчас трудно оценить время, необходимое для детализации диагностики всего процессора, однако можно полагать, что оно будет небольшим по сравнению с временем составления обычных диагностических программ. Детализация считается самой трудной проблемой. Для логических сетей, содержащих свыше тысячи элементов, время вычисления,,
как оказалось, составило немного меньше часа работы машины IBM-7094.
Оказалось, что при помощи этого метода можно также локализовать ошибки синхронизации, неустойчивые ошибки, при условии, что они принимают форму линий. Разработаны, но еще не реализованы методы для другого класса ошибок, таких, как короткое замыкание диодов.
Логику машины можно несколько изменить с тем, чтобы избежать усложнения анализа ошибок и удержания от введения клапанирования, необходимого для осуществления установки и опроса. Если стоимость дополнительного регистра равна стоимости схем управления для использования в двух режимах существующего регистра и если этот дополнительный регистр подключается к шинам памяти, то лучше иметь дополнительный' регистр. Если затраты на декодирование какого-нибудь условия равны затратам, связанным с его запоминанием на отдельном триггере, то следует декодировать условие.
Наиболее значительным шагом вперед в деле развития метода установки и опроса будет разработка «неисчерпывающих» алгоритмов выработки тестов для последовательных схем. Эго позволит сократить число триггеров, подвергаемых опросу и установке. Число элементов и время локализации ошибок могут быть сокращены также с помощью быстродействующих каналов связи между вычислительными установками или же за счет размещения нескольких машин в одном месте. Время выполнения тестов с локализацией ошибок можно уменьшить, если применить запоминающее устройство с большим быстродействием, чем у магнитной ленты. Использование магнитных дисков осложняется тем, что сигналы «выбора» усложняют управление установкой и опросом, но возможность установки магнитных дисков на современных машинах и их высокое быстродействие делают их использование привлекательным.
Опыт разработки экспериментальной машины оказался обнадеживающим в отношении неустойчивых ошибок. В одном случае исследование результатов трех опросов позволило точно установить причину довольно тонкой ошибки, являющейся по своему характеру перемежающейся, потому что она появлялась при специфических условиях.
Дальнейшие исследования
Осталось несколько нерешенных вопросов. Наиболее важным на них является вопрос об изменениях в программах в соответствии с инженерными изменениями. Для диагностических программ, выполняемых обычным образом, это не является
серьезной проблемой, но она должна быть решена таким образом, чтобы незначительные изменения в логике приводили к незначительным изменениям в диагностических программах. Нужно разработать такие методы компоновки, которые повысили бы разрешающую способность локализации ошибок и сократили бы «ядро» машины. Описанный здесь метод нужно распространить на электронику ввода-вывода, а также на классы •ошибок, которые, как показывает опыт, не охватываются существующим алгоритмом. Вычислительные процедуры можно безусловно улучшить, и их придется улучшать, чтобы можно -было иметь дело с очень большими логическими цепями. Пока еще нет опыта применения этого метода на машинах. Конечная цель состоит, разумеется, в том, чтобы дать возможность человеку, не. знающему техники, ремонтировать неисправную машину.
ЛИТЕРАТУРА
Eldred R. D., Test routines based on symbolic logical statements, Comman. ACM, 1958.
Diagnosis of Failures in Switching Circuits Conference, May, 1961.
Symposium on Combinational Problems, Princeton, 1960.
S e s h u S., Freeman D. W., Diagnosis of asynchronous sequential switching systems, IRE Trans, on Electronic Comput., EC-11, 1962, 459—465.
-S. G a 1 e у J. M., Roth J. P., Norby R., Techniques for the Diagnosis of Switching Circuit Failures, Proc. 2-nd AIEE Symp. on Switching Circuit Theory and Logical Design, 1961, 152—162.
О цифровой вычислительной машинес программированием посредствомформального математического языка1}
Л. Кальмар
Дается схематическое описание вычислительной машины, программный’ язык которой (фактически вариант программного языка, используемого в связи с операторным методом Ляпунова) близок к обычному формальному математическому языку. '
ПРОГРАММНЫЙ ЯЗЫК
Основные символы: 1.1. цифры 0,1, ..., 9; 1.2. десятичная запятая,; 1.3. символ конца числа П^ 1*4- простые переменные (любые буквы, которые мы пожелаем использовать для обозначения скалярных величи!н); 1.5. идентификаторы массивов (array identifiers) (любые буквы, отличные от простых переменных, которые мы пожелаем использовать для обозначения векторов, матриц и т. д.); 1.6. арифметические скобки (,); 1.7. индексные скобки (subscript brackets) [,]; 1.8. индексный разграничитель (subscript delimiter)^; 1.9. символы арифметических операций +, —, X, /, t (Для возведения в степень), У,* (для стандартной элементарной функции одного аргумента); 1.10. символы отношений^—, ¥=, <, ^, >, <^; 1.11. логические- связки А, Д, V, V, ->> т4, <->, ^; 1.12. символы запоминания (storage symbol) ==>, >-; 1.13. разграничитель (для) метки (label delimiter) _J; 1.14. символы передачи управления (jump symbols) Г, i^, L; 1.15. фигурные скобки (для цикла) {,} (loop braces); 1.16. циклические разграничители (loop delimiter) <=, (, ), : (двоеточие); 1.17. символ размерности массива (array size symbol) ®; 1.18. символ печати й; 1.19. символ продолжения ; (точка с запятой); 1.20. символ останова . (точка).
Из этих основных символов строятся следующие составные символы: 2.1. (неотрицательные целые) числа, т. е. конеч-
’) Kalmar R., On a digital computer which can be programmed in a mathematical formula language, труды Второго Венгерского математического’ конгресса (24—31 августа 1960 г.), Будапешт, V. 3 — V. 16.
ные последовательности цифр; 2.2. (неотрицательные) константы вида v, или v, v'H (v, V обозначают числа); 2.3. индексные переменные (subscripted variables) ite^e^e ...^ ej, i обозначает идентификатор массива и еь е2, ..., ек — выражения, не содержащие индексных переменных; 2.4. константа (простая переменная или индексная переменная) называется термом и в то же самое время выражением; если п и т2— термы и© — символ арифметической операции, то (ti@r2) —терм, Tj@t2 — выражение; никаких других термов и выражений нет; 2.5. если ei и е2— выражения, А — символ отношения, то (eiAe2)— скобочная формула, a 6iAe2—формула; если ф4 и ф2— скобочные формулы и □ — логическая связка, то (ф4 □ ф2) — скобочная формула, а ф1 □ ф2 — формула; никаких других формул и скобочных формул нет.
Исходя из выражений и формул, операторы, декларации массивов (array declarations), частичные программы и программы строятся следующим образом: 3.1. для любого выражения е и любой (простой или индексной) переменной -9*, е=ф9*;, е=ф-9., езф#;, езф#., и . (один символ останова) есть арифметические операторы и никаких других арифметических операторов нет; 3.2. для любой формулы ф и любых чисел v и v' ^vT » (pv L* Vv l^ v'L и VF (и только это) есть логические операторы; 3.3. для любой простой переменной р, для любых выражений 61, е2, 8з, для любой частичной программы л и любой формулы ф, {рф^б! (е2)е3 : л} и (рфзе^бз) : лф} (и только это) есть циклические операторы; 3.4. для любого числа v и любого (арифметического, логического или циклического) оператора со v | со (и только это) называется помеченным оператором (labelled operator), v—его меткой (или меткой со) и говорят, что со снабжен меткой v; 3.5. для любых выражений ei, е2, ... ..., е^ и любого идентификатора массива t,' ei ® е2® ... . ..®ex>-t (и только это) называется декларацией массива; 3.6. любая последовательность операторов и (или) помеченных операторов называется частичной программой, а также программой; любая последовательность деклараций массивов, операторов (или) помеченных операторов называется программой;' никаких других частичных программ и программ нет.
(Семантическое) значение понятий, определенных (синтаксически) таким образом, поясняется следующими замечаниями и примерами: (2.2). Символ П, указывающий конец константы, упрощает некоторые команды в списке команд вычислительной машины; ценой усложнения команд можно обойтись без этого символа. (2.3, 1.8). Если, например, А (обозначение вектора), В (обозначение матрицы) и С (обозначение трехмерного мае-
сива) — идентификаторы массивов и /, /, к— простые переменные, тогда ЛИ обозначает /-ю компоненту Л (обычно обозначаемую Лг), S[/^y]—элемент (обычно обозначаемый В^ в г-й строке, j-м столбце В ^C\i^J^k\—элемент в i-й строке, /-м столбце и А-м слое С. (2.4, 1.9). Для каждой стандартной элементарной функции одного аргумента (наряду с возведением в степень и извлечением корня как функций двух аргументов) в машине должна быть построена подпрограмма, идентифицируемая посредством отличительного числа (distinction number). Значение любой стандартной элементарной функции одного аргумента рассматривается как результат операции, обозначаемой посредством *, левая и правая компоненты которой являются отличительными числами этой подпрограммы и аргумента функции соответственно. Однако допускается использование обычных обозначений, напрймер таких, как sin х, при условии, что слово sin кодируется так же, как (v^*» где v обозначает отличительное число подпрограммы для sin (отсутствие правой скобки не имеет значения). (3.1). Арифметический оператор ег==>^; или е=>^. означает: вычислить значение е (для заданных значений фигурирующих в нем переменных), заменить значение О вычисленным таким образом значением или придать О это значение, если оно до этого не имело значения, и продолжать последовательно вычисления или остановиться соответственно; езфД; или е=фД:. означает: вычислить и напечатать значение е и продолжать последовательно вычисления или соответственно остановиться; наконец, оператор . означает останов. (3.2). Логический оператор ф^ (соответственно фvL) означает: вычислить значение истинности формулы ср и перейти к оператору с пометкой v, если это значение «истина» (соответственно если это значение «ложь»), в противном случае продолжать последовательно вычисления; ф¥|“^'|_ означает: вычислить значение истинности ф и перейти к оператору с меткой v или V, смотря по тому, есть это значение «истина» или «ложь»; vT означает: перейти к оператору с меткой v. (3.3). Циклические операторы {р ф=Е1 (е2)е3 : л] и {рф^ (е2) : лер] означают: выполнять частичную программу л последовательно для значений eb ei + e2, ei+.2e2, ... параметра р до тех пор, пока era значение не превысит ез, и соответственно до тех пор, пока ф не будет удовлетворяться, а потом продолжать последовательно вычисления; при этом еь е2 и е3 обозначают значения этих выражений до первого выполнения л, тогда как в ф каждая переменная должна принимать свое значение после текущего выполнения л. (3.5). Декларация массива ^ ® е2 ® ... ® ех>- l означает: i есть массив со значениями еь е2, ..., ек в качестве числа его строк, столбцов и т. д.
В том случае, когда декларация массива содержит простую переменную, которой не придано значение никаким предыдущим оператором, или содержит индексную переменную, которой или соответствует не единственная (с тем же самым идентификатором массива, что и идентификатор перед индексной -скобкой) предыдущая декларация массива («предыдущее» всегда понимается в динамическом смысле), или значения ее индексов не согласованы с этой декларацией массива, или логический оператор содержит (перед символами Г", L или 1^) число, которое не является меткой единственного оператора, то рассматриваемый оператор или декларация массива и любая частичная программа, циклический оператор или программа, их содержащая, должны рассматриваться как бессмысленные.
ВЫЧИСЛИТЕЛЬНАЯ МАШИНА
Кроме числа возможных простых переменных, идентификаторов массивов и общего числа возможных элементов массивов, определяемых объемом памяти машины, следующие данные считаются существенными данными машины, определяющими ее возможности: (1) максимальное число п пар круглых скобок; (2) число т, такое, что числа 0, 1, ..., т и только они допускаются для использования в качестве меток; (3) максимальная размерность d массивов; (4) максимальное число к пар фигурных скобок для цикла.
Основные блоки машины содержат следующие подблоки и регистры:
Ввод. (1) Перфоратор (или подобное устройство) для перфорирования программной ленты. (2) Ленточное читающее устройство, передающее кодовые числа последовательных символов программы с программной ленты в память как следующие друг за другом компоненты Р[0], Р[1], Р[2], ... «программного вектора».
Память. (1) Часть ее ячеек, адресами которых являются кодовые числа простых переменных, отводится для хранения (меняющихся) значений этих переменных. (2) Другая часть ее ячеек, адресами которых являются кодовые числа идентификаторов массивов, отводится для хранения сведений (собранных в единое информационное слово) о начальных адресах и адресных шагах, соответствующих увеличению на 1 индексов соответствующих элементов массивов. (3) Остальные ячейки памяти служат для хранения (меняющихся) значений элементов массивов, включая и компоненты программного вектора.
Арифметическое устройство. (1) Вычислительные устройства для выполнения элементарных арифметических операций ( + , —, X, /), а также операций, соответствующих элементарным арифметическим отношениям (=, ¥=,<,:>,>, О и логическим связкам (А, Д, V, V, ->, т4, ^); кроме того,, вмонтированные подпрограммы с автоматическим возвращением к программе для выполнения возведения в степень и извлечения корней, а также для стандартных элементарных функций одного аргумента. (В качестве операции, соответствующей арифметическому отношению △ или логической связке □, может быть выбрана любая арифметическая операция, результат которой от а и b положителен тогда и только тогда, когда а △ b или (а > 0) □ (6 > 0) соответственно истинно.) Каждое вычислительное устройство или вмонтированная подпрограмма имеет, смотря по числу компонент соответствующей операции, один или два входных регистра, а также выходной регистр (для результата операции). (2) Преобразователь для обращения кон-’ стант, записанных в десятичной форме, в машинную форму (скажем, бинарную). Он состоит из выходного регистра COR,. содержащего 0 в начальном состоянии, а также из преобразующего факторрегистра CFR, содержащего 10 в начальном; состоянии и способного также содержать отрицательные степени 10. (3) п+1 арифметических блоков АВ0, ABi, ..., АВп, из четырех регистров LORi, OpRz, RORi и RRz (i=0, 1, ..., n) каждый. Их начальные, или «пустые», состояния должны отличаться от любого состояния, в котором они «заполнены», или содержат любые действительные числа (даже 0). Если регистры LORi и RORi заполнены компонентами, a OpRi — кодовым числом символа операции (+, —, X, Л t , К, *; или операции, соответствующей =, =#,<»>, >, <, Л, Л, V» \А-*>- т4, -+*)> то содержимое LORi и RORi автоматически передается во входные регистры соответствующих вычислительных устройств или вмонтированной подпрограммы (в случае операции * содержимое RORi передается во входной регистр подпрограммы для стандартной элементарной функции одного аргумента, имеющей содержимое LORi в качестве отличительного числа). После выполнения требуемых вычислений результат автоматически передается из выходного регистра вычислительного устройства или подпрограммы в RRi и из этого регистра при условии 1>0— в регистр LORi-i или RORi-b с которым заранее RRi был соединен. В то же самое время LORi, RORi, OpR,. и RRi очищаются и упомянутые связи разрываются. (4) Адресное вычислительное устройство, содержащее свободный ячееч-
ный регистр FCR для хранения адреса первой ячейки памяти, доступной для хранения элементов массивов (содержащий в начальном состоянии, после чтения программной ленты, адрес первой ячейки памяти для элементов массивов, не занятой программным вектором), затем адресный регистр AR, а также d+1 адресных шаговых регистров ASR0, ASRb ... ..., ASRd и выходной, или информационный, регистр IR. В начальном состоянии ASRo должен содержать число 1, тогда как ASRi, ..., ASRd — число 0. *
Управляющее устройство. (1) Счетчик команд ОС. (2) Командный регистр OR. (3) Два управляющих регистра CR и CR', первый из которых служит для хранения отличительного числа одного из регистров LOR0, ROR0, RRo, LORb RORb RRb ... ..., LORn, RORn, RRn, IR, PRi, ..., PRa (в начальном состоянии LORo), называемого активным регистром, тогда как второй служит для хранения содержимого CR, пока последний занят вычислением значений индексов компонент массива. (4) Счетчик цикла LC, считающий число выполнений циклического оператора, выполнение которого начато, но еще не кончено (содержащий 0 в начальном состоянии). (5) m-V-X регистр передачи управления JPR0, JPRi, ..., JPRm (jumping place register) для хранения адресов кодовых чисел первых символов (как компонент программного вектора) операторов с метками 0, 1, 2, ... ,т соответственно. (6) к параметрических регистров PRb PR2, ... ..., PR& для хранения кодовых чисел параметров циклических операторов. (7) к параметрических шаговых регистров PSRb PSR2, • • •, PSRft. (8) к регистров окончательных значений FVRi, ...» FVRft. (9) к циклических стартовых регистров LSRb LSR2, ..., LSRft. Если дано, что LC содержит /( = 1, 2, ..., к), то PRi называется рабочим параметрическим регистром.
Выводное устройство. (1) (Печатающий) регистр PrR для хранения действительного числа, которое должно быть напечатано, до тех пор пока оно не будет преобразовано в десятичную форму и напечатано. (2) Реконвертор для преобразования содержимого PrR из машинной формы в десятичную. (3) Телетайп (или подобное устройство) для печатания десятичных (действительных) чисел.
СПИСОК КОМАНД МАШИНЫ
После того как программная лента пробита на перфораторе, вставлена в ленточное читающее устройство и нажата пусковая кнопка, кодовые числа следующих друг за другом символов программы передаются в память, все прочие ячейки памяти и
Список команд
Основной символ, кодовое число которого равно (OR)
Условие
Команда, которая должна быть выполнена
Цифра 6
(1) (CFR)-IO
(CFR)(COR)+6 =ф (COR)
(2) (CFR) #=10
(COR)+6(CFR) =ф (COR),затем 0,1 (CFR) =^ (CFR)
Десятичная запятая,
0,1 =ф (CFR)
Символ конца числа П
(1) LORi — активный регистр
(COR) =т> (LORi), Ю=> (CFR), затем 0 =ф (COR) и активизируется OpRi
(2) RORi — активный регистр, CR' — пуст
(COR) =ф(RORi),10=^ (CFR), затем 0=^(COR) и активи- визируется OpRj, где / есть максимальное число /<i, такое, что OpRj пуст, или если такого числа j нет, то активизируется RRo
(3) RORi — активный регистр,
(CR') равно отличительному числу LORp или RORp
(COR) =$> (RORi), 10 =ф (CFR), затем 0=^ (COR) и активизируется OpRj, где / есть максимальное число, такое, что p<j<i и OpRj пуст, или если такого / нет, то активизируется RRp+i
Простая переменная
(1) LORi— активный регистр
((OR)) =ф (LOR,) и активизируется OpRi
(2) ROR: — активный регистр,
CR' — пуст
((OR))=^ (RORi) и активизируется OpRj с максимальным j<i, для которого OpRj пуст, или если такого j нет, то активизируется RRo
(3) RORi — активный регистр, (CR') равно отличительному числу LORp или RORp
((OR)) =Ф (RORi) и активизируется OpRj с максимальным j, таким, что p<j<i и OpRj пуст, или если такого j нет, то активизируется RRp+i
Основной символ, кодовое число которого равно (OR)
Условие'
Команда, которая должна быть выполнена
Простая переменная
(4) RRo — активный регистр
(RRo) => ((OR)), RRo очищается (т. е. переводится в начальное состояние) и активизируется LORo
(5) PRi — активный регистр
(OR) =т> (PRt) и активизируется LORo
Идентификатор массива
(1)IR — активный регистр
(IR) =Ф ((OR)) и активизируется LORo
(2)LORt, или ROR/, или RRi (7=0) — активный регистр
((OR)), рассматриваемое как информационное слово, разделяется на начальный адрес и d адресных шагов, =ф (AR), (ASRi),...
(ASRd), затем (CR) => =Ф (CR') и активизируется LORi+i
Левая арифметическая скобка (
LORf или ROR< — активный регистр
Активный регистр соединяется с RRi+i и активизируется LORi+i
Правая арифметическая скобка )
Нет операции
Левая квадратная скобка [
Нет операции
Правая квадратная скобка ]
(1) OpR г — активный регистр
Кодовое число операции + =ф (OpRi), 0=^(RORi), затем, как в (2)
(2) RRi — активный регистр
(AR) + (RRi)(ASRi) =ф (OR), затем (CR') =Ф (CR) и CR' очищается, после чего, как в случае простой переменной
Основной символ, кодовое число которого равно (OR)
Условие
Команда, которая должна быть выполнена
Индексный разграничитель JF
(1) OpRi — активный регистр
Кодовое число операции H-^fOpRj), O^RORO, затем, как в случае (2)
(2) RRi — активный регистр
(AR) + (RR,)(ASRi) =ф (AR), затемпоследовательно
(ASR2) => ASRi),...
(ASRd) =ф (ASRd-O, 0=ф (ASRd) и активизируется LOR;
Символ арифметической операции, символ отношения или логическая связка
OpRi — активный регистр
(OR) =ф (OpRi) и активизируется RORi
Символ запоминания =ф
(l)OpRo — активный регистр
Кодовое число операции + => (OpRo), 0=ф (RORo), затем, как в случае (2)
(2)RR0-aKTHBHHft регистр
Очищаются LORo, OpR0, RORo
Символ запоминания >*
(l)OpRo — активный регистр
Кодовое число операции + =$>(OpRo), 0=ф(КОКо), затем, как в случае (2)
(2)RRo — активный регистр,
(ASR0-1, (ASRi+1)=0
(RRo)(ASRj) =ф (ASR;) для /=0, 1, ... i, 1 =ф (ASRi+1), затем очищаются LORo, OpRo, RORo и RR0, после этого (FOR) как начальный адреси(А5Й1)(ASRd) как адресные шаги собираются в информационное слово, =^ (IR), затем (FCR) + + (ASRo) =ф (FCR), 1=> =ф (ASRo) и 0 =ф (ASR,) для /=1, 2, ..., d и активизируется IR
Разграничитель метки _J
(COR)-/
(ОС) =Ф (JPRO, 10=^ (CFR), 0 => (COR)
Основной символ, кодовое число которого равно (OR)
Условие
Команда, которая должна быть выполнена
Символ передачи управления Г-
(1) (COR)=z, RRo пуст или (RRo)>O
(JPRt) =ф (ОС), 10 =Ф (CFR), 0=ф (COR), затем очищаются LORo, OpRo, RORo и RRo и активизируется LORo
(2) (RRo)<O
10 =ф (CFR), 0 => (COR), очищаются LORo, OpRo, RORo и RRo и активизируется LORo
Символ передачи управления |->
(l)(COR)=z, (RRo)>O
Как в случае символа Г"
(2) (RRo) < 0
10 => (CFR), 0=ф (COR)
Символ передачи управления |
(l)(COR)=z, (RRo) <0
Как в случае (1) символа Г”
(2) (RRo) >0
Как в случае (2) символаГ”
Левая фигурная скобка {
(LQ + 1 =Ф (LC), затем активизируется рабочий параметрический регистр
Правая фигурная скобка }
(1) LORo — активный регистр, (LC)=z
((PR0) + (PSR,)<
< (FVRz)
((РР0) + (Р8Р,)=ф((РР,)). (LSR.) =ф (ОС),
(2) LORo — активный регистр,
(LC)=z,((PR,)) +
+ (PSR,)>(FVR,)
(LC) - 1 => (LC)
(3) RRo — активный регистр,
(RRo)>O, (LC)=i
Как в случае (1), затем очищаются LORo, OpRo, RORo и RRo и активизируется LORo
(4) RRo — активный регистр, (RRo) <^ 0
Как в случае (2), затем очищаются LORo, OpRo, RORo и RRo и активизируется LORo
Циклический разграничитель <^=
Нет операции
Основной символ, кодовое число которого равно (OR)
Условие
Команда, которая должна быть выполнена
Циклический разграничитель (
(1) OpRo — активный регистр, (LC)=t
Кодовое число операции + =^>(OpRo), 0 =Ф (RORo), затем, как в случае (2)
(2) RRo — активный регистр (LC)=i
(RRo) =ф ((PRi)), очищаются LORo, OpRo, RORo и RR0 и активизируется LORo
Циклический разграничитель )
Как в случае (, однако (RRo) =ф (PSRf)вместо
(RRo) =ф ((PRO)
Циклический разграничитель :
Как в случае (, однако (RRo) =Ф (FVRi)вместо
(RRo) =ф ((PRi)),далее
(ОС) =ф (LSRi)
Символ размерности массива ®
(l)OpRo — активный регистр
Кодовое число операции + =ф (OpRo), 0=> (RORo), затем, как в случае (2)
(2) RRo — активный регистр
(ASR<)«1, (ASRi+1) = =0
(RRo) (ASRj) =^> (ASR,)для
/=0, 1, ... i, 1 =ф (ASRt+i), затем очищаются LORo, OpRo, RORo и RRo и активизируется LORo
Символ печати #
(RRo) ^ (РгР), затем очищается RRo и активизируется LORo. Во время дальнейшего выполнения программы (РгР) будет преобразовано в десятичную форму и напечатано
Символ продолжения ;
Нет операции
Символ останова .
1
| Останов
Незначительными изменениями списка команд можно сделать возможными некоторые- подходящие изменения программного языка. Например, для любого терма т можно рассматривать ( + т) и ( —т) как термы, а+ти-т как выражения при условии, что список команд, в случае если (OR) равно кодовому числу символа + или —, будет соответствующим образом изменен.
15 Зак. 1622
регистры очищаются, если их начальные состояния не были заданы, или переходят в начальные состояния. Кроме того, информационное слово, указывающее начальный адрес и единственный адресный шаг 1 программного вектора (другие шаги равны 0), засылается в ячейку памяти, адресом которой является кодовое число идентификатора Р, используемого в качестве обозначения программного вектора, и машина начинает работать с начальным адресом программного вектора в качестве содержимого счетчика команд. В каждом рабочем цикле машины сначала содержимое ячейки памяти, адресом которой является содержимое счетчика команд, передается в регистр команд, затем содержимое счетчика команд увеличивается на единицу, наконец, выполняется команда, соответствующая содержимому регистра команд, согласно следующему ниже списку команд, после 'чего начинается следующий рабочий цикл. В формулировке списка команд содержимое регистра обозначается посредством заключения его обозначения в круглые скобки, а содержимое ячейки памяти, адресом которой является содержимое регистра, обозначается посредством заключения обозначения последнего в двойные круглые скобки; кроме того, используются обычные математические обозначения и обозначение =ф-
16*
Математическая лингвистика
Введение в формальный анализестественных языков *)
Н. X омс кий и Дж. Миллер
Язык и коммуникация играют особую, чрезвычайно важную роль в человеческом обществе, и над языковыми проблемами думают и работают учёные самых различных специальностей. Вклад, сделанный психологами, составляет лишь относительно небольшую часть от общих усилий. Поэтому, чтобы дать перспективную картину тех проблем, с которыми сталкивается математическая психология, изучая языковое поведение, нам придется в данной главе, как и в двух следующих), сильно выйти за рамки психологии в традиционном смысле слова.
Существо проблемы, возникающей при описании языка и языкового поведения, состоит в следующем: носитель языка обладает способностью понимать огромное число предложений, которые он никогда ранее не слышал и не произносил, а также способностью создавать в соответствии с ситуацией новые предложения, в свою очередь понятные другим носителям языка. Возникают следующие основные вопросы:
Какова точная природа этой способности?
Каким образом эта способность реализуется?
Как она приобретается человеком?
В последнее время имело место несколько попыток придать вопросам такого рода точную и эксплицитную форму и построить модели, имитирующие некоторые из указанных аспектов поведения носителя языка. Если построенные модели
!) Chomsky N., Miller G. A., Introduction to the formal analysis of natural languages, Handbook of Mathematical Psychology, Vol. 2, New York, Wiley, 1963, 269—322.
достаточно просты, то оказывается возможным чисто абстрактное изучение их внутреннего характера и общих свойств. Исследования такого рода находятся пока еще в младенческом состоянии; лишь очень немногие аспекты языка и коммуникации уже формализованы до такой степени, когда можно думать об абстрактном их изучении. Однако плодотворные результаты в этом направлении уже имеются, и количество их все возрастает. Мы попытаемся дать обзор этих результатов и показать, каким образом эти исследования могут углубить наше понимание природы и функционирования языка.
Первый из трех вопросов касается природы языка, и чтобы ответить на этот вопрос, необходимо выявить внутреннюю структуру, общую для всех естественных языков. В логике и лингвистике возник ряд попыток подойти к этой задаче с принципиально новой стороны; в последние годы эти попытки сконцентрировались вокруг краеугольного понятия «грамматики». Включение данной работы в книгу, посвященную математической психологии, даст возможность познакомить психологов с более реалистичным взглядом на то, что же в конечном счете приобретает человек, когда он обучается говорить и понимать естественный язык. Ассоциирование звуковых реакций с визуальными раздражителями — фактор, который больше всего привлекал внимание психологов, — является далеко не единственным существенным аспектом процесса обучения языку.
Ответом на второй вопрос должно быть формальное (т. е. основанное на построении моделей) описание носителей естественного языка. Психологи, которые, как можно было бы ожидать, должны были бы заниматься этим вопросом в общей программе изучения человеческого поведения, пока что давали лишь самые общие (и часто мало правдоподобные) ответы на этот вопрос. Некоторые ценные идеи, относящиеся к этой тематике,-возникли в общей теории связи; их связь с психологией была самая непосредственная, и она довольно быстро получила признание. Однако понятия теории связи являются преимущественно статистическими и лишь незначительно соприкасаются с тем, что известно о внутренней структуре языка.
Формулируя вопросы (1) и (2) раздельно, мы хотим отчетливым образом отвергнуть то общее мнение, что язык есть не что иное, как множество словесных реакций. Если утверждается, что в некотором естественном языке действует определенное грамматическое правило, то это еще не значит, что люди, которые пользуются этим языком, могут последовательно соблюдать это правило. Дать точное описание языка — это одна задача; дать описание носителя языка — другая. Эти две задачи очевидным образом связаны друг с другом, но не тождественны.
Третий из поставленных вопросов не менее существен, чем первые два; однако здесь имеется пока гораздо меньше исследований, которые могли бы послужить основой для постановки его в абстрактной форме. Те процессы, которые вступают в действие, когда ребенок начинает говорить, находятся пока за пределами математического моделирования. Мы можем только упомянуть о том, что этот вопрос является весьма существенным, и выразить сожаление по поводу того, что ему не уделяется должного внимания в последующем изложении.
УТОЧНЕНИЕ ГРАНИЦ ИССЛЕДОВАНИЯ
Математическое изучение языка и коммуникации — это очень большая тема. Для наших целей ее необходимо сильно ограничить. Чтобы помочь читателю, мы перечислим некоторые из ограничений, наложенных на постановку задач в этой и двух последующих главах.
Первое ограничение состоит в том, что наши интересы сосредоточены в основном на естественных языках. Существуют так называемые формальные языки, которые разрабатываются логиками и математиками и изучение которых составляет основной предмет современной логики. Мы пытались, однако, ограничиться формальным изучением естественных языков, не включая в рассмотрение формальных. В некоторых случаях удобно использовать миниатюрные искусственные языки, чтобы проиллюстрировать какое-то частное свойство естественного языка в упрощенном контексте; большой интерес представляют также языки программирования, разработанные специалистами по вычислительным машинам. Однако наше главное внимание будет сосредоточено на естественных языках.
Следующее ограничение состоит в том, что исключены из рассмотрения все непрерывные системы. Звуковой сигнал, производимый говорящим, является непрерывной функцией времени и обычно представляется с помощью ряда Фурье. Разложение в ряд Фурье особенно удобно в том случае, если изучается влияние непрерывных линейных трансформаций (фильтров). К счастью, этот важный вопрос много и тщательно изучается в математике и теории связи; поэтому мы можем на нем не останавливаться без ущерба для дальнейшего изложения.
Системы связи можно рассматривать как дискретные в силу существования того, что в теории информации иногда называется критерием точности (Shannon, 1949). Критерий точности определяет, каким образом множество всех сигналов, которые могут быть переданы за данный промежуток времени, должно быть разбито на подмножества сигналов, эквивалентных с точки
зрения адресата. Система связи может точно передавать непрерывные сигналы, но, если адресат не может (или не хочет) обращать внимания на тонкие различия, которые система способна передавать, точность канала связи теряется впустую. Таким образом, именно адресат устанавливает степень точности передачи для всей системы. Чем выше критерий точности, тем большим должно быть число различных подмножеств сигналов, которое система связи должна различить и передать.
Адресат, который является для нас объектом изучения, — это человек-слушатель. Критерий точности определяется его способностями, навыками и интересами. На основе различий, которые имеют место в его восприятии, мы можем установить конечное множество категорий, которые будут играть роль дискретных символов. Это множество может быть алфавитом, списком слогов или словарем. Дискретные элементы этих множеств являются теми неделимыми атомами, из которых должны строиться более длинные сообщения. Восприятие этих дискретных единиц слушателем является, вообще говоря, важной психологической проблемой, но мы здесь не будем на ней останавливаться. Некоторые соображения, касающиеся именно восприятия речи, будут изложены кратко в разд. 6, где рассматривается звуковая структура языка, а также в третьей из статей цикла, где ставится вопрос о том, как знание грамматики может быть использовано для организации нашего восприятия речи. Как мы увидим, строгое описание критерия точности для речевой деятельности человека представляет весьма сложную проблему; но пока для нас существенно только то, что люди делят звуки речи на эквивалентные подмножества; это оправдывает введение дискретных обозначений.
Далее, в области дискретных систем мы ограничиваемся системами с операцией соединения (concatenation systems) и изучением алгебраической структуры и взаимосвязей таких систем. В частности, мы представляем речевой поток как последовательность дискретных атомов, которые непосредственно сополагаются, или сочленяются, друг с другом. Хотя это ограничение может показаться очень простым, из него вытекает несколько следствий, на которых стоит остановиться.
Пусть L — множество всех конечных цепочек (включая цепочку длины 0), которые можно построить из^элементов некоторого множества V. Тогда если ср, хё ^ и Ф ~ X есть результат их соединения друг с другом в указанном порядке, являющийся новой цепочкой ф, то ф^ L. Иными словами, L замкнуто относительно операции соединения. Далее, соединение ассоциативно:
(q^xr^q^U^);
пустая цепочка играет роль единственного единичного символа. Множество, которое включает единицу и замкнуто относительно ассоциативной операции, называется моноидом. Поскольку моноиды удовлетворяют трем из четырех требований группы, они иногда называются полугруппами. Группой называется моноид, в котором для каждого элемента имеется обратный.
Хотя мы вынуждены строить речевые высказывания с помощью ассоциативной операции соединения, при этом следует соблюдать осторожность. Рассмотрим, например, омонимичное английское предложение They are flying planes, которое в действительности представляет собой два различных предложения:
They (are (flying planes)), (la)
They"((are flying) planes) (16)
(«Они — летящие самолеты» и «Они водят самолеты»). Если имеется в виду только написание и произношение, то пример (1а) равен примеру (16), и имеет место простое соединение. Но если мы принимаем во внимание грамматическую структуру или значение, то примеры (1а) и (16) отчетливо различны, хотя это различие, как правило, ни фонетически, ни графически не выражается.
Лингвисты обычно решают эту проблему введением допущения о том, что естественный язык имеет несколько различных уровней. В этой работе мы будем рассматривать каждый уровень как отдельную систему с операцией соединения — систему со своими собственными элементами и правилами. Структура на более низком уровне определяется тем, как ее элементы соотносятся друг с другом на следующем, более высоком уровне. Поэтому, чтобы сохранить ассоциативность, мы должны ввести несколько различных систем соединения и изучать отношения между ними.
Рассмотрим две операции, выполняемые человеком над письменным текстом. Первая операция переводит последовательность букв в последовательность звуковых сигналов; мы будем называть ее произношением. Произношения сегментов сообщения являются (с некоторым приближением) сегментами произношения этого сообщения. Таким образом, произношение обладает своего рода линейностью (ср. разд. 6.3):
Произн. (хр Произн. (у) = Произн. (х^у). (2)
Хотя равенство (2) не является абсолютно верным (в частности, в нем игнорируется интонация и артикуляционные переходы между последовательными сегментами), оно в гораздо
большей мере верно, чем аналогичное утверждение, касающееся второй операции.
Вторая операция переводит последовательность символов в некоторое представление ее смысла; назовем ее пониманием. Значения сегментов сообщения очень редко можно отождествить с сегментами значения этого сообщения. Даже если допустить, что над значениями может каким-то образом производиться операция соединения, в большинстве случаев мы скорее всего обнаружим, что при разумной интерпретации соответ^ ствующих понятий
Поним. (хрПоним. (z/ХПоним. (х~ у). (3)
Это, по-видимому, один из способов истолковать то общее по^ ложение гештальт-психологии, что значение целого больше, чем значение линейной суммы его частей. Если не следовать положениям ассоциативной психологии в духе Джемса Милля, то вообще не очень ясно, что нужно понимать под соединением двух пониманий и каким образом эта операция может быть осуществлена. По сравнению с этим операция из равенства (2) кажется уже определенной достаточно точно.
Введение в рассмотрение операции понимания ставит много сложных проблем. В недавнее время появились интересные предложения, касающиеся абстрактного изучения некоторых денотативных (Wallace, 1961) и коннотативных (Osgood, Suci; Tannenbaum, 1957) аспектов значения слов естественного языка. Хотя эти вопросы весьма важны для общей теории психолингвистики, мы не будем в дальнейшем уделять им много внимания. Мы надеемся, однако, что, выяснив некоторые синтаксические вопросы, мы тем самым внесем ясность и в какие-то аспекты семантики — хотя бы потому, что сможем сказать, чем значение не является.
Наконец, как уже было сказано, в нашей работе почти ничего не говорится про обучение языку. Мы в состоянии дать формальное описание некоторых аспектов языка; кроме того, мы располагаем некоторыми математическими моделями про-* цесса обучения. Между тем пересечение этих двух теоретических направлений пока что обескураживающе пусто.
Каким образом ребенок может, без взяких наставлений, в столь короткий срок достичь полного владения языком — это насущнейшая проблема теории обучения. Конечно, при должном старании взрослый человек с достаточными способностями может с помощью обычной грамматики и словаря достичь определенной степени владения новым языком; однако ребенок достигает абсолютного совершенства, притом с несравненно большей легкостью и без всяких явных инструкций. Подробные
инструкции и точное программирование арсенала поощрений, по-видимому, не являются обязательными. Простое наблюдение, притом в течение поразительно короткого периода времени,— это, по-видимому, все, что требуется нормальному ребенку для достижения уровня овладения языком на уровне взрослого человека.
Один из путей выяснения затронутых здесь теоретических вопросов состоит в том, чтобы построить механизм, способный дублировать поведение ребенка (Chomsky, 1962). Важной со-» ставной частью такого механизма должно быть устройство, имеющее на входе определенную выборку грамматически правильных предложений (возможно, с определенными ограничен ниями относительно порядка их поступления) и выдающее на выходе грамматику языка (вместе со словарем). Описание этого устройства должно основываться на определенной гипотезе относительно врожденных ителлектуальных возможностей, которые ребенок должен пускать в ход при овладении языком. Конечно, при обучении могут играть существенную роль и дру* гие данные, поступающие на вход устройства. Так, очень важны, по-видимому, исправления со стороны окружающего языкового коллектива: исправление — это указание, что некоторое языковое выражение не является правильным предложением; таким образом, входом в устройство может быть не только множество предложений, но и множество непредложений. Далее, на входе в устройство могут, по-видимому, появляться указания о том, что один элемент является повторением другого. Какие еще входы окажутся необходимыми, покажут практические исследования.
В равной мере существенно, кроме того, определить свойства грамматики, которую наше обучающееся устройство должно в конце концов дать на выходе. Предполагается, что грамматика отражает некоторые способности владеющего языком взрослого человека. Поэтому грамматика должна, в частности, показать, каким образом человек оказывается в состоянии определить, что такое правильно построенное предложение; кроме того, она должна содержать информацию относительно объединения языковых единиц в более крупные структуры. Обу* чающееся устройство должно, например, понять разницу между примерами (1а) и (16).
Описание грамматики, которая дала бы возможность перечислить в явном виде грамматически правильные предложения языка и их структурные описания, занимает центральное место в дальнейшем изложении. Наша цель состоит в том, чтобы построить формальную грамматику, которая порождает правильные структурные описания предложений, исходя из относи-
тельно малого числа общих принципов устройства предложения; эта грамматика должна быть включена в состав общей теории языковой структуры, которая давала бы возможность обосновать преимущества одной грамматики перед другими. Одна из задач профессионального лингвиста состоит в каком- то смысле в том, чтобы сделать явным тот процесс, который бессознательно осуществляет всякий нормальный ребенок.
Практически работающая модель обучения языку должна основываться на весьма сильных допущениях относительно класса потенциальных грамматик, которые может иметь естественный язык. По-видимому, обучающееся устройство должно иметь в своем распоряжении сведения об общей форме, которую может принимать грамматика, а также некоторую процедуру, позволяющую на основе заданного текста решить, является ли данная грамматика более адекватной, чем некоторая другая. Кроме того, это устройство должно располагать определенными фонетическими возможностями для распознавания и реального построения предложений; оно должно также обладать каким-то механизмом для определения, на основе заданной грамматики, грамматической структуры предложений. Все это должно быть заготовлено заранее, прежде чем начнется обучение. Думать, что адекватная грамматика может быть выбрана из бесконечного числа теоретически допустимых возможностей на основе чистой индукции по конечному числу исходных предложений, — значит совершенно недооценивать сложность проблемы.
Процесс обучения должен, таким образом, состоять в оценке различных возможных грамматик с целью найти ту, которая лучше всего согласуется с исходными данными. Обучающееся устройство должно найти такую грамматику, которая порождала бы все предложения, не захватывая ни одного непред- ложения, и приписывала бы порождаемым предложениям структурные описания таким образом, чтобы все предложения, которые не являются повторениями друг друга, имели описания, отличные друг от друга в соответствующих местах. Конечно, обучающееся устройство нужно будет снабдить определенными эвристическими принципами, которые позволили бы ему, при заданных входах и заданном перечне возможных грамматик, достаточно быстро выбирать несколько наиболее подходящих вариантов, которые затем могут быть подвергнуты более тщательному сравнению; эвристические процедуры нужны также для того, чтобы оценивать одни характеристики грамматик раньше, чем другие. Необходимые эвристические процедуры сильно упростятся, если заранее сделать класс потенциальных грамматик относительно узким. Практически
правильное разделение труда между эвристическими методами и ограничениями на форму грамматики должно еще уточняться в дальнейшем. Ясно, однако, что не следует особенно надеяться на возможности обнаружения правильной грамматики с помощью индукции. В конце концов, даже глупые люди обучаются говорить, а самые умные обезьяны — нет.
НЕКОТОРЫЕ АЛГЕБРАИЧЕСКИЕ АСПЕКТЫ КОДИРОВАНИЯ
Отображение одной полугруппы на другую — это операция, весьма часто встречающаяся в системах связи. Ее можно называть в целом кодированием, понимая под этим все разнообразные процессы кодирования, перекодирования, декодирования и передачи сигналов. Для определенности будем считать, что одна полугруппа состоит из всех цепочек букв, которые могут быть построены при помощи конечного алфавита Л, а другая — из цепочек слов, составляющих конечный словарь V. Таким образом, в этом разделе мы рассмотрим некоторые абстрактные свойства систем с операцией соединения — свойства, которыми характеризуются в равной мере и искусственные, и естественные коды.
Код С есть взаимнооднозначное отображение 0 цепочек в словаре V на цепочки в алфавите Л, такое, что если иг-, v;- — цепочки в V, то 0(Уг^у;) =0(Wi)^0(^j). Где 0 — изоморфизм между цепочками в V и некоторым подмножеством всех цепочек в Л; цепочки в Л определяют записи цепочек из V. В дальнейшем там, где не возникает неоднозначности, мы будем упрощать обозначение, опуская символ ~, обозначающий соединение, и принимая, таким образом, соглашения, обычные для орофографических систем.
Рассмотрим в качестве простого примера код CV Пусть Л = {0, 1}, a V=(vi, ..., 04}. Отображение 0 определим так:
0Ы = 1,
0(^2) = О11,
0(^3) = О1О,0(^4) = ОО.
Это отображение может быть представлено графом вида дерева, см. рис. 1 (о формальном описании графов вида дерева см. Berge, 1958). Узлы дерева соответствуют точкам выбора; путь вниз влево от узла соответствует выбору 1; путь вниз вправо — выбору 0. Каждое слово имеет единственную запись, соответствующую цепи (последовательности ребер) кодового
дерева. Когда достигнут конец цепи и записано целое слово, система возвращается к вершине, готовая записать следующее слово.
Чтобы правильно декодировать сообщение, необходимо, ко* нечно, обеспечить синхронизацию. Так, цепочка слов U4U1U4U1V1 записывается как 0010011; но если первая буква записи будет утрачена, то цепочка будет декодирована как у3у2. Чтобы показать, что первая буква в цепочке является началом сообщения, мы будем писать в начале цепочки символ Д. В противном случае ставится многоточие.
Рис. 1. Граф кодового дерева кода СР
В каждой данной точке последовательности букв, записывающей некоторое допустимое сообщение, имеется фиксированное множество возможных продолжений. Различные начальные цепочки могут допускать в точности одни и те же продолжения. В коде Ci, например, два сообщения, которые начинаются с Д ООО ... и Д 10 ..., могут быть закончены цепочками ...ОД и ... 10 Д, ... 11 Д, или же этими цепочками плюс новое слово. Введем бинарное отношение /?, которое имеет место между любыми двумя начальными цепочками, допускающими одинаковое продолжение. Непосредственно видно, что R рефлексивно, симметрично и транзитивно; иначе говоря, R есть отношение эквивалентности. Две начальные цепочки, которые допускают в точности одинаковые продолжения, будут в даль* нейшем называться эквивалентными справа. В терминах этого отношения можно определить важное понятие состояния: мно*
жество всех цепочек, эквивалентных справа, образует состояние кодирующей системы.
Состояние кодирующей системы — это ее память о том, чтд уже произошло. Каждый раз, когда к кодовой цепочке при-* бавляется одна буква, система может перейти в новое состоя* ние. У кода Ci имеется три состояния: 1) 50, когда только что было записано полностью какое-то слово; 2) Si — после #0... и 3) S2— после #01. Эти состояния соответствуют трем неконечным узлам дерева на рис. 1.
Следуя Шютценберже (Schiitzenberger, 1956), мы можем записывать переходы из одного состояния в другое в виде матриц— такая матрица существует для каждой цепочки букв. Пусть строки соответствуют состоянию после п выданных букв, а столбцы — состоянию после п+1 буквы. Если переход возможен, в клетку ставится 1; в противном случае — 0. Для того чтобы задать код Сь требуются две матрицы: одна показывает, каков результат добавления цифры 0, другая — результат добавления 1 (в общем случае это соответствует разделению кодового дерева на три подграфа, по одному на каждую букву из А). Каждой цепочке букв х сопоставлена матрица Af^; элементы этой матрицы пг^ определяют число возможных путей между состояниями 5г- и Sj при появлении цепочки х в закодированном сообщении. Для кода Ci матрицы, сопоставленные элементарным цепочкам 0 и 1, таковы:
0 1 0"
1 0 0"
мй =
1 0 0
0 0 1
Л 0 0.
Л 0 0.
Матрица для более длинной цепочки есть упорядоченное побуквенное произведение матриц. Произведение Л® матриц Л и ® интерпретируется следующим образом: из Sj система переходит в Sj в соответствии с переходом, допустимым в Л, затем она переходит из Sj в S& в соответствии с переходом, допустимым в ®. Число различных путей от St через Sj к Sk есть Uijbjk. Общее число путей от St к S&, суммируя по всем промежуточным состояниям Sj, есть S aijbj^ т. е. обычное пройз- з
ведение матриц «строка на столбец», которое дает элементы матрицы Л®. В том случае, если некоторая буква вообще не может появиться в данном состоянии, строка ее матрицы, соответствующая этому состоянию, будет состоять целиком из нулей. Цепочке в А, которая не является частью записи никакой цепочки слов из V, будет соответствовать нулевая матрица. В общем случае для этих матриц не обязательно должны
существовать обратные. Матрицы не образуют группы, но изоморфно отображаются на элементы полугруппы.
. Если функция, отображающая цепочки в V на цепочки в Л, не является взаимнооднозначной, то в матрицах или их произведениях появятся элементы, большие единицы; это будет озна* чать, что одна и та же цепочка из п букв является кодовой записью для более чем одной цепочки слов. Когда такая ситуация имеет место, полученное сообщение неоднозначно и не может быть понято, даже если оно было передано без помех и искажений. В этом случае нет никакого способа узнать, какая из возможных цепочек слов имелась в виду.
Поскольку между словами в нормальном потоке речи нет никаких фонетических показателей границы, неоднозначность такого рода возникает в естественных языках довольно часто. Миллер (Miller, 1958) приводит следующий пример для англий-» ского' языка:
The good candy came anyway,
The good can decay many ways
(«Хорошая конфета все-таки появилась», «Хорошее может испортиться многими способами»). В этих примерах цепочку фонетических элементов можно прочесть нейтрально, так что для слушателя возникает эффект, который можно сравнить с визуальным явлением обратной перспективы. Неоднозначная сегментация гораздо более обычна во французском языке; так, следующий куплет хорошо известен как случай полной рифмы:
Gal, amant de la Reine, alia (tour magnanime), Galamment de Гагёпе a la Tour Magne, a Nimes
(«Галь, любовник королевы, уехал (великодушный жест!) галантно с арены в башню Мань, в Ниме»].
Рассмотрение примеров такого рода показывает, что производство и восприятие речи есть нечто гораздо большее, чем про-* изводство и идентификация последовательных фонетических свойств, и что на разных уровнях организации происходят раз^ личные процессы переработки информации. Эти проблемы более подробно рассматриваются в применении к естественным языкам в разд. 6.
Разумеется, трудности сегментации могут быть устранены. Изучение способов их устранения приводит к простой классик фикации кодов (Шютценберже, в частной беседе). Обидами кодами можно называть все коды, которые обеспечивают, различное написание для всех различных цепочек слов. Особым видом общих кодов являются древовидные коды, в которых пра-
вила написания могут быть представлены графически, как на .рис. 1, где каждому слову соответствует отдельная цепь в дереве. Древовидные коды могут относиться к одному из следующих двух типов: леводревовидными называются такие коды, в которых никакой код данного слова не является начальным (левым) сегментом кода какого-либо другого слова; праводревовидными называются соответственно такие коды, в которых ни одно слово не является конечным (правым) сегментом какого-либо другого слова; праводревовидный код можно получить, переписав в обратном порядке все слова, записанные в леводревовидном коде. Особую разновидность в классе древовидных кодов составляют коды, которые являются одновременно право- и леводревовидными; Шютценберже называет их анаграмматическими. Простейшим случаем анаграмматического кода являются равномерные коды, в которых все слова имеют одинаковое число букв и разделение сообщения на слова производится в воспринимающем устройстве просто на основе подсчета. Равномерные коды часто используются в инженерных приложениях теории информации; однако они не имеют большого значения для описания естественных языков.
Другим важным видом кодов являются неравномерные коды. Они обладают тем свойством, что если одиночная помеха или ошибка вызвала смещение границы слова, то эта ошибка не будет продолжать смещать границы слов до бесконечности; в течение конечного интервала времени ошибка будет поглощена и восстановится правильная синхронизация. Код С^ обладает этим свойством, равномерные коды им не обладают. В неравномерном коде границы слов всегда отмечаются появлением какой-либо определенной цепочки букв. Если имеется цепочка, которая заканчивает написание каждого слова, получается лево-неравномерный древовидный код. ' Если эта цепочка состоит из одной буквы (которая в этом случае не может встречаться ни в какой другой позиции), то получается натуральный код. В письменной речи синхронизация принимающего устройства осуществляется с помощью пробела между словами. В устной речи процесс сложнее; обсуждение вопроса о том, каким образом цепочки слов (морфем) отображаются в цепочки знаков фонетической транскрипции, см. в разд. 6.
Чтобы удостовериться в том, что некоторое отображение действительно является кодом, достаточно в соответствии с инженерной практикой убедиться в том, что оно является леводревовидным кодом, т. е. в том, что нет такого слова, запись которого. является начальным сегментом записи некоторого другого слова. Существуют, однако, общие коды, которые не являются древовидными. Шютценберже (Schutzenberger, 1956)
предлагает в качестве простейшего нетривиального примера код С2:
л = {0, i), v = K...,^5},0(^) = ОО,0 (^2) = 001,0(^з) = ОИ,0Ю = 01,0Ю = и.
Отметим, что 0(ui) является начальным сегментом 6(^2), так что этот код не является леводревовидным; кроме того, 0(^4)
Общие коды
Натуральные кодыНатуральные кодыПостоянные кодыПостоянные кодыРис. 2. Классификация кодирующих систем.Рис. 2. Классификация кодирующих систем.
Натуральные коды
Натуральные коды
Постоянные коды
Постоянные коды
Рис. 2. Классификация кодирующих систем.
Рис. 2. Классификация кодирующих систем.
является конечным сегментом 0(^2), так что он не является праводревовидным.
При построении искусственных кодов возникает вполне по- .нятное желание сделать длину закодированных слов как можно меньшей. В этой связи можно показать выполнение для древовидных кодов следующего интересного неравенства (Kraft, 1949). Пусть дан словарь V = {^1, ..., ^}, алфавит Л =
= {#1, ..., «d} и отображение 6, которое является леводрево* видным кодом. Пусть Ci есть длина 6(Ог). Тогда
^D"ci<\.(4)
< = 1
Это неравенство выводится следующим образом. Пусть Wj — число закодированных слов длины /; тогда, поскольку 6 есть древовидный код, получаем
чу2 ■< (D — чу^ D — D2 — чу^Э,
чу3 -< [(D2 — ^D) — ®2] D = DZ — чухО2 — чугО,
чу„<Оп — чу1О,,-1—чу2Оп~2— ... —чу^О.
Делением последней строки на Dn получаем
Но если п>с^, для всех i, то произошло суммирование по всем закодированным словам, откуда и получаем соотношение по формуле (4). Чем ближе для данного кода неравенство (4) под< ходит к равенству, тем ближе подходит данный код к миними^ зации средней длины своих слов. [Неравенство (4) выполняется также для недревовидных кодов (Mandelbrot, 1954; Me Millan, .1956).]
Для всех древовидных кодов, включая, конечно, все нату* ральные коды, имеется некоторая функция w^ определяющая число закодированных слов длины /. Эта функция представляет некоторый теоретический интерес, поскольку она выражает в чрезвычайно простом виде значительную информацию относительно структуры кодового дерева.
Наконец, следует отметить, что код можно рассматривать как простого вида автомат (см. след, главу), который принимает символы в одном алфавите и переводит символы в другой алфавит в соответствии с заранее составленными правилами, которые зависят только от входного сигнала и внутрен^ него состояния автомата. Некоторых более тонких трудностей, возникающих при построении хороших кодов, можно будет коснуться только после того, как мы припишем различным словам различные вероятности (см. гл. 13).
НЕКОТОРЫЕ ОСНОВНЫЕ понятия лингвистики
Центральным понятием данной работы является понятие языка. Поэтому ему необходимо дать ясное определение. Мы считаем, что язык L есть множество (конечное или бесконечное) предложений, каждое из которых имеет конечную длину и построено с помощью операции соединения из конечного множества элементов. Это определение включает как естественные, таки искусственные языки логики и теории программирования.
Чтобы точно определить язык, необходимо установить некоторые общие принципы, которые отделяют последовательности атомарных элементов, являющиеся предложениями, от последовательностей, таковыми не являющихся. Это различие нельзя выразить просто списком, поскольку во всех представляющих интерес системах не накладывается ограничений на длину предложения. В таком случае определить язык можно двумя способами: можно попытаться разработать какую-либо операционную процедуру, которая будет отличать предложения от не- предложений, или же можно построить рекурсивные правила, которые будут перечислять все предложения бесконечного списка. Первая из этих возможностей почти не исследовалась) и останется за пределами нашего обзора. Вторая же составляет один из аспектов того, что естественно назвать грамматикой языка. Мы ограничимся здесь вторым подходом — исследованием грамматик. '
При практическом исследовании естественного языка всякая операционная процедура проверки грамматической правильности, а также всякая грамматика должны удовлетворять определенным эмпирическим требованиям. До того как начата разработка анализирующей или порождающей процедуры, необходимо выделить конечный класс Ki последовательностей, которые с достаточной уверенностью могут быть включены в множество предложений, а также, по-видимому, класс К2 последовательностей, которые можно с достаточной уверенностью исключить из этого класса. Эмпирическая значимость той или иной анализирующей или порождающей процедуры в значительной мере определяется тем, сколь успешно они могут выразить различие между классами Кл и К2. Однако вопрос эм-
лирической адекватности и многочисленные соображения, ко* торые с ним связаны, выходят за рамки данного обзора.
Итак, мы займемся теперь изучением грамматик. Под грамматикой понимается набор правил, которые (в частности) ре* курсивно перечисляют предложения языка. Всякое правило, ко* торое нам может потребоваться, имеет вид
Фь Фл-*Фл+1.(5)'
где фг есть какая-то структура, а отношение —> интерпретируется как выражающее тот факт, что если наш процесс рекурсивного определения порождает структуры фЬ ..., фп, то он порождает также структуру фЛ+ь
Точное определение вида правил, которые могут быть раз* решены в грамматике, — это одна из важных проблем матема* тической лингвистики, и именно к ней мы сейчас обратимся. Рассмотрим следующий частный случай правил вида (5). Пусть в правиле (5) п=1, а ф1 и ф2— цепочки символов некоторого алфавита (или словаря). И пусть имеется конечный язык, со-; стоящий из предложений оь ..., оп, и абстрактный элемент S (от слова sentence — «предложение»), который мы выберем в качестве начального, данного. Тогда грамматику можно пред* ставить так:'
S-^Op .S->on.(6)
В этом тривиальном случае грамматика есть не что иное, как словарь предложений. Рассмотрим более интересный случай грамматики, состоящей из двух правил:
S->aS; S->a.(7).
Эти два правила могут породить любое из предложений а, аа, ааа, аааа, ..J) (очевидно, эти предложения могут быть постам влены во взаимнооднозначное соответствие с числами натурального ряда, так что язык будет счетным). Порождение предложения, например ааа, происходит следующим образом:
S (данный, начальный символ), aS (получается применением первого правила подстановки),
aaS (получается повторным применением первого пра- (8) вила подстановки),
ааа (получается применением второго правила подстановки) .
В дальнейшем мы будем изучать системы правил такого, а также более сложного видов.
Повторим еще раз, что грамматикой языка называется ко-» нечное множество правил, задающее этот язык (это определение будет уточнено в следующих разделах). Допустимой является та грамматика, которая задает список (в общем случае бесконечный) предложений данного языка (т. е. список цепочек символов, которые являются предложениями). Грамматика должна быть, по определению, конечной. Если допустить грамматики с неопределенным множеством правил, то сама проблема построения грамматик снимается: можно просто принять в качестве грамматики бесконечное число предложений, что будет, конечно, бессмысленно. Ясно, что грамматика должна играть роль теории повторяющихся закономерностей построения предложения, которые мы называем синтаксической структурой языка. В той мере, в какой грамматика формализована, она является математической теорией синтаксической структуры языка.
Очевидно, однако, что задачи грамматики не могут быть сведены к простому перечислению предложений языка (хотя практически даже эта цель никогда еще не была достигнута). Мы потребуем, чтобы грамматика приписывала каждому порождаемому предложению его структурное описание, которое определяло бы, из каких элементов построено предложение, каков их порядок, расположение, и т. д., — в общем задавало бы всю грамматическую информацию, необходимую для того, чтобы определить, как это предложение используется и понимается. Теория грамматики должна, таким образом, включать некоторое устройство, позволяющее для любой заданной грамматики G и предложения s, порождаемого грамматикой G, определять, какое структурное описание приписывает грамматика G предложению s. Если рассматривать грамматику как конечно характеризуемую функцию, которая перечисляет язык как свою область значений, то можно считать, что лингвистическая теория должна определить функционал, который сопоставляет каждой паре (G, s), где G — грамматика, a s— предложение, структурное описание s по отношению к G; при этом одна из первоочередных задач лингвистической теории состоит, конечно, в том, чтобы дать ясное определение понятия «структурное описание».
Описанное понимание грамматики возникло недавно и может показаться непривычным. Несколько приводимых ниже примеров могут разъяснить, что здесь имеется в виду. Рассмотрим три искусственных языка, описанных Хомским (Chomsky, 1956).
Язык Lx. В Lx входят предложения ab, aabb, aaabbb и т. д.; иначе говоря, в Lx входят все предложения, содержащие п вхождений буквы а, за которыми следует п вхождений буквы Ь, и не входит никаких других предложений.
Язык L2. В 52 входят предложения аа, bb, abba, baab, aabbaa и т. д.; иначе говоря, в 52 входят все предложения с зеркальным отображением (т. е. предложения, содержащие данную цепочку, за которой следует та же цепочка с обратным порядком символов) и не входит никаких других предложений.
Язык L3. В Л3 входят предложения аа, bb, abab, baba, aabaab и т. д.; иначе говоря, в 53 входят все предложения, в которых за данной цепочкой следует та же цепочка, записанная еще раз, и не входит никаких других предложений.
Грамматика Gx языка Lx может иметь следующий вид: Дано: S,
51 :8->аЬ,
F2:S^aSb,(9)
где S играет роль аксиомы, а 51 и 52— это правила образования, с помощью которых из аксиомы могут быть выведены допустимые цепочки символов. Вывод происходит так, как описано в примере (8). Вывод заканчивается, если в грамматике нет правил, позволяющих произвести замену какого-либо символа в порожденной цепочке.
Аналогичным образом грамматика G^ языка 52 может иметь следующий вид:
Дано: S,
51 : 5->аа, F2:S->bb, F3:S^aSa,^10)
F4:S->bSb.
Интересным и важным свойством языков Lx и 52 является то, что новые конструкции могут вставляться внутрь старых. Поэтому, например, в предложении aabbaa языка 12 имеется отношение зависимости между первым и шестым элементами; внутрь вставлено отношение зависимости между вторым и пя-; тым элементами; и, наконец, в самой глубине расположена зависимость между третьим и четвертым элементами. В соответствии с определением грамматик Gx и G2 никаких ограничений на число таких вставленных друг в друга зависимостей в по^ рождаемых цепочках не наложено.
Не приходится сомневаться, что естественные языки в принципе допускают «скобочные» вставки такого типа, так что-
грамматики естественных языков должны быть в состоянии порождать такие последовательности. Так, английское предложение (The rat (the cat (the dog chased) killed) ate the malt) («Крыса, которую кошка, которую преследовала собака, убила, съела солод»), конечно, является запутанным и маловероятным; тем не менее оно абсолютно правильно с грамматической точки зрения и имеет ясный и однозначный смысл. Чтобы охарактеризовать более полно сложности, с которыми должна встретиться действительная грамматика естественного языка, приведем еще такой пример из английского языка:
Anyone! who feels that if2 so-many3 more4 students5 3vhom we6 haven’t6 actually admitted are5 sitting in on the course than4 ones we have that3 the room had (11) to be changed, then2 probably auditors will have to be excluded, is! likely to agree that the curriculum needs revision
(«Каждый, кто понимает, что если настолько больше студентов, которых мы не пускаем, будет сидеть на лекции, чем тех, которых мы пускаем, что нужно сменить аудиторию, то слушателей придется исключить, скорее всего согласится, что необходимо изменить расписание»).
В примере (11) имеются зависимости у всех пар слов с одинаковыми индексами; в результате получается система вставленных зависимостей, как в языке L2. Более того, картина усложняется наличием зависимостей, пересекающих указанные, например, между словами students и ones, между haven’t... ad-* mitted и have на 10 слов дальше (поскольку здесь опущено подразумеваемое слово admitted). В примере (11) вставленные зависимости соответствуют нескольким конструкциям; в частном случае, когда одна и та же конструкция вставляется сама в себя, мы говорим о самовставлении.
Разумеется, можно с полной уверенностью утверждать, что предложение (11) никогда не будет практически использовано, разве что в качестве примера; но мы можем с той же уверенностью утверждать, что такие безусловно правильно построенные предложения, как Birds eat («Птицы едят»), Black crows are black («Черные вороны черны»), Black crows are white («Черные вороны белы»), Tuesday follows Monday («За понедельником следует вторник») и т. д., также никогда не встретятся в нормальной речи взрослого человека. Как и многие другие предложения, которые настолько очевидным образом истинны или ложны, настолько сложны, нескладны или дефектны в каком-либо ином отношении, что не имеют смысла с точки зрения повседневной жизни, эти предложения просто не используются. Тем не менее предложение (11) является абсо-
лютно правильно построенным и имеет ясный и однозначный смысл; поэтому грамматика английского языка, если она пре- тендует на психологическую адекватность, должна порождать и это предложение.
Если ограничиваться правилами вида ф->1|), где ф и ф— це- почки, как было предложено выше (см. об этом подробно в след, главе, разд. 3), то грамматика, порождающая язык 53, будет заметно сложнее грамматики языка 52. Можно, однако,, построить для языка 53 совсем простую грамматику, если допустить более сильные правила. Условимся заменять через х любую цепочку, состоящую из символов а и 6, и добавим граничный символ it, отмечающий начало и конец предложения. Тогда грамматика языка 53 может иметь следующий вид:
Дано: It S #,
51 :S->aS,
F2:S->bS, (12>
53 : it xS tt •-> it xx tt-
Правила 51 и 52 порождают произвольные цепочки из букв а и Ь; правило 53 удваивает эти цепочки. Ясно, что порождаемый язык — это в точности язык 53 (с граничными символами в конце и в начале предложения).
Важно отметить, однако, что правило 53 принципально отлично от остальных правил, поскольку оно требует анализа цепочки, к которой применяется; такой анализ выходит за пределы возможностей, допускаемых тем ограниченным видом грамматических правил, который мы рассматривали вначале.
Допущение более разнообразных и более сильных правил, таких, как 53, приводит иногда к значительному упрощению грамматики; иначе говоря, новая форма правил дает возможность использовать закономерности структуры языка, которые в противном случае просто нельзя было бы сформулировать. Против правил такого рода едва ли можно выдвинуть какие- либо возражения, так что в разд. 5 мы рассмотрим их структуру и общие свойства более подробно. Поскольку грамматика есть теория языка, а простота и общность являются главными достоинствами теории, мы, конечно, должны попытаться сформулировать теорию языковой структуры таким образом, чтобы она допускала правила, выражающие более глубокие обобщения. Тем не менее вопрос о том, можно ли в принципе породить естественные языки с помощью правил ограниченного вида,— такого, как 51—54 из примера (10), — представляет определенный интерес. Ответ на этот вопрос (как положительный.
так и отрицательный) выявит некоторые важные структурные характеристики естественных языков.
Система зависимостей в языке L3 совершенно иная, чем в языке L2. Так, в цепочке baabaa языка L3 зависимости не вставлены друг в друга, как в цепочке aabbaa из L2; вместо этого четвертый символ зависит от первого, пятый — от второго и шестой — от третьего. Системы зависимостей такого рода также могут быть обнаружены в естественных языках (см. примеры в след, главе, разд. 4.2) и потому должны найти себе место в адекватной теории грамматики. Но в таком случае искусственные языки L2 и L3 отражают реальные свойства естественных языков, причем ниже мы увидим, что эти свойства играют принципиальную роль для определения адекватности различных моделей грамматики.
Чтобы кратко пояснить, как эти соображения применяются к естественному языку, рассмотрим следующий маленький фрагмент грамматики английского языка.
Дано: #S И,
FX*S->ABV
F^.A->CD,
F^B-+EA, the, another,^)
F5: Z)->ball, boy, girl, F6: E -> hit, stuck.
Правила F^— F6— это в действительности группы правил, по- -скольку они указывают несколько возможностей развертывания для каждого из символов С, D и Е. (Обычно мы интерпретируем символ А как группу существительного, В — как группу глагола и т. д.; однако эти привычные имена несущественны для формальной структуры грамматики, хотя они играют важную роль в общей лингвистической теории.) Во всякой настоящей грамматике должны быть, кроме того, фонологические правила, которые кодируют терминальные цепочки фонетическими символами. Для простоты мы отложим рассмотрение фонологического компонента грамматики до разд. 6.
С помощью грамматики (13) можно породить такие терминальные цепочки, как й the boy hit the girl й («Мальчик ударил девочку»). В случае этой простой грамматики все терминальные цепочки имеют одну и ту же структуру составляющих, что может быть выражено с помощью скобок и приписанных им грамматических обозначений:
tt G (a (с^е)с (Dboy)D)A (д (£hit)£ (д (cthe)c (ogirl)D)A)5)s й
или, эквивалентным образом, с помощью размеченного дерева, как показано на рис. 3. Мы предполагаем, что такое дереводолжно быть составной частью структурного описания для всякого предложения; в дальнейшем мы будем называть это дерево маркером структуры составляющих (С-маркером). Грамматика, для того чтобы быть адекватной, должна обеспечивать
Рис. 3.Рис. 3.Графическое‘представление (С-маркер) выводаГрафическое‘представление (С-маркер) выводаправильного предложения.правильного предложения.грамматическиграмматически
Рис. 3.
Рис. 3.
Графическое‘представление (С-маркер) вывода
Графическое‘представление (С-маркер) вывода
правильного предложения.
правильного предложения.
грамматически
грамматически
С-маркером любое предложение. Каждый С-маркер содержит,, в виде меток при конечных узлах, перечень словарных элементов (т. е. слов), из которых составлена данная фраза. Два С-маркера тождественны, если они имеют одинаковую структуру ветвей и одинаковые метки при соответствующих узлах. Заметим, что дерево С-маркера в отличие от кодовых деревьев- разд. 2 характеризуется определенным упорядочением ветвей слева направо — в соответствии с порядком элементов в цепочке.
Роль С-маркеров можно продемонстрировать на предложениях (1а) и (16). Грамматика, которая только порождает заданные цепочки слов, не в состоянии охарактеризовать грамматические различия между этими двумя предложениями.
В лингвистике слова (морфемы) или последовательности, которые функционируют в качестве элементов другой конструкции, называются обычно составляющими. В предложении, С-маркер которого представлен на рис. 3, girl, the girl и hit the girl — это составляющие, а сочетание hit the — нет. Каждая составляющая возводится к некоторому узлу дерева. Если этот узел помечен символом Л, то говорят, что составляющая принадлежит к типу А. Те составляющие, из которых конструкция.
непосредственно образована, являются непосредственными составляющими этой конструкции. Например, на рис. 3 the boy и hit the girl являются непосредственными составляющими предложения; hit и. the girl — это непосредственные составляющие глагольной группы В и т. д. Очевидно, грамматика не может считаться удовлетворительной, если она не дает порождаемым предложениям структурного описания — хотя бы в виде разложения на непосредственные составляющие.
Таким образом, грамматика должна обеспечить С-маркером каждое из бесконечного числа порождаемых предложений, причем каждый С-маркер представляется графически в виде дерева С размеченными узлами и размеченными ребрами (узлам соответствуют грамматические типы составляющих, а ребра, отходящие от одного узла, различаются своим порядковым номером). Цепью дерева мы будем называть последовательность ребер, каждое из которых связано с предшествующим. Так, одной из цепей дерева на рис. 3 является последовательность ((S—В), (В — Е), (Е — hit)), другой — ((А — D), (D — girl)) и т. д. По- •скольку дерево соответствует правильной системе скобок, его ветви не пересекаются (чтобы сделать это неформальное замечание точным в том очевидном смысле, который здесь имеется в виду, нужно было бы различать разные вхождения в дерево одного и того же символа). Символы, которыми размечаются узлы дерева, — это те самые символы, которые используются в Грамматических правилах. Поскольку число правил конечно, а во всяком представляющем интерес случае число С-маркеров бесконечно, то должны найтись такие символы грамматического словаря, которые повторяются в С-маркерах сколь угодно много раз. Более того, должны найтись даже такие цепи, которые содержат некоторый символ более чем п раз для любого фиксированного п. Пусть дано множество С-маркеров; тогда символ словаря называется рекурсивным элементом, если для любого п найдется С-маркер, содержащий цепь, в которой этот символ встречается в качестве названия узла более чем п раз.
Мы выделим три вида рекурсивных элементов, особенно важных для последующего изложения. Рекурсивный элемент А называется самовставленным, если он встречается в конфигурации типа той, которая изображена на рис. 4, а-, леворекурсивным, ^сли он встречается в конфигурации типа 4,6; праворекурсивНым, если он встречается в конфигурации типа 4, в.
Таким образом, если А есть леворекурсивный элемент, то подчиненное ему дерево содержит А только в самой левой цепи (дерево, подчиненное А, — это дерево, которое может быть выведено из А); если А—праворекурсивный элемент, то подчи* пенное дерево содержит А только в крайней правой цепи; если
А — самовставленный элемент, то подчиненное ему дерево содержит А на некоторой внутренней цепи. Эти определения нетрудно превратить в точные, однако мы будем вводить вполне точные определения только в особо интересных случаях.
Анализ рекурсивных порождающих процессов (в частности, порождающих грамматик) основан на исследованиях в области
Рис. 4. Типы рекурсивных элементов.Рис. 4. Типы рекурсивных элементов.(в) Правая рекурсия(в) Правая рекурсия
Рис. 4. Типы рекурсивных элементов.
Рис. 4. Типы рекурсивных элементов.
(в) Правая рекурсия
(в) Правая рекурсия
оснований математики и теории доказательства. Обзор работ по этому вопросу см. в книге Дэвиса (Davis, 1958); более короткое и менее формальное введение см., например, у Роджерса (Rogers, 1959) или у Трахтенброта (Трахтенброт, 1962). Более общее рассмотрение рекурсивных грамматик и их свойств см. в след, главе.
Мы уже говорили в этом разделе о некоторых основных свойствах грамматик и приводили примеры порождающих устройств, которые можно рассматривать как грамматики. Ниже мы попытаемся сформулировать характеристики грамматик более подробно. В разд. 4 мы опишем (более аккуратно) грамматики, в которых правила имеют вид (5), где /2 = 1 и всякая структура является цепочкой, как в примерах (9), (10) и (13). (В следующей главе изучаются (некоторые свойства таких систем.) В разд. 5 мы обратимся к более мощному классу грамматик, родственному грамматике языка L3, предложенной в примере (12), т. е. к грамматикам, не удовлетворяющим тому условию, чтов каждом правиле типа (5) структуры являются цепочками и п=Х. Наконец, в разд. 6 указываются, кратко, некоторые свойства фонологического компонента грамматики, который превращает цепочки, являющиеся выходом рекурсивного порождающего процесса, в последовательности звуков.
Мы описали порождающую грамматику G как устройство, перечисляющее определенное подмножество L множества 2 цепочек фиксированного словаря V и приписывающее структурные описания элементам множества L(G), которое мы называли
языком, порожденным грамматикой G. С точки зрения того применения описываемых моделей, которое мы имеем в виду, будет более реалистично считать, что устройство G приписывает структурные описания всем цепочкам из 2, причем структурное описание цепочки х показывает, в частности, в каких отношениях х отклоняется от правильной построенное™, определяемой грамматикой G. Вместо того чтобы разделять 2 на два подмножества— L(G) (правильно построенные предложения) и L(G) (грамматически неправильные предложения), — можна считать, что G выделяет в 2 класс Li абсолютно правильно построенных предложений и частично упорядочивает все остальные цепочки из 2 с точки зрения степени грамматичности. В этом случае мы говорим, что языком, порождаемым грамматикой G, является L*; но одновременно мы допускаем, что цепочки не из L4 часто тоже могут быть поняты носителями языка,, и даже поняты однозначно, притом на основе структурных описаний, приписанных им грамматикой. Цепочка из 2 Л Li может оказаться понятной в результате наложения на нее интерпретации, которая основана на аналогиях и сходствах с предложениями из Ц. Степень простоты и единообразия такой интерпретации предложения можно считать степенью его грамматичности. Отклонение от грамматических закономерностей — эта обычный литературный и псевдолитературный прием, и такое отклонение отнюдь не должно приводить к непонятности; действительно, как много раз отмечалось, отступления от грамматических норм могут обусловливать сжатость и глубину выражения.
Определение понятия степени грамматичности на основе интерпретации не абсолютно грамматически правильных предложений и построение грамматик, приписывающих предложениям степени грамматичности, не обязательно равные нулю или единице, — все это интересные и важные задачи. Некоторые аспекты этих задач рассматриваются в работах: Chomsky, 1955,. 1961в; Ziff 1960а, 19606, 1961; Katz, 1963. Мы вернемся к этой проблеме в гл. 13. В этой и в следующей главах мы ограничимся грамматиками, которые разделяют все цепочки ровно- на две категории правильные и неправильные, и не устанавли* вают иерархию степеней грамматичности.
НЕКОТОРЫЙ ПРОСТОЙ КЛАСС ПОРОЖДАЮЩИХ ГРАММАТИК
Мы рассмотрим здесь простой класс порождающих грамматик, которые могут быть названы грамматиками непосредственных составляющих, и введем некоторые важные обозначения,.
используемые в этой и двух следующих главах. В этом разделе мы рассмотрим грамматику О:
G = [^- ут. 5, Я],
которая представляет собой систему с операцией соединения, удовлетворяющую следующим условиям.
V есть конечный набор символов, называемый словарем. Цепочки символов этого словаря получаются с помощью операции соединения это ассоциативная и некоммутативная бинарная операция над цепочками в словаре V. Если не возникает неоднозначности, символ " может опускаться.
VT с V. Мы называем Ут терминальным словарем. Дополнение к VT относительно V называется нетерминальным, или вспомогательным, словарём и обозначается VN.
Отношение есть конечное, двуместное, иррефлексивное и асимметричное отношение, имеющее место для конечного числа пар цепочек в алфавите V и интерпретируемое как «подставляется вместо». Пары < ср, ф >, такие, что ср—>ф, называются (грамматическими) правилами грамматики G.
Если A С V, то Д £ VN тогда и только тогда, когда существуют цепочки ф, ф, со, такие, что фДф—*ф<оф. При этом Я £ VT; S £ VN; е^ Ут, где Я есть граничный символ; S — начальный символ, который можно читать как «предложение»; е есть единичный символ, обладающий тем свойством, что для всякой цепочки ф, еф=ф = фе.
Введем еще следующие дополнительные обозначения.
Последовательность цепочек D=(^b ..., фп) (п>1) есть ср-вывод цепочки ф, тогда и только тогда, когда выполняются следующие условия:
Ф=Фа; Ф = фп;
для всякого i < п существуют цепочки ф4, ф2, %, со, такие, ЧТО X ~> <0, Фг = ф1%ф2 И фг+1 = Ф10)ф2.
Очевидно, множество выводов полностью определяется заданием отношения —*, т. е. конечным множеством грамматических правил. Если существует ф-вывод цепочки ф, мы говорим, что ф подчиняет ф, и пишем ф=фф; отношение заявляется, таким образом, рефлексивным и транзитивным.
ф-вывод D цепочки ф называется терминальным, если ф есть цепочка в Ут и D не является собственным началом некоторого другого вывода (заметим, что эти условия независимы).
ф есть терминальная цепочка грамматики G, если для цепочки #5# имеется терминальный Я S Я- вывод; иначе говоря, терминальная цепочка — это (с точностью до граничного
символа) последняя строка терминального вывода, начинающегося с цепочки Д S Д .
Терминальным языком, порождаемым грамматикой О, называется множество терминальных цепочек грамматики G.
Две грамматики G и G* (слабо) эквивалентны, если они порождают один и тот же терминальный язык. Понятие сильной эквивалентности рассматривается ниже.
Естественно, чтобы граничный символ Д удовлетворял тому условию, что если ( фь ..., фп) есть Д S Д- вывод, то для всякого I, такого, чтоф1 = Дф/ Д, ф; не содержит Д. Чтобы обеспечить выполнение этого условия, мы наложим на правила грамматики (т. е. на отношение —») следующее дополнительное условие.
Если а4 ... ат—>01 ... 0П есть правило грамматики (где ai, ..., am, pi, ..., pn € V —{е}), то
рг=£ Д для 1 < i < п;
Р1=Д, тогда и только тогда, когда а1 = Д;
рп = Д, тогда и только тогда, когда ат=Д.
Все эти условия пока еще ничего не говорят о том, как может грамматика обеспечить С-маркер для каждой цепочки. Это требование мы будем иметь в виду при рассмотрении добавочных ограничений на грамматику.
См. работу Чулика (Culik, 1962), где содержится критика более ранних определений грамматики, изложенных в работе Хомского (Chomsky, 1959).
Возвращаясь теперь к понятию рекурсивного элемента из разд. 3, мы можем заметить, что для всякого А £ VN имеют место следующие утверждения.
Если имеются непустые цепочки ф, ф, такие, что Л=^фЛф, то А есть самовставленный элемент.
Если имеется непустой элемент ф, такой, что Л=фЛф, то А есть леворекурсивный элемент.
Если имеется непустой элемент ф, такой, что Л=ффЛ, И4/ то А есть праворекурсивный элемент.
Если А есть нерекурсивный элемент, то не существует таких цепочек ф, ф, что Л г=^фЛф.
Обратные утверждения не обязательно верны для всех грамматик, которые мы рассматривали до сих пор, однако они будут верны для того случая, который1 мы будем рассматривать ниже. Предположим, что грамматика G содержит правила S—*ВАС, BA —> ВВАС, но не содержит правила А-*% ни Для какого х- Тогда не существует цепочек ф, ф, таких, что
Л=ффЛф, хотя А является рекурсивным (а именно самовста- вленным).
При рассмотрении систем такого рода необходимо отличать терминальные цепочки от нетерминальных, а также отдельные (атомарные) элементы от цепочек, образованных их соединением. Чтобы последовательно соблюдать это различие, удобно придерживаться следующих обозначений:
Тип (элемента или цепочки)
Элементы
Цепочки
Нетерминальные
Д В, с, . . .
X, Г, Z, . . .
Терминальные
а, Ь, с, . . .
х, у, Z, . . .
Произвольные
« Р, Y. • • •'
Ф. Ъ•
В предыдущем изложении мы уже фактически придерживались этого соглашения; оно будет использоваться далее до конца работы без дополнительных комментариев.
, Теперь определим условия, при которых процесс порождения каждой терминальной цепочки будет однозначно определять ее С-маркер. Для грамматик, рассматривавшихся до сих пор, никакого естественного способа обеспечить выполнение этого требования не существует. Так, если имеется грамматика со следующими правилами:
S->AB; AB->cde. (15) то нет никакого способа определить, является ли в цепочке cde сегмент cd составляющей типа А (подчиненной в С-маркере символу Л) и является ли сегмент de составляющей типа В (подчиненной в С-маркере элементу В). Наиболее естественный путь достижения желаемого результата это потребовать, чтобы в каждом правиле грамматики подстановка представляла собой замену (на символ или цепочку) ровно одного символа исходной последовательности. Таким образом, грамматики могут иметь правила либо вида (16а), либо вида (166):
Л->со (16а)
ФЛф —>фсоф (или, иначе, Л-хо в контексте ф— ф). (16 6)
Правила вида (166) называются контекстно-связанными, а правила вида (16а)—контекстно-свободными. Грамматика, содержащая только правила вида (16а), называется контекстно-свободной. (Заметим, между прочим, что связанными контекстом или свободными являются только правила, а не элементы в терминальной цепочке.) В любом случае, если ф есть некоторая
строка вывода, а -ф — строка, которая непосредственно следует за ф, то имеется единственный !) набор цепочек фЬ ф2, а, со, таких, что ф = ф1аф2 и ф = ф1О)ф2; тогда мы говорим, что со есть цепочка типа а (т. е. подчинена узлу, помеченному символом а в дереве, представляющем соответствующий С-маркер). В случае контекстно-свободных грамматик верны не только утверждения 1—4 из (14), но и соответствующие им обратные. Тем самым мы получаем определение различных видов рекур- сивности через отношение =ф. В дальнейшем мы будем рассматривать рекурсивные элементы только в контекстно-свободных грамматиках.
Назначение правил типа (166) состоит в том, чтобы иметь возможность выразить контекстные ограничения, наложенные на выбор элементов. Так, в число предложений типа «подлежащее + сказуемое+дополнение» входят, в частности, такие предложения, как The fact that the case was dismissed doesn’t surprise me («Тот факт, что дело было прекращено, не удивил меня»), Congress enacted a new law («Конгресс ввел новый закон»), The men consider John a dictator («Люди считают Джона диктатором»), John felt remorse («Джон почувствовал угрызения совести»); однако не являются грамматически правильными предложения, которые получены из них переменой мест подлежащего и дополнения: I don’t surprise the fact that the case was dismissed («Я не удивляю тот факт, что дело было прекращено»), A new law enacted Congress («Новый закон ввел Конгресс»); John considers the men a dictator («Джон считает людей диктатором»); Remorse felt John («Угрызения совести почувствовали Джона»). Носители английского языка признают, что первые четыре предложения являются абсолютно естественными, тогда как вторые четыре, если они вообще могут быть понятны, требуют специальной интерпретации, которая может быть определена по аналогии с правильно построенными предложениями. В смысле определений из разд. 3, эти предложения имеют степень грамматичности более низкую, чем предыдущие, если вообще не равную нулю. Грамматика, которая не делает различия между этими двумя видами пред-
1) В действительности, для того чтобы гарантировать единственность этих цепочек, множество правил должно удовлетворять некоторым дополнительным условиям; в частности, должна быть исключена возможность появления такой последовательности строчек вывода: АВ, АВС и т. д. В будущем допустим, без дальнейших комментариев, что такие условия выполнены. На самом деле они всегда могут быть выполнены без дальнейшего сужения класса порождаемых языков, хотя, конечно, они как-то влияют на вид класса порождаемых С-маркеров. В случае грамматики с контекстно-связанными правилами эти дополнительные условия вовсе не являются лишними, как мы увидим в следующей главе, разд. 3.
ложений, безусловно не является полноценной, а чтобы естественным и экономным образом выразить это различие, достаточно ввести контекстно-связанные правила, которые накладывают ограничения на выбор подлежащего, сказуемого и дополнения.
В идеальном случае теория грамматики должна содержать определение множества допустимых грамматик, множества допустимых предложений и множества допустимых структурных описаний. Кроме того, она должна включать общий метод приписывания каждому предложению одного или нескольких структурных описаний в соответствии с грамматикой. Иначе говоря, грамматика должна быть выражена в столь явной форме, чтобы по ней можно было однозначно определить, что она утверждает относительно каждого из порожденных предложений (ср. Chomsky, 1961а). Чтобы построить теорию грамматик непосредственных составляющих, мы фиксируем словари Vn и Ут как заданные не пересекающиеся друг с другом конечные множества символов, удовлетворяющие описанным выше условиям. В этом случае грамматика есть просто конечное отношение, заданное в множестве цепочек словаря V=V^UVT и удовлетворяющее этим условиям. Заметим, что проблема нахождения VT в случае естественного языка сводится, по существу, к проблеме построения универсальной фонетической теории (включая, в частности, разработку универсального фонетического алфавита и правил, определяющих общие законы распределения фонетических сегментов). Более подробно об этом см. разд. 6 и приведенные там ссылки. Кроме того, мы должны наложить ограничение на длину морфемы (чтобы словарь Ут был конечным) и установить множество «грамматических морфем» (т. е. морфем, выражающих грамматические признаки — такие, как время, вид и число). Эта последняя проблема, так же как проблема получения обоснованной интерпретации для элементов множества VN, является классической проблемой «универсальной грамматики». Эта проблема состоит в получении независимого от языка определения множества грамматических категорий, которые могут использоваться или не использоваться в данном языке. Такое определение должно, без сомнения, опираться как на формальный анализ грамматической структуры, так и на соображения чисто семантического характера. Эти вопросы не имели популярности в последние несколько десятилетий, хотя нет никаких оснований считать их недостойными серьезного рассмотрения. Напротив, они остаются важными и первостепенными для общей лингвистики.
К изучению различных типов грамматик непосредственных составляющих мы вернемся в следующей главе.
ТРАНСФОРМАЦИОННЫЕ ГРАММАТИКИ
Как уже говорилось в разд. 3, правила грамматики всегда могут быть сведены к виду
Vz, - - -»(17)
где epi, ..., *ф — структуры произвольного вида, а символ —* означает, что если фЬ ..., фп были порождены в процессе вывода, то на определенном шаге может быть порождено гр. В разд. 4 мы рассматривали простой вид грамматик, называемый грамматиками непосредственных составляющих; правила этих грамматик представляют собой очень специальную разновидность правила (17), а именно случай, когда п = \ и каждая из структур ф1 и гр является просто цепочкой символов [кроме того, мы потребовали, чтобы грамматика удовлетворяла дополнительно условию (16)]. В этом разделе мы рассмотрим класс грамматик, состоящих из двух синтаксических компонентов: из НС-компонента (грамматики непосредственных составляющих, удовлетворяющей условиям из -разд. 4 и некоторым другим) и из Т-компонента (собственно трансформационной грамматики), содержащего правила вида (17), где п может быть больше 1 и структуры ф1, ..., фп и -ф представляют собой не цепочки, а С-маркеры. Такие грамматики мы будем называть трансформационными.
Целесообразность обобщения понятия грамматики, которое приводит к трансформационным грамматикам, обусловлена тем психологически очевидным фактом, что некоторые пары предложений представляются грамматически связанными друг с другом. Почему, например, предложение John threw the ball («Джон бросил мяч») воспринимается как связанное с предложением The ball was thrown by John («Мяч брошен Джоном»)? Эта связь не исчерпывается тождеством значения, поскольку аналогичного рода близость ощущается между предложениями John threw the ball («Джон бросил мяч») и Who trew the ball? («Кто бросил мяч?») или Did John throw the ball? («Бросил ли Джон мяч?»). Эту связь нельзя свести к какому-либо простому формальному отношению (в лингвистической терминологии — к отношению «совместной встречаемости») между наборами слов, способных заполнять определенные места в соответствующих парах предложений; действительно, такие предложения, как The old man met the young woman («Старый человек встретил молодую женщину») и The old woman met the young man («Старая женщина встретила молодого человека»), соотносятся, конечно, не таким же образом, как соответствующие друг другу предложения в активе и пассиве, хотя отличие этого соотноше-
ния от соотношения в паре актив — пассив не может быть выражено в чисто дистрибутивных терминах (см. об этом Chomsky, 19626). В грамматике непосредственных составляющих все такие пары предложений будут порождаться более или менее независимо и, следовательно, не будут находиться в каких-либо явных отношениях друг к другу.
Некоторые недостатки грамматикнепосредственных составляющих
Лингвистическая теория отказывается от грамматик непосредственных составляющих в пользу трансформационных грамматик, поскольку в грамматике непосредственных составляющих невозможны многие естественные обобщения и упрощения правил образования предложений. (Анализ различных соображений по этому вопросу выходит за рамки настоящей работы; см. об этом Chomsky, 1955, гл. 7—9; 1957, гл. 6, 7; 1962; Lees, 1957, 1960; Postal, 1963; ср. также след, главу, разд. 4.2.) Однако некоторые из причин формальной несостоятельности грамматик непосредственных составляющих показать довольно легко; при этом необходимо будет учесть ряд общих соображений, которые обычно упускаются из виду при оценке адекватности грамматики.
Грамматика должна породить язык, представляющий собой бесконечное множество предложений. Кроме того, она должна сопоставить каждому из этих предложений структурное описание; иными словами, она должна породить бесконечное множество структурных описаний, каждое из которых полностью определяет данное предложение (хотя обратное может быть неверно). Таким образом, при оценке порождающей способности грамматик мы можем различать два вида эквивалентности. Две грамматики называются слабо эквивалентными, если они порождают один и тот же язык, и сильно эквивалентными, если они порождают одно и то же множество структурных описаний. В этой главе, так же как в следующей, мы рассматриваем в основном слабую эквивалентность, поскольку она легче поддается описанию и потому более подробно изучена. Тем не менее сильная эквивалентность является в конечном счете гораздо более интересным понятием. Не представляют интереса такие грамматики, которые правильно порождают предложения естественного языка, во не могут приписать им правильного структурного описания.
Вопрос о том, могут ли естественные языки, рассматриваемые как множества предложений, порождаться грамматикой непосредственных составляющих того или иного типа, — это
вопрос интересный и важный. Тем не менее нет сомнений в том, что множество структурных описаний, ассоциированных с предложениями, скажем, английского языка, в принципе не может быть порождено грамматикой непосредственных составляющих, сколь бы сложны ни были ее правила. Дело в том, что грамматика непосредственных составляющих по необходимости накладывает на предложение слишком подробный анализ, что вытекает из самого способа определения С-маркера предложения на основе его грамматики. Суть проблемы может быть показана на таких предложениях, как
Why has John always been such an easy man to please? (18) («Почему Джон всегда был человеком, которому так легко угодить?»). Все это вместе — предложение; последние несколько слов образуют именную группу; каждое из слов принадлежит к определенной синтаксической категории. Однако для какого- либо описания структуры составляющих этого предложения, помимо приведенного, у нас уже нет никаких оснований. Чтобы дать такое структурное описание, грамматика непосредственных составляющих должна содержать правила вроде следующих:
5->why has NP always been NP.
NP -> John,
7VP->such an easy N to Vtransitive,(19)
N-> man,
V transitive please.
Ясно, что такой набор правил является абсурдным и оставляет все структурные закономерности этого предложения невыраженными. Более того, ассоциированный С-маркер этого предложения имеет тот недостаток, что он не отражает грамматической связи между словами man и please — такой же, как в предложении it pleases the man («Это доставляет человеку удовольствие»), так что глагольно-объектное отношение в этой паре слов остается невыраженным (ср. разд. 2.2 след, главы). Вообще грамматика непосредственных составляющих в значительной мере лишается своего смысла, если в нее входят правила, при которых некоторые конструкции состоят из шести непосредственных составляющих, как в примере (19).
Указанное серьезное затруднение перерастает в принципиальную неадекватность, когда мы обращаемся к собственно сочинительным конструкциям, таким, как в следующем примере:
The man was old, tired, tall, ..., and friend’y. (20)
(«Человек был пожилой, усталый, высокий, ..., и добродушный»). Чтобы породить цепочку такого рода, грамматика непосредственных составляющих либо должна приписать ей некоторую произвольную структуру (и тогда использовать, например, право-рекурсивное правило), т. е. породить неправильное структурное описание, либо она должна содержать бесконечное число правил. Ясно, что в случае чистого сочинения в соответствии с самим значением термина никакой внутренней структуры в последовательности сочиненных элементов существовать не может.
Можно попытаться решить этот вопрос путем расширения понятия грамматики непосредственных составляющих и допущения правил типа
Предикат->Прил.” and Прил. (п>1). (21)
При попытке сформулировать это правило таким образом, чтобы оно удовлетворяло требованиям формальной адекватности, возникнут многочисленные трудности. Кроме того, такое решение второго вопроса совершенно ничего не дает для решения тех проблем, которые возникают в примере (19). Вообще для каждого частного случая трудностей, возникающих в грамматиках непосредственных составляющих, можно придумать ad hoc какой-нибудь прием, который позволит эту частную трудность обойти. Гораздо предпочтительнее, однако, был бы такой пересмотр всей схемы понятий, который дал бы возможность избавляться от этих трудностей всегда одним и тем же путем. При этом грамматика непосредственных составляющих в ее прежнем виде должна описывать только тот класс предложений, для которого она адекватна и который первоначально обусловил само ее появление. Насколько нам известно, только теория трансформационных грамматик дает какие-то основания надеяться, что эта цель когда-либо будет достигнута.
Множество правил трансформационной грамматики удовлетворяет следующим условиям. Прежде всего имеется грамматика непосредственных составляющих, т. е. набор правил вида срЛф —> фом|), где Л есть единичный символ, а (о непусто. Этот компонент грамматики порождает конечное число С-терминаль- ных цепочек, с каждой из которых мы можем ассоциировать, как и раньше, размеченное дерево, С-маркер, представляющее ее структуру составляющих. Затем мы добавляем к грамматике множество операций, называемых грамматическими трансформациями, каждая из которых отображает набор п С-маркеров (ц> 1) в новый С-маркер. Можно допустить, чтобы грамматика обладала рекурсивными свойствами за счет одних только трансформаций. Среди этих трансформаций некоторые
являются обязательными: они должны применяться к любому выводу (кроме того, некоторые трансформации обязательны по отношению к некоторым другим, т. е. должны применяться, если применены некоторые другие трансформации). Цепочка, полученная в результате применения всех обязательных и некоторых факультативных трансформаций, называется Т-терминаль- ной цепочкой. Т-терминальную цепочку можно рассматривать, в сущности, как последовательность морфем. Т-терминальная цепочка, полученная в результате применения только обязательных трансформаций, называется ядерной цепочкой. Если язык вообще содержит ядерные цепочки, то они будут соответствовать только наиболее простым предложениям. Идея использования грамматических трансформаций для преодоления недостатков порождающих грамматик других типов возникла из исследований 3. Харриса, который предлагал использовать эти операции для «нормализации» текста (Harris, 1952а, 19526). Описание, которое приводится ниже, основано преимущественно на работе Хомского (Chomsky, 1955); изложение такое же, как в работе Chomsky, 1961а. Ср.* несколько иное развитие исходной идеи трансформации в статье Харриса (Harris, 1957).
Как уже говорилось, причины включения в грамматику правил трансформации весьма просты. Имеются предложения (простые утвердительные предложения в активной форме без сложных глагольных времен и конструкций), которые можно очень просто породить грамматикой непосредственных составляющих (если говорить точно, то это утверждение верно лишь для терминальных цепочек этих предложений). Имеются другие предложения (в пассивной или вопросительной форме, с прерванными конструкциями и сложными оборотами, получившимися в результате вставки трансформированных простых предложений, и т. д.), которые не могут быть естественным и экономным образом порождены грамматикой непосредственных составляющих, но которые тем не менее находятся в определенных закономерных отношениях с предложениями более простой структуры. Эти отношения и выражаются трансформациями. Трансформации, применяемые для порождения более сложных предложений (и их структурных описаний) из уже порожденных более простых, дают объяснение тем аспектам грамматической структуры предложения, которые не могут быть описаны грамматикой непосредственных составляющих.
Задача состоит, следовательно, в том, чтобы сформулировать общее и абстрактное понятие грамматической трансформации, которое воплотило бы в себя все эти идеи и упростило бы выражение формальных соотношений между предложениями, играющих важную роль в языке.
Уточнение определения грамматической трансформации
Трансформация не может быть операцией, определенной на множестве терминальных цепочек и не зависящей от структуры этих цепочек. Действительно, в этом случае трансформация пассива могла бы с одинаковым успехом применяться в предложениях (22) и (23):
The man saw the boy-> The boy was seen by the man, (22) The man saw the (The boy was seen by the man leave
boy leave ^(The boy leave was seen by the man ' '
(«Человек увидел мальчика»-> «Мальчик был увиден человеком»; «Человек увидел/ как мальчик уходил»^ «*Мальчик был увиден человеком уходить», «*Мальчик уходить был увиден человеком»).
Чтобы применить трансформацию к некоторой цепочке, необходимо знать структуру составляющих этой цепочки. Так, при трансформации, которая превращает утвердительное предложение в вопросительное, определенный элемент глагольной группы может выноситься в начало предложения. Применение этой трансформации к предложению The man who was here was old («Человек, который был здесь, был старым») даст предложение Was the man who was here old? Для образования вопроса на первое место выносится второе was. Если вынести на первое место первое was, то получится грамматически неправильное сочетание Was the man who here was old? Поэтому мы должны каким-то образом указать, что трансформация вопроса должна применяться ко второму was, которое является элементом глагольной группы главного предложения, а не к первому. Иными словами, мы должны знать структуру составляющих исходного предложения.
Цели трансформационного анализа не были бы достигнуты также и в том случае, если бы мы стали рассматривать трансформации как правила подстановки более высокого уровня, которые применяются к цепочкам из незаконченных выводов. Так, можно показать, что трансформацию пассива нельзя рассматривать просто как правило подстановки вида
NPT + Auxiliary + Verb + NP^ -> NP^ +
+ Auxiliary + be + Verb + en + by + NPV(24)
Это правило относится к типу, допускаемому грамматикой непосредственных составляющих, как она была определена в разд. 4, и не удовлетворяет только условию (16) (т. е. условию
о том, чтобы подстановка производилась на место единичного символа), которое обеспечивает возможность построения соответствующего С-маркера. Достаточным аргументом против введения трансформации пассива с помощью правила (24). является то, что трансформации, определенные таким образом, не смогут служить способом упрощения грамматики в случае появления контекстных ограничений на выбор лексических элементов (ср. примеры в конце разд. 4). В пассивных предложениях, соответствующих этим примерам, имеют место те же самые ограничения на выбор лексических элементов, хотя здесь эти элементы встречаются в ином грамматическом оформлении. Однако если трансформация пассива будет применяться как одно из правил подстановки на той стадии вывода, когда выбор субъекта, действия и объекта еще не производился, то для соответствующего выбора агента, действия и субъекта в пассиве потребуется совершенно отдельный набор контекстно-связанных правил. Одно из достоинств трансформационной грамматики состоит в том, что она дает возможность избежать этого ненужного дублирования правил выбора и сопутствующей ему потери общности. Это преимущество будет, однако, утрачено, если трансформации будут применяться раньше, чем определен лексический состав предложения.
Представляется очевидным поэтому, что трансформационное правило должно применяться к полностью построенному С-мар- керу, а поскольку трансформационные правила должны снова применяться к трансформам, то результатом трансформации должен быть тоже С-маркер — производный С-маркер терминальной цепочки, полученной в результате трансформации. Таким образом, трансформация превращает С-маркеры в новые С-маркеры.
Теперь мы можем определить понятие грамматической трансформации следующим образом. Пусть Q есть С-маркер терминальной цепочки t, причем t может разделяться на последовательные сегменты £ь ..., t-n таким образом, что всякий сегмент ti можно возвести в Q к некоторому узлу, помеченному символом А{. В таком случае мы говорим, что цепочка t может быть проанализирована относительно Q как (/i, ..., t^ Ль ..., Лп).
В простейшем случае трансформация Т отчасти определяется последовательностью символов (Ль .. ., Лп), которая задает область ее применения по следующему правилу.
Цепочка t с С-маркером Q входит в область применения трансформации Т, если t может быть проанализирована относительно Q как (/i, ..., tn; Ль ..., Лп).
В этом случае (^i, ..., /п) есть собственный анализ t относительно (Q, ТУ а (Ль ..., Лп) —структурный индекс Т.
Чтобы закончить определение трансформации Г, необходимо описать те изменения, которые она производит в элементах собственного анализа цепочек, к которым применима. Например, трансформация может заключаться в перестановке или выбрасывании некоторых элементов, в замене их на некоторые другие, в постановке на заданное место некоторых постоянных цепочек и т. д. Предположим, что трансформации Т сопоставлена лежащая в ее основе элементарная трансформация ТеЬ такая, что Tei (I; Л, ..., ^—сц, rjxe (t^ ..., t^ —собственный анализ t относительно (Q, Т). В этом случае цепочка, получающаяся в результате применения трансформации Т к цепочке t с С-маркером Q, такова:
T\t, Q] = 01 ... а„
Ясно, что было бы нежелательно называть грамматической трансформацией любое соответствие того вида, который только что был описан. Нежелательно было бы, например, включать в грамматику трансформации, которые соотносят друг с другом такие пары, как John saw the boy («Джон увидел мальчика»)—* ГП leave tomorrow («Я уезжаю завтра»); John saw the man («Джон увидел человека») —*Why don’t you try again? («Почему бы тебе не попытаться еще раз?»); John saw the girl («Джон увидел девочку») —» China is industrializing rapidly («Китай индустриализируется быстрыми темпами»). В грамматике должны допускаться только такие трансформации, которые выражают реальные структурные соотношения между предложениями: соотношения типа актив — пассив, утверждение — вопрос, утверждение — номинализация и т. д. Произвольного сопоставления предложений с помощью трансформаций можно избежать, если наложить дополнительное, вполне естественное ограничение на элементарную трансформацию. Это ограничение таково !).
Если Tei — элементарная трансформация, то для любых чисел I и п и для любых цепочек хь ..., хп, у^ ..., уп должно выполняться следующее условие: Тех Ц\ х^ • • •, *п) должно быть получено из Tei (1; у^ ..., уп) в результате замены yj на х^ для всех j -С п.
Иными словами, результат элементарной трансформации должен быть независим от того, к какой цепочке она применяется. Тем самым исключается возможность применения трансформаций к частным цепочкам слов (или морфем). При этом условии, однако, никакая единая элементарная трансформация
’) При более точной формулировке необходимо было бы различить разные вхождения одной и той же цепочки (см. Chomsky, 1955),
не может одновременно заменить John will try («Джон попытается») на Will John try? («Попытается ли Джон?») и John tried («Джон пытался») на Did John try? («Пытался ли Джон?»), хотя это, безусловно, одна и та же простая трансформация вопроса. Элементарная трансформация, которая нужна в данном случае, должна превратить XiX2x3 в х2Х1Х3. Это значит, что трансформация Tei должна быть определена для произвольных Xi, х2, х3 следующим образом:
7^(1; хъ х2, х3) = х2, ТеА^ хх, х2, x3) = X!, Гel (3» Хх, Х2, Х3) = Х3.
Чтобы такое правило дало в результате фразу Did John try?, необходимо применять трансформацию вопроса не к John tried, а, скорее, к гипотетической цепочке John + past + try (терминальной цепочке, аналогичной по структуре предложению John will try), которая лежит в основе предложения John tried. Вообще мы не можем требовать, чтобы терминальные цепочки находились в каком-то простом соотношении с реальными предложениями. Здесь приходится вводить обязательные преобразования (трансформационные и фонологические), которые определяют физический облик элементов и одновременно переставляют их, выбрасывают некоторые элементы и т. д.
Чтобы понятие трансформации было эмпирически адекватным, его необходимо обобщить. Прежде всего нужно допустить применение трансформации к паре С-маркеров. (Трансформации, подобные рассмотренным выше, которые применялись к одному С-маркеру, мы будем теперь называть сингулярными трансформациями.) Так, терминальная цепочка, лежащая в основе предложения His owning property surprised me («То, что у него есть собственность, удивило меня»), получается из полученных ранее цепочек it surprised me («Это удивило меня») и he owns property («У него есть собственность»). Чтобы иметь возможность получать такие предложения, можно, в простейших случаях, допускать, чтобы в предшествующей грамматике непосредственных составляющих выводы предложений. начинались не только с д5д,ноис#5дд5д... . ..Ц5Ц.В этом случае мы введем структурный индекс (Д, NP, V, NP, Д, Д, NP, V, NP, Д), из которого с помощью трансформации можно получить предложение His owning property surprised me. Более подробное и аккуратное изложение этого вопроса см. (Chomsky, 1955).
Необходимо, далее, обобщить формулировку области определения трансформации и собственного анализа трансформи-
руемой цепочки. Во-первых, нет необходимости требовать, чтобы элементами структурного индекса были отдельные символы» Во-вторых, можно допустить, чтобы область определения трансформации задавалась конечным множеством структурных индексов. Более того, можно задавать область определения трансформации просто некоторым структурным условием, основанным на предикате «быть анализируемым», введенном выше. С помощью этого понятия можно определить разложение терминальных цепочек на элементы собственного анализа, после чего элементы структурного индекса могут оставаться неопределенными. С помощью этого и некоторых других обобщений можно построить эксплицитное и точное обоснование трансформационной грамматики.
Структура составляющих в трансформированныхцепочках
Грамматическая трансформация задается структурным условием, выраженным с помощью предиката «быть анализируемым» и элементарной трансформации. Как было, однако, замечено, трансформации должны порождать не только предложения, но и их С-маркеры. Поэтому нужно показать, каким образом терминальной цепочке, полученной в результате трансформации, приписывается структура составляющих. Лучше всего было бы получать производные С-маркеры с помощью набора правил, которые составляют часть общей лингвистической теории, а не с помощью дополнительного пункта в определении каждой трансформации. Точная формулировка этих правил потребовала бы анализа исходных понятий, который выходит далеко за рамки настоящего неформального изложения (см. в этой связи Chomsky, 1955; Matthews, 1962; Postal, 1962). Тем не менее некоторые подходы к общему решению этой проблемы кажутся достаточно ясными. Прежде всего все трансформации можно разделить на небольшое число классов в соответствии с элементарной трансформацией, на которой они основаны. Для каждого класса можно задать общее правило, приписывающее трансформу производный С-маркер, вид которого зависит фиксированным образом от С-маркеров исходных терминальных цепочек. Приведем несколько примеров для иллюстрации тех общих принципов, которых необходимо при этом придерживаться.
Основным рекурсивным устройством в грамматике являются обобщенные трансформации, которые порождают новую цепочку из пары исходных. (Ясно, что число сингулярных
трансформаций, которые могут применяться к одному и тому же предложению, ограниченно.) Большинство обобщенных трансформаций основано на элементарных трансформациях, которые подставляют трансформированный вариант второго члена пары исходных терминальных цепочек вместо некоторого элемента собственного анализа первого члена пары. (В терминах,
Рис. 5. С-маркер, возникающий при интерпретации предложений с союзом and как полученных в результате трансформации присоединения.
предложенных Лизом (Lees, 1960), это соответственно цепочка- составляющая и цепочка-матрица.) В этом случае для определения производной структуры составляющих трансформа достаточно, по-видимому, единого общего правила. Пусть трансформация заменяет символ а из Qi (цепочки-матрицы) на о2 (цепочку-составляющую). Тогда С-маркер результирующей цепочки есть С-маркер Qi, где а заменен на С-маркер о2.
Все остальные обобщенные трансформации — это трансформации присоединения, которые состоят в том, что берется некоторый элемент собственного анализа а вместе с элементом структурного индекса р, который опосредствованно подчиняет а ,(и всеми промежуточными звеньями С-маркера, которые подчиняются элементу р и подчиняют а), и присоединяются (быть может, с добавлением некоторой константной цепочки) к некоторому другому элементу собственного анализа. Таким способом, например, фраза John is old and sad («Джон стар и печален») с С-маркером, представленным на рис. 5, получается из фраз John is old, John in sad («Джон стар», «Джон печален»)
с помощью трансформации со структурным индексом (WP, is, Л, Д it, NP. is, Л).
Сингулярные трансформации часто являются простыми перестановками элементов собственного анализа. В частности, такая трансформация превращает рис. 6, а в рис. 6, б. Общий принцип построения производного С-маркера состоит в этом случае
ба)ба)Рис. 6. Сингулярная трансформация, переводящая (а) в ^б\ — это перестановка; результатом ее применения Является сокращение «количества структуры», приписываемой предложению.Рис. 6. Сингулярная трансформация, переводящая (а) в ^б\ — это перестановка; результатом ее применения Является сокращение «количества структуры», приписываемой предложению.(d)(d)
ба)
ба)
Рис. 6. Сингулярная трансформация, переводящая (а) в ^б\ — это перестановка; результатом ее применения Является сокращение «количества структуры», приписываемой предложению.
Рис. 6. Сингулярная трансформация, переводящая (а) в ^б\ — это перестановка; результатом ее применения Является сокращение «количества структуры», приписываемой предложению.
(d)
(d)
в том, что в С-маркере исходной цепочки производятся минимальные изменения, совместимые с требованием о том, чтобы получившийся С-маркер также был деревом. Трансформация, которая дает предложение Turn some of the lights out («Выключи некоторые лампы»), основана на элементарной трансформации, меняющей местами второй и третий элементы трехэлементного собственного анализа; эта трансформация имеет структурный индекс (V, Prt, NP) (разумеется, здесь приводится частный случай некоторого более общего правила).
Рис. 6 иллюстрирует весьма характерное влияние, оказываемое на структуру предложения перестановками: перестановки имеют тенденцию сокращать «количество структуры» у терминальной цепочки, к которой они применяются. Так, если на рис. 6, а представлена полностью бинарная структура, то на рис. 6, б одним бинарным разложением меньше, а вместо этого появляется одно тернарное разложение; символ Prt больше не подчиняется символу Verb. Хотя бинарные составляющие весьма характерны для простых структурных описаний, порождаемых грамматикой непосредственных составляющих, они довольно редки в С-маркерах действительных предложений. Транс-
формационный подход к синтаксическому описанию позволяет, таким образом, сохранить зерно истины, содержащееся в обычных теориях непосредственных составляющих, с их предпочтением бинарных составляющих, и в то же время освобождает от необходимости произвольным образом приписывать предложению излишнюю структурную организацию. Далее, последовательным применением трансформаций присоединения и перестановки, которые были описаны выше, можно породить разновидности С-маркеров, которые в принципе не могут быть Порождены грамматиками непосредственных составляющие [в частности, С-маркеры сочиненных конструкций типа (20)]. Аналогично можно показать, каким образом трансформационный подход может помочь в решении проблем, упомянутых в связи с примером (18) и ему подобных (ср. разд. 2.2 след, главы), хотя практические трудности,которые встречаются при разработке конкретных анализов, нельзя недооценивать.
Одни сингулярные трансформации состоят в добавлении константных цепочек в заданное место собственного анализа; другие — в устранении некоторых из элементов собственного анализа. Трансформации первого типа можно рассматривать как аналогичные трансформациям присоединения. При трансформациях второго типа устраняются узлы, которые не подчиняют никакой терминальной цепочки, а в остальном С-маркер остается неизменным. По-видимому, эллиптические трансформации можно существенным образом ограничить. Наложение ограничений на эллиптические трансформации играет основополагающую роль при определении класса языков, который может быть порожден трансформационными грамматиками.
Итак, повторим вкратце, что трансформационная грамматика состоит из конечной последовательности контекстно-связанных правил подстановки ф->ф и конечного числа трансформаций описанного типа, а также ограничений относительно порядка применения трансформаций. Структура, полученная в результате применения некоторой трансформации, в общем случае может быть подвергнута новым трансформациям, так что путем повторного применения трансформаций можно породить бесконечное число С-маркеров самых различных типов. На каждом этапе порождения фразы С-маркер представляет собой размеченное дерево, ассоциированное с порождаемой цепочкой. Полное структурное описание предложения должно состоять не только из его собственного С-маркера, но и из С-маркеров, лежащих в его основе Т-терминальных цепочек и их трансформационной истории. О роли такого структурного описания при определении процесса понимания предложения см. разд. 2.2 след, главы.
ЗВУКОВАЯ СТРУКТУРА ЯЗЫКА
Мы рассматриваем грамматику как состоящую из двух основных компонентов — синтаксического компонента, который мы уже описали, и фонологического компонента, к которому мы теперь переходим.
Роль фонологического компонента в грамматике
Синтаксический компонент грамматики содержит правила подстановки и трансформационные правила, форма и организация которых были описаны в разд. 4 и 5; в результате работы этих правил порождаются терминальные цепочки и их структурные описания. Структурное описание терминальной цепочки содержит, в частности, производный С-маркер, который определяет для цепочки систему размеченных скобок; в данном разделе только эта часть структурного описания и будет приниматься во внимание. Таким образом, мы обращаемся к рассмотрению следующих структур, которые мы будем считать (опуская многие детали) выходами синтаксического компонента Грамматики:
5 ^Р [^ в Ted Д]дг]лгр 1ур k й see]F past й
Up [net « the dem P1 tt]Det k « b00kL P1 «кЫ5 (25) (символ # использован как показатель границ между словами). Терминальная цепочка из примера (25) является представлением предложения Ted saw those books («Тед видел эти книги»), которое может быть на фонетическом уровне представлено так: 1251
t е • d-j-sow-b^ о wz-j-buks(26)
(цифры обозначают силу ударения). Опять-таки здесь опущены уточнения, детали, обсуждение прочих возможностей и многих фонетических признаков, которых мы в этом кратком очерке не будем касаться.
Выражение типа (26) является достаточно непосредственным представлением предложения. Можно считать, что это представление основано на универсальной фонетической системе, которая состоит из фонетического алфавита и набора общих фонетических правил. Символы фонетического алфавита определяются на основе физических (т. е. акустических и артикуляторных) понятий; общие законы универсальной фонетической системы — это законы, касающиеся способов комбинирования физических единиц, представленных этими символами, в есте-
ственном языке. Универсальная фонетическая система, так же как абстрактное определение порождающей грамматики, предложенное в разд. 4 и 5, является скорее частью общей лингвистической теории, чем специфическим разделом грамматики данного языка. Так же как и другие разделы общей теории языковой структуры, универсальная фонетическая система представляет собой гипотезу о языковых универсалиях; она может также рассматриваться как гипотеза о врожденных способностях переработки информации и образования понятий, которые пускаются в ход ребенком при обучении языку.
Роль фонологического компонента грамматики состоит в том, что он соотносит представления типа (25) и типа (26); иначе говоря, фонологический компонент включает в себя правила, определяющие фонетический облик высказывания, исходя из его морфемного состава и общей синтаксической структуры. Фонологический компонент в отличие от синтаксического не играет никакой роли в построении новых высказываний, а только сопоставляет высказываниям их фонетическую форму. Хотя по этой причине изучение фонологического компонента грамматики не относится к математическим моделям языка в узком смысле слова, процессы приписывания высказываниям их фонетического облика представляют независимый интерес. Мы укажем кратко некоторые существенные свойства этих процессов. Наше изложение основывается на работах Халле (Halle, 1959а, 19596) и Хомского (Chomsky, 1959, 1962а).
Звуки и фонемы
Фонологический компонент можно представлять как устройство, которое получает на вход терминальную цепочку с различными скобками и должно перекодировать ее в фонетическую запись. Фонетическая запись есть последовательность символов фонетического алфавита, одни из которых [например, первые три символа в примере (26)] соответствуют физически определенным признакам, а другие [например, символ + в примере (26)] — символам перехода. Назовем символы первого рода фонетическими сегментами, символы второго рода — фонетическими стыками. Рассмотрим более тщательно свойства фонетических сегментов.
Каждый символ универсального фонетического алфавита является сокращенным обозначением определенного набора физических признаков; например, символ [ph] представляет губной, придыхательный, глухой, смычный звук. Эти символы не имеют независимого существования сами по себе; они служат просто сокращенными обозначениями. Следовательно, предста-
вление (26), и вообще всякую фонетическую запись, правильнее всего рассматривать как фонетическую матрицу, строки матрицы— это физические свойства, которые в данной лингвистической теории считаются элементарными, а столбцы — это последовательные сегменты высказывания (стыки мы пока оставляем в стороне). В этой матрице элемент (i, /) показывает, обладает ли (или в какой степени обладает) /-й сегмент высказывания i-м свойством. Фонетические сегменты соответствуют, таким образом, столбцам матрицы. Если принять за универсальную фонетическую систему систему акустических признаков, предложенную Якобсоном, то в примере (26) символ [э] может рассматриваться как сокращение для строчки (гласный, несогласный, низкий (grave), компактный, неокругленный, звонкий, слабый, с третьестепенным ударением). Матрицы с такими элементами и составляют выход фонологического компонента.
Что же является входом фонологического компонента? Терминальная цепочка в примере (25) состоит из лексических морфем, таких, как Ted, book, грамматических морфем, таких, как past, plural, и некоторых показателей стыка типа Д. Показатели стыка вводятся правилами синтаксического компонента, чтобы указать позиции, в которых морфологическая и синтаксическая структуры отражаются на фонетике. Для наших целей они могут рассматриваться как грамматические морфемы. Каждая грамматическая морфема, как правило, представляет собой единый терминальный символ, нерасчлененный на сегменты. Напротив, лексические морфемы обычно представлены цепочками символов, которые мы будем называть фонемными сегментами или просто фонемами1^. Тогда, если не считать размеченных скобок, входом для фонологического компонента является цепочка, состоящая из фонем и условно обозначенных грамматических морфем. Фонетическая запись в примере (25) является во всех существенных отношениях точной, если не считать того, что лексические морфемы даны в традиционной орфографии, а не в фонемной транскрипции. Так, Ted, see, the, book нужно заменить соответственно на /ted/, /si/, fb\f, /buk/. В примере (26) дано так мало фонетических деталей, что фонетические и фонемные сегменты почти не отличаются друг от друга.
Вскоре мы вернемся к вопросу о соотношении между фонемными и фонетическими сегментами. Пока мы только отметим,
9 Для большей точности следовало бы считать, что фонемы — это сегменты, которые появляются только на той стадии вывода, когда все грамматические морфемы уже элиминированы с помощью фонологических правил.
что не накладывается никаких требований о том, что они должны быть тесно связаны друг с другом.
Прежде чем переходить к более подробному рассмотрению фонемных сегментов, мы хотим предупредить читателя, что понимание терминов фонема, фонемная запись и т. д. в лингвистической литературе очень неустойчиво. При этом расхождения здесь не являются чисто терминологическими; они отражают глубоко идущие расхождения взглядов на сущность звуковой структуры — расхождения, не разрешенные и до настоящего времени. Здесь, разумеется, не место разбирать в подробностях эти расхождения и приводить агрументы в защиту той или иной точки зрения. (Подробно об этом см. у Халле '(Halle, 19596), у Хомского (Chomsky, 1962); см. также книгу Halle, Chomsky, «Sound Pattern of English», в печати.) Данная работа основана на представлении о звуковой структуре, близком к тому, которое было у основателей современной фонологии, но сильно отклоняющемся от того, которое получило наиболее широкое распространение, особенно в Соединенных Штатах, за последние двадцать лет * и часто называется необлум- фильдианским. В частности, термин «фонема» используется здесь в смысле Сэпира (Sapir, 1933), а понятие универсальной фонетической системы имеет корни в таких классических работах, как работа Суита (Sweet, 1877) и деСоссюра (deSaussu- ге, 1916); речь идет о Приложении к Введению «Курса общей лингвистики», которое датируется вообще 1897 г. То, что мы, следуя Сэпиру, называем фонемной записью, в настоящее время чаще называют морфонемной записью. Обычно предполагается, что существует уровень представления высказывания, промежуточный между фонетическим и морфонемным, и этот промежуточный уровень называется фонемным. Однако имеются, по-видимому, достаточные основания для того, чтобы отвергнуть гипотезу о существовании такого промежуточного уровня, отбросив одновременно многие допущения относительно звуковой структуры, тесно переплатающиеся с этой гипотезой в современных изложениях лингвистической теории.
Мы попытаемся обнаружить общие правила, которые применяются к большим классам элементов — таким, как согласные, смычные, звонкие сегменты и т. д., — а не к отдельным сегментам. При этом мы попытаемся заменить большое число отдельных наблюдений простыми обобщениями. Поскольку правила будут применяться к классам элементов, то сами элементы должны быть определены через их принадлежность к определенным классам. Таким образом, каждая фонема принадлежит к нескольким пересекающимся категориям, на основе которых фонему можно представить просто множеством категорий, к
которым она принадлежит; иными словами, каждую лексическую единицу можно представить классификационной матрицей, в которой столбцы соответствуют фонемам, а ряды — категориям и элемент (Z, /) показывает, принадлежит ли фонема / к категории i. Каждая фонема может быть представлена теперь в виде последовательности категорий, которые мы называем различительными признаками, используя одно из имеющих хождение значений этого термина. Так же как фонетические сим- волы, фонемы не имеют независимого существования сами по себе. Очень важным и ни в какой мере не очевидным является то обстоятельство, что различительные признаки классификационной таблицы фонем определяют категории, точно соответствующие тем категориям, которые определяются рядами фонетических матриц. Это обстоятельство было замечено Сэпиром (Sapir, 1925) и изучено в последние годы Якобсоном, Фантом и Халле (Jakobson, Fant, Halle, 1952) и Якобсоном и Халле (Jakobson, Halle, 1956); такой подход к звуковой системе имеет свои корни в классической лингвистике, процветавшей в Индии еще два тысячелетия тому назад.
Условие инвариантности и условие линейности
Входами для фонологического компонента грамматики являются, таким образом, матрицы различительных признаков, представляющих лексические элементы; выходами являются фонетические матрицы (и стыки). Каким должно быть отношение между категориальной матрицей различительных признаков, которая поступает на вход фонологических правил, и соответствующей фонетической матрицей, которая возникает в результате их применения? Каково, например, отношение между исходной матрицей, сокращенно записываемой /ted/ (где каждый символ |t|, |е|, |d| заменяет собой столбец, содержащий в данном ряду плюс, если данный символ принадлежит к категории, соответствующей данному ряду, минус, если данный символ не принадлежит к этой категории, и ноль, если данный символ не определен с точки зрения принадлежности к этой категории), и результирующей матрицей, сокращенно записывае- 11
мой как [the-d] (где каждый из символов [th], [е-], [d] заменяет столбец, элементами которого являются фонетические свой* ства)?
Самое сильное требование, которое здесь может быть наложено, состоит в том, что исходная классификационная матрица должна быть собственной частью результирующей фонетической матрицы, отличаясь от этой последней отсутствием некоторых избыточных элементов. Тогда фонологические правила
будут просто заполнять пустые места классификационной матрицы, дополняя ее до соответствующей фонетической. Это сильное условие включается в определение фонологической теории, в частности, Якобсоном, а также, в неявном виде, Бло- хом1). Если это требование соблюдено, то фонемная вались удовлетворяет условию, которое мы называем условием линейности.
Под условием линейности мы понимаем требование о том, что каждая фонема должна быть связана с определенным звуковым отрезком высказывания, причем если фонема А находится слева от фонемы В в фонемной записи, то отрезок высказывания, сопоставленный фонеме А, должен предшествовать отрезку, сопоставленному фонеме В в фонетической записи. .(Мы ограничиваемся здесь фонемами, которые называют сегментными, поскольку так называемые суперсегментные фонемы мы рассматриваем как признаки сегментных фонем.)
Условие инвариантности состоит в том, что каждой фонеме А должно быть сопоставлено некоторое определяющее множество 5(Л) физических фонетических свойств, таких, что каждый вариант (аллофон) фонемы А обладает свойствами из 5(Л) и никакой фонетической сегмент, не являющийся вариантом (аллофоном) фонемы Л, не имеет всех свойств из 2(Л).
Если бы звуковые системы удовлетворяли условиям линейности и инвариантности, то задача создания машин, способных распознавать фонемы в нормальной человеческой речи, сильно упростилась бы. Соблюдение этих условий дало бы также возможность построить модель восприятия, основанную на сегментации и классификации, что явилось бы аргументом в пользу той точки зрения, что методы анализа, необходимые в лингвистике, могут быть сведены к сегментации и классификации. Однако выполнение этих требований зависит от реальных фактов, а не от принятия какого-либо решения, и, по нашему мнению, есть много оснований сомневаться, что в естественных языках эти условия выполняются. Поэтому мы не будем считать, что для каждой фонемы имеется набор фонетических свойств, которые однозначно характеризуют все ее варианты, и что эти наборы действительно располагаются во временнбй последовательности в точном соответствии с линейным порядком фонем.
]) Эти авторы не стали бы считать то, что они называют фонемными записями, входами в фонологический компонент нашей грамматики. Однако, как было сказано выше, мы не видим оснований для допущения о существовании промежуточной записи того типа, который называется этими и другими фонологами фонемным.
У нас нет возможности останавливаться на этом вопросе подробно, но одного примера будет достаточно, чтобы продемонстрировать те трудности, которые заставляют отказаться от условий линейности и инвариантности. Английские слова write («писать») и ride («ехать верхом») в любой разумной фонемной записи должны быть представлены соответственно как /rayt/ и /rayd/; иным словами, их фонемный состав различается звонкостью конечной согласной. В фонетическом отношении они различаются также свойствами гласных. Есть, например, такой диалект, где write должно быть представлено фонетически как [rayt], a ride — как [га • yd] с характерным автоматическим удлинением гласной перед звонкой согласной. Чтобы вывести фонетическую запись из фонемной, мы применим следующее правило:
Гласные перед звонкими согласными удлиняются. (27)
Это правило имеет достаточно общий вид и вполне может быть включено в рассматриваемую нами систему. Рассмотрим теперь слова writer («писатель») и rider («всадник») в том же диалекте. В соответствии с синтаксическим компонентом грамматики writer есть write+деятель, a rider есть ride + деятель, причем лексические единицы имеют в точности тот вид, в котором они приведены; а именно фонемная запись для writer и rider будет соответственно /rayt + г/ и /rayd + г/. Имеется, однако, общее правило, что фонемы /t/ и /d/ в некоторых контекстах сливаются в альвеолярный дрожащий звук [D], в частности после главного ударения, как в словах writer и rider. Таким образом, грамматика для этого диалекта может содержать следующее фонетическое правило:
[t d] —► D после главного ударения. (28)
Применяя к фонемным записям /rayt + г/ и /rayd + г/ сначала правило (27), а потом правило (28), мы получим сначала [rayt + r], [ra-yd + r] в соответствии с правилом (27), а затем [rayDr], [ra-yDr] в соответствии с правилом (28); эти выражения и будут фонетическими представлениями слов writer, rider. Теперь мы видим, что фонемные представления этих слов различаются только четвертым сегментом (звонкая/глухая согласная), тогда как фонетические представления различаются только вторым сегментом (более долгая/более краткая гласная). Следовательно, мы не можем утверждать, что последовательность фонем Л1 ... Ат связана с последовательностью сегментов ах ... ат таким образом, что at содержит, помимо избыточных
признаков, множество признаков, которые однозначно определяют Аг. Этот типичный пример показывает несостоятельность условий линейности и инвариантности в применении к фонологическим системам. Отсюда следует, что фонемы не могут быть получены из фонетических записей в результате простых операций сегментации и классификации по выделенным признакам; во всяком случае, обычно описываемые операции являются заведомо непригодными.
Заметим, между прочим, что мы нигде не говорили о том, что фонетические признаки, образующие универсальную систему, должны быть определены в абсолютных терминах. Так, один из универсальных признаков может быть признаком «передний/задний» или «краткий/долгий». Если фонетический сегмент А отличается от фонетического сегмента В только тем, что А имеет признак «краткий», а В — «долгий», то это означает, что в любом контексте X — У более долгий элемент отождествляется с В, а более краткий — с А. При этом может получиться так, что А в одном контексте окажется в действительности длиннее, чем В в другом контексте. Многие лингвисты выдвигали требование, что фонетические признаки должны определяться в абсолютных терминах. Вместо признака «краткий/долгий» они требовали установления (с какой-то степенью приближения) абсолютной длины каждого сегмента. Если добавить это требование к требованию инвариантности, то исключается даже частичное пересечение фонем, т. е. приписывание звука а к фонеме В в одном контексте и к фонеме С — в другом. Такова, по-видимому, точка зрения Блоха (Bloch, 1948, 1950). Это ограничение слишком сильное, и оно опровергается не только примером, который был приведен здесь, но и большим числом других (см. Bloch, 1940). Действительно, в работах по акустической фонетике (Liberman, Delattre, Cooper, 1952; Schatz, 1954) показано, что если требовать соблюдения этого условия, то при артикуляторном и акустическом подходе к признакам (как предлагается в работе Bloch, 1950) нельзя произвести даже анализ смычных /р, t, к/, поскольку они частично пересекаются. Такое следствие можно считать доказательством через доведение до абсурда.
Требования относительной и абсолютной инвариантности позволяют построить определенные модели восприятия речи; однако трудность (или невозможность) соблюдения этих требований показывает, что эти модели неверны. Возникает необходимость новых моделей, которые мы еще будем рассматривать ниже.
Теперь же мы вернемся к нашей основной теме.
Некоторые фонологические правила
Как было сказано, входами для фонологического компонента грамматики являются терминальные цепочки, состоящие из лексических и грамматических морфем и стыков, с указанием структуры составляющих. Выходом фонологического компонента является фонетическая матрица, в столбцах которой записаны последовательные сегменты высказывания, а в строках — фонетические признаки. Разумеется, желательно, чтобы правила фонологического компонента были по возможности общими и немногочисленными. В частности, предпочтительны такие правила, которые применяются к крупным и естественно выделенным классам элементов и основаны на простых и кратких характеристиках данного контекста. Предпочтительны, далее, такие правила, в которых одни и те же классы элементов используются несколько раз. Чтобы проверить выполнение этих и других требований, можно определить сложность фонологического компонента через число признаков, упомянутых в правилах; при этом форма правил должна быть задана таким образом, чтобы она допускала правильные обобщения [см. Halle, 1961)]. Тогда мы можем отдать предпочтение более простым (более общим) грамматикам перед более сложными и использующими большее число признаков (т. е. частных случаев).
Задача фонологического анализа состоит в том, чтобы сопоставить каждому высказыванию фонемное представление, состоящее из матриц, в которых столбцами являются фонемы, а строками — различительные (классификационные) признаки, а также вывести самый простой набор правил (простота должна быть при этом точно определенным понятием), которые определяют фонетические матрицы, соответствующие данным фонем< ным представлениям. На фонемное представление не наклады* вается требований линейности и инвариантности. Интересное и важное наблюдение состоит в том, что эти требования в сущности, как правило, выполняются и имеется лишь один важный класс исключений.
Чтобы определить фонетическую форму высказывания, фонологические правила должны использовать не только фонемное представление, но и некоторую другую информацию; в частности, они должны использовать информацию о структуре составляющих. Отсюда следует, что вообще невозможно (идет ли речь о лингвисте или о ребенке, обучающемся языку) построить правильное фонемное представление высказывания без существенного использования синтаксической информации. Аналогично, естественно ожидать, что и при восприятии речи
установление фонемного представления высказывания опирается на синтаксические ключевые показатели. Иначе говоря, фонетическое отождествление высказывания основано в какой-то мере на частичном его понимании, и- этот вывод вовсе не является парадоксальным.
Фонологический компонент состоит: 1) из последовательности правил подстановки, включающей, в частности, набор правил, определяющих структуру морфемы; 2) из последовательности трансформационных правил и 3) из последовательности правил подстановки, которые можно назвать фонетическими правилами. Эти группы правил применяются к терминальной цепочке в указанном порядке.
Правила, определяющие структуру морфемы, позволяют упростить матрицы, определяющие индивидуальные лексические морфемы, за счет использования общих свойств всего множества матриц. В английском языке, например, если ни один из трех начальных сегментов лексической единицы не является гласной, то первый из них должен быть согласной /s/, второй — смычным согласным, а третий — плавным, или глай- дом. Таким образом, в матрицах представляющих такие морфемы, как string или square, эту информацию можно уже не задавать. Аналогичным образом, глайд, который является последним элементом начального сочетания согласных, не требует дальнейшего определения, поскольку он полностью определяется последующей гласной: при всех согласных, кроме /s/, перед /и/ должен стоять /у/, а во всех остальных случаях — /w/. Так, имеются сочетания cure /куиг/ (лечить) и querr /kwir/ (странный), но не /kwur/ или /kyir/. Имеется и много других правил такого рода. Они позволяют сократить число признаков, упоминаемых в грамматике, поскольку одно и то же правило, определяющее структуру морфемы, может применяться ко многим матрицам, что способствует увеличению простоты описания (в том смысле, который был указан выше). Заметим, что правила, определяющие структуру морфемы, позволяют провести различие между обоснованным и необоснованным выделением допустимых и недопустимых бессмысленных слогов.
Трансформационные фонетические правила определяют фонетические процессы, обусловленные структурой составляющих (вспомним то основное свойство трансформационных правил, как они были определены выше, что они применяются только к цепочке с заданной структурой составляющих). В английском языке имеется такое переплетение правил, определяющих ударение и редукцию гласных, что фонетическая система имеет несколько степеней ударения и сложное распределение редуци-
рованных и нередуцированных гласных [Хомский, Халле и Луков (Chomsky, Halle, Lukoff, 1956)]; Халле и Холмский (Halle, Chomsky, в печати). Эти правила существенным образом используют структуру составляющих как на морфологическом, так и на синтаксическом уровне; следовательно, они должны рассматриваться скорее как трансформационные правила, чем как правила подстановки. Эти правила упорядочены и применяются циклами — сначала к минимальным составляющим (т. е. лексическим морфемам), затем к более крупным и т. д., пока не будет достигнута максимальная из сфер действия фонетических процессов. Поразительный факт, по крайней мере для английского языка, состоит в том, что вне и внутри слова действуют, по существу, одни и те же правила. Таким образом, имеется один цикл трансформационных правил, повторное применение которых определяет фонетическую форму как отдельных слов, так и сложных сочетаний. Циклическое упорядочение правил позволяет определять фонетическую структуру более сложных сочетаний, как морфологического, так и синтаксического характера, через фонетическую структуру исходных элементов.
Основными правилами трансформационного цикла в английском языке являются правила приписывания ударения и правила редукции гласных. Место основного ударения определяется типом составляющей и конечным аффиксом. После того как место главного ударения определено, все остальные ударения автоматически ослабляются. Последовательное применение этого правила к последовательно увеличивающимся составляющим цепочки, не имеющей начальной расстановки ударений, дает в результате систему с несколькими степенями ударения. Гласная редуцируется в [i] в некоторых фонологических условиях, если она ни на одной из предшествующих стадий вывода не получила главного ударения или если последующие циклы ослабили ее первоначальное главное ударение до третьестепенного (или, в некоторых позициях, до вторичного). Правило редукции гласных применяется в трансформационном цикле один раз, а именно тогда, когда мы достигаем уровня слова.
Подробное описание этих правил в объеме данной главы невозможно, поэтому мы ограничимся лишь несколькими замечаниями о том, как они работают. Рассмотрим, в частности, следующие четыре правила1), которые применяются в том порядке, в каком они написаны: .
9 Эти правила несколько отличаются от правил, описанных в более подробной и общей грамматике (см. Халле и Хомский, в печати).
Правило существительного, которое в существительных (и их основах) ставит ударение на первом слоге при довольно общих условиях. (29а)
Правило ядерного ударения, которое превращает последнее главное ударение в доминирующее, ослабляя тем самым все остальные ударения в
конструкции.(296)
Правило редукции гласных.(29в)
Правило приспособления ударения, которое ослабляет на единицу все неглавные ударения в слове. (29г)
В трансформационном цикле, который описан ниже, мы производим существительные permit (разрешение), torment (мучение) от глаголов permit (разрешать), torment (мучить) с помощью правила существительного; при этом главное ударение на втором слоге автоматически заменяется на вторичное. Правило приспособления ударения определяет окончательную последовательность ударений: главное — вторичное. Второй слог не редуцируется в [i], поскольку на той стадии, когда применяется правило редукции гласных, он защищен вторичным ударением.'
Таким образом, permit, torment имеют следующий вывод:
• k k per + mitlvk 1л' к13 ment]^.
Lv [у per + mit+ [w [к torment] J
[yvper + mit]^ [yv torment]N.
[jvper + mit]^ [v t э rment]iV.
1212
per + mit torment
1313
per + mittorment.
13A 13
ph irmitt orment.
Строка 1 фонологическая; строка 7 — фонетическая (детали опущены). Строка 2 получается применением общего правила (которое мы не приводим) для torment и с помощью правила (29) для permit (поскольку главное ударение в этом случае отсутствует). Строка 3 заканчивает первый трансформационный цикл, стирая самые внутренние скобки. Строка 4 получается с помощью правила (29а). Строка 5 заканчивает второй трансформационный цикл, стирая самые внутренние скобки.
Строка 6 получается с помощью правила (296) [при этом пра-* вило (29в) оказывается неприменимым в силу наличия вторич-* кого ударения на второй гласной]. Строка 7 получается применением других фонетических правил.
Рассмотрим, напротив, слово torrent (поток). В нем, как и в torment, второй гласной фонемой является /е/, ср. torrential /поточный). Однако это слово не образовано, как torment, от глагола torrent. Следовательно, вторая гласная не получает главного ударения в первом цикле; поэтому правило (29в) редуцирует ее в [i]. Таким образом, противопоставление редуцированной и нередуцированной гласных в torment — torrent является результатом различий в синтаксическом анализе. Начальное ударение в torrent опять-таки является результатом применения правила (29а).
То же самое правило, которое образует permit и torment из permit и torment, изменяет вторичное ударение конечного слога в глаголе advocate (защищать) ['aedvakeit] не третьестепенное, в результате чего правило редукции гласных (29а) редуцирует эту гласную в [i]. Таким образом мы получаем противопоставленную друг другу редуцированную и нередуцированную .гласные в существительном advocate (защитник) ['aedvakit] и в глаголе advocate, так же как во всех других словах с суффиксом-ate. В точности те же самые правила определяют различие между редуцированными и нередуцированными гласными в существительном compliment, [...mint] (комплимент, привет) и в глаголе compliment [...ment] (приветствовать) и в других аналогичных случаях.
Рассмотрим теперь слово condensation (конденсация). На одном из первых циклов мы приписываем главное ударение второму слогу глагола condense (сгущать). На следующем цикле правила применяются к форме condensation как к целому, поскольку это следующая по величине составляющая. Суффикс -ion всегда дает главное ударение на непосредственно предшествующем слоге, в данном случае на -ate. Применение этого правила ослабляет ударение на слоге dens до вторичного. Правило редукции гласных не применяется к „этой гласной, поскольку она защищена вторичным ударением. Следующее правило, имеющее достаточную степень общности, заменяет последовательность ударений XXI на 231, а правило приспособления ударения дает окончательную последовательность 3414. г Таким образом, результирующая форма имеет нередуцированный гласный во втором слоге с ударением четвертойh степени. Для сравнения рассмотрим слово compensation (компенсация). Второй гласной в этом слове является также фонема /е/ (ср. сот-
pensatory, заменительный); однако она не получает ударения ни на одном из предшествующих циклов (поскольку compensation не является производным от compense, как condensation от condense). Поэтому она редуцируется в [i]. Таким образом, мы получаем противопоставление редуцированной и нередуцированной гласных под слабым ударением в паре compensation — condensation как автоматическое, хотя и не непосредственное следствие различий в структуре составляющих.
В качестве последнего примера рассмотрим переплетение правил (29а) и (296) по мере усложнения синтаксических моделей предложения. Ср. сочетания John’s blackboard eraser (Джонова тряпка для стирания с доски), small boys’ school ,(в смысле small school for boys, маленькая школа для мальчиков) и small boys school (в смысле school for small boys, шко^ ла для маленьких мальчиков). Выводы для этих трех сочетаний (после того как начальные циклы припишут главное ударение словам) таковы:
1ill
1. [^John’s ^ [yyblack board^ eraserj^p.1121
[^pJohn’s ^Ыаск board eraser^^p.
(Применяем правило (29а) к самой внутренней составляющей и стираем скобки.)
1132
[^John’s black board eraser^p.
(Применяем правило (29а) к самой внутренней составляющей и стираем скобки.)
2143
John’s black board eraser.
(Применяем правило (296) и стираем скобки.)
211
И. 1. [yypSmall bboys’ school]^p. i ii
[yypsmall boys’ schoolj^p.
(Применяем правило (29a) к самой внутренней составляющей и стираем скобки.)
21 з
small boys’ school.
(Применяем правило (296) и стираем скобки.)
111
HL 1. [дгкр small boys]^ school]^ 211
[/у small boys school]^
(Применяем правило (296) к самой внутренней составляющей и стираем скобки.)
312
small boys school.
(Применяем правило (29а) и стираем скобки.)
313
small boys school.
(На основе широко действующего правила, которое мы здесь не приводили.)
Короче говоря, фонетическая запись высказываний, которая на первый взгляд кажется весьма сложной и беспорядочной, может быть порождена систематическим циклическим применением простых трансформационных правил, причем порядок применения этих правил определяется синтаксической структурой высказывания. Поэтому разумно предположить, что именно эти правила лежат в основе порождения и восприятия действительной речи. При таком допущении мы получаем вполне правдоподобное объяснение того, почему носители языка единообразно и последовательно порождают и воспринимают новые высказывания со всеми этими сложными характеристиками (не осознавая, конечно, всех происходящих при этом процессов и их фонетических последствий). Это дает возможность построить новую теорию восприятия речи, по которой установление того, что наблюдаемое акустическое явление представляет собой звуковую последовательность с такими-то свойствами, в какой-то мере требует определения ее синтаксической структуры (т. е. частичного ее понимания). Более обычная точка зрения состоит в том, что мы определяем фонетическое и фонологическое строение высказывания, распознавая в звуковых волнах последовательность физических свойств, каждое из которых является определяющим свойством некоторой фонемы. Как мы уже пытались показать, эта точка зрения, основанная на требованиях линейности и инвариантности, является несостоятельной.
Можно представить себе устройство, распознающее предложения (т. е. модель восприятия), которое включает в себя грамматические правила, а также эвристический компонент, который должен опробовать входные предложения, извлечь из него некоторые ключевые признаки, соотносящие его с правилами, необходимыми для его порождения, и выбрать из альтернативных вариантов нужный путем последовательного приближения. При таком подходе нет оснований предполагать, что каждый сегмент высказывания имеет определенное характеризующее его свойство или вообще что сегменты речи действительно образуют последовательность. Далее, эта модель устраняет малоправдоподобное допущение о том, что имеется одна грамматика для говорящего и другая для слушающего.
Такой подход к процессам восприятия неоднократно предлагался в различных работах последнего времени (MacKay, 1951; Bruner, 1958; Halle и Stevens, 1959, 1962; Stevens, 1960); что касается восприятия речи, то такая точка зрения в совершенно отчетливой форме была предложена Вильгельмом фон Гумбольдтом (Humboldt, 1836). Ясно, что для развития этих идей необходимо изучать распознавание и понимание речи. На основе изучения ключевых признаков можно построить достаточно обоснованную гипотезу относительно того, что является входом для устной речи человека; опираясь на эту гипотезу можно, далее, говорить о том, какую форму принимают высказывания в мозгу человека. Все эти гипотезы могут быть проверены в результате сравнения входов с представлениями, порождаемыми в мозгу; на основе таких сравнений гипотеза может быть принята или может быть отвергнута (ср. с гл. 13, разд. 2). Хотя восприятие речи есть чрезвычайно сложный процесс, для нормального взрослого человека он является абсолютно естественным; при этом среди других сложных процессов восприятия он занимает особое место, поскольку в данном случае мы находимся уже у истоков правдоподобной и точной порождающей теории, которая даст возможность понять организующие принципы, лежащие в его основе.
ЛИТЕРАТУРА
Berge С., Theorie des graphes et ses applications, Paris, Dunod, 1958. (Русский перевод: К. Б e p ж, Теория графов и ее применение, ИЛ, М., 1962.)
Bloch В., A set of postulates for phonemic analysis, Language, 24 (1948), 3—46.
Bloch B., Phonemic overlapping, Am. Speech, 16 (1940), 278—284; Joos M. (Ed.), Readings in linguistics, Washington, 1957, 93—96.
Bloch B., Studies in colloquial Japanese IV: Phonemics, Language, 26 (1950), 86—125; Joos M. (Ed.) Readings in linguistics, Washington, 1957, p. 329—348.
Bruner J. S., Neural mechanisms in perception, Solomon H.C.. Cobb S., Penfield W. (Ed.), The brain and human behavior, Baltimore, 1958, 118—143.
Chomsky N., Logical structure of linguistic theory, Microfilm. Mass. Inst. Tech. Library, 1955.
Chomsky N., Three models for the description of language, IRE Trans, on Inform Theory, IT-2 (1956), 113—124. (Русский перевод: Хомский H., Три модели описания языка, Кибернетический сб. № 2, М., 1961, стр. 237—266.)
Chomsky N., Syntactic structures, The Hague, 1957. (Русский перевод: Хомский Н., Синтаксические структуры, сб. «Новое в лингвистике», вып. 2, 1962, стр. 412—527.)
Chomsky N., The transformational basis of syntax, Hill A. A. (Ed.), IV-th Univer. of Texas Symp. on English and syntax, 1959 (unpublished).
Chomsky N., On the notion «rule of grammer», Jakobson R. (Ed.) Structure of language and its mathematical aspects, Proc. 12 Symp. in App. Math. Providence, 1961, 6—24. (a); Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
Chomsky N., Some methodological remarks on generative grammar, Word, 17 (1961), 219—239. (Русский перевод: Хомский H., Несколько методологических замечаний о порождающей грамматике, сб. «Вопросы языкознания», 1962, № 4.)*
Chomsky N., Explanatory models in linguistics, Nagel E., Suppes P., Tarsky A. (Eds.), Logic, Methodology and Philosophy of Science. Proceedings of the 1960 international congress, Stanford, 1962, 528—550 (a). Русский перевод: Объяснительные модели в лингвистике, сб. Математическая логика и ее применения, М., «Мир», 1965 г. 245.)
Chomsky N., The Logical basis of linguistic theory, Proc, of the 9-th Int. Congr. of linguists, 1962, Preprints, Cambridge, Mass., 1962, 509—574 (6); Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
C h о m s k у N., H a 11 e M., L u k о f f F., On accent and juncture in English, For Roman Jakobson, The Hague, 1956.
C u 1 i k K., On some axiomatic systems for formal grammars and languages. Mimeographed, 1962.
Davis M., Computability and unsolvability, New York, 1958.
H a 11 e M., Sound pattern of Russian, The Hague, 1959 (a).
Halle M., Questions of linguistics, Nuouo Cimento, 13 (1959), 494—517 (6); Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
Halle M., On the role of simplicity in linguistic descriptions, Jakobson R. (Ed.), Structure of language and its mathematical aspects. Proc, of the 12 Symp. in App. Math. Providence, 1961, 89—94.
Halle M., Chomsky N., Sound pattern of English (в печати).
Halle M., Stevens K. N. Analysis by synthesis, Proc, of the seminar on speech com. and production, AFCRC-TR-59—198, 1959; Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
Halle M., Stevens K- N., Speech recognition: a model and a program for research, IRE trans, on inform, theory, IT-8 (1962), 155—159.
Harris Z. S., Discourse analysis, Language, 28 (1952), 1—30 (a); Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
Harris Z. S., Discourse analysis: a sample text, Language, 28 (1952), 474—494 (6).‘
Harris Z. S., Co-occurrence and transformation in linguistic structure, Language, 33 (1957), 283—340; Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
Humboldt W. von, Ober die Verschiedenheit des menschlichen Sprachbaues, Berlin, 1836, Bonn, 1960.
Jakobson R., Fant C. G. M., Halle M., Preliminaries to speech analysis, Tech. Rep. 13. Acoustics Laboratory, Mass. Inst. Tech., Cambridge, Mass., 1952. (Русский перевод: Якобсон P., Фант Г. М., Халле М., Введение в анализ речи, сб. «Новое в лингвистике», вып. 2, М., 1962.)
Jakobson R., Halle М., Fundamentals of language, The Hague, 1956. (Частичный русский перевод: Якобсон Р., Халле М., Фонология и ее отношение к фонетике, сб. «Новое в лингвистике» вып. 2, М., 1962.) Katz J., Semi-sentences, Katz J., Fodor J. (Eds.),'Readings in philosophy of language, New York, 1963.
Kraft L. G., A device for quantifying, grouping and coding amplitude modulated pulses, MS thesis, Dept Elec. Eng., Mass. Inst. Techn., 1949.
Lees R. В., Review of Chomsky, «Syntactic structures», Language, 33 (1957), 375—408.
Lees R. B., A grammar of English nominalizations, Supplement to «International J. Am. linguistics», 1960.
Liberman A. M., D e 1 a 11 r e P., Cooper F. S., The role of selected stimulus variables in the perception of unvoiced stop consonants, Amer. J. Psychol., 65 (1952), 497—516.
MacKay D. M., Mindlike behavior in artefacts, Brit. J. Philos. Science, 2 (1951), 105—121.
Mandelbrot B., On recurrent noise limiting coding, Proc. Symposium on information networks, Polytechnic institute of Brooklyn, 1954, 205—221. Matthews G. H., Hidatsa syntax, Mimeographed, Mass. Inst. Tech., 1962. McMillan B., Two inequalities implied by unique decipherability, IRE trans, on inform, theory, IT-2 (1956), 115—116.
Miller G. A., Speech and communication., /. of acous. Soc. Amer., 30 (1958), 397—398.
Osgood С. E., S uci G. J., Tannenbaum P. H., The measurement of meaning, Urbana, 1957.
Postal P., Some syntactic rules in Mohawk, Ph. D., Dept, of Anthropology, Yale University, 1962.
Postal P., Constituent analysis, Supplement to «International J. Amer, linguistics», 1964.
Rogers H., The present theory of Turing machine computability, /. soc. indust, appt, math., 7 (1959), 114—130.
Sapir E., Sound patterns in language, Language, 1 (1925), 37—51; Mandel- ba dm D. G. (Ed.), Selected writings of Edward Sapir, Berkley, 1949, 33—45.
Sapir E., La r€alite psychologique des phonemes, J. de psychologic normale et pathologique (1933), 247—265; Mandelbaum D. G. (Ed.), Selected writings of Edward Sapir, Berkeley, 1949, 46—60.
Saussure F. de, Cours de linguistique generate, Paris, 1916.
Schatz C. D., The role of context in the perception of stops, Language, 30 (1954), 47.
Schiitzenberger M. P., On an application of semi-group methods to some problems in coding, IRE trans, on inform theory, IT-2 (1956), 47—60.
Shannon С. E., Communication in the presence of noise, Proc. IRE, 37 (1949), 10—21. (Русский перевод: сб. Шеннон К., Работы по теории информации и кибернетике, Связь при наличии шума, ИЛ, М., 1963, стр. 433.)
Stevens К. N.. Toward a model for speech recognition, /. acoust. Soc. Amer., 34 (1960), 47—55.
Sweet H., A handbook of phonetics, Oxford, 1877.
Трахтенброт Б. А., Алгоритмы и машинное решение задач, изд. 2, М., 1960.
Wallace A. F. С., On being just complicated enough, Proc. Nat. Acad. Scl> 47 (1961), 458—464.
Ziff P., Semantic Analysis, Ithaca, New York, 1960 (a).
Ziff P., On understanding «Understanding utterances», Mimeographed, 1960 (6); Katz J., Fodor J. (Eds.), Readings in philosophy of language, New York, 1963.
Ziff P., About ungrammaticalness, Mimeographed, University of Pennsylvania, 1961.
Некоторые технические реализации
Математическая трактовка процессапринятия решения)
Т. Рихард
Введение. Проблема математического моделирования
Главной проблемой кибернетических исследований можно считать исследование информационных процессов, например процесса восприятия, информации, процесса обучения, процесс са мышления и т. д. Наряду с экспериментальным исследованием этих процессов в рамках биологии, физиологии и т. д. имеют большое значение технические модели разных биологических явлений. Благодаря им можно исследовать системы понятий и величин, поддающихся измерению, которые возникают в процессе изучения биологических явлений. С другой стороны, возможны чисто теоретические модели биологических процессов, в частности математические модели.
Для целого ряда биологических явлений оказывается полезным моделировать информационные процессы в надлежаще выбранном автомате или машине (Тьюринг, а также Мак-Каллок И Питтс). «Эффективно конструктивную логику, т. е. интуцио- нистскую логику, лучше всего изучать в терминах теории автоматов» (Дж. фон Нейман).
Понятие «автомат» можно определить различными способами. Исследования, проводимые при помощи автоматов, в большинстве случаев имеют следующий характер.
Рассматривается конкретная задача, например, в рамках исчисления высказываний многократным применением трех основных операций aV Ь, а А 6, а образуется полином Р(хь ... ..., х^ от п переменных.
Ставится вопрос о том, можно ли определить автомат (например, машину Тьюринга) или, наконец, систему автоматов, способную решить данную задачу.
Имеются два различных вида постановки задачи.
Задачи, которые окончательно решаются в рамках самой теоретической модели.
Задачи, для которых это решение, найденное в рамках модели, затем проверяется в зависимости от результатов некоторых экспериментов или наблюдений реальных процессов.
Мы хотим на примере некоторой игры показать, в какой степени математическая модель может быть использована для изучения таких проблем. Для этого рассмотрим следующий эксперимент.
Пусть дано игровое поле с 36 клетками, обозначаемыми Ajk (ML • • •> 6; к=1, ..., 6). Имеются три фигуры: Д, О, □•
Определяем правила игры, которые указывают возможности расположения трех фигур в клетках игрового поля.
Первое правило: фигура Д может находиться в любой клетке рядов Л1, Л3, Л5, кроме случая, когда в одной из клеток этого ряда находится фигура О- В таком случае ряд, в котором находится фигура О, запрещен для фигуры Д.
Второе правило: фигуру О можно ставить в клетки Иц, Л*23, Л36, ^41, А55, Аб2-
Третье правило: фигуру □ можно ставить в любые клетки.
Расстоянием между двумя клетками мы называем количество клеток, находящихся между этими двумя клетками, если идти сначала по строкам, а потом по столбцам (сами клетки при этом не считаются). Расстоянием d между двумя фигурами считаем расстояние между клетками, в которых они находятся. На приведенном рисунке расстояние d между фигурами □ и О равно трем.
Четвертое правило: расстояние между фигурами D и Д, а также между фигурами □ и О должно быть больше двух.
Кроме того, даны два игрока, V и Р. Игроку V правила игры 1—4 незнакомы, игроку Р они известны.
Игру проводят следующим образом.
В качестве примеров V предъявляется ряд допустимых расположений фигур А, О> □ (ситуаций). Пусть Ко есть мно-* жество предъявленных ситуаций. Рассматривая множество ситуаций Ко, игрок V может вывести некоторое множество So правил игры, но при этом необязательно, чтобы множество правил So совпадало бы с правилами 1—4 (которые обозначим через L).
Задача V— найти правила игры L. Для этого он может предложить игроку Р ряд вопросов следующего характера: «Могу ли я такую-то фигуру (например, О) поставить на такое-то поле (например, Ли)», или кратко: «Могу ли я сделать такой-то ход». Если данный ход совместим с правилами L, то Р отвечает «да», в противном случае — «нет». При этом необходимо еще учесть следующее. Если ход, например, «О на А^», то Р может дать согласие только тогда, когда на расстоянии меньше 3 клеток от фигуры О (т. е. от Л41) нет фигуры □.
На основании исходных позиций — множества Ко и выведенных из них правил So— игрок V производит первый опрос Р. Запас ситуаций, согласующихся с So, обширнее, чем Ко (так как те уже опознаны как допустимые). Поэтому So состоит либо из одних верных правил, либо из верных и неверных вместе. В обоих случаях приходится образовать новые множества правил игры St, которые снова подразделяются на верные и неверные правила. Игра закончена, если для некоторогоп получается Sn = L=\, о чем и должен судить Р.
Для игрока V существуют две принципиально различные стратегии, одну из которых можно называть индуктивным методом, вторую — методом проб и ошибок. Опытное лицо, действующее по первому методу, назовем Vi, действующее по второму, — У2-
Опишем оба метода.
Игрок Vi начинает игру одной из трех фигур и временно пренебрегает остальными. Пусть он начнет с фигуры □. Упрощенная до одной фигуры игра закончена, когда Vi установит третье правило L. После этого Vi пренебрегает фигурой □ и рассматривает только фигуру О . Эта игра закончится, как только Vi установит второе правило L.
После этого Vi рассматривает фигуры □ и О вместе. Игра заканчивается нахождением четвертого правила L. Тогда на очередь встанут: фигура А, фигура А вместе с фигурой □, фигура А вместе с фигурой О и в заключение все три фигуры вместе.
Игрок V2 с самого начала рассматривает все три фигуры вместе. Для того чтобы отличие от Vi было более отчетливым,
устанавливаем правило, что V2 должен во все время игры иметь на поле все три фигуры. Для V2 упрощение игры невозможно.
Разница между игроками ^ и V2 заключается в стратегии постановки вопросов: в большинстве положений игры V2 не может задавать игроку Р те вопросы, которые задает I/i (это верно даже тогда, когда у Vi на поле имеются все фигуры, так как ^ располагает другим объемом данных, чем V2).
По поводу этой игры возникают два вопроса о стратегии игроков.
Оба ли игрока Vi и У2 способны расшифровать с помощью своей стратегии правила игры L, или это может только один из них, или ни один из них?
Если оба игрока могут расшифровать правила L, то какой из них делает это меньшим числом вопросов, т. е. какая стратегия более выгодна?
Заметим следующее: если игру можно закончить сопоставлением перечня допустимых ситуаций,- то оба вопроса излишни, так как это может сделать и любая машина. Но так как суть дела составляет образование системы правил, которые описывают целый ряд расположений (как, например, правило 4), то на эти вопросы невозможно дать теоретический ответ (из-за их зависимости от игрока V). Дело в том, что эта игра представляет собой информационный процесс, а именно процесс обучения. Вопрос 2 не точен еще и потому, что нам не известно, следует ли считать более выгодной стратегию обучения с наименьшим количеством вопросов или это не так. Это значит, что мы еще не располагаем мерой (критерием) эффективности определенного метода обучения. Исследование информационного процесса само является информационным процессом, и оно для кибернетики так же проблематично, как сам исследуемый информационный процесс. По этому поводу Мак-Кал- лок, говоря о сети нейронов, заметил, что в большинстве случаев даже не удается поставить вопрос так, чтобы на него возможно было получить ответ. Поэтому очевидно, что проблему — каким методом браться за исследование информационных процессов — необходимо пытаться решить по методу проб и ошибок. Эта работа может иметь значение в перспективе исследования комплексных процессов принятия решения, т. е. процессов, в которых для принятия решения требуется переработка большого количества данных. Математическая статистика (последовательный анализ, теория игр и т. д.) поставляет для некоторых процессов принятия решения поддающиеся оценке стратегии. Эти стратегии разрабатываются в рамках теории вероятностей и логически безупречны. Но суть дела в том, что есть такие процессы принятия решения, для которых недоста-
точна одна только безупречность стратегий, поддающихся оценке (если они вообще возможны), а требуются такие стратегии, целесообразность которых подтверждается экспериментом статистической природы. Простейший пример такого процесса принятия решения — прием (или исключение) ученика на основе оценки его работ. Для стратегии принятия решения в этом случае характерно то, что нет возможности численного определения риска. Поэтому невозможно включить в стратегию те критерии, которые свели бы средний риск к минимальному значению. Этот вид решений мы встречаем всегда, когда очень велик объем перерабатываемых данных.
Вопрос о математическом подходе к принятию таких решений становится методическим. Первая часть вопроса состоит в том, что необходимо выяснить, имеются ли закономерности, которым подчиняются принятия решения, если это решение принимает большой коллектив. Но для того чтобы получить возможность сбора таких опытных данных, мы вынуждены построить теоретическую модель, в рамках которой такой отбор данных станет возможен. Настоящая работа предлагает как раз такую модель. В терминах (описанной выше) игры из некоторых исходных условий Ко выводится некоторое множество правил игры So. Для этого в первой части описан автомат, способный принимать решения. Во второй части даны предпосылки для эмпирического исследования комплексных процессов принятия решения.
Структура автомата, способного принимать решения
1. Определение автомата. Рассмотрим следующий вид автомата:
Дано множество, состоящее из n-V\ элементов (1, 2, ... ..., п+1). Каждому элементу приписывается оценка 61, ... е.., 6п+ь при этом предполагаем, что
О < б,- < 1 для всех /= 1, ..., п+1.
Пусть эти оценки элементов являются функциями времени 6, = 6Д0.
В каждый момент времени выбирается один из этих элементов (на рис. 2 стрелка Z показывает, что выбран элемент 3).-
Пусть выбор одного из элементов осуществляется с вероятностью, являющейся функцией всех оценок бь ..., бп+ь Если б есть оценка выбранного элемента, то вероятность
pV>=6l\=dj имеет вид
dj = fj$ii •••» бд+i» л)> где *)
UWj>ил+1^d^X.(1)
Две интерпретации понятия автомата.
Понятие автомата как источника информации. Пусть (п+1) элементов являются символами, а бь б2, ..., 6n+i имеют характер относительных оценок (весов), приданных этим буквам.
Тогда автомат является источником информации (в смысле Шеннона), энтропия которого
/7= — 2 dj\og2dj
в любой момент времени есть функция оценок всех символов н=н^,д„+1).
Понятие автомата как анализатора. Пусть эти п+1 элементов будут электрическими контактами, причем в любой момент времени t потенциал на /-м контакте равен ^(О- Кроме того, можем предполагать, что известна область значений V^tV в частности дано max [^(/)]. Если положить
' max \Vj (0] ’
то автомат становится анализатором, который в каждый момент времени с вероятностью, являющейся функцией потенциалов, подает на выход один из потенциалов Vb ..., Vn+ь
Выходом автомата (в зависимости от определения) назовем либо выбранный элемент, либо его оценку.
Зависимость оценок от времени. Зависимость оценок от времени обусловливает зависимость вероятности выбора определенного элемента от времени. Полагаем, что изменение б/(/) происходит в дискретные моменты времени
/0 + £. Д/(£ = 0, 1 ...).
9 При дальнейшем изложении употребляются логические знаки Л «(и), V =(или), кванторы (х) = (для всех х), (Fx) = (существует хотя бы одно х).
Выбор элемента осуществляется в течение промежутка времени At Величина 6(0 в качестве выхода автомата имеет, например, ход, отвечающий рис. 3. В последующем мы рассматриваем автомат только в определенный момент времени tv Между
Рис. 2. Вероятностный автомат с распределениями на входах и выходе .0<д<1.
t — А/ и t произведен выбор определенного элемента. В момент t происходит смена оценок. Через 6 обозначаем ту оценку, которая придается выбранному (между t— А/ и t) элементу
в момент tv Между t^ и t + А/ происходит либо выбор вновь того же самого элемента, либо выбор одного из остальных п элементов, оценки которых обозначены бц ..., 6n.
Пусть d — вероятность того, что Z и в дальнейшем останется на элементе с оценкой б, a dv ..., dn — вероятности перемещения Z на соответствующие из остальных п элементов. Тем са-
мым отношение (1) принимает вид п
S dj-\-d = 1.(2)
Два возможных метода исследования. В первой части этой работы мы предполагаем описать структуру единичного автомата, т. е. рассмотреть распределение вероятностей для представляемого автоматом стохастического процесса. В принципе для этого возможны два метода.
Установить полную систему аксиом, которой удовлетворяла бы одна-единственная функция dj, и построить явное выражение dj=fj (б; di, ..., би; п) этой функции (аксиоматический метод).
Исходить из некоторых аксиом, пригодных для описания структуры автомата, способного принимать решение. Среди всех функций,. удовлетворяющих этим аксиомам, выбирается функ< ция, которая в некотором смысле является простейшей. Этот метод, которым мы пользуемся в дальнейшем, в отличие от первого не является дедуктивным.
Аксиомы. Требования, которые мы хотим установить для функций dj, следующие:
Вероятностные постулаты:
0Ш>0),
2^< 1.
1
Положим
d=\ — 2d,-.
1
Непрерывность:
Для любого постоянного п функция dj должна быть непрерывной по всем аргументам.
Монотонность:
Пусть для всех /= I, 2, ..., п имеет место
dj — монотонно возрастающая функция от 6j при
6 Л 6г = Const.•
dj — монотонно убывающая функция от 6 при (/) (б> = = const).
Симметричность:
Для всех пар (f, j)di преобразуется в dj при перестановке аргументов б/ и 6j. Из этого следует, что если 6i=6j, то di= dj.
Эквивалентность:
Два элемента (/, /) называются эквивалентными, если di = dj. Из IV следует, что два элемента эквивалентны, если
6г = 6;. Значения di и d) при этом еще остаются неопределенными, так как они зависят от 6. Но напрашивается следующий постулат эквивалентности: если
(6^ = 6) для всех у, то
^dj =тчл) для всех /-
Тогда.
Постулат, который относится к равенству в 1(2): п
Вследствие III б необходимым условием для ^d^X. т. е.
1
для d = 0, является
6=0.
Вследствие V это условие не может быть достаточным. Имеется несколько различных способов установления достаточных условий. Наиболее жесткое условие 6j=I для всех j. Мы потребуем, чтобы это условие было достаточным всегда, т. е. что должно существовать уравнение
^(6р6^ = 0,
которое непременно удовлетворяется для (/)(6j=I) и которое является достаточным для
Srf.=i (d=o).
1
Определение вероятности перехода и проверка аксиом. Для первого определения fj воспользуемся следующими обозначениями:
х п (1 —dJG —д2) ... (1 —д„)(, п х
а) Щ = -(Для V=1> 2, ..., п\
Р) П = (1 — 60(1 — д2) ... (l-d.) = nv(l-dv),
. Y) 5 = ^j 6V, v=l
d) P = ndv =• • • 6„.
По определению,
Л _ пбу + (1-6).Пу
i — [n+1 —Р + 6] [S + П]
(для /=1,
., пу
(3)
Сначала рассмотрим случай п=\. Тогда единственное dx определяется так:
б1 + (1_б)_б1 + 1-д
[2+ 6]^+ (1-601 2-dt + d ’
Здесь dx может быть больше 1 [например, для (6=0 Л 6i=l)L Поэтому мы исключаем случай м=1 и рассматриваем только автоматы с п> 2. (В терминологии электротехники можно было бы сказать, что мы рассматриваем только многополюсники, а не реле.)
Б. Для случая п = 2 получаем
d _ 2 (di + 62) + (1 — 6) [(1 — 62) + (1 — б^](ДХ
[3_б1б2 + б][б1 + б2 + (1_б1)(1_б^ . W
Числитель (4) имеет вид
2 + (1+6) (61 + 62) —26.(5)
Знаменатель (4) имеет вид
з+6+6Д (1 - 6Д)+6Д (1+6).(6)
Постулат 1(2) на основании (5) и (6) дает
2 + (1 + б)(д1 + д2)-2д<
<з+д+б1д2(1-дД)+м2(1+б)(/'
или
- 26 - 6Д (1 - 6Д) < (1 + 6) [1 - Д + 62) + 6Д].(8)
Так как
1 + 6 Д ^ 6j + 62 вследствие
1-62>б1(1-62),
то в (8) в правой части стоит неотрицательная величина, а слева — вследствие 1 — 6162 ^ 0 — неположительная величина. Тем самым удовлетворен постулат 1(2). Также удовлетворен постулат VI, так как в (8) равенство возможно только в случае равенства нулю обеих частей. Значит, 6 = 0 (левая часть) и 61=62=1.
Необходимо доказать постулат 1(2) индукцией пом. Применяя обозначения а), ..., 6), имеем
V d л£ + (1 — 6)[IIt+ ... + П„] —(^+T^P + dHS+TI) •
Предполагаем, что выполняется
nS + (l—6)[П1 + ... +ПЛ]<;[п+1—^+б](5+П), (10)
или
HT —|— ... + Щ б (П1 + ... + Щ)
<(1-Р+д)(5+П) + лП. (11)
На основании обозначений а), ..., 6) имеем
П1+ ... + ПЛ— лП = б1П1+ ... +д„Пл, (12) тем самым из (11) 61Щ+ .+6дПл д(П]-{- .+ПЛ)^
<5 + П — SP — ПРН-д5 + 6П. (13) Добавим еще один параметр бл+1. Покажем, что при предположении
7=1 выполняется и л+ 1
Д^<1.(14)
Аналогично соотношению (13) имеем
IIV = IIV(1 — дл+1) (v=l, 2, ..., л),
П*Л+1 = П,
П* = П.(1-дл+1), 61П1 + ... -|-блПп-|-дл+1П— д(П]+ ... -|-Пл) — дП <^ <5+дл+1 + П*-(5 + 6л+1№+1-
-П»Рдл+1 + б(5 + бл+1) + дП*, (15) или (П* снова выражено через П)
О 6л+1)[д1П1-|- ... + 6ЛПЛ— д(П1+ ... +ПЛ)]^ <-^+1П + 6П + 5 + дл+1 + П-дл+1П-5Рдл+1- бл+1 • П • Р — ПРдл+1 -{- ПРдл+1 -}- dS —|-
+ бдл+1-|-дП — 6Пдл+1.(16)
На основании предположений индукции (16), очевидно, удовлетворено тогда, когда умноженная на (1—6n+i) правая часть (13) меньше или равна правой части (16).
Произведение (1—бл+1) на правую часть (13) составляет 5+П — SP — ПР4-д5 + дП — дл+15 — бл+1П+
н- дл+1 SP+дл+1 ПР - дл+16S - дл+1 дП. (17)
В этом выражении, а также в выражении правой части (16) имеются шесть одинаковых слагаемых, которые можно не учитывать, так что (14) вытекает из следующего неравенства: — SP ПР 6п+15 + 6п+15Р 4-6л+1ПР дп+165 <<
•^ 6л_|-1 б^^дИ SP5)n + i 5)п^-1Р— ПРдп+1 -|- ПРдп+1-|-ддл+1-|-дП,
(18) или, если все члены расположить в левой части (и при этом объединить), считая слева члены (2, 5, И, 12); (6, 13, 14); (1, 4) и (3, 7, 8, 9, 10):
— IIP(1 —2dn+i + dn+i) — d(dn+iS + dn+i + П)—_
-5Р(1-дп+1)-дп+1(5+1-П-5Р-дп+1Р)<0.7
Это неравенство заведомо удовлетворяется, при условии что выражение в последних скобках ^>0. Покажем это последнее. При
6 = 0Ad„+1=d]= ... =б„ = 1 имеем равенство. Для того чтобы показать, что последнее выражение в скобках (19) неотрицательно, достаточно подставить бп+1 = 1- Тогда для п = 2 получим
61 Н" 62 + 1 — (1 6j) (162) (61 + 62) 6Д ^А =
=61 (1 - 6162)+62 (1 - 6Д)+д, (1 - б2)+62 (1 - 6J > 0. Если
№ + ... +б„)+1-[(1-б1)...(1-дп)]-
-(61 + ... +6„)(6, ... б„)-(б1...д„)>0, то
(61 + . . . + 6П) + дл + 1 -f- 1 [(1 61) ... (1 6п + 1)]
— (61 -|- ... -(-6л) (6162 ... 6п+1) — 6л+1(б1 • • • дл+1) —
-(б!...д:+1)>о, так как б^+1 [1 — (di ... 6„+1)] > 0, а другие произведения, в которых появляется д^+1, меньше или в крайнем случае равны соответствующим произведениям из предпосылок индукции.
Г. Требуется еще проверить постулат VI. п
Пусть 2 d,= l, тогда [см. (9)]
«5 + (1-д)[П1 + ... +Пп]-[л+1-Р+6][5-(-П1,
или
Щ + ... + Пл — 6 [Щ 4- ... 4- Пп] =
= ^П4-54-П — PS — РП4-д54-6П.
После некоторого преобразования имеем
б1[п1+Р-1]+ ... +6n[n„^P-i]-n[i-p]^i
= д[54-П4"П14" ••• +Щ]-(20)
Правая часть неотрицательна. Выражения вида [Щ + Р— 1] все отрицательны (это легко доказать по индукции), поэтому вся левая часть (20) неположительна. Из уравнения (20) следует
6 = 0.
Кроме того, должно выполняться условие
g(6bбп) = б1[П1 + Р-1]+ ...
... 4-бп[Пп4-Р-1]-П(1-Р) = 0. что имеет место для
61- ... = б„ = 1.
Д. Постулаты 1(1), II, Шб и IV выполняются. Постулат Ша легко доказать.
Для постулата V получаем следующее: если (/) (6j = 6), то
_л6 + (1_6)и_!
• .[n4-l — bn4-6] [пб4-(1 — 6)4л4-1—6”4-6 ’
,-П 16 — 6”, д
В бинарном случае (6=0 V 1) постулат эквивалентности строго выполняется. В других случаях есть отклонение А< 10%, поэтому мы считаем постулат практически выполненным.
7. Свойства вероятности перехода.
dj = O тогда и только тогда, когда
6y = 0A[(6=l)V(^v) (6V=1)J.
Сравним это свойство с постулатом VI. Там условие 6=0 тоже необходимо для d = 0, но условие (£v)(6v=l) недостаточно. Имеются более строгие условия для того, чтобы не мог появиться переход (6 -*6), чем для практической невозможности перехода (6-*6j). Тот элемент, на котором Z находится перед, следующим переходом, в некотором смысле выделен по сравнению с остальными.
Рассмотрим следующий цифровой пример:
пусть бу = 0,7 и 6 = 6v^y=0,2:
л = 2,<// = 0,58,</v = 0,16,</ = 0,26,
л = 5,</у = 0,38,<Zv = 0,ll,d = 0,18,
л =10,<// = 0,23,</v = 0,07,</ = 0,14.
Во всех случаях, несмотря на d = dv, всегда d > </v.
Пусть б, =6 = 1, 6v^y любое. Тогда при л >2 имеем
djп*
Оценка 6у=1 тем больше побуждает переход (6->6у), чем -большее число элементов имеет оценки 6V— 0.
Решим уравнение
(21)
тогда rfv = 0 для всех v=#/. Из этих п—1 уравнений необходимо следует 6v = 0 для всех v. Тем самым (21) запишем
_ пду + (1-6)
У (”+1+6)[6/ + (1-6у)1
ШЛИ
п^— 1) = 26, из чего следует
бу=1 л 6 = 0.
Сравним пункты 3 и 1. Имеются более строгие условия для того случая, когда практически достоверно переход (6—*6j) должен происходить, чем для того, когда практически достоверно (6 —>6j) не происходит.
Исходные идеи для описания комплексного процессапринятия решения
Применим разработанную в разд. I структуру к процессу принятия решения. В какой степени определенная в п. 6 формулой (3) вероятность перехода описывает или не описывает .принятие решения большим коллективом решающих субъектов, существенно зависит от исследования практических процессов принятия решения, для чего необходимы статистические данные, полученные при использовании описанной здесь модели. Мыслимы различные структуры автомата, подчиняющиеся условиям 1, 3 разд. I. Мы ищем такую структуру, которая в приме-
нении к процессу принятия решения имела бы наиболее простую математическую формализацию.
В процессе принятия решения всегда имеется некоторая степень недостоверности результата. В качестве меры этой недостоверности Шеннон, Винер и др. предложили энтропию
я=-2^1о&2(^).
Некоторые новые статистические теории (например, последовательный анализ, теория игр) дали количественные методы для: принятия решения. Есть проблемы принятия решения, в которых риск, связанный с принятием решения, поддается измерению. Тогда для этих проблем стратегия принятия решения заключается в сведении риска к минимуму. Хотя эти теории и имеют то преимущество, что они логически безупречны, но они охватывают только небольшую часть проблем принятия решения. Примером стратегии принятия решения, при которой риск не поддается измерению, является допущение или удаление ученика^ на основе его работ. Методика, которая основана на шкале оценок и критическом уровне, произвольна, так как она отражает мало объективного. Мы принимаем ее на основе статистического опыта, а не по логическим причинам.
Характеристика процесса принятия решения. Под решением можно подразумевать вызываемые им действия.
Если я от Л иду к В, а не к С, то принятие решения заключается в переходе из известного состояния (а именно быть в Л) в другое состояние (а именно быть в В).
Решения: 1) не купить автомобиля; 2) купить автомобилы типа Л; 3) купить автомобиль типа В — ведут к переходам следующего вида:
не иметь автомобиля —> не иметь автомобиля;
не иметь автомобиля —* иметь автомобиль типа Л; не иметь автомобиля —* иметь автомобиль типа В.
Вопрос о том, от каких параметров зависит принятие решения,, можно подразделить на два вопроса:
Какие параметры характеризуют состояние?
Какие критерии применимы для перехода из одного состояния в другое?
Множество параметров, характеризующих состояние, следует подразделить на множество (п, ..., гп) параметров, поддающихся измерению, и множество параметров, не поддающих' ся измерению (субъективные параметры). Влияние субъективных параметров состоит в том, что приходится вводить в рассмотрение вероятности перехода из одного состояния в другое.
Существенное свойство процесса принятия решения состоит в том, что для перехода из одного состояния в другое необходимо учитывать не только старое и новое состояния, но и все другие состояния, переход в которые был бы возможен. Принятие решения является выбором из множества состояний, причем сделанный выбор является функцией всех состояний. Фундаментальную структуру автомата определяет: а) вероятность перехода из одного состояния в другое и б) зависимость этой вероятности от всех состояний. Поэтому при выборе критерия перехода из одного состояния в другое естественно принять за основу структуру самого автомата, тем более, что все элементы автомата приспособлены для реализации процесса принятия решения.
Допустим на мгновение, что любое состояние можно охарактеризовать одним-единственным числом. Пусть для состояния, предшествующего принятию решения, имеем
0<б< 1,
а для п состояний
/= 1, ..., п,
в которые возможен переход,
0 <6;<1.
Вероятность принятия решения, т. е. вероятность перехода <(6 —*6j), определяется функцией перехода, определенной выше:
dj = tj^, 61, •6„; га),d=\-^dj.
обозначает вероятность перехода (6 —> 6).
Процесс принятия решения, т. е. серия проведенных последовательно решений, может осуществляться либо единичным автоматом с зависящей от времени оценкой 6Д/), либо системой автоматов с постоянной оценкой. Если в качестве примера рассмотреть шесть состояний с оценками di, ...., бе, то процесс принятия решения с двумя решениями Е^ и Е^ можно изобразить в соответствии с рис. 4.
Оценка параметров. Покажем метод, по которому одним- сдинственным числом можно характеризовать состояния с поддающимися измерению параметрами.
Имеют место следующие предпосылки:
Совокупность всех значений (параметрическое пространство), которое может принять любой из параметров г^ ... , гп, является подмножеством множества действительных чисел,
Параметрическое пространство каждого параметра известно.
Пусть Rx — параметрическое пространство для гх. Теперь разобьем Rx на три подмножества Rx, Rx1 и Rx, определяемые следующим образом. Мы не знаем заранее, как, например, гх = 250 или гх = 310 отражаются на метрической характеристике состояния, тем более что в большинстве случаев возможны только вероятностные высказывания относительно»
Рис. 4. Символическое изображение процесса принятия решения как последовательной схемы автоматов с независимыми от времени распределениями.Рис. 4. Символическое изображение процесса принятия решения как последовательной схемы автоматов с независимыми от времени распределениями.
Рис. 4. Символическое изображение процесса принятия решения как последовательной схемы автоматов с независимыми от времени распределениями.
Рис. 4. Символическое изображение процесса принятия решения как последовательной схемы автоматов с независимыми от времени распределениями.
действительного значения гх. Поэтому мы вынуждены рассма* тривать влияние совокупности значений гх на состояние. Простейшим предположением было бы разбиение параметрического» пространства на два подпространства/?^, Rx\ причем
Fx^Rx(1>
можно отождествить с высказыванием «значение гх благоприятно для данного состояния», а
rxER^42)
— с высказыванием «значение гх неблагоприятно для данного» состояния». Расширением этого является разбиение на три подмножества, где к импликациям (1) и (2) добавляется еще
Fx^Rx -
с приблизительным высказыванием «значение гх для данного состояния индифферентно, т. е. ни благоприятно, ни неблагоприятно». Все значения гх внутри каждого подмножества идентифицируются по отношению к численной характеристике состояний*. Поэтому напрашивается следующая оценка, взятая из трехзначной логики:
Гх = 0, если Гх^/^х, ,
г,= 1, если Fx^RLг,= 1, если Fx^RL(*>(*>
г,= 1, если Fx^RL
г,= 1, если Fx^RL
(*>
(*>
гх = — 1, если rx€RxT.
Если обозначить через Л, Рх, Рх1 вероятности трех событий (*), причем
то математическое ожидание оцениваемого параметра является случайной величиной, зависящей от событий (*) и определяем мой по формуле
е = л1 — л-1.
X гх Г X
Имеем
1 ^ £х ^ + 1 •
Каждому множеству (гь ..., гп) параметров сопоставлена упорядоченная последовательность (еь ..., еп) средних значений.
Функция состояния. Можно численно охарактеризовать состояния с помощью .функции
б„ = д (е„ ..., е„; я), где
Аксиомы, которым должно удовлетворять бп, следующие.
Оценка параметров произведена таким образом, что с возрастанием 8Х влияние параметра на состояние увеличивается. Однако влияние возрастающего параметра может компенсироваться убывающим параметром, и так как мы хотим предположить, что все параметры равноценны по отношению к поддающейся измерению характеристике состояния, то необходимо потребовать, чтобы
(
п\
2 £v; я о
была однозначной непрерывной монотонно возрастающей функ- дией от
п
2 ev = е.
1
Наиболее неблагоприятный случай
е = — п.
Это условие должно быть необходимым для тождества
6 — (— п, я) = 0
{по I это условие является и достаточным).
Аналогично II в наиболее благоприятном случае
е = п
имеемимеем6(п; я) — 1.
имеем
имеем
Пусть влияние индифферентных параметров гх, т. е. тех,, для которых ех = 0, будет таково, что значение бп не меняется при добавлении или опускании любого количества индифферентных параметров:
6(е; п + ^) = б(е; п) при v=l, 2, ...
для любого значения е.
Из этого постулата следует, что метрическая характеристика? независима от п, и наоборот. Хотя эта система аксиом изображает минимум приемлемых априори аксиом, она не свободна от противоречий.
Доказательство. Пусть е = —п. Согласно IV, имеем б(—п; n+v)=6(—п; пу Согласно II, б(—п;п)=0, а не б(—n; n + v), так как 2ец” — # Для v=l, 2, ... отлична от 1
— (.п+^У Постулаты II и IV взаимно противоречивы.
Рис. 5. Функция состояния, у которой диапазон значений зависит от количества оцениваемых параметров.Рис. 5. Функция состояния, у которой диапазон значений зависит от количества оцениваемых параметров.Но аксиома IV является прямым логическим следствием оценки параметров, поэтому ее необходимо сохранить. Кроме того, в области е < 0 нет необходимости в хорошей дискриминации. Поэтому можно было бы принять функцию, асимптотически стремящуюся к 1 (при подходящем значении пу так как. мы получили бы функцию состояния, отвечающую рис. 5. Хотя
Рис. 5. Функция состояния, у которой диапазон значений зависит от количества оцениваемых параметров.
Рис. 5. Функция состояния, у которой диапазон значений зависит от количества оцениваемых параметров.
эта функция и удовлетворяет постулату IV, но область значений 6(e) вследствие —п ^ е ^ п зависима от п. Однако во^ многих практических задачах сравниваются только состояния с одинаковым количеством оцениваемых параметров. Выше упомянутые затруднения приводят к предположению, что теория ограничивается этими случаями. Тем самым в области е>0 получаем три следующие принципиальные дискриминации:
начиная с определенного значения е = е* > О, требуется линейная дискриминация, т. е. прирост
б (е + Ле) — б (е)
должен не зависеть от е для Де=const;'
прогрессивная дискриминация: б(е + Ле)—б(е) возрастает для Ле = const (при е —* zz);
линейная дискриминация в определенной области е* ^ ^ е^ е** и асимптотическое поведение после е**.*
f и с. 6. Различные функции состояния для случая, когда все конкурирующие состояния имеют одно и то же число оцениваемых параметров.
л — линейная дискриминация; б — прогрессивная дискриминация; в — линейная дискриминация при е*<е<е** и асимптотическое поведение при £**<£.
Для каждой из трех дискриминаций имеются априорные причины, но выбор одного из трех типов функций нуждается в исследовании практических комплексных задач.
4. К экспериментальной проверке теории. Приведенные до «их пор теоретические рассуждения служили прежде всего для выработки подходящей методики описания экспериментов при изучении стратегии принятия решения большим коллективом. Яри этом с самого начала стоит вопрос о том, должны ли такие жсперименты состоять в оценке статистических данных о ре- жениях, принятых в конкретной обстановке, или возможно прижатие решения коллективом субъектов, стоящих перед модельной ситуацией? Возникает вопрос, в какой мере закономерности » втором случае могут быть принципиально отличными от за- жвномерностей первого случая, так как во втором случае нет Необходимости непосредственно затрагивать жизненные интересы субъектов? Проблема экспериментальной проверки теории ^дет рассмотрена в другой статье.
СОДЕРЖАНИЕ
Математические вопросы
С. Пикар. О базисах симметрической группы. Перевод Е. Ю. Захаровой 7
Дж. Мак-Вильямс. Перестановочное декодирование систематических кодов. Перевод И. И. Грушко35
Э. Гилберт. Циклически перестановочные самокорректирующиеся коды. Перевод Е. Ю. Захаровой58
Э. Мур. Задача о синхронизации цепи стрелков. Перевод В. Л. Мур- ского 76
С. Джонсон. Оптимальное расписание для двух- и трехступенчатых процессов с учетом времени наладки. Перевод Н. Н. Родман78
П. Уайн дли. Деревья, леса и переупорядочение. Перевод И. Б. Демидовича87
Вычислительные машины и программирование
Дж. А м д а л ь, Дж. Блоу, Ф. Брукс. Архитектура системы IBM-360. Перевод А. И. Илюшина 101
У. Картер, Г. Монтгомери, Р. Прейс с, Г. Рейнхеймер. Проектирование свойств эксплуатационной надежности для системы IBM-360. Перевод Ю. М. Банковского 137
П. Кейс, Г. Графф, Л. Гриффит, А. Л е - К л е р к, У. Мерли, Т. Спенс. Автоматизация проектирования вычислительных систем с использованием логических схем на твердом теле. Перевод А. И. Илюшина, А. А. Карлова162
К. М а л и н г, Е. Аллен. Автоматизированное обслуживание вычислительных машин (машинная организация и программная система).
Перевод В. К. Смирнова191
Л. Кальмар. О цифровой вычислительной машине с программированием посредством формального математического языка. Перевод
Н. И. Глебова 215
Математическая лингвистика
Н. Хомский, Дж. Миллер. Введение в формальный анализ естественных языков. Перевод Е. В. Падучевой229
Некоторые технические реализации
Т. Рихард. Математическая трактовка процесса принятия решения. Перевод Э. Л. Шапиро293
КИБЕРНЕТИЧЕСКИЙ СБОРНИК
Новая серия
Выпуск 1
Редактор Г. М. Ильичева
Переплет художника В. Е. Вольф. Художественный редактор В. И. ШаповаловТехнический редактор Л. П. Кондюкова
Сдано в производство 16/VI 1965 г. Подписано к печати 13/XI 1965г.
Бумага 60x90716=9,98 бум. л., 19,95 печ. л., в т/ч 1 вкл. Уч.-изд. л. 17,71. Изд. № 1/3375.
Цена 1 р. 39 к. Зак. № 1622(Темплан 1965 г. изд-ва «Мир», пор. № 6)
ИЗДАТЕЛЬСТВО «МИР», Москва, 1-й Рижский пер., 2
Ленинградская типография № 2 имени Евгении Соколовой ГлавиолиграфпромаГосударственного комитета Совета Министров СССР по печати.
Измайловский проспект, 29.
ИЗДАТЕЛЬСТВО «МИР»
готовит к выпуску В 1966 г.
следующие книги по математике:
Берс Л., Джон Ф., Ш е х т е р М., Уравнения с частными производными. Нью-Йорк, 1964, перевод с английского, 20 изд. л., цена 1 р. 70 к.
Бодевиг Э., Матричное исчисление. Амстердам, 1959, 2-е издание, сокращенный перевод с английского, 16 изд. л., цена 1 р. 40 к.
Д а н ф о р д Н., Шварц Дж. Т., Б е й д У. Г., Б а р т л Р. Г., Линейные операторы. Часть II. Самосопряженные операторы в гильбертовом пространстве. Нью-Йорк — Лондон, 1963, перевод с английского, 60 изД. л., цена 4 р. 50 к.
Карр Ч., Хоув Ч., Количественные методы принятия решений в управлении и экономике. Нью-Йорк, 1964, перевод с английского, 25 изд. л., цена 2 руб.
Кибернетический сборник. Новая серия. Вып. 3, вып. 4, по 12 изд. л., цена каждого сборника 1 руб.
Коп сон Э., Асимптотические разложения. Кембридж, 1965, перевод с английского, 6 изд. л., цена 65 коп.
К о ф м а н А., Ф о р Р., Займемся исследованием операций. Париж, 1963, перевод с французского, 18 изд. л., цена 1 р. 60 к.
Куратовский К-, Топология. Том I. Перевод с рукописи нового английского издания, 40 изд. л., цена 3 р. 10 к.
Мак-Лейн С., Гомология. Берлин — Гёттинген — Гейдельберг, 1963, перевод с английского, 25 изд. л., цена 2 руб.
Математические проблемы в биологии. Под ред. Р. Беллмана. Провиденс (США), 1962, перевод с английского, 12 изд. л., цена 1 р. 10 к.
П р а х а р К-, Распределение простых чисел. Берлин — Гёттинген — Гейдельберг, 1957, перевод с немецкого, 25 изд. л., цена 2 руб.
Ренделл Б., Рассел Л., Реализация АЛГОЛ-60. Лондон — Нью-Йорк, 1964, перевод с английского, 22 изд. л., цена 1 р. 80 к.
Рудин У., Основы математического анализа. Нью-Йорк, 1964, 2-е, переработанное издание, перевод с английского, 18 изд. л., цена 1 р. 50 к. •
Фор Р., Кофман А., Дени-Папен М., Современная математика. Том I. Париж, 1964, перевод с французсЛго, 12 изд,, л., цена 1 р. 10 к.
Форд Л., Фалкерсон Д., Потоки в сетях. Принстон, 1962, перевод с английского, 12 изд. л., цена 1 р. 10 к.
*) Предлагаемый метод легко переносится на случай кодов с бдлыпим основанием. Единственное, что для ^того требуется, Зтб Заменй слов «бинарная последовательность* соответствующим термином.
!) Было показано [1], что всякий систематический код является групповым, а всякий групповой — систематическим.
*) Имеется в виду программист — создатель обслуживающих программ*.— Прим, пере в. '
i) Это утверждение едва ли верно. Алгоритмы синтаксического анализа текста, предназначенные для машинного перевода, как правило, строятся таким образом, что их без труда можно превратить в операционную процедуру для определения грамматической правильности. Ср. также одну из работ, в которых возможности построения разрешающих алгоритмов для естественных языков изучаются в непосредственном виде: И. Б а р - X и л- л е л, Разрешающие процедуры для структуры естественных языков, сб. «Математическая лингвистика», М., 1964, стр. 108—125. — Прим, перев.
Кибернетическийсборник
НОВАЯ СЕРИЯ
ВЫПУСК
Сборник переводовПод редакциейК. X. ЛЯПУНОВА и О. Б. ЛУПАНОВА
ИЗДАТЕЛЬСТВО «МИР»
Москва 1965
УДК 519.95УДК 519.95Научный совет по кибернетике Академии наук СССР
УДК 519.95
УДК 519.95
В 1960—1964 гг. Издательством иностранной литературы и издательством «Мир» выпускалась серия кибернетических сборников (выпуски 1—9).
Этот выпуск открывает новую серию, которая является в известном смысле продолжением предыдущей, но будет отличаться от нее более разнообразной тематикой.
В разделе «Математические вопросы» представлены работы по теории кодирования (статьи Дж. Мак-Вильямс и Э. Гилберта), а также по теории автоматов и теории управляющих систем. Раздел «Вычислительные машины и программирование» в основном посвящен описанию новейших вычислительных машин системы IBM-360. Вопросам математической лингвистики посвящена обзорная статья Н. Хомского и Дж. Миллера. Это первая из трех статей, в которых обсуждаются математические модели языка; остальные статьи будут включены в следующие выпуски сборника.
Сборник рассчитан на научных работников, инженеров, аспирантов и студентов различных специальностей, занимающихся и интересующихся кибернетикой.
Редакция литературы по математическим наукам
Математическиевопросы
О базисах симметрической группы)
С. Пикар
От редакции. Книга Софи Пикар «О базисах симметрической группы», вышедшая в 1946 г., посвящена детальному изучению пар подстановок, порождающих симметрическую группу с^п. В книге содержится большое количество критериев, позволяющих распознавать полноту пар подстановок определенного вида. Некоторые результаты, изложенные в книге, имеют приложение в вопросах описания работы электрических схем, теории кодирования и др. В настоящем сборнике публикуется перевод части книги, содержащей основной результат и весь материал, необходимый для его доказательства ).