./ (directory)    <<    < back      Search       Optimization links    Igor Grešovnik    Inverse     C3M  
   This site is under construction.   This page is under construction. Icon is missing.

Ioptlib

  This page provides some information about the Ioptlib (Investigative Optimization Library), whose experimental version release is planned for 2008  (see comment on availability). IOptLib is a free open source library.


              



Contents:

   
   Search  
    
     


  

About the library

 
  Ioptlib (a shortcut for Investigative Optimization Library) is an open optimization library designed to sustain development and testing of algorithms for solving practical optimization problems. A priority goal is to develop algorithms suited to problems with computationally expensive and possibly noisy evaluation of the response (i.e. objective and constraint) functions. The library is intended to provide modular building blocks for constructing such algorithms, standardized templates for interfacing tools obtained form other libraries, and testing environment where different performance aspects of algorithms can be readily extensively tested during and after the development stage. Currently most of the efforts are devoted to algorithms based on successive solution of approximated problems obtained by local sampling and approximation of the response functions. Such algorithms have complex designs and involve solution of many sub-problems such as non-linear or quadratic programming problems, matrix algebra, optimal sampling strategies, etc. The intention is therefore to gradually accumulate efficient routines for solving these problems, which will lead to broader serviceability of the library. Any attempt was made to keep open the possibility of starting development of new algorithms or attaching to the existent functionality at any level. The basic library is therefore intended to be distributed as free open source under certain conditions. A couple of algorithms will be available under different negotiable terms since this is necessary to provide the funding for library development, however their building blocks together with a set of quite useful algorithms will be provided with the basic set that is more open what concerns availability.

  The original motivation for the library was obtained in optimization of forming processes where evaluation of objective and constraint functions typically involves complex numerical simulation with hundreds of thousands of degrees of freedom, very non-linear and path dependent materials, multi-physics and multi-scale phenomena etc. As result, not only the calculation of the objective and constraint functions takes very long times even on the fastest computers or parallel architectures, but these functions often contain substantial amount of numerical noise. These conditions impose a substantial turn in how algorithm performance is viewed. On one hand the most important measure of algorithm efficiency becomes the number of function evaluations it takes for calculating optimum up to a given accuracy. The CPU time spent by the algorithm becomes somehow less important because function evaluations will normally require incomparably more computational time. Because running optimization procedures will often be just on the limit of affordable, the goal will not always be to find an optimal solution up to a specified accuracy, but rather to achieve significant improvement within affordable computational time.

  The targeted scope of the library is beyond the area of its original motivation. It is intended to provide a pool of algorithms for different problems and facilities for extending this pool. Beside that, interaction with other libraries and use of the library in existing or future software is accounted for as much as possible. A lot of stress is put on defining standard data types and function prototypes used for different purposes, such as evaluation of response functions and their derivatives or for storing results of such evaluation and their use in building approximations. These standards are defined in such a way that routines for similar tasks from other libraries can be easily incorporated in the system, and functions that are consistent with library standards can be easily exported in standard forms required in other software environments. Wrapping functions and data converters are provided for some common cases, and the way how one can create own tools for this is being documented in manuals. The standards are designed in such a way that they are suitable for any environment, in particular to allow recursive calls and work in multi-threaded environment.

  The library comes with a set of basic utilities that are extensively used in implementation of basic building blocks and algorithms. This includes e.g. basic matrix and vector operations and generic implementation of data containers such as stacks. These utilities are well documented in source code while overview is given in documentation.

  Many of elementary utilities make use of other free libraries. Contribution of people who designed these libraries and made them available is gratefully acknowledged.

Availability


  The library will be available in 2008, however the exact release date is not known yet. Until then I would like to write some additional documentation and implement some routines which will make the library useful for other users. I intend to release an experimental version first, which is mainly intended for those who have an interest in contributing to the library or cooperating at decisions about library design. After a given period, the official version will be released. In the official versions, I will attempt to enforce backward compatibility as much as possible for the functionality that is intended for average users, while the experimental version may be subject to changes in function names and organization.

  One of the users of the library will hopefully be C3M and the library will be at some stage included in the optimization software Inverse. The library will be publically available without limitations (including the source) under BSD license in order to promote the exchange of ideas between researchers working on similar problems in optimization. Some commercial algorithms will not be freely available, but I will do my best to make them easily available for research purposes in exchange for quotation, exchange of results,  or contributions to the library.



Documentation

  IOptLib User's Manual. This manual is mainly intended for users of the library, however the extent of information is sufficient that it cna be advantageously used by developers.

 
  Simplex algorithms for nonlinear constraint optimization problems. This documents containd description of a set of modified Nelder-Mead simplex algorithms that can be used for constraint nonlinear optimization. These algorithms can beadvantageously  used for optimization when gradients of the objective and constraint functions are not available and where these functions are not smooth.  All the described algorithms are implemented in IOptLib.

  Igor's documentation. Collection of useful documents by Igor Grešovnik.



Example: optimization by using successive approximations of response



  This figure represents convergence of  an algorithm based on successive approximation of the response functions. Contours of actual objective and constraint function are shown in pale colors while contours of  approximated functions are plotted in stronger colors. Zero constrsint contours (actual and approximated) are plotted with thicker lines. Small points are the samplig points where the response functions (loaded with some level of noise) were calculated, and larger points are the solutions of the approximated problems.


       
  The figure above shows approximations of the objective (green contours) and constraint functions (blue contours, brown 0 contour) after 1, 3, 6 and 10 iterations of an algorithm based on successive approximations. First, the approximations are very rough, with better approximation around the initial point. Over iterations, center of the approximated region moves towards optimum (see Figure above) and approximation gets better around the optimum while region far from optimum is not of interest and is not well approximated.







Google
WWW    ../    ./     Igor at Arnes   Igor at Mrfreesite



  
 
  Maintained by Igor Grešovnik 
      
  Updated in September 2007

Note: This site is under construction.      This page is under construction. Icon is missing. 



Number of accesses:     If you don't see the access counter properly then click on the link!    If you don't see the access counter properly then please follow this link!