Generate EXEs solving MILPs using PyInstaller in Python

When developing software prototypes to optimize linear problems, it is sometimes desirable to provide the customer with an app to avoid the need for them to install a full python environment with all dependencies. In python, there is a tool called PyInstaller for this purpose. However, there are a few hurdles that need to be… Read more Generate EXEs solving MILPs using PyInstaller in Python

How to Develop a Sudoku Solver Using Mixed Integer Linear Programming

In today’s blog post, let’s dive into the fascinating realm of solving Sudoku puzzles using Mixed Integer Linear Programming (MILP). Check this previous post to see how a sudoku solver can be developed in python using dynamic programming and backtracking. Sudoku, a classic logic-based number placement puzzle, has long captivated minds around the globe with… Read more How to Develop a Sudoku Solver Using Mixed Integer Linear Programming

The use of Construction Heuristics

In this post, we’ll develop a construction heuristic to build reasonable (start) solutions for the knapsack problem. Why use Construction Heuristics? Construction heuristics offer the advantage of quickly leading to acceptable solutions. Unlike more complex optimization algorithms, they are easy to implement and require less computational power. These heuristics are particularly well-suited for handling large… Read more The use of Construction Heuristics

A Metaheuristic Approach to Solving The Knapsack Problem

In the world of Operations Research and Optimization, solving complex problems efficiently is a constant pursuit. One such problem that has intrigued researchers and practitioners alike is the Knapsack Problem. In this blog post, we’ll delve into the fascinating realm of metaheuristics and guide you through the step-by-step process of applying these technique to tackle… Read more A Metaheuristic Approach to Solving The Knapsack Problem

Performance Boost in Python: Empowering Your Scripts with Numba’s JIT Compiler

In the dynamic world of Python scripting, efficiency is key. Today, let’s delve into the transformative realm of parallelization using Numba’s JIT (Just-In-Time) compiler. Brace yourselves as we explore how this powerful tool not only compiles your code on the fly but also paves the way for parallel execution. Join us on a journey to harness the full potential of your Python scripts through the magic of Numba’s parallelization capabilities.

Vertex Coloring using ILP

In this post I’ll show you how to solve the vertex coloring problem to optimality using linear programming. Since the problem is NP-complete, there is no algorithm which can solve any problem instance in deterministic polynomial time. In a former post, I used constraint programming to find an optimal (minimal) vertex coloring. A popular greedy… Read more Vertex Coloring using ILP

micro:bit plays Bach

I dedicate this post to one of my favorite composers, Johann Sebastian Bach. I was walking through Paris years ago when I approached a cathedral where someone had played this piece. It is the fugue of the Bach Toccata, BWV 565. At first, I thought that a virtuos organist must be at work here. Only… Read more micro:bit plays Bach

The Tennis Court Problem (TCP)

I owe this task to Ruedi, a regular tennis player. The Tennis Court Problem (TCP) is about the following task. At the beginning of outdoor tennis, the court lines must always be cleaned first. The sweeping set is often placed in one of two typical locations, usually either on one side of the net or… Read more The Tennis Court Problem (TCP)

Solving Happy Cubes® on A micro:bit

In this post I’ll demonstrate the results of my most recent fun project on the micro:bit: An app to solve Happy Cubes®, a set of puzzles created in 1986 by the Belgian toy inventor Dirk Laureyssens. My kids were playing with these cubes and I was wondering, if the micro:bit could solve these cubes in… Read more Solving Happy Cubes® on A micro:bit