Элементы теории графов. Способы обходов графов. Лицей – интернат естественных наук
В основе теории лежит понятие графа. - совокупность конечного числа точек, называемых вершинами графа, и попарно соединяющих некоторые из этих вершин линий, называемых ребрами или дугами графа. вершина ребро дуга
Первая работа по теории графов, принадлежащая известному швейцарскому математику Л. Эйлеру, появилась в 1736 г., связанная с решением известной головоломки о мостах Кёнигсберга. Толчок к развитию теория графов получила на рубеже ХIX и ХХ столетий, когда резко возросло число работ в области топологии и комбинаторики.
В настоящее время графы эффективно используются в теории планирования и управления, теории расписаний, социологии, экономике, биологии, медицине, географии. Широкое применение находят графы в таких областях, как программирование, электроника, в решении вероятностных и комбинаторных задач, нахождения кратчайшего расстояния и др. Математические головоломки тоже являются частью теории графов.
Благодаря использованию графов можно упростить решение задач. «В Кенигсберге есть остров, называемый Кнейпгоф. Река, омывающая его, делится на два рукава, через которые перекинуто семь мостов. Можно ли обойти все эти мосты, не побывав ни на одном из них более раза?»
На практике вершины графа можно использовать для представления объектов, а дуги — для отношений между объектами. Л. Эйлеру удалось ответить на этот вопрос. Представим, что мосты, соединяющие части города – это рёбра графа, а части города – это вершины графа. B A C D
Основные понятия x y x y B A C D 1377 1323 1508 1400 1724 1542 1300
Основные понятия B A C D B A C D
Основные понятия B A C D
Основные понятия Степень вершины A равна B A C D
Задача сводится к тому, чтобы начертить граф одним росчерком, не отрывая карандашa от бумаги и не проводя ни одной линии дважды. Но это сделать невозможно, т.к. граф кёнигсбергских мостов имеет четыре нечётные вершины, следовательно, невозможно пройти по всем мостам, не проходя ни по одному из них дважды. B A C D
Пути (маршруты) в графах B A C D
B A C D
Способы представления графов A B C D A B 1 0 0 1 C 1 0 0 1 D 1 1 1 0 B A C D
Способы представления графов A-B A-C A-D B-D C-D A B 1 0 0 1 0 C 0 1 0 0 1 D 0 0 1 1 1 B A C D
Способы представления графов A: B, D, C B: A, D C: A, D D: A, B, C B A C D
Обходы графов B A C D
Program graf; Var n,v,u: integer; gr: array [1..30, 1..30] of integer; nov: array [1..15] of boolean; procedure dfs (v: integer); var u: integer; Begin Readln; Write (v,’ ’); nov [v]:=false; For u:=1 to n do If (gr[v,u]=1) and (nov[u]) then dfs (u); End; Begin n:=4; for v:=1 to n do begin nov [v]:= true; Writeln; For u:=1 to n do begin nov [u]:=true; Write (‘ gr [‘ ,v,u, ‘ ]=‘); Read (gr [v,u]); 1 2 3 4 Размерность массива n =4 Исходный массив 0 0 0 1 4 0 0 1 1 3 0 1 0 0 2 1 1 0 0 1 4 3 2 1 Результат End;End;For v:=1 to n do begin IF nov [v] then dfs (v);End;Readln;End.
Обходы графов B A C D
Спасибо за внимание!