Browse Month

June 2020

Deficits and Surpluses (UK Sudoku Championship, 2020)

Last weekend I participated in the UK Sudoku Championship 2020. Participants had two hours to score points, by solving as many of 16 puzzles as they could – the top contestant finished everything correctly in 56 minutes 34 seconds, and sixteen people cleared everything within the time limit. It’s pretty impressive how long the tail of the distribution is. I finished thirteen out of sixteen puzzles, scoring 621 of 720 points (puzzles are worth different numbers of points depending on difficulty, and the ones I left behind were generally on the lower-valued side of things), and would probably have taken another 15 minutes to finish out the last three puzzles.

Nonetheless, 621 points was enough to log a 28th place finish. I finished on rank 42 two years ago, and although I missed last year’s I did it offline and ranked somewhere in the 40s as well, so this looks like an improvement. Of course, it could also be the case that the field got weaker.

Most of the puzzles in this contest were fairly common sudoku variants – while I normally scan through the instruction booklet before starting the contest I don’t usually prep explicitly, and here it’s not really needed. The UK championship seems to have had three standard 9×9 Sudokus, a Killer (extra regions are added with target sums; numbers in a region can’t repeat, and must add up to the target), a Diagonal (numbers along the two major diagonals must be unique) and a Thermo (thermometers are added, which introduce inequality constraints: along these numbers must increase). I’d usually go through all of these – based on past data I’m usually reasonably fast at these.

There are also a couple of more peculiar puzzles. There’s “OEBS” (Odd-Even-Big-Small), where a couple of kanji characters (in this case they’re the same as the Chinese words) are placed next to the grid, introducing constraints on the first two numbers seen in that direction. This is usually an 8×8 grid, and is a type I like; it often admits logic around pairs and sets. Then there’s a Surplus and Deficit Sudoku. These puzzles tend to make my head spin a lot, and so I didn’t plan on going for them at all.

  • Surplus Sudoku: Place 1-N in each row and column once each. Some M-cell (M > N) regions are marked – these regions must contain each number at least once. In the contest, N = 7 and M = 8.
  • Deficit Sudoku: Place 1-N in each row and column once each. Some M-cell (M < N) regions are marked – these regions must not contain any duplicates. In the contest, N = 7 and M = 6.

I already find the geometry of an Irregular Sudoku (which has the standard rules, except the 9-cell boxes are weirdly shaped) tough – spatial reasoning is not one of my strong suits. Working with these is even harder, especially because some rudimentary Sudoku techniques become invalid in the regions (but are still valid, and often needed, in the rows and columns!):

  • Naked Single: If all possibilities other than X are present in the same row, column or region as this cell, then X must be the value of this cell. This doesn’t work in Surplus Sudoku regions, because X could be a duplicated digit.
  • Hidden Single: If X can only be placed in one location in this row, column or region, then X must go there. This doesn’t work in Deficit Sudoku regions, because X might simply not appear in the region.

Applying these two techniques is pretty much automatic for me, and these deductions remain valid in almost all Sudoku variants, but are no longer always applicable in these puzzles. The additional checking and context switching slows things down by a lot.

It’s probably a much more involved technical discussion, but to me at least Surplus Sudoku feels like a pretty weird sudoku variant (probably because of having repeated numbers in a region). I don’t find it symmetric: Deficit feels less strange, maybe because “numbers cannot repeat in a specifically marked region” is not too far off from many of the other constraints in common variants (e.g. a Killer with size eight cages – though you’re told which number is missing, or a Thermo with thermometers of length seven or eight – strictly increasing means numbers can’t repeat). I probably don’t have that much experience puzzle-solving, but I can only think of one variant which ends up forcing a lot of equality in sub-regions of the grid: Anti-Diagonal Sudoku (each of the major diagonals has only three distinct digits), though that’s not a super common variant and I find they solve kind of weirdly as well.

Writing those two puzzles off probably turned out to be a mistake, as I had about four minutes at the end with the Surplus, Deficit and Irregular left. I don’t think this was intentional, but the spatial theme here is kind of amusing. I opted to try the 20-point Deficit Sudoku instead of the 30-point Irregular which was unlikely to have been solvable that quickly, but barely got anywhere. Given how close I was to otherwise finishing the set, I might need to be careful about writing off more than one puzzle (and at some point, even about writing off one puzzle).

Nonetheless, I think I performed well, and enjoyed the contest – maybe next time around I’ll actually give these puzzles a shot! (Though probably at the end.)

