About this project
Description from the program archive
The Weather Routing Tool is a system designed to find optimal shipping routes between two geographic points, taking into account weather data, local boundaries, and other environmental factors. The tool currently assumes constant ship speed and has a basic genetic algorithm for route optimization. This project aims to improve the routing logic by:
Introducing ship speed optimization along a route
Enhancing the genetic algorithm for more effective route modeling
Improving the usability and extensibility of the tool for end-users
Project Deliverables 1. Ship Speed Optimization Goal: Allow optimization of ship speed along the route instead of assuming it constant.
Approach:
Modify the Isofuel algorithm to use speed as a minimization criterion.
Define a new scoring function: score = (distance / time) - alpha * remaining_distance
Enable this feature via configuration: ISOCHRONE_MINIMISATION_CRITERION = "speed"
2. Genetic Algorithm Enhancements Goal: Improve the existing genetic algorithm’s efficiency and flexibility.
Planned Improvements:
Add multi-objective cost function support (e.g., fuel, speed, wear & tear).
Enhance crossover logic with:
Multi-point crossover
Uniform crossover
Adaptive crossover
Improve mutation strategies and population initialization.
Leverage the pymoo library with custom configurations.
3. Tool Usability Improvements Goal: Make the Weather Routing Tool more modular, user-friendly, and extensible.
Key Features:
Dynamic Python file injection using CLI:
python cli.py -f config.template.json custom.py
Load modules dynamically with: load_file_as_module(path: str) -> types.ModuleType
Command-line utility packaging:
Tool installable via PyPI (pip install wrt)
Usage: wrt -h
Rationale: Enable users to add custom boat models and configurations without modifying core code.