В теории многомерных полиномов алгоритм Бухбергера — это метод преобразования заданного набора полиномов в базис Грёбнера , который представляет собой другой набор полиномов, имеющих те же общие нули и более удобных для извлечения информации об этих общих нулях. Он был введен Бруно Бухбергером одновременно с определением базисов Грёбнера.
Алгоритм Евклида для вычисления наибольшего общего делителя полиномов и метод Гаусса для линейных систем являются частными случаями алгоритма Бухбергера, когда число переменных или степеней полиномов соответственно равны единице.
Для других алгоритмов базиса Грёбнера см. Базис Грёбнера § Алгоритмы и реализации .
Грубая версия этого алгоритма для нахождения базиса идеала I полиномиального кольца R выполняется следующим образом:
Полином S ij обычно называют S -полиномом, где S относится к вычитанию (Бухбергер) или сизигии (другие). Пара полиномов, с которой он связан, обычно называется критической парой .
Существует множество способов улучшить этот алгоритм сверх того, что было указано выше. Например, можно сократить все новые элементы F относительно друг друга перед их добавлением. Если ведущие члены f i и f j не имеют общих переменных, то S ij всегда будет сокращаться до 0 (если мы используем только f i и f j для сокращения), поэтому нам вообще не нужно его вычислять.
Алгоритм завершается, поскольку он последовательно увеличивает размер мономиального идеала, порожденного ведущими членами нашего множества F , а лемма Диксона (или теорема Гильберта о базисе ) гарантирует, что любая такая возрастающая цепочка в конечном итоге должна стать постоянной.
Вычислительную сложность алгоритма Бухбергера очень трудно оценить из-за количества выборов, которые могут кардинально изменить время вычислений. Тем не менее, TW Dubé доказал [1] , что степени элементов редуцированного базиса Грёбнера всегда ограничены
где n — число переменных, а d — максимальная суммарная степень входных полиномов. Это позволяет, в теории, использовать линейную алгебру над векторным пространством полиномов степени, ограниченной этим значением, для получения алгоритма сложности .
С другой стороны, существуют примеры [2] , где базис Грёбнера содержит элементы степени
и указанная выше верхняя граница сложности является оптимальной. Тем не менее, такие примеры крайне редки.
С момента его открытия было введено много вариантов алгоритма Бухбергера для повышения его эффективности. Алгоритмы Фожера F4 и F5 в настоящее время являются наиболее эффективными алгоритмами для вычисления базисов Грёбнера и позволяют регулярно вычислять базисы Грёбнера, состоящие из нескольких сотен полиномов, каждый из которых имеет несколько сотен членов и коэффициентов из нескольких сотен цифр.