alan-turingalt2

Alan Turing gets pulled over by a police officer.

“Hi. I’m Alan. How may I help you?”

“Do you have any idea how fast you were going?”

“We are discussing you, not me.”

Algoritmer

This is a draft of a description of the field algorithms I was asked to do for the Swedish Research Council (Vetenskapsrådet). The section structure is given. All kinds of feedback (in particular from native Swedish speakers about my clunky grammar) are welcome.

Algoritmika

Beskrivning av forskning inom ämnet

Studiet av algoritmer är en central del av datavetenskapen som behandlar konstruktion och analys av metoder för resursmedveten beräkning. I föreliggande beskrivning omfattar ämnet även stora delar av beräkningsteorin, inklusive teorin för beräkningskomplexitet.

De mest väletablerade delarna av ämnet, konstruktion och analys av algoritmer samt beräkningskomplexitet är av matematisk natur och har starka kopplingar till olika matematiska discipliner som grafteori, kombinatorik, logik och sannolikhetsteori. Det huvudsakliga målet är att systematiskt studera beräkning med syftet att etablera allmängiltiga utsagor om grundläggande beräkningsproblem i olika beräkningsmodeller. Bidraget till praktiska beräkningar är i form av den allmänna förståelsen för beräkn­ingsproblem samt utvecklandet av nya metoder för att lösa dessa.

Mer tillämpad forskning inom ämnet fokuserar på konstruktion och analys av algoritmer från områden både inom och utanför datavetenskapen, t ex biologi, ekonomi, signalbehandling, och WWW. Forskningen kring dessa algoritmer innehåller även empiriska studier av deras beteende, ingenjörsaspekter av deras utveckling och återkoppling till modelleringsaspekter i användningsområdet. Med ökad algoritmisering av i princip alla datadrivna vetenskaper är potentialen för synergier med andra discipliner enorm.

Alla delar av algoritmisk forskning påverkas av nya beräknings- och datamodeller som motiveras av aktuella utvecklingar inom informationteknologin, t ex massiva datamängder, parallella och distribuerade arkitekturer, strömmad data, energieffektiva beräkningar, säkerhets- och integritetsaspekter, och experimentella teknologier som kvantdatorer.

Styrkor och svagheter

Trots att datavetenskapen bara är drygt 50 år gammal, så har många algoritmiska resultat spridits till andra vetenskaper och undervisas i grundläggande kurser. Områdets styrka är ett starkt matematisk fundament, en tradition för att betrakta problem på många abstraktionsnivåer och teknologisk lyhördhet och samutveckling med informationsteknologin. Internationellt finns det ett mycket starkt utbyte både med andra vetenskaper och programvaruindustrin.

Vill man peka på områdets svagheter, så skapar en del av teoribildningen – i likhet med annan grundforskning och tillämpad matematik – ibland rent internt motiverade frågeställningar som visar sig vara ofruktbara. Vissa resultat är ej direkt applicerbara på de beräkningsproblem som uppstår i olika tillämpningar. En annan utmaning är den starka ställningen som analysen av algoritmers värstafallsbeteende har – denna dominerar områdets kvalitetskriterier på bekostnad av indatamodeller som är svårare att definiera stringent, men som i några tillämpningar vore mera relevanta. Behovet av matematisk stringens och teknologisk flexibilitet leder också till att profilen för kandidater till forskning i algoritmik är attraktiv för många andra riktningar både inom och utanför akademin, vilket skapar ett visst rekryteringsproblem.

Specifikt svenska svagheter i området behandlas nedan.

Trender, utvecklingstendenser och utvecklingspotential

Den grundläggande forskningen inom teoretisk datavetenskap, såsom algoritmteori, är bland de äldsta ämnen i datavetenskapen och har mognats till en matematisk disciplin med rik teoribildning och starka resultat. Det traditionella syftet är att skapa, analysera, och resonera kring algoritmer för problem på diskreta strukturer med avseende på stringenta värstafallsgarantier för algoritmers asymptotiska resursförbrukning och lösningskvalitet som funktion av problemstorleken. Man kan idag påstå att de allra flesta naturliga beräkningsproblemen är, grovt sett, klassificerade med avseende på beräknings­komplexitet. Pågående forskning har flyttat fokus till mer specialiserade problem och sofistikerade frågeställningar, som ofta är inomvetenskapligt motiverade.

Algoritmisering och datorisering

