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

Понятие линейной программы

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

Формализация понятий зависимости и независимости между операторами программы

Понятие множеств переменных, используемых в программе

Множеством C (P) изменяемых переменных программы называются переменные, которые в ходе выполнения программы P меняют свое значение хотя бы один раз.

C (Si), где Si – некоторый оператор, входящий в программу.

R(P) – упоминаемые (используемые) переменные программы P (множества), называются переменные участвующие при выполнении некоторых операций в программе.

R (Si) - множество упоминаемых переменных некоторого оператора Si.

Таким образом, упоминаемые переменные R (P), те, которые используются при вычислении переменных множества C(P).

Если через Si обозначить некоторый вычислительный блок, R(P) и C(P) могут быть представлены виде:

R(P) ={ x | x

R( ) ={ xi 1, xi 2, xi 3, … , xi m,}

C(P) ={ y | y

C( ) ={ yi 1, yi 2, yi 3, … , yi m,},

где n – число операторов в программе Р, в которой выполняются вычисления; m – количество элементов в соответствующих множествах, связанных с .

C(P) R(P) позволяет изучить все возможные переменные программы.

V(P) = C(P) R(P) V( i) = C ( i) R( i)

Понятие входных переменных в программе

Входные переменные образуют множество I(P), формализуемое в виде:

I(P) ={ | x (x1, x2, …, xx-1) , где

n – Количество операторов в программе;

i – Текущая операция.

Множества

Переменная x является используемой (упоминаемой) в операторе iи ее значение не получено в любом из предшествующих i-му оператору.

Множество входных переменных программы:

O(P) ={ |Y C (Si+1, Si+2 , … , Sn)}

Оператор Y должен быть результатом и не изменяться во всех последующих операциях.

I(P)V(P),

O(P)V(P).

Операции (операторы) в программе могут быть связаны различными отношениями зависимости и независимости.

  1. Отношениями зависимости и независимости операций

3.1 Непосредственная (сильная) зависимость операций

Оператор Sj называется непосредственно зависимым от оператора Si (обозначается Si  Sj, i j ) если:

а). C(Si)  R(Sj)  0

То есть изменяемые оператором Si переменные является упоминаемыми (используемыми) в операторе Sj.

б). Нет такой совокупности операторов (операций) Sk1, Sk2, Sk3,…, Skl

(ik1 k2 k3… kl), для которой при p  i, k1, k2,…, kl ,

g  k1, k2,…, kl, j и pg имело бы место одно из соотношений

C’(Sp)  C(Sg)

То есть изменяемые переменные операции (оператора) Sp не должны входить как подмножество в изменяемые переменные операции Sg – изменяемые переменные исходной операции не могут быть изменены до требуемой (конечной) операции. Имеет место соотношение:

C(Si)  R(Sj) = (Skr),

где C’(Skr) C(Skr), i kr j, r= , т.е. изменяемые переменные в операции Si, фигурирующие в качестве используемых (упоминаемых) в операторе Sj, не могут быть изменены промежуточными операторами Skr).

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