Сложность задачи вычисления Least Hypervolume Contributor и задачи его аппроксимации — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
м (rollbackEdits.php mass rollback)
 
(не показано 18 промежуточных версий 5 участников)
Строка 1: Строка 1:
{{В разработке}}
+
Гиперобъем является индикатором Парето-фронта, набирающим в последнее время популярность<ref>[http://www.mpi-inf.mpg.de/~tfried/paper/2009GECCO.pdf Friedrich T., Horoba C., Neumann F. — Multiplicative Approximations and the Hypervolume Indicator (2009)]</ref><ref>[http://www.mpi-inf.mpg.de/~tfried/paper/2010GECCO_Hyp.pdf Friedrich T., Bringmann K. — The Maximum Hypervolume Set Yields Near-optimal Approximation (2010)]</ref>. Важной составляющей многих оптимизирующих алгоритмов, использующих индикатор гиперобъема, является вычисление вклада одного элемента Парето-фронта. К сожалению, даже вычисление минимального вклада (Minimal Contribution, MINCON) и нахождение соответствующего ему элемента (Least Contributor, LC) являются трудными задачами. Более того, даже аппроксимации этих задач являются NP-трудными<ref>[http://www.mpi-inf.mpg.de/~tfried/paper/2009EMO.pdf Bringmann K., Friedrich T. Approximating the least hypervolume contributor: NP-hard in general, but fast in practice (2009)]</ref>.
  
 
== Используемые обозначения ==
 
== Используемые обозначения ==
  
<tex>\mathrm{HYP}\left(M\right)</tex> -- гиперобъем множества <tex>M</tex>.
+
<tex>\mathrm{HYP}\left(M\right)</tex> гиперобъем множества <tex>M</tex>.
  
<tex>\mathrm{CON}(M, x) := \mathrm{HYP}(M) - \mathrm{HYP}(M \ x)</tex> -- вклад элемента <tex>x \in M</tex> в гиперобъем.
+
<tex>\mathrm{CON}(M, x) := \mathrm{HYP}(M) - \mathrm{HYP}(M \setminus x)</tex> вклад элемента <tex>x \in M</tex> в гиперобъем.
  
<tex>\mathrm{MINCON}(M) := \min \limits_{x \in M} \mathrm{CON}(M, x)</tex> -- минимальный вклад в гиперобъем множества.
+
<tex>\mathrm{MINCON}(M) := \min \limits_{x \in M} \mathrm{CON}(M, x)</tex> минимальный вклад в гиперобъем множества. Задача MINCON – задача нахождения <tex>\mathrm{MINCON}(M)</tex>.
  
<tex>\mathrm{LC}(M) := \mathrm{argmin}_{x \in M} \mathrm{CON}(M, x)</tex> -- least contributor, минимальный вкладчик, элемент, имеющей минимальный вклад в гиперобъем.
+
<tex>\mathrm{LC}(M) := \mathrm{argmin}_{x \in M} \mathrm{CON}(M, x)</tex> least contributor, минимальный вкладчик, элемент, имеющей минимальный вклад в гиперобъем. Задача LC – задача нахождения <tex>\mathrm{LC}(M)</tex>.
  
<tex>\varepsilon\text{-}\mathrm{LC}(M)</tex> -- элемент, имеющий вклад, отличающийся от минимального не более чем в <tex>1 + \varepsilon</tex> раз, то есть
+
<tex>\varepsilon\text{-}\mathrm{LC}(M)</tex> элемент, имеющий вклад, отличающийся от минимального не более, чем в <tex>1 + \varepsilon</tex> раз, то есть
<tex>\mathrm{CON}(M, \varepsilon\text{-}\mathrm{LC}(M)) \le (1 + \varepsilon)\mathrm{MINCON}(M)</tex>.
+
<tex>\mathrm{CON}(M, \varepsilon\text{-}\mathrm{LC}(M)) \le (1 + \varepsilon)\mathrm{MINCON}(M)</tex>. Задача <tex>\varepsilon</tex>-LC – задача нахождения <tex>\varepsilon\text{-}\mathrm{LC}(M)</tex>.
 +
 
 +
Все числа, за исключением <tex>\varepsilon</tex>, будем считать целыми.
  
 
== Сложность задачи MINCON ==
 
== Сложность задачи MINCON ==
Строка 19: Строка 21:
 
|statement=
 
|statement=
  
Задача MINCON является \#P-сложной, а задача аппроксимации с точностью до <tex>2^{d^{1 - \varepsilon}}</tex> является NP-сложной для любого <tex>\varepsilon > 0</tex>.
+
Задача MINCON является #P-трудной, а задача аппроксимации MINCON с точностью до <tex>2^{d^{1 - \varepsilon}}</tex> является NP-трудной для любого <tex>\varepsilon > 0</tex>.
  
 
|proof=
 
|proof=
  
Для доказательства теоремы сведем задачу \#MON-CNF к задаче MINCON.
+
Для доказательства теоремы сведем задачу #MON-CNF к задаче MINCON.
Про задачу \#MON-CNF известно, что она является \#P-сложной, а ее аппроксимация является NP-сложной.
+
Про задачу #MON-CNF известно, что она является #P-трудной, а ее аппроксимация является NP-трудной.
  
 
{{Определение
 
{{Определение
 
|definition=
 
|definition=
  
Задача #MON-CNF -- задача нахождения числа удовлетворяющих подстановок для монотонной булевой формулы, записанной в КНФ <tex>f = \bigwedge \limits_{k=1}^n \bigvee \limits_{i \in C_k} x_i</tex>,
+
Задача #MON-CNF задача нахождения числа удовлетворяющих подстановок для монотонной булевой функции, записанной в КНФ, <tex>f = \bigwedge \limits_{k=1}^n \bigvee \limits_{i \in C_k} x_i</tex>,
 
где клозы <tex> C_k \subseteq {\{1,...,d\}}</tex>.
 
где клозы <tex> C_k \subseteq {\{1,...,d\}}</tex>.
  
 
}}
 
}}
  
За <tex>\Box(a_1, \ldots, a_d)</tex> будем обозначать прямоугольный параллелипипед <tex>[0, a_1] \times \ldots \times [0, a_d]</tex>.
+
За <tex>\Box(a_1, \ldots, a_d)</tex> будем обозначать прямоугольный гиперпараллелепипед <tex>[0, a_1] \times \ldots \times [0, a_d]</tex>.
Пусть <tex>f = \bigwedge \limits_{k=1}^n \bigvee \limits_{i \in C_k} x_i</tex> -- монотонная булева формула в КНФ, <tex> C_k \subseteq {\{1,...,d\}}</tex>.
+
Пусть <tex>f = \bigwedge \limits_{k=1}^n \bigvee \limits_{i \in C_k} x_i</tex> монотонная булева функция в КНФ <tex> C_k \subseteq {\{1,...,d\}}</tex>.
 
+
Построим параллелепипеды <tex>A_k = \Box(a_1^k, \ldots, a_d^k, 2^d + 2) \subseteq \mathbb{R}^{d+1}</tex> для  каждого клоза формулы, при этом
Построим параллелипипеды <tex>A_k = \Box(a_1^k, \ldots, a_d^k, 2^d + 2) \subseteq \mathbb{R}^{d+1}</tex> для  каждого клоза формулы, при этом
 
  
 
<tex>a_i^k =
 
<tex>a_i^k =
Строка 46: Строка 47:
 
</tex>
 
</tex>
  
Также добавим параллелипипед <tex>B = \Box(2, \ldots, 2, 1) \subseteq \mathbb{R}^{d+1}</tex>. Таким образом множество <tex>M</tex> будет
+
Также добавим параллелепипед <tex>B = \Box(2, \ldots, 2, 1) \subseteq \mathbb{R}^{d+1}</tex>. Таким образом, множество <tex>M</tex> будет
состоять из <tex>n + 1</tex> элемента <tex>\{A_1, \ldots, A_n, B\}</tex>. Не умаляя общности будем считать, что ни один клоз не доминируется
+
состоять из <tex>n + 1</tex> элемента <tex>\{A_1, \ldots, A_n, B\}</tex>. Не умаляя общности, будем считать, что ни один клоз не доминируется
 
другим, то есть <tex>C_i \nsubseteq C_j</tex> для любых <tex>i \neq j</tex>.
 
другим, то есть <tex>C_i \nsubseteq C_j</tex> для любых <tex>i \neq j</tex>.
Для каждого <tex>A_k</tex> существуют <tex>x_i  = a_i^k - 1</tex> такие, что область <tex>[x_1, x_1 + 1] \times \ldots \times [x_d, x_d + 1] \times [1, 2^d + 2]</tex> уникально покрывается только
+
Для каждого <tex>A_k</tex> существуют такие <tex>x_i  = a_i^k - 1</tex>, что область <tex>[x_1, x_1 + 1] \times \ldots \times [x_d, x_d + 1] \times [1, 2^d + 2]</tex> уникально покрывается только
элементом <tex>A_k</tex>, что означается, что <tex>\mathrm{CON}(M, A_k) > 2^d</tex> для любого <tex>k</tex>. Так как объем <tex>B</tex> составляется лишь <tex>2^d</tex>, то
+
элементом <tex>A_k</tex>, что означается, что <tex>\mathrm{CON}(M, A_k) > 2^d</tex> для любого <tex>k</tex>. Так как объем <tex>B</tex> составляет лишь <tex>2^d</tex>, то
 
именно <tex>B</tex> будет являться минимальным вкладчиком.
 
именно <tex>B</tex> будет являться минимальным вкладчиком.
  
Представим <tex>B</tex> в виде набора кубиков  <tex>B_x = [x_1, x_1 + 1] \times \ldots \times [x_d, x_d + 1] \times [0, 1]</tex>, где <tex>x_i \in [0, 1]</tex>.
+
Представим <tex>B</tex> в виде набора кубиков  <tex>B_x = [x_1, x_1 + 1] \times \ldots \times [x_d, x_d + 1] \times [0, 1]</tex>, где <tex>x_i \in \{0, 1\}</tex>.
 
Чтобы <tex>B_x</tex> входил в <tex>\mathrm{CON}(M, B)</tex>, необходимо, чтобы <tex>B_x</tex> не входил в <tex>\bigcup \limits_{k = 1}^n A_k</tex>.
 
Чтобы <tex>B_x</tex> входил в <tex>\mathrm{CON}(M, B)</tex>, необходимо, чтобы <tex>B_x</tex> не входил в <tex>\bigcup \limits_{k = 1}^n A_k</tex>.
 
<tex>B_x</tex> входит в <tex>A_k</tex>, если для всех <tex>i \in \{1, \ldots, d\}</tex> выполнено <tex>x_i + 1 \le a_i^k</tex>, то есть <tex>a_i^k = 2</tex> для всех <tex>x_i = 1</tex>,
 
<tex>B_x</tex> входит в <tex>A_k</tex>, если для всех <tex>i \in \{1, \ldots, d\}</tex> выполнено <tex>x_i + 1 \le a_i^k</tex>, то есть <tex>a_i^k = 2</tex> для всех <tex>x_i = 1</tex>,
 
и <tex>i \notin C_k</tex>.  Получаем, что такой набор <tex>(x_1, \ldots, x_d)</tex> удовлетворяет <tex>\bigwedge \limits_{i \in C_k} \lnot x_i</tex> для какого-то <tex>k</tex>, то
 
и <tex>i \notin C_k</tex>.  Получаем, что такой набор <tex>(x_1, \ldots, x_d)</tex> удовлетворяет <tex>\bigwedge \limits_{i \in C_k} \lnot x_i</tex> для какого-то <tex>k</tex>, то
 
есть <tex>(x_1, \ldots, x_d)</tex> удовлетворяет <tex>\overline{f} = \bigvee \limits_{k=1}^n \bigwedge \limits_{i \in C_k} \lnot x_i</tex>.
 
есть <tex>(x_1, \ldots, x_d)</tex> удовлетворяет <tex>\overline{f} = \bigvee \limits_{k=1}^n \bigwedge \limits_{i \in C_k} \lnot x_i</tex>.
Таким образом <tex>B_x \subseteq \mathrm{CON}(M, B)</tex> тогда и только тогда, когда <tex>(x_1, \ldots, x_d)</tex> удовлетворяет <tex>f</tex>, то есть
+
Таким образом, <tex>B_x \subseteq \mathrm{CON}(M, B)</tex> тогда и только тогда, когда <tex>(x_1, \ldots, x_d)</tex> удовлетворяет <tex>f</tex>, то есть
 
<tex>\mathrm{MINCON}(M) = \mathrm{CON}(M, B) = \left\vert\left\{ \left(x_1, \ldots, x_d \right) \in \left\{0, 1\right\}^d | \left(x_1, \ldots, x_d \right) \text{ satisfies } f \right\}\right\vert</tex>.
 
<tex>\mathrm{MINCON}(M) = \mathrm{CON}(M, B) = \left\vert\left\{ \left(x_1, \ldots, x_d \right) \in \left\{0, 1\right\}^d | \left(x_1, \ldots, x_d \right) \text{ satisfies } f \right\}\right\vert</tex>.
  
Из-за сведения получаем, что задача MINCON является \#P-сложной, а ее аппроксимация является NP-сложной, даже когда минимальный вкладчик уже известен.
+
Из-за сведения получаем, что задача MINCON является #P-трудной, а ее аппроксимация является NP-трудной, даже когда минимальный вкладчик уже известен.
 
}}
 
}}
  
