From the hub, in category: "AI"

Constraint-based School Timetabling with Prolog

This post is external to PrologHub

Prolog is an excellent choice for modeling combinatorial problems, and it is routinely used in practice to solve scheduling tasks such as school timetabling.

To show this, I have set up a page where you can interactively solve school timetabling instances with Prolog, and I invite you to try a few of the sample instances:

The Prolog source code of the timetabling engine is freely available from:

Complementing the showcase, I have uploaded a short video that explains how it works:


The "many worlds" design pattern

This post is external to PrologHub

The many worlds design pattern is one of the most common patterns in Logtalk and Prolog applications. It allows reasoning about different worlds, where a world can be e.g. a dataset, a knowledge base, a set of examples. While this design pattern can be ...

Facts and Fluents vs Constants and Variables

In Prolog we have facts rather than constants, fluents rather than variables. This post is another terminology breakdown with examples and comparison to features common in other programing languages.

Homoiconic Prolog: Explain yourself!

Prolog is rather popular for Expert Systems. Why? Well because it's homoiconic and because we have DCG's, we can reify a query to make it explain itself. That's a lot of jargon, in this post we'll break it down and make some explanations.

Transitive relations, a deeper dive.

Transitive relations show up a lot in AI code, in this post we look at a couple of ways to code them that depend on what you can assume about your domain and what Prolog you're using.

Reification By Example

Reify: (v) To represent something abstract as a concrete thing.

Reification is a tool in the bag of tricks that can be quite tricky to understand. Rather than waffle on in the abstract, let's take a look at a few examples.

Introduction to CLP(FD) for Resource Management

This post is external to PrologHub

Introduction to using CLP(FD). A guide from scenario description, to mathematical representation, to code, for the kind of problems that are typical in the Operational Research/Management Science domain. We're maximizing profit or minimizing spending given some constraints on resources.