Comparative Study of AMPL, Pyomo and JuMP Optimization Modeling Languages on a Network Linear Programming Problem Example
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
Bibliografia
- GTgraph Program. www.cse.psu.edu/~kxm85/software/GTgraph
- JuMP documentation. www.juliaopt.org/JuMP.jl/0.18/index.html
- JuMPa GitHub Repository. https://github.com/JuliaOpt/JuMP.jl
- Pyomo documentation. https://pyomo.readthedocs.io/en/latest
- Pyomo GitHub Repository. https://github.com/Pyomo/pyomo
- Bader D.A., Madduri K., GTgraph: A Synthetic Graph Generator Suite. College of Computing, Georgia Institute of Technology, 2006.
- Bertsekas D.P., Linear Network Optimization. MIT Press, 1991.
- Fourer R., Gay D.M., Kernighan B.W., AMPL A Modeling Language for Mathematical Programming, Second Edition. Duxbury, Thomson, 2003.
- River Logic, Inc., Optimization Modeling: Everything You Need to Know, www.riverlogic.com/blog/optimization-modeling-everything-you-need-to-know , 2021.
- 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.