Нижняя граница сложности: разрыв между деревьями решений и ОЗУ


15

Недавно я обнаружил квадратичную нижнюю границу сложности задачи в модели дерева решений, и мне интересно, можно ли частично обобщить этот результат в модели машины с произвольным доступом. Под частичностью я подразумеваю обобщение программ ОЗУ с определенным временным / пространственным компромиссом. Например, я хотел бы показать, что моя проблема не может быть решена с помощью программы линейного времени и пространства ОЗУ.

А. М. Бен-Амрам и З. Галиль доказали в этой статье, что программа ОЗУ, работающая во времени и пространстве может быть смоделирована за время на машине указателя. Известны ли нам похожие результаты, которые можно применить к деревьям решений?tsO(tlogs)

В качестве альтернативы, можно ли имитировать программу ОЗУ, работающую в пространстве с помощью дерева решений степени ? (Интуитивно, косвенная адресация может быть смоделирована с использованием узлов степени )sss


Я не слишком много знаю о классической сложности запросов (сложность дерева решений), но при работе в аналогичной модели в квантовой обстановке (сложность квантовых запросов) вы иногда получаете довольно плохие нижние оценки для схемной модели. Например, для HSP вы можете показать, что сложность запроса является полиномиальной, но унитарные между запросами занимают экспоненциальное число гейтов ... и, насколько мы подозреваем, общий HSP не выполним в полиномиальное время, поэтому сложность запроса дает только очень свободные нижние границы. Или ты в порядке с очень слабой нижней границей?
Артем Казнатчеев

На самом деле, мне бы очень хотелось получить суперлинейную нижнюю границу для (некоторых) программ, работающих в оперативной памяти. Вот почему я надеялся, что ограничение сложности пространства может помочь.
Тоторо

1
Я не понимаю ваш вопрос. Как можно получить квадратичную нижнюю границу сложности запроса? Кроме того, временные и пространственные компромиссы часто используют прямые теоремы о продукте, поэтому вам, возможно, придется усердно работать, чтобы получить такие результаты.
Хартмут Клаук

1
Нижняя граница сложности в модели дерева решений исходит из нижней границы числа возможных выходных данных задачи (чей логарифм обеспечивает нижнюю границу для высоты дерева).
Тоторо

Ответы:


10

Естественной моделью, связанной с деревьями решений, которая может имитировать ОЗУ, является программа ветвления. По сути, это дерево решений с общими поддеревьями, объединенными в DAG. Время T и пространство S в ОЗУ можно смоделировать по высоте T и размеру 2 ^ S в программе ветвления. (Возможно, вам придется использовать многоходовое ветвление.)

Для решения проблем ясно, что для любого дерева решений нужны только высота = # входы и пространство = общее количество бит на входе. Обратите внимание, что при многоходовом ветвлении можно иметь # битов на входе больше, чем обычная мера # входов (например, n указателей, каждый из которых принимает log n битов). Для таких проблем с nlog n полными входными битами можно доказать, что некоторые проблемы не могут быть решены за время O (n) и пробел = O (n) бит. Это форма вашей проблемы?

Похоже, вы предлагаете использовать количество выходов, чтобы попытаться получить большую нижнюю границу. Для задач с несколькими выходами обычно разрешается много выходов по одному ребру, а не по конечным узлам (см., Например, статью Бородина-Кука 1982 года о сортировке нижних границ). Однако даже без этого предположения можно также вычислить любую функцию с битами высоты = # input и space = # input. (Прочитайте и запомните входные данные и выведите все значения на каждом листовом узле.)


Спасибо за ваш ответ. Входные данные задачи представляют собой набор целых чисел, поэтому можно предположить, что они представлены в виде списков. В любом случае, спасибо, что указали на технику Бородина и Кука (я ее совсем не знал). Я надеюсь, что такой метод может быть применен к моей проблеме.
Тоторо

1

Естественной моделью, связанной с деревьями решений, которая моделирует ОЗУ без потерь, является программа ветвления. По сути, это дерево решений с общими поддеревьями, объединенными в DAG. Время T и пространство S в ОЗУ можно смоделировать по высоте T и размеру 2 ^ S в программе ветвления. (Возможно, вам придется использовать многоходовое ветвление.)

Для решения проблем ясно, что для любого дерева решений нужны только высота = # входы и пространство = общее количество бит на входе. Обратите внимание, что при многоходовом ветвлении можно иметь # битов на входе больше, чем обычная мера # входов (например, n указателей, каждый из которых принимает log n битов). Для таких проблем с nlog n полными входными битами можно доказать, что некоторые проблемы не могут быть решены за время O (n) и пробел = O (n) битов в ОЗУ.) Это форма вашей проблемы?

Похоже, вы предлагаете использовать количество выходов, чтобы попытаться получить большую нижнюю границу. Однако даже с этим вы также можете вычислить любую функцию с помощью высоты = # входных данных и пробела = # входных битов. (Прочитайте и запомните входные данные и выведите все значения, требуемые на каждом листовом узле. Обычно допускается несколько выходов на одном узле.)


Возможно, автору лучше объединить этот ответ с предыдущим, поскольку они почти идентичны.
Александр Бондаренко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.