Optaplanner Timefold
An algorithm is a procedure used for solving a problem or performing a computation. Algorithms act as an exact list of instructions that conduct specified actions step by step in either hardware- or software-based routines.
In OptaPlanner we use three type of algorithims which are as follows:-
1:-Exhaustive Search
2:-Construction Heuristics
3:-Metaheuristics
In practice, Metaheuristics (in combination with Construction Heuristics to initialize) are the recommended choice in optaplanner.
Exhastive algorithim used for discrete problems in which no efficient solution method is known ,it might be necessary to test each possibility sequentially inorder to determine if it is the solution. some examples of this algorthim are as:- Brute Force, Branch And Bound etc.
The main disadvantage of this algorithim is that it isslow and computationally expensive, especially for problems with a large search space and need lots of resources to solve the problem .Since thisalgorithms may demand more computational resources and execution time than we have to solve a problem so we useConstruction Heuristics andMetaheuristics in Optaplanner.
A constructive heuristic is a type of heuristic method which starts with an empty solution and repeatedly extends the current solution until a completesolution is obtained. It differs from local search heuristics which start with a complete solution and then try to improve the current solution further via local moves. A construction heuristic builds a pretty good initial solution in a finite length of time. Its solution isn't always feasible, but it finds it fast so metaheuristics can finish the job.
Examples of some problems that are best for Solved using constructive heuristics are as:-
1:-Flow shop scheduling .
2:-vehicle routing problem.
3:-open shop problem.
A metaheuristic algorithm is a search procedure designed to find, a good solution to an optimization problem that is complex and difficult to solve to optimality.Use to Solve the Set of Problems.Problem-independent design: the possibility of using the same metaheuristic algorithm to solve a myriad of problems by just tuning its inputs