Московский государственный индустриальный университет
Опубликован: 27.09.2006 | Доступ: свободный | Студентов: 3331 / 379 | Оценка: 4.17 / 3.79 | Длительность: 24:17:00
Специальности: Программист
Лекция 9:

Индуктивные функции на пространстве последовательностей

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Аннотация: Критерий индуктивности и стационарные значения. Индуктивные расширения. Критерий минимальности. Применение теории индуктивных функций.

В первом параграфе данной главы мы уже познакомились с индуктивными функциями и даже рассмотрели простейшую программу, написанную с помощью применения схемы вычисления индуктивной функции — программу вычисления значения многочлена (см. решение задачи 7.6 "Базисные схемы обработки информации" ). К сожалению, подавляющее большинство функций на пространстве последовательностей индуктивными не являются, что требует дальнейшего развития теории.

Весьма подробное рассмотрение вопросов, связанных с индуктивными функциями, и большое число задач на их применение содержатся в книге [9].

Критерий индуктивности и стационарные значения

Напомним основное определение.

Функция f\colon X^* \rightarrow Y называется индуктивной, если f(\omega\circ x) можно вычислить, зная f(\omega) и x, т.е. если \exists G\colon Y \times X\rightarrow Y такое, что \forall \omega\in X^* \ \forall x\in X\ f(\omega\circ x)
 = G(f(\omega),x).

Доказательство индуктивности функции обычно проводят конструктивно, предъявляя требуемую функцию G. Именно она позволяет написать программу, реализующую схему вычисления индуктивной функции. Для доказательства же того факта, что заданная функция не является индуктивной, применяют следующий критерий индуктивности (точнее его отрицание ).

Теорема 9.1. Критерий индуктивности. f\colon X^* \rightarrow Y индуктивна \Longleftrightarrow
\big(\forall a, b \in X^*\ \forall x \in X\ f(a) = f(b) \Rightarrow
f(a\circ x) = f(b\circ x)\big).

Теорема утверждает, что f индуктивна тогда и только тогда, когда из равенства значений f на последовательностях a и b следует равенство значений f на любых одинаково удлиненных последовательностях a\circ x и b\circ x.

Доказательство Необходимость сформулированного в критерии условия немедленно следует из определения индуктивности. Если f — индуктивна, то \forall a, b \in X^*\ \forall x \in X f(a\circ x) = G(f(a),x) = 
G(f(b),x) = f(b\circ x).

Для доказательства достаточности построим требуемое отображение G\colon Y \times X\rightarrow Y такое, что \forall \omega\in X^* \ \forall x\in X\ f(\omega\circ x)
= G(f(\omega),x). Зададим это отображение формулой

G(y,x)=\begin{cases}
	f(\omega\circ x),& \text{если существует $\omega\in X^*$ такая,
что $f(\omega)=y$},\\
	y,& \text{иначе}.
	\end{cases}

Корректность этого определения вытекает из заданного в условии теоремы свойства функции f. В самом деле, пусть найдутся две различные цепочки a и b такие, что f(a) = f(b). Тогда можно гарантировать, что f(a\circ x) = f(b\circ x), что и доказывает корректность определения отображения G, ибо G(y,x) действительно не зависит от выбора конкретного прообраза элемента y.

Так как \forall \omega\in X^* \ \forall x\in X\ f(\omega\circ x)
= G(f(\omega),x) для построенного отображения G, то теорема полностью доказана.

В качестве примера использования критерия индуктивности докажем, что функция f\colon \mathbb{Z}^*\rightarrow \mathbb{Z} количество максимальных элементов последовательности целых чисел не является индуктивной. Возьмем a=1, b=2, x=2. Тогда f(a)=f(b)=1, но f(a\circ x) = 1 \ne 2 = f(b\circ x).

Схема вычисления индуктивной функции, приведенная в "Базисные схемы обработки информации" , может быть несколько упрощена при условии наличия у функции так называемых стационарных значений.

Определение 9.1. Значение y \in Y индуктивной функции f\colon X^*
\rightarrow Y называется стационарным, если \forall \omega\in X^*\ \forall x \in
X
\ f(\omega) = y \Rightarrow f(\omega\circ x)=y.

Так, например, для функции f\colon \{0,1\}^*\rightarrow
\{T,F\} все элементы цепочки равны нулю значение F является стационарным.

В том случае, если индуктивная функция определена только на X^*_k для k>0, ее вычисление может начинаться не с пустой, a с одноэлементной или даже более длинной цепочки. Это, однако, приводит к более сложной программе, чего можно иногда избежать, доопределяя исходную функцию.

Индуктивную функцию f\colon \mathbb{Z}^*_1\rightarrow
\mathbb{Z} произведение элементов числовой последовательности можно доопределить с сохранением функции G следующим образом: f(\varepsilon)=1.

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

Индуктивные расширения

