Моделей распределенных программ



 

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

Теперь обобщим задачу анализа следующим образом. Объектом анализа будет маркированный потоковый граф с метками дуг и вершин, вид (семантику) которых мы не конкретизируем. Заметим, что в вводном разделе п. 3.1, посвященном основным понятиям разметки и анализа, мы не определяли точно, что представляет собой информация на входе  и выходе  вершины  графа и каковы параметры , . Далее, положим, что допускаются произвольные функции приведения свойств по входам и выходам, а также функции разметки входов и выходов, т.е. их конкретный вид не задается и не предъявляется требование монотонности, как это было в случае анализа М-сетей. Из прежней постановки задачи сохраним лишь правила ,  разметки, которые допускают обобщение для произвольных меток и будем считать, что заданы верхние полуструктуры меток дуг и вершин (см. п. 3.1). Возникает следующий вопрос. Можно ли в таких условиях в результате анализа обобщенного маркированного потокового графа установить, достижима ли стационарная разметка?

Здесь мы сталкиваемся с проблемой разрешимости, относящейся к так называемым массовым проблемам. Как известно, общим в постановке таких проблем является поиск ответа на вопрос, обладает ли исследуемый объект интересующим нас свойством, определяющим его принадлежность к множеству всех объектов, этим свойством обладающих. Известен ряд классических неразрешимых проблем. Это, в частности, проблемы остановки и пустой ленты в машине Тьюринга, проблема тождества слов Маркова – Поста. Так, неразрешимость проблемы остановки означает, что нельзя построить алгоритм, который устанавливал бы, остановится ли машина Тьюринга, начав работать над любым словом в заданном алфавите. Неразрешима и более частная проблема: остановится ли машина Тьюринга, работающая с пустой лентой, не содержащей никаких символов, кроме пустого. Для дальнейшего понимания этого подраздела желательным было бы предварительное знакомство с основными разделами теории алгоритмов, в частности, с рекурсивными функциями. Далее желтым цветом выделен «факультативный» материал!

Итак, исследование алгоритмической разрешимости задачи анализа потоковых моделей требует обобщения семантической природы меток дуг и вершин потокового графа  программы (см. п. 2.3 раздела 2), а также формализации самой схемы анализа. Цель анализа таких моделей – установление существования наименьшей верхней грани свойств дуг и вершин потокового графа , которая полно, но неизбыточно представляет структурный аспект поведения программ.

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

В схеме ПАСС текущая разметка  – это набор свойств ее уровней , , где свойство уровня  представлено метками соответствующих вершин  и инцидентных им дуг. Неформально схема ПАСС представляет собой комбинацию двух проходов по уровням сети, определение свойств уровня  по правилу  ( ), возвращение к уровню  от предшественников (преемников) и приведение свойств в -м уровне по правилу  ( ).

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

Для формального задания процедуры первого прохода от уровня 1 к уровню  с применением правила  и процедуры второго прохода от уровня  к уровню 1 с применением правила  введем следующую схему примитивной рекурсии:

С помощью схемы (3.5) функция  получается из функций  и  и при этом однозначно определяется последовательность изменения значений свойств уровней.

Для формального определения возвращений к уровню  от предшественников в уровнях  и приведения свойств в -м уровне по правилу  в первом проходе, а также возвращений к уровню  от преемников в уровнях  и приведения свойств уровня  по правилу , понадобится схема возвратной рекурсии. Пусть , где , являются всюду определенными функциями, причем . Это – вспомогательные функции, вводимые по определению в возвратную рекурсию :

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

Для того чтобы схемы (3.5), (3.6) формально представляли процедуры ПАСС как при первом, так и втором проходе, достаточно следующего допущения. При первом проходе с "применением" (3.5) вводится прямая порядковая функция , а для (3.6) – обратная , т.е. изменяется на противоположную нумерация уровней. При втором проходе "применение" (3.5), (3.6) предполагает задание функций ,  соответственно.

Далее, необходимо формальное представление изменяемости свойств вершин. Напомним, если они не изменяются никаким применением правил , , то достигнутая разметка является стационарной. Введем функцию стационарности с помощью следующей схемы примитивной рекурсии:

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

Заметим, что функция стационарности  (3.7), в отличие от функций ,  в (3.5), (3.6), определяется на аргументах , поскольку различные свойства смежных дуг приводятся к свойству соответствующей вершины.

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

.          (3.8)

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

. (3.9)

Функция  в (3.9) получается из функций ,  и  с помощью оператора подстановки.

Формально схемой ПАСС будем называть систему функциональных уравнений (3.5) - (3.9). При этом, если существует решение уравнений (3.7), (3.8), то функция  должна быть наименьшим из решений уравнения (3.9).

Интерпретация схемы анализа. Введем понятия функций и функционала, интерпретирующих формально заданную схему ПАСС (3.5) - (3.9). Обозначим через  множество наборов  натуральных чисел, кодирующих свойства вершин на основе отношения частичного порядка, т.е. , где ,  – метки вершин , . Через  обозначим естественное расширение, включающее элемент  для обозначения величины не определено, т.е. . Пусть  и  – частично определенные функции, а  – суперпозиция  и . Положим, установлено взаимно однозначное соответствие между процессом вычисления  по (3.5) и последовательностью

, , . . . , , . . . ,

где  – номер шага ПАСС.

Пусть также имеет место взаимно однозначное соответствие между процессом вычисления  по (3.6) и последовательностью

, , . . . , , . . .

Тогда будем говорить, что функции  и  интерпретируют соответственно схемы (3.5) и (3.6) на области .

На основании результатов, изложенных в п. 3.1, можно задать функции  и , которые интерпретируют функции стационарности  в (3.7) и сложности  в (3.8) на подмножестве целых неотрицательных чисел, расширенном элементом . Для установления достижимости стационарной разметки достаточно  шагов ПАСС. Тогда на -м шаге

При этом

Теперь рассмотрим, как интерпретируется функция неизбыточности разметки  в уравнении (3.9). Пусть функционал  устанавливает соответствие между интерпретирующими функциями ,  на множестве . Тем самым определяется взаимно однозначное соответствие между процессом вычисления функции  в (3.9) и последовательностью значений , представляющих собой суперпозиции функций  и . Содержательный смысл введения функционала  заключается в "синхронизации" вычислений ,  по схемам (3.5), (3.6),  по (3.9) с последовательностями ;  и последовательностями функций из . Будем говорить, что функционал  интерпретирует функцию  (3.9) на множестве функций .

Известно, что каждая естественно расширенная функция является монотонной. Следовательно, функционал , определенный на суперпозициях монотонных функций  и , является непрерывным. На основании первой теоремы Клини о рекурсии можно утверждать, что такой функционал имеет наименьшую неподвижную точку . Поскольку  должно быть наименьшим решением уравнения (3.9), то .

Этот результат позволяет использовать конструктивный прием для поиска стационарной неизбыточной разметки по схеме ПАСС (3.5) - (3.9) на основе определенных требований к функции, которая интерпретирует схему на множестве разметок с произвольными семантическими свойствами.

Решение задачи ПАСС. Пусть  – множество разметок сети , представленных наборами свойств уровней ,  – шаг ПАСС, а ,  – последовательно получаемые свойства уровня . Будем считать, что , если на -м шаге приведенное свойство любой из вершин уровня не меньше, чем на -м шаге. Если  – разметки сети, представляющие совокупность свойств ее уровней, то  тогда и только тогда, когда . Положим,  – минимальная начальная разметка. Наименьшая верхняя грань  множества , где , есть неизбыточная разметка сети.

Зададим функцию разметки , которая интерпретирует схему ПАСС на семействе свойств уровней сети . Так, для М-сети функция  определяется конкретным видом функций приведения свойств вершин и разметки дуг (см. п. 3.1 и п. 3.2), а также порядком применения правил ,  По сути, значение  представляет собой разметку, достижимую из разметки  по схеме ПАСС. Любая из стационарных разметок  является неподвижной точкой функции разметки сети: . Решением задачи ПАСС является наименьшая неподвижная точка функции .

В последовательном анализе на каждом шаге изменяется свойство одного и только одного уровня. Это определяет пошаговое, поступательное и возвратно-поступательное изменение разметки сети. Продемонстрируем общий прием задания функции . Если уровень  препятствует достижимости , то будем считать, что функция  не определена на свойстве , и обозначать это . Наоборот, если изначально задана порядковая функция  (или ) и уровень  не препятствует достижимости , то  определена на уровнях  (или ):  (или ). Построим функциональные определения свойства уровня , где начальная разметка  является параметром, тем самым определим и функцию разметки. Пусть изначально задана функция , обозначим через  начальную разметку выходов сети , т.е. исходящих дуг для вершин, не имеющих преемников.

