32
Хакасский государственный университет им. Н.Ф. Катанова Теория вычислительных процессов Лекция: Введение. Схемы программ - математическая база Николай Гребенщиков, www.grebenshikov.ru

Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Embed Size (px)

Citation preview

Page 1: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Хакасский государственный университет им. Н.Ф. Катанова

Теория вычислительных процессов

Лекция: Введение. Схемы программ -

математическая база

Николай Гребенщиков, www.grebenshikov.ru

Page 2: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Входное тестирование

Возьмите, пожалуйста, ручку и листок бумаги и письменноответьте на вопрос:

Что такое вычислительный процесс?

У вас есть 10 минут.

Затем сдайте ваши ответы преподавателю.

1

Page 3: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Объем курса

• 18 лекций

• 9 семинаров

• 46 часов самостоятельной работы

2

Page 4: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Модульно рейтинговая система

• 4 модуля

• 4 контрольных работы

• 8 оцениваемых семинарских занятий

• Реферат

• Экзамен автоматом: ≥87 баллов → оценка отлично, ≥73баллов → оценка хорошо, ≥60 баллов → оценка удовле-творительно

3

Page 5: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Экзамен

• ≤ 59 баллов.

• Один вопрос.

• Две задачи.

• Время: 1 час.

4

Page 6: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Список литературы

• Учебник - Рабинович Е.В. Теория вычислительных про-цессов.

• Хоар Ч. Взаимодействующие последовательные процес-сы: Пер. с англ. - М.:Мир, 1989. - 264 с.

• Котов В.Е., Сабельфельд В.К. Теория схем программ. -М.: Наука, 1991. - 248 с.

• Питерсон Дж. Теория сетей Петри и моделирование си-стем: Пер. с англ. - М.: Мир, 1984. - 264 с.

5

Page 7: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Где искать?

\\ depot \ tutorials \ Кафедра ПОВТиАС \ Теория вычисли-тельных процессов

6

Page 8: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Теоретическое программирование - математическая дис-циплина, изучающая синтаксические и семантические свой-ства программ, их структуру, преобразования, процесс их со-ставления и исполнения.

• Математические основы программирования. (Алгоритмыи вычислимые функции, автоматы и формальные языки,логика, алгебра, сложность вычислений)

• Теория схем программ. (Структурные свойства и преоб-разование программ)

• Семантическая теория программ. (Формальное описаниесемантики программ, преобразование и доказательствоутверждений о программах)

7

Page 9: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Теоретическое программирование (продолжение)

• Теория параллельных вычислений. (Модели, структуры ифункционирование операционных систем, методы распа-раллеливания алгоритмов)

• Прикладные задачи теоретического программирования.(Алгоритмы трансляции и автоматической оптимизациипрограмм)

8

Page 10: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Формализованное описание процесса обработки дан-ных

Данные - то представление фактов и идей в формализован-ном виде, пригодном для передачи и переработке в некоемпроцессе. Данные представляются и хранятся на носителяхданных.

Информация - это смысл, который придается данным приих представлении.

Обработка данных - это выполнение систематической по-следовательности действий с данными.

9

Page 11: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Формализованное описание процесса обработки дан-ных (продолжение)

Информационная среда - совокупность носителей данных,используемых при какой-либо обработке данных.

Состояние информационной среды - набор данных, содер-жащихся в какой-либо момент в информационной среде.

Процесс - последовательность сменяющих друг друга со-стояний некоторой информационной среды.

Программа - это формальное описание процесса обработкиданных

10

Page 12: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Правильность программы

Ошибка - несогласованность между программамой и доку-ментацией по ее применению.

Тестированием нельзя доказать правильность программы!

А что можно доказать?

11

Page 13: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Надежность программы - это ее способность безотказновыполнять определенные функции при заданных условиях втечение заданного периода времени с достаточно большойвероятностью.

Отказ - проявление ошибки.

Можно ли доказать надежность программы тестированием?

Степень надежности - стоимость отказов.

12

Page 14: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Схемы программ. Математические основы

Множество - совокупность определенных и различных объ-ектов (элементов).

Пример:

D = {Пн, Вт, Ср, Чт, Пт, Сб, Вс},

D1 = {Вт, Ср, Чт, Пн, Сб, Пт, Вс}.

D ≡ D1

13

Page 15: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Работа с множествами

x ∈ A - x принадлежит A

x /∈ A - x не принадлежит A

A = {x|p(x)} - определение множеств с использованием ха-рактеристического свойства

� ≡ {} - пустое множество

14

Page 16: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Работа с множествами

A ⊆ B - каждый элемент множества является элементоммножества , то множество является подмножеством мно-жества

A = B - A и B состоят из одних и тех же элементов.

15

Page 17: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Операции над множествами

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

Page 18: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Свойства множеств

Ассоциативный закон:

(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

Page 19: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Свойства множеств

Закон де Моргана: (A⋃

B)’= A’⋂

B’, (A⋂

B)’= A’⋃

B’

Дистрибутивный закон:

A⋂

(B⋃

C) = (A⋃

B)⋂

(A⋃

C), A⋃

(B⋂

C) = (A⋃

B)⋂

(A⋃

C)

18

Page 20: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Свойства подмножеств

X ⊆ X - рефлексивность

X ⊆ Y ∧ Y ⊆ Z ⇒ X ⊆ Z - транзитивность.

19

Page 21: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Прямое произведение множеств

A1×A2× . . .×An = {< a1, a2, . . . , an > |a1 ∈ A1, a2 ∈ A2, . . . , an ∈An} - прямое (декартово) произведение.

An = A×A×A× . . .×A (n раз) - прямая степень множестваA

20

Page 22: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Отношения

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

Page 23: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Отношения

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

Page 24: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Свойства отношений

Бинарное отношение 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

Page 25: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Свойства отношений

Отношение эквивалентности - отношение обладающее свой-ствами рефлексивности, симметричности и транзитивности.

[x]R = x/R = {y| < x, y >∈ R} - класс эквивалентностиэлемента x по отношению R.

A/R - фактор-множество (множество классов эквивалент-ности) множества A по R.

24

Page 26: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Свойства отношений

Предпорядок - рефлексивное и транзитивное бинарное от-ношение.

Частичный порядок (≤) - рефлексивное, антисимметрич-ное, транзитивное бинарное отношение.

Полный порядок - частичный порядок на множестве A, еслилюбое непустое подмножество A имеет наименьший элемент.

25

Page 27: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Функции

Бинарное отношение 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

Page 28: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Функции

Пусть 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

Page 29: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Функции

Алфавитом называют непустое конечное множество симво-лов.

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

Page 30: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Графы

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

Page 31: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Графы

Говорят, что дуга 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

Page 32: Лекция №1. Введение. Предмет "Теория вычислительных процессов"

Графы

31