|
Гамильтонов путь в графе и его поиск.
Гамильтонов путь – путь через все вершины, причем каждая встречается только 1 раз.
Алгоритм Фаулкса
Составляем матрицу достижимости за 1 шаг
Находим её степени. для каждой выполняем упрощение по схеме ниже:
Вершина (операция) является начальной вершиной ГП, если во всей строке матрицы стоят единицы, а во всем столбце (за исключением их пересечения) - нули. Вершина (операция) является конечной вершиной ГП, то во всей строке матрицы стоят нули (за исключением их пересечения), а во всем столбце - единицы.
Упрощаем её, вычеркивая из нее строки и столбцы, соответствующие начальной или (и) конечной вершине ГП. Получаем матрицу (RN)'.
Продолжаем до тех пор пока матрица не станет равна сама себе в предыдущей степени или все её элементы не станут единицами
Составляем матрицу Rb, возвращая в матрицу, строки и столбцы, вычеркнутые во всех циклах вычислений.
перегруппировываем одновременно строки и столбцы матрицы таким образом, чтобы все нули были расположены под главной диагональю, а единицы - над ней.
Квадратные матрицы, состоящие из единиц, опирающихся на главную диагональ, образуют классы эквивалентности вершин (совокупности вершин графа, эквивалентных с точки зрения очередности их присутствия в гамильтоновом пути).
Если для данного графа мы получили m классов эквивалентности (m £ n), то есть B1,…,Bm, и в каждый класс эквивалентности Bd, d = 1,2,…,m входят Sd вершин графа, то можно сказать, что вершины, входящие в класс эквивалентности Bd, расположенные выше и левее класса эквивалентности Bl в матрице Rc будут предшествовать в Гамильтоновом пути вершинам из класса эквивалентности Bl.
Еще есть алгоритм перебора.
Билет 46.
Эйлеров путь в графе и его поиск.
Теорема Эйлера для неориентированных графов: для того чтобы на графе существовал замкнутый эйлеров путь (маршрут), необходимо и достаточно, чтобы граф был связным и степени всех его вершин были четными.
Теорема Эйлера для ориентированных графов: для того чтобы на ориентированном графе существовал замкнутый ЭП, необходимо и достаточно, чтобы граф был связным и для каждой его вершины полустепень исхода равнялась полустепени захода.
Для нахождения ЭП на графе:
выбираем начальную вершину. все рёбра считаем непомеченными. выбираем следующую вершину по принципу туда есть дуга и она раньше не использовалась и номер минимальный. помечаем ребро. продолжаем так пока не станет некуда идти или путь не замкнётся. Берём другую начальную вершину, которая ещё не использовалась. строим новый контур. Объединение контуров и будет ЭП.
Дата добавления: 2015-07-26; просмотров: 64 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Билет 34. | | | Билет 47. |