Полиномиальные сводимости и NP-полные задачи. Классы NP, coNP, NPC/Полнота/Vertex-3-Coloring

Стас Фомин

Постановка

Vertex Coloring

Задача о раскраске вершин графа. Можно ли вершины неориентированного графа раскрасить в k цветов, так, чтобы соседние вершины имели разные цвета?

Vertex-3-Coloring

Частный случай Vertex coloring для 3х цветов.

NP?

  •  ?
  • Что будет сертификатом?

NP!

Cертификат → собственно раскраска.

Кого сводим к ней?

  • 3ESAT
  • m дизъюнкций
  • n переменных.

Строим граф

3SAT-to-3Coloring.jpg
  • Три вершины → метки 0, 1, 2. → треугольник «a»
  • Для каждого литерала по вершине → 2n → «б» → лепестки из узла «2»
  • Для каждой дизъюнкции → 7 вершин → 7m → «в»
    • , , ← литералы из скобки
  • Итого → 3 + 2n + 7m вершин.

3Color → 3ESAT

3sat-to-3color.svg

3ESAT → 3Color

3sat-to-3color-2.svg