- •1. Структурная схема микропроцессора (на примере i8086). Назначение регистров.
- •3. Организация основной памяти.
- •3. Структура и характеристики оперативной памяти
- •4. Модель osi
- •5. Стек протоколов tcp/ip
- •6. Классификация компьютерных сетей
- •7. Данные и модели данных
- •8. Модель данных «сущность-связь»
- •Ограничения целостности
- •9. Реляционная модель данных
- •10. Основные направления исследования в области ии
- •11. Метод резолюции в лппп.
- •12. Продукционная модель
- •13. Основные парадигмы языков программирования.
- •14. Основные понятия ооп: инкапсуляция, наследование, полиморфизм
- •1. Инкапсуляция
- •2. Полиморфизм
- •3. Наследование
- •15. Понятие алгоритма.
- •16. Понятие о временной и емкостной сложности алгоритма
- •17. Машина Тьюринга: детерминированная и недетерминированная
- •18. Понятие формального языка и формальной грамматики
- •19. Основные понятия теории графов.
- •20. Понятие количества информации и энтропии. Теорема Шеннона.
- •21. Деревья в теории графов.
- •22. Модели линейного программирования (постановка задачи, математическая модель, решение графическим методом).
- •23. Двойственность в задачах линейного программирования.
- •25. Элементы теории игр.
- •2. Подпрограммы. Процедуры и функции
- •3. Массивы
- •4. Записи
- •5. Работа с Динамическими данными
- •6. Динамические структуры данных. Линейные списки.
- •7. Динамические структуры данных: двоичные деревья
- •8. Работа с файлами
- •9.Операции целочисленной арифметики
- •10. Системы счисления. Перевод чисел из одной системы счисления в другую
- •11. Язык sql. Назначение и основные команды.
- •Манипулирование данными
- •Простые запросы
- •12. Алгоритмы внутренней сортировки.
- •13. Алгоритмы внешней сортировки
- •14. Нахождение кратчайших путей в графе
- •15. Поиск в ширину
- •16. Поиск остова и минимального остова.
- •17. Линейная модель работы информационно-поисковой системы.
- •18. Хеширование
- •Основные достоинства в-дерева
- •20. Логические вопросно-ответные системы:выполнение запросов различных типов.
- •21. Поиск в семантической сети.
- •22. Принципы динамического программирования. Иллюстрация на примере.
- •23. Адресация в Интернете
- •Доменные имена
- •Общий вид формата url-адреса
- •Как работает dns-сервер
- •24. Основные сервисы в сети Интернет.
- •Word Wide Web (www) - "Всемирная паутина"
- •Поиск информации в сети
- •VoIp сервис
- •Мессенджеры
- •25. Использование html. Структура Web(html) страницы.
19. Основные понятия теории графов.
Определение. Графом будем называть тройку G={V, E, P}, где
V - множество мощности n (|V|=n), называемое множеством вершин.
E - множество мощности m (|E|=m), называемое множеством ребер.
P(x,e,y) - предикат, где x, y V - вершины, e E - ребра, такой что
A) P определено на всех упорядоченных тройках (x,e,y), где x,y V, e E.
B) e x,y [P(x,e,y)/\ x ,y V (P(x ,e,y )-> ((x =x )/\(y =y )v(x =y)/\(y =x)))], т.е. каждое ребро соединяет 2 вершины и может быть либо направленным, либо нет.
Здесь возможны несколько интересных частных случаев:
1. Пусть для eE x,yV [P(x,e,y) /\ ┐P(y,e,x)],
т.е. все ребра имеют ориентацию, такие ребра называют дугами, а такой граф - ориентированным (орграфом)
2. Если для eE x,yV [P(x,e,y) /\ P(y,e,x)], то граф называется неориентированным.
3. Иначе граф называется смешанным, впрочем смешанные графы рассматриваются редко. Обычно говорят либо об орграфах или о неориентированных графах.
Определение. Ребро e E называется петлей если v V P(v,e,v), т.е. если оно соединяет вершину саму с собой.
Определение. Граф G называется простым, если
e,fE [P(x,e,y)/\P(x,f,y) (e=f)], т.е. любая пара вершин соединяется всего одним ребром.
Замечание. Простой граф можно представить как 2 множества{V,E}.
Определение. Рассмотрим P(x,e,y),если предикат истинен, то говорят, что вершина x и ребро e, а также вершина y и ребро e- инцидентны, а вершины x и y - смежные.
Определение. Изображением графа на плоскости или пространстве называется геометрическое построение, где каждой вершине графа соответствует точка, а каждому ребру - линия (для дуг- направленная), причем линии не должны пересекаться.
Пример.
1 3 1 3
2 4 2 4
ориентированный граф с 4 вершинами неориентированный граф с 4 вершинами
Не каждый граф можно реализовать на двумерной плоскости. пример - граф, иллюстрирующий задачу о трех домах и трех колодцах. Пусть есть три дома и три колодца, надо проложить от каждого дома к каждому колодцу дорожку, так чтобы они не пересекались. В топологии (раздел математики, изучающий взаимное расположение объектов на плоскости) доказано, что это сделать невозможно.
Теорема. Любой граф реализуется в 3-мерном пространстве.
Определение. Граф G называется полным, если в нем соединены все пары вершин.
Пример.
1 3
2 4
Опред. Граф G без петель, который стал бы полным при их добавлении называется почти полным графом.
Очевидно, что число ребер в полном графе - n2, а в почти полном - n2-n.
Представление графа в ЭВМ.
Для человека самое удобное представление графа - его изображение на плоскости. Но этот вариант не пригоден для машинного представления. В ЭВМ граф можно в частности представить одним из двух способов.
A) С - матрица смежности размера n*n. Если существует дуга из i в j или неориентированное ребро между i-й и j-й вершинами, то cij=1, иначе сij=0. Этот способ годиться только для простых графов.
B) G - массив пар смежных вершин, каждая из которых есть ребро.
Пример.
2 4
1 6
3 5
1 .Матрица смежности 2.Список ребер {(1,2),(1,3),(2,2),(2,3),(2,4),......(6,5)}
|
1 |
2 |
3 |
4 |
5 |
6 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
1 |
1 |
1 |
0 |
3 |
1 |
1 |
0 |
0 |
1 |
0 |
4 |
0 |
1 |
0 |
0 |
1 |
1 |
5 |
0 |
1 |
1 |
1 |
0 |
1 |
6 |
0 |
0 |
0 |
1 |
1 |
0 |
Части графа.
Опред. Граф G’, получаемый из графа G путем удаления части вершин вместе с инцидентными им ребрам называется подграфом графа G, а граф G - надграфом графа G’.
Опред. Граф G’, получаемый из графа G путем удаления части ребер называется суграфом графа G, а граф G в этом случае есть сверхграф графа G’.
Примеры.
2 4 2 4
1 1 6
3 3 5
подграф суграф
Остов (каркас) графа.
Опред. Маршрутом (путем) в графе G между вершинами x и y называется упорядоченное множество ребер следующего вида:M={ ei | v1,..,vn V [P(x,e1,v1)/\P(v1,e2,v2)/\.../\P(vn-1,en,vn)/\P(vn+1,e,y)]}.
Пример.
Опред. Вершины x и y называются взаимнодостижимыми, если существует маршрут из х в у и из у в х.
Опред. Остовом или каркасом неориентированного графа G называется суграф G’={V’, E’, P’}, построенный следующим образом.
A) Сначала V’:=V, E’:=0;
B) Перебираем ребра ei из E и включаем их в E’ в том случае, если на данный момент вершины - x,y, где P(x,ei,y) (т.е. вершины, которые соединяет данное ребро)- взаимно недостижимые.
Это определение фактически дает алгоритм построения остова.
Пример
2 4
1
3 5 6
Теорема. Количество элементов в остове <=n-1.
Док-во опускается.
Запишем алгоритм в формальном виде:
ВХОД - граф, заданный масcивом ребер G[i,1] и G[i,2] соответственно вершины, инцидентные i-му ребру. Считаем, что граф неориинтированный, и поэтому если в массиве есть запись (x,y) считаем, что нет записи (y,x); m- число ребер в G, n - число вершин в G.
ВЫХОД - остов G’, заданный массивом ребер G1. число ребер в остове - i1
Главная проблема при построении алгоритма - определение факта взаимодостижимости вершин. Эта проблема решена путем введения вcпомогательного массива A[1..n], который поддерживается таким образом, что все взаимно-достижимые на данный момент вершины имеют одинаковое значение.
Алгоритм выглядит так:
procedure ostov;
for i:=1 to n do A[i]:=i; //обозн., что любая вершина достижима сама с собой.
i1:=0; // i1 - число ребер в остове
for i:=1 to m do if A[G[i,1]]<>A[G[i,2]] then begin //если G[i,1] и G[i,2] - недостижимые - включаем i-е ребро в остов.
inc(i1); //включаем ребро
G1[i1,1]:=G[i,1]; G1[i1,2]:=G[i,2]; // в остов
//перестроение массива A.
if A[G[i,1]]<>G[i,1] then begin
A[G[i,2]]:=A[G[i,1]];
for j:=1 to n do if A[j]=G[i,2] then A[j]:=A[G[i,1]]
end else if A[G[i,2]]<>G[i,2] then begin
A[G[i,1]]:=A[G[i,2]];
for j:=1 to n do if A[j]=G[i,1] then A[j]:=A[G[i,2]]
end else A[G[i,2]]:=A[G[i,1]];
if i1=n -1 then break;
end;
end;
Оценим трудоемкость T(n)~m+(n-1)n~m+n2. первое слагаемое - мах придется просмотреть все m ребер, 2-е - max n-1 включений ребер в остов, каждое приводящее мах к n шагов по перестройке массива A.