SlideShare a Scribd company logo
1 of 25
Download to read offline
Optimization in Scilab

             Manas Das

 Department of Electrical Engineering
Indian Institute of Technology Bombay
                FOSSEE

            21 Feb, 2012
Outline           Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Outline



          1   Scilab


          2   Optimization


          3   Other Optimization Tools in Scilab


          4   “Optim” in Scilab




                                        Manas Das       Optimization
Outline     Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Today’s focus




          Scilab is free.




                                   Manas Das       Optimization
Outline     Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Today’s focus




          Scilab is free.
          Matrix/loops syntax is similar to Matlab.




                                   Manas Das       Optimization
Outline     Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Today’s focus




          Scilab is free.
          Matrix/loops syntax is similar to Matlab.
          Scilab provides all basic and many advanced tools.




                                   Manas Das       Optimization
Outline     Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Today’s focus




          Scilab is free.
          Matrix/loops syntax is similar to Matlab.
          Scilab provides all basic and many advanced tools.
          Today: Optimization in Scilab optim command




                                   Manas Das       Optimization
Outline     Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Optimization




          Minimize/maximize some (more than one) objective function
          by varying decision variable
          Subject to constraints on functions of decision variables
          All engineering domains, economics
          Vast area in itself




                                   Manas Das       Optimization
Outline      Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Single Objective Optimization Problems



                                       min f (x)                                         (1)
                                         x

      where x is n dimensional, f (x) is a scalar, with/without
          Bound constraints: xL ≤ x ≤ xU
          Linear/Nonlinear equality constraints: g (x) = b
          Linear/Nonlinear inequality constraints: g (x) ≤ b
      Components of x can be real, integer or binary.
      Find ‘Decision Variables’: x which minimize ’Obj’: f




                                   Manas Das       Optimization
Outline     Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Linear optimization with Linear constraints


          Scilab function: karmarkar
          Calling Sequence
          x1=karmarkar(a,b,c,lb)
                a:matrix (n,p)
                b:n-vector
                c:p-vector
                lb:lower bound
          Also be solved in scilab using linpro function
          linpro is in Quapro toolbox under Optimization in
          ATOMS,
          It can installed by command atomsInstall(’Quapro’)


                                  Manas Das       Optimization
Outline     Scilab    Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Linear optimization with Linear constraints



      Example:-
      Maximize
      3x1 + x2 + 3x3
      for
      2x1 + x2 + x3 ≤ 2
      x1 + 2x2 + 3x3 ≤ 5
      2x1 + 2x2 + x3 ≤ 6
      x1, x2, x3 ≥ 0




                                 Manas Das       Optimization
Outline     Scilab    Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Quadratic with linear constraints

          Scilab function: qp solve
          Calling Sequence
          x1=[x [,iact [,iter [,f]]]]=qp solve(Q,p1,C1,b,me)
                Q:real positive definite symmetric matrix
                (dimension n x n). p- real (column) vector
                (dimension n)
                c:p - vector
                lb:lower bound
                me: number of equality constraints
          It can also be solved in scilab using quapro function.
          quapro is in Quapro toolbox under Optimization in
          ATOMS
          It can installed by command atomsInstall(quapro)

                                 Manas Das       Optimization
Outline    Scilab   Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Quadratic with linear constraints




      Example Minimize
                                     T
                    2 0    −2
      f (x) = 1 x T
              2         x+                 x
                    0 2    −2
      for            √
      x1 + x2 ≥ 2 + 2
      -x1 + x2 ≥ −2




                               Manas Das       Optimization
Outline     Scilab       Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Other Optimization Tools in Scilab: I


      Native (built-in) functions in Scilab:
          fminsearch: Computes unconstrained minimum of a given
          function using the Nelder-Mead algorithm (simplex region
          search).
                Native (built-in function) to Scilab:
                Derivative free, relies on search
                Basic usage: [xopt,fopt]=fminsearch(costf,x0); costf should
                take x as input and return f as output
                Try minimizing f (x) = x 2 + 5 using fminsearch
          neldermead: Computes minimum of a nonlinear function
          subject to bounds and nonlinear constraints
                Option for several types of search algorithms



                                    Manas Das       Optimization
Outline    Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Unconstrained Non-linear




          Scilab function: fminsearch
          Calling Sequence
          x = fminsearch ( costf , x0 )
               costf:The cost function.                x0:The initial guess.
          computes the unconstrained minimimum of given
          function with the Nelder-Mead algorithm.




                                 Manas Das       Optimization
Outline      Scilab    Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Unconstrained Non-linear




                        2    2
      Example: f (x) = x1 + x2 + x1 x2




                                  Manas Das       Optimization
Outline     Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Optim command in Scilab


      Simplified Call:
      [fopt,xopt]=optim(costf,x0)
      where
          x0: initial guess where minimum of f occurs,
          fopt: the optimum (minimum) value,
          xopt: where the optimum occurs,
          costf : user specified (scilab) function to compute objective
          function (f) and/or its gradient (g) depending on the input
          integer flag “ind” as:
          [f,g,ind]=costf(x,ind)



                                  Manas Das       Optimization
Outline      Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Simple example



      f (x) = x 2 + 10
      g (x) = 2x
           Minimize f (x) starting from x0 = 10.
           Write a function (example “myfunction1.sci”) which takes
           x, ind as input and returns f , g , ind as output.
           Use “optim” function to minimize.
           Answer: fopt = 10, xopt = 0.




                                    Manas Das       Optimization
