Skip to content

VISIR engine fails to converge for Balanced and Safety weight modes #24

@SL-Mar

Description

@SL-Mar

Problem

When running "Compare Routes" on a long route (e.g., Portugal 37.24°N, 10.29°W → Netherlands 52.75°N, 3.07°W, ~1619 nm), the VISIR engine only converges for the Fuel weight (safety_weight=0.0). The Balanced (safety_weight=0.5) and Safety (safety_weight=1.0) modes fail silently — returning no result and showing "-" in the comparison table.

All 3 A* variants converge successfully on the same route.

Expected Behavior

All 6 route variants (2 engines × 3 weights) should return results. If VISIR cannot converge within the node budget, it should return a partial result or a clear error message rather than failing silently.

Observed Behavior

Engine Fuel (w=0.0) Balanced (w=0.5) Safety (w=1.0)
A* 1194 nm, 117.5 MT 1237 nm, 120.7 MT 1279 nm, 124.3 MT
VISIR 1201 nm, 119.1 MT - -

Probable Cause

The VISIR Dijkstra at 0.25° resolution with max_nodes=200,000 likely exhausts its node budget when safety penalties are applied. Higher safety weights increase edge costs significantly, causing the search frontier to expand more broadly before reaching the destination. The 200k node cap is hit before convergence.

Potential fixes:

  1. Increase DEFAULT_MAX_NODES for VISIR (e.g., 500k or adaptive based on route length)
  2. Use A* heuristic instead of pure Dijkstra to guide the search toward the destination
  3. Coarsen VISIR grid dynamically for longer routes (e.g., 0.5° for routes > 1000 nm)
  4. Return best partial path when node budget is exhausted

Screenshot

Route: Portugal → Netherlands (~1619 nm, 6 waypoints)

VISIR no convergence

Environment

  • Branch: development (commit 5a5cf6e)
  • VISIR resolution: 0.25° (~15 nm)
  • Max nodes: 200,000
  • Route length: ~1619 nm

Metadata

Metadata

Assignees

No one assigned

    Labels

    P1Priority: highbackendBackend relatedbugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions