I'm new to VRP solving. I've got optaplanner's demo VRP running.
I have about 400 text addresses as my waypoints. I've geocoded them, so I have lat/long.
I sense that I need to calculate a LOT of distances between waypoints. I've seen the file format for .vrp and as yet haven't found how to generate that format from my list of text addresses.
I sense that graphhopper might help me to do that.
I'm still getting graphopper going. I have downloaded open street map data from https://extract.bbbike.org/ in PBF format. I sense that I need to use that to that data with graphhopper to generate input to optaplanner.
am I on the right track?
can someone point me to a guide? (I realise this is pretty niche, and I might have to find my way a little...)
Thanks and Regards
Here's the code how I generated the VRP file used in optaplanner-examples.
Related
I am new to vb.net and from pas few days i have been searching for some information. I was not able to find any proper guidance online so finally i thought that i should post here.
I want to develop a solution for EPC, electronic parts catalog. The problem i am facing is to click on the numeric numbers in an image to filter a data set.
I have tried searching online through several sources. I have tried to look into some image processing plugins as well but i was not able to find something robust and understandable as i have mentioned i am new.
Kindly can someone guide me towards the right direction.
Thanks,
I looked at the user guide http://docs.jboss.org/optaplanner/release/6.1.0.Final/optaplanner-docs/html_single/index.html#d0e2669
I looked at the example code from git, but still feel quite lost about how to model my planning problem (for example some special TSP variant, let's say TSPTW ). the way OptaPlanner user code is structured is that the user code is devided into several packages, and there is not a entire "end-to-end" flow of code, and as a developer I only see these "modules" , sort of. So as a result it's very difficult for me to figure out how to connect the dots, and how these "dots" interact together to accomplish the overall algorithm task.
the section in the link above "Model your planning problem " sort of touches on the above question I have, but still seems out of sync with the example code, so it's difficult to figure out how the current examples work, also it's difficult for me to see how to add my own special logic for the TSP variant .
is there a better "code walk-through" document to show the usage of the framework?
thanks
Yang
Take a look here this guy create a simple optaplanner project to test some concepts and learn how to use it.
I am trying to use the Optaplanner for a business case that I have, which is about the VRP problem. As I am not an expert programmer, I deal with the problem of imputing the information to the software. The files in the example are .vrp files so I could not manage to find out how can I change them. I have my files in txt format but I cannot find a way how to use them. I hope that there is a easy way to maybe convert the txt files into vrp.
Thank you very much in advance.
Michail
No, there is no magic program that takes an arbitrary formatted txt file and turns into the vrp format used by the example in OptaPlanner. The example is meant as a starting point for programmers, so they can customize to their business needs and put it in their business UI.
Note: OptaPlanner itself has no input/output formats. The OptaPlanner example VehicleRouting can load a file in the format vrp (or also xstream xml) in to it's VRP domain objects, but it also possible to write some code to load it from a database or something else.
I found many algorithms to convert (latitude, longitude) into (X, Y)... however, I cannot verify if the results I'm getting are correct.. I found also this link which does the conversion online.. but I couldn't manage to get any algorithm which gives the same results as the one given by the link..
I would be grateful if anyone has encountered the same problem and can help me
iOS solution
If you're looking for some ready to go code in Objective-C you can check out UTM converter. It is also available as a CocoaPod.
There's a very nice Wikipedia article on UTM. It's got formulas, background, explanations of the different zones, etc...
Eric SIBERT has written a handy coordinates converter. You may use it as a validation tool. If you feel like it, you may even delve into the source code for scrutinity.
Problem:
I am trying to reverse geocode a lat/long into a closest street intersection using Google Maps API V3. Also, for now, this doesn't have to be super accurate-- as I am just trying to anonymize an address as opposed to providing directions.
I have seen that the Geocoding Results data contains an Address Component Type of "Intersection", but this doesn't seem to be consistent at all in the return results-- and is more often that not blank.
I have also done some looking on SO for the best way to construct this barring getting it from Google directly, and the closest I have seen is: How can I find the nearest intersection via the Google Maps API?, which doesn't really resolve my issue. In light of this I have come up with my own solution, and would like some opinions, optimizations, constructive criticism, or other options entirely.
My Tentative Solution:
After playing around with the API, I decided to give the following algorithm a shot (just for context, this is written in C# within a console app):
I take an address and resolve that into a lat/long.
I then add or subtract a certain amount of lat or long from the
coordinate-- on the order of a city block (a distance which is adjusted given your
latitude) and get walking directions between the points. I do this for up to all four directions-- so the first modification would be to keep the latitude the same but subtract some longitude. Then the next modification would be to keep the latitude and add some longitude, etc.
After getting the directions, I parse the results and check the start
and end address. If they are different, I pull out the street names
and treat them as an "intersection" (even though sometimes this
results in parallel streets-- again just trying to get a ballpark).
If I don't find two different streets, I widen the distance of the end destination and repeat the process.
So far this working well enough, but obviously it is an expensive process both in terms of time, and in using up my allotted query limit. Also, I checked the API terms of service, and as long as I include their disclaimer and display the results on a Google Map I think that I am ok.
My questions for the community are:
How can I improve the efficiency of the algorithm? Specifically, in
the number of times I call the API (the implementation code is not a
problem)
Is there another way entirely to do this using the Google Maps API?
In the SO question referred to above, the solution was to loop
over building numbers. I am not sure exactly what that means-- so any
clarification would be great.
As referred to above, I do not believe this is breaking the terms of service-- but am I mistaken?
Is there another web-based API to use that may meet my needs better?
Perhaps Bing, or some other provider?
Thanks a lot for any help.
UPDATE:
I have run into my query limit for the day, so I won't be able to test any suggestions against Google today, but I am also still open to using a different API. Thanks.
Old question, but since the original poster stated they were open to solutions other than Google, Geonames has a web API for this for the U.S. See GeoNames WebServices overview and http://www.geonames.org/maps/us-reverse-geocoder.html#findNearestIntersection