Best Practices for Open-Equation Modeling

Main.EquationResiduals History

Hide minor edits - Show changes to output

Changed lines 5-7 from:
Modeling often constitutes most of the effort on an optimization project. There is some art in the way a programmer poses the model in a way that allows solvers to efficiently find a solution. Below are some tips and an exercise on ways to rearrange the model equations for improved convergence.
to:
Efficient mathematical modeling for optimization involves formulating a mathematical problem in such a way that a computer can quickly solve it. This typically involves defining the problem in terms of variables, constraints, and objectives, and then using a mathematical optimization method to find an optimal solution. Examples of mathematical optimization methods include linear programming, nonlinear programming, integer programming, and genetic algorithms.

Mathematical modeling often constitutes most of the effort on an optimization project. There is some art in the way a programmer poses the equations
in a way that allows solvers to efficiently find a solution. Below are some tips and an exercise on ways to rearrange the model equations for improved convergence.
Deleted lines 3-4:

!!!! Modeling Exercise
June 21, 2020, at 04:40 AM by 136.36.211.159 -
Deleted lines 43-61:

----

(:html:)
 <div id="disqus_thread"></div>
    <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'apmonitor'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    <a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
(:htmlend:)
January 14, 2013, at 07:01 PM by 128.187.97.21 -
Changed line 36 from:
!!!! Exercise 3 Results
to:
!!!! Exercise Results for the Two Bar Truss
January 14, 2013, at 06:54 PM by 128.187.97.21 -
Added lines 35-36:

!!!! Exercise 3 Results
January 14, 2013, at 06:54 PM by 128.187.97.21 -
Deleted lines 10-14:
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v1.apm | Solve Initial Version]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v2.apm | Solve with SQRT removed]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v3.apm | Solve with added constraints and no SQRT]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v4.apm | Solve with added constraints and explicit definition of some variables]]

Added lines 13-14:
!!!! Tips for Improved Convergence
Added lines 33-41:

----

The following models are taken from the homework assignment on the [[Main/TwoBarTruss | Two Bar Truss problem]]. The initial version is most similar to how the problem would be posed in a textbook. Removing the SQRT and adding constraints to the variables shows improvements in model convergence. Explicit definition of some of the variables adds additional improvements.

* [[https://apmonitor.com/online/view_pass.php?f=twobar_v1.apm | Solve Initial Version]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v2.apm | Solve with SQRT removed]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v3.apm | Solve with added constraints and no SQRT]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v4.apm | Solve with added constraints and explicit definition of some variables]]
January 14, 2013, at 06:51 PM by 128.187.97.21 -
Added lines 15-16:

----
January 14, 2013, at 06:50 PM by 128.187.97.21 -
Added lines 1-52:
(:title Best Practices for Open-Equation Modeling:)
(:keywords mathematical modeling, nonlinear, optimization, engineering optimization, interior point, active set, differential, algebraic, modeling language, university course:)
(:description Mathematical modeling is necessary to apply optimization techniques in engineering. Improved structure of the models leads to faster and more robust convergence.:)

!!!! Modeling Exercise

Modeling often constitutes most of the effort on an optimization project. There is some art in the way a programmer poses the model in a way that allows solvers to efficiently find a solution. Below are some tips and an exercise on ways to rearrange the model equations for improved convergence.

[[Attach:twobar_rearrangement.pdf | Worksheet with Modeling Exercises]]

* [[https://apmonitor.com/online/view_pass.php?f=twobar_v1.apm | Solve Initial Version]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v2.apm | Solve with SQRT removed]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v3.apm | Solve with added constraints and no SQRT]]
* [[https://apmonitor.com/online/view_pass.php?f=twobar_v4.apm | Solve with added constraints and explicit definition of some variables]]

# Rearrange to equation in residual form to:
## Avoid divide by zero
## Minimize use of functions like sqrt, log, exp, etc.
## Have continuous first and second derivatives
## Fit the equation into a linear or quadratic form
# Bounds
## Include variable bounds to exclude infeasible solutions
## Variable bounds to avoid regions of strong nonlinearity
## Caution: watch for infeasible solutions
# Scaling:
## Scale absolute value of variables to 1e-3 to 1e3
## Scale absolute value of equation residuals to 1e-3 to 1e3
## Better that 1st derivative values are closer to 1.0
# Good initial conditions:
## Starting near a solution can improve convergence
## Try multiple initial conditions to verify global solution (non-convex problems)
## Explicitly calculate intermediate values
# Check iteration summary for improved convergence 

----

(:html:)
 <div id="disqus_thread"></div>
    <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'apmonitor'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
    <a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
(:htmlend:)