Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопрос 33-48.docx
Скачиваний:
1
Добавлен:
25.09.2019
Размер:
265.16 Кб
Скачать

Вопрос 36. Для решения каких задач используется граф пир?

Граф ПИР используется при решении задач распознавания типика и вывода системы из тупика(????)

Вопрос 37. Алгоритм редукции графа пир

Алгоритм редукции графа ПИР состоит в следующем:

  1. Определения процесса, который может выполнить редукцию (он должен быть не заблокирован, его вершина не является изолированной)

  2. Удаление всех дуг запросов у этого процесса (фактически моделирование двух операции выделения и освобождения ресурса), поэтому пометка у ресурсов не меняется

  3. Удаление дуг выделения у этого процесса, при этом пометка tj (количество доступных единиц ресурса на данный момент) у вершин ресурсов изменится на величину дуги выделения (k).

  4. Возврат к шагу 1 (если еще есть незаблокированные процессы).

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

Вопрос 38. Основная теорема о тупике

Основная теорема о тупике звучит следующим образом:

Состояние системы является тупиковым тогда и только тогда, когда граф в этом состоянии не является полностью сокращаемым.

Ее доказательство основано на вспомогательной лемме, которая звучит так:

Порядок сокращений графа ПИР не существенен; все последовательности сокращений приводят к одному и тому же несокращаемому графу.

Вопрос 39. Задача распознавания тупика для систем с единичными ресурсами

Для систем с единичными ресурсами задача распознавания тупика строится на следующем:

Необходимым и достаточным условием тупика в такой системе является наличие цикла в графе ПИР.

  1. Построить граф ПИР

  2. Выполнить его редукцию

  3. Выполнить алгоритм поиска цикла. В том случае, если цикл найден, то состояние системы – тупиковое, иначе – тупика нет.

Алгоритм поиска цикла в графе строится на следующем:

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

Sink := { v N | od(v) = 0 } //Множество вершин-стоков

for all v Sink do

begin

for all u : (u, v) E do

begin

w(u) := w(u) – 1 ; //Понижаем полустепень захода

if w(u) = 0 then Sink := Sink { u } ;

end

end

if Sink N then write (‘В графе есть цикл !’)

Вопрос 40. Задача распознавания тупика для систем в выгодном состоянии

Распознавание тупика для систем в выгодном состоянии строится на следующем следствии из основной теоремы о тупике:

Достаточным условием тупика в системе в выгодном состоянии является наличие узла в графе ПИР.

  1. Построить граф ПИР

  2. Выполнить его редукцию

  3. Выполнить алгоритм поиска узла. В том случае, если узел найден, то состояние системы – тупиковое, иначе – тупика нет.

Приведенный ниже алгоритм дает возможность обнаружить узел в графе. Он основан на том, что узел по определению не может содержать вершину сток (сток – это вершина v, из которой не выходит ни одной дуги, то есть полустепень исхода такой вершины равна 0: od(v) = 0), а также вершины, из которых можно попасть в вершину-сток.

Sink := { v N | od(v) = 0 }

for all v Sink do

for all u : (u, v) E do

if u Sink then Sink := Sink { u } ;

if N Sink then write (‘В графе есть узел !’)

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