这是indexloc提供的服务,不要输入任何密码
Skip to content

Kotlite (Angkot Elite) App: A Ridesharing Application for Optimising Vehicle Capacity to Decrease Traffic Congestion as one of Indonesia’s Priority Issues. This application is a product of the Brillante Team (BA21-CAP0176) to fulfill the Capstone Project of Bangkit Academy 2021 led by Google, Gojek, Tokopedia, and Traveloka.

License

Notifications You must be signed in to change notification settings

uxhamzah/kotlite_algorithm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contributors Forks Issues MIT License


kotliteLogo

Kotlite (Angkot Elite) Matching Algorithm

A Part of Kotlite Ridesharing Application
Explore the Projects »

Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Dataset
  4. Source Articles and Journals
  5. Algorithm Explanation
  6. Result of Testing
  7. Contributing
  8. License
  9. Contact
  10. Other Project
  11. Acknowledgements

About The Project

Kotlite is here as a breakthrough idea that answers the need of users to find drivers or passengers from and going to the same routes. It is designed to optimistically accelerate the transformation of the citizens' lifestyle to rideshare and network, eliminating incurable rush hour traffic and provide practicality for user's mobility from one place to another.

We use the Machine Learning approach to provide passenger, driver recommendations who have the same route. By using the recommendation system that we created, the system will offer passengers with recommendations for drivers who will travel past the passenger pickup location and through or to the passenger dropoff location. In this recommendation system, we use a location-based filtering approach, similar direction approaching, pickup time filtering, and distance-based filtering.

Built With

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

This project requires several resources to be prepared and installed on the local computer, including:

Installation

  1. Clone the repository

    $ git clone https://github.com/kroniz-utab/kotlite_algorithm.git
    
    # cd to the repository folder
    $ cd kotlite_algorithm
  2. Install the required environment with virtualenv (recommendation). This part is for a run on local computer

    • Linux/macOs
      $ virtualenv env
      $ source env/bin/activate
      (venv) $ pip install -r requirements.txt
    • Windows
      python -m venv env
      env\scripts\activate
      pip install -r requirements.txt
  3. For the local computer, you can run this project using jupyter notebook by this way in your CLI

    $ jupyter notebook
  4. Setup Maps API, if you found API KEY on the notebook, change it by your Google Maps API Key.

  5. And you can explore how our algorithm was built.

Dataset

  • NYC Trip Distance Matrix

  • KWB Dummy Taxi Dataset

    We use the KWB Dummy Taxi dataset to test the algorithm we use. We created this dataset because we feel that the data in the NYC Trip Distance matrix dataset is still insufficient to support our system. so we create our dataset to get the data we want.

Source Articles and Journals

Algorithm Explanation

Our recommendation system works using variations of approaches to get the best recommendation results based on our opinion. The purpose of this recommendation system is to find drivers that most closely match destinations, directions, and routes. Our recommendation system is based on the Nearest Neighbor Algorithm. The reason we use the nearest neighbor algorithm is that we gather real-time data or to be called crowdsourcing. In that case, we need to do continuous training when passengers want driver recommendations. Our recommendation system does not only rely on the nearest neighbor algorithm, but we also take several approaches so that passengers get good driver recommendations, and drivers do not have to travel too far to pick up or drop off passengers.

Location-based Filtering

Location-based Filtering is the main approach of what we use. This approach uses the Nearest Neighbor Algorithm to detect the closest route point from all driver trip data to the pickup and drop-off points of passengers. This closest point will be used for other approaches.

Similar Direction Approach

Similar Direction Approach is the approach we use to determine whether drivers have the same direction of travel. We use the driver sequence route data to see if the drivers are in a similar direction or not.

Pickup Time Filtering

Pickup Time Filtering is the approach we use to provide driver recommendations to passengers based on the passenger's desired pickup time. To get the best recommendation, we use pickup time filtering as one of the approaches in our recommendation system.

Distance-based Filtering

Distance-based Filtering is the process we use to make our drivers feel free. It is practical to find the distance value from the driver's closest location point to the passenger's pickup and dropoff point. We use this approach to limit the range of distances a driver must travel to pick up and drop off passengers on the main route the driver must take.

Result of Testing

We test the algorithm that we have built using the dataset KWB Dummy Taxi Dataset using the data passengers who want to depart from MAN 1 Kota Batu on (-7.8838611,112.5381295) to GOR Gajah Mada Kota Batu on (-7.8786821,112.524145).

result pict

By using a threshold of 0.7 km from the nearest point, the system recommends 2 drivers who have a similar route, namely the driver with id [11,19]. We're trying to see how effective the system is at providing driver recommendations to passengers. In this case, we want to test using google maps to see and assess how effective this system is. The testing process uses a scenario that the driver will pick up passengers and then deliver them first before the driver goes to his final destination.

driver_id 11 routes

Image of the main route the driver should have taken with ID 11

driver_id 11 with passanger routes

Image of the route of the driver who has to pick up and drop off passengers

However, if the driver with ID 11 picks up passengers and delivers them to the passenger's destination, the distance covered will be 12.5 km with an estimated travel time of 28 minutes. It is nice that the system can search for and recommend drivers who have the same direction to passengers. The results of the recommendations are also not burdensome or detrimental to drivers because the maximum pick-up distance is limited to 0.7 km from the point provided by the maps.

Contributing

Feel free to clone, use, and contribute back via pull request. We'd love to see your pull requests and send them in! Please use the issues tracker to raise bug reports and feature requests.

We are excited to see the amazing features you build in your application using this project. Do ping us at our contact once you build one, feel free to contact us, and we would love to feature your app on our blog.

License

Distributed under the MIT License. See LICENSE.txt for more information.

Contact

How can we help you? While we're occupied for the Capstone Project, there are simpler ways for us to get in touch! Please do visit us at here.

Other Project

You can also looking up our other repository in this project by this link.

Acknowledgements

   

About

Kotlite (Angkot Elite) App: A Ridesharing Application for Optimising Vehicle Capacity to Decrease Traffic Congestion as one of Indonesia’s Priority Issues. This application is a product of the Brillante Team (BA21-CAP0176) to fulfill the Capstone Project of Bangkit Academy 2021 led by Google, Gojek, Tokopedia, and Traveloka.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 99.7%
  • Python 0.3%