Algoritmteorin utmanas ständigt av nya beräkningsmodeller motiverad av aktuell informationsteknologi och nya frågeställningar från andra vetenskaper och samhället. Ett numera klassiskt exempel är beräkningsbiologin, som idag är ett separat forskningsområde med egna utbildningar, publikationsfora och anslag, men som fortfarande utgör en rik källa till algoritmiska frågeställningar; algoritmik bidrar både till effektiv problemlösning t. ex. av olika proteinviknings- eller sekventieringsproblem, men också till modellering. Till exempel är synen på evolution under den algoritmiska linsen att DNA är en algoritm som exekveras av proteiner. Härvid betonas fenomenets process- och informationsaspekter, vilket supplerar t ex elektrokemiska eller zoologiska perspektiv på evolution.

Ett exempel på en teknologisk påverkan är den pågående utvecklingen inom minnesteknologi och sensorer, där mängden av data som insamlas och behöver analyseras överstiger utvecklingen i beräkningskraft. Man kan säga att moderna datorer bliver allt långsammare i relation till sina arbetsuppgifter. Behovet för och effekten av algoritmer för analys av massiva datamängder är nu för tiden enorm, inte bara i vetenskapliga tillämpningar, men också i samhället, där algoritmer används till att reglera grundläggande demokratiska mekanismer som tillgång till information. Detta skapar stort behov av stringenta analyser och nya lösningar.

Det algoritmiska perspektivet fortsätter att ha konceptuell påverkan på traditionellt icke-datalogiska discipliner, när dessa utvecklar modeller som tar hänsyn till processers effektivitet och resursförbrukning. Ett exempel är statsvetenskap och ekonomi, där algoritmisk spelteori, algoritmisk mekanismkonstruktion och computational social choice är aktuella ämnen som uppfattar ekonomins individbegrepp som resursbegränsade agenter vars val inte bara är individuellt optimala men även skall kunna fattas av en effektiv process. Dylika utvecklingar har åtnjutit stor internationell uppmärksamhet och har rik potential för tvärvetenskaplig korsbefruktning.

Några trender

Några konkreta aktuella trender inom algoritmforskning med stor internationell uppmärksamhet är:

  • Nya tekniker och modeller för konstruktion och analys av algoritmer utöver deterministisk och sekventiell beräkning: randomiserad, algebraisk, approximativ, exakt, on-line, strömmande, energisnål, parallell, fördelad, olika minnesarkiteturer, olika programspråksparadigm såsom constraint eller map–reduce, alternativa beräkningsmodeller som kvantdatorer.
  • Tillämpad algoritmik inom andra delar av datavetenskapen och relaterade tekniska vetenskaper: artificiell intelligens, programspråksteori, databaser, datorsyn och -grafik, robotik, sociala nätverk, sensornätverk, signalbehandling, etc.
    Ramverk för empirisk analys af algoritmer.
  • Algoritmiska metoder och modeller i andra, icke-datalogiska discipliner: algoritmisk spelteori (ekonomi), sociala nätverk (sociologi), computational finance, datoriserade bevis i matematik, beräkningskemi, etc.
  • Algoritmiska aspekter av datasäkerhet: främst kryptologi inklusive protokoll och beräkningskomplexitet, sekretess, integritet, säkerhet, autentisering, etc.
  • Nya modeller och tekniker för beräknings- och kommunikationskomplexitet, avrandomisering, undre gränser, icke-appproximerbarhet, kvantitativ komplexitet av svåra problem, parameteriserad komplexitet och andra flervariata analysmått.
  • Datastrukturer och algoritmer för analys och behandling av massiva datamängder, maskininläring, dataanalys och klassificering av ostrukturerad data.
    Konstruktion och analys av algebraiska, diskreta, och symboliska algoritmer för vetenskapliga beräkningar.
  • Stringent analys av optimeringsalgoritmer in linjär och icke-linjär programmering under olika fördelningar av indata.
  • Algoritmer och samhället: analys och metoder för informationssäkerhet, transparens.

Att stora delar av natur- och teknikvetenskaparna just nu upplevar en ökad algoritmisering av både tekniker och tankesätt betonar behovet för både algoritmisk kompetens på den icke-datalogiska sidan och ökad domänkunskap på den datalogiska sidan.

Ämnets ställning i Sverige och internationellt

Internationellt

