ETH Zuerich - Homepage
Systems Optimization (SOP)

Wichtiger Hinweis:
Diese Website wird in älteren Versionen von Netscape ohne graphische Elemente dargestellt. Die Funktionalität der Website ist aber trotzdem gewährleistet. Wenn Sie diese Website regelmässig benutzen, empfehlen wir Ihnen, auf Ihrem Computer einen aktuellen Browser zu installieren. Weitere Informationen finden Sie auf
folgender Seite.

Important Note:
The content in this site is accessible to any browser or Internet device, however, some graphics will display correctly only in the newer versions of Netscape. To get the most out of our site we suggest you upgrade to the latest Netscape.
More information

ETH Zürich - D-ITET - TIK - SOP - PISA
print page
this webpage might no longer be updated more...

How to Write a PISA Module


Implementing your own PISA module is rather simple. You only need to add a few functions to your code which read and write the text files. Read the specification (pdf) and look at the SEMO and LOTZ source code. They are written in C and can be used as examples of how to implement a PISA module. Since the interface is based on text files you can of course use any programming language that can read and write text files.


If you plan to write your module in C there are some library functions available which take care of all the text file communication and additionaly provide means for handling individuals.

The following steps are suggested:

  1. Get the library source code.
  2. Get the source code of LOTZ2 or FEMO, depending on whether you are implementing a variator or a selector module. These two modules have been implemented using the PISALib functions and can therefore serve as examples.
  3. The functions provided are divided into 3 parts:
    • The 'variator' (or 'selector') part contains the main function and all functions that you can use for implementing the module. You don't need to change anything in these files.
    • The 'variator_user' (or 'selector_user') part contains all functions that you need to implement. You need to change these files.
    • The 'variator_internal' (or 'selector_internal') part contains functions that are called by the functions in the 'variator' (or 'selector') part. You don't have to look at the internal part.
  4. Put your code at all the places in 'variator_user.h' and 'variator_user.c' (or 'selector_user.h' and 'selector_user.c') where a comment starts with '/****'.
  5. Use the included 'Makefile' to compile.

A more extensive guide on how to implement PISA modules using PISALib will be provided here soon.

How to Submit Your Own Module

If you have implemented your own test problem or real-world optimization problem or an optimization algorithm as a PISA module you are invited to submit your module. We will then put it in the list of modules and make it available for download.

We encourage you to publish the source code of your program as well but if you don't wish to you can submit just binaries. When submitting please send the module together with the follwing information to Dimo Brockhoff.

Necessary information:

© 2009 Institut TIK, ETH Zürich | Imprint | Last updated: Mon, 13 Oct 2014 21:32 | Valid XHTML 1.0! Valid CSS! Valid XHTML 1.0