Wednesday, September 12, 2018

LaTeX as modeling language

In [1] LaTeX is used as a modeling tool for entering Mathematical Programming models.

LaTeX as modeling language
Options

Not sure if this works well in practice. The model in the above picture was entered as:

\text{minimize} \sum\limits_{i,j}^{}(c_{i,j}x_{i,j})\\ \text{subject to:}\\ \sum\limits_{j}^{}(x_{i,j}) \leq a_{i} \quad \forall i\\ \sum\limits_{i}^{}*x_{i,j}) \geq \b_{j} \quad \forall j\\ x \in \mathbb R_+\\

Notes:
  • One of the things I am missing is: data manipulation capabilities (most of my models do serious data manipulation before I arrive at the actual model equations).
  • Large models are not easily expressed as a single LaTeX equation 
  • Reporting is missing
  • I often emphasize "readability" should be an important feature of a modeling language. Here this is taken somewhat to an extreme: the LaTeX input is fairly unreadable, while the rendered version is of course rather nice. Adding quickly a few other constraints is not so easy: it requires reading and understanding the LaTeX input.
  • Pure mathematical notation is not always unambiguous. 
  • Complex indexing structures become difficult to write in math.

References

  1. Charalampos P. Triantafyllidis, Lazaros G. Papageorgiou, An integrated platform for intuitive mathematical programming modeling using LaTeX, 2018, https://peerj.com/articles/cs-161/