Разнообразные комбинаторные задачи, связанные с вычислительной обработкой дискретных конечных структур, часто встречаются в технической практике и других предметных областях. Кроме того, комбинаторные категории и методы широко применяются в ряде математических дисциплин. В частности, они традиционно актуальны в теории вероятностей, теории графов, теории кодирования, теории чисел и теории игр. Необходимо также упомянуть их наиболее современные приложения, например, в статистической физике, математической биологии и для криптографического анализа информации.
Основными операционными объектами таких комбинаторных вычислений являются сочетания, перестановки, размещения и разбиения элементов конечных множеств и натуральных чисел. В частности, сочетания образуются неупорядоченной выборкой элементов конечного множества. Перестановки получаются расположением всех элементов конечного множества в различной последовательности. Размещения можно рассматривать как упорядоченные выборки элементов конечного множества, где они переставлены в различном порядке. Под разбиением множества понимается разделение его элементов на непересекающиеся подмножества, а разбиение целых чисел означает представление их в форме арифметической суммы слагаемых. Во всех случаях физическая природа, технические свойства или информационный смысл элементов, которые образуют такие комбинаторные объекты, не имеет существенного значения. Важна только их комбинаторная конфигурация, которая отражает условия комбинаторной задачи. При этом, как правило, требуется подсчитать или перечислить все комбинаторные объекты определенного класса, которые можно получить для заданного конечного множества элементов.
Для подсчета указанных выше основных комбинаторных объектов применяются специальные формулы или рекуррентные соотношения, которые оперируют с различными специальными комбинаторными числами и функциями. В большинстве случаев используются факториальные функции, биномиальные коэффициенты, числа Стирлинга и Белла. Необходимо отметить, что некоторые комбинаторные конструкции, образованные из комбинаторных чисел, например, числовые треугольники Паскаля и Стирлинга, имеют самостоятельное значение. Их свойства представляют большой интерес, как для разнообразных развлекательных приложений, так и для решения серьезных математических задач, в частности, теории чисел и высшей алгебры. Тем не менее, комбинаторные задачи, связанные с подсчетом стандартных комбинаторных объектов, как правило, не вызывают серьезных вычислительных проблем.
Для инженерной практики, однако, более характерны комбинаторные задачи, связанные с генерацией и перечислением различных комбинаторных конфигураций. В перечислительных задачах малой размерности, когда количество элементов, образующих искомые комбинаторные конфигурации невелико, необходимый результат может быть получен аналитическим путем с использованием, например, формального аппарата производящих функций или символического исчисления. Следует отметить, что кроме размерности существуют и другие препятствия для организации перечислений комбинаторных объектов аналитическими методами. В частности, для реализации аналитического перечисления перестановок и размещений нужно построить некоммутативную алгебру производящих функций. Это возможно, но сложно и, в конечном счете, не дает преимуществ по сравнению с числительными методами. Среди них, разумеется, могут быть использованы универсальные методы перебора конечных дискретных структур, в частности, различные варианты организации поиска с возвращением. Однако гораздо более удобным и привлекательным выглядит применение специализированных итерационных или рекурсивных алгоритмов, которые были разработаны для генерации и перечисления основных типов комбинаторных конфигураций.
Такие специализированные алгоритмы обеспечивают систематический характер перечисления, когда искомые комбинаторные объекты порождаются в определенном порядке. Особенно часто используется и наиболее естественно выглядит лексиграфический порядок, где символические записи комбинаторных объектов перечисляются как в словаре. Однако наиболее эффективными являются перечислительные алгоритмы, которые реализуют порядок минимальных изменений, когда последовательные комбинаторные объекты должны быть минимально различимы по составу или взаимному расположению своих элементов. Кроме лексиграфических алгоритмов и алгоритмов минимального изменения существует большое число других перечислительных алгоритмов, которые реализуют разнообразные порядки порождение основных комбинаторных объектов. В частности, комбинаторные объекты могут быть сопоставлены последовательным целым числам и получены по их представлению в различных системах счисления. Разумеется, такие обращения не всегда эффективны и по возможности следует избегать их использовать. Однако порядки, образованные таким способом могут быть удобны, например, для получения комбинаторного объекта непосредственно по заданному порядковому номеру или для решения обратной задачи, когда требуется найти номер любого комбинаторного объекта в определенном порядке. Все эти алгоритмы в совокупности образуют алгоритмическую базу комбинаторного анализа и широко используются для организации комбинаторных вычислений в инженерной практике или научных исследованиях.