Skip to main content
Join the official 2020 Python Developers SurveyStart the survey!

A python package for operations research and data science problems.

Project description

(In Development)

python package

pyords

A library for operations research and data science.

implementation types

  • graph theory
  • genetic algorithm
  • simulation
  • machine learning

motivation behind the project

Self-learning:

  1. Open-source software development
  2. Data Science
  3. Operations Research
  4. Financial Engineering
  5. Visualizations in Python or JavaScript
  6. Big splash! NumPy, Pandas, D3.js, Plotly, Matplotlib, IPython and jupyter, scikit-learn and SciPy, git, Google OR Tools (ortools), Pyomo, Supply Chain Guru, Keras, Hadoop, AWS, GCP, Vagrant

Development & Documentation

pyords Bundles

Bundles are self-contained problem definitions implemented as modular instances. That's wanna-be fancy for packaged units of code that are very plug-in and play. Contributing to Bundle development:

  1. Design the problem as a Case where the Case can be tested against various Bundles that solve the problem defined in the Case. For the purposes of this README we'll use VrpVehicleCase. Cases must help define what is required of a feature implementation (or the improvement of one). For our VrpVehicleCase we'll assume a set of data and configurations for basic vrp model requirements and a desired output of optimized vehicles to append to our data.

  2. Build a Bundle. The bundle should be specific to the Case(s) it solves. Maybe you see where I'm going with this. There are two core components of this library:

    • Bundles
    • Cases
  3. Test the Case against its Bundle.

  4. Submit implementation with documentation supporting the reason for its development.

VrpVehicleCase

  • defines allowable data for one or many vehicles outputs via vrp optimization
  • defines input expectations & tests
  • defines Case expectations & tests
  • defines output expectations & tests
  • related:
    • GeoBundle
    • OrBundle

GeoBundle

  • processed zipcode outputs, lat and lon outputs, haversine distance outputs, and lat and lon cluster outputs
  • integrations:
  • related:
    • ZipcodeCleanCase
    • LatLonCase
    • LatLonDistanceCase
    • LatLonClusterCase

OrBundle

  • operations research optimizations: vrp, network optimization, scheduling.
  • opportunity analysis, health checks.
  • implementations:
    • Vrp optimization via Google OrTools
    • Schedule optimization via Genetic Algorithm
  • integrations:

using pyords Bundles for vehicle optimization

import pyords as pyr


df = pd.read_csv('my_shipment_data.csv')

# TODO: implement this bundle (currently not refactored)
geobndl = pyr.GeoBundle(zipcodes=df.zipcodes)
lats, lons = geo_bndl.pgeo('US')
matrix = geobndl.haversine_all_from(origin=origin, 'mi')
clusters = geobndl.cluster(by='geocodes')

vrpbndl = pyr.VrpBundle(matrix=matrix, demand=df.pallets)
df = vrpbndl.run().cast_solution_to_df(clustered_df)

Testing pyords Bundles :white_check_mark:

import pyords as pyr

class VrpVehicleCase:
    inputs = {
        'matrix': [[0, 1, 2], [1, 0, 2], [2, 2, 0]],
        'demand': [0, 3, 4],
        'max_vehicle_capacity': 5,
        'partitions': [1, 1, 1],
        'max_search_seconds': 30
    }

    outputs = {
        'vehicle_id': [1, 2]
    }

    implementation = None # TODO: pyr.ortools.vrp

    def run(self):
        bndl = pyr.VrpBundle(case=self)

        assert bndl.test()

        return self

if __name__ == '__main__':
    VrpVehicleCase.run()

Project details


Download files

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

Files for pyords, version 0.0.9
Filename, size File type Python version Upload date Hashes
Filename, size pyords-0.0.9-py3-none-any.whl (20.6 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size pyords-0.0.9.tar.gz (17.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page