Optimization Software

Main.OptimizationTools History

Show minor edits - Show changes to output

November 15, 2023, at 06:07 PM by 10.35.117.248 -
Changed line 15 from:
There are many software tools available to solve optimization problems ranging from free and open-source to proprietary commercial packages. In general, students want to choose a software platform that will be both state-of-the-art and accessible long-term. Solving optimization problems requires some familiarity with a computer programming language. Some of the [[https://www.tiobe.com/index.php/content/paperinfo/tpci/index.html | popular programming languages (see TIOBE index)]] also include capabilities for scientific computing.
to:
There are many [[https://ktafakkori.github.io/list-of-optimization-packages-in-python-update-2023/|software tools available to solve optimization problems]] ranging from free and open-source to proprietary commercial packages. In general, students want to choose a software platform that will be both state-of-the-art and accessible long-term. Solving optimization problems requires some familiarity with a computer programming language. Some of the [[https://www.tiobe.com/index.php/content/paperinfo/tpci/index.html | popular programming languages (see TIOBE index)]] also include capabilities for scientific computing.
Changed line 19 from:
Information on APMonitor, GEKKO, MATLAB, OptdesX, and Python is listed below. Assignments and projects can be completed with any of these software platforms.
to:
Information on APMonitor, GEKKO, MATLAB, OptdesX, and Python is listed below. Assignments and projects can be completed with any software platform.
Changed lines 5-11 from:
Engineering Optimization Software is a type of programming that is used to optimize the design of products and services. It helps engineers design products faster, cheaper, and more efficiently. This type of software is used to identify and implement the best solution to a given engineering problem out of all potential possibilities. It can be used to optimize the design and manufacturing processes of products, as well as to reduce costs, improve performance, and better meet customer requirements. Engineering Optimization Software can also be used to identify areas of improvement and to develop and test new designs.
to:
Engineering Optimization Software is a type of programming that is used to optimize the design of products and services. It helps engineers design products faster, cheaper, and more efficiently.

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/6YpENqAMB2A" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
(:htmlend:)

Optimization
software is used to identify and implement the best solution to a given engineering problem out of all potential possibilities. It can be used to optimize the design and manufacturing processes of products, as well as to reduce costs, improve performance, and better meet customer requirements. Engineering Optimization Software can also be used to identify areas of improvement and to develop and test new designs.
Changed line 7 from:
!!!! Engineering Tools'''
to:
!!!! Engineering Tools
Changed lines 5-6 from:
Engineering Optimization Software is a type of programming that is used to optimize the design of products and services. It is a type of software that can help engineers design products faster, cheaper, and more efficiently. This type of software is used to identify and implement the best solution to a given engineering problem. It can be used to optimize the design and manufacturing processes of products, as well as to reduce costs, improve performance, and better meet customer requirements. Engineering Optimization Software can also be used to identify areas of improvement and to develop and test new designs.
to:
Engineering Optimization Software is a type of programming that is used to optimize the design of products and services. It helps engineers design products faster, cheaper, and more efficiently. This type of software is used to identify and implement the best solution to a given engineering problem out of all potential possibilities. It can be used to optimize the design and manufacturing processes of products, as well as to reduce costs, improve performance, and better meet customer requirements. Engineering Optimization Software can also be used to identify areas of improvement and to develop and test new designs.

!!!! Engineering Tools'''

Changed line 53 from:
Python is a high-level and general-purpose programming language and is a [[https://www.google.com/search?q=popular+programming+languages|top choice for programmers (Google search)]]. Part of the reason that it is a popular choice for scientists and engineers is the language versatility, online community of users, and powerful analysis packages such as Numpy and Scipy. This course uses Python 2.7 or Python 3.7. Python is free and open-source and is easy to install with [[https://www.continuum.io/downloads|Anaconda (IPython, Jupyter, Spyder)]], [[https://www.jetbrains.com/pycharm/download/|PyCharm]], or the [[https://www.python.org/downloads/|Python.org]] distributions.
to:
Python is a high-level and general-purpose programming language and is a [[https://www.google.com/search?q=popular+programming+languages|top choice for programmers (Google search)]]. Part of the reason that it is a popular choice for scientists and engineers is the language versatility, online community of users, and powerful analysis packages such as Numpy and Scipy. This course uses Python 3. Python is free and open-source and is easy to install with [[https://www.continuum.io/downloads|Anaconda (IPython, Jupyter, Spyder)]], [[https://www.jetbrains.com/pycharm/download/|PyCharm]], or the [[https://www.python.org/downloads/|Python.org]] distributions.
Changed line 1 from:
(:title Optimization Course Software:)
to:
(:title Optimization Software:)
Changed lines 3-5 from:
(:description Optimization software for use in engineering at Brigham Young University:)

There are many software tools available to solve optimization problems ranging from free and open-source to proprietary commercial packages. In general, students want to chose a software platform that will be both state-of-the-art and accessible long-term. Solving optimization problems requires some familiarity with a computer programming language. Some of the [[https://www.tiobe.com/index.php/content/paperinfo/tpci/index.html | popular programming languages (see TIOBE index)]] also include capabilities for scientific computing.
to:
(:description Optimization software for use in engineering course:)

Engineering Optimization Software is a type of programming that is used to optimize the design of products and services. It is a type of software that can help engineers design products faster, cheaper, and more efficiently. This type of software is used to identify and implement the best solution to a given engineering problem. It can be used to optimize the design and manufacturing processes of products, as well as to reduce costs, improve performance, and better meet customer requirements. Engineering Optimization Software can also be used to identify areas of improvement and to develop and test new designs.

There are many software tools available to solve optimization problems ranging from free and open-source to proprietary commercial packages. In general, students want to choose
a software platform that will be both state-of-the-art and accessible long-term. Solving optimization problems requires some familiarity with a computer programming language. Some of the [[https://www.tiobe.com/index.php/content/paperinfo/tpci/index.html | popular programming languages (see TIOBE index)]] also include capabilities for scientific computing.
June 21, 2020, at 04:44 AM by 136.36.211.159 -
Deleted lines 49-67:

----

(: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:)
Changed lines 49-128 from:
Python is a high-level and general-purpose programming language and is a [[https://www.google.com/search?q=popular+programming+languages|top choice for programmers (Google search)]]. Part of the reason that it is a popular choice for scientists and engineers is the language versatility, online community of users, and powerful analysis packages such as Numpy and Scipy. This course uses Python 2.7 or Python 3.6+. Python is free and open-source and is easy to install with [[https://www.continuum.io/downloads|Anaconda (IPython, Jupyter, Spyder)]], [[https://www.jetbrains.com/pycharm/download/|PyCharm]], or the [[https://www.python.org/downloads/|Python.org]] distributions. Below is a tutorial on getting started with Python with a complete installation guide for Anaconda and Python.org.

!!!! Install Anaconda (recommended)

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/LrMOrMb8-3s" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

!!!! Install Python from Python.org

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/Ju6zw83PoKo" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

!!!! Install Packages with '''pip''' (Command Line)

Sometimes a script uses a package that is not yet installed. Once Python is installed, a package manager such as ''pip'' or ''conda'' can be used to install, remove, or update packages.

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/Z_Kxg-EYvxM" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

Below is an example on how to install [[https://apmonitor.com/wiki/index.php/Main/PythonApp|APMonitor Optimization Suite]] from the command line (start ''cmd'').

 pip install APMonitor

The ''APMonitor'' package name can be replaced with any available package name such as [[https://www.numpy.org|NumPy]].

 pip install numpy

!!!! Install Packages with '''pip''' (Python Script)

Packages can also be managed from a Python script by attempting to load the package with ''try''. If the import fails, the ''except'' section imports ''pip'' and installs the package.

'''Load and Optionally Install APMonitor Package'''

(:source lang=python:)
try:
  from APMonitor.apm import *
except:
  import pip
  pip.main(['install','APMonitor'])
  from APMonitor.apm import *
(:sourceend:)

'''Load and Optionally Install NumPy Package'''

(:source lang=python:)
try:
  import numpy as np
except:
  import pip
  pip.main(['install','numpy'])
  import numpy as np
(:sourceend:)

The ''APMonitor'' or ''NumPy'' package names can be replaced with any available package. The pip package manager connects to an online repository to retrieve the latest version of the package and install it. Sometimes a package is needed on a computer that isn't connected to the internet or the package isn't available through pip. Below is information on installing a package wheel (''whl'') file.

!!!! Install Package Wheels (whl) Offline

The pip package manager can also be used to install local (previously downloaded) wheel (''.whl'') files but dependencies may not be automatically installed if not connected to the internet. Below is an example wheel file installation for NumPy version 1.13.1 and SciPy version 0.19.1 for Python 3.6 with 64-bit Python.

 pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
 pip install scipy-0.19.1-cp36-cp36m-win_amd64.whl

Use [[https://www.lfd.uci.edu/~gohlke/pythonlibs/|Christoph Gohlke's whl files]] for Windows installations. Many of the packages depend on the [[https://www.microsoft.com/en-us/download/details.aspx?id=53587|Visual C++ 2015 Redistributable]] (x64 and x86 for CPython 3.5 and 3.6) that is available from Microsoft. After installing the Visual C++ redistributable, download and install [[https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy|NumPy]] and [[https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy|SciPy]] packages (in that order) for Python 3.6 on Windows. The downloaded wheel file names should not be changed because the wheel file name verifies compatibility with the current Python version.

There are many optimization packages that have been developed for Python with a few of them listed below:
* [[https://software.sandia.gov/trac/coopr/wiki/Documentation/RelatedProjects | List of Python Optimization Packages]]
* [[https://www.scipy.org/ | Scientific Computing with SciPy]]

This course uses the [[https://apmonitor.com/wiki/index.php/Main/PythonApp | APM Python package]] for tutorials and class instruction. The APMonitor Modeling Language is integrated with Python through a set of functions that allow optimization problems to be solved as a web-service.

Additional links:

* [[https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python | Comparison of Python Integrated Development Environments (IDEs)]]
* [[https://youtu.be/vHRRiBHI3to | Python IDE with Eclipse]]
* [[https://youtu.be/pgBdFgLngkk | Python IDE with Wingware]]
* [[https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/assignments/ | MIT Open Course Ware Tutorial on Python and IDLE]]
* [[https://en.wikipedia.org/wiki/Python_(programming_language) | Wikipedia: Python]]
to:
Python is a high-level and general-purpose programming language and is a [[https://www.google.com/search?q=popular+programming+languages|top choice for programmers (Google search)]]. Part of the reason that it is a popular choice for scientists and engineers is the language versatility, online community of users, and powerful analysis packages such as Numpy and Scipy. This course uses Python 2.7 or Python 3.7. Python is free and open-source and is easy to install with [[https://www.continuum.io/downloads|Anaconda (IPython, Jupyter, Spyder)]], [[https://www.jetbrains.com/pycharm/download/|PyCharm]], or the [[https://www.python.org/downloads/|Python.org]] distributions.

----

Changed lines 9-10 from:
Information on APMonitor, MATLAB, OptdesX, and Python is listed below. Assignments and projects can be completed with any of these software platforms.
to:
Information on APMonitor, GEKKO, MATLAB, OptdesX, and Python is listed below. Assignments and projects can be completed with any of these software platforms.
Added lines 20-25:

----

!!!! GEKKO (Python)

The [[https://gekko.readthedocs.io/en/latest/|GEKKO Optimization Suite]] is software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP). Modes of operation include data reconciliation, real-time optimization, dynamic simulation, and nonlinear predictive control. GEKKO is an object-oriented python library to facilitate local execution of APMonitor. See [[https://apmonitor.com/wiki/index.php/Main/GekkoPythonOptimization|18 Example problems in Python GEKKO]].
August 19, 2017, at 05:43 AM by 10.5.113.229 -
Changed lines 43-51 from:
Python is an open-source, versatile, interpreted high-level programming language that is supported on Windows, Linux, MacOS, etc. Python is extended by a number of add-on packages for optimization, numeric analysis, and graphical analysis. The following packages are recommended for Windows users and include Python 2.7, Numpy 1.6.2, Matplotlib 1.2.0, Scipy 0.11.0, and Pyserial 2.5.
* [[Attach:python-2.7.3.msi | Python 2.7 for Windows]]
* [[Attach:numpy-1.6.2.exe | Numpy 1.6.2 for Windows]]
* [[Attach:matplotlib-1.2.0.exe | Matplotlib 1.2.0 for Windows]]
* [[Attach:scipy-0.11.0.exe | Scipy 0.11.0 for Windows]]
* [[Attach:pyserial-2.5.exe | Pyserial 2.5 for Windows]]
* [[Attach:pywin32-218.exe | Pywin32 218 for Windows]]

Any additional packages must be compatible with Python 2.7 (32-bit version). The 32-bit version is recommended because official releases of Numpy and Scipy packages are only available in that format. There are many optimization packages that have been developed for Python with a few of them listed below:
to:
Python is a high-level and general-purpose programming language and is a [[https://www.google.com/search?q=popular+programming+languages|top choice for programmers (Google search)]]. Part of the reason that it is a popular choice for scientists and engineers is the language versatility, online community of users, and powerful analysis packages such as Numpy and Scipy. This course uses Python 2.7 or Python 3.6+. Python is free and open-source and is easy to install with [[https://www.continuum.io/downloads|Anaconda (IPython, Jupyter, Spyder)]], [[https://www.jetbrains.com/pycharm/download/|PyCharm]], or the [[https://www.python.org/downloads/|Python.org]] distributions. Below is a tutorial on getting started with Python with a complete installation guide for Anaconda and Python.org.

!!!! Install Anaconda (recommended)

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/LrMOrMb8-3s" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

!!!! Install Python from Python.org

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/Ju6zw83PoKo" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

!!!! Install Packages with '''pip''' (Command Line)

Sometimes a script uses a package that is not yet installed. Once Python is installed, a package manager such as ''pip'' or ''conda'' can be used to install, remove, or update packages.

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/Z_Kxg-EYvxM" frameborder="0" allowfullscreen></iframe>
(:htmlend:)

Below is an example on how to install [[https://apmonitor.com/wiki/index.php/Main/PythonApp|APMonitor Optimization Suite]] from the command line (start ''cmd'').

 pip install APMonitor

The ''APMonitor'' package name can be replaced with any available package name such as [[https://www.numpy.org|NumPy]].

 pip install numpy

!!!! Install Packages with '''pip''' (Python Script)

Packages can also be managed from a Python script by attempting to load the package with ''try''. If the import fails, the ''except'' section imports ''pip'' and installs the package.

'''Load and Optionally Install APMonitor Package'''

(:source lang=python:)
try:
  from APMonitor.apm import *
except:
  import pip
  pip.main(['install','APMonitor'])
  from APMonitor.apm import *
(:sourceend:)

'''Load and Optionally Install NumPy Package'''

(:source lang=python:)
try:
  import numpy as np
except:
  import pip
  pip.main(['install','numpy'])
  import numpy as np
(:sourceend:)

The ''APMonitor'' or ''NumPy'' package names can be replaced with any available package. The pip package manager connects to an online repository to retrieve the latest version of the package and install it. Sometimes a package is needed on a computer that isn't connected to the internet or the package isn't available through pip. Below is information on installing a package wheel (''whl'') file.

!!!! Install Package Wheels (whl) Offline

The pip package manager can also be used to install local (previously downloaded) wheel (''.whl'') files but dependencies may not be automatically installed if not connected to the internet. Below is an example wheel file installation for NumPy version 1.13.1 and SciPy version 0.19.1 for Python 3.6 with 64-bit Python.

 pip install numpy-1.13.1+mkl-cp36-cp36m-win_amd64.whl
 pip install scipy-0.19.1-cp36-cp36m-win_amd64.whl

Use [[https://www.lfd.uci.edu/~gohlke/pythonlibs/|Christoph Gohlke's whl files]] for Windows installations. Many of the packages depend on the [[https://www.microsoft.com/en-us/download/details.aspx?id=53587|Visual C++ 2015 Redistributable]] (x64 and x86 for CPython 3.5 and 3.6) that is available from Microsoft. After installing the Visual C++ redistributable, download and install [[https://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy|NumPy]] and [[https://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy|SciPy]] packages (in that order) for Python 3.6 on Windows. The downloaded wheel file names should not be changed because the wheel file name verifies compatibility with the current Python version.

There are many optimization packages that have been developed for Python with a few of them listed below:
April 08, 2013, at 08:14 PM by 128.187.97.24 -
Added line 49:
* [[Attach:pywin32-218.exe | Pywin32 218 for Windows]]
April 03, 2013, at 02:37 PM by 69.169.188.188 -
Changed line 43 from:
Python is an open-source, versatile, interpreted high-level programming language that is supported on Windows, Linux, MacOS, etc. Python is extended by a number of add-on packages for optimization, numeric analysis, and graphical analysis. The following packages are recommended for Windows users and include Python 2.7, Numpy 1.6.2, and Matplotlib 1.2.0.
to:
Python is an open-source, versatile, interpreted high-level programming language that is supported on Windows, Linux, MacOS, etc. Python is extended by a number of add-on packages for optimization, numeric analysis, and graphical analysis. The following packages are recommended for Windows users and include Python 2.7, Numpy 1.6.2, Matplotlib 1.2.0, Scipy 0.11.0, and Pyserial 2.5.
April 03, 2013, at 02:29 PM by 69.169.188.188 -
Added lines 47-48:
* [[Attach:scipy-0.11.0.exe | Scipy 0.11.0 for Windows]]
* [[Attach:pyserial-2.5.exe | Pyserial 2.5 for Windows]]
March 21, 2013, at 11:34 AM by 69.169.131.173 -
Added lines 54-58:
Additional links:

* [[https://en.wikipedia.org/wiki/Comparison_of_integrated_development_environments#Python | Comparison of Python Integrated Development Environments (IDEs)]]
* [[https://youtu.be/vHRRiBHI3to | Python IDE with Eclipse]]
* [[https://youtu.be/pgBdFgLngkk | Python IDE with Wingware]]
January 15, 2013, at 09:20 PM by 128.187.97.18 -
Added lines 53-54:

* [[https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/assignments/ | MIT Open Course Ware Tutorial on Python and IDLE]]
January 14, 2013, at 06:57 PM by 128.187.97.21 -
Deleted lines 5-13:

!!!! Tutorial on MATLAB and Python


[[Attach:nlp_matlab_python_tutorial.zip | Download MATLAB and Python Tutorial Files (nlp_matlab_python_tutorial.zip)]]

(:html:)
<iframe width="560" height="315" src="https://www.youtube.com/embed/t84YMw8p34w?rel=0" frameborder="0" allowfullscreen></iframe>
(:htmlend:)
January 14, 2013, at 03:58 PM by 128.187.97.21 -
Changed line 10 from:
[[Attach:nlp_matlab_python_tutorial.zip | Download MATLAB and Python Tutorial Files]]
to:
[[Attach:nlp_matlab_python_tutorial.zip | Download MATLAB and Python Tutorial Files (nlp_matlab_python_tutorial.zip)]]
January 14, 2013, at 03:52 PM by 128.187.97.21 -
Added line 8:
January 14, 2013, at 03:52 PM by 128.187.97.21 -
Added lines 9-10:
[[Attach:nlp_matlab_python_tutorial.zip | Download MATLAB and Python Tutorial Files]]
Deleted lines 13-14:

[[Attach:nlp_matlab_python_tutorial.zip | Download Tutorial Files]]
January 14, 2013, at 03:51 PM by 128.187.97.21 -
Added lines 12-13:

[[Attach:nlp_matlab_python_tutorial.zip | Download Tutorial Files]]
January 12, 2013, at 05:45 PM by 69.169.188.188 -
Changed lines 61-78 from:
----
to:
----

(: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:)