text:
# (Dis)proving isomorphism between $U= \{ z \in \Bbb C \mid |z| = 1 \}$ and $\Bbb R$

I'm beginning to work through A first course in Abstract Algebra by Fraleigh and Katz. In Chapter 1, Section 4 (Groups), there is the following question:

Let $U$ be a set such that $U= \{ z \in \Bbb C \mid |z| = 1 \}$. Show that the group $\langle U, \cdot \rangle$ is not isomorphic to either $\langle \Bbb R,+ \rangle$ or $\langle \Bbb R^*, \cdot \rangle$. (All groups have a cardinality of $|\Bbb R|$.)

I've done a few problems showing that there does exist an isomorphism between groups, but none that show there doesn't exist one. From the text, I understand that I need to try to identify some structural difference between the groups. I can identify one right off the bat: for all $x \in U$, there exists some $c \in U$ such that $x \cdot x = c$. However, for $\Bbb R^*$, this isn't the case, as $x \cdot x = -1$ has no solution. This shows that the two groups are not isomorphic. I'm struggling, however, to show that $\langle U, \cdot \rangle$ is not isomorphic to $\langle \Bbb R,+ \rangle$. For all $c \in \Bbb R$, we can define $x$ to be $\frac c 2$, so $x + x = c$ always has a solution. This shows that there is no isomorphism between $\langle \Bbb R,+ \rangle$ and $\langle \Bbb R^*, \cdot \rangle$ but doesn't help with $\langle U, \cdot \rangle$. Both groups have the same cardinality and are abelian, so we can't use order or commutativity to disprove isomorphism.

On the contrary, I feel like we can define an isomorphism $\phi$: $\langle \Bbb R,+ \rangle \to \langle U, \cdot \rangle$ as $\phi (n) = \zeta^n$, where $\zeta^n$ is the $n^{th}$ root of unity. This has the principle of homomorphism because $\phi (n + m) = \zeta^{n+m} = \zeta^n \zeta^m = \phi(n) \cdot \phi(m)$. Also, since each group has the same cardinality and we know that for every distinct $n \in \Bbb R$ we have a distinct $\zeta^n \in U$, then $\phi$ is bijective. Since it is both bijective and homomorphic, $\phi$ is isomorphic.

I'm sure that my proof is incorrect somewhere but I'm not experienced enough in writing proofs to identify the error, nor can I think of some difference in binary structure between the groups that disproves isomorphism. Any assistance (both in finding my error and helping me solve the problem) would be greatly appreciated.

• In $U$ you have an element $i\neq 1$ such that $i^4=1$ and $i^2\neq 1$. But in $\mathbb{R}$ with $+$ adding a non-zero element to itself many times never gives $0$. The same happens in $\mathbb{R}^*$. Multiplying an element that is not $1$ to itself many times doesn't give you $1$ until the $4$-th time. Jan 12 '18 at 20:21
• This is definitely outside my expertise, but I’m still curious: what is $\Bbb{R}^*$? Jan 13 '18 at 0:09

In $U$ there is an element of order $4$ (that is, $i$). None of the other two groups has an element of order $4$.

• Thanks, this convinces me that there doesn't exist an isomorphism between the groups, but I still don't understand what the error in my proof is. If you find time to add something about why my proposed isomorphism is invalid, I'd be happy to accept this answer. Jan 12 '18 at 20:54
• Not even sure where to start, it is quite broken, actually... First: how do you even define your isomorphism? At some points in your proof it seems that $\zeta$ depends on $n$, in others it seems that $\zeta$ is chosen independently of any $n$. Also, you mention "roots of unity" - how do you define e.g. $\pi$'th root of unity? (Note: $n\in\mathbb R$). Finally, you merely claim that $\phi$ is injective - I don't see the proof, and subject to other constraints I cannot imagine you can have any.
– user491874
Jan 12 '18 at 21:08
• I suspect, after clearing up all the previous doubts, you will still be basically claiming that $\phi(n)=\zeta^n$, but if $\zeta$ is the $n$th root of unity in any conceivable sense, then $\zeta^n=1$, so $\phi=1$ - a trivial homomorphism which is not isomorphism. So, sorry but I cannot make a whole lot of sense of your proof otherwise.
– user491874
Jan 12 '18 at 21:10
• @kanderson8 I am putting this into comments, but if you can clarify your proof and I have something valuable to add, I will update the actual answer.
– user491874
Jan 12 '18 at 21:12
• @kanderson8 Oh, I forgot, the argument about cardinality does not work for infinite sets... You can have two sets of the same cardinality, one properly contained in the other one (e.g. even integers as a proper subset of all integers).
– user491874
Jan 12 '18 at 21:15

First, here's an easy way to see $(\mathbb{R}, +)$ and $(U,\cdot)$ are not isomorphic. Every nonzero element of $\mathbb{R}$ has infinite order, but $U$ has many nonzero elements of finite order: consider $-1$ or any root of unity. (Similarly, $U$ has $2$ elements of order $3$, while $\mathbb{R}^*$ has none.)

One problem with your proposed proof is that, contrary to your claim, $\phi$ is not a homomorphism, since the product of an $n^\text{th}$ and $m^\text{th}$ root of unity need not be an $(n+m)^\text{th}$ root of unity. For example, consider $n = 2$ and $m = 4$. Then $\zeta_2 = -1$, $\zeta_4 = i$, but $\zeta_2 \zeta_4 = -i$ is not a sixth root of unity since $(-i)^6 = -1$. In fact, $\zeta_n \zeta_m = \zeta_{\text{lcm}(m,n)}$ when $m$ and $n$ are positive integers. (I should also add that I think most people consider it very bad practice to write $n$ for a real number that need not be an integer!)

It's also not clear what you mean by an $r^\text{th}$ root of unity when $r$ is not a positive integer. Is it just any element $u \in U$ such that $u^r = 1$? Even for a positive integer $n$, there are $n$ $n^\text{th}$ roots of unity, namely $e^{2 \pi i k/n}$ for $k \in \{0, \ldots, n-1\}$. Or maybe you mean $\zeta_r = e^{2 \pi i/r}$? In that case, it's even clearer that the map is not a homomorphism, since that would mean $e^{2 \pi i/r} e^{2 \pi i/s} = e^{2 \pi i/(r+s)}$. It's also not injective, since $e^{2 \pi i/1} = 1 = e^{2 \pi i/-1}$.

I hope this has helped point out the problems with the definition of your map.


text:
# MTW wrong ?

1. Nov 27, 2006

### dextercioby

Here's something for the phone book's fans to chew on:

Surprisingly, on page #1278, in the index entry "Torsion", the 3 authors claim that "(torsion) not present in affine connection if equivalence principle is valid" and hint further to page #250 where they don't debate on it. :surprised

However, this assertion is terribly wrong, as Milutin Blagoevic' quoting [1] on page #66 of his book ("Gravitation and gauge symmetries") states after proving.

Surely, they wrote the book 3 years before the proof, but anyways, how could they do that ? :surprised They were already aware of both Cartan's theory (GR with torsion) and Lorentz gauge theory pioneered by Utiyama in his groundbreaking article in 1956 and refined by Sciama & Kibble.

Daniel.

[1]P von der Heyde [1975] "The equivalence principle in the $U_{4}$ theory of gravity", Nuovo Cim. Lett. 14, 250.

2. Nov 27, 2006

### Demystifier

I guess MTW are humans too. Besides, they are experts for GR, but not for theories with torsion.

3. Nov 27, 2006

### Chris Hillman

Different parts of the book were authored by the three coauthors, so one of them might have referred to material discussed in chapters written by another of the trio.