Строка 69: Строка 70:
 
|statement=
 
|statement=
  
Задача <tex>\varepsilon</tex>-LC является NP-сложной.
+
Задача <tex>\varepsilon</tex>-LC является NP-трудной.
  
 
|proof=
 
|proof=
  
Для докозательства этой теоремы сведем задачу MINCON к задаче <tex>\varepsilon</tex>-LC. Не умаляя общности будем считать, что <tex>d \ge 2</tex>, так как для
+
Для доказательства этой теоремы сведем задачу MINCON к задаче <tex>\varepsilon</tex>-LC. Не умаляя общности, будем считать, что <tex>d \ge 2</tex>, так как для
 
<tex>d = 1</tex> задача становится тривиальной. Также будем считать, что <tex>\mathrm{MINCON}(M) > 0</tex>.
 
<tex>d = 1</tex> задача становится тривиальной. Также будем считать, что <tex>\mathrm{MINCON}(M) > 0</tex>.
  
Пусть <tex>V</tex> -- размер обрамляющего прямоугольного параллелипипеда множества <tex>M</tex>. Очевидно, что <tex>V \le 2^{\text{input size}}</tex>.
+
Пусть <tex>V</tex> размер обрамляющего прямоугольного параллелепипеда множества <tex>M</tex>. Очевидно, что <tex>V \le 2^{\text{input size}}</tex>.
  
