Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Weighted Multi-Objective Optimization using GAMULTIOBJ

320 views
Skip to first unread message

chris.m...@gmail.com

unread,
Feb 8, 2013, 3:05:41 PM2/8/13
to
Hello,

I am currently using GAMULTIOBJ to perform a multi-objective minimization optimization. I currently have four objectives, each providing a value in the range [0,1]. My Fitness Function takes as input a single candidate from the population, and returns a value in the range [0,1] for each objective.

My understanding is that the above assumes uniform weighting of each of the objective values. Even if this is an incorrect assumption, I am interested in weighting each of these values using a concept of "importance". For instance, the first two objective values are much more important to optimize over than the second two, and thus I would like to weight them higher. Ideally, I would like a user to specify an importance vector, say, [0.45, 0.45, 0.05, 0.05] that specifies the relative importance of each objective. The desired behavior is then to have the underlying GAMULTIOBJ optimization procedure to use this weighting.

I know that fgoalattain is designed to specify goals and weights as input, but it doesn't seem to give me the Genetic Algorithm nature of GAMULTIOBJ that fits nicely into my problem. I know that fgoalattain can be specified as a HybridFcn, but understand that it runs AFTER GAMULTIOBJ finishes successfully. If there was a way to have fgoalattain (essentially the goal and weights parameters) be integrated into how GAMULTIOBJ operates.

If the only work-around is to use these weights to adjust the objective scores before returning them from the Fitness Function, how could this be done? Would one solution be to multiply the objective values by a scalar, where the larger the scalar the more important the value should be?

Please let me know your thoughts. Thank you in advance.
Chris

matt dash

unread,
Feb 10, 2013, 12:11:21 AM2/10/13
to
chris.m...@gmail.com wrote in message <291d1830-2fcc-4f18...@googlegroups.com>...
Hi,
That's now how gamultiobj works (or multiobjective optimization in general). It is based on NSGA-II, which in turn is based on pareto optimality, which is indifferent to preferences or scaling.

It sounds like you want to define a single aggregate objective that is a function of the preferences/weights and your four objectives. For example, multiply the objective values by the preferences and then sum these quantities to yield a single aggregate value that you can minimize or maximize using a single objective genetic algorithm (the ga function)

Note that determining a meaningful form of aggregation is very important, and the success of various aggregating functions will depend on the characteristics of your particular problem. You should read these:

Das, I. & Dennis, J. A closer look at the drawbacks of minimizing weighted sums of objectives for Pareto set generation in multicriteria optimization problems. Structural Optimization, 1997, 14, 63-69

Messac, A.; Sundararaj, G. J.; Tappeta, R. V. & Renaud, J. E. Ability of objective functions to generate points on nonconvex Pareto frontiers. AIAA Journal, 2000, 38, 1084 - 1091

Chris Gifford

unread,
Feb 11, 2013, 8:06:37 AM2/11/13
to matt dash
Thank you for your response. It does seem that aggregating the objective measures into a single value for optimizing is the only way I will obtain my desired result. I also appreciate the references you passed along on the subject.

Cheers,
Chris
0 new messages