bugNESSY - Bugs: bug #22658, The parameter constraint algorithm...

Show feedback again

bug #22658: The parameter constraint algorithm is non-functional and can kill optimisation.

Submitted by:  Edward d Auvergne <bugman>
Submitted on:  Thu Sep 18 14:33:45 2014  
Category: NESSY source codeSeverity: 4 - Important
Priority: 7 - HighStatus: Postponed
Privacy: PublicAssigned to: None
Open/Closed: Open

Add a New Comment (Rich MarkupRich Markup):

You are not logged in

Please log in, so followups can be emailed to you.


Thu Sep 18 14:33:45 2014, original submission:

This problem was discussed here:


The issue is that constraints are implemented as follows:

# kex
if kex < Constraints_container.kex[1][0] or kex > Constraints_container.kex[1][1]:
for j in range(0, len(err)):
err[j] = (err[j])*2

Here err is the chi2 value. The chi2 value is squared when a constraint is violated. This is not a known constraint algorithm and it actually introduces a jump discontinuity (https://en.wikipedia.org/wiki/Classification_of_discontinuities). Say that at the parameter limit is a boundary where chi2 = 2. If you are just inside the boundary, the value is 2. If you are just outside the value is now 4.

Discontinuities are fatal for almost all optimisation algorithms, and certainly for all algorithms used by NESSY.

The solution would be to implement a proper constraint algorithm. The simplest would be the log-barrier algorithm (https://en.wikipedia.org/wiki/Barrier_function#Logarithmic_barrier_function). A more powerful algorithm would be the Method of Multipliers, also known as the Augmented Lagrangian (https://en.wikipedia.org/wiki/Augmented_Lagrangian_method). These are both available via the minfx project (https://gna.org/projects/minfx/).

Edward d Auvergne <bugman>
Project Administrator


(Note: upload size limit is set to 1024 kB, after insertion of the required escape characters.)

Attach File(s):

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -unavailable- added by bugman (Submitted the item)

    Do you think this task is very important?
    If so, you can click here to add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.


    Error: not logged in



    No Changes Have Been Made to This Item
    Show feedback again

    Back to the top

    Powered by Savane 3.1-cleanup