Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Ciaran McCreesh is active.

Publication


Featured researches published by Ciaran McCreesh.


Algorithms | 2013

Multi-Threading a State-of-the-Art Maximum Clique Algorithm

Ciaran McCreesh; Patrick Prosser

We present a threaded parallel adaptation of a state-of-the-art maximum clique algorithm for dense, computationally challenging graphs. We show that near-linear speedups are achievable in practice and that superlinear speedups are common. We include results for several previously unsolved benchmark problems.


parallel computing | 2015

The Shape of the Search Tree for the Maximum Clique Problem and the Implications for Parallel Branch and Bound

Ciaran McCreesh; Patrick Prosser

Finding a maximum clique in a given graph is one of the fundamental NP-hard problems. We compare two multicore thread-parallel adaptations of a state-of-the-art branch-and-bound algorithm for the maximum clique problem and provide a novel explanation as to why they are successful. We show that load balance is sometimes a problem but that the interaction of parallel search order and the most likely location of solutions within the search space is often the dominating consideration. We use this explanation to propose a new low-overhead, scalable work-splitting mechanism. Our approach uses explicit early diversity to avoid strong commitment to the weakest heuristic advice and late resplitting for balance. More generally, we argue that, for branch-and-bound, parallel algorithm design should not be performed independently of the underlying sequential algorithm.


learning and intelligent optimization | 2016

Portfolios of Subgraph Isomorphism Algorithms

Lars Kotthoff; Ciaran McCreesh; Christine Solnon

Subgraph isomorphism is a computationally challenging problem with important practical applications, for example in computer vision, biochemistry, and model checking. There are a number of state-of-the-art algorithms for solving the problem, each of which has its own performance characteristics. As with many other hard problems, the single best choice of algorithm overall is rarely the best algorithm on an instance-by-instance. We develop an algorithm selection approach which leverages novel features to characterise subgraph isomorphism problems and dynamically decides which algorithm to use on a per-instance basis. We demonstrate substantial performance improvements on a large set of hard benchmark problems. In addition, we show how algorithm selection models can be leveraged to gain new insights into what affects the performance of an algorithm.


principles and practice of constraint programming | 2015

A parallel, backjumping subgraph isomorphism algorithm using supplemental graphs

Ciaran McCreesh; Patrick Prosser

The subgraph isomorphism problem involves finding a pattern graph inside a target graph. We present a new bit- and thread-parallel constraint-based search algorithm for the problem, and experiment on a wide range of standard benchmark instances to demonstrate its effectiveness. We introduce supplemental graphs, to create implied constraints. We use a new low-overhead, lazy variation of conflict directed backjumping which interacts safely with parallel search, and a counting-based all-different propagator which is better suited for large domains.


principles and practice of constraint programming | 2016

Clique and Constraint Models for Maximum Common (Connected) Subgraph Problems

Ciaran McCreesh; Samba Ndojh Ndiaye; Patrick Prosser; Christine Solnon

The maximum common subgraph problem is to find the largest subgraph common to two given graphs. This problem can be solved either by constraint-based search, or by reduction to the maximum clique problem. We evaluate these two models using modern algorithms, and see that the best choice depends mainly upon whether the graphs have labelled edges. We also study a variant of this problem where the subgraph is required to be connected. We introduce a filtering algorithm for this property and show that it may be combined with a restricted branching technique for the constraint-based approach. We show how to implement a similar branching technique in clique-inspired algorithms. Finally, we experimentally compare approaches for the connected version, and see again that the best choice depends on whether graphs have labels.


principles and practice of constraint programming | 2014

Reducing the Branching in a Branch and Bound Algorithm for the Maximum Clique Problem

Ciaran McCreesh; Patrick Prosser

Finding the largest clique in a given graph is one of the fundamental NP-hard problems. We take a widely used branch and bound algorithm for the maximum clique problem, and discuss an alternative way of understanding the algorithm which closely resembles a constraint model. By using this view, and by taking measurements inside search, we provide a new explanation for the success of the algorithm: one of the intermediate steps, by coincidence, often approximates a “smallest domain first” heuristic. We show that replacing this step with a genuine “smallest domain first” heuristic leads to a reduced branching factor and a smaller search space, but longer runtimes. We then introduce a “domains of size two first” heuristic, which integrates cleanly into the algorithm, and which both reduces the size of the search space and gives a reduction in runtimes.


Journal of Parallel and Distributed Computing | 2018

Replicable Parallel Branch and Bound Search

Blair Archibald; Patrick Maier; Ciaran McCreesh; Robert J. Stewart; Phil Trinder

Abstract Combinatorial branch and bound searches are a common technique for solving global optimisation and decision problems. Their performance often depends on good search order heuristics, refined over decades of algorithms research. Parallel search necessarily deviates from the sequential search order, sometimes dramatically and unpredictably, e.g. by distributing work at random. This can disrupt effective search order heuristics and lead to unexpected and highly variable parallel performance. The variability makes it hard to reason about the parallel performance of combinatorial searches. This paper presents a generic parallel branch and bound skeleton, implemented in Haskell, with replicable parallel performance. The skeleton aims to preserve the search order heuristic by distributing work in an ordered fashion, closely following the sequential search order. We demonstrate the generality of the approach by applying the skeleton to 40 instances of three combinatorial problems: Maximum Clique, 0/1 Knapsack and Travelling Salesperson. The overheads of our Haskell skeleton are reasonable: giving slowdown factors of between 1.9 and 6.2 compared with a class-leading, dedicated, and highly optimised C++ Maximum Clique solver. We demonstrate scaling up to 200 cores of a Beowulf cluster, achieving speedups of 100x for several Maximum Clique instances. We demonstrate low variance of parallel performance across all instances of the three combinatorial problems and at all scales up to 200 cores, with median Relative Standard Deviation (RSD) below 2%. Parallel solvers that do not follow the sequential search order exhibit far higher variance, with median RSD exceeding 85% for Knapsack.


integration of ai and or techniques in constraint programming | 2014

An Exact Branch and Bound Algorithm with Symmetry Breaking for the Maximum Balanced Induced Biclique Problem

Ciaran McCreesh; Patrick Prosser

We show how techniques from state-of-the-art branch and bound algorithms for the maximum clique problem can be adapted to solve the maximum balanced induced biclique problem. We introduce a simple and effective symmetry breaking technique. Finally, we discuss one particular class of graphs where the algorithm’s bound is ineffective, and show how to detect this situation and fall back to a simpler but faster algorithm. Computational results on a series of standard benchmark problems are included.


international joint conference on artificial intelligence | 2017

A Partitioning Algorithm for Maximum Common Subgraph Problems

Ciaran McCreesh; Patrick Prosser; James Trimble

We introduce a new branch and bound algorithm for the maximum common subgraph and maximum common connected subgraph problems which is based around vertex labelling and partitioning. Our method in some ways resembles a traditional constraint programming approach, but uses a novel compact domain store and supporting inference algorithms which dramatically reduce the memory and computation requirements during search, and allow better dual viewpoint ordering heuristics to be calculated cheaply. Experiments show a speedup of more than an order of magnitude over the state of the art, and demonstrate that we can operate on much larger graphs without running out of memory.


robotics science and systems | 2016

Task Variant Allocation in Distributed Robotics

José Cano; David White; Alejandro Bordallo; Ciaran McCreesh; Patrick Prosser; Jeremy Singer; Vijay Nagarajan

This paper tackles the problem of allocating tasks to a distributed heterogeneous robotic system, where tasks---named *task variants* in the paper---can vary in terms of trade-off between resource requirements and quality of service provided. Three different methods (constraint programming, greedy, and metaheuristic) are proposed to solve such a problem and are evaluated both in simulation and in a real scenario, showing the goodness of the constraint programming method.

Collaboration


Dive into the Ciaran McCreesh's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Christine Solnon

Institut national des sciences Appliquées de Lyon

View shared research outputs
Top Co-Authors

Avatar

Ian P. Gent

University of St Andrews

View shared research outputs
Top Co-Authors

Avatar

Lars Kotthoff

University of British Columbia

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge