Fellag AS · BoatNav

BoatNav Research

Forskningssporet bak ruteplanleggeren — kartlagt fra problem til arkitekturvalg

Kan en telefon foreslå en rute gjennom norsk skjærgård som et menneske kan lese, begrunne og redigere — uten nett, på ett sekund? BoatNav har allerede en ruteplanlegger som virker. Spørsmålet er om den er god nok, og hva som skal til. Vi behandler det som forskning: hypotesene låses før målingene, datasettene fryses med kryptografisk identitet, og alt publiseres her — også det som ikke virket.

Serie BoatNav Research Notes Metode Design Science Research Kartgrunnlag Kartverkets sjøkart
Fase 0 → 4 · ruta viser rekkefølgen på stegene, ikke en tidsplan

Avgang · 26. juli 2026

Problemet, målt der det gjør vondt

Sjøen er ikke et veinett. Ingen graf er gitt — det seilbare rommet må bygges fra kartets polygoner i det øyeblikket du spør, og hvordan det ser ut avhenger av båten din: dypgang, bredde, høyde. Feilene er asymmetriske. En falsk «ingen vei» er irriterende. En falsk «klar» kan sette båten på skjær.

Problemnotatet fra implementasjonen målte hvor planleggeren svikter, og målingene pekte et annet sted enn lærebøkene ville ledet oss.

  • 120 m celler → 250 m bred renne «fantes ikke»
  • 17 250 celler klassifisert · 326 åpnet av søket
  • 62 rutepunkter i ett forslag — uredigerbart for hånd
BoatNav — problemnotat fra praksis Ruteplanlegging i skjærgård: hva som gikk galt, målt i en fungerende implementasjon Fellag AS (BoatNav) PDFProblemnotatet · 26. juli 2026

Veipunkt 2 · publisert

Research Note 2026-01

Forskningsopplegget ble forhåndsregistrert før første måling: hypoteser, eksplorative spørsmål og kvantifiserte løsningsmål låst i forkant, slik at resultatene ikke kan pyntes i etterkant.

Samme dag gikk den første rapporten ut — problemkarakterisering, målinger fra prototypen og eksperimentet som skal velge arkitekturen. Norsk hovedtekst, engelsk sammendrag. Ikke fagfellevurdert.

Veipunkt 3 · 26.–27. juli 2026

På vannet, der det gjelder

Teori tåler ikke sjøsprøyt. To felttester i Mjælvika-skjærgården, med ruteforslag under reelle forhold på en helt vanlig telefon. Atten nummererte funn kom ut av det, hvert med bevart rådata.

Det alvorligste: en planlagt klaring på 41 meter ble til 1 meter underveis — uten ett eneste feilsignal. Det er nå en målbar invariant i eksperimentet, ikke en anekdote.

  • 18 funn · F-1…F-18 · alle med bevart rådata
  • Felttest 3 forhåndsregistrert — venter på seilbart vær
Per legg: «ingen funn innenfor 50 m i dataene» — aldri «trygt»

Veipunkt 4 · 27.–29. juli 2026

Laboratoriet fryses

Skal tall kunne etterprøves, må laboratoriet stå stille. Fase 0 endte med 273 ruteinstanser trukket med seed og verifisert uavhengig, en fasit med målt feilgrense, og dagens planlegger med karakterbok — 30 % falske «ingen vei», referansen alt nytt skal slå.

Underveis fant vi noe vi ikke lette etter: sjøkartet ble oppdatert i det stille mens vi målte. Derfor er også kartet frosset, med egen manifest-hash.

  • 273 instanser · fasit med feilgrense 2,8 %
  • korpus · fasit · baseline · kart — alle hash-frosset

Veipunkt 5 · publisert

Ruta som endrer seg av støy

4 641 kjøringer flyttet startpunktet slik en telefon-GPS gjør — en halv meter, fem meter. 7,5 % av ruteforslagene endret seg, og følsomheten metter allerede ved en halv meter: et ti ganger større skritt legger til under to prosentpoeng.

