Hedgehog? Sage? Octopus??
logo
logo
Hovedmeny


Hedgehog? Sage? Octopus??
Av Hans Marius Eikseth, 28. august 2026 13:57
Sist endret 29. august 2026 00:56
 
Vi henvendte oss til vår hjemlige ekspertise!

For den uinnvidde: ekspertisen her er backgammon-Norges høyst skattede doldis (antagelig vil eksiltrønderen avvise betegnelsen siddis) hjemmehørende i Stavanger Backgammonklubb, for de fleste bedre kjent som Øystein Schønning-Johansen. Øystein var sentral i utviklingen av Gnu Backgammon som kom ut for nær et kvart århundre siden, som stadig utvikles, som er åpen kildekode og derfor fritt tilgjengelig. Den gang det kom, tok det rotta på Snowie - Gnu kan den dag i dag måle seg mot både XG og BgBlitz!

For oss som i disse dager følger streamen fra WBGF World Championships 2026 i London, har vi ikke kunnet unngå å legge merke til fenomenet Hedgehog, XG-konkurrenten som er en New Kid on the Block - og gratis! Eller? Både-og? Og amerikanerne snakker stadig høyere om Sage Pro og dess like. Selv har Øystein utviklet et eget, nytt nevralt nettverk som bærer navnet Octopus (et nikk til 90-tallets Jellyfish der, antakelig). Så hvem er bedre til å gi medlemmene våre litt innsikt i dagens utvikling av ulike nevrale nettverk på så mange fronter, enn nettopp Øystein? Vi tok rett og slett en prat, for å forsøke forstå dagens BG-KI-NN-scene.

Kan du først peke på de viktigste aktørene og utviklingsmiljøene i dag for computer-backgammon?

Selv om miljøet av backgammon-programvareutviklere ikke er veldig stort, skjer det ganske mye for tiden. Vi har de gode gamle prosjektene som holder koken, og i tillegg har det kommet flere nye prosjekter - flere av disse prosjektene får litt hjelp av KI til å generere kode gjennom Claude Code og lignende verktøy. La meg lage en liten liste.

GNU Backgammon - har litt aktivitet, men det er stort sett bare bugfiksing og små detaljer. Det er noen som jobber med en portering til Mac og en annen som har laget en portering til Android.

* BGBlitz - Opphavsmannen her, Frank Berger, ble pensjonist for noen år siden, og det gjorde at han fikk mer tid til å utvikle BGBlitz - han er aktiv ennå og det kom en ny versjon (3.4.3) i midten av august. Store endringer er det ikke, men det er aktivt.

* WildBG - Et prosjekt startet av Carsten Wenderdel i Berlin for noen år siden (2023). Han ville gjerne lære programmeringsspråket Rust - og startet dermed et eget prosjekt. WildBG spiller OK, men har mange mangler.

Palamedes - Nikolaos Papahristou i Aten har laget et system som spiller Backgammon i tillegg til alle andre varianter som Portes, Plakoto, Fevga, Narde og Takhteh. Har holdt på i mange år som et rent forskningsprosjekt, men har nå et grafisk brukergrensesnitt man kan laste ned.

Backgammon-NN - Flunk nytt system fra i sommer. Mannen bak heter Chris Whittington og er en gammel kjenning fra sjakk-programmet TAL (og andre). Han er pensjonert systemutvikler. Han bruker også KI til å generere kode. 

* Octopus - mitt eget lille hobbyprosjekt. Tilbake i 2007 begynte jeg å eksperimentere så mye med GNU Backgammon at det ble et helt eget system ut av det. Mer om Octopus senere.

* OpenSage - Dette er da logikken bak SagePro som er utviklet av Mark Higgins. Han har holdt på med dette i mange, mange år, men det ser ut som han fikk en god boost i sin utvikling etter at man fikk LLM-modeller og Claude Code til å skrive kode.

* HedgeHog - Et system utviklet av Eran Lambooij i Paris. Han har fått til mye bra - og har blant annet definert et format for nevrale nettverk innen backgammon. Slik kan han koble flere forskjellige evalueringssystemer inn i HedgeHog.

* PureTD - Dette er en nykommer av året, og er kanskje heller et forskningsprosjekt enn et forsøk på å lage noe kommersielt produkt. Alexander Strehl heter geniet bak dette prosjektet og han er bosatt i California. Det er tydelig at han har studert reinforcement learning. Han har også brukt mye Claude Code i sin utvikling. Mer om PureTD senere.

