Содержательные определения алгоритма Алгоритм – конечная “последовательность

















![Частный приоритет bj временного оператора Рj (в рамках отдельного алгоритма) [1, 2 ]: Частный приоритет bj временного оператора Рj (в рамках отдельного алгоритма) [1, 2 ]:](https://present5.com/presentation/3/16386485_183078281.pdf-img/16386485_183078281.pdf-21.jpg)




Леция- 11(Т3)-nn.ppt
- Количество слайдов: 22
Содержательные определения алгоритма Алгоритм – конечная “последовательность общепринятых предписаний, формальное, не требующее проявления человеческой изобретательности, исполнение которых позволяет за конечное время получить решение некоторой задачи или любой задачи из некоторого класса задач”; алгоритм - это “четкое предписание, определяющее вычислительный процесс, которое, исходя из вводных данных, приводит к решению поставленной задачи; алгоритм - “совокупность правил, задающих эффективную процедуру решения любой задачи из заданного класса задач”.
Конструктивное определение алгоритма. Примем, что алгоритм – это формальная математическая система, описывающая решение задачи или класса задач, которая характеризуется следующими статическими категориями данных: а) множеством объектов / данных ( D, Data ), над которыми должны выполняться те или иные действия; б) множеством действий /операторов ( Р, Processing ), которые должны выполняться над объектами/данными; в) множеством статических связей ( C, Communication ), задающих отношения упорядоченности операторов по данным и по управлению.
Будем называть алгоритм статическим , если его реализация включает выполнение функциональных , управляющих и пространственных преобразований и не включает временные преобразования. Используем для статических алгоритмов следующее формальное обозначение S_A = (D, Р, C ) (S_A, Static Algorithm). Алгоритм, содержащий в числе выполняемых преобразований временные преобразования, будем называть временным алгоритмом. Используем для временных алгоритмов следующее формальное обозначение Т_A = ( D, P, C , T) (Т_A, Timing Algorithm), где Т - множество временных параметров, определяющих моменты начала выполнения действий (операторов) над объектами и их длительность.
Сопряженное множество оператора. Обозначим через Sj =S( Pj ) множество номеров операторов Pi , результаты выполнения которых использует Pj при своей реализации. Назовем Sj сопряженным множеством для Pj. Операторы Pi , для которых i Wj , являются сопряженными для Рj. Внешнее множество оператора. Пусть Рj - оператор функционального, временного, пространственного преобразования или безусловный управляющий оператор, Wj - множество номеров операторов Рi , каждый из которых использует при своей реализации результаты выполнения оператора Рj. Назовем Wj внешним множеством для функционального, временного, пространственного или безусловного управляющего оператора Рj. Операторы Рi , для которых i Wj , являются внешними для Рj.
# include
Входные, внутренние и выходные операторы алгоритма. § Внутренние § Выходные операторы операторы § Входные операторы § Множество Р = {Рj} произвольного алгоритма является объединением трех подмножеств: входного, выходного и внутреннего подмножеств операторов § Р = Рвх U Рвн U Рвых , § определяемых следующим образом: входное множество Рвх = {Рj }, где для каждого Рj Р имеет место Sj = , выходное множество Рвых = {Рj }, где для каждого Рj Р имеет место Wj = ; внутреннее множество Рвн = {Рj }, где для каждого Рj Р выполняются условия Sj P = , Wj P = , § где § - сопряженное и внешнее множества алгоритма.
Статический алгоритм Алгоритм будем называть статическим (S_A), если для него определены: а) множество объектов (данных), над которыми должны выполняться действия; б) множество действий (операторов), которые преобразуют входные данные операторов в выходные данные (результаты); в) множество статических связей, задающих отношения упорядоченности операторов по данным и по управлению в форме сопряженных и внешних множеств. В качестве формальной записи статического алгоритма будем использовать форму S_A = ( D , Р , S , W ), в которой D - подмножество операторов - данных (формально трактуемых далее как «невыполняемые» операторы); Р = {Pj}, (j= 0, 1, 2, . . . , p) - подмножество «выполняемых» операторов, S - сопряженное и W - внешнее множества для алгоритма S_A.
Параллельные алгоритмы Последовательные алгоритмы Алгоритмы, в которых Алгоритмы, действия определены которых определены для подпоследовательности строго последовательного действий, предназначенные их исполнения для независимого параллельного исполнения
выполнена временная множество параметризация, объектов определяющая (данных), над Временной упорядоченност которыми ь операций над должны алгоритм объектами в выполняться динамике действия вычислительно го процесса множество действий статических (операторов), связей, которые должны задающих выполняться над отношения объектами упорядоченност и операторов
# include
Интервал активности оператора. Определим для произвольного одновыходного (k jвых = 1) оператора Р j Р с параметрами t j н и t интервал j к активности dt j как временной интервал, началом которого является момент времени tjн и концом которого является момент времени t j к завершения выполнения оператора Р j dtj = ( tjн , tjн +td, tjн +2 td, . . . , tjк ) , где td – выбранное значение приращения дискретного модельного времени. В последующем будем называть произвольный оператор Р j временным оператором (ВО) и обозначать Рj (t) , если для него определены ( tjн , tjк ), либо (tjн , T 0(Рj )) или интервал активности dtj
Временная параметризация множества операторов алгоритма. Примем, что задано множество Р = {P j }, j =0, 1, 2, . . . , р ( р =| P |) операторов некоторого алгоритма. Формирование для множества Р = {P j } соответствующего множества Р (t) временных операторов P j (t j н , t j к ) Р (t) = { P j ( t j н , t j к )}, где j = 0, 1, 2, . . . , p , назовем временной параметризацией исходного множества Р = {Pj }. Введем множество NT = { t j н } параметров начала выполнения операторов алгоритма. Будем называть исходное множество Р = { j } абстрактным множеством P операторов , а множество Р (t) временных операторов Множественный временной оператор. Примем, что имеются множества н к )} и/или Р (t) = {Р j( ( tнj , 0 j Р – параметризованным во P t к) н Р (t) = { Р j ( t j , t j t j , T ( j )}. Назовем множественны времени множеством операторов. временным оператором (МВО) подмножество Р (t jr ) Р (t ) операторов Р j (t j н ) , имеющих одно и то же значение t j н = t jr (t jr NT) и, следовательно, начинающих выполняться одновременно в момент времени tjr.
Параллельный алгоритм Определим параллельный алгоритм как временной алгоритм, в котором имеется хотя бы одна пара операторов Рj (tjн , tjк ) и Рi (tiн, tiк ) c частично или полностью перекрывающимися интервалами активности dtj и dti , для которых выполняется условие dtj dti Последовательный алгоритм Определим последовательный алгоритм как временной алгоритм, имеющий единичное значение ширины h = 1.
ПРОИЗВОЛЬНЫЙ ВРЕМЕННОЙ ПАРАЛЛЕЛЬНЫЙ АЛГОРИТМ Си-программы, представляющих Множество Тн = {tjн} текстовую и , j = 0, 1, 2, …, p , графическую определяющего спецификации для каждого статического временного алгоритма оператора параметр tjн начала его выполнения
Временная Параллельная Граф - Схема для временного алгоритма А -конструкция Г (t) = (D , U , C , Y), содержащая множество U = {Uj} вершин, множество С = {Ci} стрелок (связей), множество прямых – временных ярусов Y = {Yt}, отмеченных значениями дискретного времени t , удовлетворяющую следующим условиям: • имеется взаимно однозначное соответствие между вершинами Uj и операторами Pj Uj Pj , ( j = 0, 1, 2, . . . , p ; р = | P |) ; • если вершине Uj поставлен во взаимно однозначное соответствие оператор Рj функционального, временного, пространственного или комбинированного Uj Pj преобразования, то из данной вершины Uj исходят kjвых стрелок (kjвых - число Kjвх Kjвых выходов оператора Рj) и в данную вершину Uj входят kjвх стрелок ( kjвх -число входов оператора Рj);
• если вершине Uj поставлен во взаимно Lj однозначное соответствие условный управляющий оператор Lj , проверяющий (в Kjвх if . Kjвых общем случае) выполнение одного из m логических условий, то из данной вершины Uj исходят m стрелок и в данную вершину Uj входят kjвх стрелок ( kjвх-число входов оператора Lj); Pj • связи между вершинами конструкции Г (t) = (D , U , C , Y), определяются заданными для Sj Wj множества Р = {Pj } операторов алгоритма А = ( D , Р(t ), S , W , DТ )) сопряженным S и внешним W множествами; • все вершины Uj ВПГС Г (t) = (D , U , C , Y), Y поставленные во взаимно однозначное соответствие временным операторам MBO Рj (tjн , tjк ) Р(t ) алгоритма А = ( D , Р(t), S , W , DТ )), имеющим значение параметра U(t. H) начала tjн = tн и образующим множественный временной оператор (МВО) Р (tн ) , расположены на временном ярусе Y со значением дискретного времени t = tн и t. H образуют МВО U (tн ) ВПГС Г (t) = (D , U , C , Y ).
Ранг временного оператора Для произвольного временного оператора Рj ВПГС Г(t) понятие ранга rj определяется следующим образом: а) ранг rj = tj 0 при Wj = (случай оператора Рj , являющегося выходным оператором алгоритма); б) rj = max (rλ + tj 0 ) , если Wj (случай, когда оператор Рj представляет собой Pλ Wj внутренний оператор алгоритма, обеспечивающий формирование промежуточного результата, используемого другими, внешними по отношению к Рj , операторами Рλ алгоритма). С содержательной точки зрения ранг rj оператора Рj задает максимальное значение времени от момента начала tjн выполнения оператора Рj до завершения решения задачи (то есть временную длину соответствующего маршрута в ВПГС Г (t)).
Частный приоритет bj временного оператора Рj (в рамках отдельного алгоритма) [1, 2 ]: а) bjδ = 1 при rj = max ri и ri < rj при i≠j; Pi Pδ б) bjδ < biδ при rj = ri и tj 0 < ti 0 ; в) bjδ < biδ при rj = ri , tj 0 = ti 0 и |Wj | > |Wi | ; г) bjδ < biδ при rj = ri , tj 0 = ti 0 и |Wj | = |Wi | , но i < j. Общие приоритеты dj операторов Рj различных алгоритмов будем определять следующим образом dj = bjδ + max (biν), если jδ > min jν , ν Mδ P i P δ ν=1. . . κα dj = bjδ , если jδ = min jν. В последнем соотношении Мδ - множество номеров ν (ν 1. . . κ) алгоритмов, имеющих более высокие приоритеты baν по сравнению с приоритетом baδ рассматриваемого алгоритма, Рδ - множество операторов, относящихся к алгоритму с номером δ, имеющему приоритет f δ.
Си – программа циклического алгоритма void main(void) { int s, r ; int i, p, q, t, k ; scanf ( “%d %dn “, &s , &r ) ; for (i=1; i<=20; i++) { s = s + 1 ; r = (r + 1) % 2 ; p = s * r ; q = s + r ; t = r – p ; } k = (t * q) / 10 ; } Таблица. Значения времени tj 0 выполнения операторов (в тактах) Тип vx /, % co bp l. o a. o * <= upl +, ++ bpv = var n tj 0 1. 0 35. 0 10. 0 3. 0 1. 0 2. 0 1. 0
Файлы, задающие граф задачи на уровне операторов
ВПГС циклической Си-программы
ЛИТЕРАТУРА 1. Поляков Г. А. , Умрихин Ю. Д. Автоматизация проектирования сложных цифровых систем коммутации и управления. - М. : Радио и связь, 1988. - 304 с. 2. Воеводин В. В. , Воеводин Вл. В. Параллельные вычисления. – СПб. : БХВ-Петербург, 2002. – 608 с. 3. Новиков Ф. А. Дискретная математика для программистов: Учебник для вузов. 3 -е изд. - СПб. : Питер, 2008. - 384 с.

