You can define any number of different objective functions in an AMPL model. A solver option for getting good solutions for multiple objectives is listed under "multiobj" in the
AMPL-Gurobi Parameter Reference and in the
CPLEX Options for AMPL. There is also a more detailed explanation of this option at
https://groups.google.com/d/msg/ampl/cDKRsJFHJcQ/AhZsBmnqDQAJ; it gives examples from Gurobi but they also work for CPLEX. (I don't know of a similar option for other solvers.)
Also I am not aware of any solver that will compute Pareto optimal solutions in general. You would have to write a program to do that; I don't know of any great examples, but here are two:
- I have some old examples of computing an efficient frontier using the MATLAB and Java APIs, which I could post if you think they would be helpful.
- Also there is an example of an AMPL script that trades off two objectives -- see https://groups.google.com/g/ampl/c/eq3UADMUEaU/m/e0fxviv8GAAJ -- but it is specific to one application.