Лекция №1. Введение. Предмет "Теория вычислительных процессов"
Post on 02-Jul-2015
5041 Views
Preview:
Transcript
Хакасский государственный университет им. Н.Ф. Катанова
Теория вычислительных процессов
Лекция: Введение. Схемы программ -
математическая база
Николай Гребенщиков, www.grebenshikov.ru
Входное тестирование
Возьмите, пожалуйста, ручку и листок бумаги и письменноответьте на вопрос:
Что такое вычислительный процесс?
У вас есть 10 минут.
Затем сдайте ваши ответы преподавателю.
1
Объем курса
• 18 лекций
• 9 семинаров
• 46 часов самостоятельной работы
2
Модульно рейтинговая система
• 4 модуля
• 4 контрольных работы
• 8 оцениваемых семинарских занятий
• Реферат
• Экзамен автоматом: ≥87 баллов → оценка отлично, ≥73баллов → оценка хорошо, ≥60 баллов → оценка удовле-творительно
3
Экзамен
• ≤ 59 баллов.
• Один вопрос.
• Две задачи.
• Время: 1 час.
4
Список литературы
• Учебник - Рабинович Е.В. Теория вычислительных про-цессов.
• Хоар Ч. Взаимодействующие последовательные процес-сы: Пер. с англ. - М.:Мир, 1989. - 264 с.
• Котов В.Е., Сабельфельд В.К. Теория схем программ. -М.: Наука, 1991. - 248 с.
• Питерсон Дж. Теория сетей Петри и моделирование си-стем: Пер. с англ. - М.: Мир, 1984. - 264 с.
5
Где искать?
\\ depot \ tutorials \ Кафедра ПОВТиАС \ Теория вычисли-тельных процессов
6
Теоретическое программирование - математическая дис-циплина, изучающая синтаксические и семантические свой-ства программ, их структуру, преобразования, процесс их со-ставления и исполнения.
• Математические основы программирования. (Алгоритмыи вычислимые функции, автоматы и формальные языки,логика, алгебра, сложность вычислений)
• Теория схем программ. (Структурные свойства и преоб-разование программ)
• Семантическая теория программ. (Формальное описаниесемантики программ, преобразование и доказательствоутверждений о программах)
7
Теоретическое программирование (продолжение)
• Теория параллельных вычислений. (Модели, структуры ифункционирование операционных систем, методы распа-раллеливания алгоритмов)
• Прикладные задачи теоретического программирования.(Алгоритмы трансляции и автоматической оптимизациипрограмм)
8
Формализованное описание процесса обработки дан-ных
Данные - то представление фактов и идей в формализован-ном виде, пригодном для передачи и переработке в некоемпроцессе. Данные представляются и хранятся на носителяхданных.
Информация - это смысл, который придается данным приих представлении.
Обработка данных - это выполнение систематической по-следовательности действий с данными.
9
Формализованное описание процесса обработки дан-ных (продолжение)
Информационная среда - совокупность носителей данных,используемых при какой-либо обработке данных.
Состояние информационной среды - набор данных, содер-жащихся в какой-либо момент в информационной среде.
Процесс - последовательность сменяющих друг друга со-стояний некоторой информационной среды.
Программа - это формальное описание процесса обработкиданных
10
Правильность программы
Ошибка - несогласованность между программамой и доку-ментацией по ее применению.
Тестированием нельзя доказать правильность программы!
А что можно доказать?
11
Надежность программы - это ее способность безотказновыполнять определенные функции при заданных условиях втечение заданного периода времени с достаточно большойвероятностью.
Отказ - проявление ошибки.
Можно ли доказать надежность программы тестированием?
Степень надежности - стоимость отказов.
12
Схемы программ. Математические основы
Множество - совокупность определенных и различных объ-ектов (элементов).
Пример:
D = {Пн, Вт, Ср, Чт, Пт, Сб, Вс},
D1 = {Вт, Ср, Чт, Пн, Сб, Пт, Вс}.
D ≡ D1
13
Работа с множествами
x ∈ A - x принадлежит A
x /∈ A - x не принадлежит A
A = {x|p(x)} - определение множеств с использованием ха-рактеристического свойства
� ≡ {} - пустое множество
14
Работа с множествами
A ⊆ B - каждый элемент множества является элементоммножества , то множество является подмножеством мно-жества
A = B - A и B состоят из одних и тех же элементов.
15
Операции над множествами
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
Свойства множеств
Ассоциативный закон:
(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
Свойства множеств
Закон де Моргана: (A⋃
B)’= A’⋂
B’, (A⋂
B)’= A’⋃
B’
Дистрибутивный закон:
A⋂
(B⋃
C) = (A⋃
B)⋂
(A⋃
C), A⋃
(B⋂
C) = (A⋃
B)⋂
(A⋃
C)
18
Свойства подмножеств
X ⊆ X - рефлексивность
X ⊆ Y ∧ Y ⊆ Z ⇒ X ⊆ Z - транзитивность.
19
Прямое произведение множеств
A1×A2× . . .×An = {< a1, a2, . . . , an > |a1 ∈ A1, a2 ∈ A2, . . . , an ∈An} - прямое (декартово) произведение.
An = A×A×A× . . .×A (n раз) - прямая степень множестваA
20
Отношения
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
Отношения
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
Свойства отношений
Бинарное отношение 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
Свойства отношений
Отношение эквивалентности - отношение обладающее свой-ствами рефлексивности, симметричности и транзитивности.
[x]R = x/R = {y| < x, y >∈ R} - класс эквивалентностиэлемента x по отношению R.
A/R - фактор-множество (множество классов эквивалент-ности) множества A по R.
24
Свойства отношений
Предпорядок - рефлексивное и транзитивное бинарное от-ношение.
Частичный порядок (≤) - рефлексивное, антисимметрич-ное, транзитивное бинарное отношение.
Полный порядок - частичный порядок на множестве A, еслилюбое непустое подмножество A имеет наименьший элемент.
25
Функции
Бинарное отношение 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
Функции
Пусть 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 : X2 → {0, 1}.
27
Функции
Алфавитом называют непустое конечное множество симво-лов.
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
Графы
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
Графы
Говорят, что дуга 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
Графы
31
top related