Vil du si at den grunnleggende maskinlæringsmetodikken ligger fast fra Jellyfish/Snowie/Gnu via XG til Hedgehog og de andre?

Ja, den grunnleggende metodikken er mye den samme. Teorien, Reinforcement Learning, ble utviklet av Richard Sutton på 90-tallet, og Gerald Tesauro var den som benyttet teorien til sitt backgammon-program TD-gammon (midten av 90-tallet). TD-gammon var det programmet som revolusjonerte backgammon og backgammonprogramvare. TD-gammon ga grunnlaget for andre programmer som JellyFish (Fredrik Dahl), Snowie (Olivier Egger), GNU Backgammon  (Gary Wong, Joseph Heled et al). Senere kom BGBlitz (Frank Berger), eXtreme Gammon (Xavier Dufaure de Citres) og noen flere. Alle disse virker relativt likt. Man trener et (eller flere) nevrale nettverk ved å la programmet spille mot seg selv og parametrene i det nevrale nettet justeres etter TD-algoritmen (TD = Temporal Difference). Felles for alle programmene som ble utviklet på sent 90-tall og tidlig 2000-tall var at de nevrale nettverkene var relativt små i forhold til dagens nevrale nettverk. Alle nettverkene hadde bare to lag ("Layer" som det heter på nynorsk). Det var på den tiden svært vanskelig å trene et nevralt nettverk som hadde mer enn to slike lag. For å begrense hvor mye backgammon et nevralt nettverk trengte å lære, ble det derfor vanlig å dele opp posisjonene i kategorier og ha et spesialisert nevralt nettverk for hver kategori. GNU Backgammon hadde kategoriene "contact", "race" og "crashed". Dette er en oppdeling jeg ser at andre utviklere fortsatt benytter. (BGBlitz, XG, GNU Backgammon og OpenSage opp til "Stage 4") 

Av de litt nyere systemene benytter man dypere nevrale nettverk - Octopus har 4 lag i det nevrale nettverket. PureTD har gjerne 6 lag. HedgeHog har flere modeller der en av de beste (aureus_v0.1) har 4 lag. Disse nye systemene har også betydelig flere parametre og de trenes over mangle flere spill. Jeg tror den siste versjonen av TD-gammon spilte omtrent 3 millioner spill mot seg selv. Octopus og PureTD har spilt mer enn 300 millioner spill mot seg selv.  Det at disse modellene har flere parametre, gjør selvfølgelig at evalueringene er litt tregere enn ved små grunne modeller. Men det vi likevel ser er at en slik dyp modell med flere lag og flere parametre gjerne er et helt ply (halvtrekk, red. anm.) sterkere enn de klassiske to-lags modellene.

Hvis vi aksepterer at en fasit foreløpig ikke finnes, hvor nær tror du vi kan ligge?

I mange stillingstyper ligger vi svært nært. Det er ingen problemer å bygge opp en to-sidig bearoff-database som gir eksakt vinst-sannsynlighet for alle bearoff-stillinger - det er heller ikke noe problem å bygge videre til en "cubeful" bearoff-database for pengespill. Jeg anser derfor bearoffposisjoner som "løst". (Dog litt utfordringer med matchspill, men det er relativt lett å regne litt Janowski sammen med en bearoff-database)

Jeg tror dagens nevrale nettverk, kanskje helst PureTD på 2-ply, er så nært vi kan komme i alle kontaktløse stillinger - og med litt hjelp av en-sidig databaser er man virkelig nært hva som er mulig. Andre stillingstyper er litt mer uklar. Jeg ser at mange avanserte stillinger (bakspill og prime-vs-prime etc) er systemene ganske uenige med hverandre - men likevel havner de på samme valgte trekk. For å finne en "fasit" i disse stillingene kan man rulle ut, men man må passe på at ikke systemet man benytter gjør en systematisk feil.

Du har laget Octopus den siste tiden, og før det hadde du udacity_capstone gående på FIBS. Hva har vært motivasjonen din?

Motivasjonen min var bare å utfordre meg selv. Hvor god klarer jeg å lage en backgammonspiller med kunstig intelligens? udacity_capstone er en tidlig versjon, ca 2016 tenker jeg, som nesten var som GNU Backgammon, men det nevrale nettverket for "contact" er mye større og dypere enn i GNU Backgammon (men det er ikke mye bedre). Samtidig er det veldig spennende å sette i gang en trening og se hvordan det utvikler seg. Jeg har en feilrate jeg følger med på når jeg trener og det er utrolig spennende faktisk. Starte en trening en kveld og så se hvordan det har gått dagen etterpå.

