E-maxx_algo - Страница 21

e-maxx_algo

Тогава ако полиномът

е идентично нула, след такава замяна ще остане нула; ако

ако беше ненулево, тогава с такова заместване на случайно число вероятността да се превърне в

нула, достатъчно малка.

Ясно е, че такъв тест (заместване на случайни стойности и изчисляване на детерминанта

), ако е погрешно,

тогава само в една посока: той може да съобщи за липсата на перфектно съвпадение, когато в действителност съществува.

Можем да повторим този тест няколко пъти, като заместим новите произволни числа за стойностите на променливите и с всеки повторен цикъл получаваме все повече увереност, че тестът е дал верния отговор.

На практика в повечето случаи е достатъчен един тест, за да се определи дали графиката има перфектно съвпадение или не; няколко такива теста вече дават много голяма вероятност.

За да се изчисли вероятността от грешка, може да се използва лемата на Schwartz-Zippel, която гласи, че вероятността от ненулев полином от степента да изчезне при заместване на случайни числа като стойности на променливи, всяка от които може да приеме стойности, - тази вероятност удовлетворява неравенството:

Например, когато се използва стандартната функция за произволни числа C++

получаваме, че тази вероятност

е около процент.

Асимптотиката на решението се оказва

(използвайки например алгоритъма на Гаус), умножено по

по броя на итерациите на теста. Трябва да се отбележи, че в асимптотиката такова решение значително изостава от решението на алгоритъма на Edmonds за компресия на цветя, но в някои случаи е по-предпочитано, тъй като

Реконструирането на идеалното съвпадение като набор от ръбове е по-трудна задача. Най-простият, макар и най-бавен вариант е да възстановите това съвпадение по един ръб наведнъж: прегледайте първия ръб на отговора, изберете го така, че да съществува перфектно съвпадение в останалата графика и т.н.

Доказателство за теоремата на Тут

За да разберем добре доказателството на тази теорема, първо разглеждаме по-прост резултат, получен от Едмъндс за случая на двуделни графи.

Помислете за двуделна графика с върхове във всяка част. Нека съставим матрица, в която по аналогия с матрицата на Тут тя е отделна независима променлива, ако в графата има ръб,

и в противен случай е идентична нула.

Тази матрица е подобна на матрицата на Tutt, но матрицата на Edmonds има половината разлика и всеки ръб тук съответства само на една клетка на матрицата.