Skip to main content

A rideshare planner that gives an optimal plan for multiple drivers and passengers using Z3 Solver

Project description

Z3 Rideshare Planner

Github: https://github.com/MinghanWu039/z3_rideshare_planner/tree/main

PyPI: https://pypi.org/project/z3-rideshare-planner/

Introduction

This Python package provides a planner that takes in the names and addresses of multiple passengers and drivers, and the address of a destination, and gives a plan which minimizes the time for pickup process.

This package utilizes [[https://www.microsoft.com/en-us/research/project/z3-3/|Microsoft Z3 Solver]] and [[https://developers.google.com/maps|Google Map API]].

Google Map API Key

To use this package, you need to have a Google Map API Key. You can get one for free at https://console.cloud.google.com/google/maps-apis/credentials.

Dependencies

  • googlemaps
  • matplotlib
  • datetime
  • folium
  • z3-solver
  • polyline
  • numpy

Usage

Class: Planner

  • Planner.__init__(self, API_KEY) Takes in a Google API Key, returns a Planner instance.

  • Planner.configure(self, passenger_name_addr, driver_name_addr, destination, n_seats, must_together=[]) Takes in requirements and conditions.

    • passenger_name_addr: List of 2-tuples, where the first element is the passenger name, and the second element is their address
    • driver_name_addr: List of 2-tuples, where the first element is the driver name, and the second element is their address
    • destination: The final destination that everyone goes to
    • n_seats: Specifies the capacity (driver included) of each car. If the input is an int, then it's for all drivers; If the input is a list of int, then the list elements each represents the capacity of one car, according to the order of ``driver_name_addr```
    • must_together: List of lists, where each element list contains a group of passengers and (at most one) driver that must be in the same car
  • Planner.solve(self) If a plan is found, prints "Plan found!". Otherwise, raises ValueError.

  • Planner.print_plan(self) If a plan has been found, print the plan in the string format.

  • Planner.visualize_plan(self, output_mode='html', relative_path=None, colormap='Set1') If a plan has been found, visualize it with interactive features.

    • output_mode: If output_mode='html', save the visualization as an html file at relative_path; If output_mode='display', returns a folium.Figure object
    • colormap: A str key of matplotlib.colormaps, serves as the color scheme of the markers on the map

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

z3_rideshare_planner-0.4.6.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

z3_rideshare_planner-0.4.6-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file z3_rideshare_planner-0.4.6.tar.gz.

File metadata

  • Download URL: z3_rideshare_planner-0.4.6.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for z3_rideshare_planner-0.4.6.tar.gz
Algorithm Hash digest
SHA256 ae5e2aad3d1460a0000998ebf446cbcdcc3485aaec0521c4a0445cfed2fed318
MD5 87777b0be9cb0b5770faefc42da73732
BLAKE2b-256 7eb2bde7b68aa1a2f022a0d768498253b63e9dfedd52a9340a9f6d00b28773b0

See more details on using hashes here.

File details

Details for the file z3_rideshare_planner-0.4.6-py3-none-any.whl.

File metadata

File hashes

Hashes for z3_rideshare_planner-0.4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 36b3c2e5e377f4478d2a8dfec9839cb62ce82ce884c3fbca9013942fb02ef9ca
MD5 29055f8e09403dab0a230f491f76b73a
BLAKE2b-256 f72d8a3a1a05bec3d1949b69fe85394fcc5058a1fbee5c21449b5bcc567a0798

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page