Изменения

Перейти к: навигация, поиск

Конфигурация

30 байт добавлено, 08:39, 8 декабря 2011
м
скобки, например
__TOC__
== Общие определения(R^d) ==
{{Определение
|id=hyperplane
|definition =
'''Гиперплоскостью'''(англ. ''hyperplane'') в $\mathbb{R}^d$ называется его подпространство размерности $\mathbb{R}^{d - 1}$.
}}
|id=arrangement
|definition =
'''Конфигурацией'''(англ. ''arrangement'') $\mathcal{A}(\mathcal{H})$ называется разбиение $\mathbb{R}^d$ в связные открытые(топологически) ячейки размерностей $0, 1 \dots d $ множеством $\mathcal{H}$ гиперплоскостей в $ \mathbb{R}^d$.
}}
|id=cell
|definition =
'''Ячейкой'''(англ. ''cell'') размерности $d$ в $\mathcal{A}(\mathcal{H})$ называется максимальная связная область в $R^d$, не пересекаемая ни одной гиперплоскостью в $\mathcal{H}$. <br>
Ячейкой размерности $k$, где $0 \le k < d$ в $\mathcal{A}(\mathcal{H})$ называется максимальная связная область в пересечении гиперплоскостей подмножества $\mathcal{S} \in \mathcal{H}$, которая не пересекается ни одной гиперплоскостью из множества $\mathcal{H} \setminus \mathcal{S}$.
<br>
В случае ограниченных гиперплоскостей, ячейками соответствующих размерностей также считаются точки, отрезки(лучи), грани и прочие вплоть до размерности $k - 1$, $i$-мерные объекты, ограничивающие их.
}}
|id=primitives
|definition =
'''Вершина'''(англ. ''vertex'') — ячейка размерности 0. <br>'''Ребро'''(англ. ''edge'') — ячейка размерности 1. <br>'''Грань'''(англ. ''face'') — ячейка размерности 2. <br>'''Сторона'''(англ. ''facet'') — ячейка размерности d-1.
}}
В общем случае, не обязательно требовать, чтобы $\mathcal{S}$ было множеством гиперплоскостей. Накладывая некоторые ограничения на гиперповерхности, можно также добиться корректных конфигураций.
К примеру, в $\mathbb{R}^2$ вместо линий(гиперплоскости в $\mathbb{R}^2$) можно брать монотонные по x(то есть каждая параллельная оси y линия пересекает её не более, чем в 1 точке) Жордановы дуги(англ. ''x-monotonic Jordan arcs''), причём такие что максимально количество взаимопересечений каждой пары дуг такого множества — заранее фиксированная константа. Засчёт этого ограничения отсеиваются такие пары дуг как, например, $y = \sin(x)$ и $y = \cos(x)$. А вот пару дуг $y = \cos(x)$ и $y = x^2$ можно взять.
== Плоскость(R^2) ==
Разрешим ограничивать гиперплоскости — то есть введём лучи и отрезки. Тогда ячейками размерности 0 также считаются точки, ограничивающие их.
|definition=
Пусть $c_1$ - ячейка размерности $k_1$, а $c_2$ — ячейка размерности $k_2$ в конфигурации $\mathcal{A}(\mathcal{S})$. <br>
Если $k_2 = k_1 + 1$ и $c_1$ ограничивает $c_2$, то $c_1$ — '''подъячейка'''(англ. ''subcell'') $c_2$, а $c_2$ — '''надъячейка'''(англ. ''supercell'') $c_1$. <br>Если $c_1$ — подъячейка или надъячейка для $c_2$, то говорят что они '''смежны'''(англ. ''incident'').
}}
=== Граф смежности ===
'''Граф смежности'''(англ. ''incidence graph'') конфигурации $\mathcal{A}(\mathcal{S})$ — граф, в котором множество вершин состоит из всех ячеек(в том числе и ячейки размерности -1 и d+1), а ребро между вершинами существует если ячейки, им соответствующие, смежны. Для конфигурации $n$ гиперплоскостей в пространстве $\mathbb{R}^n$ оценкой на количество вершин является $O(n^d)$.
==== Пример ====
=== Скелет ===
'''Скелетом'''(англ. ''skeleton'') называется множество всех вершин и рёбер в конфигурации. Естественным образом он представляется в виде графа.
Он позволяет пройтись по всей конфигурации.
В качестве примера выделить второй и третий снизу слои графа из [[#Граф смежности | примера для графа смежности]].
=== РСДС(R^2) ===Заметим, что на плоскости можно выделить определённый порядок обхода рёбер и позже использовать эту информацию. Граф смежности же не учитывает порядок рёбер и направление. Для того, чтобы поддерживать этот порядок, используется '''рёберный список двойной связности''', '''РСДС'''(англ. ''doubly-connecned edge list'', ''DCEL'').
РСДС можно обобщить в ''cell-tuple structure'' для произвольной размерности. Она позволяет относительно просто представить информацию о смежности ячеек и порядке обхода конфигурации. Также для $\mathbb{R}^3$ существует похожая структура данных [http://en.wikipedia.org/wiki/Quad-edge_data_structure Quad-edge]
==== Представление ====
Для удобства каждое ребро разбивается на два ориентированных '''полуребра'''(''half-edges''). Каждое полуребро принадлежит только одной грани — той, которая окажется слева если идти по направлению полуребра(т.е. при обходе грани против часовой стрелки).
РСДС в общем случае содержит запись о каждой грани, полуребре и вершине конфигурации. Рассмотрим каждый список в отдельности:
# Список граней содержит данные о грани(например, номер) и указатель на произвольное полуребро, принадлежащее ей.# Список полурёбер содержит данные о полуребре, его близнеце(''twin edge'') — противоположном направленному полуребру(оно не всегда существует, если его нет, будем хранить null), следующем(''next'') и предыдущем(''previous'') полуребру в порядке обхода грани, указатели на вершины начала(''origin'') и конца(''destination'') и соответствующую ему грань.
# Список вершин содержит данные о вершине, её координаты и указатель на любое полуребро с началом в ней.

Навигация