Outline         Scilab      Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Another example (Campbell et al., 2010)




          f (x1 , x2 , x3 ) = (x1 − x3 )2 + 3(x1 + x2 + x3 − 1)2 + (x1 − x3 + 1)2

      with gradient
                 ∂f ∂f ∂f
      g      = [    ,    ,     ]
                ∂x1 ∂x2 ∂x3
             = [2(x1 − x3 ) + 6(x1 + x2 + x3 − 1) + 2(x1 − x3 + 1),
                 6(x1 + x2 + x3 − 1), −2(x1 − x3 ) − 2(x1 − x3 + 1) + 6(x1 + x2 + x




                                       Manas Das       Optimization
Outline     Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Exercise plan




          Minimize the function starting with guess values x0 = [1, 1, 1].
          Write a function (example “myfunction2.sci”) which takes
          x, ind as input and returns f , g , ind as output.
          Use “optim” function to minimize.
          Answer: xopt = [0.14, 0.27, 0.64], fopt = 0.51.




                                  Manas Das       Optimization
Outline     Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Other options with optim


      Several other options/features with optim
          Several optimization algorithms: quasi-newton, conjugate
          gradient, etc.
          Gradient computation using finite differences: “NDcost” used
          with optim.
          Various stopping/diagnostic criteria: Maximum number of
          iterations, calls to costf, thresholds, etc.
          Use of ind to compute gradient only when required (save
          computational effort).
          help optim: to know more



                                  Manas Das       Optimization
Outline      Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Other Optimization Tools in Scilab: II




      Native (built-in) functions in Scilab:
      AI based algorithms
           Genetic algorithms: single objective optimization,
           multiobjective optimization, various implementations
           Simulated annealing




                                   Manas Das       Optimization
Outline      Scilab    Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Optimization Toolboxes in Scilab




      Can be installed easily (atoms or otherwise) or interfaces to them
          quapro: linear, quadratic programming (Q not necessarily
          positive definite)
          IPopt, fsqp, lp solve, etc.
      Check “http://atoms.scilab.org/categories/optimization”




                                  Manas Das       Optimization
Outline     Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Optimization Features available in Scilab


          Nonlinear optimization with the optim function
          Quadratic optimization with the qpsolve function
          Nonlinear least-square optimization with the lsqrsolve
          function
          Semidefinite programming with the semidef function
          Genetic algorithms with the optim ga function
          Simulated annealing with the optim sa function
          Linear matrix inequalities with the lmisolver function




                                  Manas Das       Optimization
Outline     Scilab     Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




Missing optimization features in Scilab

      A list of features which are not available in Scilab,
      but are available in toolboxes.
          Integer parameter with linear objective solver and sparse
          matrices : currently available in LPSOLVE toolbox, based on
          the simplex method,
          Linear objective with sparse matrices : currently available in
          LIPSOL, based on interior points method,
          Nonlinear objective and non linear constraints : currently
          available in interface to IPOPT toolbox, based on interior
          point methods,
          Nonlinear objective and non linear constraints : currently
          available in interface to CONMIN toolbox, based on method
          of feasible directions,

                                  Manas Das       Optimization
Outline     Scilab    Optimization           Other Optimization Tools in Scilab   “Optim” in Scilab




      References
          S. L. Campbell, J.P. Chancelier and R. Nikoukhah, “Modeling
          and Simulation in Scilab/Scicos”, Springer, 2006.

                                     Thank You




                                 Manas Das       Optimization

More Related Content

What's hot

NON LINEAR PROGRAMMING
NON LINEAR PROGRAMMING NON LINEAR PROGRAMMING
NON LINEAR PROGRAMMING karishma gupta
 
Master thesis job shop generic time lag max plus
Master thesis job shop generic time lag max plusMaster thesis job shop generic time lag max plus
Master thesis job shop generic time lag max plusSiddhartha Verma
 
Dynamic Programming
Dynamic ProgrammingDynamic Programming
Dynamic ProgrammingSahil Kumar
 
Importance of matlab
Importance of matlabImportance of matlab
Importance of matlabkrajeshk1980
 
Branch and Bound technique to solve Integer Linear Programming
Branch and Bound technique to solve Integer Linear ProgrammingBranch and Bound technique to solve Integer Linear Programming
Branch and Bound technique to solve Integer Linear ProgrammingKaivalya Shah
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlabDnyanesh Patil
 
Integer Linear Programming
Integer Linear ProgrammingInteger Linear Programming
Integer Linear ProgrammingSukhpalRamanand
 
PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...
PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...
PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...Jisang Yoon
 
Gomory's cutting plane method
Gomory's cutting plane methodGomory's cutting plane method
Gomory's cutting plane methodRajesh Piryani
 
Additive model and boosting tree
Additive model and boosting treeAdditive model and boosting tree
Additive model and boosting treeDong Guo
 
CP Optimizer Walkthrough
CP Optimizer WalkthroughCP Optimizer Walkthrough
CP Optimizer WalkthroughPaulShawIBM
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLABBhavesh Shah
 

What's hot (16)

NON LINEAR PROGRAMMING
NON LINEAR PROGRAMMING NON LINEAR PROGRAMMING
NON LINEAR PROGRAMMING
 
Matlab basic and image
Matlab basic and imageMatlab basic and image
Matlab basic and image
 
Master thesis job shop generic time lag max plus
Master thesis job shop generic time lag max plusMaster thesis job shop generic time lag max plus
Master thesis job shop generic time lag max plus
 
Dynamic Programming
Dynamic ProgrammingDynamic Programming
Dynamic Programming
 
Importance of matlab
Importance of matlabImportance of matlab
Importance of matlab
 
ippseminar
ippseminarippseminar
ippseminar
 
Branch and Bound technique to solve Integer Linear Programming
Branch and Bound technique to solve Integer Linear ProgrammingBranch and Bound technique to solve Integer Linear Programming
Branch and Bound technique to solve Integer Linear Programming
 
Introduction to matlab
Introduction to matlabIntroduction to matlab
Introduction to matlab
 
Integer Linear Programming
Integer Linear ProgrammingInteger Linear Programming
Integer Linear Programming
 
Open Machine Learning
Open Machine LearningOpen Machine Learning
Open Machine Learning
 
PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...
PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...
PPT - Adaptive Quantitative Trading : An Imitative Deep Reinforcement Learnin...
 
Gomory's cutting plane method
Gomory's cutting plane methodGomory's cutting plane method
Gomory's cutting plane method
 
Additive model and boosting tree
Additive model and boosting treeAdditive model and boosting tree
Additive model and boosting tree
 
CP Optimizer Walkthrough
CP Optimizer WalkthroughCP Optimizer Walkthrough
CP Optimizer Walkthrough
 
Learn Matlab
Learn MatlabLearn Matlab
Learn Matlab
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
 

Viewers also liked

Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)
Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)
Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)TBSS Group
 