Определим новые, несколько модифицированные элементы множества:
+
Определим новое множество элементов:
  
 
<tex>A = \left\{\Box\left(a_1 + 2V, a_2, \ldots, a_d\right) | \left(a_1, \ldots, a_d\right) \in M\right\}</tex>,
 
<tex>A = \left\{\Box\left(a_1 + 2V, a_2, \ldots, a_d\right) | \left(a_1, \ldots, a_d\right) \in M\right\}</tex>,
Строка 88: Строка 89:
 
<tex>M_{\lambda} = A \cup \{B\} \cup \{ C_{\lambda} \}</tex>.
 
<tex>M_{\lambda} = A \cup \{B\} \cup \{ C_{\lambda} \}</tex>.
  
Исходные элементы были сдвинуты вдоль первой оси, поэтому вклад этих элементов не изминился, так как добавленная часть также покрывается новым элементом <tex>B</tex>.
+
Исходные элементы были сдвинуты вдоль первой оси, поэтому вклад этих элементов не изменился, так как добавленная часть покрывается новым элементом <tex>B</tex>.
 
Также отметим, что вклад каждого из элементов множества <tex>A</tex> не превышает <tex>V</tex>.
 
Также отметим, что вклад каждого из элементов множества <tex>A</tex> не превышает <tex>V</tex>.
  
 
Элемент <tex>B</tex> единственный, кто покрывает область <tex>[V, 2V] \times \ldots \times [V, 2V]</tex>, объем которой превышает <tex>V</tex>. Единственным кандидатом на
 
