Transcript
Page 1: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгоритмы для NP-трудных задачЛекция 10: Точные и FPT-алгоритмы

А. Куликов

Computer Science клуб при ПОМИhttp://logic.pdmi.ras.ru/∼infclub/

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 1 / 28

Page 2: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 2 / 28

Page 3: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 2 / 28

Page 4: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 2 / 28

Page 5: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 3 / 28

Page 6: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений

Формула включений-исключений

Лемма

Пусть A — некоторое множество, f , g : 2A → R, т.ч.f (X ) =

∑︀Y⊆X g(Y ). Тогда

g(X ) =∑︁Y⊆X

(−1)|X−Y |f (Y ) .

Доказательство

∑︁Y⊆X

(−1)|X−Y |f (Y ) =∑︁Y⊆X

∑︁Z⊆Y

(−1)|X−Y |g(Z ) =

=∑︁Z⊆X

g(Z )∑︁

Z⊆Y⊆X

(−1)|X−Y | = g(X )

(последняя сумма равна 1, если Z = X , и нулю иначе).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 4 / 28

Page 7: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений

Формула включений-исключений

Лемма

Пусть A — некоторое множество, f , g : 2A → R, т.ч.f (X ) =

∑︀Y⊆X g(Y ). Тогда

g(X ) =∑︁Y⊆X

(−1)|X−Y |f (Y ) .

Доказательство

∑︁Y⊆X

(−1)|X−Y |f (Y ) =∑︁Y⊆X

∑︁Z⊆Y

(−1)|X−Y |g(Z ) =

=∑︁Z⊆X

g(Z )∑︁

Z⊆Y⊆X

(−1)|X−Y | = g(X )

(последняя сумма равна 1, если Z = X , и нулю иначе).А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 4 / 28

Page 8: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 5 / 28

