Process Integration and Design Optimization

Process Integration and Design Optimization

Optimization Doesn’t Check Nearby Parameter Points


    • Nicholas Irvin


      I think my Lumerical optimizations are not accurately finding the true optimum. I am optimizating with respect to seven variables, and I am using the particle swarm optimization (the only tool available besides "user defined" optimizations). My "Maximum generations" is set to 100, my "Generation size" is set to 30, and my tolerance set to 0.0005 (which are more stringent than the default of 10, 5, and 0, respectively). My optimization ran 16 generations before ending with a result.

      I think the optimization is not working well because I can acheive quite better results by rerunning it. Furthermore, the optimization is not sampling data points around the best parameter set. For instance, the best value for the parameter "x_span" was found as 772.228 nm, but no points within 3 nm of that point have been simulated. Within the 760-780 nm range, only a few x_span data points have been sampled - and most of those simulations don't have the other parameters near their maximum values.

      Is there something wrong with my use of particle swarm here? Should I consider using a user-defined optimization algorithm?

    • Bernd Buettner
      Ansys Employee

      Hi Nicholas,

      since Ansys provides in-build optimization capabilities and a external optimization-tool, can you point out if you have used the optimization algorithm inside Ansys Lumerical or if you are using Ansys optiSLang - since the settings or strategies differ a bit in these two cases?

      Best regards,


    • Guilin Sun
      Ansys Employee


      Hi Nicholas, the built-in particle swarm optimization works fine only if some settings are proper.In your case,  you are optimizing 7 parameters, 16 generations are most likely not enough. Even for a single paramter optimization it may need 20 to 40 generations. As you pointed out, the variable space is not well explored. That means the optimization is actually not optimal. You may further reduce the tolerance, say 1e-6, 1e-8 or other small values or even zero. Make sure those 7 paramerers are not conflict in some sub-spaces. Please try to reduce the number of parameters if possible.

      I am glad that you have set more number of generations than the size of generation. In general, more generation is much better than more generation size in order to find the global optimal result.You could try to have 20 generation size and 150 generations.

      Please note, the flat FOM curve does not necessarily mean the global optimal result is reached. From my personal experience, it needs another 10 to 20 generations to confirm if it is true.

      There is another possibility: there are many local optimals and those local optimals have almost the same max results within the tolerance.

      Anyway, 7 parameters with 16 generations only is not convincing to have reached the optimal result.


      Please note: the Lumerical forum is here:

      Please post your further questions in the correct forum.


    • Nicholas Irvin


      Hi Bernd, 

      The optimization is within Ansys Lumerical.



      Hi Guilin,

      Thank you for your detailed responses! What do you mean by “Make sure those 7 paramerers are not conflict in some sub-spaces”?

      Is changing the tolerance from 0.0005 to 1e-6 likely to make a difference in finding the optimum?

      You recommended changing the generation size from 30 to 20 and changing the maximum generations from 100 to 150. As it reached the found optimum in seven generations, and it will go 10%-of-the-maximum-generations more, your suggested changes will only change the number of simulated generations from 16 to 21. Is that enough for a 7-parameter optimization? 

      Should we continue this thread in this forum, or do you need me to repost in the Lumerical forum?





    • Nicholas Irvin

      Hi Ansys,

      I changed the settings: tolerance from 0.0005 to 1e-6, generation size from 30 to 20, and maximum generations from 100 to 250.

      But the Lumerical optimization got a lot worse --- the maximum has gone down from 91% to 79%. The worse optimization result took 57 generations (instead of 16 generations for the better result)...
      How could this be?
      Do you have further advice on optimization settings when optimizing over seven parameters?


    • Guilin Sun
      Ansys Employee

      Unfortunately, 7 parameter-optimization is very challenge, it depends on the initial data, range, and generation size. Although I suggested to reduce the generation size and increase the generation number previously, it seems it is not effective, as the optimization stops at early generations even with small tolerance. In such case, you may need to do the other way: increase the generation size, but the generation number can be small from your practice, as they can always reach the defined tolerance. 

      In addition, it might be localized for the optimization. You may need to change the parameter ranges since you already get some results and then redo the optimization. There might be many extremes. 


Viewing 5 reply threads
  • You must be logged in to reply to this topic.