Scilab Presentation for Tech Talk Tuesday 21 July 2015
Scilab Presentation for Tech Talk Tuesday 21 July 2015Scilab Presentation for Tech Talk Tuesday 21 July 2015
Scilab Presentation for Tech Talk Tuesday 21 July 2015TBSS Group
 
Programming in Ansi C
Programming in Ansi CProgramming in Ansi C
Programming in Ansi CPriya Chauhan
 
Scilab Modelica conference 20150921
Scilab Modelica conference 20150921Scilab Modelica conference 20150921
Scilab Modelica conference 20150921Scilab
 
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILABCOMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILABWildan Maulana
 
ScilabTEC 2015 - Bavarian Center for Agriculture
ScilabTEC 2015 - Bavarian Center for AgricultureScilabTEC 2015 - Bavarian Center for Agriculture
ScilabTEC 2015 - Bavarian Center for AgricultureScilab
 
ScilabTEC 2015 - KIT
ScilabTEC 2015 - KITScilabTEC 2015 - KIT
ScilabTEC 2015 - KITScilab
 
ScilabTEC 2015 - CNES
ScilabTEC 2015 - CNESScilabTEC 2015 - CNES
ScilabTEC 2015 - CNESScilab
 
ScilabTEC 2015 - University of Luxembourg
ScilabTEC 2015 - University of LuxembourgScilabTEC 2015 - University of Luxembourg
ScilabTEC 2015 - University of LuxembourgScilab
 
Scilab is not naive
Scilab is not naiveScilab is not naive
Scilab is not naiveScilab
 
Xcos for beginners
Xcos for beginnersXcos for beginners
Xcos for beginnersScilab
 
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...Scilab
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolboxAwesomejk
 
Hydraulic Scilab toolbox for water distribution systems
Hydraulic Scilab toolbox for water distribution systemsHydraulic Scilab toolbox for water distribution systems
Hydraulic Scilab toolbox for water distribution systemsScilab
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilab
 
Optimization in scilab
Optimization in scilabOptimization in scilab
Optimization in scilabScilab
 
Numerical Solutions to Ordinary Differential Equations in Scilab
Numerical Solutions to Ordinary Differential Equations in ScilabNumerical Solutions to Ordinary Differential Equations in Scilab
Numerical Solutions to Ordinary Differential Equations in Scilabguest92ceef
 

Viewers also liked (20)

Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)
Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)
Scilab Technical Talk at NTU, TP and HCMUT (Dr Claude Gomez)
 
Scilab Presentation for Tech Talk Tuesday 21 July 2015
Scilab Presentation for Tech Talk Tuesday 21 July 2015Scilab Presentation for Tech Talk Tuesday 21 July 2015
Scilab Presentation for Tech Talk Tuesday 21 July 2015
 
Programming in Ansi C
Programming in Ansi CProgramming in Ansi C
Programming in Ansi C
 
Scilab Modelica conference 20150921
Scilab Modelica conference 20150921Scilab Modelica conference 20150921
Scilab Modelica conference 20150921
 
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILABCOMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
 
ScilabTEC 2015 - Bavarian Center for Agriculture
ScilabTEC 2015 - Bavarian Center for AgricultureScilabTEC 2015 - Bavarian Center for Agriculture
ScilabTEC 2015 - Bavarian Center for Agriculture
 
ScilabTEC 2015 - KIT
ScilabTEC 2015 - KITScilabTEC 2015 - KIT
ScilabTEC 2015 - KIT
 
ScilabTEC 2015 - CNES
ScilabTEC 2015 - CNESScilabTEC 2015 - CNES
ScilabTEC 2015 - CNES
 
Scilab vs matlab
Scilab vs matlabScilab vs matlab
Scilab vs matlab
 
ScilabTEC 2015 - University of Luxembourg
ScilabTEC 2015 - University of LuxembourgScilabTEC 2015 - University of Luxembourg
ScilabTEC 2015 - University of Luxembourg
 
