Previous
About HAP: Metric Spaces
next

1. Metrics on Vectors
The data file contains a list L of 400 vectorsi in R3. The following commands produce the 400×400 symmetric matrix whose (i,j)-entry is the Manhattan distance between L[i] and L[j]. (Alternative choices of metric include the Euclidean squared metric and Hamming metric.)
gap> ReadPackage("hap","www/SideLinks/About/data.txt");      #This reads in the list L
gap> S:=VectorsToSymmetricMatrix(L,ManhattanMetric);;
The following command uses GraphViz software to display the graph G(S,t) on 400 vertices with edge between i and j precisely when

S[i][j] <= tM / 100

where M is the maximum value of the entries in S. Thus the threshold t should be chosen in the range from 0 to 100. We choose t=8. We also choose to give the first 200 vertices a common colour distinct from the remaining vertices. The display shows that the first 200 vertices lie in one path-component of G(S,8), and the remaining 200 vertices lie in a second path-component. Each path-component "has the shape" of a cylinder or annulus.
gap> SymmetricMatDisplay(S,8, [ [1..200], [201..400] ] );


The following commands construct the graph G=G(S,10) and then display it.
gap> M:=Maximum(Maximum(S));;                                                 
gap> G:=SymmetricMatrixToGraph(S,10*M/100);
Graph on 400 vertices.

gap> GraphDisplay(G);

We use the term  simplicial nerve of G to mean the simplicial complex NG which has the same vertices and edges as G; a collection of vertices is a simplex in NG if and only if each pair of edges in the collection is connected by an edge in G. The following commands determine a subgraph H in G such that the simplicial nerves NG and NH are homotopy equivalent. The commands replace G by H and then display the subgraph.
gap> ContractGraph(G);;
gap> G;
Graph on 248 vertices.

gap> GraphDisplay(G);

The following commands illustrate two methods for calculating the low-dimensional homology of NG. The second method is more efficient in degrees 0 and 1 but has yet to be properly implemented in higher degrees.
gap> #Method One
gap> NG:=SimplicialNerveOfGraph(G,3);;
gap> NG:=SimplicialComplexToRegularCWComplex(NG);
Regular CW-complex of dimension 3
gap> Homology(NG,0);
[ 0, 0 ]
gap> Homology(NG,1);
[ 0, 0 ]

gap> #Method Two
gap> C:=RipsChainComplex(G,1);
Sparse chain complex of length 2 in characteristic 0 .

gap> Bettinumbers(C,0);
2
gap> Bettinumbers(C,1);
2
2. Metrics on Permutations
There are a number of standard metrics d(x,y) on permutations x, y  such as the Kendall metric (=number of neighbouring transpositions (i,i+1) needed to express x*y^-1), the Cayley metric (= number of transpositions (i,j) needed to express x*y^-1) and the Hamming metric (= #{ i :  x*y^-1(i) differs from i  } ). The following commands display the Sylow 2-subgroup of S10 with respect to the Cayley metric.
gap> G:=SymmetricGroup(10);;           
gap> P:=SylowSubgroup(G,2);;
gap> P:=Elements(P);;
gap> S:=NullMat(Size(P),Size(P));;
gap> for i in [1..Size(P)] do
> for j in [1..Size(P)] do
> S[i][j]:=CayleyMetric(P[i],P[j],10);
> od;od;
gap> SymmetricMatDisplay(S,50);



gap> SymmetricMatDisplay(S,15);


Previous Page
Contents
Next page