Dette var veldig spennende da jeg trente siste Octopus. Jeg satte i gang en trening og dro på ferie. Etter 3 uker hadde treningen da gjort en ny bestenotering!

Du peker på en håndfull miljøer/nevrale nettverk. Hvis fasit ikke finnes, hvordan kan vi avgjøre hvem som har den sterkeste evaluatoren (nevrale nettverket)?

Teamet bak GNU Backgammon (Joseph) samlet opp mange stillinger fra spill som ble spilt, og fant mange "vanskelige" trekk. Han samlet ca 100.000 stillinger fra hver av stillingskategoriene "contact", "race" og "crashed" , og rullet ut med datidens beste nevrale nettverk de 5-6 beste kandidat-trekkene. Disse datasettene brukes av flere til å finne benchmark for hvor godt et nevralt nettverk er til å velge gode trekk. Denne benchmark-prosessen ser da på hvilken trekk det nevrale nettverket vil gjøre og så gi en feilrate basert på hvor feil det valgte trekket er. Alle disse feilratene summeres opp og gir en total feilrate for hele settet på ca 100000 stillinger. Verdien, sannsynligheten for hvert utfall, er derimot ikke en del av denne benchmarken. En slik benchmark kan beregnes på noen få sekunder og gir en rask pekepinn på hvor godt et nevralt nettverk er. Denne metoden benyttes av GNU Backgammon-teamet, meg selv og Mark Higgins (Sage)

Metoden beskrevet over er veldig rask, men den er litt usikker. Hvor gode er egentlig tallene som ble rullet ut på tidlig 2000-tallet? Kan vi stole på tallene? Det finnes derfor andre metoder for å sammenligne systemer. Den andre metoden for å sammenligne nevrale nettverk er derfor rett og slett å la to systemer spille mot hverandre over mange spill. Datamaskiner er i dag relativt raske og kan spille tusenvis av partier pr. sekund. Det fungerer nesten som en rollout der hver bot flytter brikker for hver sin side. Man antar da at det beste systemet også er best på "cubeless moneygame", dvs pengespill (som tilsvarer matcher av uendelig lengde) der alle poengene er like mye verdt, men hvor det spilles uten kube.

Det er relativt store gap mellom de forskjellige systemene. Mange oppgir hvor mange poeng pr. game (ppg), dvs. equity det ene systemet taper eller vinner mot det andre. I løpet av noen minutter kan man få et ganske klart bilde på hvilken bot som er best av to kandidater. Alexander Strehl rapporterer at PureTD vinner i snitt 44 millipoeng pr. game når den matches mot GNU Backgammon. Dette tallet har jeg også verifisert med mine systemer. Det er ganske så mye!

Kan du si mer om benchmarkingen utviklerne i mellom, eller blir det for teknisk for gammon i gata?

Jeg har gjort en benchmark av flere av de aktuelle nevrale nettverkene etter metoden som er løst beskrevet over. Jeg har kjørt gjennom 107484 stillinger fra den gode gamle contact.bm fra GNU Backgammon og funnet en total feilrate for hver av systemene. Lavere tall er altså bedre.

 

 

Statisk evaluering *

1-ply evaluering **

GNU Backgammon

10,224

8,164

OpenSage (Stage 5) ***

9,87

8,42

Aureus v0.1 (HedgeHog)

8,193

6,935

FOX v0.3 (HedgeHog)

8,536

7,142

FOX v0.32 (HedgeHog)

9,03

7,442

Octopus

8,148

7,283

PureTD (cubeless_prob5)

7,538

6,968

*) Statisk evaluering betyr at programmet ser på alle lovlige trekk og velger trekket som er best på en statisk evaluering gjennom det nevrale nettverket. Noen systemer (f.eks XG) kaller dette 1-ply.

**) 1-ply evaluering betyr at programmet ser på alle lovlige trekk og for hvert trekk også ser på alle kast og beste trekk etterfulgt av motstander. Noen systemer kaller dette 2-ply.

***) Tallene fra OpenSage er tatt fra dokumentet MODEL_BENCHMARKS.md i OpenSage koden. Der heter tallet "Contact ER"