Введем вспомогательные функции:

 если  то  иначе ,

 

 если  то  иначе .

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

 если  то

иначе ,

 если  то

иначе ,

= если

то  иначе ,

 если  то  иначе ,

= если

 то

иначе .

Функциональное определение  построено на результате, обсуждавшемся в п. 3.1: если при повторной переразметке уровня его свойство строго возрастает, то стационарной разметки сети не существует.

Проблема разрешимости задачи анализа. Алгоритмическая разрешимость задачи ПАСС, естественно, зависит от свойств функции разметки.

У т в е р ж д е н и е. Задача ПАСС с произвольной функцией  разметки сети  алгоритмически неразрешима.

Приведем здесь лишь основные этапы доказательства.

Пусть , частично рекурсивная числовая функция, представляет словарную функцию  в нумерации :

.

Положим, функция  задана в алфавите , а  – слова в алфавите . Тогда  является частично рекурсивной словарной функцией.

Согласно теореме Тьюринга для функции  существует машина Тьюринга с символами  и подходящими внутренними состояниями, где  – пустое состояние, которая вычисляет функцию .

Таким образом, проблема остановки машины Тьюринга может быть сведена к поиску решения задачи ПАСС, которому однозначно соответствует наименьшая неподвижная точка  функционала . Здесь используется так называемый метод сведения, когда известная неразрешимая проблема сводится к изучаемой. На этом основании делается вывод, что исследуемая проблема также алгоритмически неразрешима. Если бы существовало решение задачи ПАСС с произвольной функцией  разметки, то данное сведение позволило бы решить проблему остановки машины Тьюринга, которая, как известно, является алгоритмически неразрешимой.

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

Т е о р е м а 3.2. Если функция  разметки монотонна, то неизбыточная разметка  сети  и есть решение задачи ПАСС, т.е. , где , , .

Д о к а з а т е л ь с т в о. Функция  является непрерывной: . Действительно, рассмотрим произвольную цепь , где . Ясно, что для любого . В силу монотонности  справедливо:  для каждого . Поэтому .

Зафиксируем некоторое значение . Тогда

.

Так как  выбиралось произвольно, то . Отсюда и следует, что .

Поскольку  непрерывна, то на основании теоремы о неподвижной точке  – наименьшая неподвижная точка. При этом . Значит, . Теорема доказана.

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

На рис. 3.9 приведен пример алгоритма распознавания существования стационарной разметки для изначально заданной порядковой функции .

 

 

{параметры , ;

{для  шаг1до  цикл };

{параметры ;для  шаг1до  цикл ;

{если  то {для  шаг1до  цикл };

{параметр ;для  шаг1до  цикл }

                                                                                  };

{если  то стационарная

разметка не достижима иначе уровень  не препятствует

достижимости стационарной разметки }

                                                                                                   }

    }

 

Рис. 3.9. Алгоритм распознавания недостижимости стационарной разметки

 

 

На рис. 3.9 процедуры получения разметок уровня  по правилам  обозначены , фигурными скобками { , } – начало, конец. При первом проходе применяется лишь правило , т.е. нет необходимости возвращений к преемникам для приведения их свойств по правилу . Этот случай соответствует М-сети, все метаоператоры которой имеют одну выходную позицию (см. рис. 3.6, б).

Таким образом, алгоритм распознавания представляет собой последовательность первого прохода от уровня 1 к уровню  с применением правила  и второго прохода от уровня  к уровню 1 с возвращениями от текущего уровня  к уровню  и обратно (рис. 3.10). При этом проверяется, возрастают ли приведенные свойства вершин уровня. Если нет уровней, препятствующих достижимости стационарной разметки, то она и является результатом работы алгоритма.

Итак, мы рассмотрели проблему алгоритмической разрешимости задачи анализа обобщенных потоковых графов программ. Уравнения (3.5) - (3.9) представляют собой формализацию схемы последовательного анализа свойств сети, соответствующей исходному графу. Функция неизбыточности разметки сети – наименьшее из решений системы функциональных уравнений, задающих схему ПАСС. Задача анализа с произвольной функцией разметки является алгоритмически неразрешимой. В случае монотонности функции разметки задача ПАСС разрешима (теорема 3.2).

 

 

 

Рис. 3.10. Диаграмма проходов по алгоритму распознавания

 

 


Дата добавления: 2021-05-18; просмотров: 55; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!