Iso-class representatives for all weakly-connected digraphs with up to 10 arcs

Have you ever wanted to test some hypothesis or constructions involving (weakly) connected directed graphs? In that case, it can be quite resource consuming to generate canonically labelled representatives as you go, for instance, in sage. Furthermore, there is a good chance that you are going to need the representatives again and again. After having spent my fair share of computing power to generate these representatives, I went hunting for an online database where I could just download them — but I did not find any. So I created such a database myself using sage, possibly saving you around 12 hours of computations (see: github.com/immanuel-albrecht/databases).

The SQL query

SELECT arcs, COUNT() AS nbr_of_digraphs FROM (SELECT ID, COUNT() AS arcs FROM weakly_connected  AS tmp1  GROUP BY ID) AS tmp2 GROUP BY arcs  

yields:

arcs    nbr_of_digraphs
   1    1
   2    4
   3    12
   4    53
   5    237
   6    1,306
   7    7,537
   8    47,913
   9    322,253
  10    2,297,874

Now, let’s compare this to the corresponding OEIS-entry:

1, 4, 12, 53, 237, 1306, 7537, 47913, 322253, 2297874, ...

So it appears that the canonical labeling implemented in sage is working as expected 🙂

Installing CUDA 9.0 on Windows 10 with Visual Studio Community Edition

Prerequisites:

For me, the CUDA 9.0 (as well as 9.1) installer failed to install on a fresh Windows 10 system with the 2015 community edition Visual Studio. The problematic items seems to be the “Visual Studio Integration” , which fails to install and somehow blocks all other items from being installed. Fortunately, there is a way around this and you can still use Visual Studio, but you must download the ~1.5GB local install file. We assume that you have already installed Visual Studio Community 2015. Continue reading

Jackson 8-String Modification

Okay, here is a short account of what modifications I did with my new Jackson SLATFXQMG 3-8 TGR. First of all, I installed Schaller Security Locks as a replacement for the strap lock system that comes with the guitar. I did this only for one reason: I have the same locks on all my other guitars and I like to use any strap I own with any guitar I own. Continue reading

Reconstructing Learners’ Skills and Item Skill Requirements From Response Table

In this post, I would like to introduce you to a problem posed by Bernhard Ganter on the occasion of the 2014 summer school on “Methodology of task design – How to construct exercises for learning”, as well as some code that I wrote in order to get some exemplary solutions.

The following table was handed to all participants of the summer school:

Response Table
Response Table

Continue reading

Sharing Data Between C and Python 3

Today, I want to share a small Python 3 script that I wrote in order to ease the exchange of binary data between Python 3 and C code. For me, sharing data between Python and C is a reoccurring issue, since, usually, I find it more convenient to use Python in order to convert data between different formats and representations. C, on the other hand, usually gives me the raw speed Python cannot offer, but that is needed to do calculations with bigger data sets. Continue reading