В теории вычислений машина Блюма–Шуба–Смейла , или машина BSS , — это модель вычислений, введенная Ленор Блюм , Майклом Шубом и Стивеном Смейлом , предназначенная для описания вычислений над действительными числами . [1] По сути, машина BSS — это машина произвольного доступа с регистрами, которые могут хранить произвольные действительные числа и которые могут вычислять рациональные функции над действительными числами за один временной шаг. Она тесно связана с моделью Real RAM .
Машины BSS более мощны, чем машины Тьюринга , поскольку последние по определению ограничены конечным набором символов. [2] Машина Тьюринга может представлять счетное множество (например, рациональные числа) строками символов, но это не распространяется на несчетные действительные числа.
Машина BSS M задается списком инструкций (будет описана ниже), индексированных . Конфигурация M представляет собой кортеж , где — индекс инструкции, которая должна быть выполнена следующей, и — регистры, содержащие неотрицательные целые числа, и — список действительных чисел, все из которых, кроме конечного числа, равны нулю. Считается, что список содержит содержимое всех регистров M . Вычисление начинается с конфигурации и заканчивается, когда ; окончательное содержимое называется выходом машины.
Инструкции M могут быть следующих типов:
Блюм, Шуб и Смейл определили классы сложности P (полиномиальное время) и NP (недетерминированное полиномиальное время) в модели BSS. Здесь NP определяется путем добавления к проблеме экзистенциально-квантифицированного входа. Они дают задачу, которая является NP-полной для класса NP, определенного таким образом: существование корней полиномов четвертой степени. Это аналог теоремы Кука-Левина для действительных чисел.