9.4 Specification of the Siesta Optimizer Protocol

The purpose of the SIESTA optimizer protocol is to provide a generic interface between the framework and the optimizers when evaluating the objective function $ f:\mathbb{R}^m\to\mathbb{R}^n$ and the constraints $ c_k:\mathbb{R}^m\to\mathbb{R}^{n_k}$. The design of the interface enables future extensions and the protocol is easy to implement.

The first version of the protocol was described in [92]. The present specification is compatible to the first version and the intention is to retain compatibility in future versions as well.

The communication between the framework and the optimizer is done via the UNIX standard input/output streams. The requests from the optimizer have the form of Lisp expressions [76]; actually only a subset of general Lisp expressions, which is easily parsed, is required.

A session starts when the optimizer is started by the framework. Whenever the optimizer writes to standard error, the session is closed. First, the framework reads all lines from the standard input/output stream until no more lines are available. The received requests are then processed by the framework, and the results are written to the standard input/output stream as described below. This procedure continues until the framework receives a result request, or the stream is closed by the framework.



Subsections
Clemens Heitzinger 2003-05-08