II. ДРУГИЕ МЕТОДЫ КОМБИНИРОВАНИЯ КОДОВ
Мы уже встречались раньше с несколькими способами комбинирования кодов для получения новых кодов:
(i). Прямая сумма двух кодов (упражнение (17) гл. 1, § 2.9).
(ii). Последовательное соединение двух кодов (упражнение (17) гл. 1, рис. 2.6).
(iii). Конструкция типа (§ 2.9).
(iv). Каскадирование двух кодов (§ 10.11) и, конечно, различные типы произведения кодов, описанные в части I этой главы. Очень легко придумать другие способы комбинирования кодов, и, действительно, этому посвящена обширная литература (см. работы, указанные в замечаниях к этой главе). Приводимые ниже конструкции отличает то, что все они были использованы для построения чрезвычайно хороших кодов. Они как бы являются обладателями рекордов. Обычно мы говорим, что один код лучше другого, если он содержит больше кодовых слов (и имеет ту же самую длину и то же минимальное расстояние), или, что эквивалентно, если он имеет большую длину (при той же самой избыточности и том же минимальном расстоянии). При этом упускаются
из виду все проблемы, связанные с кодированием и декодированием, но мы оправдываем это тем доводом, что, как только будут найдены хорошие с этой точки зрения коды, за ними последуют и алгоритмы их декодирования. Приложение А содержит таблицу, в которой приведены наилучшие известные к настоящему времени коды длины вплоть до 512; многие из них были найдены методами, описанными здесь.
Мы начнем (в § 18.7) с описания способа эффективного увеличения длины кода. Сначала приводятся конструкции заключающиеся в добавлении суффиксов. Далее идет небольшое отклонение от темы, содержащее краткую сводку известных результатов о наилучших кодах, исправляющих одиночные и двойные ошибки; даже эти сравнительно простые задачи еще не решены. Конструкция типа описанная в § 18.7.4, важна потому, что является одним из простейших способов построения кода Голея. В § 18.7.5 приводится конструкция Пирета, заключающаяся в удвоении длины неприводимого кода.
В § 18.8 описываются некоторые построения, связанные с каскадными кодами. В частности, в § 18.8.2 дается эффективное обобщение каскадных кодов, предложенное Зиновьевым.
Наконец, в § 18.9 приводятся некоторые остроумные методы укорочения кода.