Nå som eXtreme Gammon ikke har vært oppdatert på mer enn et tiår, og på tross av at Über-gründer Travis Kalanick har kjøpt rettighetene, må vi kunne anta at konkurrentene (som Sage, Hedgehog) etterhvert overtar det kommersielle markedet.

Samtidig har vi en Backgammon Masters Awarding Body (BMAB) som forvalter titlene organisasjonen deler ut, som er sterkt knyttet til PR-begrepet og tilhørende terskler - som eksempel må stormestre ha prestert PR < 4 over tid for å oppnå tittelen.

Opererer Sage og Hedgehog med størrelser tilsvarende XGs PR? Har du et råd til BMAB - hva slags størrelse vil kunne være leverandør-uavhengig beslutningskvalitetsindikator i backgammon fremover?

Ja, PR er et etablert begrep i backgammon - men det er noen utfordringer med begrepet. Det ene er at det er litt uklart definert. Det andre er at det er knyttet til et spesifikt kommersielt produkt. 

Hvis man fokuserer for mye på PR, begynner man å ta avgjørelser på brettet som ikke har noe med å vinne spillet lengre, man begynner å ta avgjørelser for å senke sin PR. Spillet handler da ikke lengre om å vinne, men om å etterligne hvordan et spesifikt dataprogram spiller. Jeg har derfor personlig aldri engasjert meg mye for verken PR eller BMAB. 

Å beregne en PR eller et tall tilsvarende PR, er ingen praktisk utfordring for et system som Sage eller HedgeHog, så om det ennå ikke er tilgjengelig er det svært enkel funksjonalitet å implementere. Det er en svært enkel programmeringsoppgave. Men hvordan en slik Performance Rating skal beregnes må være klart definert. Jeg ville ha skrotet PR-tallet og tenkt nytt, ja. 

Hvis man skal evaluere en "performance" bør tallet man opererer med være uavhengig av en spesifikk leverandør. I tillegg må tallet ha en kjent beregningsformel og denne må ikke påvirke hvordan man spiller. Dette kan fort bli komplekst.

Man ser for seg at "performance" er "total feil" delt på antall avgjørelser. Over brøkstreken er "total feil" avhengig av en spesifikk programvare og hva gjør man da når denne programvaren ikke lenger er den beste på markedet? Så er det nevneren i uttrykket. Hva menes med antall avgjørelser? Bør man ta en tvilsom kube i et løp, slik at man får flere avgjørelser og dermed lavere PR? Bør jeg danse mange ganger? Påvirker det "antall avgjørelser" og dermed PR? Er det en avgjørelse å ikke doble fra bar mot et lukket bo?

Når man tenker litt over det, ser man at det fort blir vanskelig. Jeg lurer litt på om man kanskje heller burde operert med noe helt annet. Blunder-rate? For meg er PR bare en statistisk verdi og bør etter min mening ikke gi grunnlag for titler og premiering. 

Men når alt kommer til alt, så må vi alle være enige om at lavere PR gir høyere sannsynlighet for å vinne!

Hva er hovedutfordringene for at et nevralt nettverk skal bli kongen på BG-haugen? Er det dette Alexander Strehl forsøker på?

Ja! Alexander Strehl har gjort en utrolig sak. Hans system, som han referer til som PureTD er utrolig sterkt. I tabellen over ser man at dette nettet spiller betydelig bedre enn alle de andre på statisk evaluering. Egentlig har Alexander laget flere modeller, der han har trent et spesielt nett til å spille DMP. Så har han også trent et nevralt nettverk som spiller "cubeless moneygame". Og så har han i tillegg trent et nevralt nettverk som gir cubeful equity for pengespill. Dette er dermed konseptuelt annerledes enn hvordan andre systemer håndterer kubespill. I stedet for å regne om fra cubeless til cubeful  equity ved hjelp av Janowski-formlene er dermed den cubefulle equityen lært ved trening.

PureTD har også andre kvaliteter de andre systemene mangler. Selve nettverket er ca 530k parametre, dvs. ca dobbelt så stort som Octopus' nettverk. Det spiller bedre enn alle de andre uten noe form for bearoff-database, eller andre tricks. Kun et nevralt nettverk. Han har trent nettverket og flere hundre millioner spill.

Så i mitt hode er PureTD allerede kongen på haugen, men systemet har dessverre ingen brukergrensesnitt for tiden. For en aktiv student av Backgammon anbefaler jeg derfor HedgeHog som studieverktøy.