Generating plane triangulations
Does sage have a function that generates plane triangulations? Something like PLANTRI? If not, is it possible to use plantri from within sage and how?
Thank you
Does sage have a function that generates plane triangulations? Something like PLANTRI? If not, is it possible to use plantri from within sage and how?
Thank you
If you have plantri installed and somewhere in your PATH variable you can easily adapt the code of graphs.nauty_geng
to make it work with plantri. Something along the following lines might do the job:
def plantri(self, options=""):
import subprocess
sp = subprocess.Popen("plantri -g {0}".format(options), shell=True,
stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE, close_fds=True)
gen = sp.stdout
while True:
try:
s = gen.next()
except StopIteration:
raise StopIteration("Exhausted list of graphs from plantri")
G = graph.Graph(s[:-1], format='graph6')
yield G
Thank you very much.
Would this work for all OS or just Unix/Linux system?
You're welcome. Not sure about that, I've only tested it on OSX and Linux.
plantri is an optional package that you can install using
sage -i plantri
You will then be able to use the iterator over connected planar triangulations
sage: list(graphs.triangulations(6))
[Graph on 6 vertices, Graph on 6 vertices]
sage: all(g.is_planar() for g in graphs.triangulations(10))
True
Asked: 11 years ago
Seen: 1,049 times
Last updated: Mar 13 '19