Home Page of Markus Triska

Find your way. From darkness...     
to light.
Knight of Cups


E-mail: triska@gmx.at


Peer-reviewed articles

Tor: Extensible Search with Hookable Disjunction (pdf)
Tom Schrijvers, Markus Triska, Bart Demoen
PPDP 2012, ACM 2012, pp. 103-114
The Finite Domain Constraint Solver of SWI-Prolog (pdf)
Markus Triska
FLOPS 2012, LNCS 7294, pp. 307-316
An Effective Greedy Heuristic for the Social Golfer Problem (pdf)
Markus Triska and Nysret Musliu
Annals of Operations Research Vol. 194(1) (2012), pp. 413-425
An Improved SAT Formulation for the Social Golfer Problem (pdf)
Markus Triska and Nysret Musliu
Annals of Operations Research Vol. 194(1) (2012), pp. 427-438
SWI-Prolog (pdf)
Jan Wielemaker, Tom Schrijvers, Markus Triska, Torbjörn Lager
TPLP 12 (2012), pp. 67-96
A Constraint Programming Application for Rotating Workforce Scheduling (pdf)
Markus Triska and Nysret Musliu
IEA/AIE 2011, Studies in Computational Intelligence 363 (2011), pp. 83-88
Better Termination for Prolog with Constraints
Markus Triska, Ulrich Neumerkel, Jan Wielemaker
WLPE 2008
Constraint solving for high-level WCET analysis
Adrian Prantl, Jens Knoop, Markus Schordan, Markus Triska
WLPE 2008
A Generalised Finite Domain Constraint Solver for SWI-Prolog
Markus Triska, Ulrich Neumerkel, Jan Wielemaker
WLP 2008
Declarative language extensions for Prolog courses
Ulrich Neumerkel, Markus Triska, and Jan Wielemaker
FDPE 2008
Compiler Technology for Blue Gene Systems
Stefan Kral, Markus Triska and Christoph W. Ueberhuber
Euro-Par 2006, LNCS 4128, pp. 279-288


Solution Methods for the Social Golfer Problem (pdf)
Masters thesis, under the supervision of Priv.-Doz. Dr. Nysret Musliu
Accepted in April 2008, Technische Universität Wien
Correctness Considerations in CLP(FD) Systems (pdf)
Doctoral thesis, under the supervision of Priv.-Doz. Dr. Nysret Musliu
Accepted in January 2014, Technische Universität Wien


