Содержание урока:
10.1. Общие сведения о моделировании
10.2. Компьютерное моделирование
10.3. Списки, графы, деревья и таблицы
10.3. Списки, графы, деревья и таблицы (продолжение)
САМОЕ ГЛАВНОЕ. Вопросы и задания
Материалы к уроку
Пример 1. Построим таблицу, соответствующую неориентированному графу (рис. 3.5), отражающему схему дорог между некоторыми населёнными пунктами.
Рис. 3.5. Граф схемы дорог
Строки и столбцы таблицы будут соответствовать вершинам графа. Если две вершины являются смежными (соединены ребром), то в ячейку на пересечении соответствующих столбца и строки будем записывать вес этого ребра. В противном случае (вершины не являются смежными) в ячейку будем записывать 0. Получится таблица типа «объект — объект».
Такую таблицу называют матрицей смежности. Часто в матрицах смежности вместо нуля ставят знак минус, что обеспечивает большую наглядность.
Матрица смежности неориентированного графа симметрична относительно главной диагонали, идущей от левого верхнего угла к правому нижнему углу. У матрицы смежности неориентированного графа такая симметрия отсутствует.
Пример 2. Обед в школьной столовой состоит из двух блюд и напитка. На первое можно выбрать щи или окрошку, на второе — плов или пельмени, на третье — сок или компот. Все возможные варианты представлены с помощью дерева на рисунке 3.6.
Рис. 3.6. Дерево вариантов обеда
Для того чтобы представить эту же информацию в таблице, будем двигаться по дереву от листьев к корню, описывая все возможные варианты обеда.
Получилась таблица типа «объект-свойства»: объектами в ней являются варианты обеда, а свойствами — составляющие его блюда. При этом число граф в полученной таблице соответствует числу уровней в дереве.
При решении класса задач, связанного с нахождением кратчайшего пути в ориентированном графе, можно:
1) от исходного графа перейти к матрице смежности;
2) по матрице смежности построить дерево решений;
3) по дереву решений выбрать подходящий вариант.
Пример 3. Найдём кратчайший путь от вершины А до вершины F в графе, приведённом на рисунке 3.7.
Рис. 3.7. Ориентированный граф
Составим матрицу смежности, соответствующую данному ориентированному графу:
По матрице смежности построим полное дерево перебора решений — рисунок 3.8.
Рис. 3.8. Полное дерево перебора решений
На рисунке 3.8 видно, что кратчайший путь из вершины А в вершину F равен 17 и имеет вид A-B-E-F.
Пример 4. На рисунке 3.9 представлена схема дорог, связывающих города А, Б, С, D, Е, F, G. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой. Сколько разных путей существует из города А в город G?
Рис. 3.9. Схема дорог.
Существует несколько способов решения этой задачи. Рассмотрим их.
Вариант 1. По графу можно построить матрицу смежности, а на её основе построить дерево, корнем которого будет служить вершина А. Число листьев построенного дерева будет равно числу дорог из города А в город G.
Постройте дерево и подсчитайте число дорог из города А в город G самостоятельно.
Вариант 2. Пусть Кх — число путей из города А в город X.
Начнем считать число путей с конца маршрута. Так как в город G есть дороги из городов С, E, F, то KG = КC + КЕ + KF.
В свою очередь КC = 1 + KD = 1 + 1 = 2, КЕ = КB + KC =1 + 2 = 3, КF = KC = 2.
Таким образом, KG = 2 + 3 + 2 = 7.
Вариант 3. Можно считать число путей с начала маршрута. При этом процесс подсчёта удобно изображать на самом графе — рисунок 3.10.
Рис. 3.10. Схема дорог с подсчётом числа путей
Пример 5. На рисунке 3.11 представлена схема дорог, связывающих населённые пункты А, В, С, D, Е, F, G. В таблице содержатся сведения о длинах этих дорог (в километрах). Схему и таблицу создавали независимо друг от друга, поэтому в них используются разные обозначения. Необходимо выяснить длину пути в километрах из пункта D в пункт F.
Рис. 3.11. Схема дорог и таблица их длин
Рассмотрим имеющийся граф и выясним степень каждой вершины — число рёбер, соединяющих некоторую вершину с другими вершинами. Получим:
На основании имеющейся таблицы мы также можем сделать выводы о том, сколькими дорогами соединён тот или иной населённый пункт с другими населёнными пунктами:
Сопоставив полученную информацию, можем сказать, что через Г1 в таблице обозначен населённый пункт F, а через Г7 — D. Согласно таблице, расстояние между этими пунктами равно 25 км.