2lp: Linear Programming and Logic Programming

The 2lp system is a step in the “Operatica Program,” a project whose grand design is to provide an elegant and powerful programming language environment for combining AI and OR methods for decision support software systems. The term “Operatica” was coined by J.L. Lassez to suggest an analogy with the Mathematica system which provides a programming environment for symbolic mathematical computation. In the dialogue between AI and OR, there are two basic themes: (1) declarative programming and the notion of logical consequence and, (2) procedural programming and the search algorithm in its many variations. Integrating AI and OR requires an environment that combines a modeling language with a logic based language. 2lp, which stands for “linear programming and logic programming,” has the simplex based search mechanism of linear programming and the backtracking mechanism of logic programming built in. 2lp is both an algebraic modeling language and a logical control language. By bringing these techniques together in a language which has standard C style syntax and treats the mathematical module in an object-oriented way, this technology provides very powerful and usable tools for decision support programming.