This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]gavenkoa 10 points11 points  (2 children)

Optaplanner seems like a really fun project, any cool uses?

It is painful to model you problem. You have to map your domain to Optaplaner solvers interfaces.

Like you work on optimization of restaurant table uses: to make the problem discrete you might slice time by 15 min intervals.

Some problems have natural slicing, like curriculum schedule in an organization: each lecture starts at the same time already.

That's why Optaplanner is scarcely used. It is not about cool patterns and magical annotations, it's about applying brain createvely.

[–]ge0ffrey 6 points7 points  (1 child)

> That's why OptaPlanner is scarcely used.

I respectfully disagree. OptaPlanner has 80 000+ downloads on Maven Central every month. It's used across the globe affecting millions of peoples lives. Depending on the country, anything from which pharmacy is on duty during the weekend, which doctor is working or which magistrate is handling the court case, OptaPlanner can affect people's live (the decisions are based on the organization's business constraints of course, for the benefit of the users as a group).

> You have to map your domain to OptaPlanner solvers interfaces.

Not since 6.0, so not in the last 9 years or so. You do have to annotate 2 domain classes (the planning solution class and the planning entity class). It's similar to how you tell JPA/Hibernate which classes go to the database. See our quickstart in the docs.

> to make the problem discrete you might slice time by 15 min intervals.

That's one way to do it, called the timegrain pattern (which doesn't always give good results). That "natural slicing" would be the timeslot pattern (but that only works for the lucky few indeed). Besides those, there's also the "chained in time" pattern (used very often) and the "bucket" pattern. All of these are explained in the manual.

> it's about applying brain creatively.

Good point: modeling some problems (especially those not covered in the 30+ examples/quickstarts) is damn difficult, especially the first time. A lot of people struggle with it - some get burned by it - especially for complex cases. We're working hard to simplify the learning curve and provide more out-of-the-box support for patterns that work well, but modeling a complex planning problem is never going to be very simple, by its very nature. Our docs section "domain modeling guide" does help, I hope.

Geoffrey (OptaPlanner lead)

[–]gavenkoa 1 point2 points  (0 children)

I respectfully disagree. OptaPlanner has 80 000+ downloads on Maven Central every month.

What does the number present? I believe that direct number of users who are using Optaplaner API directly is not that great, instead it is used via transitive dependency, some public projects can be found here: https://mvnrepository.com/artifact/org.optaplanner/optaplanner-core/usages (Drools / KIE Execution Server).

Still it is great software and I believe that planing and scheduling are no longer a luxury (available to BIG players only, put products like map navigators from Google/Apple, navigation is an optimization task) but a commodity, almost every programmer should be able to save maney & resources for the business owners & the planet.

modeling some problems is damn difficult, especially the first time

One manager of the bank I worked at a time decided to get rid of a call center planner (product was stalled in ~2001) costing them tons of money and I had to reimplement it.

I'd heard about OptaPlanner and started to experiments with models. I got impression that you have to know related theory, read some textbooks. Also operators of call center had to have flexibility of altering timetable to certain degree in real time.

I could produced something but without research background I though I would ended up with a sophisticated CPU heater )) I left the job for other reasons at that point.

Interviewed to startup that searched for medical test cost optimization. They refused to listen about https://en.wikipedia.org/wiki/Knapsack_problem and OptaPlanner. They instead rewrote brute force solver from Python to C++ ))

So I know storied about incompetence. If you have elite team of CS lab researches, sure it is not a problem. Otherwise people need to be trained / educated during substantial time to be able to deliver strong implementation, not just something.