Page 9: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли в данномграфе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.Для {s, t} ⊆ X ⊆ V обозначим через g(X ) количество путей (необязательно простых! путь может проходить по некоторымвершинам несколько раз, а по некоторым вообще не проходить)длины n − 1 из s в t, проходящих только по вершинам множестваX .Нетрудно видеть, что значение g(X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графа G [X ].

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 6 / 28

Page 10: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли в данномграфе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.

Для {s, t} ⊆ X ⊆ V обозначим через g(X ) количество путей (необязательно простых! путь может проходить по некоторымвершинам несколько раз, а по некоторым вообще не проходить)длины n − 1 из s в t, проходящих только по вершинам множестваX .Нетрудно видеть, что значение g(X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графа G [X ].

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 6 / 28

Page 11: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли в данномграфе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.Для {s, t} ⊆ X ⊆ V обозначим через g(X ) количество путей (необязательно простых! путь может проходить по некоторымвершинам несколько раз, а по некоторым вообще не проходить)длины n − 1 из s в t, проходящих только по вершинам множестваX .

Нетрудно видеть, что значение g(X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графа G [X ].

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 6 / 28

Page 12: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути

Формулировка задачи: необходимо проверить, есть ли в данномграфе простой путь, проходящий через все вершины,начинающийся в заданной вершине s и заканчивающийся взаданной вершине t.Для {s, t} ⊆ X ⊆ V обозначим через g(X ) количество путей (необязательно простых! путь может проходить по некоторымвершинам несколько раз, а по некоторым вообще не проходить)длины n − 1 из s в t, проходящих только по вершинам множестваX .Нетрудно видеть, что значение g(X ) содержится в строке s истолбце t матрицы An−1, где A — матрица смежности графа G [X ].

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 6 / 28

Page 13: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути (продолжение)

Пусть теперь f (X ) есть количество путей длины n − 1 из s в t,проходящих по всем вершинам множества X . В частности, f (V )есть количество гамильтоновых путей из s в t.Тогда

f (V ) =∑︁Y⊆V

(−1)|V−Y |g(Y ) .

Таким образом, количество гамильтоновых путей в графе можетбыть найдено за время O*(2n) и полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 7 / 28

Page 14: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути (продолжение)

Пусть теперь f (X ) есть количество путей длины n − 1 из s в t,проходящих по всем вершинам множества X . В частности, f (V )есть количество гамильтоновых путей из s в t.

Тогдаf (V ) =

∑︁Y⊆V

(−1)|V−Y |g(Y ) .

Таким образом, количество гамильтоновых путей в графе можетбыть найдено за время O*(2n) и полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 7 / 28

Page 15: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути (продолжение)

Пусть теперь f (X ) есть количество путей длины n − 1 из s в t,проходящих по всем вершинам множества X . В частности, f (V )есть количество гамильтоновых путей из s в t.Тогда

f (V ) =∑︁Y⊆V

(−1)|V−Y |g(Y ) .

Таким образом, количество гамильтоновых путей в графе можетбыть найдено за время O*(2n) и полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 7 / 28

Page 16: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о гамильтоновом пути

Задача о гамильтоновом пути (продолжение)

Пусть теперь f (X ) есть количество путей длины n − 1 из s в t,проходящих по всем вершинам множества X . В частности, f (V )есть количество гамильтоновых путей из s в t.Тогда

f (V ) =∑︁Y⊆V

(−1)|V−Y |g(Y ) .

Таким образом, количество гамильтоновых путей в графе можетбыть найдено за время O*(2n) и полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 7 / 28

Page 17: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 8 / 28

Page 18: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Задача о количестве совершенных паросочетаний

Совершенным паросочетанием (perfect matching) графаG = (V , E ) называется множество из n/2 ребер, содержащеекаждую вершину графа ровно один раз.Максимальное по размеру паросочетание в графе может бытьнайдено за полиномиальное время.Мы рассмотрим задачу нахождения количества совершенныхпаросочетаний графа. Наивный алгоритм требует времениO*(2m).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 9 / 28

Page 19: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Задача о количестве совершенных паросочетаний

Совершенным паросочетанием (perfect matching) графаG = (V , E ) называется множество из n/2 ребер, содержащеекаждую вершину графа ровно один раз.

Максимальное по размеру паросочетание в графе может бытьнайдено за полиномиальное время.Мы рассмотрим задачу нахождения количества совершенныхпаросочетаний графа. Наивный алгоритм требует времениO*(2m).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 9 / 28

Page 20: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Задача о количестве совершенных паросочетаний

Совершенным паросочетанием (perfect matching) графаG = (V , E ) называется множество из n/2 ребер, содержащеекаждую вершину графа ровно один раз.Максимальное по размеру паросочетание в графе может бытьнайдено за полиномиальное время.

Мы рассмотрим задачу нахождения количества совершенныхпаросочетаний графа. Наивный алгоритм требует времениO*(2m).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 9 / 28

Page 21: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Задача о количестве совершенных паросочетаний

Совершенным паросочетанием (perfect matching) графаG = (V , E ) называется множество из n/2 ребер, содержащеекаждую вершину графа ровно один раз.Максимальное по размеру паросочетание в графе может бытьнайдено за полиномиальное время.Мы рассмотрим задачу нахождения количества совершенныхпаросочетаний графа. Наивный алгоритм требует времениO*(2m).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 9 / 28

Page 22: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Алгоритм

Пусть f (Y ) есть количество способов покрыть все вершины Y ,используя ровно n/2 ребер.Тогда f (V ) — количество совершенных паросочетаний.Пусть теперь g(Y ) есть количество способов выбрать n/2 рёберграфа, все концы которых принадлежат множеству Y (но приэтом не обязательно покрывают все множество Y ).Поскольку для данного Y вычислить g(Y ) легко, получаемалгоритм, находящий за время O*(2n) количество совершенныхпаросочетаний в графе.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 10 / 28

Page 23: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Алгоритм

Пусть f (Y ) есть количество способов покрыть все вершины Y ,используя ровно n/2 ребер.

Тогда f (V ) — количество совершенных паросочетаний.Пусть теперь g(Y ) есть количество способов выбрать n/2 рёберграфа, все концы которых принадлежат множеству Y (но приэтом не обязательно покрывают все множество Y ).Поскольку для данного Y вычислить g(Y ) легко, получаемалгоритм, находящий за время O*(2n) количество совершенныхпаросочетаний в графе.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 10 / 28

Page 24: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Алгоритм

Пусть f (Y ) есть количество способов покрыть все вершины Y ,используя ровно n/2 ребер.Тогда f (V ) — количество совершенных паросочетаний.

Пусть теперь g(Y ) есть количество способов выбрать n/2 рёберграфа, все концы которых принадлежат множеству Y (но приэтом не обязательно покрывают все множество Y ).Поскольку для данного Y вычислить g(Y ) легко, получаемалгоритм, находящий за время O*(2n) количество совершенныхпаросочетаний в графе.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 10 / 28

Page 25: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Алгоритм

Пусть f (Y ) есть количество способов покрыть все вершины Y ,используя ровно n/2 ребер.Тогда f (V ) — количество совершенных паросочетаний.Пусть теперь g(Y ) есть количество способов выбрать n/2 рёберграфа, все концы которых принадлежат множеству Y (но приэтом не обязательно покрывают все множество Y ).

Поскольку для данного Y вычислить g(Y ) легко, получаемалгоритм, находящий за время O*(2n) количество совершенныхпаросочетаний в графе.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 10 / 28

Page 26: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Задача о количестве совершенных паросочетаний

Алгоритм

Пусть f (Y ) есть количество способов покрыть все вершины Y ,используя ровно n/2 ребер.Тогда f (V ) — количество совершенных паросочетаний.Пусть теперь g(Y ) есть количество способов выбрать n/2 рёберграфа, все концы которых принадлежат множеству Y (но приэтом не обязательно покрывают все множество Y ).Поскольку для данного Y вычислить g(Y ) легко, получаемалгоритм, находящий за время O*(2n) количество совершенныхпаросочетаний в графе.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 10 / 28

Page 27: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 11 / 28

Page 28: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

Задача о количестве совершенных паросочетаний вдвудольном графе

Для двудольных графов алгоритм можно ускорить.Пусть V = L ∪ R и |L| = |R| = n/2.Тогда для Y ⊆ R (а не Y ⊆ V ) определим g(Y ) как количествоспособов выбрать n/2 ребер, используя все вершиын L инекоторые вершины из Y .Время работы будет O*(2n/2).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 12 / 28

Page 29: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

Задача о количестве совершенных паросочетаний вдвудольном графе

Для двудольных графов алгоритм можно ускорить.

Пусть V = L ∪ R и |L| = |R| = n/2.Тогда для Y ⊆ R (а не Y ⊆ V ) определим g(Y ) как количествоспособов выбрать n/2 ребер, используя все вершиын L инекоторые вершины из Y .Время работы будет O*(2n/2).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 12 / 28

Page 30: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

Задача о количестве совершенных паросочетаний вдвудольном графе

Для двудольных графов алгоритм можно ускорить.Пусть V = L ∪ R и |L| = |R| = n/2.

Тогда для Y ⊆ R (а не Y ⊆ V ) определим g(Y ) как количествоспособов выбрать n/2 ребер, используя все вершиын L инекоторые вершины из Y .Время работы будет O*(2n/2).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 12 / 28

Page 31: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

Задача о количестве совершенных паросочетаний вдвудольном графе

Для двудольных графов алгоритм можно ускорить.Пусть V = L ∪ R и |L| = |R| = n/2.Тогда для Y ⊆ R (а не Y ⊆ V ) определим g(Y ) как количествоспособов выбрать n/2 ребер, используя все вершиын L инекоторые вершины из Y .

Время работы будет O*(2n/2).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 12 / 28

Page 32: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

Задача о количестве совершенных паросочетаний вдвудольном графе

Для двудольных графов алгоритм можно ускорить.Пусть V = L ∪ R и |L| = |R| = n/2.Тогда для Y ⊆ R (а не Y ⊆ V ) определим g(Y ) как количествоспособов выбрать n/2 ребер, используя все вершиын L инекоторые вершины из Y .Время работы будет O*(2n/2).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 12 / 28

Page 33: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Формула включений-исключений Случай двудольного графа

Пример

1 2 3 4 5 6 7 8 9 10 11 12X

{1}

{2}

{3}

{1, 3}

знак

+

+

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 13 / 28

Page 34: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 14 / 28

Page 35: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 15 / 28

Page 36: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Задача о сумме подмножества

Определение

Задача о сумме подмножества (subset-sum problem) заключается впроверке существования среди данных n натуральных чисел b1, . . . , bnтакого подмножества чисел, сумма которых равнялась бы заданномучислу B .

ЗамечаниеОчевидный перебор требует времени 2n.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 16 / 28

Page 37: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Задача о сумме подмножества

Определение

Задача о сумме подмножества (subset-sum problem) заключается впроверке существования среди данных n натуральных чисел b1, . . . , bnтакого подмножества чисел, сумма которых равнялась бы заданномучислу B .

ЗамечаниеОчевидный перебор требует времени 2n.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 16 / 28

Page 38: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 39: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.

Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 40: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.

Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 41: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 42: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 43: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).

Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 44: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.

Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 45: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задача о сумме подмножества

Лучший известный алгоритм

Алгоритм

Запишем в массив размера 2n/2 все возможные суммы чиселсреди {b1, . . . , bn/2}.Отсортируем полученный массив.Для каждого S ⊆ {bn/2+1, . . . , bn} проверим бинарным поискомналичие числа B − S в массиве.

Замечание

Время работы — O*(2n/2).Быстрее алгоритма неизвестно.Неизвестно и алгоритма, который бы работал быстрее чем 2n ииспользовал лишь полиномиальную память.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 17 / 28

Page 46: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 18 / 28

Page 47: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о табличной сумме

Определение

В задаче о табличной k-сумме (table-k sum problem) дана матрицаразмера k ×m натуральных чисел и число S и необходимо проверить,можно ли выбрать из каждой строки матрицы ровно по одному числутак, чтобы в сумме выбранные числа давали S .

Замечание

Очевидный перебор работает mk .В алгоритме выше мы использовали алгоритм, решающий задачуо табличной 2-сумме за время O(m log m).Этот же алгоритм можно использовать для решения задачи отабличной k-сумме за время O(m⌈k/2⌉ log m) и память O(m⌈k/2⌉).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 19 / 28

Page 48: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о табличной сумме

Определение

В задаче о табличной k-сумме (table-k sum problem) дана матрицаразмера k ×m натуральных чисел и число S и необходимо проверить,можно ли выбрать из каждой строки матрицы ровно по одному числутак, чтобы в сумме выбранные числа давали S .

Замечание

Очевидный перебор работает mk .В алгоритме выше мы использовали алгоритм, решающий задачуо табличной 2-сумме за время O(m log m).Этот же алгоритм можно использовать для решения задачи отабличной k-сумме за время O(m⌈k/2⌉ log m) и память O(m⌈k/2⌉).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 19 / 28

Page 49: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о табличной сумме

Определение

В задаче о табличной k-сумме (table-k sum problem) дана матрицаразмера k ×m натуральных чисел и число S и необходимо проверить,можно ли выбрать из каждой строки матрицы ровно по одному числутак, чтобы в сумме выбранные числа давали S .

Замечание

Очевидный перебор работает mk .

В алгоритме выше мы использовали алгоритм, решающий задачуо табличной 2-сумме за время O(m log m).Этот же алгоритм можно использовать для решения задачи отабличной k-сумме за время O(m⌈k/2⌉ log m) и память O(m⌈k/2⌉).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 19 / 28

Page 50: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о табличной сумме

Определение

В задаче о табличной k-сумме (table-k sum problem) дана матрицаразмера k ×m натуральных чисел и число S и необходимо проверить,можно ли выбрать из каждой строки матрицы ровно по одному числутак, чтобы в сумме выбранные числа давали S .

Замечание

Очевидный перебор работает mk .В алгоритме выше мы использовали алгоритм, решающий задачуо табличной 2-сумме за время O(m log m).

Этот же алгоритм можно использовать для решения задачи отабличной k-сумме за время O(m⌈k/2⌉ log m) и память O(m⌈k/2⌉).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 19 / 28

Page 51: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о табличной сумме

Определение

В задаче о табличной k-сумме (table-k sum problem) дана матрицаразмера k ×m натуральных чисел и число S и необходимо проверить,можно ли выбрать из каждой строки матрицы ровно по одному числутак, чтобы в сумме выбранные числа давали S .

Замечание

Очевидный перебор работает mk .В алгоритме выше мы использовали алгоритм, решающий задачуо табличной 2-сумме за время O(m log m).Этот же алгоритм можно использовать для решения задачи отабличной k-сумме за время O(m⌈k/2⌉ log m) и память O(m⌈k/2⌉).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 19 / 28

Page 52: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о 3-сумме

Определение

В задаче о k-сумме (k-sum problem) даны m натуральных чисел ичисло S и требуется проверить, можно ли из них выбрать k так, чтобыих сумма равнялась S .

ФактСуществует алгоритм, решающий задачу о 3-сумме за времяO(m2).Известно большое количество геометрических задач, для каждойиз которых лучший известный алгоритм работает квадратичноевремя и каждая из которых, содержит задачу о 3-сумме, какчастный случай, и этот частный случай интуитивнопредставляется самым трудным.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 20 / 28

Page 53: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о 3-сумме

Определение

В задаче о k-сумме (k-sum problem) даны m натуральных чисел ичисло S и требуется проверить, можно ли из них выбрать k так, чтобыих сумма равнялась S .

Факт

Существует алгоритм, решающий задачу о 3-сумме за времяO(m2).Известно большое количество геометрических задач, для каждойиз которых лучший известный алгоритм работает квадратичноевремя и каждая из которых, содержит задачу о 3-сумме, какчастный случай, и этот частный случай интуитивнопредставляется самым трудным.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 20 / 28

Page 54: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о 3-сумме

Определение

В задаче о k-сумме (k-sum problem) даны m натуральных чисел ичисло S и требуется проверить, можно ли из них выбрать k так, чтобыих сумма равнялась S .

ФактСуществует алгоритм, решающий задачу о 3-сумме за времяO(m2).

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

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 20 / 28

Page 55: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Задача о 3-сумме

Определение

В задаче о k-сумме (k-sum problem) даны m натуральных чисел ичисло S и требуется проверить, можно ли из них выбрать k так, чтобыих сумма равнялась S .

ФактСуществует алгоритм, решающий задачу о 3-сумме за времяO(m2).Известно большое количество геометрических задач, для каждойиз которых лучший известный алгоритм работает квадратичноевремя и каждая из которых, содержит задачу о 3-сумме, какчастный случай, и этот частный случай интуитивнопредставляется самым трудным.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 20 / 28

Page 56: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Пример геометрической задачи

Пусть даны m точек на плоскости и требуется проверить, лежатли какие-нибудь три из них на одной прямой.Пересечением прямой y = ax + b и кривой y = f (x) = x3 − Sx2

являются корни уравнения x3 − Sx2 − ax − b = 0.Значит, множество точек (a1, f (a1)), . . . , (am, f (am)) содержит триточки (ax , f (ax)), (ay , f (ay )), (az , f (az)) на одной прямой тогда итолько тогда, когда ax + ay + az = S .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 21 / 28

Page 57: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Пример геометрической задачи

Пусть даны m точек на плоскости и требуется проверить, лежатли какие-нибудь три из них на одной прямой.

Пересечением прямой y = ax + b и кривой y = f (x) = x3 − Sx2

являются корни уравнения x3 − Sx2 − ax − b = 0.Значит, множество точек (a1, f (a1)), . . . , (am, f (am)) содержит триточки (ax , f (ax)), (ay , f (ay )), (az , f (az)) на одной прямой тогда итолько тогда, когда ax + ay + az = S .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 21 / 28

Page 58: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Пример геометрической задачи

Пусть даны m точек на плоскости и требуется проверить, лежатли какие-нибудь три из них на одной прямой.Пересечением прямой y = ax + b и кривой y = f (x) = x3 − Sx2

являются корни уравнения x3 − Sx2 − ax − b = 0.

Значит, множество точек (a1, f (a1)), . . . , (am, f (am)) содержит триточки (ax , f (ax)), (ay , f (ay )), (az , f (az)) на одной прямой тогда итолько тогда, когда ax + ay + az = S .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 21 / 28

Page 59: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Сведение к простой задаче Задачи о k-сумме и табличной k-сумме

Пример геометрической задачи

Пусть даны m точек на плоскости и требуется проверить, лежатли какие-нибудь три из них на одной прямой.Пересечением прямой y = ax + b и кривой y = f (x) = x3 − Sx2

являются корни уравнения x3 − Sx2 − ax − b = 0.Значит, множество точек (a1, f (a1)), . . . , (am, f (am)) содержит триточки (ax , f (ax)), (ay , f (ay )), (az , f (az)) на одной прямой тогда итолько тогда, когда ax + ay + az = S .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 21 / 28

Page 60: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 22 / 28

Page 61: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

План лекции

1 Формула включений-исключенийЗадача о гамильтоновом путиЗадача о количестве совершенных паросочетанийЗадача о количестве совершенных паросочетаний в двудольномграфе

2 Сведение к простой задачеЗадача о сумме подмножестваЗадачи о k-сумме и табличной k-сумме

3 АлгебраизацияЗадача максимальной 2-выполнимости

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 23 / 28

Page 62: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Алгебраизация

Для набора значений переменным формулыt = (t1, . . . , tn) ∈ {0, 1}n обозначим через N(t) количествовыполненных клозов данной формулы в 2-КНФ.Пусть

G (w) =∑︁

t∈{0,1}nwN(t) .

Нас, таким образом, интересует степень этого многочлена.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 24 / 28

Page 63: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Алгебраизация

Для набора значений переменным формулыt = (t1, . . . , tn) ∈ {0, 1}n обозначим через N(t) количествовыполненных клозов данной формулы в 2-КНФ.

ПустьG (w) =

∑︁t∈{0,1}n

wN(t) .

Нас, таким образом, интересует степень этого многочлена.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 24 / 28

Page 64: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Алгебраизация

Для набора значений переменным формулыt = (t1, . . . , tn) ∈ {0, 1}n обозначим через N(t) количествовыполненных клозов данной формулы в 2-КНФ.Пусть

G (w) =∑︁

t∈{0,1}nwN(t) .

Нас, таким образом, интересует степень этого многочлена.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 24 / 28

Page 65: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Алгебраизация

Для набора значений переменным формулыt = (t1, . . . , tn) ∈ {0, 1}n обозначим через N(t) количествовыполненных клозов данной формулы в 2-КНФ.Пусть

G (w) =∑︁

t∈{0,1}nwN(t) .

Нас, таким образом, интересует степень этого многочлена.

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 24 / 28

Page 66: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Построение матриц

Разобьем переменные формулы на три часта A, B, C размера n/3.Для t = (a, b, c), где a, b, c ∈ {0, 1}n/3,

N(t) = NC (a, b) + NB(a, c) + NA(b, c) ,

где NC (a, b) есть количество клозов, которые не зависят отпеременных множества C и выполнены наборами a, b (оставшиесядва слагаемых определяются аналогично).Определим матрицы Nw

C , NwB , Nw

A размера 2n/3 × 2n/3 следующимобразом:

NwC (a, b) = wNC (a,b), Nw

B (b, c) = wNB(b,c), NwC (a, b) = wNC (a,b) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 25 / 28

Page 67: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Построение матриц

Разобьем переменные формулы на три часта A, B, C размера n/3.

Для t = (a, b, c), где a, b, c ∈ {0, 1}n/3,

N(t) = NC (a, b) + NB(a, c) + NA(b, c) ,

где NC (a, b) есть количество клозов, которые не зависят отпеременных множества C и выполнены наборами a, b (оставшиесядва слагаемых определяются аналогично).Определим матрицы Nw

C , NwB , Nw

A размера 2n/3 × 2n/3 следующимобразом:

NwC (a, b) = wNC (a,b), Nw

B (b, c) = wNB(b,c), NwC (a, b) = wNC (a,b) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 25 / 28

Page 68: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Построение матриц

Разобьем переменные формулы на три часта A, B, C размера n/3.Для t = (a, b, c), где a, b, c ∈ {0, 1}n/3,

N(t) = NC (a, b) + NB(a, c) + NA(b, c) ,

где NC (a, b) есть количество клозов, которые не зависят отпеременных множества C и выполнены наборами a, b (оставшиесядва слагаемых определяются аналогично).

Определим матрицы NwC , Nw

B , NwA размера 2n/3 × 2n/3 следующим

образом:

NwC (a, b) = wNC (a,b), Nw

B (b, c) = wNB(b,c), NwC (a, b) = wNC (a,b) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 25 / 28

Page 69: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Построение матриц

Разобьем переменные формулы на три часта A, B, C размера n/3.Для t = (a, b, c), где a, b, c ∈ {0, 1}n/3,

N(t) = NC (a, b) + NB(a, c) + NA(b, c) ,

где NC (a, b) есть количество клозов, которые не зависят отпеременных множества C и выполнены наборами a, b (оставшиесядва слагаемых определяются аналогично).Определим матрицы Nw

C , NwB , Nw

A размера 2n/3 × 2n/3 следующимобразом:

NwC (a, b) = wNC (a,b), Nw

B (b, c) = wNB(b,c), NwC (a, b) = wNC (a,b) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 25 / 28

Page 70: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Вычисление многочлена

G (w) =∑︁a,b,c

wNC (a,b)+NB(a,c)+NA(b,c) =

=∑︁a,b,c

wNC (a,b)wNB(a,c)wNA(b,c) =

=∑︁a,c

wNB(a,c)∑︁b

wNC (a,b)wNA(b,c) =

=∑︁a,c

NwB (a, c)(Nw

C NwA )(a, c) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 26 / 28

Page 71: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Вычисление многочлена

G (w) =∑︁a,b,c

wNC (a,b)+NB(a,c)+NA(b,c) =

=∑︁a,b,c

wNC (a,b)wNB(a,c)wNA(b,c) =

=∑︁a,c

wNB(a,c)∑︁b

wNC (a,b)wNA(b,c) =

=∑︁a,c

NwB (a, c)(Nw

C NwA )(a, c) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 26 / 28

Page 72: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Вычисление многочлена

G (w) =∑︁a,b,c

wNC (a,b)+NB(a,c)+NA(b,c) =

=∑︁a,b,c

wNC (a,b)wNB(a,c)wNA(b,c) =

=∑︁a,c

wNB(a,c)∑︁b

wNC (a,b)wNA(b,c) =

=∑︁a,c

NwB (a, c)(Nw

C NwA )(a, c) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 26 / 28

Page 73: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Вычисление многочлена

G (w) =∑︁a,b,c

wNC (a,b)+NB(a,c)+NA(b,c) =

=∑︁a,b,c

wNC (a,b)wNB(a,c)wNA(b,c) =

=∑︁a,c

wNB(a,c)∑︁b

wNC (a,b)wNA(b,c) =

=∑︁a,c

NwB (a, c)(Nw

C NwA )(a, c) .

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 26 / 28

Page 74: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Итог

Итак, полученный алгоритм требует времени O*2𝜔n/3 и O(22n/3)памяти (𝜔 ≈ 2.38 — экспонента умножения матриц).Это лучше полного перебора по времени, но гораздо хуже попамяти (time-space tradeoff).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 27 / 28

Page 75: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Итог

Итак, полученный алгоритм требует времени O*2𝜔n/3 и O(22n/3)памяти (𝜔 ≈ 2.38 — экспонента умножения матриц).

Это лучше полного перебора по времени, но гораздо хуже попамяти (time-space tradeoff).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 27 / 28

Page 76: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Итог

Итак, полученный алгоритм требует времени O*2𝜔n/3 и O(22n/3)памяти (𝜔 ≈ 2.38 — экспонента умножения матриц).Это лучше полного перебора по времени, но гораздо хуже попамяти (time-space tradeoff).

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 27 / 28

Page 77: Алгоритмы для NP-трудных задач, осень 2009: Точные и FPT-алгоритмы

Алгебраизация Задача максимальной 2-выполнимости

Спасибо за внимание!

А. Куликов (Computer Science клуб) 10. Точные и FPT-алгоритмы 28 / 28


Recommended