The Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Weighted Multi-Objective Optimization using GAMULTIOBJ
Replies: 2   Last Post: Feb 11, 2013 8:06 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
matt dash

Posts: 641
Registered: 4/18/08
Re: Weighted Multi-Objective Optimization using GAMULTIOBJ
Posted: Feb 10, 2013 12:11 AM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply wrote in message <>...
> 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

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

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.