В теории сложности вычислений теорема Блюма об ускорении , впервые сформулированная Мануэлем Блюмом в 1967 году, является фундаментальной теоремой о сложности вычислимых функций .
Каждая вычислимая функция имеет бесконечное число различных представлений программ на данном языке программирования . В теории алгоритмов часто стремятся найти программу с наименьшей сложностью для данной вычислимой функции и данной меры сложности (такую программу можно было бы назвать оптимальной ). Теорема Блюма об ускорении показывает, что для любой меры сложности существует вычислимая функция, такая что не существует оптимальной программы, вычисляющей ее, потому что у каждой программы есть программа меньшей сложности. Это также исключает идею о том, что существует способ назначить произвольным функциям их вычислительную сложность, то есть назначение любой f сложности оптимальной программы для f . Это, конечно, не исключает возможности нахождения сложности оптимальной программы для определенных конкретных функций.
Если задана мера сложности Блюма и общая вычислимая функция с двумя параметрами, то существует общий вычислимый предикат ( вычислимая функция с булевым значением ), такой что для каждой программы для существует программа для , такая что для почти всех
называется функцией ускорения . Тот факт, что она может расти сколь угодно быстро (при условии, что она вычислима), означает, что феномен постоянного наличия программы меньшей сложности сохраняется, даже если под «меньшей» мы подразумеваем «значительно меньшую» (например, квадратично меньшую, экспоненциально меньшую).