Jump to content

Взвешенный матроид

В комбинаторике , разделе математики , взвешенный матроид — это матроид, наделенный функцией, которая присваивает вес каждому элементу. Формально пусть быть матроидом, где E — множество элементов, а I — семейство независимых множеств. Взвешенный матроид имеет весовую функцию for присваивает строго положительный вес каждому элементу . Распространяем функцию на подмножества путем суммирования; это сумма над в .

Нахождение независимого множества максимального веса

[ редактировать ]

Основная проблема взвешенных матроидов — найти независимый набор с максимальным общим весом. Эту проблему можно решить с помощью следующего простого жадного алгоритма :

  • Инициализируйте набор A пустым набором. Обратите внимание, что по определению матроида A является независимым множеством.
  • Для каждого элемента x в E \ A проверьте, является ли Au{x} независимым множеством.
    • Если таких элементов нет, то остановитесь, так как A больше не может быть расширен.
    • Если есть хотя бы один такой элемент, то выберите тот, у которого максимальный вес, и добавьте его в A.

Этому алгоритму не нужно ничего знать о структуре матроида; ему просто нужен оракул независимости для матроида - подпрограмма для проверки того, является ли набор независимым.

Джек Эдмондс [1] доказал, что этот простой алгоритм действительно находит независимое множество с максимальным весом. Обозначим найденное алгоритмом множество через e 1 ,..., ek . Из свойств матроида ясно, что k=rank(M), иначе множество можно было бы расширить. Предположим от противного, что существует другое множество с большим весом. Без ограничения общности можно предположить, что это множество тоже имеет элементы ранга(М); обозначим его через f 1 ,...,f k . Упорядочите эти элементы так, чтобы w(f 1 ) ≥ ... ≥ w(f k ). Пусть j будет первым индексом, для которого w(f j ) > w(e j ). Примените свойство увеличения к наборам {f 1 ,...,f j } и {e 1 ,...,e j-1 }; мы заключаем, что должен существовать некоторый i ⩽ j такой, что f i можно было бы добавить к {e 1 ,...,e j-1 }, сохраняя при этом его независимость. Но w(fi ) ≥ w(f j ) > w(e j ), поэтому следовало выбрать fi на шаге j вместо e j - противоречие. [2]

Пример: алгоритмы охватывающего леса

[ редактировать ]

В качестве простого примера предположим, что мы хотим найти максимальный остовный лес графа. То есть, зная граф и вес каждого ребра, найдите лес, содержащий каждую вершину и максимизирующий общий вес ребер в дереве. Эта проблема возникает в некоторых приложениях кластеризации. Ее можно решить с помощью алгоритма Краскала , который можно рассматривать как частный случай описанного выше жадного алгоритма для графического матроида .

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

В поисках основы

[ редактировать ]

Существует простой алгоритм поиска основы:

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

В результате получается, очевидно, независимое множество. Это максимальное независимое множество, потому что если не является независимым для некоторого подмножества из , затем также не является независимым (противоположное следует из наследственного свойства ). Таким образом, если мы пропустим элемент, у нас никогда не будет возможности использовать его позже. Мы обобщим этот алгоритм для решения более сложной задачи.

Расширение до оптимального

[ редактировать ]

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

  • Первоначально пусть быть пустым множеством.
  • Для каждого в , взятые в (монотонном) порядке убывания веса
    • если независима, то положим к .

Этот алгоритм находит базис, поскольку является частным случаем приведенного выше алгоритма. Он всегда выбирает элемент наибольшего веса, который может, сохраняя при этом независимость (отсюда и термин «жадный»). Это всегда дает оптимальный набор: предположим, что он производит и это . Теперь для любого с , рассмотрим открытые множества и . С меньше, чем , есть какой-то элемент который можно положить в при этом результат по-прежнему остается независимым. Однако — элемент максимального веса, который можно добавить к для сохранения независимости. Таким образом имеет не меньший вес, чем некоторый элемент , и, следовательно, имеет по крайней мере большой вес, так как . Поскольку это верно для всех , тяжелее, чем .

Анализ сложности

[ редактировать ]

Самый простой способ обойти члены в желаемом порядке — отсортировать их. Это требует сравнения время с использованием алгоритма сортировки . Нам также необходимо протестировать каждый ли является независимым; предполагая, что тесты независимости требуют время, общее время работы алгоритма .

Если вместо этого мы хотим найти минимальное остовное дерево, мы просто «инвертируем» весовую функцию, вычитая ее из большой константы. Точнее, пусть , где превышает общий вес по всем ребрам графа. Этим тривиальным способом можно решить гораздо больше задач по оптимизации всех видов матроидов и весовых функций, хотя во многих случаях можно найти более эффективные алгоритмы, использующие более специализированные свойства.

Требование Матроида

[ редактировать ]

Заметим также, что если мы возьмем набор «независимых» множеств, которые являются даун-множествами, но не матроидами, то жадный алгоритм не всегда будет работать. Ибо тогда существуют независимые множества и с , но такой, что ни за что является независимый.

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

Характеристика

[ редактировать ]

Этот алгоритм оптимизации можно использовать для характеристики матроидов: если семейство F множеств, замкнутое относительно взятия подмножеств, обладает свойством, что независимо от того, как взвешены множества, жадный алгоритм находит в семействе множество с максимальным весом, то F должно быть семейством независимых множеств матроида. [3]

Обобщения

[ редактировать ]

Понятие матроида было обобщено, чтобы учесть другие типы множеств, на которых жадный алгоритм дает оптимальные решения; см. в разделе «Встраивание Greedoid и Maroid» дополнительную информацию . Корте и Ловас обобщили бы эти идеи на объекты, называемые жадными алгоритмами , которые позволяют решать еще более широкие классы задач с помощью жадных алгоритмов.

  1. ^ Эдмондс, Джек (1971). «Матроиды и жадный алгоритм» . Математическое программирование . 1 (1): 127–136. дои : 10.1007/BF01584082 .
  2. ^ Гретшель, Мартин ; Ловас, Ласло ; Шрийвер, Александр (1993). Геометрические алгоритмы и комбинаторная оптимизация . Алгоритмы и комбинаторика. Том 2 (Второе изд.). Шпрингер Верлаг, Берлин. п. 212. дои : 10.1007/978-3-642-78240-4 . ISBN  3-540-56740-2 . МР   1261419 .
  3. ^ Оксли, Джеймс Г. (1992). Теория Матроида . Оксфордские научные публикации. Оксфорд: Издательство Оксфордского университета . п. 64. ИСБН  0-19-853563-5 . Збл   0784.05002 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d61b5c6396388b461f539e6a6081d11c__1715031840
URL1:https://arc.ask3.ru/arc/aa/d6/1c/d61b5c6396388b461f539e6a6081d11c.html
Заголовок, (Title) документа по адресу, URL1:
Weighted matroid - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)