MTW has very, very few misstatements (I haven't tried to verify the claim that you uncovered one, but this is certainly possible).

Chris Hillman

Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

format: plain


text:
Glossary¶

Math Glossary¶

Norms and Metrices¶

1-Norm

The 1-norm provides a length measure for the interpretation of vector spaces as orthogonal lattices. For a vector space of dimension n, the norm is given by: [1]

$\|\vec{x}\|_{1} := \sum_{i=1}^{n} |x_{i}|$

The 1-norm specifies the p-norm for the case $$p=1$$ and induces the Manhattan distance to the underlying vector space. When applied to a random sample, the Manhattan distance is also known as the sum of absolute differences.

References

Chebyshev Distance

The Chebyshev Distance generates the Chebyshev Metric. For a vector space of dimension n, the Chebyshev distance is given by: [2]

$d_{\infty}(\vec{x},\,\vec{y}) := \underset{i}{\max}\left(|y_{i}-x_{i}|\right)$

The Chebyshev distance is induced by the Maximum norm and specifies the Minkowski distance for the transition $$p\rightarrow\infty$$.

Euclidean Distance

The Euclidean Distance corresponds to the natural geometric interpretation of a vector space. For an underlying vector space of dimension n, the Euclidean distance is given by: [3]

$d_{2}(\vec{x},\,\vec{y}) := \left(\sum_{i=1}^{n}|y_{i}-x_{i}|^{2}\right)^{1/2}$

The Euclidean distance is induced by the Euclidean norm and specifies the Minkowski distance for the case $$p=2$$. With respect to regression analysis the Euclidean distance endows the components of a random sample with a discrepancy measure, between observed an estimated realizations. This discrepancy measure is commonly referred as Residual sum of squares (RSS) and provides the foundation for the method of least squares. [4]

Euclidean Norm

The Euclidean norm provides the fundamental length measure for natural geometric interpretations of vector spaces. For a vector space of dimension n, the Euclidean norm is given by: [5]

$\|\vec{x}\|_{2} := \left(\sum_{i=1}^{n}|x_{i}|^{2}\right)^{1/2}$

The Euclidean norm equals the p-norm for $$p=2$$ and induces a the Euclidean distance to it’s domain.

Frobenius Distance

The Frobenius Distance is a distance measure for matrices. For a vector space of dimension $$n \times m$$, the Frobenius distance is defined by: [6]

$d_{F}(A,\,B) := {\left(\sum_{i=1}^{m}\sum_{j=1}^{n} |b_{ij} - a_{ij}|^{2}\right)}^{1/2}$

The Frobenius distance is induced by the Frobenius norm and specifies the pq-distance for the case $$p=q=1$$.

Frobenius Norm

The Frobenius norm is a matrix norm, which is derived by the consecutive evaluation of the Euclidean norm for the rows and columns of a matrix. For an underlying vector space of dimension $$n \times m$$, the Frobenius norm is given by: [7]

$\|A\|_{F} := {\left(\sum_{i=1}^{m}\sum_{j=1}^{n} |a_{ij}|^{2}\right)}^{1/2}$

The Frobenius norm specifies the pq-norm for the case $$p=q=2$$.

Hölder Mean

The Hölder means generalize the Arithmetic mean and the Geometric mean, in the same way as the p-norm generalizes the Euclidean norm and the 1-norm. For a positive real number p and a vector space of dimension n, the Hölder mean for absolute values is given by: [8]

$M_{p}(\vec{x}) := \left({\frac{1}{n}}\sum_{i=1}^{n}|x_{i}|^{p}\right)^{1/p}$

By it’s definition it follows, that for $$p \geq 1$$ the Hölder means for absolute values are linear related to the p-norms:

$M_{p}(\vec{x}) = \left(\frac{1}{n}\right)^{1/p}\|\vec{x}\|_{p}$

As a consequence for $$p \geq 1$$ the Hölder means of absolute values are norms and thus induce distances to their underlying domains. These are occasionally referred as power mean difference.

The Hölder means and their respective distances, have important applications in regression analysis. When applied to the components of a random sample, the Hölder means of absolute values are known as the absolute sample moments and their induces metrices provide normalized measures of statistical dispersion.

Manhattan Distance

The Manhattan Distance corresponds to the interpretation of vector spaces as orthogonal lattices. For a vector space of dimension n, the Manhattan distance is given by: [9]

$d_{1}(\vec{x},\,\vec{y}) := \sum_{i=1}^{n}|y_{i}-x_{i}|$

The Manhattan distance is induced by the 1-norm and specifies the Minkowski distance for $$p=1$$. When applied to a fixed set of outcomes of a random variable, the Minkowski distance is a measure of discrepancy measure and referred as Sum of Absolute Differences.

Maximum Norm

The Maximum norm provides a length measure for vector spaces. For a vector space of dimension n, the Maximum norm is given by: [10]

$\|\vec{x}\|_{\infty} := \underset{i}{\max}\left(|x_{i}|\right)$

The Maximum norm specifies the p-norm for the case $$p\rightarrow\infty$$ and induces the Chebyshev distance to it’s domain.

Mean Absolute

The Mean Absolute provides a normalized length measure for the interpretation of vector spaces as orthogonal lattices. For a vector space of dimension n, it is given by:

$M_{1}(\vec{x}) := \frac{1}{n} \sum_{i=1}^{n}|x_i|$

The Mean Absolute specifies the Hölder mean of absolute values for the case $$p=1$$ and is linear dependent to the 1-norm:

$M_{1}(\vec{x}) = \frac{\|\vec{x}\|_{1}}{n}$

Due to this linear relationship the Mean Absolute is a valid vector space norm and thus induces a distance to it’s underlying domain, which is referred as mean absolute difference.

Mean Absolute Difference

The Mean Absolute Difference (MD) is a normalized distance measure for the interpretation of vector spaces as orthogonal lattices. For a vector space of dimension n, this distance is given by:

$\mathrm{MD}_{1}(\vec{x},\,\vec{y}) := \frac{1}{n}\sum_{i=1}^n|y_{i}-x_{i}|$

The mean absolute difference is induced by the mean absolute and specifies the power mean difference for the case $$p=1$$. Furthermore the mean absolute difference is linear dependent to the Manhattan distance:

$\mathrm{MD}_{1}(\vec{x},\,\vec{y}) = \frac{d_{1}(\vec{x},\,\vec{y})}{n}$

The term ‘mean absolute difference’ is frequently associated with it’s application to sampled values [11]. In regression analysis it provides a consistent and unbiased estimator for the mean absolute error of a predictor.

Minkowski Distance

The class of Minkowski Distances provides different geometric interpretations of vector spaces. For a real number $$p \geq 1$$ and a vector space of dimension n, the Minkowski distance is given by: [12]

$d_{p}(\vec{x},\,\vec{y}) := \left(\sum_{i=1}^{n}|y_{i}-x_{i}|^{p}\right)^{1/p}$

The class of Minkowski distances is induced by the p-norm and comprises the Euclidean distance the Manhattan distance and the Chebyshev distance

p-Norm

The p-norms provide length measures for different geometric interpretations of vector spaces. For a real number $$p \geq 1$$ and a vector space of dimension n, the p-norm is given by: [13]

$\|\vec{x}\|_{p} := \left(\sum_{i=1}^{n} |x_{i}|^{p}\right)^{1/p}$

For $$0 \leq p < 1$$ an evaluation according to the p-norm does not satisfy the triangle inequality and yields a quasi-norm.

The p-norms generalize the 1-Norm, the Euclidean Norm and the Maximum Norm. The class of distances, induced by the p-norms are referred as Minkowski distance.

pq-Distance

The pq-Distances are matrix distances, which are derived by an elementwise application of the p-norm to the rows of two matrices, followed by an elementwise application of another p-norm to the columns. For real numbers $$p,\,q \geq 1$$ and an underlying vector space of dimension $$n \times m$$, the pq-distance is given by: [14]

$d_{p,q}(A,\,B) := \left(\sum_{j=1}^{m} \left(\sum_{i=1}^{n}|a_{ij}-b_{ij}|^{p}\right)^{q/p} \right)^{1/q}$

For the case $$p = q = 2$$, the pq-distance is also referred as Frobenius distance.

pq-Norm

The pq-Norms are matrix norms, which are derived by an elementwise application of the p-norm to the rows of a matrix, followed by an elementwise application of another p-norm to the columns. For real numbers $$p,\,q \geq 1$$ and an underlying vector space of dimension $$n \times m$$, the pq-norm is given by: [15]

$\|A\|_{p,q} := \left(\sum_{j=1}^{m} \left(\sum_{i=1}^{n}|a_{ij}|^{p}\right)^{q/p}\right)^{1/q}$

For the case $$p = q = 2$$, the pq-norm is also referred as Frobenius norm.

Power Mean Difference

The Power Mean Differences are normalized distance measures for different geometric interpretations of vector spaces. For a real number $$p \geq 1$$ and a vector space of dimension n, the power mean difference is given by:

$\mathrm{MD}_p(\vec{x},\,\vec{y}) := \left(\frac{1}{n}\sum_{i=1}^n|y_{i}-x_{i}|^p\right)^{1/p}$

The power mean differences are induced by the Hölder mean for absolute values and linear related to the Minkowski distance:

$\mathrm{MD}_p(\vec{x},\,\vec{y}) = \left(\frac{1}{n}\right)^{1/p}d_p(\vec{x},\,\vec{y})$

When applied to the components of a random sample, the Power-Mean differences are normalized measures of statistical dispersion.

The Quadratic Mean is a normalized length measure for the geometric interpretation of vector spaces. For a vector space of dimension n, it is given by: [16]

$M_{2}(\vec{x}) := \left({\frac{1}{n}}\sum_{i=1}^{n}|x_{i}|^{2}\right)^{1/2}$

The quadratic mean specifies the Hölder mean for $$p=2$$ and is linear dependent to the Euclidean norm:

$M_{2}(\vec{x}) = \frac{\|\vec{x}\|_{2}}{\sqrt{n}}$

Due to this linear relationship the quadratic mean is a valid vector space norm and thus induces a distance to it’s underlying domain, which occasionally is referred as the quadratic mean difference. When applied to the components of a random sample, the quadratic mean norm is a sample statistic, which is referred as Root-Mean-Square error.

The Quadratic Mean Difference is a normalized distance measure for the natural geometric interpretation of vector spaces. For a vector space of dimension n, the distance is given by:

$\mathrm{MD}_2(\vec{x},\,\vec{y}) := {\left(\frac{1}{n}\sum_{i=1}^n|y_{i}-x_{i}|\right)}^{1/2}$

The quadratic mean difference is induced by the quadratic mean and specifies the power mean difference for $$p=2$$. Furthermore the quadratic mean difference is linear dependent to the Euclidean distance:

$\mathrm{MD}_{2}(\vec{x},\,\vec{y}) = \frac{d_2(\vec{x},\,\vec{y})}{\sqrt{n}}$

When applied to individual components of a random sample, the quadratic mean difference is a measure of statistical dispersion and referred as Root-Mean-Square Error.

Statistics¶

Association Measure
Association measures refer to a wide variety of coefficients, that measure the statistical strength of relationships between the variables of interest. These measures can be directed / undirected, signed / unsigned and normalized or unnormalized. Examples for association measures are the Pearson correlation coefficient, Mutual information or Statistical Interactions.
Discrepancy Measure

Discrepancy measures are binary functions in spaces of random variables, that induce a semi-metric to the underlying space. [17] In regression analysis discrepancies are used to assess the accuracy of a predictor, by quantifying the expected deviation between observed and predicted realizations. By minimizing a discrepancy with respect to parameters, it serves as an objective function for parameter and model selection.

Mean Absolute Error

The Mean Absolute Error (MAE) is a discrepancy measure, that assesses the accuracy of a predictor. For an observable random variable $$Y$$ and a corresponding predictor $$\hat{Y}$$ the MAE is given by:

$\mathrm{MAE} := \mathrm{E}\left[|Y-\hat{Y}|\right]$

The MAE has a consistent and unbiased estimator, given by the mean absolute difference of observations and predictions. For n observations $$\mathbf{y}$$ with corresponding predictions $$\hat{\mathbf{y}}$$ the MAE is estimated by:

$\mathrm{MD}_1(\mathbf{y},\,\hat{\mathbf{y}}) \xrightarrow{\, n \to \infty \, } \mathrm{MAE}$

Due to this transition, the MAE adopts all required properties from the mean absolute difference, to induce a valid metric to the space of random variables.

Mean Squared Error

The Mean Squared Error (MSE) is a discrepancy measure, that assesses the accuracy of a predictor. For an observable random variable $$Y$$ and a corresponding predictor $$\hat{Y}$$ the MSE is given by:

$\mathrm{MSE} := \mathrm{E}\left[(Y-\hat{Y})^2\right]$

The MSE has a consistent and unbiased estimator, given by the squared quadratic mean difference of observations and predictions. For n observations $$\mathbf{y}$$ with corresponding predictions $$\hat{\mathbf{y}}$$ the MSE is estimated by:

$\mathrm{MD}_2(\mathbf{y},\,\hat{\mathbf{y}})^2 \xrightarrow{\, n \to \infty \, } \mathrm{MSE}$

In difference to the Root-Mean-Square Error, the MSE does not satisfy the triangle inequality and therefore does not define a valid distance measure. Since the MSE, however, is positive definite and subhomogeneous, it induces a semi-metric to the underlying space of random variables.

Residual Sum of Squares

The Residual Sum of Squares (RSS) is a discrepancy measure, that assesses the accuracy of a predictor with respect to a fixed (finite) set of observations. For an observable random variable $$Y$$ with n fixed observations $$\mathbf{y}$$ and a predictor $$\hat{Y}$$ with corresponding predictions $$\hat{\mathbf{y}}$$ the RSS is given by:

$\mathrm{RSS}(\mathbf{y},\,\hat{\mathbf{y}}) := \sum_{i=1}^{n}(y_{i}-\hat{y}_{i})^2$

The RSS equals the squared Euclidean distance, which does not satisfy the triangle inequality and therefore does not define a valid distance measure. Since the RSS, however, is positive definite and subhomogeneous, it induces a semi-metric to the underlying space of random variables.

Root-Mean-Square Error

The Root-Mean-Square Error (RMSE) is a discrepancy measure, that assesses the accuracy of a predictor. For an observable random variable $$Y$$ and a corresponding predictor $$\hat{Y}$$ the RMSE is given by:

$\mathrm{RMSE} := \mathrm{E}\left[(Y-\hat{Y})^2\right]^{1/2}$

The RMSE has a consistent and unbiased estimator, given by the quadratic mean difference of observations and predictions. For n observations $$\mathbf{y}$$ with corresponding predictions $$\hat{\mathbf{y}}$$ the RMSE is estimated by:

$\mathrm{MD}_2(\mathbf{y},\,\hat{\mathbf{y}}) \xrightarrow{\, n \to \infty \, } \mathrm{RMSE}$

Due to this transition, the RMSE adopts all required properties from the quadratic mean difference, to induce a valid metric to the space of random variables.

Sum of Absolute Differences

The Sum of Absolute Differences (SAD) is a discrepancy measure, that assesses the accuracy of a predictor with respect to a fixed (finite) set of observations. For an observable random variable $$Y$$ with n fixed observations $$\mathbf{y}$$ and a predictor $$\hat{Y}$$ with corresponding predictions $$\hat{\mathbf{y}}$$ the RSS is given by:

$\mathrm{SAD}(\mathbf{y},\,\hat{\mathbf{y}}) := \sum_{i=1}^{n}|y_{i}-\hat{y}_{i}|$

The SAD equals the Manhattan distance and therefore is also a valid distance measure within the underlying space of random variables. The SAD is effectively the simplest possible distance, that takes into account every observation of a fixed finite set. This makes SAD an extremely fast distance measure.

API Glossary¶

Basic Parameters and Formats¶

Field Identifier

Field Identifiers uniquely identify fields within objects. Since objects may comprise fields, given by it’s attributes, items or / and other accessing mechanisms, the identification mechanism of the fields depends on the domain type of the object:

objects: For the domain type object fields are identified by attribute names, and therefore required to be valid identifiers as specified in PEP 3131. Additionally the functions in the module rian.base.operator accept the usage of dots, for the identification of arbitrary sub-objects within object hierarchies. For the domain type dict (or any subclass of the Mapping class) fields are identified by the keys of the mappings and therefore required to be hashable. Additionally the functions in the module rian.base.operator require, that the field identifiers are not given by tuples. For the domain type tuple (or any subclass of the Sequence class) the fields are identifiers are not the names of fields, but their position within the sequence (starting with 0) and therefore required to be non-negative integers.
Domain Like

Domain Like parameters are used to specify the type and the frame of the domain and the target (codomain) of an operator. Thereby the format, which is used for the specification depends an the respective type:

Domain types that use named field identifiers (like object or dict) do not require the specification of a frame. In this case the parameter format is given by a single term <type>, where <type> may ether be a supported type of the respective parameter or None, for the default behavior of the respective function.

Domain types that use positional field identifiers (like tuple or list) require the specification of a frame, to map variable names to their positions within the frame. In this case the parameter format is given by a tuple (<type>, <frame>), where the term <frame> is required to be a tuple of valid field identifiers in the domain type.

Variable Definition

Variable Definition parameters are used to specify the mapping of fields to variables. For a variable that represents a named field (e.g. group keys in grouped sequences, etc.), it is sufficient to only provide the identifier of the field. If the underlying domain type, however, does not support named fields or the variable name shall be different to the field identifier, then the variable name has to be included in the definition by (<field>, <name>), where <name> is required to be a valid identifier.

For a variable that only depends on a single named field, but is not identical identical to the field, the mapping from the field to the variable has to be specified by an operator (e.g. an aggregation function), which has to be included within the definition by (<field>, <operator>). If the underlying domain type, does not support named fields or the variable name is required to be different to the field identifier, then the definition has to be given by the format (<field>, <operator>, <name>).

For a variable that depends on multiple fields the definition has to be given in the format (<fields>, <operator>, <name>), where <fields> is a tuple of valid field identifiers in the domain type and <operator> an operator, which accepts the specified fields as arguments.

Parameters and Formats used in Data Warehousing¶

Row Like
Row like data comprises different data formats, which are used to represent table records. This includes tuples, mappings and instances of the Record class. The Table class accepts these data types for appending rows by insert() and for retrieving rows by select().
Cursor Mode

The cursor mode defines the scrolling type and the operation mode of a cursor. Internally the respective parameters of the Cursor class are identified by binary flags. The public interface uses a string representation, given by the space separated names of the scrolling type and the the operation mode. Supported scrolling types are:

forward-only: The default scrolling type of cursors is called a forward-only cursor and can move only forward through the result set. A forward-only cursor does not support scrolling but only fetching rows from the start to the end of the result set. A scrollable cursor is commonly used in screen-based interactive applications, like spreadsheets, in which users are allowed to scroll back and forth through the result set. However, applications should use scrollable cursors only when forward-only cursors will not do the job, as scrollable cursors are generally more expensive, than forward-only cursors. Random cursors move randomly through the result set. In difference to a randomly sorted cursor, the rows are not unique and the number of fetched rows is not limited to the size of the result set. If the method fetch() is called with a zero value for size, a CursorModeError is raised.

Supported operation modes are:

dynamic: A dynamic cursor is built on-the-fly and therefore comprises any changes made to the rows in the result set during it’s traversal, including new appended rows and the order of it’s traversal. This behavior is regardless of whether the changes occur from inside the cursor or by other users from outside the cursor. Dynamic cursors are thread-safe but do not support counting filtered rows or sorting rows. Indexed cursors (aka Keyset-driven cursors) are built on-the-fly with respect to an initial copy of the table index and therefore comprise changes made to the rows in the result set during it’s traversal, but not new appended rows nor changes within their order. Keyset driven cursors are thread-safe but do not support sorting rows or counting filtered rows. Static cursors are buffered and built during it’s creation time and therefore always display the result set as it was when the cursor was first opened. Static cursors are not thread-safe but support counting the rows with respect to a given filter and sorting the rows.
Aggregation Function
Aggregation Functions are callable objects, that transform sequences of objects of a given domain into a single value. Examples include len(), sum(), min() or max(), but depending on the domain, many out-of-the-box aggregators are shipped with the standard library package statistics or with third party packages like numpy.


text:
# How do I recursively create a folder in Win32?

I'm trying to create a function that takes the name of a directory (C:\foo\bar, or ..\foo\bar\..\baz, or \\someserver\foo\bar), and creates directories as necessary so that the whole path is created.

I am attempting a pretty naive implementation of this myself and it seems to be a string processing nightmare. There is / vs \, there is the special case of network shares which begin with \\ (also you can't attempt to mkdir() the first two levels of the path which are machine name and share name), and there is \.\ type nonsense that can exist in a path.

Does there exist a simple way to do this in C++?

-
Why not just use the Win32 API for that stuff? – Jonathan Feinberg Oct 7 '09 at 10:32
@JonathanFeinberg: Parsing of path names was severely limited (MAX_PATH length limit, no support for "\\?\" prefixes, etc.) in Windows prior to version 8. Your comment really applies to Windows 8 and later only. – IInspectable Feb 2 at 11:50

Note: this answer is somewhat quick and dirty, and doesn't handle all cases. If this is ok with you, read on. If not, consider using one of the other options.

You can use good old mkdir for that. Just run

system("mkdir " + strPath);

and you're done.

Well, almost. There are still cases you have to take care of, such as network shares (which might not work) and backslashes. But when using relatively safe paths, you can use this shorter form.

Another thing you might find useful getting rid of the possible nuisance is _fullpath(), which will resolve the given path into a full and clean one. Knowing you have a clean path, you should have no problem writing a rather trivial recursive function that will create the folders one by one, even when dealing with UNC paths.

-
I'm not proud of it but this was the solution we went for. Very short, works for network shares.. Just too easy to ignore. – pauldoo Oct 8 '09 at 19:15
It is worth noting that this solution does not support Unicode paths and has a very high cost - process spawning under Windows is a very expensive operation indeed. Also, escaping arguments in this form is decidedly non-trivial. You can avoid all of those problems (except for high performance cost) by using CreateProcessW. – EFraim Mar 3 '13 at 14:56
@FrerichRaabe: It's a very wrong solution, because it has lots of non-obvious problems, which are unlikely to manifest themselves in testing - but almost surely will in production environment. – EFraim Mar 3 '13 at 15:05
@EFraim: The point is not so much about using system instead of CreateProcess; it's about calling the mkdir program in the first place. – Frerich Raabe Mar 3 '13 at 18:31
@eran: This does not look like court-martial to me. This is a programmer's forum. And this answer does not seem good to me, especially since it looks so compelling to a novice programmer who have not fallen into all those pitfalls. I've seen people fall into all of them, and fallen into some myself. Therefor I've down-voted this answer to warn against those pitfalls. BTW, people do comment on really old answers of mine too. And that's fine, part of the appeal of SO is that stale information gets fixed. – EFraim Mar 4 '13 at 8:36
void createFolders(const std::string &s, char delim) {
std::stringstream ss(s);
std::string item;
char combinedName[50]={'\0'};
while (std::getline(ss, item, delim)) {
sprintf(combinedName,"%s%s%c",combinedName,item.c_str(),delim);
cout<<combinedName<<endl;

struct stat st = {0};
if (stat(combinedName,&st)==-1)
{
#if REDHAT
mkdir(combinedName,0777);
#else
CreateDirectory(combinedName,NULL);
#endif
}

}
}

-
createFloders("a/b/c/d/e",'/'); – Awais Rafique Apr 15 at 8:46

Here is my example of code (copied from How can I create directory tree in C++/Linux?). Maybe it's not conform all requirements from first post, but pretty well and it works for both Windows and Linux:

#include <iostream>
#include <string>
#include <sys/stat.h> // stat
#include <errno.h>    // errno, ENOENT, EEXIST
#if defined(_WIN32)
#include <direct.h>   // _mkdir
#endif

bool isDirExist(const std::string& path)
{
#if defined(_WIN32)
struct _stat info;
if (_stat(path.c_str(), &info) != 0)
{
return false;
}
return (info.st_mode & _S_IFDIR) != 0;
#else
struct stat info;
if (stat(path.c_str(), &info) != 0)
{
return false;
}
return (info.st_mode & S_IFDIR) != 0;
#endif
}

bool makePath(const std::string& path)
{
#if defined(_WIN32)
int ret = _mkdir(path.c_str());
#else
mode_t mode = 0755;
int ret = mkdir(path.c_str(), mode);
#endif
if (ret == 0)
return true;

switch (errno)
{
case ENOENT:
// parent didn't exist, try to create it
{
int pos = path.find_last_of('/');
if (pos == std::string::npos)
#if defined(_WIN32)
pos = path.find_last_of('\\');
if (pos == std::string::npos)
#endif
return false;
if (!makePath( path.substr(0, pos) ))
return false;
}
// now, try to create again
#if defined(_WIN32)
return 0 == _mkdir(path.c_str());
#else
return 0 == mkdir(path.c_str(), mode);
#endif

case EEXIST:
// done!
return isDirExist(path);

default:
return false;
}
}

int main(int argc, char* ARGV[])
{
for (int i=1; i<argc; i++)
{
std::cout << "creating " << ARGV[i] << " ... " << (makePath(ARGV[i]) ? "OK" : "failed") << std::endl;
}
return 0;
}

Usage:

d:\Work\c++\make_path> makePath 1/2 folderA/folderB/folderC
creating 1/2 ... OK
creating folderA/folderB/folderC ... OK

-
Without Unicode support this definitely doesn't work in Windows. – IInspectable Feb 2 at 11:41

I'm modifying an old Windows CE app, and this is what I'm planning to use. Should work in Windows CE, too. This is actually recursive, too:

static void createPath(const CString& p)
{
// only create directories that don't exist
if (::GetFileAttributes(p) == INVALID_FILE_ATTRIBUTES)
{
// check if our parent needs to be created, too...
int i = p.ReverseFind('\\');
if (i > 0)
{
// ...yes, create the parent (recursively)
createPath(p.Left(i));
}

// finally, actually create the directory in p
::CreateDirectory(p, NULL);
}
}

-
I actually had a chance to test this on Win32 and WinCE, seems to work OK. – Tommi Nov 13 '14 at 15:09
works fine for me. – Richard George Feb 22 at 10:11

For Windows XP and up. Expects widechar null terminated string and amount of recursive actions as parameters. Was not tested with more than 1 level yet.

Note: Path seperators must be '\'

bool CreateRecursiveDirectoryW(const wchar_t* filepath, const int max_level)
{
bool result = false;
wchar_t path_copy[MAX_PATH] = {0};
wcscat_s(path_copy, MAX_PATH, filepath);
std::vector<std::wstring> path_collection;

for(int level=0; PathRemoveFileSpecW(path_copy) && level < max_level; level++)
{
path_collection.push_back(path_copy);
}
for(int i=path_collection.size()-1; i >= 0; i--)
{
if(!PathIsDirectoryW(path_collection[i].c_str()))
if(CreateDirectoryW(path_collection[i].c_str(), NULL))
result = true;
}
return result;
};

-

Here's a version that works with no external libraries, so Win32-only, and that function in all versions of Windows (including Windows CE, where I needed it):

wchar_t *path = GetYourPathFromWherever();

wchar_t folder[MAX_PATH];
wchar_t *end;
ZeroMemory(folder, MAX_PATH * sizeof(wchar_t));

end = wcschr(path, L'\\');

while(end != NULL)
{
wcsncpy(folder, path, end - path + 1);
if(!CreateDirectory(folder, NULL))
{
DWORD err = GetLastError();

{
// do whatever handling you'd like
}
}
end = wcschr(++end, L'\\');
}

-

ctacke You forgot the last segment. e.g. '\aa\bb\"cc"' Following is the modification for ctacke:

//---------------------------------------------------------------------
int isfexist(char *fn)
{
struct stat stbuf;
extern int errno;

if (stat(fn, &stbuf)) {
if (errno == ENOENT) return(0);
else {
printf("isfexist: stat");
return(0);
}
} else {
if (stbuf.st_mode & S_IFDIR) return(2);
else return(1);
}
}
//---------------------------------------------------------------------
int MakeDirTree(char *path)
{
char *end1, *end2;

if (path[0] == '\\') end1 = path + 1;       // Case '\aa\bb'
else if (path[1] == ':' && path[2] == '\\') end1 = path + 3;    // Case 'C:\\aa\\bb'
else end1 = path;

for(;;) {
end2 = strchr(end1, '\\');
if (end2 == NULL) {
// Case '\aa\bb\'
if (*end1 == 0) break;
// Last segment '\aa\bb\"cc"' not yet proceed
} else *end2 = 0;
if (isfexist(path) <= 0) mkdir(path);
if (end2 == NULL) break;    // Last segment finished
else {
*end2 = '\\';
end1 = end2 + 1;
}
}
}

-
Pretty useless, without Unicode support. – IInspectable Feb 2 at 11:36

Here is a function I wrote which iteratively creates a folder tree. Here is the main function:

#include <io.h>
#include <string>
#include <direct.h>
#include <list>

// Returns false on success, true on error
bool createFolder(std::string folderName) {
list<std::string> folderLevels;
char* c_str = (char*)folderName.c_str();

// Point to end of the string
char* strPtr = &c_str[strlen(c_str) - 1];

// Create a list of the folders which do not currently exist
do {
if (folderExists(c_str)) {
break;
}
// Break off the last folder name, store in folderLevels list
do {
strPtr--;
} while ((*strPtr != '\\') && (*strPtr != '/') && (strPtr >= c_str));
folderLevels.push_front(string(strPtr + 1));
strPtr[1] = 0;
} while (strPtr >= c_str);

if (_chdir(c_str)) {
return true;
}

// Create the folders iteratively
for (list<std::string>::iterator it = folderLevels.begin(); it != folderLevels.end(); it++) {
if (CreateDirectory(it->c_str(), NULL) == 0) {
return true;
}
_chdir(it->c_str());
}

return false;
}

The folderExists routine is as follows:

// Return true if the folder exists, false otherwise
bool folderExists(const char* folderName) {
if (_access(folderName, 0) == -1) {
return false;
}

DWORD attr = GetFileAttributes((LPCSTR)folderName);
if (!(attr & FILE_ATTRIBUTE_DIRECTORY)) {
// File is not a directory
return false;
}

return true;
}

An example call I tested the above functions with is as follows (and it works):

createFolder("C:\\a\\b\\c\\d\\e\\f\\g\\h\\i\\j\\k\\l\\m\\n\\o\\p\\q\\r\\s\\t\\u\\v\\w\\x\\y\\z");

This function hasn't gone through very thorough testing, and I'm not sure it yet works with other operating systems (but probably is compatible with a few modifications). I am currently using Visual Studio 2010 with Windows 7.

-
This does work at first glance, but it changes the current directory to the newly created one, which is something you might not want to happen if using relative paths. – antipattern Jan 13 '15 at 14:18
Not using Unicode is a capital crime, and has been throughout this millennium. Not sure why you cast the first argument to GetFileAttributes to the exact same type it gets passed as, either. – IInspectable Feb 2 at 11:32

Use Boost::filesystem

-
// string::find_last_of
#include <iostream>
#include <string>
using namespace std;

void SplitFilename (const string& str)
{
size_t found;
cout << "Splitting: " << str << endl;
found=str.find_last_of("/\\");
cout << " folder: " << str.substr(0,found) << endl;
cout << " file: " << str.substr(found+1) << endl;
}

int main ()
{
string str1 ("/usr/bin/man");
string str2 ("c:\\windows\\winhelp.exe");

SplitFilename (str1);
SplitFilename (str2);

return 0;

That should give you an idea on how to deal with the path string. Then after that, all you need to do is loop through the paths starting from the drive down to the deepest folder. Check if the folder exists, and if it doesn't, create it.

-

If you don't need to support Windows versions prior to Windows 2000, you can use the SHCreateDirectoryEx function for this. Consider this:

int createDirectoryRecursively( LPCTSTR path )
{
return SHCreateDirectoryEx( NULL, path, NULL );
}

// ...
if ( createDirectoryRecursively( T("C:\\Foo\\Bar\\Baz") ) == ERROR_SUCCESS ) {
// Bingo!
}

In case using such shell32.dll API ever becomes an issue, you can always reimplement the createDirectoryRecursively function above with something else (possibly a hand-wired loop).

-
Word of warning that SHCreateDirectoryEx has special behavior when dealing with hidden directories and may show user interface dialogs to the user. – ShadowChaser Mar 8 '12 at 21:16
It only shows a user interface dialog if a hwnd reference is passed, not if it is NULL. – Joakim Dec 13 '12 at 13:07
@Joakim: Even if HWND is NULL you can be in for a nasty surprise because it CAN process non-queued messages. – EFraim Mar 3 '13 at 14:53

SHCreateDirectory function can do this. But the document states that it can get deprecated in later version of Windows.

From MSDN

Note This function is available through Windows XP Service Pack 2 (SP2) and Microsoft Windows Server 2003. It might be altered or unavailable in subsequent versions of Windows.

-


text:
# How to find the angle in a triangle inside of a quadrilateral?

The problem is as follows:

Find the angle $$x$$ as indicated in the figure from below:

The alternatives given in my book are as follows:

$$\begin{array}{ll} 1.&36^{\circ}\\ 2.&40^{\circ}\\ 3.&20^{\circ}\\ 4.&30^{\circ}\\ 5.&32^{\circ}\\ \end{array}$$

This problem has left me go in circles. I don't know exactly if there's an isosceles or what?. The only thing which I could find was that the angle opposing $$50^{\circ}$$ is $$50^{\circ}$$ hence making the upper triangle an isosceles. But that's how far I went. How exactly can this information be used to find the requested angle. Can someone help me with this?.

• Why are you posting so many geometry questions? – Parcly Taxel Oct 22 at 12:27
• @ParclyTaxel Hi. I'm sorry for delay. The reason was due I came stuck with these geometry problems long ago. Since I'm recovering from a bronquitis, fever and periodontitis I did not had enough time to publish them before and to attempt resolve them properly. – Chris Steinbeck Bell Oct 25 at 23:07

1. We have $$\angle ABC=50^{\circ}$$ and $$\angle BAC=80^{\circ}$$, which implies that $$\angle ACB=50^{\circ}$$. Therefore $$\overline{AB}=\overline{AC}$$.
2. We have $$\angle ACE=80^{\circ}$$ and $$\angle CAE=20^{\circ}$$, which implies that $$\angle AEC=80^{\circ}$$. Therefore $$\overline{AC}=\overline{AE}$$.
3. From 1. and 2. we have $$\overline{AB}=\overline{AE}$$, and note that $$\angle BAE=60^{\circ}$$. Therefore $$\triangle ABE$$ is an equilateral triangle. Hence $$\angle AEB=60^{\circ}$$.
4. Take a look at $$\triangle ADE$$. We now have $$\angle AEC=80^{\circ}$$ and $$\angle DAE=40^{\circ}$$, which implies that $$\angle ADE=40^{\circ}$$. Therefore $$\overline{AE}=\overline{DE}$$. And since $$\overline{AE}=\overline{BE}$$, we have $$\overline{BE}=\overline{DE}$$.
5. $$\angle BED=180^{\circ}-\angle AEC-\angle AEB=40^{\circ}$$. Therefore $$\angle BDE=\frac{180^{\circ}-\angle BED}{2}=70^{\circ}=\angle ADE+x\Longrightarrow \color{red}{x=30^{\circ}}$$.

The five blue segments in the image below have the same length, and $$\triangle ABE$$ is an equilateral triangle.

• How do you find an angle of 40° at the bottom of the figure? – Bernard Oct 22 at 14:00
• But why is that so? Two blue segments are true because angles are $40^0$. But how do you know that $3$ blue lines make an equilateral triangle? – Math Lover Oct 22 at 14:01
• @Bernard that is wrongly shown. The right part of the angle is $40^0$, not the whole. – Math Lover Oct 22 at 14:02
• @MathLover Note that there is actually a $20-80-80$ isosceles at the very right. – Student1058 Oct 22 at 14:04
• @Student1058 yes I agree. +1. Please always name the vertices. Life becomes much easier to both raise questions and to answer :) – Math Lover Oct 22 at 14:07


text:
# Decision trees in banking industry: creditworthiness

While looking for a interesting Machine Learning exercise I decided to go along with credit scoring exercise. I want to know what kind of information influences the decision for giving someone credit (or not). Typically, a bank would ask you to fill in some kind of assesment form with question about demographics, purpose of the loan, your status of employment and salary. Today, this is not a standard proces.

The problem here is we want to predict the creditability of new clients based on clients from the past. Client whom we already know if they are credit-worthy or not. One way to solve this problem is with a machine learning such as decision trees. Other algorithms can be used aswell, but decision trees are more comprehensive at the end as I want to know what kind of information has the most influence in this determination proces.

In this example we already know which client are credit-worthy and which are not (= qualitative characteristic), based on 21 quantitative characteristics. All we have to do is to find (alot of) tests/decisions that partitions those clients as well as possible. Hereby, we want decisions that at the end group the good or bad credit-worthy clients as pure as possible. For each possible decisions (or split in the decision tree) we can define a measure of expected purity. During these path of decisions we follow those decisisons with the most Information Gain, thus reducing the missing information the most.

### Get the data

The dataset I’m using has already been preprocessed. If you would like the original dataset take a look at the UCI Machine Learning Repository. The dataset holds both numeric and categoric variables, but has been mapped to only numeric variables. See the appendix here for the final categorical classification.

# Used packages
require(dplyr)      # for most data manipulation
require(caret)      # acces to alot of predictors
require(ggplot2)    # nice plots
require(gridExtra)  # multiplots
credit <-
read.csv("datasets/german_credit.csv", stringsAsFactors = FALSE)
# Remove . dots in names
names(credit) <-
gsub(pattern = "\\.", x = names(credit), replacement = "")
# Make target class factor
credit$Creditability <- factor(credit$Creditability, levels = c(1, 0), labels = c("Good", "Bad"))

### Exploring the data

Quick overview of few characteristics to get an idea of the dataset:

# dimension: 20 quant. characteristics and 1 target class (creditability)
dim(credit)
## [1] 1000   21
# show few records
credit[18:24, 1:6]
##    Creditability AccountBalance DurationofCreditmonth
## 18          Good              2                    18
## 19          Good              2                    36
## 20          Good              4                    11
## 21          Good              1                     6
## 22          Good              2                    12
## 23           Bad              2                    36
## 24          Good              2                    12
##    PaymentStatusofPreviousCredit Purpose CreditAmount
## 18                             2       3         3213
## 19                             4       3         2337
## 20                             4       0         7228
## 21                             4       0         3676
## 22                             4       0         3124
## 23                             2       5         2384
## 24                             4       4         1424

A bivariate visualization with summary statistics can provide usefull insights of the dataset, as well at the target variable. Most people asking for a credit is the group between 20-40 years but it not so obvious to decide which age is better to get a credit or not.

This multivariate visualizations of only a few variables shows that it’s not that simple to group the classes of creditability (good/bad). All points lie upon each other for the characteristics credit amount, duration of credit and age.

## Loading required package: AppliedPredictiveModeling

Let’s look at the summary of the qualitative characteristic

summary(credit$Creditability) ## Good Bad ## 700 300 The dataset is slightly unbalanced to learn from. ### Preparing the data Before training machine learning algorithms we need to split up the dataset into a training- and testset. This can be done with base R, dplyr or with caret’s function createDataPartition, which will take a stratified sample. Thus, respecting the distribution of our target label in both sets. # Split full dataset into a training and test set set.seed(2) # dplyr credit = sample_n(credit, size = nrow(credit)) training = sample_frac(credit, size =0.7) testing = setdiff(credit, training) # caret TrainPart <- createDataPartition(y = credit$Creditability,
times = 1,
p = 0.7,
list = FALSE)
training = credit[TrainPart,]
testing = credit[-TrainPart,]

### Training a model

Very popular classification algorithms are C4.5 and C5.0. For this problem I choose the C5.0 because it incorporates a misclassification cost and C4.5 doesn’t have this feature. This mean that I don’t want all errors treated as equal but more like this: If the model predicts “good credithworthiness” but it is actual a “bad” one, these errors should get a higher cost in order to avoid them while learning our decision tree.

#### Train

Our model has learned some ruleset that can be visualized as a tree. Note that not all leaves (terminal nodes) are pure!

We can also take a look at the overal predictor importance, since I’m mostly interested in this.

# ?C5imp
C5varImp <- C5imp(credit_model, metric = "usage")
C5varImp
##                               Overall
## AccountBalance                 100.00
## Typeofapartment                 59.29
## DurationofCreditmonth           58.14
## PaymentStatusofPreviousCredit   53.57
## Guarantors                      51.14
## Mostvaluableavailableasset      48.86
## ConcurrentCredits               43.86
## CreditAmount                    39.14
## Lengthofcurrentemployment       38.86
## Purpose                         32.86
## Occupation                      26.57
## SexMaritalStatus                23.00
## Instalmentpercent               15.57
## ValueSavingsStocks              12.00
## Ageyears                         8.57
## Telephone                        8.43
## Noofdependents                   5.86
## NoofCreditsatthisBank            3.71
## ForeignWorker                    3.71

More details about the model are shown with summary(credit_model). The model has an error rate of 6.9% (48/700 examples misclassified). A total of 34 actual bad creditability were incorrectly classified as good credithworthiness (false positives), while 14 good creditability were misclassified as bad ones (false negatives). The error rate on the training data is probably very optimistic, so lets evaluate this on the testset.

### Evaluating model performance on new examples

# run predict model on new examples
predClass <-
predict.C5.0(credit_model, testing)
# Confusion matrix
require(gmodels)
## Loading required package: gmodels
CrossTable(testing$Creditability, predClass, prop.chisq = FALSE, prop.c = FALSE, prop.r = FALSE, dnn = c('actual default', 'predicted default')) ## ## ## Cell Contents ## |-------------------------| ## | N | ## | N / Table Total | ## |-------------------------| ## ## ## Total Observations in Table: 300 ## ## ## | predicted default ## actual default | Good | Bad | Row Total | ## ---------------|-----------|-----------|-----------| ## Good | 173 | 37 | 210 | ## | 0.577 | 0.123 | | ## ---------------|-----------|-----------|-----------| ## Bad | 55 | 35 | 90 | ## | 0.183 | 0.117 | | ## ---------------|-----------|-----------|-----------| ## Column Total | 228 | 72 | 300 | ## ---------------|-----------|-----------|-----------| ## ##  On the testset a total of 92/300 cases are misclassified. Thus, this gives us an error rate of 30%. This is a lot higher than the 6.9% error rate from the traininset. The model is about 70% accurate… However, this metric is not ideal to use with unbalanced data, but gives a sense of the overall prediction. ### Methods to improve the model: Boosting Boosting algorithms consist of iteratively learning weak classifiers and adding them together to end with a final strong classifier. During each iteration, weights are given to those examples that are misclassified whereas examples lose weights when classified correctly. Thus, the next iteration focusses more on the examples that previously were misclassified. The C5.0 algorithm has a boost functionality that can be controlled with the trails parameter. credit_boost <- C5.0(training[-1], training$Creditability,
trials = 15) # an integer specifying the number of boosting iterations

# summary(credit_boost)
boostPred <-
predict.C5.0(credit_boost, testing, trials = credit_boost$trials["Actual"]) # Confusio matrix CrossTable(testing$Creditability, boostPred, prop.chisq = FALSE, prop.c = FALSE, prop.r = FALSE, dnn = c('actual default', 'predicted default'))
##
##
##    Cell Contents
## |-------------------------|
## |                       N |
## |         N / Table Total |
## |-------------------------|
##
##
## Total Observations in Table:  300
##
##
##                | predicted default
## actual default |      Good |       Bad | Row Total |
## ---------------|-----------|-----------|-----------|
##           Good |       180 |        30 |       210 |
##                |     0.600 |     0.100 |           |
## ---------------|-----------|-----------|-----------|
##            Bad |        47 |        43 |        90 |
##                |     0.157 |     0.143 |           |
## ---------------|-----------|-----------|-----------|
##   Column Total |       227 |        73 |       300 |
## ---------------|-----------|-----------|-----------|
##
##

Error rate (on test set) in now down to 25.6%. Only a minor improvement is achieved with boosting.

### Costmatrix

Let’s implement a cost matrix so that not all errors are treated as equal but implements asymmetric costs for specific errors. First, we need to define a cost matrix and specify the dimension. We need a 2x2 cost matrix since the predicted and actual values form a 2x2 matrix.

# Make a cost matrix
names(matrix_dimensions) <- c("predicted", "actual")
# Assing a costmatrix to error_cost
error_cost <- matrix(c(0, 4, 1, 0), nrow = 2, dimnames = matrix_dimensions)
# Use the costmatrix and train the model again
credit_cost <-
C5.0(training[-1],
training$Creditability, costs = error_cost, trails = 10) Take a look at the confusion matrix: credit_cost_pred <- predict.C5.0(credit_cost, testing, type = "class") CrossTable(testing$Creditability, credit_cost_pred, prop.chisq = FALSE, prop.c = FALSE, prop.r = FALSE, dnn = c('actual default', 'predicted default'))
##
##
##    Cell Contents
## |-------------------------|
## |                       N |
## |         N / Table Total |
## |-------------------------|
##
##
## Total Observations in Table:  300
##
##
##                | predicted default
## actual default |      Good |       Bad | Row Total |
## ---------------|-----------|-----------|-----------|
##           Good |       121 |        89 |       210 |
##                |     0.403 |     0.297 |           |
## ---------------|-----------|-----------|-----------|
##            Bad |        24 |        66 |        90 |
##                |     0.080 |     0.220 |           |
## ---------------|-----------|-----------|-----------|
##   Column Total |       145 |       155 |       300 |
## ---------------|-----------|-----------|-----------|
##
##
postResample(credit_cost_pred, testing\$Creditability)
##  Accuracy     Kappa
## 0.6233333 0.2565789

This model has lower accuracy (62.3%) with more mistakes. However, the type of errors are very different. This time it will try to reduce the costly predictions (actual bad creditability but predicted as good).

#### To-do

• try other methods like randomForest, explore the caret function
• try other meta-algorithms like bagging, cross-validation


text:
Do you know any beamer templates to prepare presentations for kids? [closed]

I am a scientist and always use beamer templates for presentations, but I have never used beamer for more informal, "flashy" presentations (like the one you need to show kids).

I have to present to a middle-school and I don't want a template that looks "boring". Do you know a good beamer template for that purpose? Thanks.

• Thank you for your input. Usually beamer templates are very formal and "non-flashy". I would like something more colorful/playful. I cannot post a screenshot because I want to find a template that is like that and I haven't been able to. It's one of those "I'll know when I see it" kind of situation, so I would appreciate a link to a repository or webpage with templates for kids. – MsKK Sep 21 '17 at 19:19
• You could add some images form here: tex.stackexchange.com/questions/387047/…. In particular, see this one: tex.stackexchange.com/questions/63732/… :) – CarLaTeX Sep 21 '17 at 19:22
• You could give ConTeXt a chance. There are plenty of colorfull theme shipped with the distribution. Some of them are displayed in a ConTeXt wiki entry. Be aware that it is not LaTeX but another set of TeX macros. – sztruks Sep 21 '17 at 19:27
• Use simple language and lots of colors. It's basically the same approach you would use for upper management. ;-) – John Kormylo Sep 21 '17 at 19:50
• Don't forget the Comic Sans font! (LOL) – Steven B. Segletes Sep 22 '17 at 11:15

