Если я понимаю вопрос, вы спрашиваете алгоритмы, которые теоретически лучше, но практически хуже во всех ситуациях. Следовательно, никто не ожидал, что они будут фактически использованы, если только по ошибке.
Одним из возможных примеров является универсальная памятка . Теоретически все вызовы детерминированных функций должны быть запомнены для всех возможных входов. Таким образом, сложные вычисления могут быть заменены простыми поисками таблиц. Для решения широкого круга задач этот метод продуктивно тратит время на хранение. Но предположим, что существует центральное хранилище результатов всех возможных входов для всех возможных функций, используемых всеми компьютерами человечества. Первый раз, когда кто-нибудь где-нибудь делал вычисления, это будет последний раз. Все последующие попытки приведут к поиску в таблице.
Но есть несколько причин, по которым я не могу этого сделать:
Объем памяти, необходимый для хранения всех результатов, вероятно, будет слишком большим. Кажется вероятным, что количество необходимых битов превысит количество частиц во вселенной. (Но даже задача оценить это число утомительна.)
Было бы трудно создать эффективный алгоритм для запоминания этого огромного проблемного пространства.
Стоимость связи с центральным хранилищем, вероятно, превысит выгоду с увеличением числа клиентов.
Я уверен, что вы можете думать о других проблемах.
На самом деле, такого рода компромисс между временем и пространством невероятно распространен на практике. В идеале все данные должны храниться в кеше L1, но из-за ограничений по размеру вам всегда нужно поместить некоторые данные на диск или (ужас!) Ленту. Развитие технологий уменьшает некоторые из этих компромиссов, но, как я уже говорил выше, существуют ограничения.
В ответ на комментарий Я.Ф. Себастьяна:
Предположим, что вместо универсального репозитория заметок мы рассмотрим факториальный репозиторий. И он не будет содержать результаты для всех возможных входов. Скорее, оно будет ограничено результатами от 1
до N!
. Теперь легко увидеть, что любой компьютер, который делал факториалы, выиграл бы от просмотра результата, а не от вычисления. Даже для вычисления (N+1)!
поиск будет огромным выигрышем, поскольку этот расчет уменьшится до N!(N+1)
.
Теперь, чтобы сделать этот «лучший» алгоритм хуже, мы можем либо увеличить N, либо увеличить количество компьютеров, использующих репозиторий.
Но я, наверное, не понимаю какой-то тонкости вопроса. Они так думают, я продолжаю придумывать примеры, которые хорошо масштабируются, пока они этого не делают.