Rapporten navngir mekanismen. Rutenettet er ankret til spørringen, ikke til verden, så en forskyvning under cellestørrelsen flytter hvert cellesenter og re-registrerer hele gitteret mot kartet. Derav et mottiltak på én linje, med tallfestet prediksjon.

  • 24,8–25,8 % ruteendring i trangt farvann · ≤ 0,6 % i åpent
  • en faktisk navigert rute endret seg i 16 av 16 kjøringer

Veipunkt 6 · publisert

Kartet endret seg mens vi målte

Hvordan man fryser et laboratorium: korpuset på 273 instanser, fasiten med et feilbudsjett som er målt og ikke antatt, og dagens planlegger med karakterbok — 61 av 202 falske «ingen vei».

Underveis skjedde det vi ikke lette etter. Mellom to hentinger tre dager fra hverandre fikk seks flisnøkler nytt innhold fra Kartverket, opptil 349 nye hindringsflater per nøkkel — uten versjon, dato eller signal. Fem rader flyttet seg, og én rute ble en annen.

  • feilbudsjett 2,808 % — målt, etter at gjetningen ble avvist
  • og et argument mot vår egen port: en flis kan være til stede og tom

Veipunkt 7 · publisert

Da målingen tømte en akse

210 kjøringer på en iPhone 14, uten en eneste feil, mot en beslutningstabell låst før første måling. Budsjettet bommes med 25–32 ganger. Det avgjør representasjonsvalget etter en regel skrevet på forhånd — ikke etter en vurdering i etterkant.

Arbeidsstasjonen bommer også. Den er fjorten ganger raskere enn telefonen og lander likevel fire til fem ganger over budsjett, så maskinvaren er ute av forklaringsrommet.

Og motorstraffen viste seg å ikke være ett tall: den spenner fra 3,4 til 48,8 ganger mellom beregningsfasene. Hvilken fase som ser ut som flaskehalsen avhenger dermed av hvilken maskin du måler på. Underveis trakk vi en av våre egne påstander — etterforenklingen er ikke påviselig kvadratisk, og eksponenten lar seg ikke fastslå.

  • p95 31,6 s mot 1 s · 76,2 s mot 3 s — nederste rad i beslutningstabellen
  • konstruksjonen eier medianen med 91 %, forenklingen halen med 151 sekunder
  • matrisens etterbehandlingsakse har ingen brukbar verdi for gitterfamilien

Veipunkt 8 · publisert

Vi fant ut hva oppryddingen koster

Forrige notat trakk en av våre egne påstander: oppryddingen var beskrevet som kvadratisk i antall knekkpunkter, og grunnlaget var to målepunkter. En trukket påstand er ærlig, men den svarer ikke. Så vi stilte spørsmålet på nytt — uten en hypotese å bekrefte.

Fremgangsmåten var den enkleste som finnes: vi bygde en teller inn i koden og talte hva den faktisk gjør. Svaret er at maskinen prøver ruta mot hver enkelt kant på hvert eneste skjær, og at tiden følger antall slike kantsjekker — presist, og likt i alle tre farvann.

Den største turen i korpuset koster 593 millioner kantsjekker for én rute. Det er tallet som skal ned. Og et mål man kan telle, er et mål man kan prøve et forslag mot før det bygges.

  • eksponent 0,922 over 112 instanser — 0,990 og 0,995 når målegulvet utelates
  • knekkpunkt-tallet, som den trukne påstanden navnga, forklarer minst av fem: R² 0,2451
  • åpen kyst så ut som et unntak (0,842) — det var samme gulv, og løser seg til 0,974

Veipunkt 9 · publisert

Plassen var aldri problemet

Planleggeren bruker sytten sekunder på å bygge rutenettet og under ett på å bruke det. Byggingen avhenger bare av sjøkartet, så den kunne vært gjort på forhånd og lagt i kartpakken — men da må den lastes ned, og BoatNav skal virke uten nett.

