FRDCSA | internal codebases | BusRoute

[Project image]

Architecture Diagram: GIF
Code: GitHub

Jump to: Project Description | Parent Description | Capabilities

Project Description


This is a bus scheduler in the sense that you give it a start address, a destination address, and a time, and it returns a robust bus plan to get you there ASAP. There are also now several different kinds of reports it can generate. (Perhaps we could also give it a dialog system.) It is also useful as a transportation planning module for Verber, because export to PDDL works.

The system further aims to integrate with a map routing system such as the open source Roadnav or TMRS systems, to provide the ability to calculate the quickest plan to reach a given location.

./busroute -d data/daily.raw.gz -s "Murray Ave. AT Beacon" -e "Forbes Ave. AT Craig" -t 9:00p
61C test
Loading LocationHash...
Loading data...
Creating adjacency matrix...
Sorting departing segments...
Installing departing segments...
Selecting locations...
Cutoff: 0.1
Cutoff: 0.2
Cutoff: 0.4
Cutoff: 0.8
Cutoff: 1.6
Cutoff: 3.2
PATH FOUND: Optimizing...
	(:STARTLOC	Murray Ave. AT Beacon  (Near Side))
	(:STARTINT	Beacon and Murray)
	(:ENDLOC	Forbes Ave. AT Craig)
	(:ENDINT	Craig and Forbes)
	(:STARTTIME	9:03p)
	(:ENDTIME	9:16p)
	(:DURATION	0:13)
	(:FROMTIME	0:16)
	(:QUALITY	2.2)
		(BOARD	61C	I	9:03p	Murray Ave. AT Beacon  (Near Side))
		(EXIT	61C	I	9:16p	Forbes Ave. AT Craig)

This system has been substantially rewritten and expanded. It loads much faster, now incorporating all stops. It plans with equivalence sets of start and goal locations (to account for multiple sides and so forth). It incorporates a new plan quality system adding costs to transfers, too short or long transfer delays, plan length, and ETA. The planner is optimal.

It now generates direct route reports. It also has been interfaced with Verber, generating pddl2.2 domains.


  • busroute should see: http://www.opentripplanner.org/
  • busroute should integrate open streetmaps or what not bus route information: https://www.√∂pnvkarte.de/index.html#-83.6891;43.0432;13
  • This thing I've made for Sorcerer sure looks useful, it is being used in Sorcerer, broker, should be used in job-search, and could be used in busroute, clear, corpus, critic, cso, digilib, and verber.
  • The busroute agent does not encourage analytical plans, however, but does allow for quick action.
  • busroute is concluded because of Google Transit.
    ("comment" "56090" "google transit apparently went down for Pittsburgh recently")
  • The system that indexes data can ask for what systems this data is "related-to", for instance a pdf file of a bus line like 74A.pdf, would be related to busroute, not that it would go there, but just that it is related.
  • busroute feature request: timefrequency domain plots of bus
  • Maybe we can arrange for rides. Maybe should rename busroute and add that functionality to it. Or make busroute a module of a larger GRoute or XRoute, i.e. carroute, trainroute, bikeroute, planeroute, ferryroute, subwayroute, walkroute, boatroute, etc.
  • Add features to busroute for it to be able to calculate the best site for a group of people out of a list.
  • busroute should be rewritten in a CSP style.
  • do busroute reload.
  • busroute should print out nice concise notes for people to write down.
  • Come up with grammar for using busroute, to allow it to be used over unilang.
  • Add feature to busroute where, if there are rather loose bounds on when a trip to a specific destination must take place, optimizes which trip to take. I.e. I have to go roundtrip to walmart sometime between 12 and 8, and it would select say the best possible route, I guess in this case considering return time.
  • We can reimplement busroute in c/c++ for performance, and also to use existing optimized libraries.
  • Just need to get book on planning algorithms to improve busroute
  • The system can automatically determine which functions it needs to optimize based on which ones are taking too much time. For instance, if in query planning results in generating busroute tables, and busroute takes a long time to do this, verber's learning component would then determine that this is taking a long time and automatically add a goal to optimize that.
  • Found a bug with busroute, it is very slow when searching in the morning since it processing all departing routes after a given time
  • busroute can do this: it can allow bounding of the search in specific dimensions instead of just quality, i.e. distance, safety, etc.
  • busroute should know which buses take bikes, and be able to answer related questions
  • There is an optimization for busroute - we can prune the search space by also backwords tracking - and that relates to our goals of getting at a certain place before a certain time.
  • busroute printed materials. Locations with multiple spots are best.
  • Convert busroute to be a unilang agent, by tomorrow
  • manager should start up busroute in the morning.
  • busroute should be able to plan multiparty heterogenous car/bus trips
  • We can record a corpus of bus questions, etc, from pedestrians for use in determining additional busroute functionalities
  • Eventually fix up busroute.
  • I would like to focus on some software stuff - I believe the other thing I was supposed to do is generate busroute data for various stops.
  • A feature to add to busroute is support for qualitative question answer: e.g. what is the next bus that goes to the other side of the bridge from here.
  • busroute just isn't working very well - need to get busroute generating the kinds of things we need it to.
  • busroute should do something: should learn which stops work but not official, for instance the 13C stopping at LaRoche.
  • Marketing materials - laminating for busroute. Try to find some common stops.
  • To extract busroute addresses: http://terraworld.isi.edu/Geocode/Service1.asmx
  • An additional feature that busroute could have is that it could generate a timetable with it illustating how quickly it can get you between two locations. The goal here is to know when you can travel between to places.
  • busroute needs to get rid of multiple spaces, as they are confusing it
  • Need to refactor busroute and get that data into SQL format.
  • busroute needs to be able to print schedules a.l.a. the PDF files.
  • Split busroute data as server.
  • busroute's system should use the following algorithm - take a time window, and show all routes in that by starting at the beginning time, finding the next route, then setting the time to be 1 minute after that and repeating, until no solutions are found
  • The reason busroute has the time problem is it computes the time once when you start, I'm guessing, since this long running process is using a time from around when I started it.
  • busroute is being confused by not dealing with layover synsets properly
  • Here are some bugs with busroute - it outputs start times that are before the current time - although this may be because my systems have different times, etc. It also doesn't generate short routes always. It is still much improved.
  • busroute should be able to answer a large class of questions. For instance, what are the next few buses leaving here. What is the last bus leaving here, etc.
  • gourmet needs to be refactored to be more like busroute which is nice and clean.
  • Maybe busroute should sort the routes by geographical order
  • For busroute, we need to identify which direction a site is based on its presence in the files.
  • busroute should be sure to give you advance notice whenever you may wish to take the bus back. I.e., if it knows you are in a certain place, be sure to warn you when buses are going to destinations you may be contemplating going to. And certainly, when you say, warn me of the next bus back. And also when it is generally time for you to take the bus back.
  • Fix up busroute system for Mike.
  • For busroute, we could have it have the ability to generate small descriptions that give good guides to when to catch a particular route. For instance, show up usually at 5 after the hour.
  • Note that currently, busroute makes the not necessarily valid assumption that a route is continuous if the busname, location, and arrive and depart times are the same. Better would be to explicitly link these in the data processing phase.
  • http://trainsched.sourceforge.net/#databases busroute

This page is part of the FWeb package.
Last updated Sat Oct 26 16:50:46 EDT 2019 .