Алгоритм Фишера-Кастелейна-Темперли ( FKT ) , названный в честь Майкла Фишера , Питера Кастелина и Невилла Темперли , подсчитывает количество идеальных паросочетаний в плоском графе за полиномиальное время. Эта же задача является #P-полной для общих графов. Для паросочетаний , которые не обязаны быть идеальными, их подсчет остается #P-полным даже для плоских графов. Основная идея алгоритма FKT состоит в том, чтобы преобразовать задачу в пфаффовское вычисление кососимметричной матрицы, полученной в результате плоского вложения графа. Затем пфаффиан этой матрицы эффективно вычисляется с использованием стандартных детерминантных алгоритмов .
Проблема подсчета плоских идеальных паросочетаний уходит корнями в статистическую механику и химию , где первоначальный вопрос заключался в следующем: если двухатомные молекулы адсорбируются на поверхности, образуя один слой, сколькими способами они могут быть расположены? [1] Статистическая сумма — это важная величина, которая кодирует статистические свойства системы в равновесии и может быть использована для ответа на предыдущий вопрос. Однако пытаться вычислить статистическую сумму по ее определению непрактично. Таким образом, чтобы точно решить физическую систему, нужно найти альтернативную форму статистической суммы для этой конкретной физической системы, которую достаточно просто вычислить точно. [2] В начале 1960-х годов определение точно решаемой задачи не было строгим. [3] Информатика дала строгое определение с введением полиномиального времени , которое датируется 1965 годом. Аналогичным образом, обозначение «не совсем разрешимо» для такой задачи счета должно соответствовать #P-hardness , которое было определено в 1979 году.
Другой тип физической системы, который следует рассмотреть, состоит из димеров , которые представляют собой полимер с двумя атомами. Димерная модель подсчитывает количество димерных покрытий графа. [4] Другая физическая система, которую следует рассмотреть, — это связь молекул H 2 O в форме льда. Его можно смоделировать как ориентированный 3- регулярный граф, в котором ориентация ребер в каждой вершине не может быть одинаковой. Сколько ориентаций ребер имеет эта модель?
Вдохновленные физическими системами, включающими димеры, в 1961 году Питер Кастелейн [5] , Невилл Темперли и Майкл Фишер [6] независимо друг от друга нашли количество разбиений домино для прямоугольника m - n . Это эквивалентно подсчету количества идеальных паросочетаний для решетчатого графа размером mxn . К 1967 году Кастелейн обобщил этот результат на все плоские графы. [7] [8]
Основная идея состоит в том, что каждый ненулевой член в пфаффиане матрицы смежности графа G соответствует идеальному паросочетанию. Таким образом, если можно найти ориентацию G , чтобы выровнять все знаки терминов в пфаффиане (независимо от + или - ), то абсолютное значение пфаффиана - это просто количество идеальных паросочетаний в G . Алгоритм FKT решает такую задачу для планарного графа G. Ориентация, которую он находит, называется ориентацией Пфаффа .
Пусть G = ( V , E ) — неориентированный граф с матрицей смежности A. Определим PM ( n ) как набор разбиений n элементов на пары, тогда количество идеальных паросочетаний в G будет равно
С этим тесно связан пфаффиан для матрицы размера n на n A.
где sn( M ) — знак перестановки M . Пфаффова ориентация графа G — это ориентированный граф H с матрицей смежности B такой, что pf( B ) = PerfMatch( G ). [9] В 1967 году Кастелейн доказал, что плоские графы имеют эффективно вычислимую пфаффову ориентацию. В частности, для планарного графа G пусть H будет ориентированной версией G , в которой нечетное количество ребер ориентировано по часовой стрелке для каждой грани в плоском вложении G. Тогда H — пфаффова ориентация группы G.
Наконец, для любой кососимметричной матрицы A
где det( A ) — определитель A . Этот результат принадлежит Артуру Кэли . [10] Поскольку определители эффективно вычислимы, то же самое можно сделать и с PerfMatch( G ).
Сумма взвешенных идеальных паросочетаний также может быть вычислена с использованием матрицы Тутте для матрицы смежности на последнем этапе.
Теорема Куратовского утверждает, что
Виджей Вазирани обобщил алгоритм FKT на графы, которые не содержат подграфа, гомеоморфного K 3,3 . [11] Поскольку подсчет количества идеальных паросочетаний в общем графе #P-полный , требуются некоторые ограничения на входной граф, если только FP , функциональная версия P , не равна #P . Подсчет паросочетаний, известный как индекс Хосоя , также является #P-полным даже для плоских графов. [12]
Алгоритм FKT широко использовался в голографических алгоритмах на плоских графах через сопоставление. [3] Например, рассмотрим плоскую версию упомянутой выше ледяной модели, имеющую техническое название # PL -3-NAE- SAT (где NAE означает «не все равны»). Valiant нашел для этой задачи алгоритм с полиномиальным временем, который использует matchgates. [13]