Оценка сложности вычисления гиперобъема — различия между версиями
(→Эффективная аппроксимация нахождения гиперобъема) |
|||
Строка 61: | Строка 61: | ||
</ref> | </ref> | ||
используются три оракула PointQuery, VolumeQuery и SampleQuery, каждый из которых ошибается с вероятностью <tex>\epsilon_p, \epsilon_v</tex> и <tex>\epsilon_s</tex> соответственно. | используются три оракула PointQuery, VolumeQuery и SampleQuery, каждый из которых ошибается с вероятностью <tex>\epsilon_p, \epsilon_v</tex> и <tex>\epsilon_s</tex> соответственно. | ||
+ | |||
+ | M := 0; C := 0; | ||
+ | <tex> \overline \epsilon := \frac{\epsilon - \epsilon_v}{1+ \epsilon_v} </tex> | ||
+ | <tex> \overline C := \frac{(1+\epsilon_s)(1+\epsilon_v)(1+\epsilon_p)}{(1-\epsilon_v)(1-\epsilon_p)}</tex> | ||
+ | <tex> T := \frac{24 ln (2) (1 + \overline \epsilon) n}{\overline \epsilon^2 - 8 (\overline C - 1) n}</tex> | ||
+ | for all <tex>B_i \in S</tex> | ||
+ | compute <tex>V'_i</tex> := VolumeQuery(<tex>B_i</tex>) | ||
+ | od | ||
+ | <tex> V' := \sum \limits_(i = 1)^n V'_i</tex> | ||
+ | while <tex>C \leq T</tex> do | ||
+ | choose <tex>i \in [n] </tex> with probability <tex>\frac{V'_i}{V'}</tex> | ||
+ | x := SampleQuery(<tex>B_i</tex>) | ||
+ | repeat | ||
+ | if (C > T) then return <tex>\frac {TV'}{nM} </tex> | ||
+ | choose random <tex>j \in [n]</tex> uniformly | ||
+ | C := C + 1 | ||
+ | until PointQuery (x, <tex>B_j</tex>) | ||
+ | M := M + 1 | ||
+ | od | ||
+ | return <tex>\frac{TV'}{nM}</tex> | ||
== Примечания == | == Примечания == | ||
<references /> | <references /> |
Версия 12:51, 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, каждый из которых ошибается с вероятностью и соответственно.
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