Определение 9.2. Функция F\colon X^* \rightarrow \widetilde Y называется индуктивным расширением функции f\colon X^* \rightarrow Y, если

1) F индуктивна,

2) \exists \pi\colon \widetilde Y\rightarrow Y такое, что \forall \omega \in X^* \ 
f(\omega) = \pi(F(\omega)).

Рассмотрим функцию f\colon \mathbb{R}^*_1
\rightarrow  \mathbb{R} среднее арифметическое элементов последовательности, которая не является индуктивной. Тогда функция F\colon \mathbb{R}^*_1 \rightarrow \mathbb{R}\times \mathbb{N}, определенная по формуле F(\omega)=((s(\omega), n(\omega))), где \omega = a_1a_2\ldots a_n, \displaystyle s(\omega)=\sum_{i=1}^{n} a_i, а n=|\omega|, является индуктивным расширением исходной функции f, и \pi(s,n) = s/n.

Для вычисления значения f(\omega) не являющейся индуктивной функции f на цепочке \omega применяется следующая обобщенная схема.

Обобщенная схема вычисления индуктивной функции. Строится индуктивное расширение F исходной функции, которое позволяет ценой увеличения запоминаемой информации о цепочке \omega F(\omega) информации больше, чем в f(\omega) ) применить схему вычисления индуктивной функции к F(\omega) , а затем просто найти f(\omega)=\pi(F(\omega)).

Пусть F_1\colon X^* \rightarrow \widetilde Y_1 и F_2\colon
 X^* \rightarrow \widetilde
 Y_2 — два индуктивных расширения функции f\colon X^*
\rightarrow Y. Будем говорить, что F_1 \geqslant F_2, если \exists
\pi\colon 
\widetilde Y_1 \rightarrow \widetilde Y_2 такое, что \forall \omega \in X^*\ F_2(\omega) = \pi(F_1(\omega)).

Определение 9.3. Минимальным индуктивным расширением функции f\colon X^*
\rightarrow Y называется индуктивное расширение \widehat F\colon X^* \rightarrow \widehat Y такое, что

1) \widehat F(X^*) = \widehat Y \qquad (\widehat F — сюръективно);

2) для любого индуктивного расширения F функции f выполнено

F \geqslant \widehat F.

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

Для любой функции на пространстве последовательностей существует и единственно (в определенном смысле), ее минимальное индуктивное расширение. Доказательство этого факта проведем в два этапа, сначала убедившись в единственности расширения.

Теорема 9.2. Минимальное индуктивное расширение любой функции f\colon X^* \rightarrow
Y единственно с точностью до изоморфизма.

Доказательство Пусть для функции f\colon X^* \rightarrow Y существуют два минимальных индуктивных расширения F_1\colon X^* \rightarrow \widetilde Y_1 и F_2\colon X^* \rightarrow \widetilde Y_2. Тогда в силу их минимальности имеем F_1(X^*) = \widetilde Y_1 и F_2(X^*) = \widetilde
Y_2.

Так как F_1 \geqslant F_2 (ибо F_2 — минимально), то \exists p_{12}\colon 
\widetilde Y_1 \rightarrow \widetilde Y_2 такое, что \forall \omega \in X^*\ F_2(\omega) = p_{12}(F_1(\omega)). С другой стороны, F_2 \geqslant F_1 и \exists p_{21}\colon 
\widetilde Y_2 \rightarrow \widetilde Y_1 такое, что \forall \omega \in X^*\ F_1(\omega) = p_{21}(F_2(\omega)). Для доказательства теоремы нужно показать, что отображения p_{12} и p_{21} биективны. Рассмотрим композиции этих отображений p_{12}\circ p_{21} и p_{21}\circ p_{12} и докажем, что они являются тождественными отображениями множеств \widetilde Y_2 и \widetilde Y_1 соответственно (из этого и следует биективность отображений p_{12} и p_{21} ).

Возьмем произвольный элемент y_1\in\widetilde Y_1. Из сюръективности F_1 следует, что найдется цепочка \omega \in X^*, такая что F_1(\omega)=y_1 и поэтому \forall y_1\  y_1=F_1(\omega)= p_{21}(F_2(\omega)) =
p_{21}(p_{12}(F_1(\omega)))=p_{21}(p_{12}(y_1))=(p_{21}\circ
p_{12})(y_1). Полученное равенство показывает, что p_{21}\circ p_{12}
 = Id_{\widetilde Y_1} — тождественное отображение. Рассматривая произвольный элемент y_2\in\widetilde Y_2, аналогично получаем, что p_{12}\circ p_{21} = Id_{\widetilde Y_2}, что и завершает доказательство теоремы.

< Лекция 8 || Лекция 9: 12345 || Лекция 10 >
Анастасия Халудорова
Анастасия Халудорова
екатерина яковлева
екатерина яковлева