<div dir="ltr">Hi all, <div><br></div><div>   I am Manikanta, a GSoC student for pgRouting. I've implemented a partially optimized VRP-Pickup and Delivery Problem with time windows. This algorithm has many practical uses in the real world. There is a big scope to extend this problem and implement further.</div>
<div><br></div><div>   I thank my mentors Daniel and Steve for giving me this wonderful opportunity and guiding me in the right way. Solving routing problems became my passion and interest. Hence I'd love to contribute to pgRouting in the future as well. This GSoC will be the first step. A lot more to come.       </div>
<div><br></div><div><b>Repo details:</b> <br></div><div><a href="https://github.com/pgRouting/pgrouting/tree/gsoc-vrppdtw/src/vrppdtw/src">https://github.com/pgRouting/pgrouting/tree/gsoc-vrppdtw/src/vrppdtw/src</a></div>
<div><br></div><div><b>How to test it:</b></div><div>  * Clone it from github</div><div>  * Compile and build it  </div><div>         mkdir build && cd build   </div><div>         <span style="line-height:inherit;font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;color:rgb(51,51,51);font-size:14px;background-color:transparent">cmake -DWITH_DD=ON ..</span></div>
<div>         make </div><div>         sudo make install                                        </div><div>   * Open psql command line  (sudo su postgres)</div><div>          \c pgr_test__db__test     (Select Database)</div>
<div>          select * from pgr_gsoc_vrppdtw('select * from customer'::text, 25, 200);</div><div><br></div><div><b> Output:</b></div><div><b>   </b>Output has 4 columns(seq, rid, nid, cost)</div><div>            seq:  starts from 0(first route first node) to (last route last node) </div>
<div>              rid:  Shows the route id </div><div>              nid: Nodes in that particular route</div><div>            cost:  Cost calculated till that point</div><div><br></div><div>    Example:  <i>Sample output </i></div>
<div>                     0 |   1 |   0 |    0</div><div>                     1 |   1 |  79 |  668</div><div>                     2 |   1 |  80 |  859</div><div>                     3 |   1 |  49 | 1091</div><div>                     4 |   1 |  47 | 1183</div>
<div>                     5 |   1 |   0 | 1201</div><div>                     6 |   2 |   0 |    0</div><div>                     7 |   2 |  81 |   47</div><div>                     8 |   2 |  76 |  293</div><div>                     9 |   2 |  70 |  477</div>
<div>                    10 |   2 |  73 |  570</div><div>                    11 |   2 |   0 |  625</div><div><br></div><div><i>  Interpretation of this will be</i>:</div><div>     From seq 0 to 5 has details about first route and seq 6 to 11 about second route.</div>
<div>       <u>Route 1</u>: Nodes->[0 79 80 49 47 0]  Cost -> [0  658 859  1091  1183  1201]</div><div>       <u>Route 2:</u> Nodes->[0 81 76 70 73 0]  Cost -> [0 47 293 477 570 625]</div><div><br></div><div>       So final costs for route1 and route2 are 1201 and 625.   </div>
<div><br></div><div>I'm planning to write a blog which contains all of these details. I'll do it in a few weeks. Before that if you find any difficulties or want to give me suggestions, feel free to contact me. Hope everything goes well. </div>
<div><br></div><div>Finally this is one of my best summers, thanks to my mentors & pgRouting community. You're awesome :)</div><div><br></div><div>Thanks </div><div>Manikanta </div><div>LSI, IIIT-H </div></div>