odop

Open Design Optimization Platform (ODOP) - Coil spring design app; mechanical springs; compression spring, extension spring, torsion spring

View the Project on GitHub thegrumpys/odop

Early Design Decisions

The ODOP software has a long history. In the interest of providing context to anyone looking for insight as to how things got to be the way that they are, this entry provides a limited amount of detail and insight into the earliest design decisions.

In many ways, the consequences of these early design decisions are deeply entwined into the ODOP code. While not impossible, considerable effort will be required to change some of these decisions.

 

Unconstrained numerical search and penalty functions

Early 1970's hardware limitations and the availability of the Hooke and Jeeves Pattern Search algorithm combined to guide a decision to use unconstrained numerical search and penalty functions. This decision was reinforced by the limitations of mid-1980's personal computers and MS-DOS.

For more background, see:

 

Scaling Denominators

Early in development it became clear that constraint violations needed to be normalized as they merge together to form an objective function. This is accomplished by the scaling denominators (smin, smax, sdlim). Each violated constraint contributes its penalty to the objective function as a relative, not absolute, amount.

 

Objective Function Construction

The ODOP Action : Search menu item invokes the numerical search process to find a feasible solution. The "merit function" is not active. The search process will terminate when the first feasible (or "marginally feasible") solution is found.

In this case, the value of the objective function (OBJ), is computed as the sum-of-squares of the normalized constraint violations plus the sum-of-squares of the normalized Dependent Variable FIX violations.

The Seek feature invoked by the ODOP Action : Seek menu item adds a normalized "merit function" to the previous calculation of OBJ.

 

Summary

The various limitations to ODOP's formulation of the optimization problem and the availability of theoretically better approaches are generally understood.

Points in favor of the current approach: