Алгоритм Гавела — Хакими

Материал из testwiki
Перейти к навигации Перейти к поиску

Алгоритм Гавела — Хакимирекурсивный алгоритм позволяющий определить появляется ли данный список целых чисел как список всех валентностей некоторого конечного простого графа. При положительном ответе на этот вопрос список называется графическим.

Алгоритм предложен Шаблон:Iw в 1955 и переоткрыт Шаблон:Iw в 1962.

Алгоритм

Алгоритм основан на следующей теореме.

Пусть s,d1,,ds,t1,,tk есть конечный список неотрицательных целых чисел в невозрастающем порядке. Список s,d1,,ds,t1,,tk является графическим, тогда, и только тогда, когда список d11,,ds1,t1,,tk графический.

Описанную операцию следует применять поочерёдно с упорядочиванием списка. Если в какой-то момент получаем список из нулей то изначальный список являлся графическим. Если же в списке появится отрицательное число то изначальный список не являлся графическим.

Примеры

Граф со списком валентностей 4,4,3,3,2,2,1,1.
  • Применим алгоритм к списку 4,4,3,3,2,2,1,1. Мы поочерёдно применяем теорему и упорядочивание. То что в результате получается список из нулей означает, что список 4,4,3,3,2,2,1,1 графический.
    4433221132212113222111111111111111011111111001101100000
  • Применим алгоритма к списку 7,6,3,3,2,2,1,1. То что в результате получается список из отрицательных чисел означает, что список 7,6,3,3,2,2,1,1 не является графическим.
    763322115221100110010

См. также

Примечания