travelccm

C++ Travel Customer Choice Model Library

Summary

TravelCCM aims at providing a clean API, and the corresponding C++ implementation, for choosing one item among a set of travel solutions, given demand-related characteristics (e.g., Willingness-To-Pay, preferred airline, preferred cabin, etc.).

The TravelCCM C++ library implements some simple Customer Choice Models (CCM), as referenced in the literature (PhD dissertations at MIT, for instance: http://dspace.mit.edu).

The TravelCCM C++ library exposes a simple, clean and object-oriented, API. For instance, the choose() method takes, as input, both a structure representing the travel request (e.g., “from Washington, DC, US, to Beijing, China, on the 25th of May”) and a list of travel solutions (as provided by the Airline Schedule Manager project: http://sourceforge.net/projects/air-sched), and yields, as output, the chosen item.

The output can then be used by other systems, for instance to book the corresponding travel or to visualize it on a map and calendar and to share it with others.

TravelCCM makes an extensive use of existing open-source libraries for increased functionality, speed and accuracy. In particular the Boost (C++ Standard Extensions: http://www.boost.org) library is used.

TravelCCM is the one of the components of the Travel Market Simulator (http://www.travel-market-simulator). However, it may be used in a stand-alone mode.

Installation

On Fedora/CentOS/RedHat distribution

Just use DNF:

$ dnf -y install travelccm-devel travelccm-doc

You can also get the RPM packages (which may work on Linux distributions like Suse and Mandriva) from the Fedora repository (e.g., for Fedora Rawhide, https://fr2.rpmfind.net/linux/RPM/fedora/devel/rawhide/x86_64/)

Building the library and test binary from Git repository

The Git repository may be cloned as following:

$ git clone git@github.com:airsim/travelccm.git travelccmgit # through SSH
$ git clone https://github.com/airsim/travelccm.git # if the firewall filters SSH
$ cd travelccmgit

Then, you need the following packages (Fedora/RedHat/CentOS names here, but names may vary according to distributions):

Building the library and test binary from the tarball

The latest stable source tarball (travelccm*.tar.gz or .bz2) can be found here: https://github.com/airsim/travelccm/releases

To customise the following to your environment, you can alter the path to the installation directory:

export INSTALL_BASEDIR="${HOME}/dev/deliveries"
export CCM_VER="1.00.9"
if [ -d /usr/lib64 ]; then LIBSUFFIX="64"; fi
export LIBSUFFIX_4_CMAKE="-DLIB_SUFFIX=$LIBSUFFIX"

Then, as usual:

Denis Arnaud