A Declarative Distributed Constraint Optimization Platform

Introduction to Cologne

Cologne is a declarative optimization platform that enables constraint optimization problems (COPs) to be declaratively specified and incrementally executed in distributed systems. Cologne integrates the RapidNet declarative networking engine with the Gecode constraint solver. Cologne uses the Colog declarative language that combines distributed Datalog used in declarative networking with language constructs for concisely specifying goals and constraints used in COPs. We believe Cologne platform has tremendous practical value in facilitating extensible distributed systems optimizations:

  • Cologne can flexibly support a wide range of policy-based optimizations in distributed systems (e.g., cloud computing and wireless networking).
  • Cologne results in orders of magnitude (about 100X) less code compared to imperative implementations.
  • Cologne is highly efficient with low overhead and fast convergence times.

Cologne system overview


Changbin Liu (University of Pennsylvania)
Yang Li (University of Pennsylvania)
Tanveer Gill (University of Pennsylvania)


Boon Thau Loo (University of Pennsylvania)

External collaborators

Yun Mao (AT&T Labs Research)
Prithwish Basu (Raytheon BBN Technologies)

Past collaborators

Lu Ren (Bank of America)
Harjot Gill (University of Pennsylvania)
Xiaozhou Li (Princeton University)
Richardo Correa (Lockheed Martin)
Shiv Muthukumar (Amazon)
Taher Saeed (DramaFever)
Mihai Oprea
Yash Saini (Amazon)
Aditi Jain


OS Support

Contact us via email to get a copy of the current release (2012). The current release has been fully tested on Ubuntu 10.04 32-bit. Support for Ubuntu 12.04 64-bit has been planned. If any bugs or problems, please contact us.


To compile Cologne, please first install the following pre-requisites:

  • GCC/G++
  • Flex and Bison
  • OpenSSL library
  • The GNU MP Bignum Library
  • Boost Library

You can install them using one command in Ubuntu:

sudo apt-get install build-essential flex bison libssl-dev libgmp3-dev libboost-all-dev

You also need Gecode constraint solving library. To install Gecode, you need to download Gecode version 3.7.1, untar it and run:

./sudo make install

(Note: if you have already installed an older version of Gecode, e.g., the default one provided by Ubuntu repository, please uninstall it before installing the newer one.)


If you see “build finished succesfully”, congratulations! You are ready to go.

Usage examples

There are a bunch of test cases in the folder examples/. For quick compiling, initially all those test cases are commented out. Here is one example showing how to run the use case Tcloud.

First, Enter the Cologne foler. edit src/wscript, find the ine ‘application/tcloud’ and uncomment it. (Note: since this is Python code, redundent spaces or tabs may cause compilation error, be careful.)

Second, edit examples/wscript, find the two lines contains ‘tcloud-test’, obj = bld.create_ns3_program(‘tcloud-test’) obj.source = ‘tcloud-test.cc’, and uncomment them.

Finally, edit examples/rapidnet-applications.h, find all lines containing ‘tcloud’ or ‘TCLOUD’, and uncomment them.

Now you are ready to run the Tcloud application. To execute a Cologne application:

./waf --run "examples/<application-name> <input-file-name>"

In this case, tcloud-test can run without input:

./waf --run examples/tcloud-test

A successful execution will return information including runtime, number of solutions found, goal value of the found solution.


Cologne: A Declarative Distributed Constraint Optimization Platform. (PDF)
Changbin Liu, Lu Ren, Boon Thau Loo, Yun Mao, and Prithwish Basu.
38th International Conference on Very Large Databases (VLDB’12).

PUMA: Policy-based Unified Multi-radio Architecture for Agile Mesh Networking. (PDF) (Demo)
Changbin Liu, Ricardo Correa, Harjot Gill, Tanveer Gill, Xiaozhou Li, Shivkumar Muthukumar, Taher Saeed, Boon Thau Loo, Prithwish Basu
4th International Conference on Communication Systems and Networks (COMSNETS), Jan, 2012.

Declarative Automated Cloud Resource Orchestration. (PDF)
Changbin Liu, Boon Thau Loo, and Yun Mao.
ACM Symposium on Cloud Computing (SOCC), Cascais, Portugal, Oct 2011.

Declarative Policy-based Adaptive Mobile Ad Hoc Networking. (PDF)
Changbin Liu, Richardo Correa, Xiaozhou Li, Prithwish Basu, Boon Thau Loo, and Yun Mao.
ACM/IEEE Transactions on Networking (TON), 2011.

Declarative Policy-based Adaptive MANET Routing. (PDF)
Changbin Liu, Rick Correa, Xiaozhou Li, Prithwish Basu, Boon Thau Loo, Yun Mao.
The 17th IEEE International Conference on Network Protocols (ICNP), Princeton, New Jersey, Oct, 2009.


We appreciate support from:

NSF CNS-0721845
NSF CCF-0820208
NSF CNS-0831376
NSF CNS-0845552 (CAREER)
NSF CNS-1040672 (FIA grant)