Help - Multiple objective function using python with ortools !!!

1,738 views
Skip to first unread message

ephuach

unread,
Aug 20, 2017, 8:47:54 PM8/20/17
to or-tools-discuss

Hi,

Good day, anyone now how to set simple multiple objective function using python with ortools ?



Regards,
Ed

NFS

unread,
Aug 22, 2017, 1:30:15 PM8/22/17
to or-tools-discuss
For non trivial problems, the objective values for the two functions will not be maximized at the same point. You should look into pareto optimization, then it becomes a formulation problem rather than an ortools problem. 

One simple way to think of this optimization if you consider both f1 and f2 of the same importance is to create a new optimization function f3 = f1 + f2. You could also use f3 = p*f1 + q*f2 where p:q is the relative importance you assign to each objective function.


On Sunday, August 20, 2017 at 5:47:54 PM UTC-7, ephuach wrote:

Hi,

Good day, anyone now how to set simple multiple objective function using python with ortools ?



Regards,
Ed

med...@ucsb.edu

unread,
Aug 23, 2017, 3:16:35 PM8/23/17
to or-tools-discuss
The weighted approach can be more formalized by using a divide-and-conquer method to determine the complete set of convex Pareto-optimal solutions with minimal iterations. While old, a good and clear overview of this approach can be found in:

Cohon, J. L., Church, R. L. and Sheer, D. P. 1979. Generating multiobjective trade-offs: an algorithm for bicriterion problems. Water Resources Research, 15(5), 1001-1010.

Note though that this weighting approach will only give you the set of convex Pareto-optimal solutions. If the variables are discrete rather than continuous, then there may non-convex solutions that require other methods such as adding additional resource constraints in order to get those solutions.

NFS

unread,
Aug 28, 2017, 12:14:23 AM8/28/17
to or-tools-discuss
Good article, Thanks for sharing!
Reply all
Reply to author
Forward
0 new messages