# simplifying a simplicial set

The starting point to this question is a simplicial set with a large number of simplices. Sage is still computing exactly how many, but in dimension 4 there are more than 100,000 simplices. Is there a command similar to X.shrink_simplicial_complex(K), but for which the input is already a simplicial set? I am fairly certain this simplicial set description of a cell complex can be described much, much more efficiently. I would like to be able to compute homology and cohomology, but my guess is that this won't be feasible unless I can first simplify.

edit retag close merge delete

Sort by » oldest newest most voted The reduce method is the only one available, and that just collapses a spanning tree to a point, so it only affects 0- and 1-simplices. Maybe the optional Sage package kenzoand its simplicial set implementation provides something; see https://doc.sagemath.org/html/en/refe....

more

You could try to reproduce shrink_simplicial_complex by hand: try to identify a large contractible subcomplex and then take the quotient. How you identify that subcomplex will depend on the simplicial set you're working with.

Thanks very much for your help! My problem is with the large number of 4- and 5- dimensional simplices; there are not nearly so many lower dimensional simplices. Suppose I added extra vertices to get a simplicial complex. If I took a dual, is there some way of getting around the fact that the resulting "polytopal complex" isn't implemented yet in sage? I would want to find a maximal spanning tree in the dual, and collapse that. One way or the other, I can reduce the number of simplices by some multiplicative factor. Do you have an estimate of the maximal size of a simplicial set for which sage can realistically compute homology and cohomology? I could imagine allowing the computer to run for months, but not years. Would it help to calculate in Fp, and take limits?

Computations over a field (Q or Fp) will be faster than over Z, but I don't know if it will be enough to make a difference. Can you try with some smaller examples to see how long the computations actually take? I tried with a simplicial set with f-vector [1, 0, 11, 166, 1621, 9000, 29175, 56070, 62790, 37800, 9450], and it took about 2 minutes to compute the mod 2 homology. Rational homology takes longer, and presumably integral homology even longer, but I haven't gotten to that yet.

Warning: it took over 90 minutes with rational coefficients. Finite fields seem to be much faster: under 2 minutes for fields of size 2, 3, 17, 137.

I am relieved, that sounds much faster than I had expected!! I am fixing up an error I make labelling and enumerating simplices. Once that is sorted I will be able to experiment. Updating the dictionary that defines the simplicial set might be what takes longest. When computing in Q or Z, did you get any bogus terms due to rounding errors?