I decided to write a few pointers. Actually, this is not a proper answer, but it's too long for a comment. So here we go, community wiki it is. :)

First and foremost, congratulations for sharing knowledge with kids! They are the future and our only hope of a better world.

My first suggestion is: never underestimate their comprehension. I believe this is why the educational system in some places is failing greatly: educators do not trust their kids' potential. The kids have the same hardware of you and I. :)

Of course, they are in the process of knowledge acquisition, learning every day with every interaction. A good care with the tone is advisable, as a means to compatible with their age. It is a matter of saying the same thing with a different wording. Kids are like sponges, they absorb everything! They will notice everything you say and everything that is written in your slides! It is a fantastic experience.

Let's go!

I think it's nice to know the technical aspects of the place. How good is the projector? do you plan talking with lights on or off? Are colours properly displayed on the big screen? How far will kids sit from the projection screen? Will you be close to them, in the same level, or will you be on a stage?

The safe strategy is to use a white (or light) background. Remember that not all colours look good on the big screen.

In general, sans serif fonts are advisable for presentations, as they look good on the big screen. I'd avoid serif fonts because they can make the reading quite challenging, specially if the projection is not that good.

Sans serif fonts are indicated for presentations. There is a nice list of fonts available in the Font Catalogue, so pick the one you like the most! Feel comfortable!

