Skip to content

Implementation of the A* Search Algorithm to solve the Route Search problem. One particular search problem is especially relevant to self-driving cars: finding the best route from point A to point B. The application will implement a Google-maps-style route planner. The full lesson and step-by-step explanation can be learned at Udacity.com.

License

Notifications You must be signed in to change notification settings

jackyhuynh/shortest_path_planner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fastest Route Planner

Introduction

Implementation of the A* Search Algorithm to solve the Fastest Route Search problem. One particular search problem is especially relevant to self-driving cars: finding the best route from point A to point B. The application will implement a Google-maps style route planner. The full lesson and step by step explanation can be learned at Udacity.com.

What is The A* Search

A* (pronounced "A-star") is a graph traversal and path search algorithm, which is often used in many fields of computer science due to its completeness, optimality, and optimal efficiency. One major practical drawback is its O(bᵈ) space complexity, as it stores all generated nodes in memory. Thus, in practical travel-routing systems, it is generally outperformed by algorithms which can pre-process the graph to attain better performance, as well as memory-bounded approaches; however, A* is still the best solution in many cases. (retrived from Wikipedia.com)

Image retrived from Udacity.com

alt

Technology

  • Python
  • Object Oriented Design
  • Jupyter Notebook
  • Data Visualization
  • Machine Learning
  • AI
  • Localization
  • Data Structures

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

What things you need to install the software and how to install them

  • Jupyter Notebook: If you want just test the code, simply go to google and search for jupiter notebook or another Python online IDE. The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
  • Anacoda Navigator: Install Anaconda Navigator if you want to develop data sciences using python or R. Anaconda Navigator is a desktop graphical user interface included in Anaconda that allows you to launch applications and easily manage conda packages, environments and channels without the need to use command line commands.

Installing

A step by step series of examples that tell you how to get a development enviroment running

Running the tests

Explain how to run the automated tests for this system:

  • There is no download IDE need, all you need is download all the src to your machine and run it.
  • Using Jupiter Notebook
  • Navigate to the file .ipynb
  • hit:
Ctrl + Enter
  • If this happen (most likely it is going to happen). I sucessful run this code in a virtual machine. However, when I download it to my computer and deploy it to GitHub, I experienced this issues.
---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
<ipython-input-8-10b645f07abd> in <module>
      1 # Run this cell first!
      2 
----> 3 from helpers import Map, load_map_10, load_map_40, show_map
      4 import math
      5 

~\python-workspace\Route_Planner\helpers.py in <module>
      2 import networkx as nx
      3 import pickle
----> 4 import plotly.plotly as py
      5 import random
      6 from plotly.graph_objs import *

ModuleNotFoundError: No module named 'plotly'
  • Fixxed: If you are using Anaconda, open Anaconda Navigator and launch cmd prompt (cmd.exe) from there. Then run 'pip install plotly'.
pip install plotly
  • If this not fix your issues, please do a search. Here is some good information: GitHub or plotly

  • The notebook will execute in Markdown form and include the visualization of the map.

alt

  • The program was working perfectly fine when I code it in the Udacity.com workspace. You may try it here if you are member of Udacity.

Deployment

Route PLanner class can be deploy and ready to work with any sensor, or moving robotic prediction. Idea for localization and/or GPS application. This is actually what we use for driving direction everyday. According to Sebastian, this technology have been around for 15 years, and still helping human each day. Please refer to my notebook for a better understanding of implementation.

Built With

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Truc Huynh - Initial work - TrucDev

Format

my README.md format was retrieved from

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Acknowledgments

  • Udacity.com for design an outstanding program for Students.

About

Implementation of the A* Search Algorithm to solve the Route Search problem. One particular search problem is especially relevant to self-driving cars: finding the best route from point A to point B. The application will implement a Google-maps-style route planner. The full lesson and step-by-step explanation can be learned at Udacity.com.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published