Chapter 1. Introduction

Table of Contents
Introduction to modules
Brief theoretical background on fitness functions

Introduction to modules

As of version 0.0.4 Tablix supports loadable modules that include timetable fitness functions. The fitness module interface changed considerably with the kernel rewrite during 0.2.x branch.

There are two distinct types of modules: Fitness modules contain partial fitness functions and provide handlers for various restrictions. They are loaded by the kernel as specified in the XML configuration file. Fitness functions are then used by the genetic algorithm to select best timetables out of a large search space. Export modules on the other hand are loaded by the tablix2_output utility and contain functions that translate data from the internal kernel structures to a file in a certain format. For example: HTML export module, comma separated value format export module. This document describes fitness modules although many things also apply to the export modules. Export modules specifics are detailed in the second part of this HOW-TO

I recommend reading the Tablix User's Manual and the Tablix Timetabling Model formal description before attempting to write your own module. Also while reading this text you should keep a browser window nearby with the Tablix kernel API reference manual loaded. Some important structures are also described in the text, but mostly only references to the reference manual will be given.

Note: All example XML configuration files and module source code can be found in the examples/modules/ subdirectory in the Tablix source tree.