I’m at a small workshop/conference on “matroid computation” in Wellington this week – the idea being to get together the handful of people in the world who are interested not only in matroids, but particularly in computing with matroids to have a few talks and lots of discussion.
The problem we face is that everyone has written their own software for their own problems in their own language and with varying degrees of reusability, flexibility and extensibility. Basically there is simply no matroid equivalent of GAP or Magma that will permit the exploration of individual matroids, routine case checking of small cases, identification of known small matroids and so on, while also facilitating reasonably hard-core research programming.
Anyway the week has been fun and I’ve learned a lot about other people’s approaches – my own particular approach is in using databases that permit rapid answering of a variety of different problems (after a considerable “set-up” time). Here are the slides from my talk (VUW2010) describing the basic set up and one problem that I used it for, though there are many others on the list.
I also happen to particularly like Wellington as a city – on a sunny day it is stunningly beautiful and it has a really lively “vibe” – it is still cheap enough for arty, hippie, countercultural types to live, shop and play downtown and they seem to coexist happily with the politicians and bankers. So there’s a real eclectic mix of shops like Minnie Cooper where you can buy $400 handbags, alongside body piercing joints. But one thing’s for sure – banker or hippy, politician or artist – they all drink a heck of a lot here! It’s also a nice change from Perth (with its “Swiss prices” as recent visitor Harald Helfgott described them) to be able to easily afford daily things and to be able to walk into a restaurant with only a cursory glance at the menu prices!
Wellington is incredibly hilly and they basically just perch houses on every little spot they can.
Anyway, back to the Maths…
It seems that we have reached a bit of an impasse – a GAP or Sage package is favoured by some, but because the data required to store a general matroid can get awfully large awfully quickly, it is far from clear that the general purpose data structures offered by GAP/Sage can effectively replace the highly-tuned tightly packed data structures in the existing code that are manipulated with C’s bitwise operators.
So where to go from here? Maybe we’ll just end up back with everyone using their own code for their own particular purposes? Maybe that’s just the best we can do with such loosely structured objects as matroids?