LP-DIT Data Interchange Tool for Linear Programming Problems (version 1.20)

The MPS format (and its various extensions) is the de facto standard for handling data of an LP problem. The MPS format is widely used despite of its well known disadvantages, simply because there is no other widely agreed way of handling LP problem data and solution. However, for any real-life application when a sequence of modified LP problems is solved, preparing data (and their modifications) using the MPS format is both inefficient and cumbersome. Therefore the need for an efficient alternative is widely recognized. It is hardly possible to propose an alternative that could be commonly accepted unless the alternative is efficient and easy to incorporate into existing software. Therefore instead of considering another format of data, one should rather agree on a set of data structures and functions that can be used in a way similar to usage of standard libraries. Restricting a specification to the data structures and functions makes it possible to hide internal data structures and implementations of functions. LP-DIT is an attempt to contribute to the creation of such an alternative. LP-DIT serves two purposes: First, to propose a data structure and declarations of functions that can easily provide efficient data processing commonly needed for interchange of LP problem data between different software modules. Second, to provide a public domain tool (fairly easy to implement and efficient to use) which allows for LP problem data interchange. In other words, LP-DIT provides an alternative for using the MPS format to access and modification of LP problem data. Additionally, LP-DIT provides efficient and flexible functions for a full definition (which includes information contained both in the NIPS format and in a specification files) of an LP problem, its modifications and solutions. The current version of LP-DIT is the result of several applications made for different problems (i.e. using different problem generators and LP solvers). However, it is still a prototype and therefore, criticism and suggestions will be appreciated.