Временная сложность алгоритма Хопкрофта – Карпа

В последних двух абзацах статьи об алгоритме Хопкрофта-Карпа для нахождения соответствия максимальной мощности в двудольном графе:

https://dl.dropboxusercontent.com/u/64823035/04569670.pdf

Время выполнения фазы равно O(m+n), где m — количество ребер в G, а n — количество вершин. Следовательно, время выполнения всего алгоритма равно O((m+n)s), где s — мощность максимального паросочетания.

Если G имеет n вершин, то m ‹= n^2/4 и s ‹ n/2, так что время выполнения ограничено величиной O(n^(5/2)).

Я не понимаю, учитывая:

m <= n^2 / 4
s <= n / 2

почему они пришли к выводу:

O((m+n)s) = O(n^(5/2))

Разве не должно быть:

O((m+n)s) = O(n^3)

Есть идеи?

Отредактировано: ссылка исправлена. Виноват.


person An Phung    schedule 03.01.2014    source источник


Ответы (1)


Я считаю, что вы правы, и мне кажется, что в статье есть ошибка - они значительно упростили доказательство. Взгляните на эту статью, где несколько лемм используются для доказательство.

person Ivaylo Strandjev    schedule 03.01.2014
comment
В следствии 5 статьи говорится, что есть только фазы sqrt(s). Возможно, на пишущей машинке не было символа sqrt() и его забыли нарисовать. - person An Phung; 03.01.2014
comment
Что это меняет - person Ivaylo Strandjev; 04.01.2014
comment
Должно быть O ((m + n) sqrt (s)) = O (n ^ (5/2)), что верно. - person An Phung; 05.01.2014
comment
@walker аааа понятно. ХОРОШО - person Ivaylo Strandjev; 05.01.2014