All other

Maven BOM’s (Bill of Materials)

    Blog post image      

Starting from version 6.0.0.CR2, we ‘ll release BOM (Bill of Materials) files: org.drools:drools-bom org.jbpm:jbpm-bom org.optaplanner:optaplanner-bom A BOM file makes it easier to use Drools, jBPM or OptaPlanner in your maven project, because you need to specify the <version> only once:   <dependencyManagement>     <dependencies>       <dependency>         <groupId>org.drools</groupId>         <artifactId>drools-bom</artifactId>         <type>pom</type>         <version>6.0.0.CR2</version>         <scope>import</scope>       </dependency>       ...     </dependencies>   </dependencyManagement>   <dependencies>     <dependency>       <groupId>org.kie</groupId>Read more →

False assumptions for the Vehicle Routing Problem

    Blog post image      

Many companies are faced with the vehicle routing problem, when they need to: Deliver/pick up items at multiple locations Or execute repairs/maintenance at multiple locations These companies want to minimize their fuel and time usage, to reduce their costs and ecological footprint. Sounds easy, right? Just take the shortest route. Unfortunately it’s not that simple…Read more →

Shadow variables, PlanningVariableListener and bi-directional variables

    Blog post image      

Most types of custom constraints are relatively straightforward to implement in OptaPlanner. There was one notorious exception: time windows for vehicle routing. But OptaPlanner 6.0.0.Beta4 supports shadow variables, which make that a lot easier to implement. A shadow variable is a variables who’s correct value can be deduced from the state of the genuine planningRead more →

Stress testing the Phreak algorithm

    Blog post image      

Some time ago, Mark blogged about his new rule engine algorithm. This new algorithm, an alternative to RETE, has been named Phreak. It’s a drop-in replacement deep inside Drools, so from a user’s perspective, nothing changes in your Drools related code. Such a new algorithm is a big change, so regression testing is critical. LuckilyRead more →

Score DRL: faster and easier in OptaPlanner

    Blog post image      

For OptaPlanner (= Drools Planner) 6.0.0.Beta1, I ‘ve replaced the ConstraintOccurrence with the much more elegant ConstraintMatch system. The result is that your score DRL files are: much faster easier to read and write far less error-prone, because they make it a lot harder to cause score corruption Let’s look at the results first, beforeRead more →

Drools Planner renames to OptaPlanner: Announcing www.optaplanner.org

    Blog post image      

We’re proud to announce the rename Drools Planner to OptaPlanner starting with version 6.0.0.Beta1. We’re also happy to unveil its new website: www.optaplanner.org. OptaPlanner optimizes business resource usage. Every organization faces planning problems: provide products or services with a limited set of constrained resources (employees, assets, time and money). OptaPlanner optimizes such planning to doRead more →

Automatic solution cloning in Planner

    Blog post image      

For Planner 6.0.0.Beta1, implementing the Solution’s planning clone method is now optional. This means there’s less boilerplate code to write. Also, because the planning clone method notoriously hard to write from scratch (most people just copy pasted the examples to avoid mistakes), it’s now easier to get started with Planner too. The out-of-the-box SolutionCloner worksRead more →

Scaling construction heuristics part 1: multiple variables

    Blog post image      

For Drools Planner 6.0, I am working on highly scalable construction heuristics. Furthermore, they ‘ll be far more flexible and optionally configurable. This post focuses on how multiple planning variables affect scalability. In the curriculum course use case, the planning entity Lecture has a planning variable Period and a planning variable Room. That makes 2Read more →