Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по дискретке.doc
Скачиваний:
11
Добавлен:
20.09.2019
Размер:
1.11 Mб
Скачать

43. Задание графа матрицей смежности.

Матрица смежности представляет собой квадратную матрицу n на n, где n- количество вершин графа.

Каждая ячейка этой матрицы может принимать либо только два значения (0 или 1) для невзвешенного графа либо вес ребра для взвешенного. Как вы уже догадались, ячейка несет в себе информацию о том, смежны вершины или нет.

При более подробном рассмотрении можно заметить, что в случае графа без петель матрица имеет ряд особенностей:

главная диагональ матрицы всегда заполнена нулями, так как вершина не может быть смежна сама себе;

если наш граф неориентированный - то часть матрицы под главной диагональю и над ней абсолютно идентичны.

На Pascal-е матрица смежности чаще всего задается при помощи двумерного массива:

Matr_Sm: array [1..TopsCount,1..TopsCount] of byte,

либо

Matr_Sm:array [1..TopsCount,1..TopsCount] of boolean;

44. Задача о кратчайшем пути на графе с ребрами единичной длины.

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

Для получения общего правила предположим, что уже построен граф для случая т дисков, который назовем т-графом. Нетрудно убедиться, что такой граф будет иметь вид треугольника, изображенного на рис. 3.8,a, хотя внутренние связи в нем нам пока неизвестны. Каковы при этом будет граф для m+1 дисков?

Заметим, что диск с номером m+1 может занимать на любом из-колышков только нижнее положение. При этом остальные т дисков могут перемещаться как угодно в соответствии с т-графом без изменения положения, (m+1)-го диска. Следовательно, граф для m+1. диска (рис.3.8,6) будет состоять из трех т-графов, обозначенных'. цифрами (в кружочках)1,2 и3, означающими номер колышка, на котором находится (m+1)-й диск. Остается выяснить только переходы от одного т-графа к другому, соответствующие перемещению (m+1)-го диска.

Диск(m+1)-й может быть переложен только на свободный колышек, а это возможно лишь в том случае, когда на одном из колышков расположены все т меньших дисков. В соответствии с этим на. рис.3.8,б показаны возможные переходы (m+1)-го диска, обозначенные цифрами1,2 и 3, означающими номер колышка, на котором находится т меньших дисков.

Рисунок 7 - Графы переходов в задаче о ханойской башне

Диаграмма, показанная на рис.3.8,6, дает общий принцип перехода от m-графа к (m-1)-графу. На рис, 3.7,б и в приведены графы; переходов для двух и трех дисков.

Перейдем к задаче нахождения в графе кратчайшего пути, соединяющего начальную вершину с конечной. Поскольку рассмотренные графы сравнительно просты, то кратчайший путь нетрудно найти просто путем перебора возможных путей. Однако для сложных графов должен быть найден систематический метод.

Рисунок 8 - Перход от (m)-графа к (m+1)-графу

Общее правило для нахождения кратчайшего пути в графе состоит в том, чтобы каждой вершине х, приписать. индексKt, равный длине кратчайшего пути из данной вершины в конечную. Приписывание индексов вершинам в случае графа с ребрами единичной длины производится в следующем порядке:

1) конечной вершине Хо приписывается индекс 0;

2) всем вершинам, из которых идет ребро в конечную вершину, приписывается индекс 1;

3) всем вершинам, еще не имеющим индексов, из которых идет ребро в вершину с индексом Ki, приписывается индекс l+1. Этот процесс продолжается до тех пор, пока не будет помечена начальная вершина. По окончании разметки индекс у начальной вершины будет равен длине кратчайшего пути. Сам кратчайший путь найдем, если будем двигаться из начальной вершины в направлении убывания индексов.

Пример разметки индексов и определения кратчайшего пути показан на рис.3.7,a для"т==3.