Добавлен: 09.11.2023
Просмотров: 65
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Задача. Ориентированный граф задан связями между его вершинами (например, A B означает наличие дуги из вершины А в вершину B). Нарисовать этот граф, представить его в виде матрицы смежности, вывести степень вершины каждого графа, а также полустепени захода и исхода для каждой вершины, проверить граф на наличие в нем Эйлерова пути, для заданной вершины выполнить обход графа в ширину и в глубину.10. ГрафA B B C A E E B B F C D D H H G F C G F F EНачальная вершина обхода C.По условию задачи нам дан ориентированный граф. Выполним его чертёж, отмечая стрелками направления входа и захода в вершины графа. Н а основании этого строим матрицу смежности, ставя единицу там, где есть связь между вершинами в соответствии столбец – строка.Искомая матрица смежности задаётся в виде таблицы:
Множество вершин графа (их – 8):V = A, B, C, D, E, F, G , H, V = 8Множество рёбер графа (их – 11):E = A B; B C; A E; E B; B F; C D; D H; H G; F C; G F; F E = 9Найдём полустепени исхода и захода вершин:d - A =1; d + A = 2; d - B = 2; d + B = 2; d – C = 1; d + C = 2; d – D = 1; d + D = 1; d - E = 2; d + E = 1; d – H = 1; d + H = 1; d – F = 2; d + F = 2; Следовательно, степени вершин равны:dA = 3, dE = 1, dB = 4, dG = 1, dC = 3, dH = 2, dD = 2, dF = 4; Сумма степеней вершин графа: 3 + 1 + 4 + 1 + 3 + 2 + 2 + 4 = 18 = 2∙E = 2∙9В графе нет эйлерового пути, так как при обходе из вершины A выпадает ребро А,Е.Обход в глубинуПусть вершина C является начальной вершиной обхода (красим её в серый цвет).Таким образом, включаем вершину C в список обработанных вершин.Так как граф – ориентированный, то окрашиваем в серый цвет достижимую из точки C вершину D.Далее идём в вершину H, окрашиваем её . Следовательно, пройдены три вершины.Дальше мы проходим вершину G, окрасив её. Попав в вершину G и окрасив её, мы проходим в вершину F. Затем идем в вершину Е, затем в вершину В. Завершаем обход с результатом (С; D; H; G; F; E; B)Обход в ширину
| | A | B | C | D | E | F | H | G |
| A | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
| B | 0 | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
| C | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| D | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
| E | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
| F | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 |
| H | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
| G | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
Множество вершин графа (их – 8):V = A, B, C, D, E, F, G , H, V = 8Множество рёбер графа (их – 11):E = A B; B C; A E; E B; B F; C D; D H; H G; F C; G F; F E = 9Найдём полустепени исхода и захода вершин:d - A =1; d + A = 2; d - B = 2; d + B = 2; d – C = 1; d + C = 2; d – D = 1; d + D = 1; d - E = 2; d + E = 1; d – H = 1; d + H = 1; d – F = 2; d + F = 2; Следовательно, степени вершин равны:dA = 3, dE = 1, dB = 4, dG = 1, dC = 3, dH = 2, dD = 2, dF = 4; Сумма степеней вершин графа: 3 + 1 + 4 + 1 + 3 + 2 + 2 + 4 = 18 = 2∙E = 2∙9В графе нет эйлерового пути, так как при обходе из вершины A выпадает ребро А,Е.Обход в глубинуПусть вершина C является начальной вершиной обхода (красим её в серый цвет).Таким образом, включаем вершину C в список обработанных вершин.Так как граф – ориентированный, то окрашиваем в серый цвет достижимую из точки C вершину D.Далее идём в вершину H, окрашиваем её . Следовательно, пройдены три вершины.Дальше мы проходим вершину G, окрасив её. Попав в вершину G и окрасив её, мы проходим в вершину F. Затем идем в вершину Е, затем в вершину В. Завершаем обход с результатом (С; D; H; G; F; E; B)Обход в ширину
-
пусть стартовая вершина – С -
включаем С в список обработанных вершин: список = (С) -
помещаем в очередь смежные с С вершины, т.е. D: очередь = (D) -
извлекаем из очереди вершину D? т.к. она не обработана, добавляем ее в список: список = (C, D) -
смежные с D вершины – это H, помещаем в очередь вершину H: очередь = (Н) -
извлекаем из очереди вершину Н, т.к. Н не обработана, помещаем ее в список: список = (С, D, H) -
смежные с H вершины – это G; помещаем в очередь вершину G: очередь = (G) -
извлекаем из очереди вершину G, т.к. G не обработана, помещаем ее в список: список = (С, D, H, G) -
смежные с G вершины – это F; помещаем в очередь вершину F: очередь = (F) -
извлекаем из очереди вершину F, т.к. F не обработана, помещаем ее в список: список = (С, D, H, G, F) -
смежные с F вершины – это E и C; С – обработана, помещаем в очередь вершину Е: очередь = (Е) -
извлекаем из очереди вершину Е, т.к. Е не обработана, помещаем ее в список: список = (С, D, H, G, F, Е) -
смежные с Е вершины – это В; помещаем в очередь вершину В: очередь = (В) -
извлекаем из очереди вершину В, т.к. В не обработана, помещаем ее в список: список = (С, D, H, G, F, Е, В) -
Смежные с В вершины С и F, т.к. они уже обработаны очередь становится пустой, то поиск заканчивается с результатом (С, D, H, G, F, Е, В)