Various NSGA-II concerns

30 views
Skip to first unread message

penaflo...@gmail.com

unread,
Jan 10, 2019, 8:37:39 AM1/10/19
to Inspyred
Greetings!

I am Eri and I am new to multiobjective optimization. I am conducting a study involving the utilization of NSGA-II for a multivariable objective functions.

Since I am still new to this, I would like to ask if the following can be done in Inspyred with NSGA-II, and if so, how can it be executed.

1. Can I modify the number of objective functions that can be optimized? How will I encode it? (say, I would like to optimize 2 objective functions with 5 variables each); and

2. is it possible that I can place weights in my objective functions so that I will obtain only one specific value within the Pareto optimal set? How will I encode it? (say if I have two objective functions, I will weigh them equally so that I will obtain just a single value in the Pareto optimal set, considering the weights)

I hope for your favorable response with this, and it will be a great help for me in my study.

Thank you very much!

Aaron Garrett

unread,
Jan 10, 2019, 12:29:53 PM1/10/19
to insp...@googlegroups.com
1. Yes, you can specify any number of objectives with any number of variables.

def fit_func_1(candidate):
   return whatever you need for this objective

def fit_func_2(candidate):
   same as above, and so on...

@inspyred.ec.evaluators.evaluator
def my_evaluator(candidate, args):
   f1 = fit_func_1(candidate)
   f2 = fit_func_2(candidate)
   ...
   fn = fit_func_n(candidate)
   return inspyred.ec.emo.Pareto([f1, f2, ..., fn])


2. Yes, if I understand your question correctly, but you're not really dealing with a Pareto frontier anymore when you do that.

@inspyred.ec.evaluators.evaluator
def my_evaluator(candidate, args):
   # Assume weights of w1, w2, ..., wn
   f1 = fit_func_1(candidate)
   f2 = fit_func_2(candidate)
   ...
   fn = fit_func_n(candidate)
   return w1 * f1 + w2 * f2 + ... + wn * fn



--
You received this message because you are subscribed to the Google Groups "Inspyred" group.
To unsubscribe from this group and stop receiving emails from it, send an email to inspyred+u...@googlegroups.com.
To post to this group, send email to insp...@googlegroups.com.
Visit this group at https://groups.google.com/group/inspyred.
For more options, visit https://groups.google.com/d/optout.
--
Aaron Garrett, Ph.D.
Assistant Professor
Computer Science
Wofford College
429 North Church Street
Spartanburg, SC 29303

Erison Peñaflor

unread,
Jan 10, 2019, 9:52:45 PM1/10/19
to insp...@googlegroups.com
Thank you very much professor!
It's a great help for me.

You received this message because you are subscribed to a topic in the Google Groups "Inspyred" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/inspyred/xlZX9mCnGTU/unsubscribe.
To unsubscribe from this group and all its topics, send an email to inspyred+u...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages