Матроид оракул - Matroid oracle

В математике и информатике матроид оракул это подпрограмма через который алгоритм может получить доступ к матроид, абстрактная комбинаторная структура, которая может быть использована для описания линейные зависимости между векторами в векторное пространство или остовные деревья из график, среди других приложений.

Наиболее часто используемый оракул этого типа - это оракул независимости, подпрограмма для проверки того, является ли набор элементов матроида независимым. Также использовались несколько других типов оракулов; Некоторые из них оказались слабее, чем оракулы независимости, некоторые сильнее, а некоторые эквивалентны по вычислительной мощности.[1]

Много алгоритмы которые выполняют вычисления на матроидах, были спроектированы так, чтобы принимать на входе оракул, что позволяет им эффективно работать без изменений на многих различных типах матроидов и без дополнительных предположений о том, какой матроид они используют. Например, учитывая оракул независимости для любого матроида, можно найти базис минимального веса матроида, применяя жадный алгоритм который добавляет элементы в основу в отсортированном порядке по весу, используя оракул независимости, чтобы проверить, можно ли добавить каждый элемент.[2]

В теория сложности вычислений, то модель оракула привело к безусловному нижняя граница доказывая, что некоторые задачи матроидов не могут быть решены за полиномиальное время, без использования недоказанных предположений, таких как предположение, что P ≠ NP. Проблемы, которые оказались сложными таким образом, включают проверку того, является ли матроид двоичный или же униформа, или проверка наличия определенных фиксированных несовершеннолетние.[3]

Почему оракулы?

Хотя некоторые авторы экспериментировали с компьютерными представлениями матроидов, которые явно перечисляют все независимые наборы или все базисные наборы матроидов,[4] эти представления не лаконичный: матроид с элементы могут расширяться в представление, которое занимает пространство экспоненциально в . Действительно, количество различных матроидов на элементы растут вдвойне экспоненциально в качестве

[5]

из чего следует, что любое явное представление, способное обрабатывать все возможные матроиды, обязательно будет использовать экспоненциальное пространство.[6]

Вместо этого различные типы матроидов могут быть представлены более эффективно из других структур, из которых они определены: однородные матроиды из их двух числовых параметров, графические матроиды, двукруглые матроиды, и гаммоиды из графиков, линейные матроиды из матрицы и т. д. Однако алгоритм для выполнения вычислений на произвольных матроидах нуждается в унифицированном методе доступа к его аргументу, а не в перепроектировании каждого из этих классов матроидов. Модель оракула предоставляет удобный способ кодификации и классификации видов доступа, которые могут понадобиться алгоритму.

История

Начиная с Rado (1942), "функции независимости" или "-функции »были изучены как один из многих эквивалентных способов аксиоматизации матроидов. Функция независимости отображает набор элементов матроида на число если набор независимый или если он иждивенец; то есть это индикаторная функция семейства независимых множеств, по сути то же самое, что оракул независимости.[7]

Оракулы Matroid также были частью самой ранней алгоритмической работы над матроидами. Таким образом, Эдмондс (1965), при изучении проблем разбиения матроида, предположил, что доступ к данному матроиду осуществляется через подпрограмму, которая принимает на вход независимый набор и элемент , и либо возвращает схему в (обязательно уникальный и содержащий , если он существует) или определяет, что такой схемы не существует. Эдмондс (1971) использовал подпрограмму, которая проверяет, является ли данный набор независимым (то есть, в более современной терминологии, оракул независимости), и заметил, что предоставляемой информации достаточно, чтобы найти базис минимального веса за полиномиальное время.

Начиная с работы Корте и Хаусманн (1978) иХаусманн и Корте (1978), исследователи начали изучать оракулы с точки зрения доказательства нижних оценок алгоритмов для матроидов и связанных структур. Эти две статьи Хаусмана и Корте касались проблемы поиска независимого от максимальной мощности множества, что легко для матроидов, но (как они показали) труднее аппроксимировать или точно вычислить для более общих системы независимости представлен оракулом независимости. Эта работа положила начало целому ряду статей в конце 1970-х - начале 1980-х годов, показывающих аналогичные результаты по твердости для задач на матроидах.[8] и сравнивая возможности различных видов матроидных оракулов.[9]

С тех пор оракул независимости стал стандартом для большинства исследований алгоритмов матроидов.[10] Также были продолжены исследования по нижним оценкам,[11] и сравнения разных типов оракулов.[12]

Типы оракулов

Были рассмотрены следующие типы оракулов матроидов.

  • An оракул независимости принимает на входе набор элементов матроида и возвращает на выходе Логическое значение, истина, если данное множество является независимым, и ложь в противном случае.[13] Его можно легко реализовать на основе базовой структуры, из которой был определен матроид для графические матроиды, поперечные матроиды, гаммоиды, и линейные матроиды, а также для матроидов, образованных из них стандартными операциями, такими как прямые суммы.[3]
  • Оракул из Эдмондс (1965) принимает в качестве входных данных независимый набор и дополнительный элемент и либо определяет, что их объединение является независимым, либо находит схему в объединении и возвращает ее.
  • А ранг оракула принимает на вход набор элементов матроида и возвращает на выходе числовое значение, классифицировать данного набора.[9]
  • А основа оракула принимает в качестве входных данных набор элементов матроида и возвращает в качестве выходных данных логическое значение: истина, если данный набор является базисом, и ложь в противном случае.[9]
  • А круговой оракул принимает в качестве входных данных набор элементов матроида и возвращает в качестве выходных данных логическое значение: истина, если данный набор является схемой, и ложь в противном случае.[9]
  • Три типа закрытие оракула были рассмотрены: один, который проверяет, принадлежит ли данный элемент к замыканию данного набора, второй, который возвращает закрытие набора, и третий, который проверяет, является ли данный набор закрытым.[9]
  • А охватывающий оракул принимает в качестве входных данных набор элементов матроида и возвращает в качестве выходных данных логическое значение, истина, если данный набор является охватывающим (т.е. содержит базис и имеет тот же ранг, что и весь матроид), и ложь в противном случае.[14]
  • А обхват оракула принимает на вход набор элементов матроида и возвращает на выходе числовое значение, размер наименьшей схемы в этом наборе (или если данный набор независим).[14]
  • А порт оракул для фиксированного элемента матроида принимает на вход набор элементов матроида и возвращает на выходе логическое значение, истина, если данный набор содержит схему, которая включает и false в противном случае.[15]

Относительная сила разных оракулов

Хотя существует много известных типов оракулов, выбор которых можно упростить, поскольку многие из них эквивалентны по вычислительной мощности. Оракул как говорят полиномиально приводимый к другому оракулу если есть звонок может быть смоделирован алгоритмом, который обращается к матроиду, используя только оракул и берет полиномиальное время измеряется количеством элементов матроида; в терминах теории сложности это Редукция Тьюринга. Говорят, что два оракула полиномиально эквивалентный если они полиномиально сводятся друг к другу. Если и полиномиально эквивалентны, то каждый результат, который доказывает существование или отсутствие алгоритма полиномиального времени для задачи матроида с использованием оракула также доказывает то же самое для оракула .

Например, оракул независимости полиномиально эквивалентен оракулу поиска схемы Эдмондс (1965). Если доступен оракул для поиска схем, набор можно проверить на независимость, используя не более взывает к оракулу, начиная с пустой набор, добавляя элементы данного набора по одному элементу за раз, и используя оракул поиска схем, чтобы проверить, сохраняет ли каждое добавление независимость набора, который был построен на данный момент. В противном случае, если доступен оракул независимости, схема в наборе можно найти с использованием не более вызывает оракул путем тестирования для каждого элемента , ли является независимым и возвращает элементы, для которых ответ отрицательный. Оракул независимости также полиномиально эквивалентен оракулу ранга, покрывающему оракулу, первым двум типам оракула закрытия и оракулу порта.[1]

Базовый оракул, схемный оракул и оракул, который проверяет, является ли данный набор замкнутым, все слабее, чем оракул независимости: они могут быть смоделированы за полиномиальное время с помощью алгоритма, который обращается к матроиду с помощью оракула независимости, но не наоборот . Кроме того, ни один из этих трех оракулов не может имитировать друг друга за полиномиальное время. В том же смысле обхват оракула сильнее оракула независимости.[9]

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

Алгоритмы

Известно, что многие проблемы на матроидах решаются в полиномиальное время алгоритмами, которые обращаются к матроиду только через оракул независимости или другой оракул эквивалентной мощности, без каких-либо дополнительных предположений о том, какой матроид им был дан. К этим полиномиально решаемым задачам относятся:

  • Нахождение минимального или максимального веса взвешенный матроид, используя жадный алгоритм.[2]
  • Разделение элементов матроида на минимальное количество независимых наборов и поиск самого большого набора, который одновременно является независимым в двух заданных матроидах. Последняя проблема называется пересечение матроидов, и решения обеих проблем тесно связаны друг с другом.[16]
  • Тестирование матроида -связанный (в смысле Тутт 1966 ) за .[17]
  • Проверка того, является ли данный матроид графический[18] или же обычный.[19]
  • Нахождение разложение уха данного матроида, последовательность схем, объединение которых является матроидом, и в которой каждая схема остается схемой после сжатия всех предыдущих схем в последовательности. Такое разложение можно также найти с дополнительным свойством, что выбранный элемент матроида принадлежит каждой схеме.[15]
  • Нахождение ветвление-разложение данного матроида, если его ширина ветви не больше фиксированной константы.[20]
  • Перечисление всех баз, квартир или схем матроида за полиномиальное время для каждого выходного набора.[21]
  • Приближая количество оснований полностью полиномиальная схема рандомизированной аппроксимации, для матроида с элементы и ранг , с дополнительным предположением, что количество оснований находится в пределах полиномиального множителя количества -элементные наборы.[22]

Доказательства невозможности

Для многих задач матроидов можно показать, что оракул независимости не обеспечивает достаточной мощности, чтобы позволить решить проблему за полиномиальное время. Основная идея этих доказательств - найти два матроида. и от которых зависит ответ на проблему и которые алгоритму трудно различить. В частности, если обладает высокой степенью симметрии и отличается от только в ответах на небольшое количество запросов, тогда может потребоваться очень большое количество запросов для алгоритма, чтобы быть уверенным в различении ввода типа от входа, сформированного с использованием одной из симметрий переставлять .[3]

На простом примере этого подхода можно показать, что трудно проверить, является ли матроид униформа. Пусть для простоты изложения будь ровным, пусть быть однородным матроидом , и разреши быть матроидом, сформированным из сделав один из -элементные базовые наборы зависимый, а не независимый. Чтобы алгоритм мог правильно проверить, является ли его вход однородным, он должен уметь различать от всевозможных перестановок . Но для того, чтобы детерминированный алгоритм сделал это, он должен протестировать каждую из -элементные подмножества элементов: если он пропустил один набор, его может обмануть оракул, который выбрал тот же набор, что и тот, который стал зависимым. Следовательно, для проверки однородности матроида может потребоваться

запросы независимости, намного превышающие полиномиальные. Даже рандомизированный алгоритм должен сделать примерно столько же запросов, чтобы быть уверенным в различении этих двух матроидов.[23]

Дженсен и Корте (1982) формализовать этот подход, доказав, что если существуют два матроида и на одном и том же наборе элементов, но с разными ответами на проблемы, алгоритм, который правильно решает данную проблему на этих элементах, должен использовать как минимум

запросы, где обозначает группа автоморфизмов из , обозначает семейство множеств, независимость которых отличается от к , и обозначает подгруппу автоморфизмов, отображающую себе. Например, группа автоморфизмов равномерного матроида - это просто симметричная группа, с размером , а в задаче тестирования однородных матроидов был всего один набор с , в экспоненциальный раз меньше, чем .[24]

Проблемы, которые оказались невозможными для алгоритма оракула матроида для вычисления за полиномиальное время, включают:

  • Проверка однородности данного матроида.[23]
  • Проверка, содержит ли данный матроид фиксированный матроид как несовершеннолетний, за исключением особых случаев, когда одинаков с рангом или корангом не более одного. В более общем смысле, если - фиксированный конечный набор матроидов, и в , то невозможно проверить за полиномиальное время, содержит ли данный матроид один или несколько матроидов в как несовершеннолетний.[25]
  • Проверка того, является ли данный матроид двоичный, представима над любым конкретным фиксированным поле, или существует ли поле, над которым он может быть представлен.[26]
  • Решение задачи сопоставления матроидов, в которой входными данными является граф и матроид в его вершинах, а цель - найти соответствие в графе, который является как можно большим, при условии, что совпадающие вершины образуют независимый набор.[27]
  • Проверка того, является ли данный матроид самодвойственный, поперечный, двудольный, Эйлеров, или же ориентируемый.[3]
  • Вычисление обхвата (размера наименьшего контура), размера наибольшего контура, количества контуров, количества оснований, количества квартир, количества квартир максимального ранга, размера самой большой квартиры, Полином Тутте, или возможность подключения данного матроида.[3]

Среди множества всех свойств -элементных матроидов, доля свойств, для проверки которых не требуется экспоненциальное время, стремится к нулю в пределе, как уходит в бесконечность.[6]

Смотрите также

Примечания

  1. ^ а б Робинсон и валлийский (1980); Хаусманн и Корте (1981); Куллар и Хеллерштейн (1996).
  2. ^ а б Эдмондс (1971).
  3. ^ а б c d е Дженсен и Корте (1982).
  4. ^ Мэйхью (2008).
  5. ^ Пифф и валлийский (1971); Пифф (1973); Кнут (1974); Бансал, Пендавинг и ван дер Поль (2012).
  6. ^ а б Робинсон и валлийский (1980).
  7. ^ Дополнительные исследования матроидов, основанные на аксиоматизации функции независимости, см., Например, Rado (1957), Лазарсон (1958), и Инглтон (1959).
  8. ^ Ловас (1981); Сеймур (1981); Сеймур и Уолтон (1981); Дженсен и Корте (1982); Truemper (1982).
  9. ^ а б c d е ж Робинсон и валлийский (1980); Хаусманн и Корте (1981).
  10. ^ Например. видеть Каннингем (1986), Кельманс и Полесский (1994) Фуджишигэ и Чжан (1995), Чавес Ломели и валлийский (1996), Хачиян и др. (2005), и Оум и Сеймур (2007).
  11. ^ Азар, Бродер и Фриз (1994).
  12. ^ Карп, Упфал и Вигдерсон (1988); Куллар и Хеллерштейн (1996).
  13. ^ Эдмондс (1971); Робинсон и валлийский (1980); Хаусманн и Корте (1981).
  14. ^ а б Хаусманн и Корте (1981).
  15. ^ а б Куллар и Хеллерштейн (1996).
  16. ^ Эдмондс (1965); Каннингем (1986).
  17. ^ Биксби и Каннингем (1979). Статья, в которой утверждается аналогичный результат для любой фиксированной константы был объявлен Каннингемом и Эдмондсом примерно в то же время, но, похоже, не был опубликован. Truemper (1998), pp. 186–187, пишет "Locating -суммы для общих намного сложнее ... Мы не знаем, как это может быть эффективно выполнено для бинарных матроидов, не говоря уже об обычных матроидах ".
  18. ^ Сеймур (1981).
  19. ^ Truemper (1982).
  20. ^ Оум и Сеймур (2007).
  21. ^ Хачиян и др. (2005).
  22. ^ Чавес Ломели и валлийский (1996). Напротив, детерминированные алгоритмы не могут точно аппроксимировать количество оснований матроида за полиномиальное время (Азар, Бродер и Фриз 1994 ).
  23. ^ а б Робинсон и валлийский (1980); Дженсен и Корте (1982).
  24. ^ Как и в Дженсен и Корте (1982), эта формализация рассматривается в Корте и Шредер (1981). В большинстве случаев применения этой техники в Дженсен и Корте (1982), единообразно, но Сеймур (1981) применяет ту же идею к неоднородному, но высокосимметричному матроиду.
  25. ^ Сеймур и Уолтон (1981). Результаты Сеймур (1981) и Дженсен и Корте (1982) приведите частные случаи этого для задач поиска несовершеннолетний и Вамос матроид минор соответственно. Проверка того, является ли матроид графическим или регулярным, может быть выражена в терминах конечного набора запрещенных миноров и может быть решена за полиномиальное время, но запрещенные миноры для этих задач включают однородный матроид , поэтому они не противоречат этому результату о невозможности.
  26. ^ Сеймур (1981) показал это для бинарных матроидов, Сеймур и Уолтон (1981) для конечных полей Truemper (1982) для произвольных полей и Дженсен и Корте (1982) для существования поля, над которым матроид представим.
  27. ^ Ловас (1981); Дженсен и Корте (1982). Однако частный случай этой проблемы для двудольные графы может быть решена за полиномиальное время как пересечение матроидов проблема.

Рекомендации