Resource Optimization


The knowledge based capabilities of XpertRule® Knowledge Builder provide powerful facilities for complex decision making solutions. But, what if your objective is to find an optimal or a valid solution? Something of a reverse decision process is required to find the combination of variable values that will achieve the best result or best fit. Problems such as planning, design, blending and resource scheduling typically fall into this category.

The Genetic Algorithm Optimizer within Knowledge Builder can be used to determine optimal solutions to problems that have many possible solutions, such as design, resource scheduling and planning, and component blending. You do not have to tell Knowledge Builder how to solve the problem - instead you specify a method of evaluating solutions, define the constraints on resources and Knowledge Builder will evolve the best possible solution according to your criteria.

Several approaches have been used to solve these types of problems, with varying levels of success:

  • Try every possible combination and evaluate the best result. This works fine, but with real life problems the number of combinations is usually so large that this approach is not practical given a reasonable time scale.
  • Use a Knowledge Based System approach to narrow down the solutions worth investigating. While this approach can give reasonable solutions it is often unable to find near optimal solutions, particularly when constraints are defined. If the solution strategy you pick is poor, the results will be poor.
  • Use linear programming techniques. These can work well when optimizing the numeric parameters of a recipe type problem. However, in resource scheduling and planning it becomes very difficult to represent the problem in terms of linear numeric parameters.

Evolving solutions

Knowledge Builder solves optimization by a very different approach - using Genetic Algorithms. These provide an advanced alternative to the approaches listed above.

Evolving Solutions

How Knowledge Builder Optimization works:

  • Randomly generate a limited number of possible solutions. Not all possible solutions, which is impractical, but a starting group - an initial generation.
  • Assess the quality of these random solutions.
  • Crossbreed solutions with more emphasis on better solutions.
  • Randomly alter (mutate) some of the solutions, to introduce variations.
  • Continue the natural selection process until good solutions evolve.


These techniques are inspired by the theory of biogenetics and evolution. Using Genetic Algorithms for optimization:

  • Avoids the need to design a strategy to converge towards a solution. The developer only needs to design a cost or fitness function to evaluate each solution considered by the algorithm. Good solutions evolve by 'natural' selection.
  • Allows the developer to impose constraints (or weighted penalties) for parameters not being satisfied by the solutions. This has the effect of 'killing off' bad solutions.



Hybrid systems

Many complex applications will require both Knowledge Based Systems and Optimization to be used. The Knowledge Based System element can be used to decide on the values to be set for constraints, or to process optimized results further. It can also be advantageous to have the Knowledge Based System 'narrow down the universe' being presented to the optimization process - in other words to plant the seeds for good solutions in the initial generation. The potential of such powerful hybrid systems is unique to Knowledge Builder developers. For example, such hybrid systems allow the optimization engine to call external cost evaluation functions implemented as Dynamic Link Libraries (DLLs).

The paper by Dr Al-Attar, "A Hybrid GA-Heuristic Search Strategy", gives a technical insight into hybrid systems.