Acomip "A Couple of Meta-interpreters in Prolog", collection of meta-interpreters and tutorial.
Alana A Turing machine simulator with many examples (unary and binary addition, subtraction, multiplication, a 5-state busy beaver, 2 string parsing examples, divisibility test, primality test) and a theoretical introduction to Turing machines. A more formal document about this is here.
Alzint Interpreter for AL(Z) (assignment language over integers), a simple Turing-complete programming language. Supports tracing and reverse execution. Written in Prolog.
Blinkory Memory game involving a sequence of blinking disks.
cdvdmacs Create data CDs and DVDs from within Emacs.
CGIForum Light-weight discussion board with expandable/collapsible threads, name registration, multiple sections, previewing, searching, and marking of new entries. Written in Perl.
clpb Constraint solver over Boolean variables that ships with SWI-Prolog. A show-case is here.
clpfd Finite domain constraint solver that ships with SWI-Prolog. Using a slightly modified version of a program by Mats Carlsson, you can for example solve instances of the social golfer problem with SWI-Prolog. An example with 8 games a week in groups of 4 (32 players in total) playing for 9 weeks is here. A short CLP(FD) primer is here.
compnumerik.pdf Short paper about numerical issues involved in approximating exponential and cosine functions using Taylor series. German.
Conn4 Connect 4 (four in a row, plot four) game that plays against itself. Prolog.
Contests Material from programming contests.
DCG Short introduction to Prolog definite clause grammars (DCGs).
ediprolog Emacs does Interactive Prolog. Elisp definitions to interact with SWI Prolog in arbitrary Emacs buffers.
etrace Graphical Prolog Tracer in Emacs.
Finomaton Finomaton lets you draw finite state machines (automata) and similar graphs. It outputs MetaPost code that can be transformed to PostScript and used in TeX and LaTeX documents. Written in Tcl/Tk.
fourier.pdf Short paper about Fourier series with some common example expansions. German.
Freud Standalone C++ port of the Emacs Psychiatrist, simulating a Rogerian analyst using phrase-production techniques similar to the classic ELIZA demonstration of pseudo-AI.
galeshapley.pl Gale-Shapley algorithm to find a stable matching/marriage, implemented in Prolog. A Prolog program that finds all stable matchings by exhaustive search is here: allstable.pl
goco.tcl "GO considered", minimalistic front-end for GNU Go. Written in Tcl/Tk (screenshot).
Greenpoint "Der grüne Punkt" in METAFONT.
Hoarescope Hoarescope helps to prove partial correctness assertions of AL programs over natural numbers using Hoare logic (Hoare calculus). The resulting proof tree is exported to LaTeX. If the remaining formulas are of Presburger arithmetic, you can use Presprover (see below) to see whether they are valid. A more formal paper about this is here.
imimacs Instant messaging in Emacs. Very simple IM system.
Jind An interactive interpreter for a toy programming language. You are to formulate how to get out of a rather general maze. Written in Java.
jugs.maude A water jugs puzzle expressed as a term rewriting system in Maude. A transcript of an example session is here.
knight Closed knight's tours on an NxN chessboard, written in Prolog. Example application of the circuit/1 constraint, describing a Hamiltonian circuit.
knighttour.lisp Finds a knight's tour on an 8x8 chessboard using first-fail heuristics (always choose the position which is reachable from the fewest other positions). Written in Lisp.
linum Emacs definitions for displaying line numbers to the left of buffers.
Lisprolog Interpreter and parser for a simple Lisp, written in Prolog.
Logic Logic stuff.
magon 3 ways to compute all magic hexagons of order 3.
markov.pl Markov chain demonstration, written in Prolog. Train a Markov chain of arbitrary order and use it for text generation.
misc Miscellaneous programs and code snippets, prototypes, work in progress etc.
N-queens N-queens constraint solving visualisation, written in Prolog.
openwith.el openwith.el lets you associate external applications with files, so that you can open them from within Emacs via C-x C-f, with RET in dired, etc.
PceProlog Emacs major mode for Prolog development, tailored for SWI Prolog.
pointback Emacs definitions for restoring previous window points when switching buffers.
Presprover Presprover can determine validity and/or satisfiability of all formulas of Presburger arithmetic. Written in Prolog.
prost Prolog streams (sequences, delayed/lazy/infinite lists) demonstration.
Puzpan Puzzle game involving a panel of squares.
quine.pl A Prolog quine, bootstrapped from this file. Prolog is fully reflexive, allowing for a more concise quine: quinerefl.pl.
RITS Rule-based Intelligent Tutoring System. Implements a domain-specific language for guiding students through solving tasks. Written in Prolog.
scc.pl Prolog library for computing the strongly connected components of a graph using Tarjan's algorithm.
simplex Prolog library for solving linear programming problems. Implements the simplex algorithm, and contains a streamlined version for solving transportation and assignment problems. Also contains a simplistic branch-and-bound implementation to solve mixed integer problems. A show-case is here.
Simsttab A timetabling engine for schools. Written in Prolog.
Spakes Snakes-Clone for up to 4 players that can be played across the Internet. Optionally, AI players (computer controlled) can join the game. Written in C++.
Sudoku Sudoku constraint solving visualisation, written in Prolog.
Swap File transfer program with resume-capability. Written in Tcl/Tk.
Tickletankle A 2-player game with fractal terrain that can be played locally or across the Internet or a LAN. You can play against a human player or a computer-controlled opponent (AI player). Written in Tcl/Tk.
Tist "Thinking in States"; various show-cases (puzzle, interpreter, compiler, virtual machine), realized using declarative approaches. Examples in Prolog, Haskell and J.
trs.pl Virtually verbatim Prolog translation of much of the ML code included in Term Rewriting and All That by Baader and Nipkow.
UnicAPL Enter and typeset APL/A+ in Emacs and LaTeX using Unicode.
Wisemen Demonstrates agent reasoning using constraint handling rules (CHR). See source file for documentation.
worldcup.R Statistical simulation of FIFA World Cup.
Wumpus World An AI-classic. Contains a framework to test your own agents and a simple example agent. Written in Prolog.
Zurg A Prolog solution to a search problem called "Escape from Zurg".

A joke.

A music tip.

About you