Characteristics

A powerful and adaptable engine for local search optimization

Why local search ?

Local search is a versatile and scalable optimization technique for operations research problems. For instance, it is well suited for optimization problems with a large search space such as routing optimization problems.

It can also easily incorporate dedicated algorithms such as graph or computational geometry.

Local search also encompasses metaheuristics such as tabu search, restart, simulated annealing, destroy & rebuild, generalized local search, ejection chains, VLSN, etc.

Why OscaR.cbls ?

Developing a local search solution is often expensive because:

  • Developing efficient constraint is complex as it relies on incremental constraint evaluation.
  • A dedicated search procedure must be crafted and then implemented, and it must take into account the structure of the problem.

OscaR.cbls is about reducing these costs.

OscaR.cbls is a smart tool for optimization engineers. It is packaged as an open source software library (LGPL). Programming in Scala or Java is required to implement a solution using the OscaR.cbls library. A few examples are provided with the library.

General philosophy of OscaR.cbls

OscaR.cbls relies on the following general philosophy:

  • Focus on computational complexity and provide well-though API to achieve good overall computational complexity whatever will be the application.
  • Offer maximal support both for modeling and solving. Programming in Scala or Java is required to use OscaR.cbls.
  • OscaR.cbls aims at focusing brain time of optimization engineers. Thanks to OscaR.cbls, an optimization engineers must only stay focused on:
    • Conceiving proper model to express business needs and constraints at a high level without wasting time in its detailed implementation.
    • Designing and rapidly exploring search procedures to find the best suited to the problem at hand and its specific constraints.

Main features of OscaR.cbls

OscaR.cbls provides advanced support for both modeling and searching:

  • Constraint-based modeling
    • Incorporates very efficient algorithms to evaluate solutions based on incremental evaluation, pre-computations, caches, etc.
  • Combinator-based searching
    • A local search procedure must be designed for each use case, so we made it easy to define any local search procedure and metaheuristics by assembling it from a library of standard elements.

Origin of OscaR.cbls

OscaR.cbls was sparked in 2011 and enriched throughout research and industrial projects. The overall objective was to properly package the relevant research results from academia into a clean and well-architectured solver. It evolved over years and various aspects were added including:

  • Search combinators
  • Routing optimization based on sequences
  • Mechanisms for developing new global constraints based on transition functions
  • Distributed search
  • Profiling information

In 2024, we started a deep rewriting of OscaR.cbls because it has been developed as a research prototype and various modules were relying on obsolete technologies. In early 2025, we presented the first release-brade version of OscaR.cbls. It notably features a reference API that has been engineered to be stable against future evolution of OscaR.cbls.

Routing optimization

Local search excels in routing optimization. OscaR.cbls features a specific module for routing optimization. OscaR.cbls notably features specific data-structures and global constraints for routing, with specific neighborhoods 1-opt, 2-opt, 3-opt, VLSN, etc.

As usual in OscaR.cbls, it was specifically designed to accommodate additional constraints and (meta-)heuristics.

What's next ?

OscaR.cbls has a legacy of code from 2011. We are currently refactoring this whole codebase. In the coming month, we will publish more releases of OscaR.cbls with incredible features including:

  • Incorporating more features from our legacy version including
    • Global constraints (100+)
    • Neighborhood combinators (simulated annealing, ejection chains, late acceptance, VLSN)
  • Multi-threading and multi-node optimization

OscaR.cbls features a user API. This API will be backwards compatible, so switching to upcoming versions of OscaR.cbls will be straightforward

Stay tuned on Github !

Features

What makes Oscar.Cbls better

Relevance of OscaR.cbls to business and the importance of adaptability

Local search is most of the time a goto-method because it offers good scalability and quality for not overly constrained problems, especially for routing optimization problems and similar.

However, optimization engines, and especially local search engines must be adaptable in order to propose an adequate solution.

This notion of adaptability has been the core drive behind every technical choices made when designing OscaR.cbls.

Adaptability of the model

The model must accurately represent the notions of the problem and this representation should be efficient to be efficiently searchable by the engine.

  • All frameworks offer modeling primitives; OscaR.cbls comes with a constraint-based language from which we can easily assemble a complete model of the problem at hand.
  • Many times, industrial problems come with “dirty” aspects that do not fit in the available constraints. To cope with this, OscaR.cbls is also easily extendable, one can easily declare a new constraint, even an efficient global constraint for routing in a few hours. A typical illustration is a tardiness constraint with an early line that was developed in two days, with a complexity of O(log n) on all classical neighborhoods (1-opt, 2-opt, 3-opt).

Adaptability of the search procedure

There is a well-known “No Free Lunch Theorem” that roughly states that there is no efficient generic approach for optimization problems.

We therefore we need to tailor metaheuristics to problem-specific characteristics [Sörensen ORBEL 2025]

To this end, OscaR.cbls offers a combinator-based approach to assemble a search procedure from standardized neighborhoods, metaheuristics, stop criterion and other relevant aspects that are typically needed in local search.

Key takeaways...

OscaR.cbls is a very relevant local search optimization framework for business use thanks to :

  • Its deeply implemented adaptability
  • A business-friendly licence (LGPL)
  • An easy-to-integrate language (Scala, that compiles to regular Java ByteCode)

Use cases

F.A.Q.

How can we help you?

Here are some of the questions we receive the most. If you don't see what you think, contact us at any time by phone or e-mail.

OscaR.cbls has been developed as a technology transfer medium between research and industry. It makes it possible to develop local search-based optimization solutions and incorporate custom algorithms as needed. We notably write customer-specific constraints with incremental graph algorithms and incremental computational geometry algorithms.

  • LGPLV2 or above
  • It’s an open source type of license, which is not contaminating your application code. However, extensions and bug fixes are to be contributed back to the community through a pull request on the repository; we’d be glad to help.

C programming language would provide a speedup indeed. However the cost of development, usage and maintenance would be much higher. We prefer to devote our effort and yours in finding the most efficient algorithms and metaheuristics since we can achieve way more speed improvements by lowering the complexity than by switching from Scala to C.

OscaR.cbls has been our workhorse since 2011; we will exist in the coming years.

We would love to collaborate with you! Please contact us at renaud.delandtsheer@cetic.be

Contact us

Would you like to discover all the benefits that this tool will bring to your company?