Hvis du sammenligner gennemsnitligt energiforbrug før vs efter ombygningen direkte, måler du langt mere end skroget. Du måler også at efteråret havde mere modvind, at vandstanden har ændret sig sæsonbestemt, at en anden skibsfører kørte blødere i en periode, eller at tidevandsfasen falder forskelligt på forskellige datoer.
Skroget kan kun isoleres ved at sammenligne sejladser der ellers var meget ens. For hver sejlads efter ombygningen finder algoritmen den sejlads før ombygningen med mest sammenlignelige forhold, og parrer dem. Når mange par alle viser samme tendens, kan du være rimelig sikker på det skyldes skroget — ikke vejret.
For hvert par (efter ↔ før) beregnes for hver parameter:
bidrag = |a − b| / tolerance × vægtDen samlede match-score er summen af alle bidrag:
score = Σ bidragLavere score = bedre match. En score på 0 ville være to identiske sejladser. En gennemsnitsscore omkring 0.2 betyder at parrene typisk afviger mindre end en fjerdedel af tolerancegrænserne — ret strenge matches.
Tolerance er prisen for uenighed i parameterets egne enheder. Den siger "hvor meget afvigelse koster 1 score-point". Hvis vindstyrke-tolerancen er 2.0 m/s:
Tolerance kalibrerer altså hvad der er en betydelig forskel for den enkelte parameter.
Vægt er den relative vigtighed. Den ganges på efter
normaliseringen. Vægt 0 betyder "ignorer parameteret helt".
Vægt 2 betyder "tæller dobbelt så meget som de andre".
To bidrag der begge ender på 0.5:
| Parameter | Hvad det måler |
|---|---|
| Vindstyrke | Den primære fysiske modstand. Højere vind → mere energi. |
| Vindretning | Medvind / modvind / sidevind. Behandles cirkulært (350° og 10° er kun 20° fra hinanden, ikke 340°). |
| Vandstand | Vanddybden i sejlrenden, og friktion mod bunden ved lavvande. Vigtig på Fanølinjen. |
| Propel-RPM | Proxy for skibsførerens kørestil. To sejladser med samme vind men forskellig RPM betyder forskellig påvirkning. |
To ting kører udenom score-formlen som binære filtre:
Begge filtre afgør hvilke par der overhovedet er kandidater. De påvirker ikke score-tallet.
Hvis en parameter har vægt > 0, men værdien er null på enten før- eller
efter-siden, returnerer algoritmen Infinity for hele parret — det udgår.
Det er bevidst strengt. Hvis vandstand mangler på den ene side, vil "diff = 0" se
kunstigt godt ud. Bedre at smide parret ud. Hvis du derimod bevidst
vil ignorere en parameter, så sæt vægten til 0. Det er den korrekte
måde at fortælle algoritmen "denne parameter eksisterer ikke for denne analyse".
Selv den bedste tilgængelige før-sejlads kan stadig være et dårligt match. Hvis du har en stormfuld dag efter ombygningen og overhovedet ingen stormfulde dage før, vil den "bedste" før-sejlads stadig være en lummerlille sommerdag — og det er et katastrofalt match.
Max-score er sikkerhedsventilen. Et par hvor bedste score > maxScore bliver afvist, selv om der ikke fandtes noget bedre. Med en max-score på 2.0 og gennemsnitsscore omkring 0.2 har du masser af headroom — du kan eventuelt stramme den ned mod 1.0 for at få endnu mere troværdige par (på bekostning af færre par).
Algoritmen sorterer efter-sejladserne (nyeste først), og for hver enkelt finder den den bedste endnu ledige før-sejlads. Når en før-sejlads er brugt, kan den ikke matches igen.
Det er ikke matematisk optimalt — en Hungarian-algoritme ville minimere den samlede score over alle par. Men forskellen er typisk lille når puljen er meget større end antallet af par, og greedy er O(n²) der kører på millisekunder. Med ekskluderings-knappen kan du manuelt overstyre dårlige matches.
Tag fx et par hvor begge sejladser var rundture under ret ens forhold:
| Parameter | Før | Efter | |Δ| | Tolerance | Vægt | Bidrag |
|---|---|---|---|---|---|---|
| Vindstyrke | 5.1 m/s | 5.2 m/s | 0.1 | ±2.0 | 1.0 | 0.05 |
| Vindretning | 239° | 244° | 5° | ±45 | 1.0 | 0.11 |
| Vandstand | −76.2 cm | −79.5 cm | 3.3 | ±30 | 1.0 | 0.11 |
| Propel-RPM | 253 | 253 | 0 | ±20 | 1.0 | 0.00 |
| Total match-score | 0.27 | |||||
Vinden var næsten identisk i styrke (0.1 m/s forskel) og fra meget tæt på samme retning (5°). Vandstanden afveg lidt mere (3.3 cm), men begge sejladser var under lavvande. Propellen kørte identisk. Score 0.27 er solid — det er to sejladser der reelt foregik under sammenlignelige forhold.
| # | Retning | FØR dato | EFTER dato | Vind m/s (f → e) | Retning° (f → e) | Vandstand cm (f → e) | Trend (f → e) | Propel RPM (f → e) | FØR kWh | EFTER kWh | Δ% | Score | Detalje |
|---|