Ur internationellt akademiskt perspektiv står forskning om algoritmer som ett centralt och stort ämne inom datavetenskap. Till exempel är Algorithms and Theory det datavetenskapliga ämnet med flest professorer vid amerikanska toppuniversitet. Även de teoretiska aspekterna är utomordentligt välfinansierade; till exempel grundades Simons Institute for the Theory of Computing vid UC Berkeley i år 2012 med ett anslag på 60 miljoner USD.

Algoritmiska kompetenser uppfattas numera som nödvändiga för många andra discipliner. Till exempel läser mer än var fjärde av samtliga studenter på Princeton University grundkursen i algoritmer och datastrukturer. Algoritmiskt tänkande är numera ett grundskoleämne i Storbritannien. På arbetsmarknaden är algoritmisk kompetens starkt efterfrågad av attraktiva programvaruföretag som Google.

I Sverige

Undervisning inom algoritmer och datastrukturer uppfattas som central datalogisk verksamhet på ett flertal universitet och högskolor och ingår i grundutbildningen på många datavetenskapliga och -tekniska program. Däremot är kurser i beräkningskomplexitet och -teori mer sällsynta och gruppen av svenska studenter utanför datavetenskapliga och -tekniska program i som uppnår algoritmisk kompetens är försumbar.

Nivån för svensk forskning inom ämnet är av internationell toppklass, men storleken av de flesta forskningsgrupperna i Sverige inom är under kritisk nivå.

Studiet av effektiva algoritmer har i Sverige inte utvecklats på ett så positivt som man kunde hoppats och en förväntad expansion har inte kommit till stånd. Kontrasten är extra oroande när man jämför med utlandet. Om området ej uppnår kritisk nivå kan detta ha negativa effekter på kunskapsnivån i landet. Det finns högst ett par starka grupper inom algoritmforskning och kompetensen är otillräcklig för att ens på ett adekvat sätt klara av behovet av avancerade kurser. Beräkningskomplexitet är än mer glest representerat. Denna negativa utveckling påverkar både den datavetenskapliga forskningen och andra datadrivna vetenskaper som upplever ett starkt behov av algoritmisk kompetens samt stora delar av innovativ programvaruproduktion, inte minst i relation till stora datamängder; aktuella modeord är Big Data och Cloud Computing).

Särskilda behov av forskningsinfrastruktur

Forskning inom algoritmer skapar inte självt något behov av forskningsinfrastruktur utöver de beräknings- och datalagringsresurser som krävs av ett eventuellt tillämpningsområde. Några utmaningar som datadrivna vetenskaper kommer att möta i samband med analys och förvaltning av data (skalbarhet, tillgänglighet, effektivitet, visualisering, integritet, tolkning, etc.) adresseras dock av just algoritmforskningen varigenom det kan uppstå behov för realistisk infrastruktur för validering och simulering av sådana lösningar.

Kun et træk fra remis – hvor er champagnen? (5)

Endnu et kryptisk krydsord i den britiske tradition på dansk. Sværhedsgraden er meget let (tror jeg).

Forklaring:
(Næsten) hver nøgle består af to dele, der sammen bevidst prøver at vildlede læseren. Den ene del af nøglen er en ligefrem forklaring, ganske som i skandinaviske korsord (synomym, beskrivelse, kategori, etc.) Den anden del af nøglen forklarer samme begreb igen, gerne med hjælp af et langsøgt ordspil. Et specialtilfælde er den dobbelte definition, hvor begge dele er ligefremme nøgler. I modsætning til skandinaviske krydsord bør hele nøglen have en entydig løsning. Mere (på engelsk) på Solve a Cryptic Crossword på Wikihow eller Cryptic Crossword på Wikipedia.

no21-grid

Vandret
8 Kun et træk fra remis – hvor er champagnen? (5)
9 Image og ambition for ankenævnet? (7)
10 Varmt agterparti. (7)
11 Første tone i adagio for blæseinstrument af træ. (5)
12 Derek, måske, udtrykker glæde omkring dans. (6)
13 Ødelægger fugle. (6)
15 Kan være gul, blå eller rød og bor foran hulrum. (6)
17 Resultater udsender et signal. (6)
20 De allierede holder på det jævne. (5)
22 Biskop fra smukt udstyret værelse. (7)
24 Studerende har opgivet ungkarletilværelsen for narkotika eller alkohol. (7)
25 I løbet af et naturstridigt fænomen. (5)

