Постоянное время - это абсолютный нижний предел сложности времени. Можно задаться вопросом: есть ли что-нибудь нетривиальное, что можно вычислить за постоянное время? Если мы придерживаемся модели машины Тьюринга, то мало что можно сделать, поскольку ответ может зависеть только от начального сегмента ввода постоянной длины, так как дальнейшие части ввода даже не могут быть достигнуты за постоянное время.
С другой стороны, если мы примем более мощную (и более реалистичную) модель ОЗУ с единичной стоимостью, в которой элементарные операции над числами -бит считаются за один шаг, то мы сможем решить нетривиальную задачу. задачи, даже в постоянное время. Вот пример:
Экземпляр: целые числа , каждый из которых задан в двоичном формате O ( log n ) битами.
Вопрос: существует ли вершинный граф, такой, что его вершинная связность равна k , его краевая связность равна l , а его минимальная степень равна d ?
Обратите внимание, что из определения даже не очевидно, что проблема в NP . Причина в том, что естественный свидетель (график) может нуждаться в длинном описании -бит, в то время как ввод дается только O ( log n ) битами. С другой стороны, на помощь приходит следующая теорема (см. Теория экстремальных графов Б. Боллобаса).
Теорема: Пусть целые числа. Существует n- вершинный граф с связностью вершин k , связностью ребер l и минимальной степенью d , если и только если выполняется одно из следующих условий:
- ,
Поскольку эти условия можно проверять за постоянное время (в модели ОЗУ с единичной стоимостью), теорема приводит к алгоритму с постоянным временем в этой модели.
Вопрос: Каковы другие нетривиальные примеры алгоритмов с постоянным временем?