2012-03-05 2 views
2

Я читал о том, как перестановочные графики делают много NP-полных проблем намного легче решить. Например, проблема максимальной клики, проблема ширины дерева и т. Д. Однако я не могу понять процесс создания графа перестановок из заданного графа G (V, E). Как бы это сделать?Построение графа перестановок

+2

Я думаю, вы немного ошибаетесь. Пермутационные графики - это конкретный экземпляр графов, которые некоторые проблемы, которые * обычно * NP-Hard, решаются специально на этих графах эффективно - подобно [двучастному графу] (http://en.wikipedia.org/wiki/ Bipartite_graph) [Хотя это разные графы, конечно]. Не каждый граф является перестановочным графом. И маловероятно, что вы можете полиномиально преобразовать любой граф в график перестановок - это сделает P = NP. – amit

+0

@amit вы должны написать это как ответ – alestanis

ответ

3

Вы не можете создать граф перестановок из графика, но из перестановки. Процесс довольно прост:

  1. номера записи 1 до п на линии, то
  2. записать их снова на отдельной параллельной линии в соответствии с порядком, в котором они появляются в вашей перестановки;
  3. подключить каждый элемент от первой строки к тому же элементу на второй строке (от 1 до 1, от 2 до 2, ..., от n до n),
  4. отметьте каждое такое соединение с номерами, которые он соединяет (например, соединение 2 - 2 принимает метку 2);
  5. полученный граф перестановки получается путем обработки каждого соединения в виде вершины и соединения двух вершин всякий раз, когда соответствующие соединения пересекаются.

Если это еще не ясно, see the nice example on Wikipedia.

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

Смежные вопросы