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