MPL OptiMax 2000 Component Library

OptiMax 2000 is an object-oriented Component Library, specifically designed to embed optimization models into end-user applications. The design of OptiMax 2000 is based on ActiveX/Automation component software technologies from Microsoft. OptiMax can be used to seamlessly integrate MPL models into various different programming platforms, such as VBA for Excel/Access, Visual Basic, Visual C++, Delphi, Java, and standard scripting languages for the Web.

When working with optimization models, a modeling language such as MPL, is very effective handling all the data manipulations, the matrix generation for the solver, and the solution output. After the model has been built and tested, an end-user application needs to be built using a graphical front-end to allow the end-user to edit the model data and view the results in easy-to-use manner.

Over the past decade the software industry has been moving towards building software components instead of full-blown applications. This allows each developer to concentrate on writing the software where they retain expert knowledge.

OptiMax 2000 provides the bridge between the optimization model and the end-user application. The OptiMax library is built as a hierarchy of objects that details all the knowledge that MPL contains about the model and is made available to the application developer through the object hierarchy. This enables the software developer to concentrate on building the end-user application without having to be concerned with the details of the optimization model.



OptiMax 2000 Component Library Features

OptiMax 2000 is an object library that contains very extensive set of collections, objects, methods and properties, covering all aspects of implementing optimization models in end-user applications. This includes reading and maintaining models, writing solution files, importing and exporting data, solving models, and option handling. The library as well as gives full access to all the internal data structures that MPL uses to store model information. Full cross-referenced documentation of the OptiMax 2000 Object Model is available.

    • General Model Handling
      • Reading model files
      • Parse model in parts
      • Querying model information
      • Modifying models
      • Keep multiple models in memory
      • Detailed error handling


    • Input/Output Capabilites
      • Reading input data files (dense/sparse)
      • Writing solution output files
      • Native solver input/output files
      • Spreadsheet import and export
      • Database import and export


    • Model Solving
      • Multiple solvers supported (LP, MIP, QP, and NLP)
      • Repeated solver runs/Iterations
      • Use solutions values as input


    • Option Handling
      • MPL language options
      • Native parameter options for each solver


  • Access to MPL Internal Data Structures
    • Indexes (numeric, named)
    • Vectors (data, variables, constraints)
    • Macros
    • Matrix data
    • Names data

Programming with the OptiMax 2000 Library

The OptiMax 2000 library can be used with any programming platform that is compatible with the ActiveX/Com component software technologies from Microsoft. OptiMax comes with the dual-interface and is therefore also compatible with any programming language that support the standard Automation interface.

Following is a list of some of the languages that can be used with the OptiMax library. Please refer to the OptiMax Samples page for code examples of how to use OptiMax in these languages.

Visual Basic

Visual Basic from Microsoft is the programming language that is the easiest to work with when creating OptiMax applications. This is due to its high integration with Automation interfaces and easy-to-learn approach.

Visual Basic for Applications (VBA)

Visual Basic also comes as a standard with Microsoft Office applications, such as Excel and Access, as well as multiple other popular applications from other companies. This version of Visual Basic is called VBA or Visual Basic for Applications and due to its ready availability, is often the most convenient way to create programs using OptiMax. Most of the examples in this manual will be done using the VBA in Microsoft Excel.

Visual C++

When creating applications with OptiMax where speed is important or full flexibility is needed, Visual C++ is often the language of choice. It is not as quick and easy to program as Visual Basic, but still fairly straightforward to use. In most cases the standard COM interfaces for OptiMax are used when programming with Visual C++, as compared with the Automation interface which is most often used in Visual Basic.

Visual J++

The OptiMax library can be used from Visual J++ which is the Microsoft version of the Java language. The Microsoft SDK for Java can be downloaded from the Microsoft web site:


Another popular language that can be used with OptiMax is Delphi from Inprise/Borland. This language is based on Pascal and can be very effective to create end-user applications.

Downloading and Installing the OptiMax 2000 Library

The OptiMax 2000 library is available both, as a full-size version sold as an option to the MPL Modeling System and as a free student version download from Maximal Software’s web page.

If you are downloading the student version of OptiMax 2000 from the web, it is recommended to first download and install the student version of MPL. After MPL has been installed and the license activated you can go ahead and install the OptiMax 2000 library.