-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathopen-problems.html
More file actions
1020 lines (921 loc) · 67.2 KB
/
open-problems.html
File metadata and controls
1020 lines (921 loc) · 67.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<link rel="icon" type="image/svg+xml" href="favicon.svg">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WindMar - Trois problèmes ouverts du routage météorologique en marine marchande</title>
<link rel="stylesheet" href="assets/css/docs.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.js"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/contrib/auto-render.min.js"></script>
</head>
<body>
<!-- Header -->
<header class="docs-header">
<div class="docs-header-content">
<a href="docs.html" class="docs-logo">
<i class="fas fa-ship"></i>
<span>WindMar</span>
</a>
<nav>
<ul class="docs-nav">
<li><a href="docs.html">Documentation</a></li>
<li class="docs-nav-dropdown">
<a href="#">Technical Articles <i class="fas fa-caret-down"></i></a>
<ul class="docs-nav-dropdown-menu">
<li><a href="weather-fields.html">Weather Fields</a></li>
<li><a href="data-pipeline.html">Data Pipeline</a></li>
<li><a href="hydrodynamics.html">Hydrodynamics & RAO</a></li>
<li><a href="astar-pathfinding.html">A* Pathfinding</a></li>
<li><a href="route-optimization-engines.html">Optimization Engines</a></li>
<li><a href="weather-data.html">Weather Acquisition</a></li>
<li><a href="monte-carlo.html">Monte Carlo</a></li>
<li><a href="open-problems.html" class="active">Open Problems</a></li>
</ul>
</li>
<li><a href="https://github.com/windmar-nav/windmar" target="_blank"><i class="fab fa-github"></i> GitHub</a></li>
<li><a href="https://github.com/windmar-nav/windmar#try-it-locally" class="demo-nav-link" target="_blank"><i class="fas fa-download"></i> Install Now</a></li>
</ul>
</nav>
<a href="project.html" class="back-to-main"><i class="fas fa-arrow-left"></i> Back to Main Site</a>
</div>
</header>
<!-- Main Layout -->
<div class="docs-container">
<!-- Sidebar -->
<aside class="docs-sidebar">
<div class="sidebar-section">
<div class="sidebar-title">Article</div>
<ul class="sidebar-menu">
<li><a href="#abstract"><i class="fas fa-file-alt"></i> Résumé</a></li>
<li><a href="#introduction"><i class="fas fa-book-open"></i> Introduction</a></li>
</ul>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Problème 1</div>
<ul class="sidebar-menu">
<li><a href="#p1-diagnostic"><i class="fas fa-cloud-sun"></i> Diagnostic</a></li>
<li><a href="#p1-wasserstein"><i class="fas fa-exchange-alt"></i> Distance de Wasserstein</a></li>
<li><a href="#p1-pipeline"><i class="fas fa-filter"></i> Pipeline & Clustering</a></li>
<li><a href="#p1-monte-carlo"><i class="fas fa-dice"></i> Monte Carlo conditionnel</a></li>
</ul>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Problème 2</div>
<ul class="sidebar-menu">
<li><a href="#p2-diagnostic"><i class="fas fa-water"></i> Diagnostic</a></li>
<li><a href="#p2-spectre"><i class="fas fa-wave-square"></i> Reconstitution spectrale</a></li>
<li><a href="#p2-calibration"><i class="fas fa-sliders-h"></i> Calibration</a></li>
</ul>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Problème 3</div>
<ul class="sidebar-menu">
<li><a href="#p3-diagnostic"><i class="fas fa-route"></i> Diagnostic</a></li>
<li><a href="#p3-pareto"><i class="fas fa-chart-line"></i> Échec de Pareto</a></li>
<li><a href="#p3-splines"><i class="fas fa-bezier-curve"></i> Splines contraintes</a></li>
</ul>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Synthèse</div>
<ul class="sidebar-menu">
<li><a href="#articulation"><i class="fas fa-project-diagram"></i> Articulation</a></li>
<li><a href="#discussion"><i class="fas fa-comments"></i> Discussion</a></li>
<li><a href="#conclusion"><i class="fas fa-flag-checkered"></i> Conclusion</a></li>
</ul>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Resources</div>
<ul class="sidebar-menu">
<li><a href="#references"><i class="fas fa-bookmark"></i> Références</a></li>
<li><a href="docs.html"><i class="fas fa-arrow-left"></i> Back to Docs</a></li>
<li><a href="https://github.com/windmar-nav/windmar" target="_blank"><i class="fab fa-github"></i> GitHub</a></li>
</ul>
</div>
</aside>
<!-- Main Content -->
<main class="docs-main">
<div class="docs-content">
<!-- ============================================================ -->
<!-- ABSTRACT -->
<!-- ============================================================ -->
<section id="abstract">
<h1>Trois problèmes ouverts du routage météorologique en marine marchande</h1>
<p class="docs-subtitle">Scénarios climatologiques, calibration spectrale et instabilité des trajectoires optimales</p>
<div class="alert info" style="margin-top: 1rem; margin-bottom: 1.5rem; font-size: 0.92rem; line-height: 1.6;">
<strong><i class="fas fa-user"></i> Sébastien Laignel</strong><br>
Capitaine illimité de la marine marchande — SL Mar – Marine Consultancy<br>
<em>Correspondance :</em> smr.laignel@gmail.com
</div>
<div class="alert info">
<strong><i class="fas fa-info-circle"></i> Article technique</strong><br>
Cet article identifie trois problèmes fondamentaux du routage météorologique en marine marchande
et propose des approches pour chacun. Il s’inscrit dans le cadre de recherche du projet WindMar et
définit la feuille de route théorique pour les versions futures du système.
</div>
<h3>Résumé</h3>
<p>
L’optimisation de routes météorologiques en marine marchande repose sur trois hypothèses
rarement questionnées : que les prévisions météorologiques constituent une entrée suffisante
pour l’optimisation, que le modèle de performance du navire est fiable, et que l’espace des
trajectoires possibles admet une structure exploitable par les méthodes d’optimisation classiques.
Cet article montre que ces trois hypothèses sont problématiques et propose des approches pour chacune.
</p>
<p>
Le premier problème — l’inadéquation des prévisions climatologiques génériques —
est traité par la sélection d’analogues historiques dans les réanalyses ERA5, mesurés par
distance de Wasserstein spatio-temporelle et organisés par clustering en scénarios physiquement
cohérents, puis explorés par simulations de Monte Carlo paramétriques conditionnelles pour
produire des distributions de consommation.
</p>
<p>
Le deuxième — l’écart entre le modèle hydrodynamique et le comportement réel du navire
— est traité par la reconstitution du spectre directionnel de vagues en route, dont les
descripteurs calibrent les paramètres de résistance ajoutée et de perte de vitesse.
</p>
<p>
Le troisième — l’instabilité des solutions dans l’espace des trajectoires stochastiques
— est traité par une paramétrisation des routes en courbes spline contraintes dans un couloir
à décroissance exponentielle.
</p>
<p>
L’objectif n’est pas d’automatiser la décision de route, mais de fournir aux navigateurs
les outils d’analyse nécessaires pour qu’ils effectuent eux-mêmes des arbitrages éclairés.
</p>
<p style="font-size: 0.88rem; color: #6b7280; margin-top: 1.5rem;">
<strong>Mots-clés :</strong> routage météorologique, distance de Wasserstein, ensembles analogues,
Monte Carlo paramétrique, spectre de vagues, calibration hydrodynamique, splines contraintes,
aide à la décision maritime.
</p>
</section>
<!-- ============================================================ -->
<!-- 1. INTRODUCTION -->
<!-- ============================================================ -->
<section id="introduction">
<h2><i class="fas fa-book-open"></i> 1. Introduction</h2>
<p>
Le routage météorologique promet des économies de carburant de l’ordre de 3 à 5 % en
moyenne pour la marine marchande [1, 3], avec des cas pouvant atteindre 7 à 10 % dans des
conditions favorables. Ces chiffres, cohérents entre les études académiques et les analyses
de flotte [2], justifient l’intérêt croissant des armateurs et des régulateurs pour ces
systèmes, en particulier dans le contexte des indicateurs CII et EEXI.
</p>
<p>
Cependant, la pratique opérationnelle du routage révèle trois problèmes fondamentaux que
les systèmes commerciaux ne traitent pas — ou traitent implicitement, sans en exposer les
conséquences. Ces trois problèmes concernent respectivement l’entrée météorologique, le
modèle de performance du navire et la structure de l’espace d’optimisation.
</p>
<p>
<strong>Le premier problème</strong> est celui de la pertinence des scénarios météorologiques
utilisés. Les systèmes actuels fonctionnent soit sur une prévision déterministe unique, soit
sur les membres d’un ensemble numérique (ECMWF ENS, GEFS). Dans le premier cas, on optimise
sur un scénario qui ne se réalisera pas. Dans le second, les membres sont trop peu nombreux
(31 à 51) pour estimer les queues de distribution, et ne garantissent pas la cohérence
physique entre variables. Dans les deux cas, l’optimiseur travaille avec une représentation
pauvre de l’espace des situations météorologiques possibles.
</p>
<p>
<strong>Le deuxième problème</strong> est celui de la fidélité du modèle navire. Les courbes
de résistance ajoutée et de perte de vitesse en vagues sont issues de formulations
semi-empiriques (Stawave, Liu–Papanikolaou) calibrées sur des conditions idéalisées.
En conditions réelles — houle croisée, spectre multi-pic, fouling, conditions de chargement
variables —, l’écart modèle–réalité peut atteindre le même ordre de grandeur que le
gain attendu du routage. Pour réduire cet écart, il faut injecter dans le modèle le spectre
de mer réellement rencontré, ce qui suppose de le reconstituer à partir des mesures
disponibles à bord.
</p>
<p>
<strong>Le troisième problème</strong> est celui de la structure de l’espace d’optimisation.
L’espace des trajectoires stochastiques — l’ensemble des chemins possibles dans un champ de
coûts aléatoire — est dépourvu de structure régulière. Une optimisation multi-objectif
de type Pareto dans cet espace produit des fronts fragmentés et des sauts topologiques entre
solutions voisines, incompatibles avec l’exploitation opérationnelle.
</p>
<p>
Le présent article analyse ces trois problèmes et propose pour chacun une approche : la
sélection d’analogues météorologiques par distance de Wasserstein et clustering
(problème 1), la calibration du modèle hydrodynamique par reconstitution spectrale
(problème 2), et la paramétrisation des routes par splines contraintes à enveloppe
exponentielle (problème 3). L’objectif n’est pas de construire un système de routage
automatique, mais de fournir aux marins les moyens d’analyse poussés pour qu’ils réalisent
eux-mêmes les arbitrages.
</p>
<h3>1.1 État actuel de l’implémentation (WindMar v0.0.6)</h3>
<p>
Les approches proposées dans cet article constituent une feuille de route théorique.
Le système WindMar, dans sa version actuelle (v0.0.6), implémente un pipeline
opérationnel qui couvre déjà une partie de la chaîne, mais avec des méthodes plus
simples que celles proposées ici. Il est important de situer précisément ce qui
existe pour comprendre ce que les trois problèmes ouverts ajouteraient.
</p>
<table>
<thead>
<tr>
<th>Axe</th>
<th>Cet article propose</th>
<th>WindMar v0.0.6 implémente</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Scénarios météo</strong><br><em>(problème 1)</em></td>
<td>Sélection d’analogues ERA5 par distance de Wasserstein spatio-temporelle, clustering en 3–5 scénarios nommés, Monte Carlo conditionnel (N = 1 000–10 000)</td>
<td>Prévision déterministe unique (NOAA GFS 0,25°, 5 jours), pré-ingérée dans PostgreSQL sur un cycle de 6 heures. Simulation de Monte Carlo paramétrique (N = 100) avec perturbations corrélées temporellement (décomposition de Cholesky), mais appliquées autour de la prévision GFS unique — pas de recherche d’analogues, pas de clustering</td>
</tr>
<tr>
<td><strong>Modèle navire</strong><br><em>(problème 2)</em></td>
<td>Reconstitution du spectre directionnel \(S(f, \theta)\) à partir de capteurs embarqués, calibration des paramètres de résistance par partition spectrale</td>
<td>Modèle Holtrop–Mennen avec paramètres scalaires d’état de mer (\(H_s\), \(T_p\), direction) issus des grilles de prévision. Calibration par moindres carrés non linéaires (scipy) à partir de rapports de midi (noon reports). Pas de reconstitution spectrale</td>
</tr>
<tr>
<td><strong>Trajectoires</strong><br><em>(problème 3)</em></td>
<td>Paramétrisation par B-splines cubiques (\(N_c\) = 4–8 points de contrôle) dans un couloir à décroissance exponentielle \(\Delta_0 e^{-t/\tau}\), avec ré-optimisation MPC</td>
<td>Recherche A* sur grille océanique 8-connectée (résolution 0,5°), lissage Douglas-Peucker + filtre d’angle de giration (< 15°). Deux stratégies de vitesse présentées après optimisation (« Same Speed » / « Match ETA »). Pas de paramétrisation spline, pas de couloir contraint</td>
</tr>
</tbody>
</table>
<p>
Les deux captures d’écran ci-dessous illustrent l’état actuel du système. La route
originale (tracé bleu) et la route optimisée par A* (tracé vert pointillé) sont
affichées simultanément sur la carte. Le panneau de comparaison (en bas à gauche)
présente deux onglets de stratégie de vitesse — « Same Speed » et
« Match ETA » — avec les économies de carburant et de temps associées.
</p>
<figure style="margin: 1.5rem 0;">
<img src="assets/img/windmar-dual-route-wind.png" alt="WindMar v0.0.6 — Optimisation A* avec superposition du champ de vent GFS" style="width: 100%; border-radius: 8px; border: 1px solid var(--ib-border);">
<figcaption style="font-size: 0.85rem; color: #6b7280; margin-top: 0.5rem; text-align: center;">
<strong>Figure 1.</strong> Route originale (bleu) et route optimisée A* (vert pointillé) sur fond de champ de vent GFS animé. Le panneau de comparaison montre les onglets « Same Speed » / « Match ETA » avec les économies de carburant et de temps par rapport au calcul de voyage de référence.
</figcaption>
</figure>
<figure style="margin: 1.5rem 0;">
<img src="assets/img/windmar-dual-route-ecdis.png" alt="WindMar v0.0.6 — Interface ECDIS avec double affichage de route et crêtes de vagues" style="width: 100%; border-radius: 8px; border: 1px solid var(--ib-border);">
<figcaption style="font-size: 0.85rem; color: #6b7280; margin-top: 0.5rem; text-align: center;">
<strong>Figure 2.</strong> Même vue en thème ECDIS sombre avec rendu des crêtes de vagues. Le tableau de comparaison détaille distance, carburant, temps, vitesse moyenne et nombre de waypoints pour la route de référence et la route optimisée.
</figcaption>
</figure>
<p>
Le système actuel fournit donc un routage A* fonctionnel avec météo temporelle,
un modèle de performance calibrable, et une quantification d’incertitude par Monte
Carlo — mais sur une seule prévision, avec des paramètres scalaires de mer, et
dans un espace de trajectoires non structuré. Les trois problèmes ouverts
identifiés ci-dessous visent à lever ces trois limitations.
</p>
</section>
<!-- ============================================================ -->
<!-- 2. PROBLÈME 1 : SCÉNARIOS MÉTÉOROLOGIQUES -->
<!-- ============================================================ -->
<section id="p1-diagnostic">
<h2><i class="fas fa-cloud-sun"></i> 2. Problème 1 : l’inadéquation des scénarios météorologiques</h2>
<h3>2.1 Diagnostic</h3>
<p>
Le routage météorologique classique utilise une prévision déterministe comme entrée.
Cette prévision est fiable 3 à 5 jours pour les champs synoptiques [4], alors qu’une
traversée transocéanique dure 10 à 20 jours. Au-delà de l’horizon fiable, l’optimiseur
exploite des gradients qui ne se matérialiseront pas.
</p>
<p>
L’alternative — utiliser les ensembles numériques (ECMWF ENS à 51 membres, GEFS à
31 membres) — ne résout pas le problème. Ces ensembles sont conçus pour caractériser
l’incertitude atmosphérique globale, non pour fournir des scénarios exploitables au niveau
d’une route maritime. Leurs membres ne sont pas indépendants, leur nombre est insuffisant pour
estimer les queues de distribution, et ils ne garantissent pas la cohérence physique entre les
variables (un membre peut présenter un vent fort avec une mer plate, combinaison qui n’existe
pas dans la réalité).
</p>
<p>
Une troisième approche consiste à échantillonner des scénarios à partir de distributions
paramétriques ajustées sur la climatologie (Weibull pour le vent, Rayleigh pour
\(H_s\), Von Mises pour les directions). Mais cette approche produit des
réalisations statistiquement plausibles et météorologiquement incohérentes : les
corrélations spatio-temporelles entre variables ne sont pas capturées par des distributions
marginales, même couplées par une matrice de corrélation.
</p>
<div class="alert warning">
<strong><i class="fas fa-exclamation-triangle"></i> Constat fondamental</strong><br>
Toutes ces approches traitent la météo comme un bruit à caractériser statistiquement,
alors qu’elle est un ensemble de <em>situations</em> à identifier.
</div>
</section>
<!-- ============================================================ -->
<!-- 2.2 WASSERSTEIN -->
<!-- ============================================================ -->
<section id="p1-wasserstein">
<h3>2.2 Approche proposée : ensembles analogues et distance de Wasserstein</h3>
<p>
Nous proposons de remplacer l’échantillonnage paramétrique par une recherche d’analogues
historiques dans les réanalyses ERA5 [9]. Le principe est simple : plutôt que de générer
des scénarios synthétiques, on recherche dans 84 ans de données (1940–2024) les situations
réelles qui ressemblent à la prévision courante.
</p>
<p>
Chaque analogue est physiquement cohérent par construction : il s’est réellement produit.
Les corrélations spatio-temporelles entre vent, vagues, courant et pression sont capturées
implicitement, sans modélisation explicite. La méthode des ensembles analogues (AnEn) est
établie en prévision météorologique [12] ; son application au routage maritime, combinée
à une métrique de similarité adaptée, constitue l’originalité de cette proposition.
</p>
<h4>2.2.1 Pourquoi la similarité spatio-temporelle est essentielle</h4>
<p>
Un analogue doit correspondre non seulement à l’état métocéanique moyen, mais aussi
à la géographie et à la dynamique temporelle de la situation. Une dépression de 3 m de
\(H_s\) dans l’océan Indien n’a rien en commun avec une dépression de même amplitude en
Atlantique Nord : le fetch, les courants, la bathymétrie et le régime synoptique sont
entièrement différents. De même, une mer de 3 m qui monte n’est pas équivalente à une
mer de 3 m qui descend : la première annonce une détérioration, la seconde une amélioration.
</p>
<p>
La similarité doit donc être mesurée sur une fenêtre spatio-temporelle : typiquement une
zone de 200×200 milles nautiques sur 24 à 48 heures, qui capture la structure spatiale et
l’évolution de la situation.
</p>
<h4>2.2.2 Choix de la distance de Wasserstein</h4>
<p>
La distance de Wasserstein (ou <em>Earth Mover’s Distance</em>) [10] mesure le coût de transport
optimal pour transformer une distribution empirique en une autre. Une fenêtre météo constitue
un nuage de points dans l’espace \((H_s, T_p, u_{\text{vent}}, v_{\text{vent}}, p_{\text{atm}})\) ;
un analogue ERA5 constitue un autre nuage de points. La distance de Wasserstein quantifie combien
de « masse » il faut déplacer pour transformer l’un en l’autre.
</p>
<p>
Son avantage décisif est la tolérance aux décalages spatiaux : un champ de pression décalé
de 50 milles produit une erreur euclidienne importante alors que le patron météorologique est
identique, simplement déplacé. La distance de Wasserstein capte cette proximité structurelle.
La distance de Mahalanobis suppose des distributions gaussiennes, hypothèse discutable pour
\(H_s\) et pour les directions circulaires. Le <em>Dynamic Time Warping</em> gère les
décalages temporels mais est unidimensionnel.
</p>
<p>
Les variables angulaires sont transformées via \(\theta \to (\cos\theta, \sin\theta)\). Le coût
de calcul, en \(O(n^3)\) exact, est ramené à un niveau tractable par les solveurs régularisés
(Sinkhorn-Knopp) [11] après pré-filtrage géographique et saisonnier.
</p>
</section>
<!-- ============================================================ -->
<!-- 2.2.3 PIPELINE & CLUSTERING -->
<!-- ============================================================ -->
<section id="p1-pipeline">
<h4>2.2.3 Pipeline de sélection et clustering</h4>
<p>La sélection procède en quatre étapes :</p>
<table>
<thead>
<tr>
<th>Étape</th>
<th>Méthode</th>
<th>Réduction</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>1. Pré-filtrage</strong></td>
<td>Masque par zone géographique et saison (±1 mois)</td>
<td>~750 000 → ~60 000</td>
</tr>
<tr>
<td><strong>2. Criblage rapide</strong></td>
<td>Distance euclidienne sur les scalaires moyennés (\(H_s\) moyen, vent moyen, pression moyenne)</td>
<td>~60 000 → ~500</td>
</tr>
<tr>
<td><strong>3. Classement fin</strong></td>
<td>Distance de Wasserstein sur les distributions multivariées spatio-temporelles complètes</td>
<td>~500 → <em>K</em> = 50–100</td>
</tr>
<tr>
<td><strong>4. Clustering</strong></td>
<td>Regroupement des <em>K</em> analogues en familles de scénarios (<em>k</em>-means ou HDBSCAN)</td>
<td><em>K</em> → 3–5 scénarios</td>
</tr>
</tbody>
</table>
<p>
Chaque cluster représente un type d’évolution météorologique : « dépression passant
au nord », « dépression passant au sud », « anticyclone persistant », etc.
Les clusters sont pondérés par fréquence historique, ajustée par proximité Wasserstein
à la prévision courante.
</p>
<div class="alert success">
<strong><i class="fas fa-check-circle"></i> Résultat</strong><br>
Le navigateur ne reçoit plus une prévision unique, mais une carte de 3 à 5 situations
plausibles, identifiées, nommables et compréhensibles, chacune assortie d’une probabilité.
</div>
</section>
<!-- ============================================================ -->
<!-- 2.2.4 MONTE CARLO CONDITIONNEL -->
<!-- ============================================================ -->
<section id="p1-monte-carlo">
<h4>2.2.4 Simulations de Monte Carlo paramétriques conditionnelles</h4>
<p>
Le clustering fournit la structure ; il reste à explorer la variabilité intra-scénario.
Pour chaque cluster, les distributions des variables métocéaniques sont ajustées
paramétriquement — Weibull pour la vitesse du vent, Rayleigh pour \(H_s\), Von Mises
pour les directions — conditionnellement au scénario identifié. On échantillonne ensuite
des milliers de réalisations (\(N\) = 1 000 à 10 000) à l’intérieur de chaque cluster.
</p>
<p>
Cette approche combine les avantages des deux mondes :
</p>
<ul>
<li>
<strong>Les analogues</strong> fournissent la cohérence physique inter-variables et la structure
spatio-temporelle : les corrélations vent–vagues–courant–pression sont celles de
situations réelles, pas d’un modèle de corrélation.
</li>
<li>
<strong>Le paramétrique</strong> fournit la puissance d’échantillonnage nécessaire pour
estimer les queues de distribution et les intervalles de confiance, ce que 50 à 100 analogues
seuls ne permettent pas.
</li>
</ul>
<p>
Chaque réalisation Monte Carlo est propagée à travers le modèle de performance calibré
(section 3) pour produire une estimation de consommation. Le résultat, par scénario, n’est
pas un chiffre mais une distribution : « 430–460 t à 90 % de confiance » plutôt que
« 452 t ».
</p>
</section>
<!-- ============================================================ -->
<!-- 3. PROBLÈME 2 : CALIBRATION SPECTRALE -->
<!-- ============================================================ -->
<section id="p2-diagnostic">
<h2><i class="fas fa-water"></i> 3. Problème 2 : la calibration du modèle hydrodynamique par reconstitution spectrale</h2>
<h3>3.1 Diagnostic</h3>
<p>
Les modèles de résistance ajoutée en vagues — Stawave-1/2 [8], Liu–Papanikolaou [6],
formulations issues de Holtrop–Mennen [7] — prédisent la perte de vitesse et la
surconsommation en fonction de paramètres scalaires d’état de mer : hauteur significative
\(H_s\), période pic \(T_p\), direction moyenne de la houle. Ces modèles sont calibrés
sur des essais en bassin ou des campagnes de mesure en conditions contrôlées.
</p>
<p>
En exploitation réelle, l’écart entre ces prédictions et le comportement observé du navire
peut être considérable, pour deux raisons.
</p>
<p>
<strong>D’abord, les paramètres scalaires ne décrivent pas la mer.</strong> Un spectre à deux pics
(houle longue de secteur + mer du vent de travers), fréquent dans l’Atlantique, produit des
sollicitations très différentes d’un spectre unimodal de même \(H_s\) : les phénomènes
de roulis paramétrique, de slamming ou de résonance dépendent de la structure spectrale, pas
de ses moyennes.
</p>
<p>
<strong>Ensuite, les conditions du navire en exploitation s’écartent des conditions d’essai :</strong>
fouling biologique [5], tirant d’eau et assiette variables, vieillissement mécanique. L’erreur
cumulée — simplification spectrale plus écart état du navire — peut atteindre plusieurs
pourcents de la consommation, soit l’ordre de grandeur du gain attendu du routage.
</p>
</section>
<!-- ============================================================ -->
<!-- 3.2 RECONSTITUTION SPECTRALE -->
<!-- ============================================================ -->
<section id="p2-spectre">
<h3>3.2 Approche proposée : reconstitution spectrale et calibration</h3>
<p>
Pour réduire cet écart, nous proposons d’utiliser le spectre directionnel de vagues
reconstruit à partir des mesures disponibles à bord — accéléromètres, inclinomètres,
éventuellement radar bande X (type Wavex/Miros) — pour calibrer en continu les paramètres
du modèle hydrodynamique.
</p>
<h4>3.2.1 Du spectre aux descripteurs</h4>
<p>
Le spectre directionnel \(S(f, \theta)\) est projeté sur un ensemble de descripteurs qui
caractérisent l’état de mer de manière plus riche que les seuls scalaires
\((H_s, T_p)\) :
</p>
<ul>
<li>Hauteur significative et période pic par système de houle (décomposition en partitions spectrales)</li>
<li>Directions dominantes de chaque partition</li>
<li>Largeur directionnelle (<em>spreading</em>)</li>
<li>Indicateur de multi-pic (nombre et séparation des systèmes)</li>
<li>Angle relatif de chaque système par rapport au cap du navire</li>
</ul>
<p>
Ces descripteurs constituent le vecteur d’entrée du modèle de performance.
</p>
</section>
<!-- ============================================================ -->
<!-- 3.2.2 CALIBRATION -->
<!-- ============================================================ -->
<section id="p2-calibration">
<h4>3.2.2 Calibration du modèle de performance</h4>
<p>
Les mesures simultanées de vitesse sur l’eau (loch), vitesse fond (GPS), puissance propulsive
(couple-mètre ou consommation instantanée) et état de chargement permettent de calibrer la
relation :
</p>
<div class="formula-block">
<div class="formula-title">Modèle de perte de vitesse</div>
\[
\Delta V = f\!\left(H_s^{(i)},\; T_p^{(i)},\; \theta_{\text{rel}}^{(i)},\; \text{état navire} ;\; \boldsymbol{\alpha}\right)
\]
<div class="formula-where">
où \(\Delta V\) est la perte de vitesse observée, l’exposant \((i)\) indexe les partitions
spectrales, et \(\boldsymbol{\alpha}\) est le vecteur de paramètres à calibrer (coefficients de
résistance ajoutée, seuils de réduction, domaines de résonance).
</div>
</div>
<p>
La calibration peut être formulée comme un problème d’estimation de paramètres (moindres
carrés non linéaires) ou d’apprentissage supervisé (forêt aléatoire, réseau de neurones
peu profond), selon la quantité de données disponibles et le degré de physique que l’on
souhaite conserver dans le modèle.
</p>
<h4>3.2.3 Boucle de rétroaction</h4>
<p>
Le modèle calibré évolue dans le temps : chaque voyage fournit de nouvelles observations qui
affinent les paramètres. En particulier, la dégradation progressive de la coque par fouling
entre deux passages en cale sèche se traduit par une dérive détectable des coefficients de
résistance, ce qui fournit un indicateur indirect de l’état de la carène.
</p>
<p>
L’objectif n’est pas de remplacer les modèles hydrodynamiques établis, mais de les corriger
empiriquement pour le navire réel dans ses conditions d’exploitation réelles. Le modèle
ainsi calibré alimente ensuite les simulations de consommation sous les différents scénarios
météorologiques issus du clustering (section 2).
</p>
</section>
<!-- ============================================================ -->
<!-- 4. PROBLÈME 3 : INSTABILITÉ DES TRAJECTOIRES -->
<!-- ============================================================ -->
<section id="p3-diagnostic">
<h2><i class="fas fa-route"></i> 4. Problème 3 : l’instabilité des trajectoires optimales</h2>
<h3>4.1 Diagnostic</h3>
<p>
Même avec un modèle navire calibré et des scénarios météorologiques pertinents,
l’optimisation de route reste un problème mal posé au sens où l’espace des trajectoires
stochastiques est dépourvu de structure régulière exploitable.
</p>
<p>
Chaque scénario météorologique produit un champ de coûts différent. La route optimale
dans un champ donné n’a, en général, aucune proximité géographique avec la route optimale
dans un champ voisin. L’espace des trajets possibles n’est pas un espace vectoriel lisse :
c’est un ensemble de chemins aléatoires dans un champ de coûts lui-même aléatoire. La
fonction de coût est hautement non convexe, non lisse, avec de multiples minima locaux.
</p>
</section>
<!-- ============================================================ -->
<!-- 4.2 ÉCHEC DE PARETO -->
<!-- ============================================================ -->
<section id="p3-pareto">
<h3>4.2 Échec de l’optimisation de Pareto</h3>
<p>
Une optimisation multi-objectif de type Pareto (temps vs. carburant vs. risque) dans cet espace
produit un front fragmenté : de faibles variations de pondération entre critères entraînent
des sauts topologiques importants dans l’espace des routes. Des routes géographiquement très
différentes correspondent à des gains marginaux sur un critère. D’une ré-optimisation à
l’autre (par exemple toutes les 24 heures), les solutions proposées peuvent être radicalement
différentes.
</p>
<p>
Ces comportements sont incompatibles avec l’exploitation opérationnelle. Le capitaine a besoin
d’une route stable, compréhensible, qui évolue de manière prévisible au fil des mises à jour.
Le front de Pareto expose des compromis théoriques mais ne fournit pas de base de décision
exploitable.
</p>
</section>
<!-- ============================================================ -->
<!-- 4.3 SPLINES CONTRAINTES -->
<!-- ============================================================ -->
<section id="p3-splines">
<h3>4.3 Approche proposée : splines contraintes à enveloppe exponentielle</h3>
<p>
Nous proposons d’abandonner la recherche d’un front de Pareto global et de paramétrer la route
sous la forme d’une B-spline cubique définie par un nombre réduit de points de contrôle
(\(N_c\) = 4 à 8) autour d’une route de référence \(\mathbf{x}_{\text{ref}}(t)\) (route
orthodromique ou plan de voyage initial).
</p>
<p>
Les points de contrôle sont les seules variables d’optimisation. La spline garantit par
construction la continuité de courbure (classe \(C^2\)), éliminant les artefacts de zigzag
sans recours à des pénalités arbitraires.
</p>
<h4>4.3.1 Enveloppe à décroissance exponentielle</h4>
<p>
L’écart latéral maximal à la route de référence est contraint par :
</p>
<div class="formula-block">
<div class="formula-title">Couloir exponentiel</div>
\[
\Delta_{\max}(t) = \Delta_0 \, e^{-t/\tau}
\]
<div class="formula-where">
où \(\Delta_0\) est la largeur initiale du couloir (50 à 80 milles nautiques pour une traversée
atlantique) et \(\tau\) est la constante de décroissance, interprétable comme le temps de
décorrélation de la prévision météorologique.
</div>
</div>
<p>La contrainte s’écrit :</p>
<div class="formula-block">
<div class="formula-title">Contrainte de couloir</div>
\[
\left\|\mathbf{x}(t;\boldsymbol{\theta}) - \mathbf{x}_{\text{ref}}(t)\right\| \leq \Delta_0 \, e^{-t/\tau}
\quad \forall\, t \in [0, T]
\]
</div>
<div class="alert info">
<strong><i class="fas fa-anchor"></i> Interprétation physique</strong><br>
Au début du voyage, la prévision offre un signal exploitable pour dévier de la route directe
(contourner une dépression, exploiter un courant). À mesure que l’horizon augmente,
l’incertitude croît et la route directe redevient la meilleure référence en l’absence de
signal robuste. En fin de voyage, l’information météorologique à longue échéance n’est
plus fiable et le couloir se referme : la route directe est la meilleure route.
</div>
<h4>4.3.2 Propriétés</h4>
<p>
La combinaison spline + enveloppe élimine les sauts topologiques : l’espace de paramètres est
de faible dimension (\(2N_c\) variables) et le couloir borné assure que deux solutions voisines
en paramètres sont voisines géographiquement. La ré-optimisation en cours de voyage produit
des évolutions progressives de la route, jamais de changement radical.
</p>
<p>
Le cadre se combine naturellement avec une stratégie de commande prédictive à horizon glissant
(MPC) : à chaque cycle, le couloir se réouvre à la position actuelle avec les prévisions
mises à jour. En restreignant l’espace de recherche par la géométrie, on revient à un
critère scalaire unique (carburant ou temps) pour chaque scénario, sans les artefacts de la
fragmentation Pareto.
</p>
<h4>4.3.3 Calibration</h4>
<p>
Le paramètre \(\tau\) se calibre empiriquement en comparant l’erreur de prévision en
fonction du délai sur un historique ERA5–ECMWF ou ERA5–GFS, par bassin et par saison.
Typiquement, \(\tau \approx\) 72–96 heures pour l’Atlantique Nord en hiver. Le nombre de points
de contrôle \(N_c\) a une interprétation opérationnelle directe : le nombre de changements de
cap significatifs autorisés sur la traversée.
</p>
</section>
<!-- ============================================================ -->
<!-- 5. ARTICULATION DES TROIS APPROCHES -->
<!-- ============================================================ -->
<section id="articulation">
<h2><i class="fas fa-project-diagram"></i> 5. Articulation des trois approches</h2>
<p>
Les trois propositions opèrent dans des espaces différents mais se combinent en un pipeline
cohérent.
</p>
<p>
<strong>Le clustering de scénarios</strong> (problème 1) structure l’espace des situations
météorologiques. Il transforme un continuum de prévisions bruitées en un nombre réduit
de situations-types, chacune assortie d’une probabilité. Les <strong>simulations de Monte Carlo
paramétriques</strong>, conditionnelles à chaque cluster, explorent la variabilité intra-scénario
et produisent des distributions de variables métocéaniques.
</p>
<p>
<strong>La calibration spectrale</strong> (problème 2) produit un modèle de performance fidèle au
navire réel. Chaque réalisation Monte Carlo est propagée à travers ce modèle calibré pour
produire une distribution de consommation par scénario — non un chiffre, mais un intervalle
de confiance.
</p>
<p>
<strong>Les splines contraintes</strong> (problème 3) structurent l’espace des routes à l’intérieur
de chaque scénario, en produisant des trajectoires lisses, stables et géographiquement réalistes.
</p>
<p>Le flux complet s’écrit :</p>
<div class="alert info" style="text-align: center; font-size: 0.9rem;">
Analogues ERA5 → Clustering Wasserstein → Monte Carlo paramétrique conditionnel × Modèle calibré spectralement → Distributions de consommation par scénario → Routes spline contraintes → Tableau de bord pour le capitaine
</div>
<h3>Exemple de sortie opérationnelle</h3>
<p>Le navigateur reçoit un tableau de bord structuré :</p>
<table>
<thead>
<tr>
<th>Scénario</th>
<th>Probabilité</th>
<th>Consommation (IC 90 %)</th>
<th>ETA</th>
<th>Route</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>A</strong> — Dépression passant au nord</td>
<td>55 %</td>
<td>430–460 t (méd. 443 t)</td>
<td>+2 h</td>
<td>Déviation sud de 35 NM les 48 premières heures, puis convergence vers le grand cercle</td>
</tr>
<tr>
<td><strong>B</strong> — Dépression passant au sud</td>
<td>30 %</td>
<td>460–510 t</td>
<td>+6 h</td>
<td>Maintien du grand cercle, réduction de vitesse à partir de J+2</td>
</tr>
<tr>
<td><strong>C</strong> — Anticyclone persistant</td>
<td>15 %</td>
<td>390–420 t</td>
<td>−3 h</td>
<td>Grand cercle, vitesse économique</td>
</tr>
</tbody>
</table>
<p>
Pour chaque scénario, les hypothèses du modèle, les incertitudes de la prévision et les
limites de la calibration sont exposées. Le capitaine arbitre entre les scénarios en fonction
de ses propres critères : marge d’ETA, confort de l’équipage, état du navire, consignes de
l’armement.
</p>
</section>
<!-- ============================================================ -->
<!-- 6. DISCUSSION -->
<!-- ============================================================ -->
<section id="discussion">
<h2><i class="fas fa-comments"></i> 6. Discussion</h2>
<h3>6.1 Positionnement</h3>
<p>
Le routage par graphe (VISIR-2 [13], Dijkstra modifié) et par isochrones produit des solutions
de qualité mais ne traite ni la sélection de scénarios ni la confiance décroissante dans la
prévision. La méthode AnEn est établie en météorologie [12] mais n’a pas, à notre
connaissance, été combinée avec une métrique de Wasserstein spatio-temporelle pour le routage
maritime. La calibration de modèles hydrodynamiques par données opérationnelles fait l’objet
de travaux récents [14] mais reste rarement couplée à l’optimisation de route.
</p>
<h3>6.2 Limites</h3>
<p>
Le cadre repose sur l’hypothèse de quasi-ergodicité : les situations passées (ERA5,
1940–2024) sont représentatives des situations futures, conditionnellement à la zone et à
la saison. Cette hypothèse est raisonnable à moyen terme mais discutable sous l’effet du
changement climatique.
</p>
<p>
La reconstitution spectrale dépend de la qualité et de la disponibilité des capteurs à bord.
Sans radar bande X dédié (type Miros Wavex), la reconstitution repose sur les
accéléromètres et inclinomètres, dont la bande passante et la résolution limitent la
qualité du spectre directionnel reconstruit.
</p>
<p>
Le pipeline de sélection d’analogues introduit plusieurs hyperparamètres (taille de la fenêtre,
nombre de clusters, seuils) qui nécessitent une validation sur des cas historiques documentés.
</p>
<h3>6.3 Philosophie d’emploi</h3>
<div class="alert warning">
<strong><i class="fas fa-compass"></i> Principe directeur</strong><br>
Ce cadre n’est pas conçu comme un système d’optimisation automatique. Il est conçu
comme un outil d’analyse qui fournit aux navigateurs les moyens de comprendre les situations
météorologiques possibles, leurs conséquences sur la consommation et les routes, et les
incertitudes associées. L’arbitrage reste humain.
</div>
<p style="font-style: italic; text-align: center; margin: 2rem 0; font-size: 1.05rem; color: var(--ib-navy);">
Un système de routage honnête est, avant tout, un système qui montre ce qu’il ne sait pas.
</p>
</section>
<!-- ============================================================ -->
<!-- 7. CONCLUSION -->
<!-- ============================================================ -->
<section id="conclusion">
<h2><i class="fas fa-flag-checkered"></i> 7. Conclusion</h2>
<p>
Le routage météorologique en marine marchande est confronté à trois problèmes fondamentaux :
l’inadéquation des scénarios météorologiques génériques, l’écart entre les modèles
de performance et le comportement réel du navire, et l’absence de structure exploitable dans
l’espace des trajectoires stochastiques. Ces trois problèmes sont de natures différentes
— statistique, physique, mathématique — mais convergent vers une même conséquence :
les systèmes de routage actuels produisent des résultats dont la précision apparente masque
des incertitudes considérables.
</p>
<p>
Les approches proposées — clustering d’analogues par distance de Wasserstein, simulations de
Monte Carlo paramétriques conditionnelles, calibration spectrale du modèle navire, et splines
contraintes à enveloppe exponentielle — ne prétendent pas éliminer ces incertitudes. Elles
visent à les structurer, les quantifier et les rendre visibles au décideur.
</p>
<p>
La conclusion de ce travail est que la meilleure approche du routage météorologique n’est pas
d’automatiser la décision de route, mais de fournir aux navigateurs les outils d’analyse
nécessaires — scénarios identifiés et probabilisés, modèle de performance calibré sur
le navire réel, espace de décision délimité et stable — pour qu’ils effectuent eux-mêmes
des arbitrages éclairés. Le rôle de l’algorithme est de structurer l’information, non de se
substituer au jugement du capitaine.
</p>
</section>
<!-- ============================================================ -->
<!-- REFERENCES -->
<!-- ============================================================ -->
<section id="references">
<h2><i class="fas fa-bookmark"></i> Références</h2>
<ol>
<li>
Zis, T.P.V., North, R.J., Angeloudis, P., Ochieng, W.A., and Bell, M.G.H. (2020).
“Evaluation of weather routing in reducing fuel consumption and CO2 emissions.”
<em>Transportation Research Part D: Transport and Environment</em>, 81:102265.
</li>
<li>
Walther, L., Rizvanolli, A., Wendebourg, M., and Jahn, C. (2016).
“Modeling and optimization algorithms in ship weather routing.”
<em>International Journal of e-Navigation and Maritime Economy</em>, 4:31–45.
</li>
<li>
Lu, R., Turan, O., Boulougouris, E., Banks, C., and Incecik, A. (2015).
“A semi-empirical ship operational performance prediction model for voyage optimization towards energy efficient shipping.”
<em>Ocean Engineering</em>, 110:18–28.
</li>
<li>
Bauer, P., Thorpe, A., and Brunet, G. (2015).
“The quiet revolution of numerical weather prediction.”
<em>Nature</em>, 525(7567):47–55.
</li>
<li>
Schultz, M.P. (2007).
“Effects of coating roughness and biofouling on ship resistance and powering.”
<em>Biofouling</em>, 23(5):331–341.
</li>
<li>
Liu, S. and Papanikolaou, A. (2016).
“Fast approach to the estimation of the added resistance of ships in head waves.”
<em>Ocean Engineering</em>, 112:211–225.
</li>
<li>
Holtrop, J. and Mennen, G.G.J. (1982).
“An approximate power prediction method.”
<em>International Shipbuilding Progress</em>, 29(335):166–170.
</li>
<li>
IMO (2012).
“Interim Guidelines for the Calculation of the Coefficient fw for Decrease of Ship Speed in a Representative Sea Condition.”
MEPC.1/Circ.796 (STAWAVE-1/2).
</li>
<li>
Hersbach, H. et al. (2020).
“The ERA5 global reanalysis.”
<em>Quarterly Journal of the Royal Meteorological Society</em>, 146(730):1999–2049.
</li>
<li>
Villani, C. (2009).
<em>Optimal Transport: Old and New.</em>
Grundlehren der mathematischen Wissenschaften, Vol. 338. Springer-Verlag.
</li>
<li>
Cuturi, M. (2013).
“Sinkhorn Distances: Lightspeed Computation of Optimal Transport.”
<em>Advances in Neural Information Processing Systems</em>, 26:2292–2300.
</li>
<li>
Delle Monache, L. et al. (2013).
“Probabilistic Weather Prediction with an Analog Ensemble.”
<em>Monthly Weather Review</em>, 141(10):3498–3516.
</li>
<li>
Mannarini, G., Pinardi, N., Coppini, G., Oddo, P., and Iafrati, A. (2016).
“VISIR-I: small vessel — Loss estimates and route optimization.”
<em>Journal of Marine Science and Engineering</em>, 4(2):36.
</li>
<li>
Nielsen, U.D. (2017).
“A concise account of techniques available for shipboard sea state estimation.”
<em>Ocean Engineering</em>, 129:352–362.
</li>
</ol>
</section>
</div>
</main>
</div>
<!-- Footer -->
<footer class="docs-footer">
<p>© 2026 WindMar. Apache License 2.0.</p>
<p>
<a href="https://github.com/windmar-nav/windmar" target="_blank"><i class="fab fa-github"></i> GitHub</a>
|
<a href="docs.html">Main Documentation</a>
|
<a href="https://slmar.co">slmar.co</a>
</p>
</footer>
<!-- Sidebar active state script -->
<script>
document.addEventListener('DOMContentLoaded', function() {
const sections = document.querySelectorAll('section[id]');
const navLinks = document.querySelectorAll('.sidebar-menu a[href^="#"]');
function setActiveLink() {
let current = '';
sections.forEach(function(section) {
const sectionTop = section.offsetTop - 100;
if (window.scrollY >= sectionTop) {
current = section.getAttribute('id');
}
});
navLinks.forEach(function(link) {
link.classList.remove('active');
if (link.getAttribute('href') === '#' + current) {
link.classList.add('active');
}
});
}