Scilab is not naive
Scilab is not naiveScilab is not naive
Scilab is not naive
 
Xcos for beginners
Xcos for beginnersXcos for beginners
Xcos for beginners
 
Introdução ao SciLab
Introdução ao SciLabIntrodução ao SciLab
Introdução ao SciLab
 
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
Introduction to Discrete Probabilities with Scilab - Michaël Baudin, Consort...
 
Sci scada toolbox
Sci scada toolboxSci scada toolbox
Sci scada toolbox
 
Hydraulic Scilab toolbox for water distribution systems
Hydraulic Scilab toolbox for water distribution systemsHydraulic Scilab toolbox for water distribution systems
Hydraulic Scilab toolbox for water distribution systems
 
ScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded SolutionsScilabTEC 2015 - Embedded Solutions
ScilabTEC 2015 - Embedded Solutions
 
Optimization in scilab
Optimization in scilabOptimization in scilab
Optimization in scilab
 
Numerical Solutions to Ordinary Differential Equations in Scilab
Numerical Solutions to Ordinary Differential Equations in ScilabNumerical Solutions to Ordinary Differential Equations in Scilab
Numerical Solutions to Ordinary Differential Equations in Scilab
 
Xcos scilab
Xcos scilabXcos scilab
Xcos scilab
 

Similar to Optimization

Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop Scilab
 
Functional Programming With Scala
Functional Programming With ScalaFunctional Programming With Scala
Functional Programming With ScalaKnoldus Inc.
 
Advanced WhizzML Workflows
Advanced WhizzML WorkflowsAdvanced WhizzML Workflows
Advanced WhizzML WorkflowsBigML, Inc
 
OCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API SearchOCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API SearchJun Furuse
 
Functional programming with Scala
Functional programming with ScalaFunctional programming with Scala
Functional programming with ScalaNeelkanth Sachdeva
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to MatlabAmr Rashed
 
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...Yao Yao
 
ScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin OderskyScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin OderskyTypesafe
 
Solving Optimization Problems using the Matlab Optimization.docx
Solving Optimization Problems using the Matlab Optimization.docxSolving Optimization Problems using the Matlab Optimization.docx
Solving Optimization Problems using the Matlab Optimization.docxwhitneyleman54422
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdfHiroshi Ono
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdfHiroshi Ono
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdfHiroshi Ono
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdfHiroshi Ono
 
ECCV2010: feature learning for image classification, part 4
ECCV2010: feature learning for image classification, part 4ECCV2010: feature learning for image classification, part 4
ECCV2010: feature learning for image classification, part 4zukun
 

Similar to Optimization (20)

Scilab optimization workshop
Scilab optimization workshop Scilab optimization workshop
Scilab optimization workshop
 
Optimization
OptimizationOptimization
Optimization
 
Functional Programming With Scala
Functional Programming With ScalaFunctional Programming With Scala
Functional Programming With Scala
 
Advanced WhizzML Workflows
Advanced WhizzML WorkflowsAdvanced WhizzML Workflows
Advanced WhizzML Workflows
 
Matlab intro
Matlab introMatlab intro
Matlab intro
 
OCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API SearchOCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API Search
 
Functional programming with Scala
Functional programming with ScalaFunctional programming with Scala
Functional programming with Scala
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to Matlab
 
04. haskell handling
04. haskell handling04. haskell handling
04. haskell handling
 
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
Mini-lab 1: Stochastic Gradient Descent classifier, Optimizing Logistic Regre...
 
ScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin OderskyScalaDays 2013 Keynote Speech by Martin Odersky
ScalaDays 2013 Keynote Speech by Martin Odersky
 
Solving Optimization Problems using the Matlab Optimization.docx
Solving Optimization Problems using the Matlab Optimization.docxSolving Optimization Problems using the Matlab Optimization.docx
Solving Optimization Problems using the Matlab Optimization.docx
 
Lecture 3
Lecture 3Lecture 3
Lecture 3
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
 
scalaliftoff2009.pdf
scalaliftoff2009.pdfscalaliftoff2009.pdf
scalaliftoff2009.pdf
 
