Skip to content

This package contains the implementation of all the introduced algorithms in the course of unconstraint optimization for the 1st year AI engineering student at UM5-ENSIAS, with in addition, the possibility to plot the results of each optimization.

License

Notifications You must be signed in to change notification settings

HamBa-m/hambam-unconstraint-optimization

Repository files navigation

Python unconstraint optimization package :

This package contains the implementation of all the introduced algorithms in the course of unconstraint optimization for the 1st year AI engineering student at UM5-ENSIAS, with in addition, the possibility to plot the results of each optimization.

requirements

This package requires the following Python 3 libraries :

  • numpy
  • time
  • math
  • numdifftools
  • scipy
  • matplotlib
  • mpl_toolkits
  • copy

matrix.py

The module matrix.py contains some elementary operations on matrices :

  • sum
  • product
  • transposed
  • rows swap
  • rows dilatation
  • rows transvection
  • zeros matrix generator
  • identity matrix generator
  • printing a matrix

gauss.py

The module gauss.py contains the implementation of the operations :

  • Gauss-Jordan pivot
  • Inverse of a matrix using Gauss
  • Solving a linear system with Gauss pivot

deco.py

The module deco.py containing the code of the decomposition algorithms :

  • Lower-Upper decomposition
  • Cholesky's decomposition and also, 2 functions to solve a linear system with the 2 above decompositions.

gradient.py

The module gradient.py contains the code of 3 optimization algorithms for multivariable functions :

  • Gradient descent
  • Conjugate gradient
  • Newton gradient

elimination.py and interpolation.py

As for the monovariable unimodal functions, the subfolder unidim contains two modules (elimination.py and interpolation.py) with 10 different methods of optimization :

  • unconstrainted search with fixed steps
  • unconstrainted search with accelerated steps
  • brute force
  • binary search
  • interval halving method
  • Fibonacci method
  • Golden section method
  • Newton-Rapson method
  • Quasi-Newton method
  • Secant method

main folder

This package is developped with 3 main programs : main.py, main2.py and test_compare.py. They are built-in to help using some of the methods on random functions and data implemented in the file functions.py.

About

This package contains the implementation of all the introduced algorithms in the course of unconstraint optimization for the 1st year AI engineering student at UM5-ENSIAS, with in addition, the possibility to plot the results of each optimization.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages