These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE Technology Lab

 
  • Topic is locked indefinitely.
12Next page
 

[Request]Scattered assets route planner

Author
Daria Meridian Carlile
Necromatic Inc.
#1 - 2012-07-15 11:38:12 UTC  |  Edited by: Daria Meridian Carlile
I was wondering if a tool exists, that can plan the shortest route between scattered assets?

For example, i have items in 40 different systems in The Forge, sorting them by distance and adding a waypoint at each systems creates a spiders web on the galaxy map, with a total of 190 jumps.

I would love a tool capable of telling me the most effective route between all of said systems (Tool would be able to fetch my asset list and make a route between the systems which i have assets in, with the option to exclude some systems)
Mikokoel
Mining Industry Exile Foundation
Synergy of Steel
#2 - 2012-07-16 07:36:01 UTC
get to work, develop an optimal solution and win 1 million dollar.

For further information:

http://en.wikipedia.org/wiki/Travelling_salesman_problem

tl;dr: it's complicated

Mikokoel | Head FC League of Unaligned Master Pilots

Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#3 - 2012-07-16 10:03:35 UTC
Working out optimal routes for 2 systems out of 20 is fairly simple.
3 systems complicated it.
4 systems will make many things grind to a halt.



Each system pretty much multiplies the complexity by the number of systems remaining.

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Osku Rei
Pixel 6
#4 - 2012-07-16 16:16:46 UTC
I developed a web based tool to do this a little ago (minus the assets bit).
It can only handle max of 10 systems at once I think in a reasonable amount of time (due to the nature of the TSP).
For each system after that you effectively double the time it takes to calculate the route.

https://forums.eveonline.com/default.aspx?g=posts&m=1301717#post1301717

Probably another post by me somewhere else.

Give me a mail and we can chat.

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

stu2000
Perkone
Caldari State
#5 - 2012-07-17 10:45:10 UTC  |  Edited by: stu2000
For people stating that 10+ systems is too computationally complex:
I agree that it is too computationally expensive to get an exact result, but you can get an 'educated guess' at an optimal route using AI techniques pretty quick. I have developed such systems in the past and a good example of such systems in place are the 'quest helper' router in WoW. You will sometimes notice that it will change the route even if you are standing still and doing nothing, this is because it has found a more optimal solution in time.

You would probably want to just ask the user for a set period of time to calculate for and then just return the best result found so far after that time period has expired. If you use php to retrieve the variables and dump them to a page and then write the ai logic in something like javascript, then you wont kill your server with calculations as the hard bit is done on the client's side, though it does mean the client can steal that part of the code if that matters to you. Will work on this myself when I find the time if someone doesn't do it already.

Here is a basic and visual of one of the possible AI techniques using what may sometimes be referred to as 'ant-colony optimization' and other names. Obviously you wouldnt waste resources/programming time displaying any visuals in calculation
http://www.youtube.com/watch?v=cZLGRzXm2y0&feature=player_embedded#!

and another which resemples the eve map in some ways:
http://www.youtube.com/watch?v=VK3ls-FiU4k&feature=related
stu2000
Perkone
Caldari State
#6 - 2012-07-18 07:21:22 UTC  |  Edited by: stu2000
I have the static data loaded into database. I should hopefully have my attempt on this within two or three days. Aim will be to use AI techniques to get an educated guess at optimal route for more than 20+ systems.

Stu
Golden Gnu
The Golden Gnu Corp
#7 - 2012-07-18 07:40:58 UTC  |  Edited by: Golden Gnu
@Daria Meridian Carlile
jEveAssets got a routing tool that will do what you ask.
Max for brute force is 13 locations - but, you can use nearest neighbor on as many jump you like and get a pretty good result.

I should note that I'm the author of jEveAssets.
Flaming Candle did the routing tool.

Creator of jEveAssets - the asset manager

"Download is the meaning of life, upload is the meaning of intelligent life"

stu2000
Perkone
Caldari State
#8 - 2012-07-18 08:15:58 UTC
I forgot to ask:
Do you need the route calculator to pop you back at the same system you started from, or is it okay if it ends at any one of your stations with assets? or perhaps you would like to enter a final destination system such as jita.
Daria Meridian Carlile
Necromatic Inc.
#9 - 2012-07-18 19:52:43 UTC  |  Edited by: Daria Meridian Carlile
stu2000 wrote:
I forgot to ask:
Do you need the route calculator to pop you back at the same system you started from, or is it okay if it ends at any one of your stations with assets? or perhaps you would like to enter a final destination system such as jita.


Well i would love to be able to choose a starting location but the ability to choose a final destination would be considered a bonus, not a necessity.
Reading your posts, i really look forward to seeing your project completed (or at least working in relation to the eve map), it is a very interesting one!.



Golden Gnu, I tried JEvEAssets and it does what i need of it to a good extend.
The route isn't optimal (which is obviously to be expected given the speed) and the fact that it sorts the waypoints alphabetically makes is a bit annoying, for example, both the start and end of my route through 32 systems, are both located at least 16 jumps from me.

Thank you for the link though, it is the best tool available at the moment :)
stu2000
Perkone
Caldari State
#10 - 2012-07-19 07:01:49 UTC
Progress update,
wrote and fully ran script yesterday to generate the table to give me the number of jumps between any two systems. The table is 308,705 rows large, so you can imagine that it took a while (thought it does have duplicates in the sense of to / from and from / to and allowing)

Interesting fact. According to this table The maximum distance between any two systems is 63 if it was generated correctly, but this is untested / unconfirmed.

Will have the prog up late tonight hopefully. Depends on how long it actually takes to build a good enough interface. expect it to be very basic but functional to start.(text fields and text output on blank page)
stu2000
Perkone
Caldari State
#11 - 2012-07-19 07:09:44 UTC
It would be fantastic if eve allowed you to import routes based on a specified structure so you got the yellow gates and everything. Too slow to manually check gate names every system
Osku Rei
Pixel 6
#12 - 2012-07-19 07:31:22 UTC
stu2000 wrote:
Progress update,
wrote and fully ran script yesterday to generate the table to give me the number of jumps between any two systems. The table is 308,705 rows large, so you can imagine that it took a while (thought it does have duplicates in the sense of to / from and from / to and allowing)

Interesting fact. According to this table The maximum distance between any two systems is 63 if it was generated correctly, but this is untested / unconfirmed.

Will have the prog up late tonight hopefully. Depends on how long it actually takes to build a good enough interface. expect it to be very basic but functional to start.(text fields and text output on blank page)



If i'm reading you correctly, i'm pretty sure there are more than 300k possible routes. It should be ~15k^2 ?

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

stu2000
Perkone
Caldari State
#13 - 2012-07-19 11:20:40 UTC
Yah I was thinking that. There are 14.x k systems. Strongly suspect something went wrong. I will be checking tonight. I checked the logs and didnt get any errors. I will post code if I cant find an issue. I must be adding systems to a closed list pre-maturely or something.

Was performing a standard breadth-first search for each system and using the data to populate a table with 'to' 'from' 'next-system' and 'num_jumps'.

ie A >> B >> C >> D
would result in
A to D = 3 jumps next system B
B to D = 2 jumps next system C
D to A = 3 jumps next system C

etc.
stu2000
Perkone
Caldari State
#14 - 2012-07-19 14:55:53 UTC
I know whats wrong, but I suspect with the necessary change it will take more than one night to re-generate the lookup table. Will let you know. Might as well build the interface tonight whilst thats running.
Osku Rei
Pixel 6
#15 - 2012-07-19 15:23:32 UTC
stu2000 wrote:
I know whats wrong, but I suspect with the necessary change it will take more than one night to re-generate the lookup table. Will let you know. Might as well build the interface tonight whilst thats running.



You don't need to pre compute every route now :)

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

Osku Rei
Pixel 6
#16 - 2012-07-19 16:05:30 UTC
http://multi.evejb.com/

Simple GUI I knocked up at lunch.

Done the algo, just need to wire the 2 together Cool

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

stu2000
Perkone
Caldari State
#17 - 2012-07-19 18:29:04 UTC
Osku Rei wrote:
http://multi.evejb.com/

Simple GUI I knocked up at lunch.

Done the algo, just need to wire the 2 together Cool


Wow your amazing with interfaces! that looks pretty slick. I need an input field for the keyID, verification code, and character name.

When you said you have done the algo, you mean you have generated one of your own?
Osku Rei
Pixel 6
#18 - 2012-07-19 18:40:42 UTC
stu2000 wrote:
Osku Rei wrote:
http://multi.evejb.com/

Simple GUI I knocked up at lunch.

Done the algo, just need to wire the 2 together Cool


Wow your amazing with interfaces! that looks pretty slick. I need an input field for the keyID, verification code, and character name.

When you said you have done the algo, you mean you have generated one of your own?



Cheers :)

Yup I coded up one myself (a little while ago) in php.

Trying to add a few optimizations at the moment.

Permutations for 9 waypoints takes ~2.5 seconds.
To find the optimum route takes ~ 5.5 seconds.

Need to reduce the memory use of the permutation function as its to high for my liking.
I'm running this all locally, and although it's on an i7, i'm wondering if a host will have better performance.

Next generation of lottery tracker coming soon! http://evelotterytracker.com/

Please like my post if it has helped you :)

stu2000
Perkone
Caldari State
#19 - 2012-07-19 19:00:02 UTC
Sounds cool! Im running mine on just a 5hitty single-core 1.6ghz netbook. We shall have to race our algorithms when done. My netbook vs your i7. Ill let you know when my lookup-table which plays a crucial part in calculating routes is done. Please note that it doesn't pre-calculate every possible route there is, thats insane, it just tells you the next system you want between any two systems. There is a unique and subtle difference, the main one being that you save a lot more space for a performance penalty.

Stu
stu2000
Perkone
Caldari State
#20 - 2012-07-19 19:52:37 UTC
Do you know how to convert from an asset location id (im suspecting station) to a solar system id?
12Next page