If possible, know your audience beforehand. I do not remember the source, but there are studies out there telling that fonts with irregular shapes (like Comic Sans) have a positive effect on kids with dyslexia! Fonts do have an impact on your audience, so, if you can help them, do not hesitate on doing it!

Do not fill your slides with text. Add just a few keywords to help you keep the train of thought, then add an image. It would be great that, for each slide, you have a different image that somehow is related to the text. Beware: it is very challenging!

Whenever possible, add a relevant image to the text. I usually insert images near the text with the columns environment.

I usually change image and text placements on each slide (left, right, up, down), so the audience gets the visual hint that the slide has changed. On some slides, it is interesting to replace the text with a huge image. So they say, "a picture is worth a thousand words". :)

Regarding the content, always tell a story. This might sound unusual, however it is surprisingly effective. Create a character and develop your reasoning on it. Abstract thinking is tough, so help them with a concrete representation. Give your character a name, or let the kids name him/her/it.

Always tell a story with your presentation.

Well, that is it, basically. :) Of course, I will not end these notes without giving you a suggestion for an actual theme. I once drew some elements heavily based on a Broadway poster as a means to use them on a presentation. The .sty file is available here:

https://github.com/cereda/marypoppins

The repository name actually gives the hint of things to come. :) I am a huge fan of Mary Poppins. I originally wrote this code for a UK-TUG user meeting presentation, but I decided to go for a cleaner theme in the last minute. My main .tex file is as follows:

\documentclass{beamer}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{marypoppins}

\usetikzlibrary{calc,decorations.markings}

\newcommand\TestF{\begin{frame}test\end{frame}}
\newcommand\vTestF{\TestF\TestF\TestF\TestF\TestF}
\newcommand\xxTestF{\vTestF\vTestF\vTestF\vTestF}
\def\factor{0.5}
\setbeamertemplate{background canvas}{\resizebox{\paperwidth}{\paperheight}{\london}}

\setbeamertemplate{background}{%
\begin{tikzpicture}[remember picture,overlay, decoration={markings, mark=at position \thepage/40 with { \node {\scalebox{.1}{\marypoppins}}; }} ]
\path[postaction=decorate]
($(current page.north west)+(-1,0)$) to[out=-30,in=90]
(current page.center) to[out=-90,in=180,looseness=6,distance=4cm]
(current page.center) to[out=0,in=160]
(current page.south east);
\end{tikzpicture}%
}

\title{My title}
\author{Author}
\date{Date}
\institute{Institute}

\begin{document}

\maketitle

\xxTestF\xxTestF

\end{document}

Beware, for the compilation is very slow. The TikZ elements are heavy, so please use this code with great care! The result is shown as follows, created with:

\$ convert -delay 10 -loop 0 -density 300 -dispose previous \
marypoppins_slides.pdf animation.gif

I think the magic is now unveiled. :) The idea is to have Mary doing some air maneuvres before landing. Thankfully, the lady is safe and sound. And of course, a spoonful of sugar makes the medicine goes down in a most delightful way!

Good luck with your presentation! Quack! :)


text:
# On semi-$\Pi$-property of subgroups of finite group

Document Type: Research Paper

Authors

School of Applied Mathematics, Chengu Information Technology, Chengdu 610225, P. R. China.

Abstract

Let $G$ be a group and $H$ a subgroup of $G$.  $H$ is said to have semi-$\Pi$-property in $G$ if there is a subgroup $T$ of $G$ such that $G=HT$ and $H\cap T$ has $\Pi$-property in $T$. In this paper, investigating on semi-$\Pi$-property of subgroups, we shall obtain some new description of finite groups.

Keywords

Main Subjects

### References

X. Chen and W. Go, On weakly S-embedded and weakly embedded subgroups, Sib. Math. J. 54 (2013), no. 5, 931--945.

X. Chen and W. Guo, On the partial property of subgroups of finite groups, J. Group Theory 16 (2013), no. 5, 745--766.

W. E. Deskins, On quasinormal subgroups of finite groups, Math. Z. 82 (1963) 125--132.

K. Doerk and T. Hawkes, Finite Soluble Groups, Walter de Gruyter, Berlin, 1992.

W. Guo, The Theory of Classes of Groups, Kluwer Acad. Publ. Group, Dordrecht, 2000.

W. Guo and A.N. Skiba, Finite groups with given s-embedded and n-embedded subgroups, J. Algebra 321 (2009), no. 10, 2843--2860.

B. Huppert, Endliche Gruppen I, Springer-Verlag, Berlin, 1967.

B. Li, On property and normality of subgroups of finite groups, J. Algebra 334 (2011), no. 11, 321--337.

B. Li, Finite groups with supplemented minimal subgroups, Comm. Algebra 41 (2013), no. 6, 2060--2070.

