Разбиение Matroid - Википедия - Matroid partitioning
В разделение матроидов проблема - проблема, возникающая при математическом исследовании матроиды и в проектировании и анализе алгоритмы, цель которого - разделить элементы матроида на как можно меньше независимых множеств. Примером может служить проблема вычисления родословие из неориентированный граф, минимальное количество леса нужно было покрыть все его края. Разбиение Matroid может быть решено в полиномиальное время, учитывая оракул независимости для матроида. Его можно обобщить, чтобы показать, что сумма матроидов сам является матроидом, чтобы предоставить алгоритм для вычисления разряды и независимых множеств в суммах матроидов, и для вычисления наибольшего общего независимого множества в пересечение двух данных матроидов.[1]
Пример
В родословие из неориентированный граф это минимальное количество леса на которые могут быть разделены его ребра, или, что то же самое (добавляя перекрывающиеся ребра к каждому лесу по мере необходимости), минимальное количество покрывающий леса объединение которых составляет весь граф. Формула доказана Криспин Нэш-Уильямс точно характеризует древовидность: она максимальная по всем подграфам данного графа , количества .[2]
Леса графа образуют независимые множества связанных графический матроид, а количество в формуле Нэша-Вильямса фигурирует ранг графического матроида , максимальный размер одного из его независимых наборов. Таким образом, задача определения древовидности графа - это в точности задача разбиения матроида для графического матроида. Тот факт, что элементы этого матроида не могут быть разделены менее чем на независимых подмножеств тогда просто приложение принцип голубятни говоря это, если элементы разбиты на наборы размером не более , то хотя бы нужны наборы. Более сложное направление формулы Нэша-Вильямса, которая может быть обобщена на все матроиды, - это доказательство того, что разбиение такого размера всегда существует.[1]
Формула размера раздела
Чтобы обобщить формулу Нэша-Вильямса, можно заменить матроидом , а подграф из с ограничение из к подмножеству его элементов. Количество ребер подграфа становится, в этом обобщении, мощность выбранного подмножества, и формула для максимального размера леса в становится званием . Таким образом, минимальное количество независимых множеств в разбиении данного матроида должен быть задан формулой
которое справедливо для всех матроидов и было алгоритмически доказано Эдмондс (1965).[1][3]
Алгоритмы
Первый алгоритм разбиения матроидов был дан Эдмондс (1965).[3] Это алгоритм инкрементального увеличения пути, который рассматривает элементы матроида один за другим в произвольном порядке, поддерживая на каждом шаге алгоритма оптимальное разбиение для элементов, которые были рассмотрены до сих пор. На каждом этапе при рассмотрении элемента который еще не был помещен в раздел, алгоритм строит ориентированный граф который имеет своими узлами элементы, которые уже были разделены, новый элемент , и специальный элемент для каждого из независимые множества в текущем разделе. Затем он формирует ориентированный граф на этом наборе узлов с направленной дугой для каждого элемента матроида который можно добавить в набор разделов не заставляя его становиться зависимым, и с направленной дугой для каждой пары элементов матроида такое, что удаление из своего раздела и заменив его на образует еще один независимый набор.[1][3]
Теперь есть два случая:
- Если этот граф содержит направленный путь из элемента к вновь рассмотренному элементу , то кратчайший такой путь (или, в более общем смысле, любой путь, не имеющий никаких сокращающихся краев) описывает последовательность изменений, которые могут быть внесены одновременно в наборы разделов, чтобы сформировать новый раздел с тем же количеством наборов, что и также включает . В этом случае алгоритм выполняет эти изменения и продолжает работу.
- Если же такого пути не существует, то пусть состоят из элементов матроида, из которых является достижимый в . Каждый набор в текущем разделе должен быть максимальным независимым набором в ограничение , если какой-то элемент из может быть добавлен в набор разделов в ограничении, то либо существовала бы дуга (если установлен раздел не является максимальным в полном матроиде ) или дугу куда (если множество разбиений не является максимальным в но максимальная в полном матроиде). В любом случае существование этой дуги противоречит предполагаемой конструкции множества , и противоречие доказывает, что каждое множество разбиений является максимальным. Таким образом, согласно простой формуле разбиения матроида, количество наборов, необходимых для разбиения по крайней мере
- ,
поэтому в этом случае алгоритм может найти оптимальное разделение, поместив в свой новый независимый набор и оставив другие независимые наборы без изменений.[1][3]
Таким образом, общий алгоритм рассматривает каждый элемент данного матроида, в свою очередь, строит граф , тесты, какие узлы могут достигать , и использует эту информацию для обновления текущего раздела, чтобы он включал . На каждом шаге разбиение элементов, рассмотренных до сих пор, является оптимальным, поэтому, когда алгоритм завершится, он найдет оптимальное разбиение для всего матроида. Для доказательства правильности этого алгоритма требуется показать, что путь без кратчайших путей во вспомогательном графе всегда описывает последовательность операций, которая при одновременном выполнении правильно сохраняет независимость множеств в разбиении; Доказательство этого факта было дано Эдмондсом. Поскольку алгоритм увеличивает количество наборов в разбиении только тогда, когда формула разбиения матроида показывает, что необходимо большее число, правильность этого алгоритма также показывает правильность формулы.[1][3]
Хотя этот алгоритм зависит только от наличия оракул независимости для его правильности во многих случаях можно найти более быстрые алгоритмы, используя более специализированную структуру определенных типов матроидов (таких как графические матроиды ), на основании которого была определена конкретная проблема разбиения.[4]
Связанные проблемы
А сумма матроидов (где каждый является матроидом) сам является матроидом, имеющим в качестве элементов объединение элементов слагаемых. Множество является независимым в сумме, если его можно разбить на множества, независимые внутри каждого слагаемого. Алгоритм разбиения матроидов обобщает задачу проверки того, является ли набор независимым в сумме матроидов, и его правильность может использоваться для доказательства того, что сумма матроидов обязательно является матроидом.[3][4]
В пересечение матроидов задача поиска наибольшего независимого множества в двух матроидах и можно решить, превратив его в эквивалентную задачу о сумме матроидов: если является основой суммы , куда является двойником , тогда должен иметь полное звание в и удалив максимальный независимый набор из оставляет максимальное пересечение.[5]
Разбиение Matroid - это форма установить обложку проблема, и соответствующий набор упаковки Задача (найти максимальное количество непересекающихся остовных множеств внутри заданного матроида) также представляет интерес. Ее можно решить с помощью алгоритмов, аналогичных алгоритмам разбиения матроидов.[4] Дробная упаковка набора и задачи покрытия набора, связанные с матроидом (то есть, присвоить вес каждому независимому набору таким образом, чтобы для каждого элемента общий вес наборов, содержащих его, был не более одного или хотя бы одного, максимизируя или минимизация общего веса всех наборов соответственно) также может быть решена за полиномиальное время с использованием методов разбиения матроидов.[1]
Помимо использования при вычислении древовидности графа, разбиение матроидов можно использовать с другими матроидами для поиска подграфа данного графа, среднее значение которого степень является максимальной, а для определения прочности ребра графа (вариант графическая стойкость с удалением ребер вместо вершин).[1]
Рекомендации
- ^ а б c d е ж грамм час Шайнерман, Эдвард Р.; Ульман, Дэниел Х. (1997), "5. Дробное древовидность и методы матроидов", Теория дробных графов, Серия Wiley-Interscience по дискретной математике и оптимизации, Нью-Йорк: John Wiley & Sons Inc., стр. 99–126, ISBN 0-471-17864-0, МИСТЕР 1481157.
- ^ Нэш-Уильямс, К. Сент-Дж. А. (1964), «Разложение конечных графов на леса», Журнал Лондонского математического общества, 39 (1): 12, Дои:10.1112 / jlms / s1-39.1.12, МИСТЕР 0161333.
- ^ а б c d е ж Эдмондс, Джек (1965), «Минимальное разбиение матроида на независимые подмножества», Журнал исследований Национального бюро стандартов, 69B: 67–72, Дои:10.6028 / jres.069b.004, МИСТЕР 0190025.
- ^ а б c Габоу, Гарольд Н .; Вестерманн, Герберт Х. (1992), "Леса, фреймы и игры: алгоритмы для матроидных сумм и приложений", Алгоритмика, 7 (5–6): 465–497, Дои:10.1007 / BF01758774, МИСТЕР 1154585.
- ^ Эдмондс, Джек (1970), «Субмодульные функции, матроиды и некоторые многогранники», Комбинаторные структуры и их приложения (Proc. Calgary Internat. Conf., Calgary, Alta., 1969), New York: Gordon and Breach, pp. 69–87, МИСТЕР 0270945.