Skip to content

BatyLeo/TransportationPlanningOptimization.jl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

68 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TransportationPlanningOptimization.jl

Dev Build Status Coverage Code Style: Blue Aqua

A Julia package for solving transportation planning problems.

Features

  • Multi-commodity routing over transportation networks with time-dependent routing
  • Multiple cost models: Support for linear costs (proportional to volume) and bin packing costs (discrete per vehicle/container)
  • Routing constraints: option to model forbidden nodes and arcs restrictions
  • Time discretization: handle delivery deadlines and transit times with flexible time steps
  • Efficient algorithms: greedy heuristics for fast and good quality solution generation

Installation

using Pkg
Pkg.add("https://github.com/BatyLeo/TransportationPlanningOptimization.jl")

Quick Start

using TransportationPlanningOptimization
using Dates

# Define network nodes
nodes = [
    NetworkNode(; id="Origin", node_type=:origin),
    NetworkNode(; id="Hub", node_type=:other),
    NetworkNode(; id="Destination", node_type=:destination),
]

# Define transportation arcs
arcs = [
    Arc(; origin_id="Origin", destination_id="Hub",
         cost=LinearArcCost(10.0), travel_time=Day(1)),
    Arc(; origin_id="Hub", destination_id="Destination",
         cost=LinearArcCost(10.0), travel_time=Day(1)),
]

# Define commodities to transport
commodities = [
    Commodity(;
        origin_id="Origin",
        destination_id="Destination",
        arrival_date=DateTime(2025, 1, 3),
        max_delivery_time=Day(2),
        size=5.0,
    ),
]

# Create instance and solve
instance = Instance(nodes, arcs, commodities, Day(1))
solution = greedy_heuristic(instance)

# Validate and evaluate
is_feasible(solution, instance; verbose=true)
println("Total cost: ", cost(solution))

Documentation

Comprehensive documentation is available here

  • Getting Started - Understand the Instance constructor and core concepts
  • Tutorials - Learn by example with hands-on tutorials
  • Guides - Deep dives into cost functions and routing constraints
  • API Reference - Complete function and type documentation

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages