Comparative Study of AMPL, Pyomo and JuMP Optimization Modeling Languages on a Network Linear Programming Problem Example

eng Article in English DOI: 10.14313/PAR_241/23

send Andrzej Karbowski , Krzysztof Wyskiel Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych

Download Article

Abstract

The purpose of this work is a comparative study of three languages (environments) of optimization modeling: AMPL, Pyomo and JuMP. The comparison will be based on three implementations of the shortest path problem formulated as a linear programming problem. The codes for individual models and differences between them will be presented and discussed. Various aspects will be taken into account, such as: simplicity and intuitiveness of implementation, availability of specific data structures for a LP network problems, etc.

Keywords

linear programming, modeling languages, network problems, optimization, programming, shortest path problem

Studium porównawcze języków modelowania optymalizacyjnego AMPL, Pyomo i JuMP na przykładzie liniowego zadania programowania sieciowego

Streszczenie

Celem pracy jest zbadanie i porównanie możliwości trzech języków (środowisk) modelowania optymalizacyjnego: AMPL, Pyomo i JuMP. Porównanie zostanie oparte na trzech implementacjach zadania najkrótszej ścieżki sformułowanego jako zadanie programowania liniowego. Przedstawione i omówione zostaną kody poszczególnych modeli oraz różnice między nimi. Pod uwagę będą brane różne aspekty, takie jak: prostota i intuicyjność implementacji, dostępność określonych struktur danych dla problemów z siecią LP itp.

Słowa kluczowe

języki modelowania, optymalizacja, programowanie liniowe, zadania grafowe, zadania sieciowe, zadanie najkrótszej ścieżki

Bibliography

  1. GTgraph Program. www.cse.psu.edu/~kxm85/software/GTgraph 
  2. JuMP documentation. www.juliaopt.org/JuMP.jl/0.18/index.html 
  3. JuMPa GitHub Repository. https://github.com/JuliaOpt/JuMP.jl 
  4. Pyomo documentation. https://pyomo.readthedocs.io/en/latest 
  5. Pyomo GitHub Repository. https://github.com/Pyomo/pyomo 
  6. Bader D.A., Madduri K., GTgraph: A Synthetic Graph Generator Suite. College of Computing, Georgia Institute of Technology, 2006.
  7. Bertsekas D.P., Linear Network Optimization. MIT Press, 1991.
  8. Fourer R., Gay D.M., Kernighan B.W., AMPL A Modeling Language for Mathematical Programming, Second Edition. Duxbury, Thomson, 2003.
  9. River Logic, Inc., Optimization Modeling: Everything You Need to Know, www.riverlogic.com/blog/optimization-modeling-everything-you-need-to-know , 2021.
  10. Olszak A., Karbowski A., Parampl: A Simple Tool for Parallel and Distributed Execution of AMPL Programs. “IEEE Access”, Vol. 6, 2018, 49282–49291, DOI: 10.1109/ACCESS.2018.2868222.