Det gjorde dette til et ja/nei-spørsmål som måtte stilles før vi målte løsninger: får forarbeidet plass om bord? Vi bygde det, komprimerte det og veide det mot sjøkartet det følger med. Det får plass med svært god margin — hele forarbeidet for 4 600 sjøkartfliser veier mindre enn en fjerdedels megabyte.

Men da vi først hadde svaret, viste to andre ting seg å være det som faktisk binder. Rutenettet kan ikke gjenbrukes mellom to søk slik koden står i dag — femten strekninger ga femten ulike rutenett. Og fjerner man byggetiden, blir søket den nye flaskehalsen. Porten vi trodde kunne stoppe alt, stoppet ingenting.

  • forarbeidet komprimert: 0,15 MB mot 57 MB sjøkart over samme område — 1:371
  • søket åpner celler i takt med rutenettet, men hver celle blir 1,93× dyrere når cellene halveres
  • femten strekninger, femten ulike rutenett — 2,6 cellers avvik allerede innenfor bredden av én kartflis

Veipunkt 10 · publisert

Vi telte feil ting i søket

Forrige veipunkt viste at hvis vi gjør forarbeidet på forhånd, blir søket det som tar tid. Og søket hadde ett tall vi ikke kunne forklare: på et finere rutenett koster hver celle nesten dobbelt så mye å behandle — selv om maskinen behandler nøyaktig like mange celler per rute.

To forklaringer var mulige, og de peker hver sin vei. Enten er det mengden som koster — da blir hver celle billigere straks vi behandler færre. Eller så er det noe ved de fine cellene selv — da hjelper det ikke å behandle færre.

Svaret er mengden. Men da vi så nærmere etter, fant vi grunnen i koden: maskinen holder en liste over hvilke ruter den vurderer, og leser hele lista på nytt hver eneste gang den tar ett skritt videre. Jo lengre lista blir, jo tregere går hvert skritt. Arbeidsenheten var ikke skrittet — den var skrittet ganget med lista.

  • oppløsningen forklarer minst av tre mulige forklaringer: 0,504 mot 0,876
  • opptil ~90 000 behandlede celler er forskjellen 7 % — fra ~250 000 er den 63 %
  • og det er nøyaktig størrelsen forarbeidet gir oss: over en million celler

Prosjektet er her — køen skal rettes før søkestrategiene måles

Neste · planlagt

Alternativene som ennå ikke finnes

Aksen har fortsatt bare to innstillinger: av, eller den vi bruker i dag. Slår man den av, blir ruta for unøyaktig og får for mange knekkpunkter til å leses av et menneske. Lar man den stå på, koster den i verste fall to og et halvt minutt. Ingen av dem er brukbare.

Forskjellen fra i går er at vi nå vet hva et forslag må angripe. Arbeidsenheten er kantsjekken, ikke knekkpunktet — så et tiltak som halverer antall knekkpunkter, men lar kantsjekkene stå, flytter ingenting. Nye alternativer skal foreslås og måles mot den enheten.

  • av: 8,2 % omvei mot et krav om 5 % — og 62 knekkpunkter mot et krav om 15
  • på: opptil 151 sekunder
  • målestokken: 593 millioner kantsjekker for den dyreste ruta
BoatNav Research Note — arbeidstittel Alternativer til etterbehandlingen, målt mot kantsjekken Fellag AS (BoatNav) Planlagt

Bestemmelsessted · siste veipunkt

Arkitekturvalget

Full matrise over diskretisering, konstruksjon, søk og etterbehandling. Hypotesene avgjøres med statistikken som ble registrert på forhånd, og go/no-go mot løsningsmålene velger arkitekturen for automatisk ruting i Båtnav+.

Det er svaret Båtnav+ bygges på.

BoatNav Research — beslutningsnotat Arkitekturen for automatisk ruting i Båtnav+: hypoteseutfall og go/no-go Fellag AS (BoatNav) Planlagt

Frosne identiteter

Hver rapport bygger på artefakter med kryptografisk identitet — endres én byte, endres hashen. Samme hash betyr samme laboratorium, så tallene kan etterprøves mot nøyaktig det grunnlaget de ble målt på.