Элемент <tex>B</tex> единственный, кто покрывает область <tex>[V, 2V] \times \ldots \times [V, 2V]</tex>, объем которой превышает <tex>V</tex>. Единственным кандидатом на
должность минимального вкладчика, не присутствовавшим в начальном множестве, является элемент <tex>C_{\lambda}</tex>. Его вклад в точности соответствуем области
+
должность минимального вкладчика, не присутствовавшего в начальном множестве <tex>M</tex>, является элемент <tex>C_{\lambda}</tex>. Его вклад в точности соответствует области
 
<tex>[0, 1] \times \ldots \times [0, 1] \times [2V, 2V + \lambda]</tex>, объем которой равен <tex>\lambda</tex>.
 
<tex>[0, 1] \times \ldots \times [0, 1] \times [2V, 2V + \lambda]</tex>, объем которой равен <tex>\lambda</tex>.
Таким образом, элемент <tex>C_{\lambda}</tex> является минимальным вкладчиком только, если <tex>\lambda \le \mathrm{MINCON}(M)</tex>.
+
Таким образом, элемент <tex>C_{\lambda}</tex> является минимальным вкладчиком только при условии <tex>\lambda \le \mathrm{MINCON}(M)</tex>.
  
 
Так как умея решать задачу LC, мы можем проверять, является ли <tex>C_{\lambda}</tex> минимальным вкладчиком, можно
 
