### Tetra: starting on proper proof and algorithm for general case

parent aecb1d3a
 ... ... @@ -975,12 +975,12 @@ As before we align one of the simplices to the reference simplex with vertices a A vertex of $X$, $\vec{x}_i$, lies inside $Y$ only if $\vec{x}_i \cdot \vec{e}_\gamma \geq 0$ for all $\gamma$. It is also necessary that $1 - \vec{x}_i \cdot \vec{1} \geq 0$, where $\vec{1} = \sum \vec{e}_\gamma$. For the sake of notation we denote $\vec{x}_i \cdot \vec{e}_0 = 1 - \vec{x}_i \cdot \vec{1}$. For the sake of notation we denote $\vec{x} \cdot \vec{e}_0 = 1 - \vec{x} \cdot \vec{1}$. The $(ij)$--th edge of $X$ intersects an $(n-1)$--dimensional hyperplane of $Y$, defined as $P_\gamma = \Set{\vec{x} \in \bbr^n}{\vec{x} \cdot \vec{e}_\gamma = \delta_0}$ or $P_0 = \Set{\vec{x} \in \bbr}{\vec{x} \cdot \vec{1} = 1}$, if $\sign(\vec{x}_i \cdot \vec{e}_\gamma) \neq \sign(\vec{x}_j \cdot \vec{e}_\gamma)$. The $(ij)$--th edge of $X$ intersects an $(n-1)$--dimensional hyperplane of $Y$, defined as $P_\gamma = \Set{\vec{x} \in \bbr^n}{\vec{x} \cdot \vec{e}_\gamma = 0}$, if $\sign(\vec{x}_i \cdot \vec{e}_\gamma) \neq \sign(\vec{x}_j \cdot \vec{e}_\gamma)$. Proposition \ref{prop:tetra intersections} can be extended to this general dimension. \begin{prop} \begin{prop} \label{prop:gen} Let $X$ be an $n$--simplex intersecting an $(n-1)$--hyperplane $P$. At least $n$ edges of $X$ intersect $P$. At most $\lceil{(n+1)/2}\rceil \lfloor{(n+1)/2}\rfloor$ edges of $X$ intersect $P$. ... ... @@ -1007,6 +1007,9 @@ As it is assumed that $X$ intersects $P$ it must be that the number of edges tha \end{table} \end{proof} By Proposition \ref{prop:gen} the intersection between an $n$--simplex and an $(n-1)$--hyperplane is either an $(n-1)$--simplex embedded in an $(n-1)$--hyperplane or may be expressed as a triangulation of such simplices. By induction each step in the algorithm computes the intersection between two objects of appropriate dimension. Suppose we are $m$ steps through this algorithm and we are considering the intersection between the $(m-1)$--dimensional hyperplane defined by $m$ vertices of $X$ and the $(n-m)$--dimensional hyperplane defined by $m$ $(n-1)$--dimensional hyperplanes $P_\gamma$. \begin{lemma} ... ... @@ -1081,19 +1084,50 @@ That is, $\vec{h}(J | \Gamma)$ lies on $Y$ if and only if $\vec{h}(J | \Gamma) \ Only the sign of$\vec{h}(J | \Gamma) \cdot \vec{e}_0$is needed for this determination as the position of$\vec{h}(J | \Gamma)$is calculated via the other scalar products. \begin{cor} The numerator of$\vec{h}(J | \Gamma_i) \cdot \vec{e}_{\eta_i}$is shared with the numerators of$\vec{h}(J | \Gamma_j) \cdot \vec{e}_{\eta_j}$for$m$values of$j$, up to a change in sign, where$\Gamma_i$and$\Gamma_j$have cardinality$m$. The numerator of$\vec{h}(J | \Gamma) \cdot \vec{e}_{\eta}$is shared with the numerators of$\vec{h}(J | \Gamma_j) \cdot \vec{e}_{j}$for$m$values of$j$, up to a change in sign, where$\Gamma$and$\Gamma_j$have cardinality$m$. \end{cor} \begin{proof} For each$j \in \Gamma_i$define$\Gamma_j$as For each$j \in \Gamma$define$\Gamma_j$as \begin{equation*} \Gamma_j = \set{\eta} \cup \Gamma_i \setminus \set{j} . \Gamma_j = \set{\eta} \cup \Gamma \setminus \set{j} . \end{equation*} Since$\Gamma_i$has$m$elements there are$m$such$\Gamma_j$. Since$\Gamma$has$m$elements there are$m$such$\Gamma_j$. For each of these the numerator of$\vec{h}(J | \Gamma_j) \cdot \vec{e}_j$is the same up to an exchange of columns in the determinant. \end{proof} By this corollary, if there is a change in sign of$\vec{h}(J | \Gamma) \cdot \vec{e}_\eta$then the entire$m$--face of$X$defined by the indices$J$ends up on the other side of the$(n-m)$--face of$Y$defined by$\Gamma \cup \set{\eta}$. If the$J$--th$m$--face of$X$does not have$m+1$intersections then the signs of all existing intersections can be found using the intersections of the$(m-1)$--faces of$X$with indices that are subsets of$J$. \subsection{Algorithm for the intersection of n-dimensional simplices} Let$[a..b]$represent the set of integers between$a$and$b$. \begin{description} \item[Step 1: Change of coordinates.] Find an affine transformation such that the$n+1$vertices of$V$are mapped to the origin and$\vec{e}_j$for$j=1, \dots, n$. Use this transformation to map$U$to the simplex$X$. \item[Step 2: Vertices of$X$in$Y$.] Calculate and store the values of$p_{i,j}=\vec{e}_j \cdot \vec{x}_i$for$i,j=0,\dots, n$. If$p_{i,j}$is non-negative for all$j$then the$i$--th vertex of$X$lies in$Y$, and by extension the$i$--th vertex of$U$lies in$V$. \item[Step 3: Edges of$X$with planes of$Y$.] For each$j$compare all pairs of$p_{i,j}$. If$\sign(p_{i,j}) \neq \sign(p_{k,j})$then calculate$\vec{h}(\set{i,k} | \set{j}) \cdot \vec{e}_\gamma$for all$\gamma \neq j$. If this value is non-negative for all$\gamma$then the intersection$\vec{h}(\set{i,k} | \set{j})$lies on$Y$and forms part of the polyhedron of intersection$Z$. \item[Step m: Repeat$n-1$times.] For each pair$\vec{h}(J \setminus \set{i} | \Gamma) \cdot \vec{e}_\gamma$and$\vec{h}(J \setminus \set{k} | \Gamma) \cdot \vec{e}_\gamma$with different sign calculate$\vec{h}(J | \Gamma \cup \set{\gamma}) \cdot \vec{e}_\eta$for all$\eta \notin \Gamma \cup \set{\gamma}$. If it is positive for all such$\eta$then the intersection$\vec{h}(J | \Gamma \cup \set{\gamma})$lies on$Y$and forms part of$Z$. \item[Step end: Vertices of$Y$in$X$.] If$\vec{h}([0..n] \setminus \set{i} | [0..n] \setminus \set{\eta, \gamma}) \cdot \vec{e}_\gamma$has different sign than$\vec{h}([0..n] \setminus \set{k} | [0..n] \setminus \set{\eta,\gamma}) \cdot \vec{e}_\gamma$then the vertex of$Y$at$\vec{e}_\eta$lies inside$X$and is therefore a part of$Z$. If$\eta = 0$then the vertex at the origin lies inside$X\$. \end{description} \begin{thm} This algorithm is consistent. \end{thm} \begin{proof} Outline: \begin{itemize} \item Prove each step of the algorithm is self-consistent; \item Prove each step is consistent with the previous step; \item Induction. \end{itemize} \end{proof} \end{document} \ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment