НОВОСТИ    БИБЛИОТЕКА    КАРТА САЙТА    ССЫЛКИ    О ПРОЕКТЕ  

предыдущая главасодержаниеследующая глава

4.5. Широкое формальное определение алгоритма

Теперь, когда мы имеем некоторые алгоритмы (первичные), можно дать циклическое определение, которое уже не будет порочным кругом. Это определение очень похоже на определение первичных алгоритмов, но только в нем вместо правила выполнения фигурирует алгоритм выполнения. Но давая циклическое определение, сделаем это в самом общем виде, чтобы сократить текст книги.

Прежде всего нужно указать объекты преобразований. Пусть это по-прежнему будут предложения формального языка исходных данных L1. Но такие предложения можно "обрабатывать" не только поодиночке, а сразу наборами. Учтем в нашем определении такую возможность. Пусть имеется некоторая связь n-го ранга и n-го жанра, не присутствующая в предложениях языка L1. Обозначим ее z. Связывая с ее помощью различными способами предложения языка L1, предварительно заключая каждое из них в оболочку, получаем более сложные конструкции, которые, если через s,- обозначить предложение языка L1, можно изобразить как (s1, s2, ..., sn) z. Эти новые конструкции образуют новый формальный язык. Обозначим его L3. Если n = 1, нет надобности привлекать связь z первого ранга. В этом частном случае считаем, что L3 совпадает с L1. Итак, объектами преобразований будем считать предложения языка L3.

Далее, пусть задан формальный язык L2, предложения которого будем называть записями алгоритмов. Пусть t - произвольное предложение языка L2, a q - языка L3. Выберем бинарную связь z', не применяемую ни в языке L2, ни в языке L3, и построим символьные конструкции (t, q) z' .Их совокупность образует еще один язык L4.

Алгоритмом выполнения назовем алгоритм W, записанный на любом, но определенном языке, для которого L4 является языком операндов.

Таким образом, записями нового семейства алгоритмов являются предложения языка L2, а алгоритм выполнения W наделяет эти предложения семантикой.

Можно приведенное циклическое определение перефразировать так: алгоритмами называются предложения языка, для которого задан язык исходных данных и алгоритм выполнения.

Определенное нами семейство алгоритмов по отношению к языку L1 называется семейством n-местных или n-арных или n-го ранга алгоритмов.

Замечание. Если предложения языков L1 и L2 являются только слова, то можно вместо n-арной связи n-го жанра (z) и бинарной связи 2-го жанра (z') применить набор из n букв x0, x1, ..., xn-1, не используемых ни в L1, ни в L2, и предложения языка L3 строить как последовательные сцепления слов q = s1 x1 s2 x2 ... хn-1 sn. Предложения языка 14 при этом строят с помощью последовательных сцеплений в виде t x0 q. Этот прием делает ненужными оболочки и упрощает алгоритм W.

Теперь можно сформулировать широкое формальное определение алгоритма. Алгоритмами называются:

  1. первичные алгоритмы;
  2. n-арные (при n = 1, 2, ...) алгоритмы, определение которых приведено выше.

Первые n-арные алгоритмы можно конструировать, используя для задания алгоритма выполнения первичные алгоритмы. А затем можно строить алгоритмы выполнения из числа n-арных и получать новые семейства алгоритмов.

предыдущая главасодержаниеследующая глава











© ROBOTICSLIB.RU, 2001-2019
При копировании материалов проекта обязательно ставить ссылку на страницу источник:
http://roboticslib.ru/ 'Робототехника'
Рейтинг@Mail.ru
Поможем с курсовой, контрольной, дипломной
1500+ квалифицированных специалистов готовы вам помочь