Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Применение в теории алгоритмов



Логическое отношение алгоритмов может быть сформулировано на основе неформального описания (например, блок-схемы алгоритмов, граф-схемы). Блок-схемы используются для описания «предшествующих» алгоритмов («вычислить - х» алгоритмов). Описание состоит из последовательности шагов – операторов и инструкции. Предписывающие алгоритмы исполняются (интерпретируются) неймановской машиной и является программой: предикатный символ ® Qi(t1,... tn).

В программе выбираются контрольные точки (узлы), которые ставят в соответствие предикаты, обозначающие состояние программы в i-том узле.

ti – термы, обозначение состояния (значения) i-той переменной.

Порядок записи уравнения:

1) если i и j – это вход и выход операторной вершины (смотри рисунок S – оператор с инструкцией на выполнение преобразования). Переход из i в j – это дуга, которая определяется формулой: Qi(t1t2... tn) ® Qj(l1l2...ln)

где lj = f(f1... fn)

2) если i и j – вход и выход условной вершины. Тогда дуге «i ® j» ставится в соответствие формула с контрольным предикатом:

Qi & P ® Qi, P = P(t1... tn)

3) начало программы Q0 - Æ - местный предикат - высказывание

4) конец программы Qk.

Пример: программа «умножение» х,у – целые

x – множимое; у – множитель

x значит «ввод х»; z ® «вывод z»

Контрольные формулы вводятся:

Q3 (x,y,z) & (z > 0) ® Q5 (x,y - 1,z + x) & (z > x)

Q3 (x,y,z) & (z = 0) ® Q5 (x,y - 1, x)

Пример задачи:

1 a "x"y Q6 (x,y) & (y = 0)

- если эта формула выводится, то программа завершена.

2. Интерпретация формул для конкретных чисел данных обозначает исполнение алгоритма.

Интерпретация включает:

1) подстановка значений переменных после ввода данных.

2) интерпретация формул после подстановки значений переменных.

3) запуск итерационного процесса (Q1=T) который выполняется с формулами пока Fi+1 не равно Fi.

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

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

Задаемся множимым х = а; и множителем у = 3.

Интерпретация: подстановки

Q0®Q1(x = a, y = 3, z = Æ)®

®Q2(a, 3, Æ)®Q3(a, 3, Æ)®

®Q5(a, y = 2, z = z + a)®

®Q2(a, 3, a)®

®Q5(a, y = 1, z = a + a)®

®Q2(a, 1, a + a)®

®Q5(a, y = Æ, z = a + a + a)

®Q2(a, Æ, a + a + a)

®Q4(a, Æ, a + a + a)

®Qk(a, Æ) - конец программы.

Подтверждается:

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

5. В традиционном программирований в неймановской машине используется контрольные формулы, в которых проверяется свойства данных в конкретных точках программы. Практически во всех процедурных языках программирования используется оператор assert(формула), сохраняется признак (Æ и 1), по которым можно судить о наличии ошибки.





Дата публикования: 2014-11-28; Прочитано: 221 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.016 с)...