Lodret
1 Fang en ådselæder. (4)
2 Børnebogsfigur med mandlig kraft og styrke holder Gargamels hovede. (6)
3 Jernvarer, husgeråd, værktøj og maskiner skal ødelægges. (8)
4 Lad være med at huske om starten af Odysseen beskriver en levende statue. (5)
5 Højtidelig erklæring ved dansk digt. (4)
6 Dårlige råd, som består af ganske få bogstaver. (6)
7 Bruden er betuttet af tilbeder. (8)
12 Betro bil, som skal repareres, til nogen, der lægger vægt på aftalens ordlyd. (8)
14 Gummi er juks? Akut forvirring. (8)
16 Osende trafik på Fyn. (6)
18 Indholdsløs machiavellisme hos opadstræbende forbillede afslører et motiv. (6)
19 Flytte socialklasse. (5)
21 Aflevere tilbage til enhver tid. (4)
23 Vandområde i morænelandskabet med dybde og retning. (4)

Som PDF: no21

Type of French lady with compiler for high level programming language. (4)

Cryptic crossword with a theoretical computer science theme. Enjoy!

no14

no14-grid

Across
1 14d Bank managing a museum exhibiting bad art? (7,10)
5 17d Smooth ways of talking, readily accepted. (7,9)
9 Number system used around the end of the year? (3)
10 Kept by virtuous diarists and, one hopes, research libraries even after cutbacks. (4,7)
11 Headless monsters may be off by one. (6)
12 Repository hosting 18 down introductions explaining semantics and verification. (4)
13 King’s writ, maybe a quill. (2)
16 Good idea when checking if string argument has zero length; otherwise result oft not OK when k goes left. (4,3,4,3)
19 Cunningly silences top men in foundations of mathematics, such as Gödel’s most important contribution. (14)
21 God is in the particulars more than in the details. (2)
22 Architecture sounds like a gamble. (4)
24 Plutoniom store added on top of the others. (6)
27 Arbitrary model in statistical mechanics often improves bound on worst-case behaviour, at least in expectation. (11)
28 Apply resolution to a Horn clause. (3)
29 Author of election scheme and determinant 3 down (following 6 down) and connoisseur of acrostics did often draft good stories on nonsense! (7)
30 The simplest sets, i.e., a partial order. (7)

Down
1 Go from place to place in the pursuit of pleasure to understand a complicated construction in an NP-hardness reduction. (6)
2 8 Frequently visiting mother-in-law, for instance, can be a difficult challenge. (10,8)
3 Preparing for the oral might be a good strategy. (9)
4 Very long narrative in retrospect sounds like the specification of a structured information exchange protocol for web services. (4)
5 About first Java class compiled at even update. (10)
6 German summer takes the edges off temper, laid back. (5)
7 Favourite reference in many lists: My name is Bond. (4)
8 See 2 down.
14 See 1 across.
15 Building with supplies for Spooner’s unique key partner, where tea is served for a penny. (5,5)
17 See 5 across.
18 Becomes partly colder or rimed when applied to itself. (8)
20 Development to release after many years. (6)
23 First person to attach the head to statues. (5)
25 Where most computational geometry problems are easily solved, e.g., done by convolution. (3,1)
26 Type of French lady with compiler for high level programming language developed by the US Department of Defence. (4)

Fransk antropolog bor ude i u-vending (8)

PDF-version: no20

no20-grid

Vandret
1 Luftig dessert bliver uden side i presse. (6)
5 Forvirret genkalde Hannas Glawaris ægtestand. (4,4)
9 Fransk antropolog bor ude i u-vending. (8)
10 Kattejammer?! (6)
11 Resultatlønnet beskæftigelse, fx for rytmeguitarister? (13)
13 Ignorer hver anden artikel, engelsk digter og forfatter. (6)
15 Hvor land bygges i orkesteret. (8)
17 Fx tillægsord, der ender på trykstærk vokal, lader sig ikke overtale. (8)
19 Handelsskoleelev omvendes til en for eliten. (6)
20 Anetes myntete, omrørt, indeholder mange blade. (3,10)
24 Ord i jantelov er berømte. (6)
25 Lave hul bag smykke for person som er blevet forført til at indlede et kærlighedsforhold. (8)
26 27 Herkules i en stridsvogn i opløftet og euforisk stemning. (4,4,2,4)
27 Se 26 vandret.

Lodret

