Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
full_v2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
13.36 Mб
Скачать

10.1. Преобразование слов в произвольных абстрактных алфавитах

Существуют три основных типа универсальных алгоритмических моделей:

  • преобразование слов в произвольных абстрактных алфавитах;

  • преобразование числовых функций;

  • представление алгоритмов как некоторого детерминированного устройства, способного выполнять простейшие операции.

В первом типе универсальных алгоритмических моделей под алгоритмом понимают задаваемые соответствия между словами в абстрактных алфавитах (АА). Под абстрактным алфавитом понимается конечная совокупность объектов, называемых буквами или символами этого алфавита. Символами абстрактного алфавита считают буквы, цифры, любые знаки, слова, предложения, любые тексты. Следовательно, абстрактный алфавит — это конечное множество различных символов, и, подобно множеству, его можно задать путем перечисления элементов или символов.

Например, А — абстрактный алфавит: А = {+, а, студент, b, c, учебник}.

Абстрактный алфавит является многоступенчатым, т.е. каждый символ может сам являться алфавитом или его частью. Тогда в соответствии с определением первой алгоритмической модели алгоритмами называют преобразование слов в абстрактном алфавите. Соответственно, словом в абстрактном алфавите называют любую конечную упорядоченную последовательность символов. В качестве примера приведем следующую запись:

Слово А = < +, a >, Слово B = < b, +, c >, Слово C = < >, Слово D = < + >. Здесь слово А состоит из двух символов, В – из трех символов, С – не содержит символов и является пустым, D – содержит один символ.

Число символов в слове абстрактного алфавита называется длиной этого слова.

Алфавитным оператором (АО) называют функцию, которая задает соответствие между словами входного и выходного АА.

Пусть задана система с входным абстрактным алфавитом X и выходным Y. Пусть Х = {a, b, ЭВМ, ПЭВМ}; Y = {a + b, a b, система, ВЦ}. Построим АО, который перерабатывает входные слова алфавита Х в выходные слова алфавита Y. На рис. 2.1 показан один из возможных вариантов алфавитного оператора.

Алфавитные операторы бывают однозначные и многозначные. В однозначном АО каждому входному слову ставится в соответствие одно выходное слово. В многозначных АО каждому входному слову может быть поставлено в соответствие некоторое множество выходных слов. АО, который не ставит в соответствие входному слову никакого выходного, называется неопределенным на этом слове. В примере на рис. 10.1. приведен один из возможных вариантов многозначного АО.

Множество слов, на котором АО определен, называется его областью определения.

Рис. 10.1. Пример алфавитного оператора

Выделяют алфавитные операторы с конечной и бесконечной областями определения. Если область определения АО конечна, то его обычно задают таблицей соответствий. В левой части таблицы записывают слова, входящие в область определения, в правую часть таблицы — слова, получающиеся в результате применения АО к входным словам. Если область определения алфавитного оператора бесконечна, то его задают набором правил, которые за конечное число шагов позволяют найти выходное слово, соответствующее входному.

Алфавитный оператор, задаваемый с помощью конечной системы правил, называется алгоритмом.

Следует различать понятие алгоритма и алфавитного оператора. В АО основное — это соответствие между словами, а не способ его установления. В алгоритме же основное — способ установления соответствия между словами. Следовательно, алгоритм - это АО с правилами, определяющими его действие.

Два алгоритма называются равными, если равны их АО и совпадают системы правил, задающих действие этих алгоритмов на входные слова.

Алгоритмы считаются эквивалентными, если они имеют совпадающие АО, но не совпадающие способы их задания.

Например, пусть алгоритм A1 определяется следующим образом:

X = {a, b, c} – входной абстрактный алфавит;

Y = {, , } – выходной абстрактный алфавит;

Алфавитный оператор (АО1): a  , b  , c .

Система правил, задающая действие алфавитного оператора: А, В, С.

Пусть алгоритм A2 определяется следующим образом:

X = {a, b, c} – входной абстрактный алфавит;

Y = {, , } – выходной абстрактный алфавит;

Алфавитный оператор (АО2): a  , b  , c .

Система правил, задающая действие алфавитного оператора: А, В, С.

Тогда алгоритм А1 равен алгоритму А2. Если в алгоритме А2 система правил, задающая действие алфавитного оператора АО2: В, С, А, то алгоритм А1 эквивалентен алгоритму А2.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]