Is Jsprit production ready?

777 views
Skip to first unread message

tortabevonas

unread,
Dec 16, 2014, 3:10:18 PM12/16/14
to jsprit-ma...@googlegroups.com
I’m working on a real-time route optimizer system for a startup food delivery company.
I’m trying to get familiar with both Jsprit and Optaplanner.
OptaPlanner’s website says it’s “production ready” and it really seems to be well-documented, but I still think Jsprit is much more easier to work with.

Is there somebody in the group who has made the same decision?
If so, is Jsprit "production ready"? If you were me, would you use it in a production environment?
I'm really curious about your opinion.


Thank you in advance,
Aron

in...@opendoorlogistics.com

unread,
Dec 16, 2014, 3:31:48 PM12/16/14
to jsprit-ma...@googlegroups.com
I've integrated jsprit into my open source ODL Studio application and I'm happy with it. I looked briefly at Optaplanner a while back and I can't see any reason why Optaplanner is more 'production ready' than jsprit. Early-on in developing ODL Studio, I did consider whether to integrate Optaplanner or jsprit and came to the conclusion that although Optaplanner is a more 'generic' solver, it offers less built-in functionality for vehicle routing (i.e. you have to do quite a lot to define a routing problem). As Optaplanner's heuristics are more generic (i.e. not specifically targetted to vehicle routing) I strongly suspect - but don't know for certain - that jsprit would have better performance than Optaplanner on the same vehicle routing problem.
 
Philip Welch
Open Door Logistics Limited
Specialists in open source solutions for transport logistics.

Email: info@opendoorlogisticscom
Skype: opendoorlogistics



----- Original Message -----

To:
<jsprit-ma...@googlegroups.com>
Cc:

Sent:
Tue, 16 Dec 2014 12:10:18 -0800 (PST)
Subject:
[jsprit-mailing-list] Is Jsprit production ready?
--
You received this message because you are subscribed to the Google Groups "jsprit-mailing-list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jsprit-mailing-...@googlegroups.com.
To post to this group, send email to jsprit-ma...@googlegroups.com.
Visit this group at http://groups.google.com/group/jsprit-mailing-list.
For more options, visit https://groups.google.com/d/optout.

Karussell

unread,
Dec 16, 2014, 3:35:32 PM12/16/14
to jsprit-ma...@googlegroups.com
I fear you have to try yourself. There are too many areas to say 'yes' or 'no' :)

If something is expected to work, then in my experience this worked good.

Peter

tortabevonas

unread,
Dec 17, 2014, 6:41:37 AM12/17/14
to jsprit-ma...@googlegroups.com
Thank you for the answers!
I'm playing with Jsprit and think that Optaplanner doesn't more seem production ready...

Stefan Schröder

unread,
Dec 18, 2014, 3:54:55 PM12/18/14
to jsprit-ma...@googlegroups.com
It depends on the definition of "production-ready". When I googled this, I basically found that a project is production-ready when it fits the needs of the customer. Ok, there are definitions that are much more differentiated.
If I were you, I would test and evaluate every option and filter out the best.

The first question I would ask myself is whether the software can solve my problems. Thus elaborate thoroughly the vehicle routing problems you need to solve and find out whether jsprit and optaplanner and others can actually solve them. When it comes to jsprit, if you post your requirements I (we) can tell you whether it can be solved with jsprit or not. We strive for to be as transparent as possible when it comes to jsprit's capabilities.

If there are still more than one options, the second question I would ask myself is how easy it is to model the problem. Here, jsprit might be easier than others, however more general libraries - especially if they are well documented - might be more powerful once you know how they work (which in turn might come with performance costs - I dont know - but from a theoretical point of view, specialized libraries/algorithms should perform better than their generic counterparts).

The third question would be whether future maintenance, development and improvement is ensured. Here optaplanner might have advantages over jsprit. It has - as far as I know - a good record and it is embedded in a big company. Optaplanner might also guarantee you backwards compatibility - I am not sure. Since jsprit is comparably young, it cannot and does not want to guarantee you this. We want to be as flexible and fast as possible when it comes to improvements. However, when the API changed, we definitely provide you with ways to "easily" adapt to the new API (with examples and a detailed changelog thus you will always know exactly the causes of your code break). Additionally, jsprit is designed for change and further development since among others over 1000 unit and integration tests assure jsprit's functionality.

As Peter wrote, there are much more areas to elaborate. So try out and do not hesitate to post questions.

tortabevonas

unread,
Dec 19, 2014, 5:14:36 AM12/19/14
to jsprit-ma...@googlegroups.com
Thanks, Stefan!
At the end we decided to proceed with Jsprit!
My main concern was implementation of custom constraints (we have many), but I tried Jsprit and found that they're not harder to implement in Jsprit than implementing a fast, incremental score calculator in Optaplanner...
My second concern was multithreading, because our system should be as real-time as possible. Optaplanner cannot utilize multiple processor cores (it's planned in a future release), while Jsprit can! (Eventually I've tested it.)

Anyway, thanks for your work on Jsprit!
Reply all
Reply to author
Forward
0 new messages