Так как умея решать задачу LC, мы можем проверять, является ли <tex>C_{\lambda}</tex> минимальным вкладчиком, можно
устроить двоичный поиск по велечине <tex>\lambda</tex>, чтобы найти <tex>\mathrm{MINCON}(M)</tex>, что
+
устроить двоичный поиск по величине <tex>\lambda</tex>, чтобы найти <tex>\mathrm{MINCON}(M)</tex>, что
потребует <tex>\kappa := \log_2(\lambda)</tex> шагов. Однако в случае <tex>\varepsilon</tex>-LC запросов
+
потребует <tex>O(\log(V))</tex> шагов. Однако в случае <tex>\varepsilon</tex>-LC запросов
обычный двоичный посик осуцществить не удается. Несмотря на появившуюся неточность, продолжим выполнять
+
обычный двоичный поиcк осуществить не удается. Несмотря на появившуюся неточность, продолжим выполнять
 
все шаги двоичного поиска как обычно.
 
все шаги двоичного поиска как обычно.
  
Использование <tex>\varepsilon</tex>-LC может привести двоичный поиск нетуда, но, так как мы имеем, что
+
Использование <tex>\varepsilon</tex>-LC может привести двоичный поиск не туда.
<tex>\mathrm{CON}(M, \varepsilon\text{-LC}(M)) \le (1 + \varepsilon) \mathrm{MINCON}(M)</tex>, то неправильный ответ
+
Будем искать только старший бит ответа, то есть положим <tex>\lambda = 2^{\kappa}</tex>, где <tex>\kappa</tex> – целое число.
 +
Так как мы имеем <tex>\mathrm{CON}(M, \varepsilon\text{-LC}(M)) \le (1 + \varepsilon) \mathrm{MINCON}(M)</tex>, то неправильный ответ
 
на запрос может выдаваться только при <tex>(1 + \varepsilon)^{-1}\mathrm{MINCON}(M) \le 2^{\kappa} \le (1 + \varepsilon)\mathrm{MINCON}(M)</tex>.
 
на запрос может выдаваться только при <tex>(1 + \varepsilon)^{-1}\mathrm{MINCON}(M) \le 2^{\kappa} \le (1 + \varepsilon)\mathrm{MINCON}(M)</tex>.
 
Вне этого интервала результат запроса всегда верен.
 
