Метод чотирьох росіян
В інформатиці, метод чотирьох росіян— це техніка пришвидшення алгоритму, що використовує булеві матриці або, загальніше, алгоритмів, що використовують матриці в яких кожна комірка може набувати обмеженої кількості можливих значень.
Розроблений комбінаторний алгоритм дозволяв множити булеві матриці за . З маленькою зміною алгоритм може працювати за . Станом на 2015 було вже отримано алгоритм, що працює за .
Алгоритм
Нехай і будуть булевими матрицями. Обираючи довільне можна розбити на блоки розміру . Позначимо кожен такий блок через , тоді .
Для кожної двійки створюємо таблицю пошуку згідно з такою специфікацією:
- для кожного бітового вектора завдовжки : .
Маємо, що .
Час необхідний для обчислення всіх таблиць асимптотично становить:
- ,
бо всього двійок , векторів і обчислення потребує для сталої .
Щодо матриці , то кожен її стовпчик можна розбити на частин. Нехай буде й шматок го стовпчика. Кожен добуток можна обчислити за сталий час, бо ми вже маємо обчислені таблиці.
Щоб обчислити , можна зробити наступне.
Для : (за означенням булевого добутку матриць). Таким чином, час потрібний для виконання алгоритму становить
- .
Передобчисливши всі можливі побітові у таблицю так, що , де , можна зменшити час виконання до .
Історія
Алгоритм запропонували Арлазаров, Дініц, Кронрод і Фараджев в 1970.Шаблон:Sfn Походження назви невідоме; Шаблон:Harvtxt пояснюють:
- Другий метод, часто згадуваний як алгоритм «чотирьох росіян», через кількість і громадянство його винахідників, що «практичніше» ніж алгоритм в теоремі 6.9.Шаблон:Sfn
Всі чотири автори працювали тоді в Москві.[1]
Примітки
- Шаблон:Citation. Оригінальна назва: "Об экономном построении транзитивного замыкания ориентированного графа".
- Шаблон:Citation