3. Выбор порождающих элементов
Так же как и в случае блоковых групповых
имеются явно неудачные возможности, которых нужно избегать при выборе порождающих элементов; так, очевидно, плохим был бы выбор
Метод для выбора хороших [т. е. дающих небольшие
сначала обосновывается эвристически, а затем подробно описывается ниже.
Исключающие функции
являются монотонно возрастающими функциями от
Последовательность
исключается при наименьшем
для которого
Одновременно исключается совокупность всех других
которые имеют
своим началом. Объем этой совокупности экспоненциально растет. Ясно, что желательно исключать
входящие
наибыстрейшим способом. Далее, в силу экспоненциальности роста, одно неправильное сообщение, для которого
значительно меньше
будет приводить к увеличению вычислительной работы, много более существенному, чем несколько сообщений с
лишь немного меньшим, чем
. В соответствии со сказанным, разумная процедура для построения хорошего порождающего элемента состоит всегда в выборе следующих
символов так, чтобы они максимизировали минимальное по
расстояние от I). Такая процедура требует прослеживания всего подмножества
вплоть до максимальной длины
для которой оно еще строится. Это означает, что такая процедура становится практически невыполнимой для значений
больших 10 или 11 при ручном счете, и при значениях порядка 20 при
использовании вычислительных машин. Были предприняты поиски алгоритмов для неограниченного расширения
но они пока что не увенчались успехом. Пример
Рис. 14. (см. скан) Пример хорошего группового древовидного кода. Верхние индексы
накопленные расстояния