Djinni 2.2 is a project-in-progress by the Henry B. Tippie College of
Business at the University of Iowa, with additional help from computer 
science geeks in the Department of Computer Science.

The goal of Djinni is to provide a library for constrained
combinatorial optimization which is:

    * Understandable.  The entire workings of Djinni should be
      comprehensible to a Management Sciences undergraduate
      who has a little talent for programming.

    * Comprehensive.  Tabu search, annealing, genetic algorithms,
      hybrid systems, bounded approximation algorithms and more
      should all be provided.

    * Scriptable.  C and C++ are difficult languages to use 
      properly, and it's unreasonable to expect undergraduates to
      learn the intricacies of pointers, memory management and/or
      object-oriented design and the Gang of Four patterns just to
      use an algorithm to solve a problem.

    * Efficient.  Djinni's core should strive for efficiency and
      speed.  However, there will be no trade-off with the
      understandability of the code.  Any compromise between code
      efficiency and code clarity is based on a false dichotomy:
      we will have clarity with efficiency or we will have neither
      at all.

At present we are meeting all of our goals save for the second.  As of
Djinni 2.2 we are only implementing annealing algorithms, including
simulated and compressed variants.  There are plans to implement tabu
search and genetic algorithms for Djinni; however, we are not yet
certain of the best way to implement them.  If you have any
strongly-held opinions, we would love to hear them!

Full API documentation can be generated by going into the src/
subdirectory and running Doxygen.  Please note that the documentation
will not be automatically built; this removes a dependency on Doxygen
we would otherwise have.

In the src/examples subdirectory can be found two samples of how to
use Djinni with Python.  salesman is a command-line Python app that
will display output to stdout, whereas pygtk-salesman will give a
graphical representation of the route.  pygtk-salesman requires the
PyGTK toolkit be installed.

Thank you for downloading Djinni 2.2, and we hope that it's helpful to
you in your searches!

    -- Rob Hansen, writing for the authors
