Commit 504513ff by Conor McCoid

### 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 ... @@ -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$. 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$. 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. 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$. Let $X$ be an $n$--simplex intersecting an $(n-1)$--hyperplane $P$. At least $n$ edges of $X$ intersect $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$. 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 ... @@ -1007,6 +1007,9 @@ As it is assumed that $X$ intersects $P$ it must be that the number of edges tha \end{table} \end{table} \end{proof} \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$. 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} \begin{lemma} ... @@ -1081,19 +1084,50 @@ That is, $\vec{h}(J | \Gamma)$ lies on $Y$ if and only if $\vec{h}(J | \Gamma) \ ... @@ -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. 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} \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} \end{cor} \begin{proof} \begin{proof} For each $j \in \Gamma_i$ define $\Gamma_j$ as For each $j \in \Gamma$ define $\Gamma_j$ as \begin{equation*} \begin{equation*} \Gamma_j = \set{\eta} \cup \Gamma_i \setminus \set{j} . \Gamma_j = \set{\eta} \cup \Gamma \setminus \set{j} . \end{equation*} \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. 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} \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}$. 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$. 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} \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!