O. Ore, Contributions to the theory of groups of finite order, Duke Math. J. 5 (1939), no. 2, 431--460.

D. J. S. Robinson, A Course in the Theory of Groups, Springer-Verlag, 2nd edition, New York, 1996.

A. Skiba, On weakly s-permutable subgroups of finite groups, J. Algebra 315 (2007), no. 1, 192--209.

N. Su, Y. Li, and Y. Wang, A criterion of p-hypercyclically embedded subgroups of finite groups, J. Algebra 400 (2014) 82--93.

Y.Wang, c-normality of groups and its properties, J. Algebra 180 (1996), no. 3, 954--965.

M. Weinstein (ed.), Between Nilpotent and Solvable, Polygonal Publ. House, Washington, NJ, 1982.

### History

• Receive Date: 06 April 2015
• Revise Date: 01 November 2015
• Accept Date: 14 February 2017


text:
# More and Less Space in Cases [duplicate]

Why do I have this space (red arrow)? Why I do not have more space (orange arrow)?

I use cases and doublespacing.

Even I use \everydisplay\expandafter{\the\everydisplay\setstretch{1}}, because of doublespacing, as suggested in Matrix within equation, the problem does not solve.

I have tried array, dcases, drcases, but it does not work.

Thank you!

## marked as duplicate by Mico, Troy, Mensch, Schweinebacke, diabonasOct 7 '17 at 17:27

• @Mico I have not issued any command \renewcommand\baselinestretch{2}. I use the harvard-thesis.cls and I use doublespacing. – Vassilis Chasiotis Oct 7 '17 at 15:26
• Ah, the piece of information related to the use of the setspace package and the \doublespacing directive is absolutely crucial. – Mico Oct 7 '17 at 15:31
• You should study the query Matrix within equation and, in particular, the answer provided by Herbert, viz., issuing the instruction \everydisplay\expandafter{\the\everydisplay\setstretch{1}} in the preamble. – Mico Oct 7 '17 at 15:46

You can have some symmetry using \bigstrut but you get a better result with some caution loading empheq and using the eponymous environment:

\documentclass[12pt, a4paper]{article}
\usepackage{setspace}
\usepackage{empheq, bigstrut}

\begin{document}
\doublespacing
With \texttt{ dcases: }
$\begin{cases} x + y = q^2 \\ \biggl[\dfrac{N}{q^2}\biggr]_{\bigstrut[b]} x + \biggl(\biggl[\dfrac{N}{q^2}\biggr] + 1\biggr)y = N \end{cases}$%

With \verb|\empheqlbrace:|
\begin{empheq}[left=\empheqlbrace]{align*}
& x + y = q^2\\
& \biggl[\dfrac{N}{q^2}\biggr]x + \biggl(\biggl[\dfrac{N}{q^2}\biggr]_{\bigstrut[b]} + 1\biggr)y = N
\end{empheq}

\end{document}

• Note that the OP has revealed a crucial piece of information in the meantime, viz., that he/she uses the setspace package and a \doublespacing directive. Do you want to adjust your answer accordingly? – Mico Oct 7 '17 at 15:33
• @Bernand It works perfect with \empheqlbrace. But I need to use \\[-2.6ex] instead of \\[-2ex] to be symmetric. Maybe because of \doublespacing as @Mico said. – Vassilis Chasiotis Oct 7 '17 at 15:43
• Probably. The exact value has to be found by trial and error. Normally, there would be no correction to do, but here there's a discrepancy between the two rows. – Bernard Oct 7 '17 at 15:45
• @VassilisChasiotis: I've found a better solution, using bigstrut. Please see my updated answer. – Bernard Oct 7 '17 at 16:07
• @Bernard It is much better! I can also use align,align* with numbering easier. Thank you! – Vassilis Chasiotis Oct 7 '17 at 16:13


text:
# Homework Help: Determining if a line is perpendicular in $R^3$

1. Feb 3, 2015

### Calpalned

1. The problem statement, all variables and given/known data
Is the line through (-2, 4, 0) and (1, 1, 1) perpendicular to the line through (2, 3, 4) and (3, -1, -8)?

2. Relevant equations
R = R0 + tV (for each line)

3. The attempt at a solution
If the lines are parallel, then the V for the two equations will be proportional to each other. How are the two V's related if they are perpendicular?

2. Feb 3, 2015

### Dick

Think dot product.

3. Feb 3, 2015

### Calpalned

I see thank you, Dick.

4. Feb 3, 2015

### Brian T

You could also use the cross product if you prefer that.

5. Feb 3, 2015

### LCKurtz

And you don't mind doing at least three times as much work...

6. Feb 3, 2015

7. Feb 3, 2015

### SammyS

Staff Emeritus
You might also want to be sure that the lines intersect and thus are not skew lines.


text:
# American Institute of Mathematical Sciences

• Previous Article
General decay of solutions of a Bresse system with viscoelastic boundary conditions
• DCDS Home
• This Issue
• Next Article
Caccioppoli type inequality for non-Newtonian Stokes system and a local energy inequality of non-Newtonian Navier-Stokes equations without pressure
September  2017, 37(9): 4835-4856. doi: 10.3934/dcds.2017208

## Connected components of meanders: Ⅰ. bi-rainbow meanders

 Free University Berlin, Arnimallee 3, Berlin 14195, Germany

* Corresponding author: Anna Karnauhova

Received  March 2016 Revised  April 2017 Published  June 2017

Fund Project: Both authors are supported by the CRC 647 "Space-Time-Matter"

Closed meanders are planar configurations of one or several disjoint closed Jordan curves intersecting a given line transversely. They arise as shooting curves of parabolic PDEs in one space dimension, as trajectories of Cartesian billiards, and as representations of elements of Temperley-Lieb algebras.

Given the configuration of intersections, for example as a permutation or an arc collection, the number of Jordan curves is unknown. We address this question in the special case of bi-rainbow meanders, which are given as non-branched families (rainbows) of nested arcs. Easily obtainable results for small bi-rainbow meanders containing at most four families in total (lower and upper rainbow families) suggest an expression of the number of curves by the greatest common divisor (gcd) of polynomials in the sizes of the rainbow families.We prove however, that this is not the case.

On the other hand, we provide a complexity analysis of nose-retraction algorithms. They determine the number of connected components of arbitrary bi-rainbow meanders in logarithmic time. In fact, the nose-retraction algorithms resemble the Euclidean algorithm.

Looking for a closed formula of the number of connected components, the nose-retraction algorithm is as good as a gcd-formula and therefore as good as we can possibly expect.

Citation: Anna Karnauhova, Stefan Liebscher. Connected components of meanders: Ⅰ. bi-rainbow meanders. Discrete & Continuous Dynamical Systems - A, 2017, 37 (9) : 4835-4856. doi: 10.3934/dcds.2017208
##### References:
 [1] V. I. Arnol'd, A branched covering of $CP^2 \to S^4$, hyperbolicity and projectivity topology, Siberian Mathematical Journal, 29 (1988), 717-726. doi: 10.1007/BF00970265. Google Scholar [2] S. Cautis and D. M. Jackson, The matrix of chromatic joins and the Temperley-Lieb algebra, Journal of Combinatorial Theory. Series B, 89 (2003), 109-155. doi: 10.1016/S0095-8956(03)00071-6. Google Scholar [3] V. Coll, C. Magnant and H. Wang, The signature of a meander, preprint, arXiv: 1206.2705.Google Scholar [4] V. Dergachev and A. Kirillov, Index of Lie algebras of seaweed type, Journal of Lie Theory, 10 (2000), 331-343. Google Scholar [5] P. Di Francesco, O. Golinelli and E. Guitter, Meanders and the Temperley-Lieb algebra, Communications in Mathematical Physics, 186 (1997), 1-59. doi: 10.1007/BF02885671. Google Scholar [6] B. Fiedler and P. Castañeda, Rainbow meanders and Cartesian billiards, São Paulo Journal of Mathematical Sciences, 6 (2012), 247-275. doi: 10.11606/issn.2316-9028.v6i2p247-275. Google Scholar [7] B. Fiedler and C. Rocha, Heteroclinic orbits of semilinear parabolic equations, Journal of Differential Equations, 125 (1996), 239-281. doi: 10.1006/jdeq.1996.0031. Google Scholar [8] B. Fiedler and C. Rocha, Realization of meander permutations by boundary value problems, Journal of Differential Equations, 156 (1999), 282-308. doi: 10.1006/jdeq.1998.3532. Google Scholar [9] B. Fiedler and C. Rocha, Connectivity and design of planar global attractors of Sturm type. Ⅱ: Connection graphs, Journal of Differential Equations, 244 (2008), 1255-1286. doi: 10.1016/j.jde.2007.09.015. Google Scholar [10] B. Fiedler and C. Rocha, Connectivity and design of planar global attractors of Sturm type.Ⅰ: Bipolar orientations and Hamiltonian paths, Journal für die Reine und Angewandte Mathematik, 635 (2009), 71-96. doi: 10.1515/CRELLE.2009.076. Google Scholar [11] B. Fiedler and C. Rocha, Connectivity and design of planar global attractors of Sturm type. Ⅲ: Small and platonic examples, Journal of Dynamics and Differential Equations, 22 (2010), 121-162. doi: 10.1007/s10884-009-9149-2. Google Scholar [12] A. Karnauhova, Meanders: Sturm Global Attractors, Seaweed Lie Algebras and Classical Yang–Baxter Equation, 1st edition, Walter de Gruyter GmbH, Berlin/ Boston, 2017. doi: 10.1515/9783110533026. Google Scholar [13] M. La Croix, Approaches to the Enumerative Theory of Meanders, Master's thesis, 2003, http://www.math.uwaterloo.ca/~malacroi/Latex/Meanders.pdf.Google Scholar [14] C. Rocha, Properties of the attractor of a scalar parabolic PDE, Journal of Dynamics and Differential Equations, 3 (1991), 575-591. doi: 10.1007/BF01049100. Google Scholar [15] H. V. N. Temperley and E. H. Lieb, Relations between the 'percolation' and 'colouring' problem and other graph-theoretical problems associated with regular planar lattices: some exact results for the 'percolation' problem, Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences, 322 (1971), 251-280. doi: 10.1098/rspa.1971.0067. Google Scholar [16] B. W. Westbury, The representation theory of the Temperley-Lieb algebras, Mathematische Zeitschrift, 219 (1995), 539-565. doi: 10.1007/BF02572380. Google Scholar

