Geoffrey, thanks for sharing your story with us. OR sure is a weird niche. Good enough algorithms for solving these problems have existed for decades1, but we still see low adoption and your 95% estimate of the companies not optimizing their operations rings true.
Similarly to you, I spent a short while trying to sell VRP optimization with an API business model, and what dawned on me was that most companies do not have the necessary in-house expertise to integrate optimization into their existing tools even if the API is well-designed. There also really seems not to be any urgency to do that and most logistics companies just offload their inefficiencies onto their customers. Your routes are not effective? No problem, just bill more.
Some years ago I heard about a Swedish team of optimization experts who got so fed up with selling optimization to unwilling transportation companies that they founded their own—just to mop the floor with their ineffective competition. :D
I agree that ease of use is key here. In my PhD dissertation, I tried to address the issue by adding self-adaptivity within transportation management systems, mostly through automatic parameter tuning and algorithm selection. Such approaches remove some amount of fiddling when the optimization tool is adapted to a new optimization problem. Worth a look, perhaps, if you're interested.
Many thanks again for the interesting article and all the best with Timefold.
1) E.g., already by the '90s, we had quite capable algorithms for the VRP. I have open-sourced a library of classical VRP algorithms called VeRyPy, containing simple and not-so-simple heuristic algorithms. It has enjoyed modest success among VRP researchers and practitioners. Nowhere near the success of OptaPlanner, but also, the purpose is different—OptaPlanner is production-ready, whereas VeRyPy is more geared towards education and research purposes.
If nobody does something in a whole industry perhaps it's because it's not a differentiating factor. Do you have a link to the Swedish company? It just sounds like typical "software engineers know better" story where they go bankrupt after a few years because turns out the important bits are in other parts of the business.
I always assumed it was due to (a lack of) scale for most companies? 1% improvement in container planning for Maersk is hundreds of millions of dollars per year, so they can have an entire team dedicated to that. Meanwhile at the other end of the scale, 1% improvement of job scheduling at $DAYJOB probably wouldn't even pay for its own ongoing costs, let alone the costs of setting it up.
I did OR in my Bachelor thesis, and then at my first project at my first job. It worked like magic, and business was sure it wouldn't work. Still one of the projects I always talk about. It was for organizing screens unto pallets unto trucks. Then I never anything with OR ever since. Even for a few early AI products 8 years ago, in the end they didn't go for it. I think you are spot on with the expertise. Even though quite a lot of businesspeople heard about it in university.
Yes, having in-house expertise to integration optimization into their existing tools is hard. Especially if they use low level solver APIs (especially if it's math equations).
We're working making that easier with high-level REST APIs (Timefold Field Service Routing, etc). And with education (Timefold Academy) by creating videos and articles on how to integrate real-time planning, continuous planning, labor law constraints, fairness, cost reduction, etc
I love that GOFAI companies are also calling themselves AI, because seriously why not. If a pile of linear algebra (fittingly trained on The Pile) can be AI, then so can optimizers and solvers.
I haven’t tried Timefold but did try a ton of solvers (local and web) a few years ago when trying to optimize MRP schedule. One of the hardest parts was converting my business logic into constraints, especially date based calculations.
Instead of explicit constraints, is there a way to provide a calculation that can be minmaxed? If every order has a due date, can I say +/- 3 days = 0, 7 early = 9999 (not allowed), 7+ days late = (days late)^2?
Please email me (in profile) if you want to discuss.
Somewhat related, I looked at a bunch of solvers for vehicle routing with time windows. One thing that surprised me was that the SaaS-based distance matrix calculations were prohibitively expensive. Google charged $0.01 per matrix element.
How do folks normally get the distance matrix? I ended up just using the Mapbox Optimization API instead of using a solver.
You need piecewise linear cost function and auxiliary variables. An experienced practitioner should be able to help you with either mixed integer linear programming or constraint programming
I didn't use Timefold but the predecessor Optaplanner, and I remember there were hard constraints which must always be true (eg one room can only be used for one meeting at a given time) and then there were soft constraints which were minimized (eg shorter distance is better)
so an optimization problem can then be described with a set of those hard/soft contraints
Thank you for the hard work in this space! I think it is really important that there is a proper open source solution available.
I just found OptaPlanner and subsequently TimeFold few months ago, as I was searching for a solution for my wife's veterinary clinics employee scheduling problem. The problem is not big enough for anyone to pay for the solution, but big enough to cause stress for whom ever is dealing with manually doings the shifts.
It was interesting that there were a lot of online SaaS providers that claim to solve the problem but they just simply are not configurable for all kinds of constraints of a real workplace.
Unfortunately I also feel partially same with TimeFold, because designing those constraints really requires changing the way of thinking of many problems. While the engine is capable of doing what ever, there is a steep learning curve to do it.
So while the article mentions documentation, I would say that the documentation is far from sufficient for wide adaption.
Personally, I would have really needed documentation about a mental model of thinking about the problem, and then a ton of examples how to solve real employee scheduling problems. Problem written in a format which the business people use and then translated into an elegant constraint rule explained step by step.
I had to invest more than 40 hours to get a working MVP that solves real problems, not just those that are already coded in the example code. Most people are not willing to do that.
What I'm trying to say is that to making planner software popular, it should be also usable for trivial projects. I understand that it's hard to focus on everything, but just providing more information about real use cases and how they were solved and how to think about the design problems would make the market bigger, and bring you a lot more customers in the long run.
I just wonder how I might contribute to improve the documentation. I probably don't have deep enough understanding of the correct solution, but I will look into it.
Hi Tappio, read you loud and clear. We are actively looking into making it easier for all people to solve their planning problems. Our goal is to "free the world from wasteful scheduling" and we more than realize we can't do that alone. ;)
When you make the leap, you're basically living of off your savings.
Until the startup has investors that agree to pay the founders a wage (to reduce personal financial stress so they can concentrate on the company) - or the startup is profitable - it's vital that your savings don't run out...
The lesson in this to young people: you can either sell your time by the hour, or buy other's time and use that productively. The former is very finite, the latter scales.
Cool to see Hawkeye 360 is one of their users. Hawkeye is an Earth observation company that builds satellites to monitor RF spectrum usage on the ground, so I can see how better tasking would help.
My favorite business course in undergrad was production operations management. Some time later I realized that in data engineering, critical path analysis is useful for optimizing directed acyclic graphs.
For example, it doesn't make sense to optimize the longest running task when it's not on the critical path. If you are optimizing for $, sure. But for time, there are better tasks to optimize.
Whats the name of the algorithm/concept used here? I used simulated annealing, old fashioned algorithm for a college timetable prototype and I'm wondering how this company is using an AI model.
It is a constrained solver. You can argue about what is or is not AI. It varies over time, traditionally driven by in which part of the AI boom/ bust cycle we were, and lately also by which regulations would apply.
My background is in AI but I would have been hesitant calling the rule based systems I wrote to automate financial descisions AI at the time.
We support Simulated Annealing too, as well as Tabu Search and many others. By default Timefold Solver uses Late Acceptance, which behaves like Simulated Annealing but isn't parameter tuning fickle like SA.
Do note that the base algorithm (such as SA, TS or LA) is less than 5% of the work to get great results. We do a lot of additional things on top of that (incremental score calculation, smart neighborhood selection, multi threaded solving and many more).
I did something like this for a project in a class almost two decades ago. The project was to make a system that would take a bunch of students' schedules and produce a list of teams that optimized for shared free time. I started with simulated annealing and then ended up with a genetic algorithm.
It is a tough niche market where you compete with excel people who have built their careers on their manual planning expertise.
Unfortunately you are pitching not to the end user but to their manager (who will have to force them to drop their spreadsheet mambo jumbo). But I guess this is the case with all AI products nowadays anyways.
Hmmm... Some co-founders and I are building a UK startup that needs to do skills-based task routing and optimize job assignment for workers who will drive to remote jobs.
Would love to have a quick chat with you or someone at timefold.ai to see if this is something we could potentially use.
A lot of the research on constraint solvers is to solve that problem. CSP is more approachable than boolean SAT or SMT but it's all the same sort of thing - feed it a lot of constraints and some notion of when a solution is better than another one and then leave it running for a while.
Excellent article. You certainly managed to synthesize the startup experience with Open-source (two very challenging sectors). Do you just gravitate towards mathematically wicked problems? :)
Like you experienced, a good product without a team and without revenue is simply not enough, no matter how good the idea. I have unfortunately been one of the 90% of startup failures to experience that brutal reality.
My next project with a few others is to make open source coding & development profitable. We want to keep advancing open source while also helping others to get paid for their efforts. We are still technically in stealth mode, but plan to be launching soon. Our website will be codebounty.ai (we don't yet have it fully built out yet). With that being said, if you are interested to participate as a sponsor, maintainer, or contributor we would love to hear from you about what you would like to see in this program: https://docs.google.com/forms/d/e/1FAIpQLSdmlxJHIqOlwr1Nw3q0... .
We would like to see it become a place where new coders can learn, develop skills, and get mentored by others. We would also like to have it as a way for others to have an income while looking for full time employment (rather than driving for uber). Heck, it could even become a recruiting tool for companies.
If you have ideas, I would love to hear from you so that we can help to make more amazing open source projecets like Timefold a more common reality!
What a great story and indeed you're an excellent storyteller.
I want to wish you all the luck in the world with this, it sounds like it's going well.
Have you considered offering public pricing for your API, or maybe a few trial? Even if it's only for small use cases, I'd love to know I can just give you guys $100/month to cover my small use case.
Thanks for your work and dedication on this problem domain, Geoffrey! I’ve used optaplanner in the past on several projects and will certainly use Timefold for future projects. This sort of
constrain solver is an invaluable tool when you find yourself in the problem space and definitely worth the learning curve.
I need to check this out. In a past life my primary role was scheduling a call center of up to two hundred seats (at our peak). I had built out a complicated network of spreadsheets that used historical data and future projections to mostly automate the process, so much so that I was able to move us from what was monthly schedule releases to quarterly and had a full on preference survey that each agent filled out. It still was a few days work going through the responses and actually compiling the final result but what once was a headache for my manager I turned into 10% if my role and was able to focus on delivering value elsewhere by streamlining data reporting.
Honestly, I'm still not sure how I feel about Red Hat/IBM's journey. On one hand, RH killed (i.e. "gave to IBM to rot away") a lot of products I liked (recently, the whole JBoss stack they had, see [1] for more details).
On the other hand, a lot of the products that RH gave to IBM were really painful to use. Let me preface this by saying that I mean no disrespect to Geoffrey and his amazing work! And, also, I suspected I was too dumb to understand OptaPlanner in particular.
But OptaPlanner was definitely amazingly painful to use. The docs seemed horrible to me at the time, and the UX of the product was on the level of "the source code is there, to solve your problem, just understand the code base..." To model your problems meant that ideally, you'd pay for Red Hat's consulting, which would give you indirect access to the dev team, which would help you put your problem model into OptaPlanner.
A lot of the JBoss products I really liked were like that. Now, they'll die by slow death over at IBM with nobody giving a damn. I guess such is life.
I wish Geoffrey all the best with Timefold! I truly hope you'll turn it into whatever you desire, and that you'll always have more customers knocking at your door than you can handle!
Our goal is to make planning optimization easy. But planning optimization can be extremely complex. So it took us quite some time to make it easy. Timefold Solver is already a lot easier than OptaPlanner to use. And the Timefold REST APIs are even easier: if you have a vehicle routing or shift scheduling case on your hands, just send in your data and get the solution.
But not all cases are easy...
What kind of use case where you trying to solve with OptaPlanner? In the past, I've seen a strong correlation between the ease of solving the problem and the availability of of a quickstart example.
For example, our tech is even used for court scheduling (in different countries), but every single one of those cases was difficult. Other cases are far more simple.
It all depends on the planning problem.
Do you remember any particular pain in your OptaPlanner experience that we can improve going forward? Around which year was this?
I read the entire article once I recognized the name.
Geoffrey is synonymous with OR/Constraints solvers in my mind. I once had to tackle an issue in this domain and wound up using OptaPlanner after weeks of research.
It had the most intuitive API and the best community support by far.
It's a bummer to hear that OptaPlanner was killed, but it sounds like ultimately it led to something greater, so there's a silver lining.
Wishing you the best in your future endeavors, Geoffrey!
I am wondering if there is a risk, as it is open source, that a company with bigger marketing spend starts offering timefold in the cloud, kind like AWS with Elasticsearch? Or is there a big enough moat with the models on your cloud platform to prevent this situation?
Hi, I loved your story! I also checked out the app, but it's giving me an error:
An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.
I didn't have much appreciation for shift planning until an engineering genius showed me the beautifully crafted schedule for their company (after I helped mess it up with some 12 hour days). They later went independent, with shift-planning software being one of their products.
I remember you talking about the project in the early drools IRC days. Your positivity and enthusiasm were what really made this project happen, and I have no doubts about your success with this new venture.
I’m glad things went well for you and that you managed to regain control of your life’s work.
I have kind of an off-topic question — how did y'all get a license for using SF Pro as a Web Font on your website? Afaik Apple on licenses the SF Pro as a font to only be used on Apple devices and apps?
(Disclosure: I work for Timefold)
OR Tools is a MIPS/SAT solver, while Timefold is a meta-heuristic solver.
As a result, the developer experience is quite different:
- In OR Tools, you need to write your constraints as mathematical equations. You can only provide your own function in a few scenarios, such as calculating the distance between two points. This allows OR Tools to eliminate symmetries and calculate gradients to improve its solution search. In Timefold, your constraints are treated like a black box, so your constraints can use any function and call any library you like (although you shouldn't do things like IO in them). However, since said constraints are a black box, Timefold is unable to eliminate symmetries or calculate gradients.
- In OR Tools, you have very little control in how it does its search. At most, you can select what algorithm/strategy it uses. In Timefold, you have a ton of control in how it does its search: from what moves its tries to adding your own custom phases. If none are configured, it will use sensible defaults. That being said, certain problems strongly benefit from custom moves.
- In OR Tools, you do not need to create custom classes; you create variables using methods on their domain model classes. In Timefold, you need to define your domain model by creating your own classes. This adds initial complexity, but it makes the code more readable: instead of your variable being an int, it is an Employee or a Visit. That being said, it can be difficult for someone to design an initial model, since it requires an understanding of the problem they are solving.
All in all, when using Timefold, you need to think in a more declarative approach (think Prolog, SQL, etc). For example, let say you have a room assignment problem where a teacher can only teach at a single room at once, and minimize room changes. In Timefold, it may look like this:
# Typically would be stored in a parameterization object, but a global var
# is used for brevity
teacher_count = 3
@planning_entity
@dataclass
class Room:
id: Annotated[int, PlanningId]
date: int
name: str
# This can also be a Teacher object, but str is used for brevity here
teacher: Annotated[str, PlanningVariable] = field(default=None)
@planning_solution
@dataclass
class Timetable:
rooms: Annotated[list[Room], PlanningEntityCollectionProperty]
teachers: Annotated[list[str], ValueRangeProvider]
score: Annotated[HardSoftScore, PlanningScore] = field(default=None)
@constraint_provider
def timetable_constraints(cf: ConstraintFactory):
return [
cf.for_each_unique_pair(Room, Joiners.equal(lambda room: room.date), Joiners.equal(lambda room: room.teacher))
.penalize(HardSoftScore.ONE_HARD)
.as_constraint('Teacher time conflict'),
cf.for_each_unique_pair(Room, Joiners.equal(lambda room: room.teacher))
.filter(lambda a, b: a.name != b.name)
.penalize(HardSoftScore.ONE_SOFT)
.as_constraint('Minimize room change')
]
solver_config = SolverConfig(
solution_class=Timetable,
entity_class_list=[Room],
score_director_factory_config=ScoreDirectorFactoryConfig(
constraint_provider_function=timetable_constraints
),
termination_config=TerminationConfig(
spent_limit=Duration(seconds=5)
)
)
solver_factory = SolverFactory.create(solver_config)
solver = solver_factory.build_solver()
problem: Timetable = build_problem()
solver.solve(problem)
Compared to OR Tools:
teacher_count = 3
problem: Timetable = build_problem()
model = cp_model.CpModel()
objective = []
room_vars = [cp_model.model.new_int_var(0, teacher_count - 1, f'room_assignment_{i}' for i in range(len(problem.rooms)))]
room_vars_by_date = {date: [room_vars[i] for i in range(len(problem.rooms)) if problem.rooms[i].date == date] for date in {room.date for room in problem.rooms}}
room_vars_by_name = {name: [room_vars[i] for i in range(len(problem.rooms)) if problem.rooms[i].name == name] for name in {room.name for room in problem.rooms}}
for date, date_vars in room_vars_by_date.items():
model.AddAllDifferent(date_vars)
for name, name_vars in room_vars_by_name.items():
for assignment_1 in names_vars:
for assignment_2 in names_vars:
if assignment_1 is not assignment_2:
objective.add(assignment_1 != assignment_2)
model.minimize(sum(objective))
solver = cp_model.CpSolver()
status = solver.solve(model)
It is interesting how the combination of AI and open-source can provide new opportunities for project development. It is impressive to see it in action
yorak|1 year ago
Similarly to you, I spent a short while trying to sell VRP optimization with an API business model, and what dawned on me was that most companies do not have the necessary in-house expertise to integrate optimization into their existing tools even if the API is well-designed. There also really seems not to be any urgency to do that and most logistics companies just offload their inefficiencies onto their customers. Your routes are not effective? No problem, just bill more.
Some years ago I heard about a Swedish team of optimization experts who got so fed up with selling optimization to unwilling transportation companies that they founded their own—just to mop the floor with their ineffective competition. :D
I agree that ease of use is key here. In my PhD dissertation, I tried to address the issue by adding self-adaptivity within transportation management systems, mostly through automatic parameter tuning and algorithm selection. Such approaches remove some amount of fiddling when the optimization tool is adapted to a new optimization problem. Worth a look, perhaps, if you're interested.
Many thanks again for the interesting article and all the best with Timefold.
1) E.g., already by the '90s, we had quite capable algorithms for the VRP. I have open-sourced a library of classical VRP algorithms called VeRyPy, containing simple and not-so-simple heuristic algorithms. It has enjoyed modest success among VRP researchers and practitioners. Nowhere near the success of OptaPlanner, but also, the purpose is different—OptaPlanner is production-ready, whereas VeRyPy is more geared towards education and research purposes.
vasco|1 year ago
WJW|1 year ago
_glass|1 year ago
ge0ffrey|1 year ago
Yes, having in-house expertise to integration optimization into their existing tools is hard. Especially if they use low level solver APIs (especially if it's math equations).
We're working making that easier with high-level REST APIs (Timefold Field Service Routing, etc). And with education (Timefold Academy) by creating videos and articles on how to integrate real-time planning, continuous planning, labor law constraints, fairness, cost reduction, etc
See https://www.youtube.com/@timefold/videos
jaypii172|1 year ago
Edit: vasco was faster with their question haha
internet_points|1 year ago
elcritch|1 year ago
Really, it's hard to say it's not AI.
Glad to see an open source project gaining benefit from the AI hype train at least. :)
fragmede|1 year ago
chime|1 year ago
Instead of explicit constraints, is there a way to provide a calculation that can be minmaxed? If every order has a due date, can I say +/- 3 days = 0, 7 early = 9999 (not allowed), 7+ days late = (days late)^2?
Please email me (in profile) if you want to discuss.
sa46|1 year ago
How do folks normally get the distance matrix? I ended up just using the Mapbox Optimization API instead of using a solver.
whatever1|1 year ago
uwemaurer|1 year ago
so an optimization problem can then be described with a set of those hard/soft contraints
OutOfHere|1 year ago
semi-extrinsic|1 year ago
tappio|1 year ago
I just found OptaPlanner and subsequently TimeFold few months ago, as I was searching for a solution for my wife's veterinary clinics employee scheduling problem. The problem is not big enough for anyone to pay for the solution, but big enough to cause stress for whom ever is dealing with manually doings the shifts.
It was interesting that there were a lot of online SaaS providers that claim to solve the problem but they just simply are not configurable for all kinds of constraints of a real workplace.
Unfortunately I also feel partially same with TimeFold, because designing those constraints really requires changing the way of thinking of many problems. While the engine is capable of doing what ever, there is a steep learning curve to do it.
So while the article mentions documentation, I would say that the documentation is far from sufficient for wide adaption.
Personally, I would have really needed documentation about a mental model of thinking about the problem, and then a ton of examples how to solve real employee scheduling problems. Problem written in a format which the business people use and then translated into an elegant constraint rule explained step by step.
I had to invest more than 40 hours to get a working MVP that solves real problems, not just those that are already coded in the example code. Most people are not willing to do that.
What I'm trying to say is that to making planner software popular, it should be also usable for trivial projects. I understand that it's hard to focus on everything, but just providing more information about real use cases and how they were solved and how to think about the design problems would make the market bigger, and bring you a lot more customers in the long run.
I just wonder how I might contribute to improve the documentation. I probably don't have deep enough understanding of the correct solution, but I will look into it.
TomCoolsTF|1 year ago
SomaticPirate|1 year ago
DoingIsLearning|1 year ago
Also irrespective of the project itself, amazing wife!
ge0ffrey|1 year ago
menaerus|1 year ago
> Founders might get a wage to avoid personal financial stress
How do you make a living as a founder if you don't get a wage? Is that really a norm?
> but then also need skin in the game, typically by investing personally
And also this. Does it assume that you will invest your savings or what exactly?
swiftcoder|1 year ago
The majority of successful founders are already wealthy. Those who aren't, have a pretty high chance of going personally bankrupt in the process
ge0ffrey|1 year ago
Until the startup has investors that agree to pay the founders a wage (to reduce personal financial stress so they can concentrate on the company) - or the startup is profitable - it's vital that your savings don't run out...
Eridrus|1 year ago
In markets where capital is more scarce, people may want to avoid giving up more equity.
PeterStuer|1 year ago
The lesson in this to young people: you can either sell your time by the hour, or buy other's time and use that productively. The former is very finite, the latter scales.
viccis|1 year ago
patrickwalton|1 year ago
01HNNWZ0MV43FF|1 year ago
[deleted]
fjjjrjj|1 year ago
My favorite business course in undergrad was production operations management. Some time later I realized that in data engineering, critical path analysis is useful for optimizing directed acyclic graphs.
For example, it doesn't make sense to optimize the longest running task when it's not on the critical path. If you are optimizing for $, sure. But for time, there are better tasks to optimize.
aitchnyu|1 year ago
PeterStuer|1 year ago
My background is in AI but I would have been hesitant calling the rule based systems I wrote to automate financial descisions AI at the time.
In this case, Geoffrey also seemed hesitant in the past to refer to his system as AI (see https://www.optaplanner.org/blog/2017/09/07/DoesAIIncludeCon... ), but somtimes you just have to ride the wave that brings in the funding.
ge0ffrey|1 year ago
Do note that the base algorithm (such as SA, TS or LA) is less than 5% of the work to get great results. We do a lot of additional things on top of that (incremental score calculation, smart neighborhood selection, multi threaded solving and many more).
viccis|1 year ago
whatever1|1 year ago
It is a tough niche market where you compete with excel people who have built their careers on their manual planning expertise.
Unfortunately you are pitching not to the end user but to their manager (who will have to force them to drop their spreadsheet mambo jumbo). But I guess this is the case with all AI products nowadays anyways.
wedocharlie|1 year ago
Would love to have a quick chat with you or someone at timefold.ai to see if this is something we could potentially use.
JonChesterfield|1 year ago
unknown|1 year ago
[deleted]
dust3317|1 year ago
Like you experienced, a good product without a team and without revenue is simply not enough, no matter how good the idea. I have unfortunately been one of the 90% of startup failures to experience that brutal reality.
My next project with a few others is to make open source coding & development profitable. We want to keep advancing open source while also helping others to get paid for their efforts. We are still technically in stealth mode, but plan to be launching soon. Our website will be codebounty.ai (we don't yet have it fully built out yet). With that being said, if you are interested to participate as a sponsor, maintainer, or contributor we would love to hear from you about what you would like to see in this program: https://docs.google.com/forms/d/e/1FAIpQLSdmlxJHIqOlwr1Nw3q0... .
We would like to see it become a place where new coders can learn, develop skills, and get mentored by others. We would also like to have it as a way for others to have an income while looking for full time employment (rather than driving for uber). Heck, it could even become a recruiting tool for companies.
If you have ideas, I would love to hear from you so that we can help to make more amazing open source projecets like Timefold a more common reality!
matt-p|1 year ago
I want to wish you all the luck in the world with this, it sounds like it's going well.
Have you considered offering public pricing for your API, or maybe a few trial? Even if it's only for small use cases, I'd love to know I can just give you guys $100/month to cover my small use case.
freethejazz|1 year ago
valiant55|1 year ago
BossingAround|1 year ago
On the other hand, a lot of the products that RH gave to IBM were really painful to use. Let me preface this by saying that I mean no disrespect to Geoffrey and his amazing work! And, also, I suspected I was too dumb to understand OptaPlanner in particular.
But OptaPlanner was definitely amazingly painful to use. The docs seemed horrible to me at the time, and the UX of the product was on the level of "the source code is there, to solve your problem, just understand the code base..." To model your problems meant that ideally, you'd pay for Red Hat's consulting, which would give you indirect access to the dev team, which would help you put your problem model into OptaPlanner.
A lot of the JBoss products I really liked were like that. Now, they'll die by slow death over at IBM with nobody giving a damn. I guess such is life.
I wish Geoffrey all the best with Timefold! I truly hope you'll turn it into whatever you desire, and that you'll always have more customers knocking at your door than you can handle!
[1] https://www.redhat.com/en/blog/evolving-our-middleware-strat...
ge0ffrey|1 year ago
What kind of use case where you trying to solve with OptaPlanner? In the past, I've seen a strong correlation between the ease of solving the problem and the availability of of a quickstart example.
For example, our tech is even used for court scheduling (in different countries), but every single one of those cases was difficult. Other cases are far more simple.
It all depends on the planning problem.
Do you remember any particular pain in your OptaPlanner experience that we can improve going forward? Around which year was this?
unknown|1 year ago
[deleted]
gavinray|1 year ago
Geoffrey is synonymous with OR/Constraints solvers in my mind. I once had to tackle an issue in this domain and wound up using OptaPlanner after weeks of research.
It had the most intuitive API and the best community support by far.
It's a bummer to hear that OptaPlanner was killed, but it sounds like ultimately it led to something greater, so there's a silver lining.
Wishing you the best in your future endeavors, Geoffrey!
ge0ffrey|1 year ago
tailsdog|1 year ago
I am wondering if there is a risk, as it is open source, that a company with bigger marketing spend starts offering timefold in the cloud, kind like AWS with Elasticsearch? Or is there a big enough moat with the models on your cloud platform to prevent this situation?
pandatigox|1 year ago
An error occurred in the Server Components render. The specific message is omitted in production builds to avoid leaking sensitive details. A digest property is included on this error instance which may provide additional details about the nature of the error.
axus|1 year ago
fmeyer|1 year ago
I’m glad things went well for you and that you managed to regain control of your life’s work.
kashyapc|1 year ago
Congrats on all this great progress! Please take care :-)
yawnxyz|1 year ago
I have kind of an off-topic question — how did y'all get a license for using SF Pro as a Web Font on your website? Afaik Apple on licenses the SF Pro as a font to only be used on Apple devices and apps?
from-nibly|1 year ago
This is why I don't buy support from companies.
owenthejumper|1 year ago
unknown|1 year ago
[deleted]
abcanthur|1 year ago
cchianel|1 year ago
- In OR Tools, you need to write your constraints as mathematical equations. You can only provide your own function in a few scenarios, such as calculating the distance between two points. This allows OR Tools to eliminate symmetries and calculate gradients to improve its solution search. In Timefold, your constraints are treated like a black box, so your constraints can use any function and call any library you like (although you shouldn't do things like IO in them). However, since said constraints are a black box, Timefold is unable to eliminate symmetries or calculate gradients.
- In OR Tools, you have very little control in how it does its search. At most, you can select what algorithm/strategy it uses. In Timefold, you have a ton of control in how it does its search: from what moves its tries to adding your own custom phases. If none are configured, it will use sensible defaults. That being said, certain problems strongly benefit from custom moves.
- In OR Tools, you do not need to create custom classes; you create variables using methods on their domain model classes. In Timefold, you need to define your domain model by creating your own classes. This adds initial complexity, but it makes the code more readable: instead of your variable being an int, it is an Employee or a Visit. That being said, it can be difficult for someone to design an initial model, since it requires an understanding of the problem they are solving.
All in all, when using Timefold, you need to think in a more declarative approach (think Prolog, SQL, etc). For example, let say you have a room assignment problem where a teacher can only teach at a single room at once, and minimize room changes. In Timefold, it may look like this:
Compared to OR Tools:igtztorrero|1 year ago
ripped_britches|1 year ago
ashishknitcs|1 year ago
gala8y|1 year ago
jnsie|1 year ago
Cappor|1 year ago
MaxPock|1 year ago
jarbus|1 year ago
myko|1 year ago
randomcatuser|1 year ago
Blau123|1 year ago
chandumachineni|1 year ago
nwgo|1 year ago
[deleted]
data_ders|1 year ago
Reminds me of NextMv [1] loved their episode on SWE daily. Can anyone compare them to this and how they’re doing?
[1]: https://www.nextmv.io/