2 Mærkelig zoo nordpå producerer giftgas. (4)
3 Tekstiler for små størrelser og intelligenskvotienter. (5)
4 Enkeltstående begivenhed i højtideligt digt, først fortællende men uden jambisk slutning. (7)
5 Kaj Munk og Søren Kirkegaard og andre: giv nu riget oprør! (15)
6 Leder for meteorologisk institut i centralasiatisk sø. (7)
7 Holde af elektrisk bestik. (5)
8 Beruset? Drik dyrere, fx kakao og anis. (10)
12 Mad med mange kulhydrater er . . . og andre sportsudøvere og kriminelle. (10)
14 Lingeri, måske skjult i blufærdigt øjeblik. (3)
16 Falde i ens smag for hovedbeklædning. (3)
18 Glad og optimistisk gruppe i forstad til Aarhus. (7)
19 Det meste af trosbekendelsen til pige som husede mange instrumentmagere. (7)
21 En halv snes nederlag for besat land. (5)
22 Stork flyver og svømmer i Atlanterhavet. (5)
23 Kan skimte forfædre. (4)

In the 1950s, we were told that we needed the Bomb to protect us from totalitarianism. Today, we’re told that we need totalitarianism to protect us from the Bomb.

Edit to add: I’m told that this quote isn’t pithy enough. It doesn’t tweet. Here’s a shortened version for the superficial times we live in. Barbaric, I now…

In the 50s we were told the Bomb protected us from totalitarianism. Now we’re told totalitarianism protects us from the Bomb.

Oscar Wilde never had that problem.

Make 28 June Perfect Day

I plan to commemorate the upcoming Hobbit Day by reading my still-unopened hardcover edition of Children of Húrin. But then it struck me: we went through all of August without a single nerdy day. In fact, several months find themselves bereft of well-established dates to signal your obsession or social awkwardness.

What we have

Pi Day, celebrated 14 March, and so named because the decimal expansion of the mathematical constant pi begins with 3.14. Amazingly, there is a resolution by the US Congress that actually “supports the designation of a ‘Pi Day’ and its celebration around the world” [H.RES. 224 at Library of Congress] The date also coincides with Albert Einstein’s birthday, which makes it even cooler.

Star Trek Day, celebrated 5 April, commemorates First Contact with the Vulcans. There is an alternative day commemorating the first airing of a Star Trek episode, but I don’t like out-of-universe explanations. 5 April it is.

Star Wars Day, celebrated on 4 May because the phrase “May the force be with you” can be misheard as “May the 4th”. (This mishearing apparently really happened to a simultaneous interpreter on German TV in 2005, see Wikipedia. Learn something new each day.)

Geek Pride Day is celebrated on 25 May, though seems to be only sporadically observed. It unifies several geeky days, including Towel Day for Hitchhiker fans. Look it up.

Pi Approximation Day is celebrated 22 July, since 22/7 (in the day/month format) is a well-known approximation of pi. Of course, 3.14 is also just an approximation, and only ever so slightly closer to the real (ahem, irrational) value of pi than the fraction 22/7. But “Pi Approximation Day” and “Slightly worse pi approximation day” doesn’t have the popular appeal.

Hobbit Day is celebrated somewhere around 12 September. It commemorates Bilbo’s and Frodo’s birthday, and due to delicious discrepancies between the fictional Shire calender and the Gregorian calender, the actual date is a matter of entertaining and serious debate among the cognoscenti. Just as we like it. It’s as good a day as any to discuss whether Balrogs have wings. (They don’t.)

Mole Day is celebrated on 23 October, preferably at 6:02. This gives 6:02 10/23 in some time format, mimicking the value of Avogradro’s constant 6.02×1023. I don’t like that the solidus in 10/23 is used to denote exponentiation, but it’s a day for chemists anyway. Chemists don’t do rigour.

These are good days to connect with your inner nerd, geek, or scientist. Or just have some pie. But it leaves several months of the calendar completely empty! Except for some years, where there could be a lucky hit from Square Root Day, which falls on 4 April 2016 next. (4.4.16. Get it?)

What we need

Here are some suggestions:

E-Day on 2 July. Not very inventive, I’m afraid, merely mimicking pi day with only a single digit in the decimal expansion. But e is at least as interesting number than pi, except for the pie. We could call it Napier’s or Euler’s day instead of E-Day. Or natural logarithm day? Activity: learn to use a slide rule. Hm…

