Skip to content

Counting linear extensions

Vissarion Fisikopoulos edited this page Mar 22, 2021 · 10 revisions

Background

The problem of counting the linear extensions of a given partial order consists in finding (counting) all the possible ways that we can extend the partial order to a total order that preserves the original partial order. It is an important problems with various applications in Artificial Intelligence and Machine Learning such, like for example in partial order plans [1] and in learning graphical model [2]. It is a well known #P-complete problem; the fastest known algorithms are based on dynamic programming and require exponential time and space [4, 5]. Nevertheless, if we only need an approximate counting attained with a probability of success, then the problem admits a polynomial-time solution for all posets using Markov chain Monte Carlo (MCMC) methods. During this project the student will implement new randomized methods to approximate the number of linear extensions based on volume approximation.

Related work

There are several MCMC schemes that have been proposed [3, 6]. The latter improvements were based on rapidly mixing Markov chains in the set of linear extensions [7]. In practice, approximate counting is feasible on partially order sets up to a few hundred elements in a few hours [6]. It is well known [8] that we can represent a partial order with a convex polyhedron, namely order polytope. Furthermore, the number of linear extensions is equal to the volume of the order polytope. However, there is no algorithm that counts linear extensions through volume calculations of order polytopes. However, there are a few practical algorithms for estimating the volume of a convex polytope; volesti povides the most efficient implementations.

Details of your coding project

The goal of the project is to implement new approximation algorithms for counting linear extensions through volume approximation and an extensive empirical comparison included existing approximation methods. The aim is to exploit the structure of order polytopes to improve the existing implementations for approximate counting and to develop new efficient software implementations, based on volesti C++ library. In particular, the student will (a) implement a python and an R function to construct the order polytope given a partial ordered set, (b) write a new C++ class for the order polytope with optimized membership and boundary oracles, (c) optimize Billiard walk, Hit and Run and exact Hamiltonian Monte Carlo for the spherical Gaussian distribution, (d) will integrate the new optimized implementations into existing implementations of volume estimation algorithms and (e) perform extended empirical comparison of all approximation counting methods.

Expected impact

The impact of this project will be undoubted important in several applications in Artificial Intelligence and Machine Learning.

[1] Muise, C. and Beck, J. and McIlraith, S., Optimal Partial-Order Plan Relaxation via MaxSAT, Journal of Artificial Intelligence Research, 2016

[2] T. Niinimaki and P. Parviainen and M. Koivisto, Structure Discovery in Bayesian Networks by Sampling Partial Orders, Journal of Machine Learning Research, 2016

[3] Brightwell, G. and Winkler, P., Counting linear extensions, Order, 1991

[4] De Loof, K.; De Meyer, H.; and De Baets, B., Exploiting the lattice of ideals representation of a poset, Fundamenta Informaticae, 2006

[5] Kangas, K.; Hankala, T.; Niinimaki, T.; and Koivisto, M., Counting linear extensions of sparse posets, In Proceedings of the 25th International Joint Conference on Artificial Intelligence, 2016

[6] T. Talvitie and K. Kangas and T. Niinimaki and M. Koivisto, Counting Linear Extensions in Practice : MCMC versus Exponential Monte Carlo, Thirty-Second AAAI Conference on Artificial Intelligence, 2018

[7] Karzanov, A., and Khachiyan, L., 1. On the conductance of order Markov chains, Order, 1991

[8] Stanley, Richard P., Two Poset Polytopes, Discrete & Computational Geometry, 1986

[9] Matias von Bell, Benjamin Braun, Derek Hanely, Khrystyna Serhiyenko, Julianne Vega, Andrés R. Vindas-Meléndez, Martha Yip, Triangulations, order polytopes, and generalized snake posets, preprint, 2021.

Mentors

  • Vissarion Fisikopoulos <vissarion.fisikopoulos at gmail.com> is an international expert in mathematical software, computational geometry and optimization, and has previous GSOC mentoring experience with Boost C++ libraries (2016-2020) and the R-project (2017-2019).

  • Elias Tsigaridas <elias.tsigaridas at inria.fr> is an expert in computational nonlinear algebra and geometry with experience in mathematical software. He has contributed to the implementation, in C and C++, of several solving algorithms for various open source computer algebra libraries and has previous GSOC mentoring experience with the R-project (2019) and Geomscale (2020).

  • Matias Bender holds a PhD on algebraic algorithms and he is an expert computational algebra.

Tests

  • Easy: Download, compile and run a simple volume estimation example with both C++ and R interfaces of volesti.
  • Medium: Implement a C++ random generator of order polytopes.
  • Hard: Write in your proposal how the implementation of Hit and Run can be optimized for an order polytope.