<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://bayareametro.github.io/fast-trips-project/feed.xml" rel="self" type="application/atom+xml" /><link href="https://bayareametro.github.io/fast-trips-project/" rel="alternate" type="text/html" /><updated>2026-04-06T13:04:28-07:00</updated><id>https://bayareametro.github.io/fast-trips-project/feed.xml</id><title type="html">Moving Fast-Trips from Research to Practice…a three-agency experience</title><subtitle>The wild tales of three public agencies taking a research project from a university and using it in practice.</subtitle><entry><title type="html">Teaching Materials, Glossary, Tutorials</title><link href="https://bayareametro.github.io/fast-trips-project/2018/01/07/Teaching-Materials/" rel="alternate" type="text/html" title="Teaching Materials, Glossary, Tutorials" /><published>2018-01-07T00:00:00-08:00</published><updated>2018-01-07T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2018/01/07/Teaching-Materials</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2018/01/07/Teaching-Materials/"><![CDATA[<p>We thought it would be useful to let people know sooner rather than later about three resources that we’ve been developing as a part of this project in order to promote a broader and more in-sync understanding of dynamic transit passenger assignment:</p>

<ul>
  <li>A glossary of terms for describing <a href="https://fast-trips.github.io/dtpa-glossary/">Dynamic Transit Passenger Assignment</a>,</li>
  <li>Lecture notes and teaching materials, and</li>
  <li>Interactive tutorials using open-source software.</li>
</ul>

<p>While not perfect nor entirely complete, we hope that they are useful to a few different audiences:</p>

<ul>
  <li>Consultants or agencies who may be interested in dipping their toe in and seeing what is there,</li>
  <li>Researchers who need to coalesce around terminology, and</li>
  <li>Academics who may be interested in providing an introduction to the topic.</li>
</ul>

<h3 id="dtpa-glossary">DTPA Glossary</h3>

<p><a href="https://fast-trips.github.io/dtpa-glossary/">The DTPA Glossary</a> was developed at the suggestion of Natalia Ruiz Juri at the University of Texas at Austin Network Modeling Center.  When she participated in a review of our project in 2017 she noted how much the DTA Primer had done to promote a more broad understanding of DTA.  While dynamic transit passenger assignment is not nearly as far along as DTA was at the creation of the Primer, she suggested a glossary of terms as a first step towards developing a shared understanding.</p>

<div class="row">
	
	<div class="col-lg-8">
    <a href="/fast-trips-project/img/posts/dtpa-glossary.png"><img width="80%" src="/fast-trips-project/img/posts/dtpa-glossary.png" alt="Glossary Website: https://fast-trips.github.io/dtpa-glossary/" /></a><br />
    <div class="text-muted">
           Glossary Website: https://fast-trips.github.io/dtpa-glossary/
           
                <p>Source: MTC, PSRC, &amp; SFCTA</p>

           
    </div>
    
    </div>

</div>

<p>It was developed collaboratively first from within the project team, then more broadly via solicitations on the TMIP listserv and ResearchGate. We welcome feedback, suggestions, corrections, contributions, and debate on the glossary and hope that it can be a common resource for the community.  It is anticipated that it can grow from a glossary to a more comprehensive resource similar to the DTA Primer.</p>

<div class="row">
	
	<div class="col-lg-8">
    <a href="/fast-trips-project/img/posts/networks-glossary.png"><img width="80%" src="/fast-trips-project/img/posts/networks-glossary.png" alt="Networks Page" /></a><br />
    <div class="text-muted">
           Networks Page
           
                <p>Source: MTC, PSRC, &amp; SFCTA</p>

           
    </div>
    
    </div>

</div>

<h3 id="lecture-notes">Lecture Notes</h3>

<p>We have <a href="https://drive.google.com/open?id=1pRjW7y8t9dA4KnD3cq2MkoE33aKs4bT2">a class-worth of lecture notes</a> developed by <a href="http://www.cege.umn.edu/directory/faculty-directory/khani.html">Alireza Khani</a>, the original FAST-TrIPs developer and an Assistant Professor at the University of Minnesota.  We are in the process of developing datasets within the <a href="https://github.com/bayareametro/fast-trips">Fast-Trips</a> open source dynamic transit passenger assignment model code base so that the problems and assignments can be run and analyzed in real-time.  We are also going to translate the notes from PDF to a Jupyter notebook where the problems can be run from within the notes.</p>

<h3 id="tutorials">Tutorials</h3>

<p>We unveiled a series of <a href="https://github.com/Fast-Trips/fast-trips-tutorial">five initial tutorials</a> at the TRB Planning Applications Conference in Raleigh, NC and hope to expand them over time.  The tutorials use the open-source Fast-Trips software which can be used on any Windows, Mac or Linux computer.</p>

<p>We hope that these materials will be useful to the community and look forward to working with anybody who wants to help expand and improve upon them.</p>]]></content><author><name>Elizabeth</name></author><category term="surveys" /><summary type="html"><![CDATA[We thought it would be useful to let people know sooner rather than later about three resources that we’ve been developing as a part of this project in order to promote a broader and more in-sync understanding of dynamic transit passenger assignment:]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/beach-pneumatic-tube.png" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/beach-pneumatic-tube.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Transit Route Choice: Research Needed</title><link href="https://bayareametro.github.io/fast-trips-project/2018/01/03/Research-Needed/" rel="alternate" type="text/html" title="Transit Route Choice: Research Needed" /><published>2018-01-03T00:00:00-08:00</published><updated>2018-01-03T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2018/01/03/Research-Needed</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2018/01/03/Research-Needed/"><![CDATA[<p>As we have <a href="http://fast-trips.mtc.ca.gov/2017/01/19/Workplan-Updates/">posted about before</a>, Dynamic Transit Passenger Assignment (DTPA) has no shortage of challenges to explore.  Within this project, the Team decided to move forward with the models and frameworks that we had (despite their issues), while pursuing a separate Research Track that identified high-priority research needs in order to make DTPA useful in practice.   The Project Team convened a Research Expert Panel, which undertook completed the following three steps:</p>

<ol>
  <li>Developed a shared understanding of issues affecting DTPA in practice (<a href="https://mtcdrive.app.box.com/s/ygfnhrpn2un2ynilorptglcac8fxr939">TRB Paper</a>)</li>
  <li>Conducted a <a href="https://docs.google.com/document/d/1VmUX0YEvvtW7Z3Wx2SXv-92Y22gxtUI54SlTRNh8Owc/edit#">literature review of relevant research</a> in order to understand what problems had already been solved and what was outstanding</li>
  <li>Identified high-priority research needs</li>
</ol>

<p>The panel arrived at the following research needs that were also supported by the practitioners:</p>

<ul>
  <li><a href="https://docs.google.com/document/d/17LqldfffyWzIAcKQFZu4bQrMx_NNU-QEQ4mowvulRv0">Efficient and Effective Path Search Algorithms for Transit</a></li>
  <li><a href="https://docs.google.com/document/d/1XFTCN7lVoaLKyrKFCQc3kk4yUvGNTSfLReRA-P8dfyY">Service Unreliability in Schedule-Based Dynamic Transit Trip Assignment</a></li>
  <li><a href="https://docs.google.com/document/d/1xWTLovENsv1EJzQRu1xzUTzTfMckIr9_BobYTL9sl7A">Empirically Valid and Computationally Efficient Transit Passenger Route Choice Model</a></li>
</ul>

<p>We hope that defining and highlighting these research needs will promote an effective cycle from Practitionerville back to Academia in order to better evaluate current issues affecting transit planning.</p>

<p>We are looking for additional input as well as support for these high-priority research needs.  We’d love your help!</p>

<ul>
  <li>Submit your feedback on these research needs and how to fund them using the disqus comments below</li>
  <li>Comment on and suggest edits to the research needs statements themselves.</li>
</ul>]]></content><author><name>Elizabeth</name></author><category term="meta" /><category term="research" /><summary type="html"><![CDATA[As we have posted about before, Dynamic Transit Passenger Assignment (DTPA) has no shortage of challenges to explore. Within this project, the Team decided to move forward with the models and frameworks that we had (despite their issues), while pursuing a separate Research Track that identified high-priority research needs in order to make DTPA useful in practice. The Project Team convened a Research Expert Panel, which undertook completed the following three steps:]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/back-to-school.jpg" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/back-to-school.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">AppCon: Learn Fast-Trips Basics, Visualization Tools, and Recommendations for Future Surveys</title><link href="https://bayareametro.github.io/fast-trips-project/2017/05/12/AppCon2017-Raleigh/" rel="alternate" type="text/html" title="AppCon: Learn Fast-Trips Basics, Visualization Tools, and Recommendations for Future Surveys" /><published>2017-05-12T00:00:00-07:00</published><updated>2017-05-12T00:00:00-07:00</updated><id>https://bayareametro.github.io/fast-trips-project/2017/05/12/AppCon2017-Raleigh</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2017/05/12/AppCon2017-Raleigh/"><![CDATA[<p>Many team members will be in Raleigh, NC this week as part of the <a href="http://trbappcon.org">TRB Planning Applications Conference</a> and there will be several activities related to Fast-Trips to put on your calendar.</p>

<h4 id="fast-trips-tutorial">Fast-Trips Tutorial</h4>
<p><strong>Sunday May 14th; 3:00PM</strong><br />
Come learn some Fast-Trips basics.  Please follow directions to download and software in advance at the <a href="https://github.com/Fast-Trips/fast-trips-tutorial">GitHub Tutorial Site</a></p>

<h4 id="visualization-workshop">Visualization Workshop</h4>
<p><strong>Sunday May 14th; 3:00PM</strong><br />
See how we are using various tools to explore the Fast-Trips calibration.<br />
<a href="https://mtcdrive.box.com/s/qj2lec4r1elhe5m5gwa9jfs6yirhsqk9"><em>Presentation</em></a></p>

<h4 id="using-surveys-for-dynamic-transit-calibration">Using Surveys for Dynamic Transit Calibration</h4>
<p><strong>Tuesday May 16th; 3:30PM</strong><br />
Learn about how we are using surveys [ and what we wish we had access to ] in our Fast-Trips calibration process.
<a href="https://mtcdrive.box.com/s/7svx3n464bhpfa74wxhbtix9nm1f3q8x"><em>Presentation</em></a></p>]]></content><author><name>Elizabeth</name></author><category term="meta" /><summary type="html"><![CDATA[Many team members will be in Raleigh, NC this week as part of the TRB Planning Applications Conference and there will be several activities related to Fast-Trips to put on your calendar.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/R-line.jpg" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/R-line.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Workplan Update and Calibration Plan</title><link href="https://bayareametro.github.io/fast-trips-project/2017/01/19/Workplan-Updates/" rel="alternate" type="text/html" title="Workplan Update and Calibration Plan" /><published>2017-01-19T00:00:00-08:00</published><updated>2017-01-19T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2017/01/19/Workplan-Updates</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2017/01/19/Workplan-Updates/"><![CDATA[<p>This past Summer, the Tri-Agency Team has shifted gears away from estimating a route choice model with observed data towards and “assert and calibrate” approach.  This shift was motivated by our desire to have a model ready for application at the end of this project and informed by both a more detailed review of the observed data as well as our investigation into <a href="/fast-trips-project/library/TRB17-Issues.pdf">methodological challenges of dynamic passenger route choice</a> estimation.  We are not leaving these challenges behind, but rather forking the project into two prongs so as to not put solving them on the critical path to having a model that is ready to use.</p>

<!--break-->

<p>The “Applications Track” of work is focused on standing up the Fast-Trips model such that it can be used in projects by agencies.  This track’s plan, as denoted in the memo <a href="/fast-trips-project/library/DevelopinganApplication-ReadyRouteChoiceModel.pdf"><em>Developing and Applications-Ready Route Choice Model</em></a>, is to first develop a set of performance targets and calibration tools to allow the team to efficiently identify and remedy issues.  Subsequently, the plan is to complete three phases of calibration.  Phase I focuses on making sure Fast-Trips makes sense at the individual trajectory level when compared with the on-board survey and California Household Travel Survey GPS data.  Phase II will then scale this to full Bay-Area Fast-Trips runs and comparisons to route level and screenline-level validation data.  Phase III will include a full Bay Area validation when integrated within the SF-CHAMP travel demand model and run with feedback.</p>

<p>The “Research Track” of the workplan will focus on defining and prioritizing the problems at hand for researchers and developing a set of test cases that researchers might use in order to explore the problems and validate any solutions.  This work, which is detailed in the Memo <a href="/fast-trips-project/library/ResearchTrack-PublicWorkplan.pdf"><em>Research Track Workplan</em></a>, will be undertaken in conjunction with researchers in the field in order to more accurately understand the methodological gaps and more meaningfully frame a roadmap for remedying them.</p>

<p>We have spent the past Fall completing work on the performance targets and calibration tools and working through the Phase I calibration as described in the memo as well as a procurement to create a bench of researchers who will comprise our research advisor panel for the research track.  We look forward to sharing the Phase I calibration process and what we have learned thus far in a forthcoming post.</p>]]></content><author><name>Elizabeth</name></author><category term="meta" /><summary type="html"><![CDATA[This past Summer, the Tri-Agency Team has shifted gears away from estimating a route choice model with observed data towards and “assert and calibrate” approach. This shift was motivated by our desire to have a model ready for application at the end of this project and informed by both a more detailed review of the observed data as well as our investigation into methodological challenges of dynamic passenger route choice estimation. We are not leaving these challenges behind, but rather forking the project into two prongs so as to not put solving them on the critical path to having a model that is ready to use.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/fork.jpg" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/fork.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">See You at TRB 2017</title><link href="https://bayareametro.github.io/fast-trips-project/2017/01/05/TRB-Annual-Meeting-2017/" rel="alternate" type="text/html" title="See You at TRB 2017" /><published>2017-01-05T00:00:00-08:00</published><updated>2017-01-05T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2017/01/05/TRB-Annual-Meeting-2017</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2017/01/05/TRB-Annual-Meeting-2017/"><![CDATA[<p>Several team members will be at the Transportation Research Board Annual Meeting presenting work completed as a part of this project.  We hope to see you there!</p>

<h3 id="passenger-route-choice-challenges">Passenger Route Choice Challenges</h3>

<p>Lisa Zorn will be presenting <a href="/fast-trips-project/library/TRB17-Issues.pdf">her paper</a> titled <em>Dynamic Passenger Assignment Challenges</em> and she and Elizabeth will be manning the companion poster and would love to chat with people about any insights they might have towards solutions.</p>

<ul>
  <li><strong>Presentation</strong> Tuesday January 10th, 2017 from 1:30 to 3:15 Convention Center 156</li>
  <li><strong>Poster</strong> Wednesday January 11th, 2017 from 10:15 - 12:00 in Convention Center Hall E</li>
</ul>

<h3 id="making-open-data-useful">Making Open Data Useful</h3>

<p>Elizabeth Sall will be manning a poster on an important, but “meta”, topic on open data standards management.  <a href="/fast-trips-project/library/TRB17-OpenData.pdf">Her paper</a> is titled <em>Making Open Transportation Data Useful and Accessible: Recommendations for Good Practices in Open Data Standards Management</em>.</p>

<ul>
  <li><strong>Poster</strong>  Monday January 9th, 2017 from 1:30 to 3:15 in Convention Center Hall E</li>
</ul>

<p>We look forward to discussing these topics and more with many of you there.</p>]]></content><author><name>Elizabeth</name></author><category term="communication" /><summary type="html"><![CDATA[Several team members will be at the Transportation Research Board Annual Meeting presenting work completed as a part of this project. We hope to see you there!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/USCapitol.jpg" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/USCapitol.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">What is a hyperpath, anyway?</title><link href="https://bayareametro.github.io/fast-trips-project/2016/04/21/What-is-a-hyperpath-anyway/" rel="alternate" type="text/html" title="What is a hyperpath, anyway?" /><published>2016-04-21T00:00:00-07:00</published><updated>2016-04-21T00:00:00-07:00</updated><id>https://bayareametro.github.io/fast-trips-project/2016/04/21/What-is-a-hyperpath-anyway</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2016/04/21/What-is-a-hyperpath-anyway/"><![CDATA[<h2 id="what-is-a-hyperpath-anyway">What is a hyperpath, anyway?</h2>

<p>Over the past few months, our team has spent a lot of time exploring the methods in the existing Fast-Trips software.  The more we run the software with various examples, the more questions we had about how exactly the algorithm works as written in code (which is slightly different from published papers), so we thought we would document what the algorithm actually does in this blog post.</p>

<p>Let’s start with the literature.</p>

<p><a href="http://pubsonline.informs.org/doi/abs/10.1287/trsc.32.1.54">Nguyen, S., S. Pallottino, and M. Gendreau, 1998</a></p>

<blockquote>
  <p>For any given destination, a strategy specifies a set of attractive lines for every stop and an alighting stop for every line that may be boarded when traveling toward that destination, and a hyperpathis the unique acyclic support graph of a strategy.” (  )</p>
</blockquote>

<p><a href="http://link.springer.com/article/10.1007%2Fs11067-014-9249-3">Khani, A., M. Hickman, and H. Noh, 2015</a></p>

<blockquote>
  <p>A hyperpath, as defined by Nguyen and Pallottino 1988, is an acyclic subnetwork with at least one link connecting the origin to the destination, and where at each node, there are probabilities for choosing the alternative links.”</p>
</blockquote>

<p>I still find this a bit confusing, so let’s start with a visualization (based on Figure 5 from Khani et al 2015):</p>

<!--break-->

<div class="row">
	
	<div class="col-lg-8">
    <a href="/fast-trips-project/img/posts/hyperpath-example.png"><img width="80%" src="/fast-trips-project/img/posts/hyperpath-example.png" alt="Hyperpath Example [ click to enlarge]" /></a><br />
    <div class="text-muted">
           Hyperpath Example [ click to enlarge]
           
                <p>Source: MTC, SFCTA and PSRC based on Khani et al 2015</p>

           
    </div>
    
    </div>

</div>

<h3 id="some-definitions">Some Definitions</h3>

<p>In this graph, a preferred arrival time, or <strong><em>PAT</em></strong>, is an input to the algorithm.  <strong><em>dt</em></strong> is an input parameter, specifying the maximum time window for which outgoing links from a single stop are considered a <strong><em>hyperlink</em></strong>.  Hyperlinks consist of a set of links from a single origin to multiple possible destinations.  In this example, two transit vehicles travel from stop1 to stop5 within the time window, and they travel at the same speed, while another vehicle travels from stop1 to stop3.  Similarly, two vehicles travel from stop4 to stop5, and one vehicle travels from stop2 to stop3.  Stop5 is close enough to the destination to walk, and stop1 and stop2 are both walkable from the origin.  In total, this hyperpath contains five feasible paths between the origin and destination, but only three separate hyperlinks.</p>

<p>When a preferred departure time (<strong><em>PDT</em></strong>) is specified rather than a preferred arrival time, the graph elements (and algorithm described below) are reversed.  That is, hyperlinks consist of a set of links from multiple origins to a single destination.  For the remainder of this post, we will discuss outbound trips with a preferred arrival time.</p>

<h3 id="algorithm">Algorithm</h3>

<p>The original SHRP2-C10 version of <a href="https://github.com/akhani/FAST-TrIPs">FAST-TrIPs</a> as well as the version of <a href="https://github.com/MetropolitanTransportationCommission/fast-trips">Fast-Trips</a> currently under development by our team currently both use the following algorithm to formulate a hyperpath given a preferred arrival time, <em>PAT</em> and time window, <em>dt</em>.  The algorithm is a variant of <a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Dijkstra’s Algorithm for finding a shortest path</a>, except it’s constructing a hyperpath in order to find a set of paths with probabilities associated with them.  The <strong><em>stop label</em></strong> represents our best guess of the overall generalized cost  ( or impedance ) of travelling from that stop to the destination, and it’s formulated as the following logsum (from (2)):</p>

<div class="row">
	
	<div class="col-lg-8">
    <a href="/fast-trips-project/img/posts/path-overlap.png"><img width="80%" src="/fast-trips-project/img/posts/path-overlap.png" alt="" /></a><br />
    <div class="text-muted">
           
           
                <p>Source: MTC, SFCTA and PSRC</p>

           
    </div>
    
    </div>

</div>

<p>where</p>

<ul>
  <li><em>l<sub>i</sub></em> is the label for stop i</li>
  <li>θ is the <strong><em>dispersion parameter</em></strong> used for modeling stochasticity.  This parameter is between 0 and 1.  Higher values for the parameter mean that higher cost links within a hyperlink are devalued compared to the lowest cost links in the hyperlink.  That is, if the lowest cost for a hyperlink is <em>c</em>, when a new link gets added to the hyperlink with a cost higher than <em>c</em>, when θ is closer to 1, the more the new link has a low probability compared to the lowest cost link.  The higher θ emphasizes the lowest cost link more.</li>
  <li><em>P<sub>a</sub></em> is the set of available links (transit vehicle trips or transfers from stop i)</li>
  <li><em>c<sub>pi</sub></em> is the cost to reach the destination from stop <em>i</em> using link <em>p</em>.  This cost is the label of the next stop (call it stop <em>j</em>) plus the link cost from stop <em>i</em> to stop <em>j</em>, so <em>c<sub>pi</sub></em> = <em>l<sub>j</sub></em> + <em>link_cost<sub>p</sub></em></li>
</ul>

<p>[ We will discuss the effects of these parameters and how to judge them in a separate post. ]</p>

<p>A <strong><em>stop state</em></strong> is the combination of a stop label (<em>l</em>) plus the list of links (transit trips, transfers, and access or egress links, <em>P<sub>a</sub></em>) from that stop to other stops (e.g. the links to the right of each of the stops in the figure above).  In our example, we have a preferred arrival time at a destination, so the algorithm sets labels and stop states backwards from the destination:  </p>

<ol>
  <li><strong>Initialize stop states</strong>.  For each transit stop with an egress (e.g. walk) to the destination, label that stop.  Assume these walk links are as late as possible in time (so arrive at <em>PAT</em>) so that we have the the maximum number of options for getting to that transit stop; since the exact time of these walk links aren’t clear, they are represented as thick green bars in the above diagram.  The label at these stops is just the link cost, which in this case is typically based on the egress link travel time, and the stop state consists of just that egress link.  Add each stop and its label to a label stop queue.</li>
  <li><strong>Loop to label stops</strong>. While there are stops in the label stop queue:
    <ol>
      <li><strong>Remove the stop i with the lowest label from the label stop queue.</strong></li>
      <li><strong>Update the stop states for transfers to stop i.</strong>  That is, for all the transfer links from another stop <em>j</em> to stop <em>i</em>, update the stop state and stop label for that stop j so the hyperpath includes the possibility of transferring from stop <em>j</em> to stop <em>i</em>. So in the same way we treated the egress link times during stop initialization, we start with the assumption that these walk transfers are as late as possible in time (e.g. in time for the latest departure from stop <em>i</em> as determined by the stop state for stop <em>i</em>).  Add stop <em>j</em> and its label to the label stop queue.</li>
      <li><strong>Update the stop states for trips to stop <em>i</em></strong>.  That is, for all the transit vehicle links from another stop <em>j</em> to stop <em>i</em>, update the stop state and stop label for stop <em>j</em> so the hyperpath includes the possibility of taking that transit vehicle from stop <em>j</em> to stop <em>i</em>.  The trips are restricted to those which arrive in time to catch the latest departure in from stop <em>i</em> as determined by the stop state for stop i. Add stop <em>j</em> and its label to the label stop queue.</li>
    </ol>
  </li>
  <li><strong>Finalize origin state</strong>.  After all the stop labels have been removed from the <em>label stop queue</em>, we need to initialize a stop state for the origin point by iterating through the access links and calculating a cost based on the labels of the reachable stop <em>i</em> combined with the cost of the access link.  Assume walk access link to stop <em>i</em> is right before the earliest departure from stop <em>i</em> so that none of the links out of <em>i</em> are excluded.</li>
  <li><strong>Enumerate paths.</strong>  In theory, the origin state now has a label that has a cost that encapsulates the costs of all the trip links and transfers.  However, recall all of our assumptions about the timing of walk links (egress, transfer and access).  These result in inaccurate assumptions about wait times which can only be determined when actual paths are enumerated.  We therefore walk the labeled hyperpath and generate all of the actual, realizable paths from it.  At this point, we can fix the timing of the walk links and therefore have actual wait times.  The path costs here are used to calculate the probability of each of these paths.</li>
</ol>

<h3 id="issues">Issues</h3>

<p>Now that we know how FAST-TrIPs defines and creates a hyperpath, a few issues arise that we are grappling with.</p>

<h4 id="label-stop-queue-order">Label Stop Queue Order</h4>

<p>In Dijkstra’s algorithm, nodes also get removed from the priority queue based on having the lowest label ( least cost ).  The <a href="https://en.wikipedia.org/wiki/Dijkstra%27s_algorithm#Proof_of_correctness">proof of correctness for Dijkstra’s algorithm</a> is based in the fact that <em>label[v] = label[u] + link_cost[u,v]</em>.  However, for the Fast-Trips algorithm above, this is not true, and so the stops that get pulled off the label stop queue do not necessarily have final labels.  Fast-Trips labels can be updated at a later point, and the fast-trips algorithm does not then account for the subsequent updating of stop states for trips and transfers to that stop after that label update.</p>

<h4 id="link-additive-costs">Link-Additive Costs</h4>

<p>Before enumeration, hyperpath costs must necessarily be link-additive, and even then, the cost is not accurate until enumeration because of the uncertainty with the walk links.  This could cause problems with costs that are not link-additive, such as fares which can have complicated transfer rules.  For example, one could take a bus to rail to bus trip, and the second bus trip would be a free transfer.  When the path is enumerated, this would be easy to account for, but during the hyperpath generation, the links further down the hyperpath are uncertain.  </p>

<p>There is a risk is that we may not generate a reasonable path in the labeling stage, and then it can’t be corrected in the enumeration stage.  So why not generate <strong>all feasible</strong> paths in labeling?   For one, it would take forever, but also we don’t think it is possible to <strong>know</strong> if we didn’t generate all the feasible paths.  We welcome others comments on this topic, as it is one that we have been thinking about.</p>

<h4 id="path-overlap">Path Overlap</h4>

<p>When evaluating the value of a transit path, we typically take into account other path options to determine the value of that option.  That is, if two paths exist that are virtually the same except but with a small difference – for example, if a destination is between two stops, two options could be the same except for getting off the same transit vehicle at one stop or the other – then the value of those paths together should not be much greater than the value of one of those paths individually.  This affects probabilities as well; if there is a third option that is much different but as good as the other two, then the probability should be around 50% for the third option and 50% for the other two.  Therefore, accounting for path overlap needs to be included in both path evaluation and in calculating any overall “quality of transit” metrics.</p>

<h3 id="references">References</h3>

<ol>
  <li>Nguyen, S., S. Pallottino, and M. Gendreau.  <a href="http://pubsonline.informs.org/doi/abs/10.1287/trsc.32.1.54">Implicit Enumeration of Hyperpaths in a Logit Model for Transit Network</a>.  Transportation Science, Vol. 32, No. 1, 1998, pp. 54-64.</li>
  <li>Khani, A., M. Hickman, and H. Noh. <a href="http://link.springer.com/article/10.1007%2Fs11067-014-9249-3">Trip-Based Path Algorithms Using the Transit Network Hierarchy</a>. Networks and Spatial Economics, Vol. 15, No. 3, 2015, pp. 635-653.</li>
  <li>Noh, H., M. Hickman, and A. Khani, 2012, <a href="http://trb.metapress.com/content/b5758u54j4410673/?p=69cbb82a11034fb29b26170a2fcf69ac&amp;pi=0">Hyperpath in Network Based on Transit Schedules</a>, Transportation Research Record, Vol. 2284, PP 29-39.</li>
</ol>]]></content><author><name>Lisa</name></author><category term="methodology" /><category term="software" /><summary type="html"><![CDATA[What is a hyperpath, anyway?]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/hyperpath.png" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/hyperpath.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">SF Transit Demand - Take One</title><link href="https://bayareametro.github.io/fast-trips-project/2016/01/11/Demand-Take-One/" rel="alternate" type="text/html" title="SF Transit Demand - Take One" /><published>2016-01-11T00:00:00-08:00</published><updated>2016-01-11T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2016/01/11/Demand-Take-One</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2016/01/11/Demand-Take-One/"><![CDATA[<p>We have transit demand – a version of it, anyway.  I started with a script that 
<a href="https://github.com/lmz">Lisa Zorn</a> developed back in 2012 when she and 
<a href="https://github.com/akhani">Alireza Khani</a> worked on the paper 
<a href="http://amonline.trb.org/13-4601-1.2527510?qr=1"> <em>Integration of the FAST-TrIPs Person-Based Dynamic Transit Assignment Model, the 
SF-CHAMP Regional Activity-Based Travel Demand Model, and San Francisco’s Citywide Dynamic 
Traffic Assignment Model</em></a>.  The script 
currently does two things: reformats the data, and assigns disaggregated preferred departure 
and arrival times. In the future, it may combine data from other sources and perform minimal 
variable synthesis.</p>

<!--break-->

<h3 id="time-blocks-to-time-of-day">Time blocks to time of day</h3>
<p>In order to distribute the trips to discrete times from the five aggregate time periods 
that <a href="http://www.sfcta.org/modeling">SF-CHAMP</a> uses [ AM Peak, Midday, PM Peak, Evening, 
and Early AM ], the script uses cumulative density functions for preferred arrival and 
departure times derived from observed <a href="http://www.sfmta.com">SFMTA</a> Automated Passenger 
Counter (APC) boardings and alightings.</p>

<h3 id="data-reformatting">Data reformatting</h3>
<p>The demand data is then reformatted to the 
<a href="https://github.com/osplanning-data-standards/dyno-demand">Dyno-Demand</a> format to be able 
to be read by <a href="https://github.com/MetropolitanTransportationCommission/fast-trips">Fast-Trips</a>. 
The Dyno-demand format has one mandatory file 
(<a href="https://github.com/osplanning-data-standards/dyno-demand/blob/master/files/trip_list.md"><code class="language-plaintext highlighter-rouge">trip_list.txt</code></a>) 
and two optional files [ 
<a href="https://github.com/osplanning-data-standards/dyno-demand/blob/master/files/household.md"><code class="language-plaintext highlighter-rouge">household.txt</code></a> 
and <a href="https://github.com/osplanning-data-standards/dyno-demand/blob/master/files/person.md"><code class="language-plaintext highlighter-rouge">person.txt</code></a> ].</p>

<p>One other item of note is that although <a href="http://www.sfcta.org/modeling">SF-CHAMP</a> currently 
models a variety of sub-modes in its trip mode choice model [ e.g., ferry, local-bus, 
express-bus, commuter-rail, etc ], the team decided that it would be better to let 
<a href="https://github.com/MetropolitanTransportationCommission/fast-trips">Fast-Trips</a> make the 
sub-mode selection in the route choice model.  Therefore, the transit sub-modes from SF-CHAMP 
are collapsed in this script to Walk-to-Transit and Drive-to-Transit.</p>

<h3 id="transit-travel-demand---take-one">Transit Travel Demand - Take One</h3>
<p>If you are interested in reviewing our “first take” of the San Francisco disaggregate 
transit demand, you can 
<a href="https://mtcdrive.box.com/s/wzthprl227f2l5aim5iohyal0guh8wra">download it here</a>.  Please 
note that this is by no means a finished product and still needs a fair amount of work, 
as documented in the various GitHub 
<a href="https://github.com/sfcta/fast-trips_demand_converter/issues">Issues</a>.  That said, if you 
want some demand that is bigger than the test network, here is something you can use in 
combination with 
<a href="https://mtcdrive.box.com/s/g1sny1wqg3bp7w54l5f1p1oom9rj6jg8">Take-1 of the San Francisco Bay Area Network</a>.</p>]]></content><author><name>Bhargava</name></author><category term="demand" /><category term="software" /><summary type="html"><![CDATA[We have transit demand – a version of it, anyway. I started with a script that Lisa Zorn developed back in 2012 when she and Alireza Khani worked on the paper Integration of the FAST-TrIPs Person-Based Dynamic Transit Assignment Model, the SF-CHAMP Regional Activity-Based Travel Demand Model, and San Francisco’s Citywide Dynamic Traffic Assignment Model. The script currently does two things: reformats the data, and assigns disaggregated preferred departure and arrival times. In the future, it may combine data from other sources and perform minimal variable synthesis.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/demand.png" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/demand.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Two Metro-Area Transit Networks – Take One</title><link href="https://bayareametro.github.io/fast-trips-project/2016/01/11/Networks-Take-One/" rel="alternate" type="text/html" title="Two Metro-Area Transit Networks – Take One" /><published>2016-01-11T00:00:00-08:00</published><updated>2016-01-11T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2016/01/11/Networks-Take-One</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2016/01/11/Networks-Take-One/"><![CDATA[<p>Are you enjoying running <a href="https://github.com/MetropolitanTransportationCommission/fast-trips">Fast-Trips</a> 
on the small test network but ready for a “big time” network?  Today is your lucky day.</p>

<p>The general approach to creating networks is to take the travel demand model networks that 
each agency already produces and add information to them to create a schedule-based network 
as required by our GTFS-PLUS network specification 
[ and <a href="http://fast-trips.mtc.ca.gov/2015/08/21/standard-deviation/">discussed in this blog post</a> ].</p>

<!--break-->

<h2 id="network-conversion-scripts">Network Conversion Scripts</h2>

<p>The team has created two network conversion scripts: one that converts PSRC’s SoundCast’s 
EMME networks into <a href="https://github.com/osplanning-data-standards/GTFS-PLUS">GTFS-PLUS</a> 
networks that <a href="https://github.com/MetropolitanTransportationCommission/fast-trips">Fast-Trips</a> 
can read and the other that uses SFCTA’s “Network Wrangler” to convert 
<a href="http:///www.sfcta.org/modeling">SF-CHAMP</a> networks to 
<a href="https://github.com/osplanning-data-standards/GTFS-PLUS">GTFS-PLUS</a>.  While the PSRC version 
requires an EMME license, SFCTA’s Network Wrangler is based in Python and can therefore be 
run by anyone.</p>

<h3 id="soundcast-fast-trips-network-builder">SoundCast Fast-Trips Network Builder</h3>

<p>The <a href="https://github.com/psrc/fast-trips_network_builder">SoundCast Fast-Trips Network Builder</a> 
converts SoundCast’s <a href="https://www.inrosoftware.com/en/products/emme/">Emme</a> networks into 
GTFS-PLUS networks by completing a bunch of data transformations and simulating a transit 
schedule either based on average headways for a given time period [ good for future year 
data ] or by grabbing the GTFS schedule [ good for base year data where the schedule is known ].</p>

<h3 id="network-wrangler">Network Wrangler</h3>

<p><a href="https://github.com/sfcta/NetworkWrangler/tree/fasttrips">Network Wrangler</a> is the codebase 
that SFCTA uses to build their transit and highway networks.  It has class objects for things 
like <a href="https://github.com/sfcta/NetworkWrangler/blob/fasttrips/Wrangler/TransitLine.py">transit lines</a>, 
<a href="https://github.com/sfcta/NetworkWrangler/blob/fasttrips/Wrangler/Node.py">nodes</a> and 
<a href="https://github.com/sfcta/NetworkWrangler/blob/fasttrips/Wrangler/TransitNetwork.py">transit networks</a>.
When possible, these classes were just extended to be able to write out 
<a href="https://github.com/osplanning-data-standards/GTFS-PLUS">GTFS-PLUS</a> files. However, quite 
a bit of logic had to be built in in order to incorporate things such as complex fare 
structures.</p>

<p>The script can be run as follows:</p>

<p><code class="language-plaintext highlighter-rouge">python convert_cube_to_fasttrips.py network_specification.py</code></p>

<p>There is still a bit of work to be sorted out to come up with the version of the network 
that we will be happy with, but we can still get some good mileage out of this version. 
In particular, there are additional data fields that would be nice to populate and the base 
year schedule should be synched with existing GTFS data rather than randomized across a 
log-normal schedule.</p>

<h2 id="network-file">Network File</h2>

<p>Want to take Fast-Trips for a spin right now?  Feel free to download 
<a href="https://mtcdrive.box.com/s/g1sny1wqg3bp7w54l5f1p1oom9rj6jg8">Take-1 of the San Francisco Bay Area Network</a> 
and use it in combination with the first draft of the 
<a href="https://mtcdrive.box.com/s/wzthprl227f2l5aim5iohyal0guh8wra">San Francisco Bay Area Demand</a></p>]]></content><author><name>[&quot;Stefan&quot;, &quot;Drew&quot;]</name></author><category term="networks" /><category term="software" /><summary type="html"><![CDATA[Are you enjoying running Fast-Trips on the small test network but ready for a “big time” network? Today is your lucky day.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/networks.png" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/networks.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Test Me</title><link href="https://bayareametro.github.io/fast-trips-project/2015/12/16/test-me/" rel="alternate" type="text/html" title="Test Me" /><published>2015-12-16T00:00:00-08:00</published><updated>2015-12-16T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2015/12/16/test-me</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2015/12/16/test-me/"><![CDATA[<p>Good news – we just <a href="https://github.com/MetropolitanTransportationCommission/fast-trips/tree/develop">put up some instructions</a> 
and sample data for you run Fast-Trips at home!</p>

<p>The basic requirements are:</p>

<ul>
  <li><a href="https://www.continuum.io/downloads">Anaconda</a> ( or equivalent ) installation of Python</li>
  <li>Microsoft Visual C++ Compiler for Python 2.7 (e.g. <a href="http://www.microsoft.com/en-us/download/details.aspx?id=44266">for Windows</a> )</li>
  <li><a href="https://github.com/google/transitfeed/wiki/TransitFeed">TransitFeed</a> for reading GTFS data</li>
</ul>

<p>We have included a small, five-zone test network [ located in the subdirectory 
<code class="language-plaintext highlighter-rouge">\Examples\test_network</code> ] to facilitate tinkering with and testing various features before 
instituting a full-scale run.</p>

<div class="row">
	
	<div class="col-lg-8">
    <a href="/fast-trips-project/img/posts/test_network.png"><img width="80%" src="/fast-trips-project/img/posts/test_network.png" alt="Small Test Network" /></a><br />
    <div class="text-muted">
           Small Test Network
           
                <p>Source: MTC, PSRC, &amp; SFCTA</p>

           
    </div>
    
    </div>

</div>

<p>Nothing is perfect, but we would love to know what you think!  Please submit issues to our 
<a href="https://github.com/MetropolitanTransportationCommission/fast-trips/issues">GitHub Issue Tracker</a>.  The 
more people who try it out now, the better and more usable it will be later.</p>]]></content><author><name>Elizabeth</name></author><category term="software" /><summary type="html"><![CDATA[Good news – we just put up some instructions and sample data for you run Fast-Trips at home!]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/computer.jpeg" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/computer.jpeg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Fall 2015 Update</title><link href="https://bayareametro.github.io/fast-trips-project/2015/12/15/Fall-Update/" rel="alternate" type="text/html" title="Fall 2015 Update" /><published>2015-12-15T00:00:00-08:00</published><updated>2015-12-15T00:00:00-08:00</updated><id>https://bayareametro.github.io/fast-trips-project/2015/12/15/Fall-Update</id><content type="html" xml:base="https://bayareametro.github.io/fast-trips-project/2015/12/15/Fall-Update/"><![CDATA[<p>Over the past few months, we have made substantial progress on our standards, the network 
preparation, and the Fast-Trips software itself.  Paperwork has delayed some of our 
progress in the Travel Behavior task, but that is now behind us and we can push on.  Here 
is a brief summary of a few of the things we have been working on.</p>

<h3 id="evolution-of-standards">Evolution of Standards</h3>
<p>We have iterated some on our  standards, and updated all of our tools to use them.</p>

<p><em><a href="https://github.com/osplanning-data-standards/GTFS-PLUS">Network Standard</a></em></p>

<ul>
  <li>Biggest pain is still the fares, which have changed slightly as we have worked through 
the various fare types in each region and realized that there were too many exceptions 
to our simplifications.</li>
  <li>The biggest changes to the standard are to decrease ambiguity.</li>
</ul>

<p><em><a href="https://github.com/osplanning-data-standards/dyno-demand">Demand Standard</a></em></p>

<ul>
  <li>Has remained more constant.</li>
</ul>

<h3 id="network-creation">Network Creation</h3>
<p>We have substantively completed the code to do the network creation process for Fast-Trips 
on the fly from within SoundCast and SF-CHAMP.</p>

<!--break-->

<ul>
  <li>Includes schedule creation from headways [ using GTFS if it is available ].</li>
  <li>Fares have been the most difficult component to “get right.” There are a multitude of 
fare rules by operator of multiple types [ zone, flat, station-to-station ], and multiple 
transfer policies.  These were all roughly approximated in our current system and so 
transferring them to the new data standard requires a lot of care and thought.</li>
  <li>The <a href="https://github.com/psrc/fast-trips_network_builder">PSRC Version</a> has undergone 
small-scale testing and will be scaling to entire network this week.  It utilizes the 
EMME API, so may be of limited use outside of EMME users.</li>
  <li>The <a href="https://github.com/sfcta/NetworkWrangler/tree/fasttrips">SFCTA version</a> is within their 
stand-alone NetworkWrangler and is slightly behind PSRC in maturity.</li>
</ul>

<h3 id="demand-validation">Demand Validation</h3>
<p>Our initial investigation into validating the demand has been met with the [ not 
unexpected ] issue that the OD data we have [ on-board surveys and CHTS ] is significantly 
higher [ when weighted ] than the ridership data we have at screenlines.  We are looking 
into this issue and hope to not get lost down this rabbit-hole if it isn’t going to benefit 
us too much in the long term since SF-CHAMP hits the screenline data fairly well.</p>

<h3 id="fast-trips-travel-model-integration">Fast-Trips Travel Model Integration</h3>
<p>Joe developed a white paper summarizing the various issues and potential strategies for 
feeding LOS information coming out of Fast-Trips back up to the travel demand models.</p>

<p>Joe, Elizabeth, and Lisa have been working to develop an approach that addresses these 
issues.   The process is challenging, because SF-CHAMP and SoundCast have very different 
approaches to mode choice.</p>

<h3 id="software-released">Software Released!</h3>
<p>You can download and use Fast-Trips yourself!  We had Bhargava [ somebody who wasn’t 
involved in the coding ] work through the small test scenario and make sure he could 
download, compile, and use it.</p>

<p>Instructions and code are on <a href="https://github.com/MetropolitanTransportationCommission/fast-trips/tree/develop">GitHub</a> 
and will be summarized in a forthcoming blog post.</p>]]></content><author><name>Elizabeth</name></author><category term="meta" /><summary type="html"><![CDATA[Over the past few months, we have made substantial progress on our standards, the network preparation, and the Fast-Trips software itself. Paperwork has delayed some of our progress in the Travel Behavior task, but that is now behind us and we can push on. Here is a brief summary of a few of the things we have been working on.]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://bayareametro.github.io/fast-trips-project/img/posts/leaves.png" /><media:content medium="image" url="https://bayareametro.github.io/fast-trips-project/img/posts/leaves.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>