Вне этого интервала результат запроса всегда верен.
Используя такой двоичный поиск мы получим число <tex>\kappa</tex>, которое или попадает в указанный интервал, и тогда задача решена, или является
+
Используя такой двоичный поиск, мы получим число <tex>\kappa</tex>, которое или попадает в указанный интервал, и тогда задача решена, или является
максимальным целым числом меньшим <tex>(1 + \varepsilon)^{-1}\mathrm{MINCON}(M)</tex>.
+
максимальным целым числом, меньшим <tex>\log_2 \left((1 + \varepsilon)^{-1}\mathrm{MINCON}(M)\right)</tex>.
Таким образом <tex>\lambda = 2^{\kappa} \ge \mathrm{MINCON}(M) / (2(1 + \varepsilon))</tex>, то есть была получена <tex>2(1 + \varepsilon)</tex>
+
Таким образом, <tex>\lambda = 2^{\kappa} \ge \mathrm{MINCON}(M) / (2(1 + \varepsilon))</tex>, то есть была получена <tex>2(1 + \varepsilon)</tex> аппроксимация задачи MINCON.
аппроксимация задачи MINCON. NP-сложность задачи <tex>\varepsilon</tex>-LC доказана.
+
 
 +
Ранее было показано, что аппроксимация задачи MINCON является NP-трудной, таким образом, NP-трудность задачи <tex>\varepsilon</tex>-LC доказана.
 
}}
 
}}
  
== Источники ==
+
= Источники =
# Bringmann K., Friedrich T. Approximating the least hypervolume contributor: NP-hard in general, but fast in practice (2009)
+
<references />

Текущая версия на 19:19, 4 сентября 2022

Гиперобъем является индикатором Парето-фронта, набирающим в последнее время популярность[1][2]. Важной составляющей многих оптимизирующих алгоритмов, использующих индикатор гиперобъема, является вычисление вклада одного элемента Парето-фронта. К сожалению, даже вычисление минимального вклада (Minimal Contribution, MINCON) и нахождение соответствующего ему элемента (Least Contributor, LC) являются трудными задачами. Более того, даже аппроксимации этих задач являются NP-трудными[3].

Используемые обозначения

[math]\mathrm{HYP}\left(M\right)[/math] – гиперобъем множества [math]M[/math].

[math]\mathrm{CON}(M, x) := \mathrm{HYP}(M) - \mathrm{HYP}(M \setminus x)[/math] – вклад элемента [math]x \in M[/math] в гиперобъем.

[math]\mathrm{MINCON}(M) := \min \limits_{x \in M} \mathrm{CON}(M, x)[/math] – минимальный вклад в гиперобъем множества. Задача MINCON – задача нахождения [math]\mathrm{MINCON}(M)[/math].

[math]\mathrm{LC}(M) := \mathrm{argmin}_{x \in M} \mathrm{CON}(M, x)[/math] – least contributor, минимальный вкладчик, элемент, имеющей минимальный вклад в гиперобъем. Задача LC – задача нахождения [math]\mathrm{LC}(M)[/math].

[math]\varepsilon\text{-}\mathrm{LC}(M)[/math] – элемент, имеющий вклад, отличающийся от минимального не более, чем в [math]1 + \varepsilon[/math] раз, то есть [math]\mathrm{CON}(M, \varepsilon\text{-}\mathrm{LC}(M)) \le (1 + \varepsilon)\mathrm{MINCON}(M)[/math]. Задача [math]\varepsilon[/math]-LC – задача нахождения [math]\varepsilon\text{-}\mathrm{LC}(M)[/math].

Все числа, за исключением [math]\varepsilon[/math], будем считать целыми.

Сложность задачи MINCON

Теорема:
Задача MINCON является #P-трудной, а задача аппроксимации MINCON с точностью до [math]2^{d^{1 - \varepsilon}}[/math] является NP-трудной для любого [math]\varepsilon \gt 0[/math].
Доказательство:
[math]\triangleright[/math]

Для доказательства теоремы сведем задачу #MON-CNF к задаче MINCON. Про задачу #MON-CNF известно, что она является #P-трудной, а ее аппроксимация является NP-трудной.