Learning German 8: Ein Jahrestag (An Anniversary)

Ich lerne jetzt seit einem ganzen Jahr Deutsch. Ich erinnere mich, dass ich mit Duolingo und Linguee fing an. Zuerst lernte ich ein paar Wörter mit diesen Apps (obwohl es ist nicht so, dass ich von Null fing an. Früher hatte ich drei Monaten in Zürich gewohnt, und obwohl ich dann kein Deutsch gelernt hatte, erinnere ich mich natürlich ein bisschen Sachen.)

Als ich die Unterrichten bei Palantir begann, kannte ich ungefähr zwischen 600 und 1000 Wörter. Aber ich wusste kein Grammatik, und hatte nie auf Deutsch gesprochen. Wir hatten ein paar Deutschstunden, und dann unsere Lehrerin machte ihren jährlichen Urlaub. Ich hatte eine Fünf-Wochen-Pause, aber ich lernte weiter. Sie empfahl mir eine Serie von Büchern, die heißt “Dino lernt Deutsch”. Ich las diese Büchern gern, weil ich die Charaktere lustig und (wichtiger) die Sprache verständlich fand. Ich mochte auch die Fragen nach jedem Kapitel, weil ich mein Verständnis des Textes überprüfen konnte.

Ich glaube, dass ich vielleicht im September oder Oktober das A1-Niveau erreichte. Aber wegen meines Arbeits und meiner Faulheit machte ich die Prüfung im Januar. Damals war meine deutsche Sprachkentnisse sicherlich über A1; deshalb mochte ich “sehr gut” (mehr als 90 Prozent) Note. Ich übte andere Prüfungen, z. B. die englische GCSE (zu dieser Zeit bekam ich Siebener, die vielleicht Niveau A2 sind), und die telc A2 Deutschprüfungen. Endlich bekam ich 100 Prozent – das war noch ein bisschen überraschend. Ich vermute, dass sogar ins Sprechen und Schreiben man alle Punkte bekommen kann, wenn man die Aufgabe komplett erfüllt.

Wegen des Coronavirus muss ich die Unterrichten selbst bezahlen. Natürlich bevorzuge ich, wenn die Firma bezahlen, aber das ist für mich kein Problem. Ich finde die Deutschstunden effektiv und interessant. Am wichtigsten ist, dass ich mich durch diese Unterrichten mein Sprechen und Schreiben verbessern können. Eine Person, die meine Arbeit präzise korrigieren kann, ist sehr wertvoll.

Und dies ist mein erster Artikel, den ich komplett auf Deutsch geschrieben habe (am meistens…). Es ist klar, dass dies immer noch sehr schwierig ist. Aber es ist gut zu sehen, dass ich jetzt über komplizierter Ideen und Sachen schreiben kann. Ich will, und werde, weiter lernen.

I’ve been learning German for a full year now. I remember that I began with Duolingo and Linguee. I first learned a few words with these apps, though it isn’t the case that I started from zero. I had previously lived for three months in Zurich, and although I didn’t learn German at the time, I naturally remember some of it, by absorption.

When the lessons at Palantir started, I knew somewhere between 600 and 1000 words or so, although I knew zero grammar, and had never spoken a word of German. We had a few lessons, and then our teacher went on her annual holiday. I had a five week break, but I continued to learn. My teacher recommended a series of books called “Dino learns German”. I enjoyed reading these books, because the characters were funny, and more importantly the language was understandable. I also liked that there were questions after each chapter, as they allowed me to validate my comprehension of the text.

I believe I probably reached an A1 level in September or October, but because of my work and laziness I only did the exam in January. At that time, my German skills were surely above A1, therefore I wanted to get a “very good” (90% or higher) grade. I practiced other exams, for example the English GCSE (at that time I was scoring around grade 7s overall, which are about A2 level) and the A2 telc exams. In the end I scored 100%, which was still surprising. I guess that even in speaking and writing, one can get full marks if one fulfills the task completely.

Because of the coronavirus, I now have to pay for lessons myself – of course I prefer if the company pays, but that is not a problem. I find the lessons effective and interesting. Most importantly, I can improve my speaking and writing through these lessons – having a trusted person who can precisely correct my work is very valuable.

And this is also my first blogpost that I’ve written completely in German (well, kind of). It’s clear that this is still really difficult, but it’s good to see that I can now write about more complex ideas and things. I do want to, and will, continue to learn.

Beyond the Storm

Image by Dieter_G from Pixabay

