Hajime schreef :
In Rak zit nog een optimalisatie door elke boei te voorzien met de minimale benodigde tijd naar de finish.

Ben je hier te laat, dan kan je de zoekboom hier verder afbreken.
Een andere optimalisatie is dat per boei de rakken gesorteerd zijn aflopende bootsnelheid.

Dus snelste eerst. Samen met die minimaal 99% gemiddelde snelheid voor het reeds afgelegde deel van het traject worden de meeste zoekbomen afgekapt.
Het lijkt erop dat de route-app minstens 100x sneller is dan Rak

Hier een uitleg die hopelijk begrijpelijk is hoe het snoeien in de route app te werk gaat.
De meeste mijlen per uur eerst. Per boei staan de mogelijkheden op volgorde van wat ze werkelijk opleveren: afstand gedeeld door de tijd die ze kosten, schuttijd inbegrepen. Puur op snelheid sorteren zet een sluisrak bijvoorbeeld vooraan op acht knopen terwijl je daar ook een bijv. uur voor de deur kunt wachten. Dit gebeurd per half uur in de route opnieuw, omdat een draaiende wind de volgorde kan omgooien.
Deadline — het laatst mogelijke tijdstip per boei. Eén Dijkstra vanaf de finish over de omgekeerde rakken bepaalt voor élke boei hoe lang je er minimaal over doet om de finish nog te halen; sluitingstijd min dat getal is het laatste moment waarop je daar nog mag zijn. Sta je bijv een half uur voor de sluiting nog op de Noordzee, dan is de rest van dat traject kansloos en wordt het niet verder doorgerekend. Kort, krachtig en voor alle 65 boeien in een paar milliseconden klaar; het kapt veruit de meeste zoekbomen af.
De grens rekent met de snelste wind van de hele race — te krap zou routes wegsnoeien die wél haalbaar zijn. Hem scherper maken door de wind van het moment zelf te gebruiken is geprobeerd en weer teruggedraaid: op de gemeten gegevens kapte hij geen enkele tak extra af, terwijl de opzoekactie in de binnenste lus een derde van de rekensnelheid kostte. De scherpe versie zit wél in de bovengrens hieronder, want die wordt maar één keer per boei geraadpleegd in plaats van bij elk rak.
Opbrengst per uur. Vanaf het zesde rak wordt een traject afgebroken zodra het per uur minder oplevert dan snoeidrempel × de beste route tot dan toe. Dit levert veruit de meeste versnelling, en is de enige snoeimethode die het optimum kán missen — vandaar dat de drempel instelbaar is. Hier gaat het hier om mijlen inclusief de sluiscompensatie, niet om pure snelheid: een route die een schutting meepakt loopt anders ten onrechte achter.
Hoger snoeit méér. Op 100% valt alles af wat trager gaat dan de beste route tot dan toe; op 0% wordt er op deze grond niets weggesnoeid en is de uitkomst gegarandeerd optimaal — maar alleen als de zoektocht ook werkelijk uitgeput raakt, en op het volle veld gebeurt dat nauwelijks.
Rakfilters. Je windhoekgrenzen in de modus "overslaan", en een eventuele minimumsnelheid.
Riscofilters. Rakken met een ingestelde risico grens vermindert ook het aantal door te rekenen opties maar kans dat je de meest optimale route mist, Dit word wel een veilige route die minder gevoelig is voor winddraaiingen.
Bovengrens. Voor elke boei is per stand van de klok uitgerekend hoeveel mijl er vanaf daar nog te varen valt vóór de finish dicht is, mét de wind van dát moment: zakt het 's nachts in, dan weet de grens dat er minder te halen valt. Is dat, keer de hoogst mogelijke sluiscompensatie, niet meer dan de beste route tot nu toe, dan kan de hele tak dicht. Dit is de tegenhanger van de deadline-snoei — die zegt of de finish nog haalbaar is, deze of er nog iets te hálen valt — en het is naast de rakfilters de enige snoei die het optimum bewijsbaar niet kan missen: de tabel houdt zich niet aan de gebruikslimieten van de rakken en komt er dus altijd ruim boven.
Dat de zoekfunctie werkelijk op de uitslag optimaliseert en niet op afstand, wordt getoetst door hem op een kleine graaf te vergelijken met een volledige opsomming van alle routes — zowel met als zonder sluizen.
Het opknippen van de waddenrakken en in de berekening meenemen als losse segmenten vertraagt de boel weer omdat er dan eindeloos veel mogelijkheden bij komen.
Ben het nog flink aan het doortesten maar de eerste resultaten zijn veelbelovend doorrekenen tot 100.000.000.000 is met bepaalde instellingen binnen een half uur klaar. Maar ligt dan ook net weer aan het weerbericht.
Verder wil ik nog even doortesten wat het op een krachtige PC met bijv CPU 64-cores.