DynaML: Splash 2016
DynaML: Splash 2016DynaML: Splash 2016
DynaML: Splash 2016
 
ECCV2010: feature learning for image classification, part 4
ECCV2010: feature learning for image classification, part 4ECCV2010: feature learning for image classification, part 4
ECCV2010: feature learning for image classification, part 4
 
Functional Programming in Scala
Functional Programming in ScalaFunctional Programming in Scala
Functional Programming in Scala
 

Optimization

  • 1. Optimization in Scilab Manas Das Department of Electrical Engineering Indian Institute of Technology Bombay FOSSEE 21 Feb, 2012
  • 2. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Outline 1 Scilab 2 Optimization 3 Other Optimization Tools in Scilab 4 “Optim” in Scilab Manas Das Optimization
  • 3. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Today’s focus Scilab is free. Manas Das Optimization
  • 4. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Today’s focus Scilab is free. Matrix/loops syntax is similar to Matlab. Manas Das Optimization
  • 5. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Today’s focus Scilab is free. Matrix/loops syntax is similar to Matlab. Scilab provides all basic and many advanced tools. Manas Das Optimization
  • 6. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Today’s focus Scilab is free. Matrix/loops syntax is similar to Matlab. Scilab provides all basic and many advanced tools. Today: Optimization in Scilab optim command Manas Das Optimization
  • 7. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Optimization Minimize/maximize some (more than one) objective function by varying decision variable Subject to constraints on functions of decision variables All engineering domains, economics Vast area in itself Manas Das Optimization
  • 8. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Single Objective Optimization Problems min f (x) (1) x where x is n dimensional, f (x) is a scalar, with/without Bound constraints: xL ≤ x ≤ xU Linear/Nonlinear equality constraints: g (x) = b Linear/Nonlinear inequality constraints: g (x) ≤ b Components of x can be real, integer or binary. Find ‘Decision Variables’: x which minimize ’Obj’: f Manas Das Optimization
  • 9. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Linear optimization with Linear constraints Scilab function: karmarkar Calling Sequence x1=karmarkar(a,b,c,lb) a:matrix (n,p) b:n-vector c:p-vector lb:lower bound Also be solved in scilab using linpro function linpro is in Quapro toolbox under Optimization in ATOMS, It can installed by command atomsInstall(’Quapro’) Manas Das Optimization
  • 10. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Linear optimization with Linear constraints Example:- Maximize 3x1 + x2 + 3x3 for 2x1 + x2 + x3 ≤ 2 x1 + 2x2 + 3x3 ≤ 5 2x1 + 2x2 + x3 ≤ 6 x1, x2, x3 ≥ 0 Manas Das Optimization
  • 11. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Quadratic with linear constraints Scilab function: qp solve Calling Sequence x1=[x [,iact [,iter [,f]]]]=qp solve(Q,p1,C1,b,me) Q:real positive definite symmetric matrix (dimension n x n). p- real (column) vector (dimension n) c:p - vector lb:lower bound me: number of equality constraints It can also be solved in scilab using quapro function. quapro is in Quapro toolbox under Optimization in ATOMS It can installed by command atomsInstall(quapro) Manas Das Optimization
  • 12. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Quadratic with linear constraints Example Minimize T 2 0 −2 f (x) = 1 x T 2 x+ x 0 2 −2 for √ x1 + x2 ≥ 2 + 2 -x1 + x2 ≥ −2 Manas Das Optimization
  • 13. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Other Optimization Tools in Scilab: I Native (built-in) functions in Scilab: fminsearch: Computes unconstrained minimum of a given function using the Nelder-Mead algorithm (simplex region search). Native (built-in function) to Scilab: Derivative free, relies on search Basic usage: [xopt,fopt]=fminsearch(costf,x0); costf should take x as input and return f as output Try minimizing f (x) = x 2 + 5 using fminsearch neldermead: Computes minimum of a nonlinear function subject to bounds and nonlinear constraints Option for several types of search algorithms Manas Das Optimization
  • 14. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Unconstrained Non-linear Scilab function: fminsearch Calling Sequence x = fminsearch ( costf , x0 ) costf:The cost function. x0:The initial guess. computes the unconstrained minimimum of given function with the Nelder-Mead algorithm. Manas Das Optimization
  • 15. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Unconstrained Non-linear 2 2 Example: f (x) = x1 + x2 + x1 x2 Manas Das Optimization
  • 16. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Optim command in Scilab Simplified Call: [fopt,xopt]=optim(costf,x0) where x0: initial guess where minimum of f occurs, fopt: the optimum (minimum) value, xopt: where the optimum occurs, costf : user specified (scilab) function to compute objective function (f) and/or its gradient (g) depending on the input integer flag “ind” as: [f,g,ind]=costf(x,ind) Manas Das Optimization
  • 17. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Simple example f (x) = x 2 + 10 g (x) = 2x Minimize f (x) starting from x0 = 10. Write a function (example “myfunction1.sci”) which takes x, ind as input and returns f , g , ind as output. Use “optim” function to minimize. Answer: fopt = 10, xopt = 0. Manas Das Optimization
  • 18. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Another example (Campbell et al., 2010) f (x1 , x2 , x3 ) = (x1 − x3 )2 + 3(x1 + x2 + x3 − 1)2 + (x1 − x3 + 1)2 with gradient ∂f ∂f ∂f g = [ , , ] ∂x1 ∂x2 ∂x3 = [2(x1 − x3 ) + 6(x1 + x2 + x3 − 1) + 2(x1 − x3 + 1), 6(x1 + x2 + x3 − 1), −2(x1 − x3 ) − 2(x1 − x3 + 1) + 6(x1 + x2 + x Manas Das Optimization
  • 19. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Exercise plan Minimize the function starting with guess values x0 = [1, 1, 1]. Write a function (example “myfunction2.sci”) which takes x, ind as input and returns f , g , ind as output. Use “optim” function to minimize. Answer: xopt = [0.14, 0.27, 0.64], fopt = 0.51. Manas Das Optimization
  • 20. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Other options with optim Several other options/features with optim Several optimization algorithms: quasi-newton, conjugate gradient, etc. Gradient computation using finite differences: “NDcost” used with optim. Various stopping/diagnostic criteria: Maximum number of iterations, calls to costf, thresholds, etc. Use of ind to compute gradient only when required (save computational effort). help optim: to know more Manas Das Optimization
  • 21. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Other Optimization Tools in Scilab: II Native (built-in) functions in Scilab: AI based algorithms Genetic algorithms: single objective optimization, multiobjective optimization, various implementations Simulated annealing Manas Das Optimization
  • 22. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Optimization Toolboxes in Scilab Can be installed easily (atoms or otherwise) or interfaces to them quapro: linear, quadratic programming (Q not necessarily positive definite) IPopt, fsqp, lp solve, etc. Check “http://atoms.scilab.org/categories/optimization” Manas Das Optimization
  • 23. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Optimization Features available in Scilab Nonlinear optimization with the optim function Quadratic optimization with the qpsolve function Nonlinear least-square optimization with the lsqrsolve function Semidefinite programming with the semidef function Genetic algorithms with the optim ga function Simulated annealing with the optim sa function Linear matrix inequalities with the lmisolver function Manas Das Optimization
  • 24. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab Missing optimization features in Scilab A list of features which are not available in Scilab, but are available in toolboxes. Integer parameter with linear objective solver and sparse matrices : currently available in LPSOLVE toolbox, based on the simplex method, Linear objective with sparse matrices : currently available in LIPSOL, based on interior points method, Nonlinear objective and non linear constraints : currently available in interface to IPOPT toolbox, based on interior point methods, Nonlinear objective and non linear constraints : currently available in interface to CONMIN toolbox, based on method of feasible directions, Manas Das Optimization
  • 25. Outline Scilab Optimization Other Optimization Tools in Scilab “Optim” in Scilab References S. L. Campbell, J.P. Chancelier and R. Nikoukhah, “Modeling and Simulation in Scilab/Scicos”, Springer, 2006. Thank You Manas Das Optimization