Метод построения компонент: различия между версиями
KEV (обсуждение | вклад) Нет описания правки |
KEV (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''Метод построения компонент''' (''[[Component design method]]'') | '''Метод построения компонент''' (''[[Component design method]]'') — | ||
один из трех общих методов доказательства, которые часто | один из трех общих методов доказательства, которые часто | ||
встречаются и могут подсказать путь к доказательству <math>{\mathcal | встречаются и могут подсказать путь к доказательству <math>{\mathcal | ||
NP}</math>-полноты новой задачи. Другие два | NP}</math>-полноты новой задачи. Другие два — это | ||
''[[метод локальной замены]]'' и ''[[метод сужения задачи]]''. | ''[[метод локальной замены]]'' и ''[[метод сужения задачи]]''. | ||
Является наиболее сложным из упомянутых выше методов | Является наиболее сложным из упомянутых выше методов | ||
Строка 14: | Строка 14: | ||
основных типов. Одни из них можно рассматривать как | основных типов. Одни из них можно рассматривать как | ||
компоненты, "делающие выбор" (например, выбирающие [[вершина|вершины]], | компоненты, "делающие выбор" (например, выбирающие [[вершина|вершины]], | ||
выбирающие значения истинности переменных), а другие | выбирающие значения истинности переменных), а другие — как | ||
компоненты, "проверяющие свойства" (например, проверяющие, | компоненты, "проверяющие свойства" (например, проверяющие, | ||
что каждое [[ребро]] покрыто или что каждая дизъюнкция | что каждое [[ребро]] покрыто или что каждая дизъюнкция | ||
Строка 33: | Строка 33: | ||
==См. также== | ==См. также== | ||
''[[Задача о вершинном покрытии]], [[Задача о выполнимости]], [[Задача о клике]], [[Задача о неэквивалентности регулярных выражений]], [[Задача о разбиении]], [[Задача о точном покрытии 3-множествами]], [[Задача о трехмерном сочетании]], [[Классы P и NP|Классы <math>\mathcal P</math> и <math>\mathcal NP</math>]], [[Полиномиальная сводимость (трансформируемость)]], [[NP-Полная задача|<math>\mathcal NP</math>-Полная задача]], [[Труднорешаемая задача]].'' | * ''[[Задача о вершинном покрытии]],'' | ||
* ''[[Задача о выполнимости]],'' | |||
* ''[[Задача о клике]],'' | |||
* ''[[Задача о неэквивалентности регулярных выражений]],'' | |||
* ''[[Задача о разбиении]],'' | |||
* ''[[Задача о точном покрытии 3-множествами]],'' | |||
* ''[[Задача о трехмерном сочетании]],'' | |||
* ''[[Классы P и NP|Классы <math>\mathcal P</math> и <math>\mathcal NP</math>]],'' | |||
* ''[[Полиномиальная сводимость (трансформируемость)]],'' | |||
* ''[[NP-Полная задача|<math>\mathcal NP</math>-Полная задача]],'' | |||
* ''[[Труднорешаемая задача]].'' | |||
==Литература== | ==Литература== | ||
* Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. — М.: Мир, 1982. | |||
* Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. — | |||
Новосибирск: НГУ, 1995. |
Текущая версия от 14:17, 11 мая 2011
Метод построения компонент (Component design method) — один из трех общих методов доказательства, которые часто встречаются и могут подсказать путь к доказательству [math]\displaystyle{ {\mathcal NP} }[/math]-полноты новой задачи. Другие два — это метод локальной замены и метод сужения задачи. Является наиболее сложным из упомянутых выше методов доказательства [math]\displaystyle{ {\mathcal NP} }[/math]-полноты.
Основная идея таких доказательств заключается в том, чтобы с помощью составных частей рассматриваемой задачи сконструировать некоторые "компоненты", соединяя которые можно "реализовать" индивидуальные задачи известной [math]\displaystyle{ {\mathcal NP} }[/math]-полной задачи. При этом можно выделить компоненты двух основных типов. Одни из них можно рассматривать как компоненты, "делающие выбор" (например, выбирающие вершины, выбирающие значения истинности переменных), а другие — как компоненты, "проверяющие свойства" (например, проверяющие, что каждое ребро покрыто или что каждая дизъюнкция выполнена).
В рассматриваемой индивидуальной задаче эти компоненты связаны так, что выбранные значения передаются компонентам, проверяющим условия, и последние проверяют, удовлетворяют ли сделанные выборы значений необходимым условиям.
Вообще говоря, любое доказательство можно считать основанным на методе построения компонент, если конструируемая в нем индивидуальная задача представляет собой набор компонент, каждая из которых выполняет определенные функции, формулируемые в терминах исходной задачи. Общая сводимость, использованная при доказательстве теоремы Кука о выполнимости булевых формул, является хорошим примером доказательств такого типа.
См. также
- Задача о вершинном покрытии,
- Задача о выполнимости,
- Задача о клике,
- Задача о неэквивалентности регулярных выражений,
- Задача о разбиении,
- Задача о точном покрытии 3-множествами,
- Задача о трехмерном сочетании,
- Классы [math]\displaystyle{ \mathcal P }[/math] и [math]\displaystyle{ \mathcal NP }[/math],
- Полиномиальная сводимость (трансформируемость),
- [math]\displaystyle{ \mathcal NP }[/math]-Полная задача,
- Труднорешаемая задача.
Литература
- Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. — М.: Мир, 1982.
- Касьянов В.Н. Лекции по теории формальных языков, автоматов и сложности вычислений. —
Новосибирск: НГУ, 1995.