Оценка сложности вычисления гиперобъема — различия между версиями
(→Эффективная аппроксимация нахождения гиперобъема) |
|||
Строка 1: | Строка 1: | ||
[[Эволюционные алгоритмы многокритериальной оптимизации, основанные на индикаторах. Гиперобъем#Индикатор Гиперобъема| Определение гиперобъема]] | [[Эволюционные алгоритмы многокритериальной оптимизации, основанные на индикаторах. Гиперобъем#Индикатор Гиперобъема| Определение гиперобъема]] | ||
− | Утверждается, что точное вычисление значения гиперобъема | + | Утверждается, что точное вычисление значения гиперобъема множества из <tex>n</tex> точек <tex>d</tex>-мерного пространства является [http://en.wikipedia.org/wiki/Sharp-P #P-трудной задачей], однако допускает эффективную аппроксимацию, а именно может быть аппроксимировано за |
*полином от количества параметров, | *полином от количества параметров, | ||
*полином от количества решений, | *полином от количества решений, | ||
Строка 8: | Строка 8: | ||
== #P-трудность задачи вычисления гиперобъема == | == #P-трудность задачи вычисления гиперобъема == | ||
{{Определение | {{Определение | ||
− | |definition= | + | |definition=Задача #MON-CNF (Satisfability problem for monotone boolean formulas) --- задача вычисления количества удовлетворяющих подстановок для монотонной булевой формулы, записанной в [[КНФ]] <tex>f = \bigwedge \limits _{k=1}^n \bigvee_{i \in C_k} x_i</tex> |
где все дизъюнкты <tex> C_k \subseteq {1,...,d}</tex> | где все дизъюнкты <tex> C_k \subseteq {1,...,d}</tex> | ||
}} | }} | ||
{{Теорема | {{Теорема | ||
− | |statement= Задача вычисления гиперобъема принадлежит классу #P трудных задач | + | |statement= Задача вычисления гиперобъема принадлежит классу #P-трудных задач |
|proof= Суть доказательства состоит в сведении задачи #MON-CNF к задаче вычисления значения гиперобъема. Так как доказано | |proof= Суть доказательства состоит в сведении задачи #MON-CNF к задаче вычисления значения гиперобъема. Так как доказано | ||
<ref> | <ref> | ||
Строка 52: | Строка 52: | ||
Заметим, что так как <tex>\mu (B_{x_1,...,x_d}) = 1 \to \mu (\bigcup \limits _{k=1}^n) A_k = |\{(x_1,...,x_d) \in \{0,1\}^d| (x_1,...,x_d)</tex> удовлетворяет <tex>\overline{f} \}|</tex> | Заметим, что так как <tex>\mu (B_{x_1,...,x_d}) = 1 \to \mu (\bigcup \limits _{k=1}^n) A_k = |\{(x_1,...,x_d) \in \{0,1\}^d| (x_1,...,x_d)</tex> удовлетворяет <tex>\overline{f} \}|</tex> | ||
− | Таким образом произвели сведение, в значит задача вычисления гиперобъема принадлежит #P | + | Таким образом произвели сведение, в значит задача вычисления гиперобъема принадлежит классу #P |
}} | }} | ||
− | ==Эффективная аппроксимация нахождения гиперобъема== | + | ==Эффективная аппроксимация нахождения значения гиперобъема== |
Приведем псевдокод алгоритма для аппроксимации гиперобъема. В алгоритме, приведенном в | Приведем псевдокод алгоритма для аппроксимации гиперобъема. В алгоритме, приведенном в | ||
<ref> | <ref> |
Версия 14:32, 20 июня 2012
Утверждается, что точное вычисление значения гиперобъема множества из #P-трудной задачей, однако допускает эффективную аппроксимацию, а именно может быть аппроксимировано за
точек -мерного пространства является- полином от количества параметров,
- полином от количества решений,
- полином от качества аппроксимации.
#P-трудность задачи вычисления гиперобъема
Определение: |
Задача #MON-CNF (Satisfability problem for monotone boolean formulas) --- задача вычисления количества удовлетворяющих подстановок для монотонной булевой формулы, записанной в КНФ где все дизъюнкты |
Теорема: |
Задача вычисления гиперобъема принадлежит классу #P-трудных задач |
Доказательство: |
Суть доказательства состоит в сведении задачи #MON-CNF к задаче вычисления значения гиперобъема. Так как доказано [1] , что #MON-CNF является #P-трудной, то это докажет теорему. Количество удовлетворяющих подстановок функции меньше на количество удовлетворяющих подстановок ее отрицания . Для упрощения вычислений далее будем работать с .Для каждого конъюнкта построим соответствующий ему гиперкубгде . Рассмотрим теперь . Заметим, что так как все вершины гиперкубов лежат в точках с целочисленными координатами 0,1 или 2, то и можно разбить на гиперкубы вида , где (то есть на гиперкубики со сторонами 1 с координатами ближайшей к началу координат вершины 0 или 1).Более того, из-за целочисленности вершин , каждый из этих гиперкубиков лежит в хотя бы одном из
А значит из определения
удовлетворяет для некоторого удовлетворяет Заметим, что так как Таким образом произвели сведение, в значит задача вычисления гиперобъема принадлежит классу #P удовлетворяет |
Эффективная аппроксимация нахождения значения гиперобъема
Приведем псевдокод алгоритма для аппроксимации гиперобъема. В алгоритме, приведенном в [2] используются три оракула: PointQuery, VolumeQuery и SampleQuery, каждый из которых ошибается с вероятностью и соответственно.
Оракул VolumeQuery возвращает объем заданного тела
.SampleQuery(B) для заданного тела
возвращает произвольную его точку .PointQuery(x,B) возвращает true, если точка
лежит внутри .Для данного алгоритма допускаются следующие ослабления этих оракулов:
- PointQuery (x,B) возвращает true для всех точек из некоторого тела
- VolumeQuery(B) возвращает значение
- SampleQuery(B) возвращает произвольную точку из тела
M := 0; C := 0;for all compute := VolumeQuery( ) od while do choose with probability x := SampleQuery( ) repeat if (C > T) then return choose random uniformly C := C + 1 until PointQuery (x, ) M := M + 1 od return
Примечания
- ↑ D. Roth. On the hardness of approximate reasoning. Artif. Intell., 82: 273–302, 1996, http://cogcomp.cs.illinois.edu/papers/hardJ.pdf
- ↑ Karl Bringmann, Tobias Friedrich, Approximating the volume of unions and intersections of high-dimensional geometric objects, ISAAC'2008, http://www.mpi-inf.mpg.de/~kbringma/paper/2008ISAAC_Volume.pdf