[pgrouting-users] Reg: Introduction to VRP Pickup and Delivery problem and work done in GSoC
Manikanta Kondeti
mani.iiit123 at gmail.com
Tue Aug 26 12:28:43 PDT 2014
Hello,
On Tue, Aug 26, 2014 at 9:14 PM, Julien-Samuel Lacroix <
jlacroix at mapgears.com> wrote:
> Hi,
>
> Congratulation!
>
Thank you
>
> I would be interested in learning more about this new feature. Can you
> give us details on the inputs?
>
> What is the schema of the customer table?
> What are the 2 other arguments in the function?
>
> Can you briefly describe a simple real life use case that is represented
> by your example?
>
> Thank you,
> Julien
>
>
Let me first explain you the input and output format. There is a
central depot with 'm' vehicles and there are 'n' customer nodes (n/2
pickup locations and n/2 delivery locations). So the problem is, a vehicle
will start from the central depot to a pickup location, pickup the things
and delivery it to the corresponding delivery location.
The database contains details about depot and customer nodes. Each
customer has a few attributes
(See this:
https://github.com/pgRouting/pgrouting/blob/gsoc-vrppdtw/src/vrppdtw/test/pdp-any-00.data)
The two other arguments in the function are number of vehicles and
capacity of each vehicle.
If you want to know more about the problem (check it here:
https://github.com/pgRouting/pgrouting/wiki/VRP-Pickup-Delivery-Problem)
* Testing:*
git clone https://github.com/pgrouting/pgrouting
git checkout gsoc-vrppdtw
Compile it:
mkdir build && cd build
cmake -DWITH_DD=ON ..
make
sudo make install
Create database and import data:
sudo su postgres
createdb my_vrpdp_test
psql my_vrpdp_test -c "create extension postgis; create extension
pgrouting;"
psql my_vrpdp_test -f "path/to/pgrouting/src/vrppdtw
/test/pdp-any-00.data"
Function to retrieve output:
psql my_vrpdp_test -c "select * from pgr_gsoc_vrppdtw('select * from
customer'::text, 25, 200)"
Output format is explained in the previous mail.
I can't directly take a real world example, but I'm sure there are some
real world practical applications
* Transportation of raw materials from suppliers to factories.
* Internet-based pickup from sellers and delivery to buyers
* Pickup and delivery of charitable donations from homes to
different organizations
* Transport of medical samples from medical offices to laboratories
I hope this is a bit clear now. I'll waiting for some feedback :)
Thanks,
Manikanta
> On 14-08-26 02:09 AM, Manikanta Kondeti wrote:
>
>> Hi all,
>>
>> 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.
>>
>> 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.
>>
>> *Repo details:*
>> https://github.com/pgRouting/pgrouting/tree/gsoc-vrppdtw/src/vrppdtw/src
>>
>> *How to test it:*
>> * Clone it from github
>> * Compile and build it
>> mkdir build && cd build
>> cmake -DWITH_DD=ON ..
>> make
>> sudo make install
>> * Open psql command line (sudo su postgres)
>> \c pgr_test__db__test (Select Database)
>> select * from pgr_gsoc_vrppdtw('select * from
>> customer'::text, 25, 200);
>>
>> * Output:*
>> **Output has 4 columns(seq, rid, nid, cost)
>>
>> seq: starts from 0(first route first node) to (last route
>> last node)
>> rid: Shows the route id
>> nid: Nodes in that particular route
>> cost: Cost calculated till that point
>>
>> Example: /Sample output /
>>
>> 0 | 1 | 0 | 0
>> 1 | 1 | 79 | 668
>> 2 | 1 | 80 | 859
>> 3 | 1 | 49 | 1091
>> 4 | 1 | 47 | 1183
>> 5 | 1 | 0 | 1201
>> 6 | 2 | 0 | 0
>> 7 | 2 | 81 | 47
>> 8 | 2 | 76 | 293
>> 9 | 2 | 70 | 477
>> 10 | 2 | 73 | 570
>> 11 | 2 | 0 | 625
>>
>> / Interpretation of this will be/:
>> From seq 0 to 5 has details about first route and seq 6 to 11
>> about second route.
>> _Route 1_: Nodes->[0 79 80 49 47 0] Cost -> [0 658 859 1091 1183
>> 1201]
>> _Route 2:_ Nodes->[0 81 76 70 73 0] Cost -> [0 47 293 477 570 625]
>>
>>
>> So final costs for route1 and route2 are 1201 and 625.
>>
>> 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.
>>
>> Finally this is one of my best summers, thanks to my mentors & pgRouting
>> community. You're awesome :)
>>
>> Thanks
>> Manikanta
>> LSI, IIIT-H
>>
>>
>> _______________________________________________
>> Pgrouting-users mailing list
>> Pgrouting-users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>>
>>
> --
> Julien-Samuel Lacroix
> T: +1 418-696-5056 #202
> Mapgears
> http://www.mapgears.com/
> _______________________________________________
> Pgrouting-users mailing list
> Pgrouting-users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/pgrouting-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/pgrouting-users/attachments/20140827/6856c720/attachment.html>
More information about the Pgrouting-users
mailing list