The 5th of June 2020 bore similarities, for me, to the 29th of June 2016, the 6th of October 2015 and the 4th of January 2012. What is common between these dates is that they are the days just after a large – or as is the case with the most recent instance – intense project or series of projects were completed (the first and third were work related; the second was MCMAS-Dynamic, and the fourth was my full-time national service in Singapore). The final stages of these projects usually involve blatantly unsustainable working practices in the pursuit of excellence, quality, and/or tying up all loose ends. Interestingly, all but the most recent instance were tied to hard timelines of some kind.

It might seem like finishing a large or intense project would be a cause for celebration. That’s certainly true, both because of the extrinsic value of a project (performance improvements, new features, research contributions, or even some peace of mind) as well as the intrinsic sense of accomplishment from having completed (or at least survived) it. However, I find that there’s also a degree of emptiness that tends to grow in the few days after. The projects were inherently challenging and would have taken a large amount of my time, especially when considered in terms of the fraction of my hours they’d take up in their final weeks. There is also often a more significant amount of mental bandwidth and fortitude required for these projects to be successfully completed. Thus, when they’re finished, there’s going to invariably be a large disruption to the routine I’d have had in the days leading up to completion. While my attitude towards downtime and rest periods has grown into a more defensive and I think healthier position over time (so that I’m not immediately thinking “what’s the next productive thing to focus on?”), they can still only last for so long before a fear of laziness and indolence creeps back in, and I need to determine what I should look at next.

This would lead us to one possible strategy for dealing with these down periods: always having something lined up. This was serendipitously true in the 2015 instance; that day, a Friday, was my final day as a Palantir intern, and I began my final year of university on the Monday, with a fresh set of difficult modules and the beginning of MCMAS-Dynamic. We were required to take seven modules across the two terms, and I decided to front-load my modules. There was definitely a drop in intensity from the first week of October to the second, but it was relatively small. I’d say of the four instances here, this was the one that affected me the least. This is on a much smaller scale, but I didn’t feel any downtime after taking or passing the A1 Goethe-Institut exam because I knew I wanted to learn German to at least a B2 standard. I can often get overly focused on the task at hand to the exclusion of this. Pre-planning may not always be possible or optimal, as well: especially at work project selection is more often driven by business requirements and telemetry with a dose of intuition, which can change rapidly. Nonetheless, I think this is a good strategy especially for personal projects.

There is a natural extension of the above: if one maintains a portfolio of parallel projects, then finishing a large project would have less of an impact. This sounds good in theory, but I am slightly skeptical, mainly because in my experience these projects demand so much attention and time especially in their tail that there is often little productive capacity left to look at others. Furthermore, these “surges” in demand at the end often result in an elevated level of work that needs to be paused to maintain one’s sanity. In a sense, although I don’t particularly like the down periods, they are important and necessary (incidentally I’m strongly reminded of a phrase I’ve learnt in German class: wichtig und notwendig). Also, if one prioritises some (possibly one) of these projects substantially more highly than the others, it can be difficult to find the motivation to work on the lower-priority projects while there is still productive work that can be done on the important ones. I do do this for personal projects (maintaining friendships, learning German, competitive puzzles, writing and personal finance all run in parallel), but these are rarely the ones which call for massive, aggressive surges. (I won’t say that there weren’t any, though: the end of uni was where I focused on the first, and around the change of the tax year I do sometimes need to look at the fifth.)

An alternative approach is to avoid these last-minute pushes to reduce the delta between an intense final surge and not having the project at all. This is plausible, though I’m not certain the last-minute pushes are always avoidable, or for that matter a bad thing. A large amount of the stress in the 2016 instance was because with two weeks left, my supervisor Prof. Alessio Lomuscio and I decided to begin formally attacking LDLK on finite traces; the end would have been fairly relaxed if we didn’t do that, I’m happy I did it, though: this was an interesting (and publishable!) part of the investigation. In the 2020 instance, the deadlines were synthetic but getting those projects done quickly was important to reduce the amount of concurrent context I needed to track.

In summary, I’ve become more used to down periods after intense stretches of work and/or large projects are delivered; I think these are to some extent necessary even though I don’t find them particularly enjoyable. Making an effort to have something else planned, and/or working on multiple projects in parallel, where possible is usually helpful. Though these aren’t always possible, and in some cases if rigidly adhered to might limit the complexity of projects that one can successfully undertake. These down periods can be unpleasant, but I don’t think changing one’s projects is necessarily worth that tradeoff.