Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Решение задачи перечисления путей в графах




Пусть имеется некоторый ориентированный граф G = (XG, PG) и пусть требуется перечислить все пути графа G, состоящие ровно из k дуг. Данная задача решается при помощи следующей процедуры:

Шаг 1. Выписать матрицу смежности графа G.

Шаг 2. По матрице A(G) строится таблица Г1, у которой в каждой (i, j)-ой ячейке написано множество путей из вершины xi в вершину xj длиной в одну дугу.

Шаг 3. По матрице A(G) и таблице Г1 строится таблица Г2, у которой в каждой (i, j)-ой ячейке написано множество путей из вершины xi в вершину xj длиной в две дуги.

.

.

.

Шаг k. По матрице A(G) и таблице Гk-1 строится таблица Гk, у которой в каждой (i, j)-ой ячейке написано множество путей из вершины xi в вершину xj длиной ровно в k дуг.

 

Решение:

1.

A(G) =

                     
                     
                     
                     
                     
                     
                     
                     
                     
                     
                     

 

 

2. По матрице смежности A(G) формируем таблицу Г1:

 

                     
  Ø {(1,2)} Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø {(2,6)} Ø Ø {(2,9)} Ø
  {(3,1)} Ø Ø {(3,4)} Ø Ø Ø {(3,8)} Ø Ø
  Ø {(4,2)} Ø Ø Ø Ø Ø Ø Ø {(4,10)}
  Ø Ø {(5,3)} Ø {(5,5)} Ø {(5,7)} Ø Ø Ø
  Ø Ø Ø {(6,4)} Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø {(7,5)} Ø Ø {(7,8)} Ø Ø
  {(8,1)} Ø {(8,3)} Ø Ø Ø {(8,7)} Ø {(8,9)} Ø
  Ø {(9,2)} Ø Ø {(9,5)} Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø {(10,6)} Ø {(10,8)} Ø {(10,10)}

 

                     
  Ø Ø Ø Ø Ø {(1,2,6)} Ø Ø {(1,2,9)} Ø
  Ø {(2,9,2)} Ø {(2,6,4)} {(2,9,5)} Ø Ø Ø Ø Ø
  {(3,8,1)} {(3,1,2), (3,4,2)} {(3,8,3)} Ø Ø Ø {(3,8,7)} Ø {(3,8,9)} {(3,4,10)}
  Ø Ø Ø Ø Ø {(4,2,6), (4,10,6)} Ø {(4,10,8)} {(4,2,9)} {(4,10,10)}
  {(5,3,1)} Ø {(5,5,3)} {(5,3,4)} {(5,5,5) (5,7,5)} Ø {(5,5,7)} {(5,3,8), (5,7,8)} Ø Ø
  Ø {(6,4,2)} Ø Ø Ø Ø Ø Ø Ø {(6,4,10)}
  {(7,8,1)} Ø {(7,5,3), (7,8,3)} Ø {(7,5,5)} Ø {(7,5,7), (7,8,7)} Ø {(7,8,9)} Ø
  {(8,3,1)} {(8,1,2), (8,9,2)} Ø {(8,3,4)} {(8,7,5), (8,9,5)} Ø Ø {(8,3,8), (8,7,8)} Ø Ø
  Ø Ø {(9,5,3)} Ø {(9,5,5)} {(9,2,6)} {(9,5,7)} Ø {(9,2,9)} Ø
  {(10,8,1)} Ø {(10,8,3)} {(10,6,4)} Ø {(10,10,6)} {(10,8,7)} {(10,10,8)} {(10,8,9)} {(10,10,10)}

3. По матрице смежности A(G) и таблице Г1 строим таблицу Г2:

 

 

4. По матрице смежности A(G) и таблице Г2 строим таблицу Г3:

                     
  Ø {(1,2,9,2)} Ø {(1,2,6,4)} {(1,2,9,5)} Ø Ø Ø Ø Ø
  Ø {(2,6,4,2)} {(2,9,5,3)} Ø {(2,9,5,5)} {(2,9,2,6)} {(2,9,5,7)} Ø {(2,9,2,9)} {(2,6,4,10)}
  {(3,8,3,1)} {(3,8,1,2), (3,8,9,2)} Ø {(3,8,3,4)} {(3,8,7,5), (3,8,9,5)} {(3,1,2,6), (3,4,2,6), (3,4,10,6)} Ø {(3,4,10,8), (3,8,3,8), (3,8,7,8)} {(3,1,2,9), (3,4,2,9)} {(3,4,10,10)}
  {(4,10,8,1)} {(4,2,9,2)} {(4,10,8,3)} {(4,2,6,4), (4,10,6,4)} {(4,2,9,5)} {(4,10,10,6)} {(4,10,8,7)} {(4,10,10,8)} {(4,10,8,9)} {(4,10,10,10)}
  {(5,3,8,1), (5,5,3,1), (5,7,8,1)} {(5,3,1,2), (5,3,4,2)} {(5,3,8,3), (5,5,5,3), (5,7,5,3), (5,7,8,3)} {(5,5,3,4)} {(5,5,5,5), (5,5,7,5), (5,7,5,5)} Ø {(5,3,8,7), (5,5,5,7), (5,7,5,7), (5,7,8,7)} {(5,5,3,8), (5,5,7,8)} {(5,3,8,9), (5,7,8,9)} {(5,3,4,10)}
  Ø Ø Ø Ø Ø {(6,4,2,6), (6,4,10,6)} Ø {(6,4,10,8)} {(6,4,2,9)} {(6,4,10,10)}
  {(7,5,3,1), (7,8,3,1)} {(7,8,1,2), (7,8,9,2)} {(7,5,3,3)} {(7,5,3,4), (7,8,3,4)} {(7,5,5,5), (7,5,7,5), (7,8,7,5), (7,8,9,5)} Ø {(7,5,5,7)} {(7,5,3,8), (7,5,7,8), (7,8,3,8), (7,8,7,8)} Ø Ø
  {(8,3,8,1), (8,7,8,1)} {(8,3,1,2), (8,3,4,2)} {(8,3,8,3), (8,7,5,3), (8,7,8,3), (8,9,5,3)} Ø {(8,7,5,5), (8,9,5,5)} {(8,1,2,6), (8,9,2,6)} {(8,3,8,7), (8,7,5,7), (8,7,8,7), (8,9,5,7)} Ø {(8,1,2,9), (8,3,8,9), (8,7,8,9), (8,9,2,9)} {(8,3,4,10)}
  {(9,5,3,1)} {(9,2,9,2)} {(9,5,5,3)} {(9,2,6,4), (9,5,3,4)} {(9,2,9,5), (9,5,5,5), (9,5,7,5)} Ø {(9,5,5,7)} {(9,5,3,8), (9,5,7,8)} Ø Ø
  {(10,8,3,1), (10,10,8,1)} {(10,6,4,2), (10,8,1,2), (10,8,9,2)} {(10,10,8,3)} {(10,8,3,4), (10,10,6,4)} {(10,8,7,5), (10,8,9,5)} {(10,10,10,6)} {(10,10,8,7)} {(10,8,3,8), (10,8,7,8), (10,10,10,8)} {(10,10,8,9)} {(10,10,10,10)}

 

5. По матрице смежности A(G) и таблице Г3 строим таблицу Г4:

                     
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø
  Ø Ø Ø Ø Ø Ø Ø Ø Ø Ø

 

Таким образом мы получили таблицу Г4, в которой перечислены все пути в ориентированном графе G, состоящие из четырех дуг.

 

Задание 10.

Сформировать матрицу достижимости ориентированного графа G. Найти в ней строку, содержащую наименьшее число нулей. Вершину, соответствующую этой строке считать стартовой. Найти кратчайшие пути от стартовой вершины до всех вершин ориентированного графа G, достижимых из стартовой вершины.

Определение. Пусть дан граф G = (XG, PG). Матрицей достижимости называется матрица Т(G)[ n x n], где n – мощность множества вершин, с элементами tij, которые определяются следующим условием:

tij =





Поделиться с друзьями:


Дата добавления: 2016-09-03; Мы поможем в написании ваших работ!; просмотров: 616 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Лаской почти всегда добьешься больше, чем грубой силой. © Неизвестно
==> читать все изречения...

2390 - | 2261 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.