show all references

##### References:
 [1] V. I. Arnol'd, A branched covering of $CP^2 \to S^4$, hyperbolicity and projectivity topology, Siberian Mathematical Journal, 29 (1988), 717-726. doi: 10.1007/BF00970265. Google Scholar [2] S. Cautis and D. M. Jackson, The matrix of chromatic joins and the Temperley-Lieb algebra, Journal of Combinatorial Theory. Series B, 89 (2003), 109-155. doi: 10.1016/S0095-8956(03)00071-6. Google Scholar [3] V. Coll, C. Magnant and H. Wang, The signature of a meander, preprint, arXiv: 1206.2705.Google Scholar [4] V. Dergachev and A. Kirillov, Index of Lie algebras of seaweed type, Journal of Lie Theory, 10 (2000), 331-343. Google Scholar [5] P. Di Francesco, O. Golinelli and E. Guitter, Meanders and the Temperley-Lieb algebra, Communications in Mathematical Physics, 186 (1997), 1-59. doi: 10.1007/BF02885671. Google Scholar [6] B. Fiedler and P. Castañeda, Rainbow meanders and Cartesian billiards, São Paulo Journal of Mathematical Sciences, 6 (2012), 247-275. doi: 10.11606/issn.2316-9028.v6i2p247-275. Google Scholar [7] B. Fiedler and C. Rocha, Heteroclinic orbits of semilinear parabolic equations, Journal of Differential Equations, 125 (1996), 239-281. doi: 10.1006/jdeq.1996.0031. Google Scholar [8] B. Fiedler and C. Rocha, Realization of meander permutations by boundary value problems, Journal of Differential Equations, 156 (1999), 282-308. doi: 10.1006/jdeq.1998.3532. Google Scholar [9] B. Fiedler and C. Rocha, Connectivity and design of planar global attractors of Sturm type. Ⅱ: Connection graphs, Journal of Differential Equations, 244 (2008), 1255-1286. doi: 10.1016/j.jde.2007.09.015. Google Scholar [10] B. Fiedler and C. Rocha, Connectivity and design of planar global attractors of Sturm type.Ⅰ: Bipolar orientations and Hamiltonian paths, Journal für die Reine und Angewandte Mathematik, 635 (2009), 71-96. doi: 10.1515/CRELLE.2009.076. Google Scholar [11] B. Fiedler and C. Rocha, Connectivity and design of planar global attractors of Sturm type. Ⅲ: Small and platonic examples, Journal of Dynamics and Differential Equations, 22 (2010), 121-162. doi: 10.1007/s10884-009-9149-2. Google Scholar [12] A. Karnauhova, Meanders: Sturm Global Attractors, Seaweed Lie Algebras and Classical Yang–Baxter Equation, 1st edition, Walter de Gruyter GmbH, Berlin/ Boston, 2017. doi: 10.1515/9783110533026. Google Scholar [13] M. La Croix, Approaches to the Enumerative Theory of Meanders, Master's thesis, 2003, http://www.math.uwaterloo.ca/~malacroi/Latex/Meanders.pdf.Google Scholar [14] C. Rocha, Properties of the attractor of a scalar parabolic PDE, Journal of Dynamics and Differential Equations, 3 (1991), 575-591. doi: 10.1007/BF01049100. Google Scholar [15] H. V. N. Temperley and E. H. Lieb, Relations between the 'percolation' and 'colouring' problem and other graph-theoretical problems associated with regular planar lattices: some exact results for the 'percolation' problem, Proceedings of the Royal Society of London. Series A. Mathematical and Physical Sciences, 322 (1971), 251-280. doi: 10.1098/rspa.1971.0067. Google Scholar [16] B. W. Westbury, The representation theory of the Temperley-Lieb algebras, Mathematische Zeitschrift, 219 (1995), 539-565. doi: 10.1007/BF02572380. Google Scholar
A general meander as a pair of arc collections
Some examples of bi-rainbow meanders and colored connected components; a) $\mathcal{R}\mathcal{M}(1, 2, 3, 4, 5)$; b) $\mathcal{R}\mathcal{M}(1, 5, 2, 3, 4)$; c) $\mathcal{R}\mathcal{M}(4, 5, 1, 2, 3)$
Correspondence of cycles of $\pi^⩍\sigma$ and faces of the planar graph in Proposition 1
Shooting permutation of a connected meander
Flip of the lower arc collection of a meander
Generators of the Temperley-Lieb algebra $TL_{\alpha}(q)$ as strand diagrams
Meander as the closure of an element of a Temperley-Lieb algebra
Meander as trajectories of a Cartesian billiard
General bi-rainbow meander
Collapse of the bi-rainbow meander $\mathcal{R}\mathcal{M}(7, 2, 3, 5, 4)$. From top to bottom: $\mathcal{R}\mathcal{M}$, colored domains, and $\mathcal{C}\mathcal{R}\mathcal{M}$. The collapsed bi-rainbow meander consists of one path, two cycles, and an isolated point (counted as a second path)
Collapse for general meanders: a) general meaner; b) colored domain; c) gluing of neighboring vertices and arcs; d) general collapsed meander with branched curves
Outer nose retractions of bi-rainbow meanders
Cutting of Cartesian billiards to resemble outer nose retractions
Inner nose retraction of a bi-rainbow meander
Cutting of Cartesian billiards to resemble inner nose retractions
Sequence of connected meanders generated from $\mathcal{R}\mathcal{M}(1, 1, 2)$ by iterated inverse outer nose retractions
 [1] Søren Eilers. C *-algebras associated to dynamical systems. Discrete & Continuous Dynamical Systems - A, 2006, 15 (1) : 177-192. doi: 10.3934/dcds.2006.15.177 [2] Richard H. Cushman, Jędrzej Śniatycki. On Lie algebra actions. Discrete & Continuous Dynamical Systems - S, 2018, 0 (0) : 1-15. doi: 10.3934/dcdss.2020066 [3] Franz W. Kamber and Peter W. Michor. Completing Lie algebra actions to Lie group actions. Electronic Research Announcements, 2004, 10: 1-10. [4] Meera G. Mainkar, Cynthia E. Will. Examples of Anosov Lie algebras. Discrete & Continuous Dynamical Systems - A, 2007, 18 (1) : 39-52. doi: 10.3934/dcds.2007.18.39 [5] Tracy L. Payne. Anosov automorphisms of nilpotent Lie algebras. Journal of Modern Dynamics, 2009, 3 (1) : 121-158. doi: 10.3934/jmd.2009.3.121 [6] Patrik Nystedt, Johan Öinert. Simple skew category algebras associated with minimal partially defined dynamical systems. Discrete & Continuous Dynamical Systems - A, 2013, 33 (9) : 4157-4171. doi: 10.3934/dcds.2013.33.4157 [7] Andrew N. W. Hone, Matteo Petrera. Three-dimensional discrete systems of Hirota-Kimura type and deformed Lie-Poisson algebras. Journal of Geometric Mechanics, 2009, 1 (1) : 55-85. doi: 10.3934/jgm.2009.1.55 [8] Hiroki Sumi. Dynamics of postcritically bounded polynomial semigroups I: Connected components of the Julia sets. Discrete & Continuous Dynamical Systems - A, 2011, 29 (3) : 1205-1244. doi: 10.3934/dcds.2011.29.1205 [9] David Cowan. Rigid particle systems and their billiard models. Discrete & Continuous Dynamical Systems - A, 2008, 22 (1&2) : 111-130. doi: 10.3934/dcds.2008.22.111 [10] Oǧul Esen, Hasan Gümral. Geometry of plasma dynamics II: Lie algebra of Hamiltonian vector fields. Journal of Geometric Mechanics, 2012, 4 (3) : 239-269. doi: 10.3934/jgm.2012.4.239 [11] Giovanni De Matteis, Gianni Manno. Lie algebra symmetry analysis of the Helfrich and Willmore surface shape equations. Communications on Pure & Applied Analysis, 2014, 13 (1) : 453-481. doi: 10.3934/cpaa.2014.13.453 [12] Robert L. Griess Jr., Ching Hung Lam. Groups of Lie type, vertex algebras, and modular moonshine. Electronic Research Announcements, 2014, 21: 167-176. doi: 10.3934/era.2014.21.167 [13] Viktor Levandovskyy, Gerhard Pfister, Valery G. Romanovski. Evaluating cyclicity of cubic systems with algorithms of computational algebra. Communications on Pure & Applied Analysis, 2012, 11 (5) : 2023-2035. doi: 10.3934/cpaa.2012.11.2023 [14] Ruyun Ma, Man Xu. Connected components of positive solutions for a Dirichlet problem involving the mean curvature operator in Minkowski space. Discrete & Continuous Dynamical Systems - B, 2019, 24 (6) : 2701-2718. doi: 10.3934/dcdsb.2018271 [15] M. P. de Oliveira. On 3-graded Lie algebras, Jordan pairs and the canonical kernel function. Electronic Research Announcements, 2003, 9: 142-151. [16] Isaac A. García, Jaume Giné, Jaume Llibre. Liénard and Riccati differential equations related via Lie Algebras. Discrete & Continuous Dynamical Systems - B, 2008, 10 (2&3, September) : 485-494. doi: 10.3934/dcdsb.2008.10.485 [17] Özlem Orhan, Teoman Özer. New conservation forms and Lie algebras of Ermakov-Pinney equation. Discrete & Continuous Dynamical Systems - S, 2018, 11 (4) : 735-746. doi: 10.3934/dcdss.2018046 [18] Thierry Paul, David Sauzin. Normalization in Banach scale Lie algebras via mould calculus and applications. Discrete & Continuous Dynamical Systems - A, 2017, 37 (8) : 4461-4487. doi: 10.3934/dcds.2017191 [19] Chin-Chin Wu. Monotonicity and uniqueness of wave profiles for a three components lattice dynamical system. Discrete & Continuous Dynamical Systems - A, 2017, 37 (5) : 2813-2827. doi: 10.3934/dcds.2017121 [20] Aristophanes Dimakis, Folkert Müller-Hoissen. Bidifferential graded algebras and integrable systems. Conference Publications, 2009, 2009 (Special) : 208-219. doi: 10.3934/proc.2009.2009.208

2018 Impact Factor: 1.143