1. Хакасский государственный университет им. Н.Ф. Катанова
Теория вычислительных процессов
Лекция: Введение. Схемы программ -
математическая база
Николай Гребенщиков, www.grebenshikov.ru
2. Входное тестирование
Возьмите, пожалуйста, ручку и листок бумаги и письменно
ответьте на вопрос:
Что такое вычислительный процесс?
У вас есть 10 минут.
Затем сдайте ваши ответы преподавателю.
1
3. Объем курса
• 18 лекций
• 9 семинаров
• 46 часов самостоятельной работы
2
5. Экзамен
• ≤ 59 баллов.
• Один вопрос.
• Две задачи.
• Время: 1 час.
4
6. Список литературы
• Учебник - Рабинович Е.В. Теория вычислительных про-
цессов.
• Хоар Ч. Взаимодействующие последовательные процес-
сы: Пер. с англ. - М.:Мир, 1989. - 264 с.
• Котов В.Е., Сабельфельд В.К. Теория схем программ. -
М.: Наука, 1991. - 248 с.
• Питерсон Дж. Теория сетей Петри и моделирование си-
стем: Пер. с англ. - М.: Мир, 1984. - 264 с.
5
7. Где искать?
depot tutorials Кафедра ПОВТиАС Теория вычисли-
тельных процессов
6
8. Теоретическое программирование - математическая дис-
циплина, изучающая синтаксические и семантические свой-
ства программ, их структуру, преобразования, процесс их со-
ставления и исполнения.
• Математические основы программирования. (Алгоритмы
и вычислимые функции, автоматы и формальные языки,
логика, алгебра, сложность вычислений)
• Теория схем программ. (Структурные свойства и преоб-
разование программ)
• Семантическая теория программ. (Формальное описание
семантики программ, преобразование и доказательство
утверждений о программах)
7
9. Теоретическое программирование (продолжение)
• Теория параллельных вычислений. (Модели, структуры и
функционирование операционных систем, методы распа-
раллеливания алгоритмов)
• Прикладные задачи теоретического программирования.
(Алгоритмы трансляции и автоматической оптимизации
программ)
8
10. Формализованное описание процесса обработки дан-
ных
Данные - то представление фактов и идей в формализован-
ном виде, пригодном для передачи и переработке в некоем
процессе. Данные представляются и хранятся на носителях
данных.
Информация - это смысл, который придается данным при
их представлении.
Обработка данных - это выполнение систематической по-
следовательности действий с данными.
9
11. Формализованное описание процесса обработки дан-
ных (продолжение)
Информационная среда - совокупность носителей данных,
используемых при какой-либо обработке данных.
Состояние информационной среды - набор данных, содер-
жащихся в какой-либо момент в информационной среде.
Процесс - последовательность сменяющих друг друга со-
стояний некоторой информационной среды.
Программа - это формальное описание процесса обработки
данных
10
12. Правильность программы
Ошибка - несогласованность между программамой и доку-
ментацией по ее применению.
Тестированием нельзя доказать правильность программы!
А что можно доказать?
11
13. Надежность программы - это ее способность безотказно
выполнять определенные функции при заданных условиях в
течение заданного периода времени с достаточно большой
вероятностью.
Отказ - проявление ошибки.
Можно ли доказать надежность программы тестированием?
Степень надежности - стоимость отказов.
12
14. Схемы программ. Математические основы
Множество - совокупность определенных и различных объ-
ектов (элементов).
Пример:
D = {Пн, Вт, Ср, Чт, Пт, Сб, Вс},
D1 = {Вт, Ср, Чт, Пн, Сб, Пт, Вс}.
D ≡ D1
13
15. Работа с множествами
x ∈ A - x принадлежит A
x ∈ A - x не принадлежит A
/
A = {x|p(x)} - определение множеств с использованием ха-
рактеристического свойства
≡ {} - пустое множество
14
16. Работа с множествами
A ⊆ B - каждый элемент множества является элементом
множества , то множество является подмножеством мно-
жества
A = B - A и B состоят из одних и тех же элементов.
15
17. Операции над множествами
A’= {x|x ∈ A} - дополнение множества до некоторого универ-
/
сального множества U .
A B = {x|x ∈ A ∨ x ∈ B} - объединение множеств;
A B = {x|x ∈ A ∧ x ∈ B} - пересечение множеств;
A B = {x|x ∈ A ∧ x ∈ } - вычитание множеств.
/
16
18. Свойства множеств
Ассоциативный закон:
(A B) C = A (B C), (A B) C = A (B C)
Коммуникативный закон: A B=B A, A B=B A
Закон о дополнении: A A = U, A A’=
Закон эквивалентности: A U = U, A U =A
Закон о пустом множестве: A = ,A =
Закон инволюции: (A’)’= A
17
19. Свойства множеств
Закон де Моргана: (A B)’= A’ B’, (A B)’= A’ B’
Дистрибутивный закон:
A (B C) = (A B) (A C), A (B C) = (A B) (A C)
18
21. Прямое произведение множеств
A1 × A2 × . . . × An = {< a1, a2, . . . , an > |a1 ∈ A1, a2 ∈ A2, . . . , an ∈
An} - прямое (декартово) произведение.
An = A × A × A × . . . × A (n раз) - прямая степень множества
A
20
22. Отношения
R - бинарное отношение между элементами множеств A и B,
если R ⊆ A × B.
< x, y >∈ R ≡ xRy
dR = {x|∃y, < x, y >∈ R} - область определения
rR = {x|∃y, < y, x >∈ R} - область значений
R−1 = {< x, y > | < y, x >∈ R} - обратное отношение
21
23. Отношения
R(X) = {y|∃x ∈ X, < x, y >∈ R} - образ множества X относи-
тельно R
R−1(X) - прообраз X относительно R
R1R2 = {< x, y > |∃z, < x, z >∈ R1∧ < z, y >∈ R2} - произведе-
ние подмножеств R1 = A × B и R2 = B × C
22
24. Свойства отношений
Бинарное отношение R на множестве A называется:
• рефлексивным, если < x, x >∈ R для всех x ∈ A;
• симметричным, если < x, y >∈ R ∧ < y, x >∈ R;
• антисимметричным, если < x, y >∈ R ∧ < y, x >∈ R ⇒ x =
y;
• транзитивным, если < x, y >∈ R∧ < y, z >∈ R ⇒< x, z >∈ R.
23
25. Свойства отношений
Отношение эквивалентности - отношение обладающее свой-
ствами рефлексивности, симметричности и транзитивности.
[x]R = x/R = {y| < x, y >∈ R} - класс эквивалентности
элемента x по отношению R.
A/R - фактор-множество (множество классов эквивалент-
ности) множества A по R.
24
26. Свойства отношений
Предпорядок - рефлексивное и транзитивное бинарное от-
ношение.
Частичный порядок (≤) - рефлексивное, антисимметрич-
ное, транзитивное бинарное отношение.
Полный порядок - частичный порядок на множестве A, если
любое непустое подмножество A имеет наименьший элемент.
25
27. Функции
Бинарное отношение f называется функцией из A в B (из A
на B), если df = A, rf ⊆ B и для всех x, y1, y2 из < x, y1 >∈ f и
< x, y2 >∈ f ⇒ y1 = y2.
Обозначение f : A → B. Пишем y = f (x) вместо < x, y >∈ f и
называем y значением функции f при значении аргумента .
Функция f : A → B осуществляет взаимно однозначное со-
ответствие между A и B, если df = A, rf = B и y = f (x1), y =
f (x2) ⇒ x1 = x2.
26
28. Функции
Пусть A и B – частично упорядоченные множества и f –
функция из A в B. f называется монотонным отображе-
нием, если из x1 ≤ x2 ⇒ f (x1) ≤ f (x2) для всех x1, x2 ∈ A.
Функцию f : X → Y называют n-местной функцией над
множеством A, если Y = A и X = An.
Предикатом называют функцию, областью значений кото-
рой является множество символов-цифр {0, 1}. При этом го-
ворят, что предикат P : X → {0, 1} истинен для x ∈ X, если
P (x) = 1, и ложен, если P (x) = 0. Отношение на множестве
X – это двухместный предикат P : X 2 → {0, 1}.
27
29. Функции
Алфавитом называют непустое конечное множество симво-
лов.
V1 = {a, b}, V2 = {0, 1}, V3 = {a, +, 1, =} – алфавиты.
a + 1 = 1 + a – слово в алфавите V3, 101011 – слово в алфа-
вите V2, abbab – слово в алфавите V1.
Длина слова – число символов в нем, пустое слово не со-
держит ни одного символа.
Множество всех слов в алфавите V обозначается V ∗.
n-местной словарной функцией над алфавитом V называ-
ют n-местную функцию над V ∗, т. е. функцию из V ∗ × V ∗ ×
. . . × V ∗ (n раз) в V ∗.
28
30. Графы
G = (V, E, Φ) - направленный граф, где V - множество вер-
шин, – множество дуг, а Φ – функция из в (V {w})2, w ∈ V .
/
Дуга e называется входом графа, если Φ(e) = (w, u), u ∈
V {w}; внутренней, если Φ(e) = (u1, u2), u1, u2 ∈ V ; выхо-
дом, если Φ(e) = (u, w), u ∈ V {w}.
Дуга e, являющаяся одновременно и входом и выходом гра-
фа, называется висячей; для нее Φ(e) = (w, w).
Дуги, не являющиеся внутренними, называются также сво-
бодными.
29
31. Графы
Говорят, что дуга e инцидентна вершине u, если e выходит
из u или ведет в u. Две дуги смежны, если существует
хотя бы одна инцидентная им обеим вершина. Вершина u
называется наследником вершины u’, если в графе имеется
хотя бы одна такая дуга, что Φ(e) = (u’, u).
Путем в графе G называется последовательность . . . , ui, ei, ui+1, . . .
дуг и вершин, такая, что для всех iΦ(ei) = (ui, ui+1). Обра-
зом пути называется слово, составленное из пометок про-
ходимых дуг и вершин.
Две вершины u1, u2 графа G называются связанными, если
u1 = u2 или существует маршрут 1, . . . , n графа G такой, что
дуга 1 инцидентна вершине u1, а дуга n – вершине u2.
30