Markus Triska
Vienna University of Technology
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Markus Triska.
Theory and Practice of Logic Programming - Prolog Systems archive | 2012
Jan Wielemaker; Tom Schrijvers; Markus Triska; Torbjörn Lager
SWI-Prolog is neither a commercial Prolog system nor a purely academic enterprise, but increasingly a community project. The core system has been shaped to its current form while being used as a tool for building research prototypes, primarily for knowledge-intensive and interactive systems. Community contributions have added several interfaces and the constraint (CLP) libraries. Commercial involvement has created the initial garbage collector, added several interfaces and two development tools: PlDoc (a literate programming documentation system) and PlUnit (a unit testing environment). In this article, we present SWI-Prolog as an integrating tool, supporting a wide range of ideas developed in the Prolog community and acting as glue between foreign resources. This article itself is the glue between technical articles on SWI-Prolog, providing context and experience in applying them over a longer period.
international symposium on functional and logic programming | 2012
Markus Triska
We present a new constraint solver over finite domains, freely available as library(clpfd) in SWI-Prolog. Our solver has several unique features, which we describe in this paper: Reasoning over arbitrarily large integers, always terminating propagation, and a domain-specific language that concisely expresses the full semantics of constraint reification. The library is entirely written in Prolog and can be easily ported to other Prolog systems that support attributed variables. The constraint solver is fast enough for teaching and research purposes and is already being used in courses at several universities in France, Germany, Italy, Austria and other countries.
principles and practice of declarative programming | 2012
Tom Schrijvers; Markus Triska; Bart Demoen
Horn Clause Programs have a natural depth-first procedural semantics. However, for many programs this procedural semantics is ineffective. In order to compute useful solutions, one needs the ability to modify the search method that explores the alternative execution branches. Tor, a well-defined hook into Prolog disjunction, provides this ability. It is light-weight thanks to its library approach and efficient because it is based on program transformation. Tor is general enough to mimic search-modifying predicates like ECLiPSes search/6. Moreover, Tor supports modular composition of search methods and other hooks. Our library is already provided and used as an add-on to SWI-Prolog.
international conference on logic programming | 2008
Markus Triska
Finite domain constraint solvers are typically applied to problems with only quite small values. This is the case in many tasks for which constraint-based approaches are well suited. A well-known benchmark library for constraints, CSPLib ([1]), consists almost exclusively of such examples. On the other hand, the need for arbitrary precision integer arithmetic is widely recognised, and many common Prolog systems provide transparent built-in support for arbitrarily large integers.
international symposium on functional and logic programming | 2016
Markus Triska
We present a new constraint solver over Boolean variables, available as library(clpb) (documentation: http://eu.swi-prolog.org/man/clpb.html) in SWI-Prolog. Our solver distinguishes itself from other available CLP(\(\mathcal {B}\)) solvers by several unique features: First, it is written entirely in Prolog and is hence portable to different Prolog implementations. Second, it is the first freely available BDD-based CLP(\(\mathcal {B}\)) solver. Third, we show that new interface predicates allow us to solve new types of problems with CLP(\(\mathcal {B}\)) constraints. We also use our implementation experience to contrast features and state necessary requirements of attributed variable interfaces to optimally support CLP(\(\mathcal {B}\)) constraints in different Prolog systems. Finally, we also present some performance results and comparisons with SICStus Prolog.
Science of Computer Programming | 2014
Tom Schrijvers; Bart Demoen; Markus Triska; Benoit Desouter
Horn Clause Programs have a natural exhaustive depth-first procedural semantics. However, for many programs this semantics is ineffective. In order to compute useful solutions, one needs the ability to modify the search method that explores the alternative execution branches. Tor, a well-defined hook into Prolog disjunction, provides this ability. It is light-weight thanks to its library approach. Tor supports modular composition of search methods and other hooks. The Tor library is already provided and used as an add-on to SWI-Prolog.
Archive | 2011
Markus Triska; Nysret Musliu
We describe CP-Rota, a new constraint programming application for rotating workforce scheduling that is currently being developed at our institute to solve real-life problems from industry. It is intended to complement FCS, a previously developed application. The advantages of CP-Rota over FCS are a significantly smaller and more maintainable code base, portability across a range of different language implementations and a more declarative approach that makes extensions easier and mistakes less likely. Our benchmarks show that CP-Rota is already competitive with FCS and even outperforms it on several hard real-life instances from the literature.
Science of Computer Programming | 2018
Markus Triska
Abstract We present a new constraint solver over Boolean variables, freely available as library(clpb) 1 in SWI-Prolog. In this paper, we explain the core algorithms and implementation trade-offs of our system. Our solver distinguishes itself from other available CLP( B ) solvers by several unique features: First, it is written entirely in Prolog and is hence portable to other systems that provide a few interface predicates that we outline. Second, our system provides new interface predicates, and we show that they allow us to solve new types of problems with CLP( B ) constraints. Finally, we present performance results and comparisons with the native CLP( B ) solver of SICStus Prolog, and also with a new SICStus port of our system. Despite being written entirely in Prolog, both versions of our system can solve several benchmark instances that the native CLP( B ) solver of SICStus Prolog cannot solve.
Annals of Operations Research | 2012
Markus Triska; Nysret Musliu
The Social Golfer Problem (SGP) is a combinatorial optimization problem that exhibits a lot of symmetry and has recently attracted significant attention. In this paper, we present a new greedy heuristic for the SGP, based on the intuitive concept of freedom among players. We use this heuristic in a complete backtracking search, and match the best current results of constraint solvers for several SGP instances with a much simpler method. We then use the main idea of the heuristic to construct initial configurations for a metaheuristic approach, and show that this significantly improves results obtained by local search alone. In particular, our method is the first metaheuristic technique that can solve the original problem instance optimally. We show that our approach is also highly competitive with other metaheuristic and constraint-based methods on many other benchmark instances from the literature.
international conference on parallel processing | 2006
Stefan Kral; Markus Triska; Christoph W. Ueberhuber
Standard compilers are incapable of fully harnessing the enormous performance potential of Blue Gene systems. To reach the leading position in the Top500 supercomputing list, IBM had to put considerable effort into coding and tuning a limited range of low-level numerical kernel routines by hand. In this paper the Vienna MAP compiler is presented, which particularly targets signal transform codes ubiquitous in compute-intensive scientific applications. Compiling Fftw code, MAP reaches as much as 80% of the optimum performance of Blue Gene systems. In an application code MAP enabled a sustained performance of 60 Tflop/s to be reached on BlueGene/L.