Определение:
Задача #MON-CNF – задача нахождения числа удовлетворяющих подстановок для монотонной булевой функции, записанной в КНФ, [math]f = \bigwedge \limits_{k=1}^n \bigvee \limits_{i \in C_k} x_i[/math], где клозы [math] C_k \subseteq {\{1,...,d\}}[/math].


За [math]\Box(a_1, \ldots, a_d)[/math] будем обозначать прямоугольный гиперпараллелепипед [math][0, a_1] \times \ldots \times [0, a_d][/math]. Пусть [math]f = \bigwedge \limits_{k=1}^n \bigvee \limits_{i \in C_k} x_i[/math] – монотонная булева функция в КНФ [math] C_k \subseteq {\{1,...,d\}}[/math]. Построим параллелепипеды [math]A_k = \Box(a_1^k, \ldots, a_d^k, 2^d + 2) \subseteq \mathbb{R}^{d+1}[/math] для каждого клоза формулы, при этом

[math]a_i^k = \begin{cases} 1,~\text{if}~i \in C_k \\ 2,~\text{otherwise} \end{cases} [/math]

Также добавим параллелепипед [math]B = \Box(2, \ldots, 2, 1) \subseteq \mathbb{R}^{d+1}[/math]. Таким образом, множество [math]M[/math] будет состоять из [math]n + 1[/math] элемента [math]\{A_1, \ldots, A_n, B\}[/math]. Не умаляя общности, будем считать, что ни один клоз не доминируется другим, то есть [math]C_i \nsubseteq C_j[/math] для любых [math]i \neq j[/math]. Для каждого [math]A_k[/math] существуют такие [math]x_i = a_i^k - 1[/math], что область [math][x_1, x_1 + 1] \times \ldots \times [x_d, x_d + 1] \times [1, 2^d + 2][/math] уникально покрывается только элементом [math]A_k[/math], что означается, что [math]\mathrm{CON}(M, A_k) \gt 2^d[/math] для любого [math]k[/math]. Так как объем [math]B[/math] составляет лишь [math]2^d[/math], то именно [math]B[/math] будет являться минимальным вкладчиком.

Представим [math]B[/math] в виде набора кубиков [math]B_x = [x_1, x_1 + 1] \times \ldots \times [x_d, x_d + 1] \times [0, 1][/math], где [math]x_i \in \{0, 1\}[/math]. Чтобы [math]B_x[/math] входил в [math]\mathrm{CON}(M, B)[/math], необходимо, чтобы [math]B_x[/math] не входил в [math]\bigcup \limits_{k = 1}^n A_k[/math]. [math]B_x[/math] входит в [math]A_k[/math], если для всех [math]i \in \{1, \ldots, d\}[/math] выполнено [math]x_i + 1 \le a_i^k[/math], то есть [math]a_i^k = 2[/math] для всех [math]x_i = 1[/math], и [math]i \notin C_k[/math]. Получаем, что такой набор [math](x_1, \ldots, x_d)[/math] удовлетворяет [math]\bigwedge \limits_{i \in C_k} \lnot x_i[/math] для какого-то [math]k[/math], то есть [math](x_1, \ldots, x_d)[/math] удовлетворяет [math]\overline{f} = \bigvee \limits_{k=1}^n \bigwedge \limits_{i \in C_k} \lnot x_i[/math]. Таким образом, [math]B_x \subseteq \mathrm{CON}(M, B)[/math] тогда и только тогда, когда [math](x_1, \ldots, x_d)[/math] удовлетворяет [math]f[/math], то есть [math]\mathrm{MINCON}(M) = \mathrm{CON}(M, B) = \left\vert\left\{ \left(x_1, \ldots, x_d \right) \in \left\{0, 1\right\}^d | \left(x_1, \ldots, x_d \right) \text{ satisfies } f \right\}\right\vert[/math].

Из-за сведения получаем, что задача MINCON является #P-трудной, а ее аппроксимация является NP-трудной, даже когда минимальный вкладчик уже известен.
[math]\triangleleft[/math]

