Skip to content

Web application for solving the Vehicle Routing Problem using OptaPlanner

Notifications You must be signed in to change notification settings

kentbill/optaweb-vehicle-routing

 
 

Repository files navigation

OptaWeb Vehicle Routing

Build Status

Web application for solving the Vehicle Routing Problem using OptaPlanner.

Running the Application

First, clone this repository and cd into it.

Frontend and backend are built and run independently. Open two terminal windows.

Run Frontend

  1. Install npm. If you’re on Fedora, you can do this by running:

    sudo dnf install npm
  2. Install dependencies:

    cd optaweb-vehicle-routing-frontend
    npm install
  3. Run frontend:

    npm start
  4. Open http://localhost:3000/

Tip
Prevent npm start from launching your default browser

If you don’t want npm start to open a new browser tab each time you run it, export an environment variable BROWSER=none.

You can use .env.local file to make this preference permanent. To do that, run

echo BROWSER=none >> .env.local

Run Backend

JDK 8 is the only system prerequisite. To install OpenJDK 8 on Fedora, run:

sudo dnf install java-1.8.0-openjdk-devel
  1. Download OpenStreetMap data for Belgium from Geofabrik:

    1. Open http://download.geofabrik.de/europe/belgium.html.

    2. Download the OSM file belgium-latest.osm.pbf.

    3. Save it to optaweb-vehicle-routing/optaweb-vehicle-routing-backend/local/openstreetmap/belgium-latest.osm.pbf.

  2. Build backend:

    cd optaweb-vehicle-routing-backend
    ./mvnw install
  3. Run backend:

    java -jar target/optaweb-vehicle-routing-backend-*.jar

See Backend Development Guide to learn how to run backend during development.

Configuring the Working Region

If you want to try a different region than Belgium, download an OSM file from Geofabrik and select it with app.routing.osm-file property when starting the backend.

Don’t forget to use app.region.country-codes property to override geosearch results constraint.

There is currently only one out-of-the-box data set for Belgium so the Load demo button won’t work with other regions.

java -jar target/optaweb-vehicle-routing-backend-*.jar \
--app.routing.osm-file=massachusetts-latest.osm.pbf \
--app.region.country-codes=US
Caution
Using large OSM files

For best user experience it is recommended to use smaller regions like individual European or US states. Using OSM files larger than 1 GB will require significant RAM size and take a lot of time (up to several hours) for the initial processing.

Creating Custom Data Sets

There is a built-in demo data set consisting of a several large Belgian cities. If you want to have more demos offered by the Load demo dropdown, you can prepare your own data sets. To do that, follow these steps:

  1. Add a depot and a set of visits by clicking on the map or using geosearch.

  2. Click Export and save the file in optaweb-vehicle-routing-backend/local/data directory.

  3. Edit the YAML file and choose a unique name for the data set.

  4. Restart the backend.

After you restart the backend, files in the data directory will be made available in the Load demo dropdown.

About

Web application for solving the Vehicle Routing Problem using OptaPlanner

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 68.4%
  • TypeScript 30.2%
  • Other 1.4%