Imaginary Day. This idea is only half-baked and came up over lunch. The idea is to celebrate Imaginary Day on 28+iy mod 4 February in year y. In leap years, this is 29 February, the leap day. Two years later and before, Imaginary Day is celebrated 27 February. In the remaining years the day is in fact imaginary (since we don’t have complex valued dates), but I propose to project the date on the real axis and celebrate 28 February. You would use Imaginary Day to learn about complex arithmetic and reconnect with your imaginary friends.

Turing Day celebrates Turing’s birthday on 23 June. Alternatively, we could take two days earlier: on 21 June 1948, the Manchester Small-Scale Experimental Machine (“Baby”) ran the first stored program. This implements Turing’s universal machine, envisioned in his 1936 paper.

Perfect Day. I’m a little bit proud of this idea. I suggest to celebrate it on 28 June, the only date in the year where both counters are perfect numbers; 6 and 28. And Perfect Day just sounds like a, well, perfect day. Make it extra special for yourself or somebody else.

Programmer’s Christmas. This idea is not mine, but since 31 October is 25 December to programmers. (Programmers are used to think in the octal number system, and 31 in octal (or, OCT) equals 25 in decimal (or, DEC). Hilarious, at least before I explained it.) Unfortunately, it’s in October, where we already have Mole Day.

This still leaves several months wide open. Should we really celebrate Unix new year on 1 January? Any ideas for August, November, December?

E-rösta är en dålig idé

(Ursprungligt publicerad 28 april 2013 på Sydsvenskan)

Det är en enorm skillnad mellan att shoppa, deklarera och sköta sina bankaffärer via nätet och att rösta i ett demokratiskt val. Det skriver Thore Husfeldt, professor i datalogi, och tar avstånd från vallagskommitténs förslag om e-röstning.
En majoritet i vallagskommittén har föreslagit att elektronisk röstning ska ske på försök i ett antal svenska kommuner under valet 2018. Allt annat på nätet sägs ju fungera utmärkt och smidigt, så varför ska vi inte e-rösta? Vi kan ju e-deklarera, e-handla och e-banka.

Och visst låter det bra.

Men det är en enorm skillnad mellan att shoppa, deklarera och sköta sina bankaffärer via nätet och att rösta i ett demokratiskt val.

Det är sällan vi dataloger avfärdar informationsteknologi. Men på den här punkten är vi överens:

Öppna och hemliga val är olämpliga föremål för digitalisering, oavsett om det skulle ske via internet eller med hjälp av maskiner i vallokalen.

Varför då? Det finns många anledningar, men låt mig redogöra för två:

Hemlighet och transparens.

Ta banktransaktioner – de går att sköta digitalt eftersom de inte är hemliga. Visst uppstår fel och problem, men både kund och bank får kvitton som de kan jämföra med kontoutdragen. Ingen behöver blint lita på att transaktionen lyckades, eftersom resultatet kan kontrolleras i efterhand. När ett fel uppstår, blir det upptäckt och kan åtgärdas.

Hemliga val är den diametrala motsatsen till banktransaktioner:

Väljaren får inget kvitto (annars vore valet inte fritt) och vallokalen får inget kvitto (annars vore valet inte anonymt).

Kritiken mot e-röstning är alltså domänspecifik och har ingenting med samhällets generella digitala kompetens att göra. Det finns gott om icke-hemliga val, till exempel när riksdagen voterar. Sådana val kan man digitalisera: små lampor i riksdagen visar varje ledamots röst och rösträkningen sker elektroniskt.

Den andra anledningen till att e-röstande är oacceptabelt i en demokrati är bristen på transparens.

Vi litar på nuvarande valsystem eftersom alla kan övertyga sig om att röstningen går rätt till. Hela processen är öppen och observeras av en rad individer: dig, mig, fru Svensson eller en valobservatör. Bland annat visar man upp den tomma valurnan på valmorgonen för att skydda processen mot i förväg påfyllda valurnor.

I många länder används rentav genomskinliga röstlådor – där kan man tala om bokstavlig transparens.

Men hur ser då den digitala motsvarigheten till denna kontroll ut?

Den är betydligt mer komplicerad, i själva verket omöjlig.

Förutsatt att e-röstsystemet använder öppen källkod kan i alla fall den teknologiska eliten, det vill säga ett mycket litet fåtal, läsa koden och se att det står set votecount = 0 på rad 541 548.

Men programvara är ett komplext system. Om jag skulle granska vore jag tvungen att läsa hela programmet för att försäkra mig om att rad 541 548 faktiskt utförs vid rätt tidpunkt, och att ingen annan rad ändrar votecount på något klurigt sätt.

Det är i stort omöjligt att granska så mycket kod. Men även om det vore möjligt, så beror e-röstningssystemets funktion på en massa annat: kompilatorer, operativsystem, drivrutiner, ända ner till hårdvaran.

Det handlar om miljontals rader kod, skriven av tiotusen människor i ett dussin programspråk. Några rader är 40 år gamla, andra ändrades igår. Många innehåller fel på grund av slarv eller illvilja. Varje rad kan ändra votecount.

En armé av dataloger skulle behöva decennier för att granska allt. Men även om vi hade lyckats, skulle vi inte ha någon garanti för att det är det granskade systemet som faktiskt används på valdagen. Det kan ha bytts ut natten innan.

Det är alltså inte så att bara experter kan observera och kontrollera ett elektroniskt val – inte ens experter kan det.

Inga tekniska framsteg kan ändra på detta. Tvärtom blir informationsteknologin mer och mer komplex och den digitala valurnan mer och mer ogenomskinlig.

Så e-röstning är som allt annat på nätet. Det är varken hemligt eller genomskådligt.

Draft survey about graph colouring algorithms

I’ve been quite busy writing up a survey of graph colouring algorithms. As an experiment, I’ve put up a draft of the manuscript on Bitbucket, including the source files.

KMS

The draft is available as a PDF document.
The sources can be inspected at the Bitbucket Git repository thusfeldt/graph-colouring-algorithms.

Even though the literature on graph colouring algorithms is vast, I was unable to find an earlier comprehensive survey. (In fact, the Wikipedia page Graph colouring, to which I have contributed quite a bit, is in pretty good shape.) Thus, I’ve found myself surveying results and techniques that are somewhat outside of my comfort zone, and made editorial choices about issues where I speak with little authority.

Thus, by making this draft available, I strongly invite comments of all kinds. Errors, miscalculations, sources of confusion, misunderstandings, criminal omissions of results or tacit assumptions, undue weight: Please tell me. Here or via email. If you’re really cool, use the issue tracker or fork the git repository, edit your change, and send me a pull request. (I dream of a distant future where all papers can be crowd-sourced and the original author just juggles diffs. I also dream of rolling pavements and flying cars, of course.)

I would especially like to hear comments from mathematicians and other researchers outside of theoretical computer science (what tacit assumptions have I forgotten to make explicit?), algorithms students at the beginning graduate level (is it understandable?), and graph colouring researchers (what favourite result of yours did I misunderstand or omit?).

Drawing the Grötzsch Graph

The Grötzsch graph is the smallest graph without triangles that cannot be 3-coloured.

I’ve played around with various drawings of it and found the following, which I’m quite happy with:
grötzsch

It’s not the obvious layout; the articles at Mathworld and Wikipedia contain drawings that are more standard and arguably do a better job at visualising the structure of the Grötzsch graph. Another drawing, due to David Eppstein is at at Wikimedia commons.

“My” embedding is a projection on the plane of an embedding of the Grötzsch Graph on the unit sphere:

(I really need to make an animation of this.)

The central vertex of the 2D drawing sits at the top of the sphere; the pentagram-like group of 5 vertices sit slightly above the equator, and the last five vertices (placed no the outer rim in the 2D drawing) are on the southern hemisphere. It turns out that in this embedding, the unit vectors defined by these points are at internal angles of more than 120 degrees, so the embedding describes a vector 3-colouring in the sense of [David R. Karger, Rajeev Motwani, Madhu Sudan: Approximate Graph Coloring by Semidefinite Programming. J. ACM 45(2): 246-265 (1998)]. This shows that the Grötzsch graph (which is 4-chromatic) can be vector 3-coloured.

I find this quite neat.

I found the 3D embedding by actually running an semidefinite programming solver to find a solution to the vector colouring problem. The output of such a program is of course just a bunch of vectors (in 11 dimensions), but it turned out that the solver was friendly enough to only use the first 3 dimensions. After some headscratching and bumbling attempts at visualising the vectors in various mathematical software packages that I understand only feebly, I managed to make sense of the embedding so that I can now draw it neatly.

(I did a similar thing for the Chvátal graph, but I can’t make any sense of the resulting vector 3 colouring.)