Если вы предполагаете, что ваш график плоский, то для этой задачи выборки существует процедура за полиномиальное время.
Во-первых, проблема подсчета числа совершенных совпадений в P для плоских графов. ( https://en.wikipedia.org/wiki/FKT_algorithm ) (Хорошее изложение этого факта можно найти в первой главе книги Джеррума «Подсчет, выборка и интеграция».)
еграммG ∖ eеграмм . Выберите границу в соответствии с этой вероятностью и продолжайте индуктивно.
(При этом используется тот факт, что сопоставления являются «самовосстанавливаемой» структурой, поэтому проблемы подсчета и проблемы равномерной выборки по сути одинаковы. Вы можете увидеть в JVV «Случайная генерация комбинаторных структур из равномерного распределения», чтобы узнать больше об этом точка зрения.)
Простое доказательство того, что это дает правильное распределение:
с ( H)ЧАСн !n = H/ 2
е1, … , ЕN
c ( G ∖ e1)с ( G )c ( G ∖ { e1, е2} )c ( G ∖ e1)… C ( G ∖ { e1, … , Еn - 1} )c ( G ∖ { e1, … , Еп - 2} ),
Обратите внимание, что c ( G ∖ { e1, … , Еn - 1} ) = 1, поскольку G ∖ { е1, … , Еn - 1} это просто край еN, Так что этот продукт телескопы и листья1 / с ( G ),