Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
А-80 доп вопросы Бондарева.doc
Скачиваний:
5
Добавлен:
25.09.2019
Размер:
229.89 Кб
Скачать
  1. Как формулируется задача о выполнимости кнф?

найти набор Xn, при к-м КНФ=1

дана конъюнктивная нормальная форма, требуется определить, существует ли набор значений переменных x1, x2, …, xn, при котором значение КНФ равно 1..

  1. Каков смысл каждого из 6 типов условий, накладываемых на нмт в доказательстве теоремы Кука?

1. На любом такте работы НМТ находится ровно в одном состоянии.

2. На любом такте работы головка НМТ находится ровно в одной позиции ленты.

3. На любом такте работы каждая ячейка ленты содержит ровно одну букву ленточного алфавита.

4. На такте i = 0 НМТ находится в состоянии q0, головка на ячейке 1, на ленте записано описание решаемой индивидуальной задачи.

5. Не позднее, чем через P(l) тактов НМТ приходит в состояние qy (принимает задачу).

6. Все изменения конфигурации НМТ между тактами i и i+1 происходят в соответствии с правилами перехода данной НМТ.

  1. Каков смысл этих условий в совокупности?

Условия накладываются, чтобы выделить допустимые вычисления НМТ (избежать некорректности вычисления).

  1. Какую практическую пользу может принести доказательство np-полноты конкретной задачи?

Если мы докажем NP-полноту конкретной задачи, то не надо будет тратить время на создание полиномиального алгоритма ее решения, т.к. его пока не существует.

Если для одной (любой) из этих задач будет найден полиномиальный алгоритм решения, то тогда любую NP-задачу можно будет решить за полиномиальное время тогда классы P и NP полностью совпадают

  1. Как доказывается np-полнота конкретных задач?

Путем сводимости к уже доказанным

Легче доказывать, когда доказана NP-полнота хотя бы одной задачи.

Насколько реально доказать для какой-нибудь конкретной задачи, что она является NP-полной или NP-трудной? Кажется безнадежным делом доказывать полиномиальную сводимость всех NP-задач к одной конкретной. Отметим однако, что дело облегчается, если каким-то образом доказана NP-полнота хотя бы одной задачи. Пусть имеется одна доказанно NP-полная задача Z1. Чтобы доказать NP-полноту задачи Z2, достаточно сделать две вещи: во-первых, показать, что Z2  NP (это обычно несложно), и во-вторых, суметь построить полиномиальное сведение Z1  Z2 (а не Z2  Z1, обратите внимание на направление!) Тогда получается, что любая NP-задача Z полиномиально сводится к Z2 через Z1.

  1. Сформулируйте задачу «3-выполнимость».

Дана КНФ(х1х2х3), каждая дизъюнкция содержит 3 члена. Есть ли набор, при котором КНФ=1

Дана КНФ от переменных x1, x2, ... xn, но при этом каждая элементарная дизъюнкция содержит ровно три члена. Требуется определить, существует ли набор значений переменных, при котором КНФ равна 1.

  1. В чем идея доказательства NP-полноты задачи «3-выполнимость»?

Частный случай задачи о выполнимости, которая полиномиально сводима к 3-выполнимости

Очевидно, что данная задача принадлежит NP, т.к. она представляет собой частный случай задачи ВЫП. Чтобы доказать NP-полноту, следует показать, что задачу ВЫП можно полиномиально свести к 3-ВЫП.

Нам удалось свести задачу ВЫП к задаче 3-ВЫП.

  1. Сформулируйте задачу о вершинном покрытии графа.

Дан неориентированный граф G = (V, E) с множеством вершин V и множеством ребер E. Дано натуральное число K. Вершинным покрытием графа называется подмножество вершин V¢ Í V, такое, что любое ребро графа инцидентно хотя бы одной вершине из V¢. Требуется определить, существует ли вершинное покрытие графа G мощности £ K.

  1. В чем идея доказательства NP-полноты задачи о вершинном покрытии?

К ней сводится задача 3-вып.

Для доказательства NP-полноты задачи ВП покажем, что к ней сводится задача 3 ВЫП

  1. Из каких частей состоит граф, строящийся в этом доказательстве?

1. Для каждой переменной xi построим подграф из двух вершин, соединенных ребром. Пометим вершины символами xi и`xi.

2. Для каждой дизъюнкции ak построим подграф-треугольник, пометив его вершины символами ak1, ak2 и ak3.

3. Соединим каждую вершину каждого треугольника с вершиной, помеченной соответствующей переменной. Например, поскольку вторым символом первой дизъюнкции является `x3, следует соединить ребром вершины a12 и `x3. Эту группу ребер будем называть соединяющими ребрами.