MyNixOS website logo
Description

Deal with Bratteli Graphs.

Utilities for Bratteli graphs. A tree is an example of a Bratteli graph. The package provides a function which generates a 'LaTeX' file that renders the given Bratteli graph. It also provides functions to compute the dimensions of the vertices, the intrinsic kernels and the intrinsic distances. Intrinsic kernels and distances were introduced by Vershik (2014) <doi:10.1007/s10958-014-1958-0>.

bratteli

Bratteli graphs.

R-CMD-check


This package deals with Bratteli graphs. In every function of the package, the Bratteli graph is given by a function returning for a level n of the graph the incidence matrix of the graph between level n and level n+1: the (i,j)-entry of this matrix is the number of edges between the i-th vertex at level n and the j-th vertex at level n+1.

For example, the binary tree is defined by:

tree <- function(n) {
  M <- matrix(0, nrow = 2^n, ncol = 2^(n+1))
  for(i in 1:nrow(M)) {
    M[i, ][c( 2*(i-1)+1, 2*(i-1)+2 )] <- 1
  }
  M
}

The function bratteliGraph generates some LaTeX code which renders the graph up to a given level:

bratteliGraph("binaryTree.tex", tree, 3)

If you don’t like the style, you are free to modify the LaTeX code.

Here is a binary tree with double edges:

tree2 <- function(n) {
  M <- matrix(0, nrow = 2^n, ncol = 2^(n+1))
  for(i in 1:nrow(M)) {
    M[i, ][c( 2*(i-1)+1, 2*(i-1)+2 )] <- 2
  }
  M
}
bratteliGraph("binaryTree2.tex", tree2, 3)

Here is the code for the Pascal graph:

Pascal <- function(n) {
  M <- matrix(0, nrow = n+1, ncol = n+2)
  for(i in 1:(n+1)) {
    M[i, ][c( i, i+1L )] <- 1
  }
  M
}

The dimension of a vertex of a Bratteli graph is the number of paths of the graph going from the root vertex to this vertex. The function bratteliDimensions of the package computes these numbers:

library(bratteli)
bratteliDimensions(Pascal, 3)
## [[1]]
## [1] "1" "1"
## 
## [[2]]
## [1] "1" "2" "1"
## 
## [[3]]
## [1] "1" "3" "3" "1"

Bratteli graphs are of interest to ergodicians, and particularly to Vershik, who introduced the intrinsic kernels of a Bratteli graph and the intrinsic distance between the vertices of a Bratteli graph. Here is a picture of the Pascal graph showing the intrinsic kernels:

bratteliGraph("Pascal.tex", Pascal, 3, edgelabels = "kernels")

The intrinsic kernels are returned by the function bratteliKernels. The intrinsic distances between two vertices at the same level are returned by the function bratteliDistances.

Metadata

Version

1.0.0

License

Unknown

Platforms (75)

    Darwin
    FreeBSD
    Genode
    GHCJS
    Linux
    MMIXware
    NetBSD
    none
    OpenBSD
    Redox
    Solaris
    WASI
    Windows
Show all
  • aarch64-darwin
  • aarch64-genode
  • aarch64-linux
  • aarch64-netbsd
  • aarch64-none
  • aarch64_be-none
  • arm-none
  • armv5tel-linux
  • armv6l-linux
  • armv6l-netbsd
  • armv6l-none
  • armv7a-darwin
  • armv7a-linux
  • armv7a-netbsd
  • armv7l-linux
  • armv7l-netbsd
  • avr-none
  • i686-cygwin
  • i686-darwin
  • i686-freebsd
  • i686-genode
  • i686-linux
  • i686-netbsd
  • i686-none
  • i686-openbsd
  • i686-windows
  • javascript-ghcjs
  • loongarch64-linux
  • m68k-linux
  • m68k-netbsd
  • m68k-none
  • microblaze-linux
  • microblaze-none
  • microblazeel-linux
  • microblazeel-none
  • mips-linux
  • mips-none
  • mips64-linux
  • mips64-none
  • mips64el-linux
  • mipsel-linux
  • mipsel-netbsd
  • mmix-mmixware
  • msp430-none
  • or1k-none
  • powerpc-netbsd
  • powerpc-none
  • powerpc64-linux
  • powerpc64le-linux
  • powerpcle-none
  • riscv32-linux
  • riscv32-netbsd
  • riscv32-none
  • riscv64-linux
  • riscv64-netbsd
  • riscv64-none
  • rx-none
  • s390-linux
  • s390-none
  • s390x-linux
  • s390x-none
  • vc4-none
  • wasm32-wasi
  • wasm64-wasi
  • x86_64-cygwin
  • x86_64-darwin
  • x86_64-freebsd
  • x86_64-genode
  • x86_64-linux
  • x86_64-netbsd
  • x86_64-none
  • x86_64-openbsd
  • x86_64-redox
  • x86_64-solaris
  • x86_64-windows