Сложность задачи [math]\varepsilon[/math]-LC

Теорема:
Задача [math]\varepsilon[/math]-LC является NP-трудной.
Доказательство:
[math]\triangleright[/math]

Для доказательства этой теоремы сведем задачу MINCON к задаче [math]\varepsilon[/math]-LC. Не умаляя общности, будем считать, что [math]d \ge 2[/math], так как для [math]d = 1[/math] задача становится тривиальной. Также будем считать, что [math]\mathrm{MINCON}(M) \gt 0[/math].

Пусть [math]V[/math] – размер обрамляющего прямоугольного параллелепипеда множества [math]M[/math]. Очевидно, что [math]V \le 2^{\text{input size}}[/math].

Определим новое множество элементов:

[math]A = \left\{\Box\left(a_1 + 2V, a_2, \ldots, a_d\right) | \left(a_1, \ldots, a_d\right) \in M\right\}[/math],

[math]B = \Box \left(2V, \ldots, 2V\right)[/math],

[math]C_{\lambda} = \Box \left(1, \ldots, 1, 2V + \lambda \right)[/math],

[math]M_{\lambda} = A \cup \{B\} \cup \{ C_{\lambda} \}[/math].

Исходные элементы были сдвинуты вдоль первой оси, поэтому вклад этих элементов не изменился, так как добавленная часть покрывается новым элементом [math]B[/math]. Также отметим, что вклад каждого из элементов множества [math]A[/math] не превышает [math]V[/math].

Элемент [math]B[/math] единственный, кто покрывает область [math][V, 2V] \times \ldots \times [V, 2V][/math], объем которой превышает [math]V[/math]. Единственным кандидатом на должность минимального вкладчика, не присутствовавшего в начальном множестве [math]M[/math], является элемент [math]C_{\lambda}[/math]. Его вклад в точности соответствует области [math][0, 1] \times \ldots \times [0, 1] \times [2V, 2V + \lambda][/math], объем которой равен [math]\lambda[/math]. Таким образом, элемент [math]C_{\lambda}[/math] является минимальным вкладчиком только при условии [math]\lambda \le \mathrm{MINCON}(M)[/math].

Так как умея решать задачу LC, мы можем проверять, является ли [math]C_{\lambda}[/math] минимальным вкладчиком, можно устроить двоичный поиск по величине [math]\lambda[/math], чтобы найти [math]\mathrm{MINCON}(M)[/math], что потребует [math]O(\log(V))[/math] шагов. Однако в случае [math]\varepsilon[/math]-LC запросов обычный двоичный поиcк осуществить не удается. Несмотря на появившуюся неточность, продолжим выполнять все шаги двоичного поиска как обычно.

Использование [math]\varepsilon[/math]-LC может привести двоичный поиск не туда. Будем искать только старший бит ответа, то есть положим [math]\lambda = 2^{\kappa}[/math], где [math]\kappa[/math] – целое число. Так как мы имеем [math]\mathrm{CON}(M, \varepsilon\text{-LC}(M)) \le (1 + \varepsilon) \mathrm{MINCON}(M)[/math], то неправильный ответ на запрос может выдаваться только при [math](1 + \varepsilon)^{-1}\mathrm{MINCON}(M) \le 2^{\kappa} \le (1 + \varepsilon)\mathrm{MINCON}(M)[/math]. Вне этого интервала результат запроса всегда верен. Используя такой двоичный поиск, мы получим число [math]\kappa[/math], которое или попадает в указанный интервал, и тогда задача решена, или является максимальным целым числом, меньшим [math]\log_2 \left((1 + \varepsilon)^{-1}\mathrm{MINCON}(M)\right)[/math]. Таким образом, [math]\lambda = 2^{\kappa} \ge \mathrm{MINCON}(M) / (2(1 + \varepsilon))[/math], то есть была получена [math]2(1 + \varepsilon)[/math] аппроксимация задачи MINCON.

Ранее было показано, что аппроксимация задачи MINCON является NP-трудной, таким образом, NP-трудность задачи [math]\varepsilon[/math]-LC доказана.
[math]\triangleleft[/math]

Источники