http://shujkova.ru/sites/default/files/lec7.pdf - оригинальный документ, в котором подробно описан алгоритм на C++.
Реализация на PHP: